package.json
Rama main · réplica de lectura del repositorio original.
{
"name": "cliparr",
"private": true,
"description": "Personal media clipper for Plex, Jellyfin, and local video files, featuring a React frontend and Express server.",
"license": "MIT",
"type": "module",
"imports": {
"#ci/*.mjs": "./tools/ci/*.mjs",
"#plex/*.mjs": "./tools/plex/*.mjs",
"#release/*.mjs": "./tools/release/*.mjs"
},
"packageManager": "pnpm@12.17.0",
"engines": {
"node": "^26.13.0"
},
"repository": {
"type": "git",
"url": "https://github.com/techsquidtv/cliparr.git"
},
"bugs": {
"url": "https://github.com/techsquidtv/cliparr/issues"
},
"homepage": "https://github.com/techsquidtv/cliparr#readme",
"scripts": {
"dev": "concurrently -k -s first --handle-input -c \"cyan,magenta\" -n \"frontend,server\" \"pnpm --filter @cliparr/frontend dev\" \"pnpm --filter @cliparr/server dev\"",
"dev:web": "pnpm --filter @cliparr/www dev --host 127.0.0.1 --port 4321",
"dev:docker": "concurrently -k -s first --handle-input -c \"cyan,magenta\" -n \"frontend,server\" \"pnpm --filter @cliparr/frontend dev --host 0.0.0.0\" \"pnpm --filter @cliparr/server dev\"",
"docker:dev:build": "docker compose -f docker/compose.dev.yml build cliparr",
"docker:dev:up": "docker compose -f docker/compose.dev.yml up",
"build": "pnpm -r build",
"build:web": "pnpm docs:check && pnpm --filter @cliparr/www build",
"lint": "pnpm node:check && pnpm plex:architecture:check && pnpm lint:eslint && pnpm lint:types",
"lint:eslint": "pnpm lint:eslint:root && pnpm -r --if-present lint:eslint",
"lint:eslint:root": "pnpm exec eslint --config config/eslint.config.js \"config/eslint.config.js\" \"tools/**/*.mjs\"",
"lint:types": "pnpm -r --if-present lint:types",
"format": "prettier --config config/prettier.config.js --ignore-path config/.prettierignore --write .",
"format:check": "prettier --config config/prettier.config.js --ignore-path config/.prettierignore --check .",
"plex:sdk:update": "node tools/plex/update-sdk.mjs",
"plex:sdk:check": "node tools/plex/check-sdk.mjs",
"preflight": "pnpm privacy:check && pnpm format:check && pnpm lint && pnpm knip && pnpm test",
"test": "pnpm test:node && pnpm plex:sdk:check && pnpm test:privacy && pnpm test:docker && pnpm test:release && pnpm test:plex-sdk && pnpm -r --if-present test",
"test:release": "node --test tools/release/*.test.mjs",
"test:plex-sdk": "node --test tools/plex/*.test.mjs",
"release:plan": "node tools/release/plan-release.mjs",
"knip": "knip --config config/knip.json",
"docs:sync": "pnpm --filter @cliparr/www docs:sync",
"docs:check": "pnpm --filter @cliparr/www docs:check",
"cf:deploy": "wrangler deploy",
"cf:upload-version": "wrangler versions upload",
"deploy:web": "pnpm build:web && pnpm cf:deploy",
"preview": "pnpm --filter @cliparr/server preview",
"start": "pnpm --filter @cliparr/server start",
"clean": "pnpm -r clean",
"assets:capture": "pnpm --filter @cliparr/www-assets capture",
"test:assets": "pnpm --filter @cliparr/www-assets test",
"plex:architecture:check": "node tools/plex/check-architecture.mjs",
"privacy:check": "node tools/ci/privacy-check.mjs",
"test:privacy": "node --test tools/ci/privacy-check.test.mjs",
"test:docker": "node --test tools/ci/docker-*.test.mjs",
"test:node": "node --test tools/ci/node-*.test.mjs",
"node:check": "node tools/ci/check-node-version.mjs"
},
"devDependencies": {
"@eslint/js": "^10.0.1",
"@hey-api/openapi-ts": "~0.99.0",
"@types/node": "catalog:",
"concurrently": "^10.0.5",
"eslint": "^10.11.0",
"eslint-plugin-astro": "^3.2.1",
"eslint-plugin-react-hooks": "^7.1.1",
"eslint-plugin-simple-import-sort": "^14.0.0",
"eslint-plugin-unicorn": "^76.0.0",
"globals": "^17.13.0",
"knip": "6.44.1",
"prettier": "^3.9.9",
"prettier-plugin-astro": "^1.1.0",
"typescript": "~6.0.3",
"typescript-eslint": "^8.71.0",
"wrangler": "^4.147.0",
"yaml": "^2.9.1"
}
}