{"_id":"reelsort","_rev":"35-fe9691d95620ea5f97d1ab5c4da6a58d","name":"reelsort","dist-tags":{"latest":"0.4.14"},"versions":{"0.1.0":{"name":"reelsort","version":"0.1.0","keywords":["media","library","organizer","plex","rename","movies","tv","television","cli","file-management","media-manager","hardlink","watch-folder"],"author":{"name":"Jay Deaton"},"license":"ISC","_id":"reelsort@0.1.0","maintainers":[{"name":"jayrdeaton","email":"jayrdeaton@gmail.com"}],"homepage":"https://github.com/jayrdeaton/ReelSort#readme","bugs":{"url":"https://github.com/jayrdeaton/ReelSort/issues"},"bin":{"reelsort":"dist/cli.js"},"dist":{"shasum":"9a996fa0a50e4f5b61f823a99d73b0c207c43253","tarball":"https://registry.npmjs.org/reelsort/-/reelsort-0.1.0.tgz","fileCount":7,"integrity":"sha512-ZqJdco8REaOIVkjWz/acMb++cJTUjaSg01lhdYuN+bMu/TNDPELoi+MrSyO701UN/2pB4V2tIy0hh75NbEhS5w==","signatures":[{"sig":"MEQCIDnByfk8nSFqSJqucCXYGmiSZnW+UX+rWR4vgbZ8n7J1AiB7IwdQ+5iSQsq0JqB1ulbb/aAGXM7u1IrwWbnO9qkmMQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":261504},"main":"./dist/index.js","type":"commonjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"gitHead":"b8b60a8ce6121fb4ade0855dc462890d5d2c76ce","scripts":{"fix":"eslint --fix","lint":"eslint","test":"jest","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit","preversion":"npm run lint && npm test && npm run build"},"_npmUser":{"name":"jayrdeaton","email":"jayrdeaton@gmail.com"},"repository":{"url":"git+https://github.com/jayrdeaton/ReelSort.git","type":"git"},"_npmVersion":"11.12.1","description":"CLI to rename, organize, and manage your movie and TV library — Plex-compatible naming, hardlink support, and automated watch mode.","directories":{},"sideEffects":false,"_nodeVersion":"26.0.0","dependencies":{"rimraf":"^6.1.3","termkit":"^2.0.2","chokidar":"^5.0.0","cosmetic":"^1.4.0","termpulse":"^1.1.3","roman-numeral":"^0.2.6","to-title-case":"^1.0.0","better-sqlite3":"^12.10.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","eslint":"^10.4.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.8.3","typescript":"^6.0.3","@types/node":"^25.0.0","@types/chokidar":"^1.7.5","typescript-eslint":"^8.59.3","@types/better-sqlite3":"^7.6.13","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.5","@typescript-eslint/parser":"^8.59.3","eslint-plugin-package-json":"^1.0.0","eslint-plugin-simple-import-sort":"^13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/reelsort_0.1.0_1780542353951_0.043357797361322614","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"reelsort","version":"0.1.1","keywords":["media","library","organizer","plex","rename","movies","tv","television","cli","file-management","media-manager","hardlink","watch-folder"],"author":{"name":"Jay Deaton"},"license":"ISC","_id":"reelsort@0.1.1","maintainers":[{"name":"jayrdeaton","email":"jayrdeaton@gmail.com"}],"homepage":"https://github.com/jayrdeaton/ReelSort#readme","bugs":{"url":"https://github.com/jayrdeaton/ReelSort/issues"},"bin":{"reelsort":"dist/cli.js"},"dist":{"shasum":"0742f4e34cdbf21f1404306b7a231776a9f9c2ab","tarball":"https://registry.npmjs.org/reelsort/-/reelsort-0.1.1.tgz","fileCount":2,"integrity":"sha512-pwkBMchA2yIgnKeZOtoJ2BChBn1z9wFNYfaJSSzXfj2ETpRu54PSmJgwSmHknMba4U0lbedJDDWtKEeunYqdMw==","signatures":[{"sig":"MEUCIAPv226xNkScBHgZrItXLBzKSWXX2vzO9bK8Gea80HmVAiEA4ABgvR+SnZIP1xNzn15aWO5GUgLc67l/XI0RzTyjr8c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18869},"main":"./dist/index.js","type":"commonjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"gitHead":"a1c54c699e6e20d543b179f64fd00cc564e13d0e","scripts":{"fix":"eslint --fix","lint":"eslint","test":"jest","build":"tsup","clean":"rm -rf dist","release":"git push --follow-tags","validate":"npm run typecheck && npm run lint && npm test && npm run build","typecheck":"tsc --noEmit","preversion":"npm ci && npm run validate","test:watch":"jest --watchAll","release:major":"npm version major && git push --follow-tags","release:minor":"npm version minor && git push --follow-tags","release:patch":"npm version patch && git push --follow-tags"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:be2d0693-875a-4d94-8f5e-d99660edf8e8"}},"repository":{"url":"git+https://github.com/jayrdeaton/ReelSort.git","type":"git"},"_npmVersion":"11.16.0","description":"CLI to rename, organize, and manage your movie and TV library — Plex-compatible naming, hardlink support, and automated watch mode.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","dependencies":{"rimraf":"^6.1.3","termkit":"^2.0.2","chokidar":"^5.0.0","cosmetic":"^1.4.0","termpulse":"^1.1.3","roman-numeral":"^0.2.6","to-title-case":"^1.0.0","better-sqlite3":"^12.10.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","eslint":"^10.4.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.8.3","typescript":"^6.0.3","@types/jest":"^30.0.0","@types/node":"^25.0.0","@types/chokidar":"^1.7.5","typescript-eslint":"^8.59.3","@types/better-sqlite3":"^7.6.13","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.5","@typescript-eslint/parser":"^8.59.3","eslint-plugin-package-json":"^1.0.0","eslint-plugin-simple-import-sort":"^13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/reelsort_0.1.1_1780544912349_0.9425449385260263","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"reelsort","version":"0.1.2","keywords":["media","library","organizer","plex","rename","movies","tv","television","cli","file-management","media-manager","hardlink","watch-folder"],"author":{"name":"Jay Deaton"},"license":"ISC","_id":"reelsort@0.1.2","maintainers":[{"name":"jayrdeaton","email":"jayrdeaton@gmail.com"}],"homepage":"https://github.com/jayrdeaton/ReelSort#readme","bugs":{"url":"https://github.com/jayrdeaton/ReelSort/issues"},"bin":{"reelsort":"dist/cli.js"},"dist":{"shasum":"871d2806d6375a574b924ed84913dc4ab5303583","tarball":"https://registry.npmjs.org/reelsort/-/reelsort-0.1.2.tgz","fileCount":7,"integrity":"sha512-N/wk98DFBP/RdEmqQKJSKFVCwg4EMtJsELHA0zRcwK0GxI5J62fM5yEtirvquB4ryts8cDjpMQECxcQsgha0+g==","signatures":[{"sig":"MEUCIB9LD0IGYoY5MUsTWQZNvu2lfMNxlPwZ+ItRxZ7lB3RqAiEAucZO6ch53UocmAdKBanocdtNlgoiiUIDZmp2I5X7YjI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":261440},"main":"./dist/index.js","type":"commonjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"gitHead":"3cfa7aba0c7a4f49ac4d62172943f18101de860d","scripts":{"fix":"npm run lint:fix","lint":"eslint","test":"jest","build":"tsup","clean":"rm -rf dist","release":"git push --follow-tags","lint:fix":"eslint --fix","validate":"npm run typecheck && npm run lint && npm test && npm run build","typecheck":"tsc --noEmit","preversion":"npm ci && npm run validate","test:watch":"jest --watchAll","build:watch":"tsup --watch","release:major":"npm version major && git push --follow-tags","release:minor":"npm version minor && git push --follow-tags","release:patch":"npm version patch && git push --follow-tags","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:be2d0693-875a-4d94-8f5e-d99660edf8e8"}},"repository":{"url":"git+https://github.com/jayrdeaton/ReelSort.git","type":"git"},"_npmVersion":"11.16.0","description":"CLI to rename, organize, and manage your movie and TV library — Plex-compatible naming, hardlink support, and automated watch mode.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","dependencies":{"rimraf":"^6.1.3","termkit":"^2.0.2","chokidar":"^5.0.0","cosmetic":"^1.4.0","termpulse":"^1.1.3","roman-numeral":"^0.2.6","to-title-case":"^1.0.0","better-sqlite3":"^12.10.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","eslint":"^10.4.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.8.3","typescript":"^6.0.3","@types/jest":"^30.0.0","@types/node":"^25.0.0","@types/chokidar":"^1.7.5","typescript-eslint":"^8.59.3","@types/better-sqlite3":"^7.6.13","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.5","@typescript-eslint/parser":"^8.59.3","eslint-plugin-package-json":"^1.0.0","eslint-plugin-simple-import-sort":"^13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/reelsort_0.1.2_1780558009489_0.749050162286816","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"reelsort","version":"0.2.0","keywords":["media","library","organizer","plex","rename","movies","tv","television","cli","file-management","media-manager","hardlink","watch-folder"],"author":{"name":"Jay Deaton"},"license":"ISC","_id":"reelsort@0.2.0","maintainers":[{"name":"jayrdeaton","email":"jayrdeaton@gmail.com"}],"homepage":"https://github.com/jayrdeaton/ReelSort#readme","bugs":{"url":"https://github.com/jayrdeaton/ReelSort/issues"},"bin":{"reelsort":"dist/cli.js"},"dist":{"shasum":"16242916dae63efecf6da0c74b2a9a623c67f3c0","tarball":"https://registry.npmjs.org/reelsort/-/reelsort-0.2.0.tgz","fileCount":7,"integrity":"sha512-XpOjR+21uLoecbpTYKHKPOiEKG/FJYMbLh/7RcsyxfgVC/cZX5Ju63QaNC2tAbGrcPpMG1Jnon6q1YKwC9WELQ==","signatures":[{"sig":"MEYCIQCv8QNxVzKRu9OX35oLhzPnF5oOs0oyjzFFiJtvn/1WVgIhALzXy1wy1ntqF8sJTRXgCDT+81ROg7wIo05R0oQnLPzz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":260917},"main":"./dist/index.js","type":"commonjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"gitHead":"5d82629e05c64abf5eea7037c9d08628ac8345bb","scripts":{"fix":"npm run lint:fix","lint":"eslint","test":"jest","build":"tsup","clean":"rm -rf dist","release":"git push --follow-tags","lint:fix":"eslint --fix","validate":"npm run typecheck && npm run lint && npm test && npm run build","typecheck":"tsc --noEmit","preversion":"npm ci && npm run validate","test:watch":"jest --watchAll","build:watch":"tsup --watch","release:major":"npm version major && git push --follow-tags","release:minor":"npm version minor && git push --follow-tags","release:patch":"npm version patch && git push --follow-tags","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:be2d0693-875a-4d94-8f5e-d99660edf8e8"}},"repository":{"url":"git+https://github.com/jayrdeaton/ReelSort.git","type":"git"},"_npmVersion":"11.16.0","description":"CLI to rename, organize, and manage your movie and TV library — Plex-compatible naming, hardlink support, and automated watch mode.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","dependencies":{"rimraf":"^6.1.3","termkit":"^2.2.0","chokidar":"^5.0.0","roman-numeral":"^0.2.6","to-title-case":"^1.0.0","better-sqlite3":"^12.10.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","eslint":"^10.4.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.8.3","typescript":"^6.0.3","@types/jest":"^30.0.0","@types/node":"^25.0.0","@types/chokidar":"^1.7.5","typescript-eslint":"^8.59.3","@types/better-sqlite3":"^7.6.13","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.5","@typescript-eslint/parser":"^8.59.3","eslint-plugin-package-json":"^1.0.0","eslint-plugin-simple-import-sort":"^13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/reelsort_0.2.0_1780734827493_0.2008639575215081","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"reelsort","version":"0.2.1","keywords":["media","library","organizer","plex","rename","movies","tv","television","cli","file-management","media-manager","hardlink","watch-folder"],"author":{"name":"Jay Deaton"},"license":"ISC","_id":"reelsort@0.2.1","maintainers":[{"name":"jayrdeaton","email":"jayrdeaton@gmail.com"}],"homepage":"https://github.com/jayrdeaton/ReelSort#readme","bugs":{"url":"https://github.com/jayrdeaton/ReelSort/issues"},"bin":{"reelsort":"dist/cli.js"},"dist":{"shasum":"95b0f78e477363696a29bb6368ffbbeebfe73c68","tarball":"https://registry.npmjs.org/reelsort/-/reelsort-0.2.1.tgz","fileCount":7,"integrity":"sha512-e3H7SjT04uZ4FYdwvR6OrDxqyczTp3LJ4Lp6Z13g3FMLHL2ObiiircHmeMUD75J7LO+TxdwHURA8H3v9pToaPw==","signatures":[{"sig":"MEUCIQDjffE0v6NmzSVWbJjC4CbQy9bbzFdYuPUi2udKxj6ApAIgT2jU4TS0rk/BPHQe9YM1Wd4jtcF5dRPfeWbgBTffNWo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":281937},"main":"./dist/index.js","type":"commonjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"gitHead":"6d0da00735fe3a53901d0dd2afc6f6c78579111f","scripts":{"fix":"npm run lint:fix","lint":"eslint","test":"jest","build":"tsup","clean":"rm -rf dist","release":"git push --follow-tags","lint:fix":"eslint --fix","validate":"npm run typecheck && npm run lint && npm test && npm run build","typecheck":"tsc --noEmit","preversion":"npm ci && npm run validate","test:watch":"jest --watchAll","build:watch":"tsup --watch","release:major":"npm version major && git push --follow-tags","release:minor":"npm version minor && git push --follow-tags","release:patch":"npm version patch && git push --follow-tags","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:be2d0693-875a-4d94-8f5e-d99660edf8e8"}},"repository":{"url":"git+https://github.com/jayrdeaton/ReelSort.git","type":"git"},"_npmVersion":"11.16.0","description":"CLI to rename, organize, and manage your movie and TV library — Plex-compatible naming, hardlink support, and automated watch mode.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","dependencies":{"rimraf":"^6.1.3","termkit":"^2.2.0","chokidar":"^5.0.0","roman-numeral":"^0.2.6","to-title-case":"^1.0.0","better-sqlite3":"^12.10.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","eslint":"^10.4.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.8.3","typescript":"^6.0.3","@types/jest":"^30.0.0","@types/node":"^25.0.0","@types/chokidar":"^1.7.5","typescript-eslint":"^8.59.3","@types/better-sqlite3":"^7.6.13","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.5","@typescript-eslint/parser":"^8.59.3","eslint-plugin-package-json":"^1.0.0","eslint-plugin-simple-import-sort":"^13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/reelsort_0.2.1_1780760531140_0.9239303575974911","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"reelsort","version":"0.2.2","keywords":["media","library","organizer","plex","rename","movies","tv","television","cli","file-management","media-manager","hardlink","watch-folder"],"author":{"name":"Jay Deaton"},"license":"ISC","_id":"reelsort@0.2.2","maintainers":[{"name":"jayrdeaton","email":"jayrdeaton@gmail.com"}],"homepage":"https://github.com/jayrdeaton/ReelSort#readme","bugs":{"url":"https://github.com/jayrdeaton/ReelSort/issues"},"bin":{"reelsort":"dist/cli.js"},"dist":{"shasum":"29e5a2750226fb4a73f71f4b96f48962a4661606","tarball":"https://registry.npmjs.org/reelsort/-/reelsort-0.2.2.tgz","fileCount":7,"integrity":"sha512-f0dY9ab7jsq+9tjld9p2bJNnMX5uv9eMTL3chmIL25Ci7JuYE/nmKDa221PvnJ06y4bT+hCHv3Y3AoQGYdgX9A==","signatures":[{"sig":"MEQCID8QBmWJJAN3pB5F3sUmZ812f27/bTlylCAn19k7WvVYAiAL8mg0K7ntoVpWeRNftbP/0aqsMjsfS3xwy+gYYRNDbg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":297548},"main":"./dist/index.js","type":"commonjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"gitHead":"a7ea0529cbb005afec01570ada3292b6331b89c8","scripts":{"fix":"npm run lint:fix","lint":"eslint","test":"jest","build":"tsup","clean":"rm -rf dist","release":"git push --follow-tags","lint:fix":"eslint --fix","validate":"npm run typecheck && npm run lint && npm test && npm run build","typecheck":"tsc --noEmit","preversion":"npm ci && npm run validate","test:watch":"jest --watchAll","build:watch":"tsup --watch","release:major":"npm version major && git push --follow-tags","release:minor":"npm version minor && git push --follow-tags","release:patch":"npm version patch && git push --follow-tags","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:be2d0693-875a-4d94-8f5e-d99660edf8e8"}},"repository":{"url":"git+https://github.com/jayrdeaton/ReelSort.git","type":"git"},"_npmVersion":"11.16.0","description":"CLI to rename, organize, and manage your movie and TV library — Plex-compatible naming, hardlink support, and automated watch mode.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","dependencies":{"rimraf":"^6.1.3","termkit":"^2.2.0","chokidar":"^5.0.0","roman-numeral":"^0.2.6","to-title-case":"^1.0.0","better-sqlite3":"^12.10.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","eslint":"^10.4.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.8.3","typescript":"^6.0.3","@types/jest":"^30.0.0","@types/node":"^25.0.0","@types/chokidar":"^1.7.5","typescript-eslint":"^8.59.3","@types/better-sqlite3":"^7.6.13","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.5","@typescript-eslint/parser":"^8.59.3","eslint-plugin-package-json":"^1.0.0","eslint-plugin-simple-import-sort":"^13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/reelsort_0.2.2_1780762322681_0.5399074958586481","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"reelsort","version":"0.2.3","keywords":["media","library","organizer","plex","rename","movies","tv","television","cli","file-management","media-manager","hardlink","watch-folder"],"author":{"name":"Jay Deaton"},"license":"ISC","_id":"reelsort@0.2.3","maintainers":[{"name":"jayrdeaton","email":"jayrdeaton@gmail.com"}],"homepage":"https://github.com/jayrdeaton/ReelSort#readme","bugs":{"url":"https://github.com/jayrdeaton/ReelSort/issues"},"bin":{"reelsort":"dist/cli.js"},"dist":{"shasum":"0b94611e67ea862ea00fd95aad1faf7550be6a6b","tarball":"https://registry.npmjs.org/reelsort/-/reelsort-0.2.3.tgz","fileCount":7,"integrity":"sha512-kd9tsPcnQVeF415aPeTwtqLRLm2V7lrckI3PLa8P5IhFLMYeB9W4Ad09isNBpEI3174YAIr0HyeatZWmHvzWVA==","signatures":[{"sig":"MEYCIQDILmifzs3yj5nU3lIHx0YTADhmVfBWH2oeCWpTB9JWSwIhALGMByQkauo5dAXuOSivrH7bPTfwk2AADhhA0BBMDvAN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":311297},"main":"./dist/index.js","type":"commonjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"gitHead":"96d2ddc215e4f8c09767155f564cf744df4298a5","scripts":{"fix":"npm run lint:fix","lint":"eslint","test":"jest","build":"tsup","clean":"rm -rf dist","release":"git push --follow-tags","lint:fix":"eslint --fix","validate":"npm run typecheck && npm run lint && npm test && npm run build","typecheck":"tsc --noEmit","preversion":"npm ci && npm run validate","test:watch":"jest --watchAll","build:watch":"tsup --watch","release:major":"npm version major && git push --follow-tags","release:minor":"npm version minor && git push --follow-tags","release:patch":"npm version patch && git push --follow-tags","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:be2d0693-875a-4d94-8f5e-d99660edf8e8"}},"repository":{"url":"git+https://github.com/jayrdeaton/ReelSort.git","type":"git"},"_npmVersion":"11.16.0","description":"CLI to rename, organize, and manage your movie and TV library — Plex-compatible naming, hardlink support, and automated watch mode.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","dependencies":{"rimraf":"^6.1.3","termkit":"^2.2.0","chokidar":"^5.0.0","roman-numeral":"^0.2.6","to-title-case":"^1.0.0","better-sqlite3":"^12.10.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","eslint":"^10.4.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.8.3","typescript":"^6.0.3","@types/jest":"^30.0.0","@types/node":"^25.0.0","@types/chokidar":"^1.7.5","typescript-eslint":"^8.59.3","@types/better-sqlite3":"^7.6.13","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.5","@typescript-eslint/parser":"^8.59.3","eslint-plugin-package-json":"^1.0.0","eslint-plugin-simple-import-sort":"^13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/reelsort_0.2.3_1780763834104_0.9701571894468135","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"reelsort","version":"0.2.4","keywords":["media","library","organizer","plex","rename","movies","tv","television","cli","file-management","media-manager","hardlink","watch-folder"],"author":{"name":"Jay Deaton"},"license":"ISC","_id":"reelsort@0.2.4","maintainers":[{"name":"jayrdeaton","email":"jayrdeaton@gmail.com"}],"homepage":"https://github.com/jayrdeaton/ReelSort#readme","bugs":{"url":"https://github.com/jayrdeaton/ReelSort/issues"},"bin":{"reelsort":"dist/cli.js"},"dist":{"shasum":"7cab71d9b4b2859d1baeae8968ac9b6c70123714","tarball":"https://registry.npmjs.org/reelsort/-/reelsort-0.2.4.tgz","fileCount":7,"integrity":"sha512-AHVSAPDjRigjRBmgI3ciOv4QHOXBNJ9ft4tHpA9TI7VUkSe09KYUmEkNKJKJEVe17LlVVHTYpE6XQ+YN1UwCEQ==","signatures":[{"sig":"MEQCIH2VR0NPuORGETLAwW2SvoLMXdnuMo30rI8habqpe7x1AiByt9Sw6tIMfAyz9QZBsAzd9e1uz/nlEGG/7RsMTQ2sug==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":315396},"main":"./dist/index.js","type":"commonjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"gitHead":"5d5c43a39e5faa1b39de7370de6697cf712fa70a","scripts":{"fix":"npm run lint:fix","lint":"eslint","test":"jest","build":"tsup","clean":"rm -rf dist","release":"git push --follow-tags","lint:fix":"eslint --fix","validate":"npm run typecheck && npm run lint && npm test && npm run build","typecheck":"tsc --noEmit","preversion":"npm ci && npm run validate","test:watch":"jest --watchAll","build:watch":"tsup --watch","release:major":"npm version major && git push --follow-tags","release:minor":"npm version minor && git push --follow-tags","release:patch":"npm version patch && git push --follow-tags","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:be2d0693-875a-4d94-8f5e-d99660edf8e8"}},"repository":{"url":"git+https://github.com/jayrdeaton/ReelSort.git","type":"git"},"_npmVersion":"11.16.0","description":"CLI to rename, organize, and manage your movie and TV library — Plex-compatible naming, hardlink support, and automated watch mode.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","dependencies":{"rimraf":"^6.1.3","termkit":"^2.2.0","chokidar":"^5.0.0","roman-numeral":"^0.2.6","to-title-case":"^1.0.0","better-sqlite3":"^12.10.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","eslint":"^10.4.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.8.3","typescript":"^6.0.3","@types/jest":"^30.0.0","@types/node":"^25.0.0","@types/chokidar":"^1.7.5","typescript-eslint":"^8.59.3","@types/better-sqlite3":"^7.6.13","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.5","@typescript-eslint/parser":"^8.59.3","eslint-plugin-package-json":"^1.0.0","eslint-plugin-simple-import-sort":"^13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/reelsort_0.2.4_1780766037243_0.10286154712974782","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"reelsort","version":"0.2.5","keywords":["media","library","organizer","plex","rename","movies","tv","television","cli","file-management","media-manager","hardlink","watch-folder"],"author":{"name":"Jay Deaton"},"license":"ISC","_id":"reelsort@0.2.5","maintainers":[{"name":"jayrdeaton","email":"jayrdeaton@gmail.com"}],"homepage":"https://github.com/jayrdeaton/ReelSort#readme","bugs":{"url":"https://github.com/jayrdeaton/ReelSort/issues"},"bin":{"reelsort":"dist/cli.js"},"dist":{"shasum":"f382dff4acf681b06b0e7fe6cb45c7be430b803a","tarball":"https://registry.npmjs.org/reelsort/-/reelsort-0.2.5.tgz","fileCount":7,"integrity":"sha512-gFd6fvinkUwcHj7Y+mMBAssBNw7eFc8qXiRw9kLKZPvKsjYRtGN352K2tUGaX+MN9G38uGzzoF+GqAw7Br2ksA==","signatures":[{"sig":"MEYCIQDeBqla6enqDvNICbep95GM5C6lqp8++DedXYKwisTMuAIhAPD6O1l9D9rfGnuSnLfyQ99IOBCgMbk9kebO9egvSAVU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":322736},"main":"./dist/index.js","type":"commonjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"gitHead":"d751d3712dc26496a9711351bea628fae0e1879e","scripts":{"fix":"npm run lint:fix","lint":"eslint","test":"jest","build":"tsup","clean":"rm -rf dist","release":"git push --follow-tags","lint:fix":"eslint --fix","validate":"npm run typecheck && npm run lint && npm test && npm run build","typecheck":"tsc --noEmit","preversion":"npm ci && npm run validate","test:watch":"jest --watchAll","build:watch":"tsup --watch","release:major":"npm version major && git push --follow-tags","release:minor":"npm version minor && git push --follow-tags","release:patch":"npm version patch && git push --follow-tags","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:be2d0693-875a-4d94-8f5e-d99660edf8e8"}},"repository":{"url":"git+https://github.com/jayrdeaton/ReelSort.git","type":"git"},"_npmVersion":"11.16.0","description":"CLI to rename, organize, and manage your movie and TV library — Plex-compatible naming, hardlink support, and automated watch mode.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","dependencies":{"rimraf":"^6.1.3","termkit":"^2.2.0","chokidar":"^5.0.0","roman-numeral":"^0.2.6","to-title-case":"^1.0.0","better-sqlite3":"^12.10.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","eslint":"^10.4.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.8.3","typescript":"^6.0.3","@types/jest":"^30.0.0","@types/node":"^25.0.0","@types/chokidar":"^1.7.5","typescript-eslint":"^8.59.3","@types/better-sqlite3":"^7.6.13","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.5","@typescript-eslint/parser":"^8.59.3","eslint-plugin-package-json":"^1.0.0","eslint-plugin-simple-import-sort":"^13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/reelsort_0.2.5_1780804835768_0.7317061466667065","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"reelsort","version":"0.2.6","keywords":["media","library","organizer","plex","rename","movies","tv","television","cli","file-management","media-manager","hardlink","watch-folder"],"author":{"name":"Jay Deaton"},"license":"ISC","_id":"reelsort@0.2.6","maintainers":[{"name":"jayrdeaton","email":"jayrdeaton@gmail.com"}],"homepage":"https://github.com/jayrdeaton/ReelSort#readme","bugs":{"url":"https://github.com/jayrdeaton/ReelSort/issues"},"bin":{"reelsort":"dist/cli.js"},"dist":{"shasum":"92ffa71825af45afa12da0bce929cc5ebd78328a","tarball":"https://registry.npmjs.org/reelsort/-/reelsort-0.2.6.tgz","fileCount":7,"integrity":"sha512-zouPIDLiwfN2+VN2yPFIpaAEyh98PDnvT2dvdrd2odg4lMBapJdokEDOENyrN+Hbn95X4KbaeAFHgNe3n1I9FA==","signatures":[{"sig":"MEYCIQC6s2o4jCzmY/DCV15eWzR+56wCoCgY3upacLuwXeoPqQIhAMlDTatdshC7NF+TcgyydUY+huN8Qe48RW2KZI2nsDhC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":329531},"main":"./dist/index.js","type":"commonjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"gitHead":"29d9266445b60c9cd74a9fb54fd3e35f34027753","scripts":{"fix":"npm run lint:fix","lint":"eslint","test":"jest","build":"tsup","clean":"rm -rf dist","release":"git push --follow-tags","lint:fix":"eslint --fix","validate":"npm run typecheck && npm run lint && npm test && npm run build","typecheck":"tsc --noEmit","preversion":"npm ci && npm run validate","test:watch":"jest --watchAll","build:watch":"tsup --watch","release:major":"npm version major && git push --follow-tags","release:minor":"npm version minor && git push --follow-tags","release:patch":"npm version patch && git push --follow-tags","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:be2d0693-875a-4d94-8f5e-d99660edf8e8"}},"repository":{"url":"git+https://github.com/jayrdeaton/ReelSort.git","type":"git"},"_npmVersion":"11.16.0","description":"CLI to rename, organize, and manage your movie and TV library — Plex-compatible naming, hardlink support, and automated watch mode.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","dependencies":{"rimraf":"^6.1.3","termkit":"^2.2.0","chokidar":"^5.0.0","roman-numeral":"^0.2.6","to-title-case":"^1.0.0","better-sqlite3":"^12.10.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","eslint":"^10.4.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.8.3","typescript":"^6.0.3","@types/jest":"^30.0.0","@types/node":"^25.0.0","@types/chokidar":"^1.7.5","typescript-eslint":"^8.59.3","@types/better-sqlite3":"^7.6.13","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.5","@typescript-eslint/parser":"^8.59.3","eslint-plugin-package-json":"^1.0.0","eslint-plugin-simple-import-sort":"^13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/reelsort_0.2.6_1780806363175_0.01896650077451012","host":"s3://npm-registry-packages-npm-production"}},"0.2.7":{"name":"reelsort","version":"0.2.7","keywords":["media","library","organizer","plex","rename","movies","tv","television","cli","file-management","media-manager","hardlink","watch-folder"],"author":{"name":"Jay Deaton"},"license":"ISC","_id":"reelsort@0.2.7","maintainers":[{"name":"jayrdeaton","email":"jayrdeaton@gmail.com"}],"homepage":"https://github.com/jayrdeaton/ReelSort#readme","bugs":{"url":"https://github.com/jayrdeaton/ReelSort/issues"},"bin":{"reelsort":"dist/cli.js"},"dist":{"shasum":"a9ed9534798abe46f9921f0da5ed850f84d2c25a","tarball":"https://registry.npmjs.org/reelsort/-/reelsort-0.2.7.tgz","fileCount":7,"integrity":"sha512-LpHzpORlkfh6D/qMkIesEhUhoN67DkVaHpBJ81O7TgdxjJu2xrdx2r7mbkdXzwN2tMy7T03ueT/RMhQayPDI8A==","signatures":[{"sig":"MEYCIQC9x8ZxbePj8VzluVMM+wBTPLs243e2F+pPYRuSJVtZ3gIhAKdELlFFbc7i22yESbTgchK20MEXWs83/Js0sQJZi/QS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":334710},"main":"./dist/index.js","type":"commonjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"gitHead":"d59a072ca9515f3dcb248a3f377fd2d4e7f9a587","scripts":{"fix":"npm run lint:fix","lint":"eslint","test":"jest","build":"tsup","clean":"rm -rf dist","release":"git push --follow-tags","lint:fix":"eslint --fix","validate":"npm run typecheck && npm run lint && npm test && npm run build","typecheck":"tsc --noEmit","preversion":"npm ci && npm run validate","test:watch":"jest --watchAll","build:watch":"tsup --watch","release:major":"npm version major && git push --follow-tags","release:minor":"npm version minor && git push --follow-tags","release:patch":"npm version patch && git push --follow-tags","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:be2d0693-875a-4d94-8f5e-d99660edf8e8"}},"repository":{"url":"git+https://github.com/jayrdeaton/ReelSort.git","type":"git"},"_npmVersion":"11.16.0","description":"CLI to rename, organize, and manage your movie and TV library — Plex-compatible naming, hardlink support, and automated watch mode.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","dependencies":{"rimraf":"^6.1.3","termkit":"^2.2.0","chokidar":"^5.0.0","roman-numeral":"^0.2.6","to-title-case":"^1.0.0","better-sqlite3":"^12.10.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","eslint":"^10.4.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.8.3","typescript":"^6.0.3","@types/jest":"^30.0.0","@types/node":"^25.0.0","@types/chokidar":"^1.7.5","typescript-eslint":"^8.59.3","@types/better-sqlite3":"^7.6.13","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.5","@typescript-eslint/parser":"^8.59.3","eslint-plugin-package-json":"^1.0.0","eslint-plugin-simple-import-sort":"^13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/reelsort_0.2.7_1780807160135_0.444799880496465","host":"s3://npm-registry-packages-npm-production"}},"0.2.8":{"name":"reelsort","version":"0.2.8","keywords":["media","library","organizer","plex","rename","movies","tv","television","cli","file-management","media-manager","hardlink","watch-folder"],"author":{"name":"Jay Deaton"},"license":"ISC","_id":"reelsort@0.2.8","maintainers":[{"name":"jayrdeaton","email":"jayrdeaton@gmail.com"}],"homepage":"https://github.com/jayrdeaton/ReelSort#readme","bugs":{"url":"https://github.com/jayrdeaton/ReelSort/issues"},"bin":{"reelsort":"dist/cli.js"},"dist":{"shasum":"0240c68409b82dc27f4f367be55d8f33102e67d9","tarball":"https://registry.npmjs.org/reelsort/-/reelsort-0.2.8.tgz","fileCount":7,"integrity":"sha512-4C7+n91zJtNJEeuox3QmBlCS8lUqqA4iMNAVyscUILwLzNaamlbPev7CyyljzPp7nDB3KO9vcaUj1TJZW9oAlA==","signatures":[{"sig":"MEUCIFsvYPjR89oNXfWJBLwKWymkACvwQVBu4UTp6PvSLqN0AiEAmroz3cWASeX4fe5gUIMUb+y3WvZcxyKkMJB1urBoGIY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":331841},"main":"./dist/index.js","type":"commonjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"gitHead":"f830fdb64e9159cb5b31c314df2f6017445f9592","scripts":{"fix":"npm run lint:fix","lint":"eslint","test":"jest","build":"tsup","clean":"rm -rf dist","release":"git push --follow-tags","lint:fix":"eslint --fix","validate":"npm run typecheck && npm run lint && npm test && npm run build","typecheck":"tsc --noEmit","preversion":"npm ci && npm run validate","test:watch":"jest --watchAll","build:watch":"tsup --watch","release:major":"npm version major && git push --follow-tags","release:minor":"npm version minor && git push --follow-tags","release:patch":"npm version patch && git push --follow-tags","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:be2d0693-875a-4d94-8f5e-d99660edf8e8"}},"repository":{"url":"git+https://github.com/jayrdeaton/ReelSort.git","type":"git"},"_npmVersion":"11.16.0","description":"CLI to rename, organize, and manage your movie and TV library — Plex-compatible naming, hardlink support, and automated watch mode.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","dependencies":{"rimraf":"^6.1.3","termkit":"^2.3.1","chokidar":"^5.0.0","roman-numeral":"^0.2.6","to-title-case":"^1.0.0","better-sqlite3":"^12.10.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","eslint":"^10.4.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.8.3","typescript":"^6.0.3","@types/jest":"^30.0.0","@types/node":"^25.0.0","@types/chokidar":"^1.7.5","typescript-eslint":"^8.59.3","@types/better-sqlite3":"^7.6.13","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.5","@typescript-eslint/parser":"^8.59.3","eslint-plugin-package-json":"^1.0.0","eslint-plugin-simple-import-sort":"^13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/reelsort_0.2.8_1780815890285_0.008482517968593672","host":"s3://npm-registry-packages-npm-production"}},"0.2.9":{"name":"reelsort","version":"0.2.9","keywords":["media","library","organizer","plex","rename","movies","tv","television","cli","file-management","media-manager","hardlink","watch-folder"],"author":{"name":"Jay Deaton"},"license":"ISC","_id":"reelsort@0.2.9","maintainers":[{"name":"jayrdeaton","email":"jayrdeaton@gmail.com"}],"homepage":"https://github.com/jayrdeaton/ReelSort#readme","bugs":{"url":"https://github.com/jayrdeaton/ReelSort/issues"},"bin":{"reelsort":"dist/cli.js"},"dist":{"shasum":"2cb51cefd56ec3b65100120a81097380fcd96e72","tarball":"https://registry.npmjs.org/reelsort/-/reelsort-0.2.9.tgz","fileCount":7,"integrity":"sha512-0hC0qOaCq2GIJXJmyA6duPrklo5bGazRW+tWRefJSSor4XKZ6qT6sX5owaivgk/lUT1by3lODigiRjKjkeap+g==","signatures":[{"sig":"MEUCIQD0zLG2AygK7pduo4QX7lxnPIl0o3JgnJ2mhnhJXR0ulQIgdfYrWPPL84tY0e9BnPBdgpJTsu7/R3r1JHxB/IfeI9c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":331535},"main":"./dist/index.js","type":"commonjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"gitHead":"7cdfc5d7b14179343a45b0d518c97889b79bb4ff","scripts":{"fix":"npm run lint:fix","lint":"eslint","test":"jest","build":"tsup","clean":"rm -rf dist","release":"git push --follow-tags","lint:fix":"eslint --fix","validate":"npm run typecheck && npm run lint && npm test && npm run build","typecheck":"tsc --noEmit","preversion":"npm ci && npm run validate","test:watch":"jest --watchAll","build:watch":"tsup --watch","release:major":"npm version major && git push --follow-tags","release:minor":"npm version minor && git push --follow-tags","release:patch":"npm version patch && git push --follow-tags","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:be2d0693-875a-4d94-8f5e-d99660edf8e8"}},"repository":{"url":"git+https://github.com/jayrdeaton/ReelSort.git","type":"git"},"_npmVersion":"11.16.0","description":"CLI to rename, organize, and manage your movie and TV library — Plex-compatible naming, hardlink support, and automated watch mode.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","dependencies":{"rimraf":"^6.1.3","termkit":"^2.3.1","chokidar":"^5.0.0","roman-numeral":"^0.2.6","to-title-case":"^1.0.0","better-sqlite3":"^12.10.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","eslint":"^10.4.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.8.3","typescript":"^6.0.3","@types/jest":"^30.0.0","@types/node":"^25.0.0","@types/chokidar":"^1.7.5","typescript-eslint":"^8.59.3","@types/better-sqlite3":"^7.6.13","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.5","@typescript-eslint/parser":"^8.59.3","eslint-plugin-package-json":"^1.0.0","eslint-plugin-simple-import-sort":"^13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/reelsort_0.2.9_1780816815799_0.20517772704218573","host":"s3://npm-registry-packages-npm-production"}},"0.2.10":{"name":"reelsort","version":"0.2.10","keywords":["media","library","organizer","plex","rename","movies","tv","television","cli","file-management","media-manager","hardlink","watch-folder"],"author":{"name":"Jay Deaton"},"license":"ISC","_id":"reelsort@0.2.10","maintainers":[{"name":"jayrdeaton","email":"jayrdeaton@gmail.com"}],"homepage":"https://github.com/jayrdeaton/ReelSort#readme","bugs":{"url":"https://github.com/jayrdeaton/ReelSort/issues"},"bin":{"reelsort":"dist/cli.js"},"dist":{"shasum":"8b18e73318fd6ec797cd864d34a6ce42a499e2b9","tarball":"https://registry.npmjs.org/reelsort/-/reelsort-0.2.10.tgz","fileCount":7,"integrity":"sha512-UVZXyVoPnzlUD0fOE1r3Zt1YwshUTzVYKwNm/Vd67FNaMJOP2pO38B1BD1G/DCK5JOiAvHvYH4KODbMxDoPIaA==","signatures":[{"sig":"MEUCIA0gTpLMlb/0WaD+Tzllw5tX+wICeqU28O2o1fwMGxJdAiEA5jUHnuQjCOdLdu0nKeyodaeFjBeKyindEACR1y7xMWc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":331597},"main":"./dist/index.js","type":"commonjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"gitHead":"2feeb637476b0668bfe5bec6bf8df4bdc1ae0e5b","scripts":{"fix":"npm run lint:fix","lint":"eslint","test":"jest","build":"tsup","clean":"rm -rf dist","release":"git push --follow-tags","lint:fix":"eslint --fix","validate":"npm run typecheck && npm run lint && npm test && npm run build","typecheck":"tsc --noEmit","preversion":"npm ci && npm run validate","test:watch":"jest --watchAll","build:watch":"tsup --watch","release:major":"npm version major && git push --follow-tags","release:minor":"npm version minor && git push --follow-tags","release:patch":"npm version patch && git push --follow-tags","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:be2d0693-875a-4d94-8f5e-d99660edf8e8"}},"repository":{"url":"git+https://github.com/jayrdeaton/ReelSort.git","type":"git"},"_npmVersion":"11.16.0","description":"CLI to rename, organize, and manage your movie and TV library — Plex-compatible naming, hardlink support, and automated watch mode.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","dependencies":{"rimraf":"^6.1.3","termkit":"^2.3.1","chokidar":"^5.0.0","roman-numeral":"^0.2.6","to-title-case":"^1.0.0","better-sqlite3":"^12.10.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","eslint":"^10.4.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.8.3","typescript":"^6.0.3","@types/jest":"^30.0.0","@types/node":"^25.0.0","@types/chokidar":"^1.7.5","typescript-eslint":"^8.59.3","@types/better-sqlite3":"^7.6.13","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.5","@typescript-eslint/parser":"^8.59.3","eslint-plugin-package-json":"^1.0.0","eslint-plugin-simple-import-sort":"^13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/reelsort_0.2.10_1780823532572_0.5865743304984745","host":"s3://npm-registry-packages-npm-production"}},"0.2.11":{"name":"reelsort","version":"0.2.11","keywords":["media","library","organizer","plex","rename","movies","tv","television","cli","file-management","media-manager","hardlink","watch-folder"],"author":{"name":"Jay Deaton"},"license":"ISC","_id":"reelsort@0.2.11","maintainers":[{"name":"jayrdeaton","email":"jayrdeaton@gmail.com"}],"homepage":"https://github.com/jayrdeaton/ReelSort#readme","bugs":{"url":"https://github.com/jayrdeaton/ReelSort/issues"},"bin":{"reelsort":"dist/cli.js"},"dist":{"shasum":"95fe1b1451efe19be21dd5f9f57c1fd8969271df","tarball":"https://registry.npmjs.org/reelsort/-/reelsort-0.2.11.tgz","fileCount":7,"integrity":"sha512-hmpE8YAFaCD7e9tqR+ls8AXytLv+me96B7QWEzTNq1F5cbVj5mydLBI9ZNcdQi2wpf0SDDz06+G7p7GHYjt3lw==","signatures":[{"sig":"MEUCIQDMkDg2GGlMt0BxLJrGloLZxdRNQBnUyCqPjbQh4t0QbAIgfWpsLFnCSwg0pPrAqtAEQuJIcxkfK1cJBNIU3bKwJ28=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":332182},"main":"./dist/index.js","type":"commonjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"gitHead":"59be3a607b55bc7cdde764b2959f37999a6d34f9","scripts":{"fix":"npm run lint:fix","lint":"eslint","test":"jest","build":"tsup","clean":"rm -rf dist","release":"git push --follow-tags","lint:fix":"eslint --fix","validate":"npm run typecheck && npm run lint && npm test && npm run build","typecheck":"tsc --noEmit","preversion":"npm ci && npm run validate","test:watch":"jest --watchAll","build:watch":"tsup --watch","release:major":"npm version major && git push --follow-tags","release:minor":"npm version minor && git push --follow-tags","release:patch":"npm version patch && git push --follow-tags","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:be2d0693-875a-4d94-8f5e-d99660edf8e8"}},"repository":{"url":"git+https://github.com/jayrdeaton/ReelSort.git","type":"git"},"_npmVersion":"11.16.0","description":"CLI to rename, organize, and manage your movie and TV library — Plex-compatible naming, hardlink support, and automated watch mode.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","dependencies":{"rimraf":"^6.1.3","termkit":"^2.3.1","chokidar":"^5.0.0","roman-numeral":"^0.2.6","to-title-case":"^1.0.0","better-sqlite3":"^12.10.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","tsup":"^8.5.1","eslint":"^10.4.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","prettier":"^3.8.3","typescript":"^6.0.3","@types/jest":"^30.0.0","@types/node":"^25.0.0","@types/chokidar":"^1.7.5","typescript-eslint":"^8.59.3","@types/better-sqlite3":"^7.6.13","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.5","@typescript-eslint/parser":"^8.59.3","eslint-plugin-package-json":"^1.0.0","eslint-plugin-simple-import-sort":"^13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/reelsort_0.2.11_1780827082374_0.6653827693847374","host":"s3://npm-registry-packages-npm-production"}},"0.2.12":{"name":"reelsort","version":"0.2.12","keywords":["media","library","organizer","plex","rename","movies","tv","television","cli","file-management","media-manager","hardlink","watch-folder"],"author":{"name":"Jay Deaton"},"license":"ISC","_id":"reelsort@0.2.12","maintainers":[{"name":"jayrdeaton","email":"jayrdeaton@gmail.com"}],"homepage":"https://github.com/jayrdeaton/ReelSort#readme","bugs":{"url":"https://github.com/jayrdeaton/ReelSort/issues"},"bin":{"reelsort":"dist/cli.js"},"dist":{"shasum":"3650f50b8b48bfe16e88b68eef88c9763ab8e9e3","tarball":"https://registry.npmjs.org/reelsort/-/reelsort-0.2.12.tgz","fileCount":7,"integrity":"sha512-hKuwtzA0k1QMmZNT4jPfK7KpxvRtI7jigU8XOIhQqFb5iA60TRw6joKnPCwuStGH832zpD+syoVduGmWOw8QYg==","signatures":[{"sig":"MEUCIQDT45F4kNW3hLpOghBXAEV9vLHKpWQNE3/t7i77LL5N7gIgfTUh93g1SzTXCNc8piIvEWwoc1iQprcBRdLuZhNAHCM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":347914},"main":"./dist/index.js","type":"commonjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"gitHead":"610317f343ad0dc813530938b40bb6db24ee2fa1","scripts":{"fix":"npm run lint:fix","lint":"eslint","test":"jest","build":"tsup","clean":"rm -rf dist","release":"git push --follow-tags","lint:fix":"eslint --fix","validate":"npm run typecheck && npm run lint && npm test && npm run build","typecheck":"tsc --noEmit","preversion":"npm ci && npm run validate","test:watch":"jest --watchAll","build:watch":"tsup --watch","release:major":"npm version major && git push --follow-tags","release:minor":"npm version minor && git push --follow-tags","release:patch":"npm version patch && git push --follow-tags","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:be2d0693-875a-4d94-8f5e-d99660edf8e8"}},"repository":{"url":"git+https://github.com/jayrdeaton/ReelSort.git","type":"git"},"_npmVersion":"11.17.0","description":"CLI to rename, organize, and manage your movie and TV library — Plex-compatible naming, hardlink support, and automated watch mode.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","dependencies":{"rimraf":"^6.1.3","termkit":"^2.4.0","chokidar":"^5.0.0","roman-numeral":"^0.2.6","to-title-case":"^1.0.0","better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","tsup":"^8.5.1","eslint":"^10.5.0","ts-jest":"^29.4.11","ts-node":"^10.9.2","prettier":"^3.8.4","typescript":"^6.0.3","@types/jest":"^30.0.0","@types/node":"^25.9.3","@types/chokidar":"^2.1.7","typescript-eslint":"^8.61.1","@types/better-sqlite3":"^7.6.13","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.6","@typescript-eslint/parser":"^8.61.1","eslint-plugin-package-json":"^1.4.0","eslint-plugin-simple-import-sort":"^13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/reelsort_0.2.12_1781841219776_0.8932914459533692","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"reelsort","version":"0.3.0","keywords":["media","library","organizer","plex","rename","movies","tv","television","cli","file-management","media-manager","hardlink","watch-folder"],"author":{"name":"Jay Deaton"},"license":"ISC","_id":"reelsort@0.3.0","maintainers":[{"name":"jayrdeaton","email":"jayrdeaton@gmail.com"}],"homepage":"https://github.com/jayrdeaton/ReelSort#readme","bugs":{"url":"https://github.com/jayrdeaton/ReelSort/issues"},"bin":{"reelsort":"dist/cli.js"},"dist":{"shasum":"fa3144c95158c82140265d634d5b924be8dfcbd5","tarball":"https://registry.npmjs.org/reelsort/-/reelsort-0.3.0.tgz","fileCount":7,"integrity":"sha512-yzbmhSwsAnng6Iuz05G/xst9sc0KkvVgXdzNvoAuX5JfCbGk15npNAhkI/0PqqVDh4IDFI37t57PQx1iEaw7Aw==","signatures":[{"sig":"MEUCIC+2DxURTxEQqswdZtvWCxylN2ppdOK3BbZMJtJQQ6yjAiEA1ygTGmL6v/xh0mzuGKq3Gjw0zWBOByDG52ttlbNW2xo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":400243},"main":"./dist/index.js","type":"commonjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"gitHead":"756a1839664b51c4b0c25f4e752b0f91de6365fb","scripts":{"fix":"npm run lint:fix","lint":"eslint","test":"jest","build":"tsup","clean":"rm -rf dist","release":"git push --follow-tags","lint:fix":"eslint --fix","validate":"npm run typecheck && npm run lint && npm test && npm run build","typecheck":"tsc --noEmit","preversion":"npm ci && npm run validate","test:watch":"jest --watchAll","build:watch":"tsup --watch","release:major":"npm version major && git push --follow-tags","release:minor":"npm version minor && git push --follow-tags","release:patch":"npm version patch && git push --follow-tags","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:be2d0693-875a-4d94-8f5e-d99660edf8e8"}},"repository":{"url":"git+https://github.com/jayrdeaton/ReelSort.git","type":"git"},"_npmVersion":"11.17.0","description":"CLI to rename, organize, and manage your movie and TV library — Plex-compatible naming, hardlink support, and automated watch mode.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.0","dependencies":{"rimraf":"^6.1.3","termkit":"^2.4.4","chokidar":"^5.0.0","roman-numeral":"^0.2.6","to-title-case":"^1.0.0","better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","tsup":"^8.5.1","eslint":"^10.5.0","ts-jest":"^29.4.11","ts-node":"^10.9.2","prettier":"^3.8.4","typescript":"^6.0.3","@types/jest":"^30.0.0","@types/node":"^25.9.3","@types/chokidar":"^2.1.7","typescript-eslint":"^8.61.1","@types/better-sqlite3":"^7.6.13","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.6","@typescript-eslint/parser":"^8.61.1","eslint-plugin-package-json":"^1.4.0","eslint-plugin-simple-import-sort":"^13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/reelsort_0.3.0_1782531568797_0.7700096106510859","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"reelsort","version":"0.3.1","keywords":["media","library","organizer","plex","rename","movies","tv","television","cli","file-management","media-manager","hardlink","watch-folder"],"author":{"name":"Jay Deaton"},"license":"ISC","_id":"reelsort@0.3.1","maintainers":[{"name":"jayrdeaton","email":"jayrdeaton@gmail.com"}],"homepage":"https://github.com/jayrdeaton/ReelSort#readme","bugs":{"url":"https://github.com/jayrdeaton/ReelSort/issues"},"bin":{"reelsort":"dist/cli.js"},"dist":{"shasum":"2e61f7bed45f1647296d1a1451c65c186d1fc0c0","tarball":"https://registry.npmjs.org/reelsort/-/reelsort-0.3.1.tgz","fileCount":7,"integrity":"sha512-UNfnIOkdIrXFoAv3A5/jk/Fu1qlE5RRTDDXKXlkHfWrK31KE4ERyRl008VY0x8wHLmr1zqrGF9TZA8WleRSu3Q==","signatures":[{"sig":"MEUCIQD6R7HYTMjuF9P4aAGs8TaSM7X2/DikMSo1/FPDaKUdCgIgC9Bd7LiuIx3N2grmS4pERb6U398VgEqp4W1HMfX7J9o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":401915},"main":"./dist/index.js","type":"commonjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"gitHead":"aed493668a21f14f5127a0034767c7d45f74981c","scripts":{"fix":"npm run lint:fix","lint":"eslint","test":"jest","build":"tsup","clean":"rm -rf dist","release":"git push --follow-tags","lint:fix":"eslint --fix","validate":"npm run typecheck && npm run lint && npm test && npm run build","typecheck":"tsc --noEmit","preversion":"npm ci && npm run validate","test:watch":"jest --watchAll","build:watch":"tsup --watch","release:major":"npm version major && git push --follow-tags","release:minor":"npm version minor && git push --follow-tags","release:patch":"npm version patch && git push --follow-tags","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:be2d0693-875a-4d94-8f5e-d99660edf8e8"}},"repository":{"url":"git+https://github.com/jayrdeaton/ReelSort.git","type":"git"},"_npmVersion":"11.17.0","description":"CLI to rename, organize, and manage your movie and TV library — Plex-compatible naming, hardlink support, and automated watch mode.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.0","dependencies":{"rimraf":"^6.1.3","termkit":"^2.4.4","chokidar":"^5.0.0","roman-numeral":"^0.2.6","to-title-case":"^1.0.0","better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","tsup":"^8.5.1","eslint":"^10.5.0","ts-jest":"^29.4.11","ts-node":"^10.9.2","prettier":"^3.8.4","typescript":"^6.0.3","@types/jest":"^30.0.0","@types/node":"^25.9.3","@types/chokidar":"^2.1.7","typescript-eslint":"^8.61.1","@types/better-sqlite3":"^7.6.13","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.6","@typescript-eslint/parser":"^8.61.1","eslint-plugin-package-json":"^1.4.0","eslint-plugin-simple-import-sort":"^13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/reelsort_0.3.1_1782546565907_0.8437904353109473","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"reelsort","version":"0.3.2","keywords":["media","library","organizer","plex","rename","movies","tv","television","cli","file-management","media-manager","hardlink","watch-folder"],"author":{"name":"Jay Deaton"},"license":"ISC","_id":"reelsort@0.3.2","maintainers":[{"name":"jayrdeaton","email":"jayrdeaton@gmail.com"}],"homepage":"https://github.com/jayrdeaton/ReelSort#readme","bugs":{"url":"https://github.com/jayrdeaton/ReelSort/issues"},"bin":{"reelsort":"dist/cli.js"},"dist":{"shasum":"29ad338f67c525271d9e53a7c26e20e2536cbcbd","tarball":"https://registry.npmjs.org/reelsort/-/reelsort-0.3.2.tgz","fileCount":16,"integrity":"sha512-+A4plOkL/yHKr6KYbiqpsOY5E7bNQOTFdc7gEPovUuQ7lUBiT5QKgj+n04zbmYSroPdT8CWnBh93RfNCfUEFmw==","signatures":[{"sig":"MEUCIQDf+D2CulGag4R2c0XzBEBvj25BKFcsz1QEIGKqYVCgRAIgBicxylic0nBd7r148ixWO1OLxhrN6VNVoLjWPsp35tU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":371744},"main":"./dist/index.js","type":"commonjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"gitHead":"ec6c26256192c9cc04df7d334b3e8259b8225d59","scripts":{"fix":"npm run lint:fix","lint":"eslint","test":"jest","build":"tsup","clean":"rm -rf dist","release":"git push --follow-tags","lint:fix":"eslint --fix","validate":"npm run typecheck && npm run lint && npm test && npm run build","typecheck":"tsc --noEmit","preversion":"npm ci && npm run validate","test:watch":"jest --watchAll","build:watch":"tsup --watch","release:major":"npm version major && git push --follow-tags","release:minor":"npm version minor && git push --follow-tags","release:patch":"npm version patch && git push --follow-tags","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:be2d0693-875a-4d94-8f5e-d99660edf8e8"}},"repository":{"url":"git+https://github.com/jayrdeaton/ReelSort.git","type":"git"},"_npmVersion":"11.18.0","description":"CLI to rename, organize, and manage your movie and TV library — Plex-compatible naming, hardlink support, and automated watch mode.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.0","dependencies":{"rimraf":"^6.1.3","termkit":"^2.4.4","chokidar":"^5.0.0","roman-numeral":"^0.2.6","to-title-case":"^1.0.0","better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","tsup":"^8.5.1","eslint":"^10.5.0","ts-jest":"^29.4.11","ts-node":"^10.9.2","prettier":"^3.8.4","typescript":"^6.0.3","@types/jest":"^30.0.0","@types/node":"^25.9.3","@types/chokidar":"^2.1.7","typescript-eslint":"^8.61.1","@types/better-sqlite3":"^7.6.13","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.6","@typescript-eslint/parser":"^8.61.1","eslint-plugin-package-json":"^1.4.0","eslint-plugin-simple-import-sort":"^13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/reelsort_0.3.2_1782788165156_0.12420497772360517","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"reelsort","version":"0.3.3","keywords":["media","library","organizer","plex","rename","movies","tv","television","cli","file-management","media-manager","hardlink","watch-folder"],"author":{"name":"Jay Deaton"},"license":"ISC","_id":"reelsort@0.3.3","maintainers":[{"name":"jayrdeaton","email":"jayrdeaton@gmail.com"}],"homepage":"https://github.com/jayrdeaton/ReelSort#readme","bugs":{"url":"https://github.com/jayrdeaton/ReelSort/issues"},"bin":{"reelsort":"dist/cli.js"},"dist":{"shasum":"61fcd6d51815b8311346d24021261f576ad5c514","tarball":"https://registry.npmjs.org/reelsort/-/reelsort-0.3.3.tgz","fileCount":16,"integrity":"sha512-IlyoZLeBumeTAZuR8Skjq13IDUdLogL3HGPoE3d0aB8/FY40vi+XaRcL7v5Z8UObbVWEWJu+Ho8uGDUv/CJUzA==","signatures":[{"sig":"MEYCIQDpiveqLVdNwA6jIT/AUJLe424lVB34bcgEsV1aX4ZM3wIhAJ1ANYEdKsiOaxZSz9bGvksGG/pXd3hQ5m95DqC28ZgK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":372986},"main":"./dist/index.js","type":"commonjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"gitHead":"38d636ece92e475aa5e954746fb92cf1b4248ee5","scripts":{"fix":"npm run lint:fix","lint":"eslint","test":"jest","build":"tsup","clean":"rm -rf dist","release":"git push --follow-tags","lint:fix":"eslint --fix","validate":"npm run typecheck && npm run lint && npm test && npm run build","typecheck":"tsc --noEmit","preversion":"npm ci && npm run validate","test:watch":"jest --watchAll","build:watch":"tsup --watch","release:major":"npm version major && git push --follow-tags","release:minor":"npm version minor && git push --follow-tags","release:patch":"npm version patch && git push --follow-tags","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:be2d0693-875a-4d94-8f5e-d99660edf8e8"}},"repository":{"url":"git+https://github.com/jayrdeaton/ReelSort.git","type":"git"},"_npmVersion":"11.18.0","description":"CLI to rename, organize, and manage your movie and TV library — Plex-compatible naming, hardlink support, and automated watch mode.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.0","dependencies":{"rimraf":"^6.1.3","termkit":"^2.4.4","chokidar":"^5.0.0","roman-numeral":"^0.2.6","to-title-case":"^1.0.0","better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","tsup":"^8.5.1","eslint":"^10.5.0","ts-jest":"^29.4.11","ts-node":"^10.9.2","prettier":"^3.8.4","typescript":"^6.0.3","@types/jest":"^30.0.0","@types/node":"^25.9.3","@types/chokidar":"^2.1.7","typescript-eslint":"^8.61.1","@types/better-sqlite3":"^7.6.13","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.6","@typescript-eslint/parser":"^8.61.1","eslint-plugin-package-json":"^1.4.0","eslint-plugin-simple-import-sort":"^13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/reelsort_0.3.3_1782791805050_0.29424076912435715","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"reelsort","version":"0.4.0","keywords":["media","library","organizer","plex","rename","movies","tv","television","cli","file-management","media-manager","hardlink","watch-folder"],"author":{"name":"Jay Deaton"},"license":"ISC","_id":"reelsort@0.4.0","maintainers":[{"name":"jayrdeaton","email":"jayrdeaton@gmail.com"}],"homepage":"https://github.com/jayrdeaton/ReelSort#readme","bugs":{"url":"https://github.com/jayrdeaton/ReelSort/issues"},"bin":{"reelsort":"dist/cli.js"},"dist":{"shasum":"79c7c72a518b317fcb97b38153b890b6784ea67c","tarball":"https://registry.npmjs.org/reelsort/-/reelsort-0.4.0.tgz","fileCount":16,"integrity":"sha512-2kM1U/BBpdKShViP+Vm8XDz2u/CvS+hAUaKFarcyDssYqq8oJRZZcg7beQKf8fqucTH6A7PpbwJqcBINAle4JA==","signatures":[{"sig":"MEYCIQCQXGRw9xJDUGT2HryaGuU1RkaBgk6/isVTKeU2zaHmXAIhAJ0DjWO79QpYeidZOYujwxDvqmNg08FrRO1HgbyBH86T","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":375538},"main":"./dist/index.js","type":"commonjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"gitHead":"b4001a41a4632c42aec7e4e4ce2d772efdc67a92","scripts":{"fix":"npm run lint:fix","lint":"eslint","test":"jest","build":"tsup","clean":"rm -rf dist","release":"git push --follow-tags","lint:fix":"eslint --fix","validate":"npm run typecheck && npm run lint && npm test && npm run build","typecheck":"tsc --noEmit","preversion":"npm ci && npm run validate","test:watch":"jest --watchAll","build:watch":"tsup --watch","release:major":"npm version major && git push --follow-tags","release:minor":"npm version minor && git push --follow-tags","release:patch":"npm version patch && git push --follow-tags","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:be2d0693-875a-4d94-8f5e-d99660edf8e8"}},"repository":{"url":"git+https://github.com/jayrdeaton/ReelSort.git","type":"git"},"_npmVersion":"11.18.0","description":"CLI to rename, organize, and manage your movie and TV library — Plex-compatible naming, hardlink support, and automated watch mode.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.0","dependencies":{"rimraf":"^6.1.3","termkit":"^2.4.4","chokidar":"^5.0.0","roman-numeral":"^0.2.6","to-title-case":"^1.0.0","better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","tsup":"^8.5.1","eslint":"^10.5.0","ts-jest":"^29.4.11","ts-node":"^10.9.2","prettier":"^3.8.4","typescript":"^6.0.3","@types/jest":"^30.0.0","@types/node":"^25.9.3","@types/chokidar":"^2.1.7","typescript-eslint":"^8.61.1","@types/better-sqlite3":"^7.6.13","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.6","@typescript-eslint/parser":"^8.61.1","eslint-plugin-package-json":"^1.4.0","eslint-plugin-simple-import-sort":"^13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/reelsort_0.4.0_1782797233997_0.3641947098255587","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"reelsort","version":"0.4.1","keywords":["media","library","organizer","plex","rename","movies","tv","television","cli","file-management","media-manager","hardlink","watch-folder"],"author":{"name":"Jay Deaton"},"license":"ISC","_id":"reelsort@0.4.1","maintainers":[{"name":"jayrdeaton","email":"jayrdeaton@gmail.com"}],"homepage":"https://github.com/jayrdeaton/ReelSort#readme","bugs":{"url":"https://github.com/jayrdeaton/ReelSort/issues"},"bin":{"reelsort":"dist/cli.js"},"dist":{"shasum":"f5e754f72a34500a78118e0862be4b7656a0a759","tarball":"https://registry.npmjs.org/reelsort/-/reelsort-0.4.1.tgz","fileCount":16,"integrity":"sha512-99vdZX44qfc7sNNQddLqdB3CtFTqP13zKAAZQhf4p4JSo2/e3s08DzSUWkYA3MehjTo8u1kDg6Zk12K3eCE42w==","signatures":[{"sig":"MEYCIQDtmDMHiGm7YbEpief1UQj/Ier9/mc1oGNacpGYQ8EqrQIhAJdvnliNXnFfhUi7cr+zzn+R0R8CwwIcbLlcxbCrKceR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":375564},"main":"./dist/index.js","type":"commonjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"gitHead":"f41ea55b91cdeea7b2d583a5f7dd4956b8809e7f","scripts":{"fix":"npm run lint:fix","lint":"eslint","test":"jest","build":"tsup","clean":"rm -rf dist","release":"git push --follow-tags","lint:fix":"eslint --fix","validate":"npm run typecheck && npm run lint && npm test && npm run build","typecheck":"tsc --noEmit","preversion":"npm ci && npm run validate","test:watch":"jest --watchAll","build:watch":"tsup --watch","release:major":"npm version major && git push --follow-tags","release:minor":"npm version minor && git push --follow-tags","release:patch":"npm version patch && git push --follow-tags","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:be2d0693-875a-4d94-8f5e-d99660edf8e8"}},"repository":{"url":"git+https://github.com/jayrdeaton/ReelSort.git","type":"git"},"_npmVersion":"11.18.0","description":"CLI to rename, organize, and manage your movie and TV library — Plex-compatible naming, hardlink support, and automated watch mode.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"rimraf":"^6.1.3","termkit":"^2.4.4","chokidar":"^5.0.0","roman-numeral":"^0.2.6","to-title-case":"^1.0.0","better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","tsup":"^8.5.1","eslint":"^10.5.0","ts-jest":"^29.4.11","ts-node":"^10.9.2","prettier":"^3.8.4","typescript":"^6.0.3","@types/jest":"^30.0.0","@types/node":"^25.9.3","@types/chokidar":"^2.1.7","typescript-eslint":"^8.61.1","@types/better-sqlite3":"^7.6.13","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.6","@typescript-eslint/parser":"^8.61.1","eslint-plugin-package-json":"^1.4.0","eslint-plugin-simple-import-sort":"^13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/reelsort_0.4.1_1783170259343_0.20135479782367582","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"reelsort","version":"0.4.2","keywords":["media","library","organizer","plex","rename","movies","tv","television","cli","file-management","media-manager","hardlink","watch-folder"],"author":{"name":"Jay Deaton"},"license":"ISC","_id":"reelsort@0.4.2","maintainers":[{"name":"jayrdeaton","email":"jayrdeaton@gmail.com"}],"homepage":"https://github.com/jayrdeaton/ReelSort#readme","bugs":{"url":"https://github.com/jayrdeaton/ReelSort/issues"},"bin":{"reelsort":"dist/cli.js"},"dist":{"shasum":"dee53cc8ef49531473c53786371176ce0f903ee9","tarball":"https://registry.npmjs.org/reelsort/-/reelsort-0.4.2.tgz","fileCount":15,"integrity":"sha512-x+JqD582foaI4RCaemzri5QchSD1EGTxTzuAi7joWxt8p+0aFQj/FKjTraSBNQ5/EhPo8Aj+1E6MvZW0rPVerQ==","signatures":[{"sig":"MEUCIFO/vUCW4iW0bKc+s092ERmTV7GERVPBGDNoIbTN3YK2AiEApd7gysk5R9Yu9Cv4vpE0tL0SAXYei4JzhaejXsks/BA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":386608},"main":"./dist/index.js","type":"commonjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"gitHead":"89c7a8d8569feb8675202a3604e583e701b9a613","scripts":{"fix":"npm run lint:fix","lint":"eslint","test":"jest","build":"tsup","clean":"rm -rf dist","release":"git push --follow-tags","lint:fix":"eslint --fix","validate":"npm run typecheck && npm run lint && npm test && npm run build","typecheck":"tsc --noEmit","preversion":"npm ci && npm run validate","test:watch":"jest --watchAll","build:watch":"tsup --watch","release:major":"npm version major && git push --follow-tags","release:minor":"npm version minor && git push --follow-tags","release:patch":"npm version patch && git push --follow-tags","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:be2d0693-875a-4d94-8f5e-d99660edf8e8"}},"repository":{"url":"git+https://github.com/jayrdeaton/ReelSort.git","type":"git"},"_npmVersion":"11.18.0","description":"CLI to rename, organize, and manage your movie and TV library — Plex-compatible naming, hardlink support, and automated watch mode.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"rimraf":"^6.1.3","termkit":"^2.4.4","chokidar":"^5.0.0","roman-numeral":"^0.2.6","to-title-case":"^1.0.0","better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","tsup":"^8.5.1","eslint":"^10.5.0","ts-jest":"^29.4.11","ts-node":"^10.9.2","prettier":"^3.8.4","typescript":"^6.0.3","@types/jest":"^30.0.0","@types/node":"^25.9.3","@types/chokidar":"^2.1.7","typescript-eslint":"^8.61.1","@types/better-sqlite3":"^7.6.13","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.6","@typescript-eslint/parser":"^8.61.1","eslint-plugin-package-json":"^1.4.0","eslint-plugin-simple-import-sort":"^13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/reelsort_0.4.2_1783395025002_0.696334195312184","host":"s3://npm-registry-packages-npm-production"}},"0.4.3":{"name":"reelsort","version":"0.4.3","keywords":["media","library","organizer","plex","rename","movies","tv","television","cli","file-management","media-manager","hardlink","watch-folder"],"author":{"name":"Jay Deaton"},"license":"ISC","_id":"reelsort@0.4.3","maintainers":[{"name":"jayrdeaton","email":"jayrdeaton@gmail.com"}],"homepage":"https://github.com/jayrdeaton/ReelSort#readme","bugs":{"url":"https://github.com/jayrdeaton/ReelSort/issues"},"bin":{"reelsort":"dist/cli.js"},"dist":{"shasum":"bc2edc4ce8b0d3f1157c6c4f93ff45c0df8ac425","tarball":"https://registry.npmjs.org/reelsort/-/reelsort-0.4.3.tgz","fileCount":15,"integrity":"sha512-kMFWpSo+y98lMn6eR60lrSUZRhT5FiosBUW9e4HvI7GtQ8zAwsEKT+OQAdGWwluiJDFQJi4k8V2s1WYWe3evBg==","signatures":[{"sig":"MEUCIBvgdnvAxZQyEmaPtw+TRDC9zqtK6MQ4VryKdPIfTRA1AiEAwYED6PifCGxNoDE6PxWlL8qL8R+knCtHT5QvVdgSXFY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":387342},"main":"./dist/index.js","type":"commonjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"gitHead":"c3865f450c01f8463d2fc7a07ab64ab904de2a7c","scripts":{"fix":"npm run lint:fix","lint":"eslint","test":"jest","build":"tsup","clean":"rm -rf dist","release":"git push --follow-tags","lint:fix":"eslint --fix","validate":"npm run typecheck && npm run lint && npm test && npm run build","typecheck":"tsc --noEmit","preversion":"npm ci && npm run validate","test:watch":"jest --watchAll","build:watch":"tsup --watch","release:major":"npm version major && git push --follow-tags","release:minor":"npm version minor && git push --follow-tags","release:patch":"npm version patch && git push --follow-tags","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:be2d0693-875a-4d94-8f5e-d99660edf8e8"}},"repository":{"url":"git+https://github.com/jayrdeaton/ReelSort.git","type":"git"},"_npmVersion":"11.18.0","description":"CLI to rename, organize, and manage your movie and TV library — Plex-compatible naming, hardlink support, and automated watch mode.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"rimraf":"^6.1.3","termkit":"^2.4.4","chokidar":"^5.0.0","roman-numeral":"^0.2.6","to-title-case":"^1.0.0","better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","tsup":"^8.5.1","eslint":"^10.5.0","ts-jest":"^29.4.11","ts-node":"^10.9.2","prettier":"^3.8.4","typescript":"^6.0.3","@types/jest":"^30.0.0","@types/node":"^25.9.3","@types/chokidar":"^2.1.7","typescript-eslint":"^8.61.1","@types/better-sqlite3":"^7.6.13","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.6","@typescript-eslint/parser":"^8.61.1","eslint-plugin-package-json":"^1.4.0","eslint-plugin-simple-import-sort":"^13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/reelsort_0.4.3_1783414724999_0.44844125868540874","host":"s3://npm-registry-packages-npm-production"}},"0.4.4":{"name":"reelsort","version":"0.4.4","keywords":["media","library","organizer","plex","rename","movies","tv","television","cli","file-management","media-manager","hardlink","watch-folder"],"author":{"name":"Jay Deaton"},"license":"ISC","_id":"reelsort@0.4.4","maintainers":[{"name":"jayrdeaton","email":"jayrdeaton@gmail.com"}],"homepage":"https://github.com/jayrdeaton/ReelSort#readme","bugs":{"url":"https://github.com/jayrdeaton/ReelSort/issues"},"bin":{"reelsort":"dist/cli.js"},"dist":{"shasum":"4bbe1d8f5416e8e1d05b4747dc324e98d2e28f50","tarball":"https://registry.npmjs.org/reelsort/-/reelsort-0.4.4.tgz","fileCount":15,"integrity":"sha512-S8oUxWR4D8WSmM6sZwL2W3QbnEnfNZoq/tRQ2riJYAXWaApVvUIPj16tUbVdexICQPxy5sYfVKLWEOmeB22RuQ==","signatures":[{"sig":"MEQCIBXvtfUeoFOZ3jLJCxj3aJ6Zl1aLJM3qrI3viAMq3+gtAiAk5RiRmdjqZ4SSG4YbTinIIIi/ef4P75w3ZF23Tz/Z4A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":387891},"main":"./dist/index.js","type":"commonjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"gitHead":"aba0c1be4caeba3a3e07275154e8f13d1067cc6d","scripts":{"fix":"npm run lint:fix","lint":"eslint","test":"jest","build":"tsup","clean":"rm -rf dist","release":"git push --follow-tags","lint:fix":"eslint --fix","validate":"npm run typecheck && npm run lint && npm test && npm run build","typecheck":"tsc --noEmit","preversion":"npm ci && npm run validate","test:watch":"jest --watchAll","build:watch":"tsup --watch","release:major":"npm version major && git push --follow-tags","release:minor":"npm version minor && git push --follow-tags","release:patch":"npm version patch && git push --follow-tags","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:be2d0693-875a-4d94-8f5e-d99660edf8e8"}},"repository":{"url":"git+https://github.com/jayrdeaton/ReelSort.git","type":"git"},"_npmVersion":"12.0.1","description":"CLI to rename, organize, and manage your movie and TV library — Plex-compatible naming, hardlink support, and automated watch mode.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"rimraf":"^6.1.3","termkit":"^2.4.4","chokidar":"^5.0.0","roman-numeral":"^0.2.6","to-title-case":"^1.0.0","better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","tsup":"^8.5.1","eslint":"^10.5.0","ts-jest":"^29.4.11","ts-node":"^10.9.2","prettier":"^3.8.4","typescript":"^6.0.3","@types/jest":"^30.0.0","@types/node":"^25.9.3","@types/chokidar":"^2.1.7","typescript-eslint":"^8.61.1","@types/better-sqlite3":"^7.6.13","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.6","@typescript-eslint/parser":"^8.61.1","eslint-plugin-package-json":"^1.4.0","eslint-plugin-simple-import-sort":"^13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/reelsort_0.4.4_1783826781450_0.14695664553238985","host":"s3://npm-registry-packages-npm-production"}},"0.4.5":{"name":"reelsort","version":"0.4.5","keywords":["media","library","organizer","plex","rename","movies","tv","television","cli","file-management","media-manager","hardlink","watch-folder"],"author":{"name":"Jay Deaton"},"license":"ISC","_id":"reelsort@0.4.5","maintainers":[{"name":"jayrdeaton","email":"jayrdeaton@gmail.com"}],"homepage":"https://github.com/jayrdeaton/ReelSort#readme","bugs":{"url":"https://github.com/jayrdeaton/ReelSort/issues"},"bin":{"reelsort":"dist/cli.js"},"dist":{"shasum":"fff4ce7769b6d88d91a9743691f4e0d9c1b929b8","tarball":"https://registry.npmjs.org/reelsort/-/reelsort-0.4.5.tgz","fileCount":15,"integrity":"sha512-vKDJkHNc0GfOd2SL3pgDYMupsM3DOR9RRNE9nFSX2RrMHfKZji/23Rl9SZjaOYLX5JKr1ZdsF3scsaK4Z833zQ==","signatures":[{"sig":"MEYCIQCPkiANLHx8W8IhkgcYg29zFvFyYc0MBbQpaPAXERI0YgIhANdzPc8Su8+wD9/RcLQ3mZ87+c7mbKnwf+GGhjhXirRt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":389921},"main":"./dist/index.js","type":"commonjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"gitHead":"578c0b0497198129e92190af828cddb3eb1ff50c","scripts":{"fix":"npm run lint:fix","lint":"eslint","test":"jest","build":"tsup","clean":"rm -rf dist","release":"git push --follow-tags","lint:fix":"eslint --fix","validate":"npm run typecheck && npm run lint && npm test && npm run build","typecheck":"tsc --noEmit","preversion":"npm ci && npm run validate","test:watch":"jest --watchAll","build:watch":"tsup --watch","release:major":"npm version major && git push --follow-tags","release:minor":"npm version minor && git push --follow-tags","release:patch":"npm version patch && git push --follow-tags","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:be2d0693-875a-4d94-8f5e-d99660edf8e8"}},"repository":{"url":"git+https://github.com/jayrdeaton/ReelSort.git","type":"git"},"_npmVersion":"12.0.1","description":"CLI to rename, organize, and manage your movie and TV library — Plex-compatible naming, hardlink support, and automated watch mode.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"rimraf":"^6.1.3","termkit":"^2.4.4","chokidar":"^5.0.0","roman-numeral":"^0.2.6","to-title-case":"^1.0.0","better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","tsup":"^8.5.1","eslint":"^10.5.0","ts-jest":"^29.4.11","ts-node":"^10.9.2","prettier":"^3.8.4","typescript":"^6.0.3","@types/jest":"^30.0.0","@types/node":"^25.9.3","@types/chokidar":"^2.1.7","typescript-eslint":"^8.61.1","@types/better-sqlite3":"^7.6.13","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.6","@typescript-eslint/parser":"^8.61.1","eslint-plugin-package-json":"^1.4.0","eslint-plugin-simple-import-sort":"^13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/reelsort_0.4.5_1784608566834_0.6480664336083242","host":"s3://npm-registry-packages-npm-production"}},"0.4.6":{"name":"reelsort","version":"0.4.6","keywords":["media","library","organizer","plex","rename","movies","tv","television","cli","file-management","media-manager","hardlink","watch-folder"],"author":{"name":"Jay Deaton"},"license":"ISC","_id":"reelsort@0.4.6","maintainers":[{"name":"jayrdeaton","email":"jayrdeaton@gmail.com"}],"homepage":"https://github.com/jayrdeaton/ReelSort#readme","bugs":{"url":"https://github.com/jayrdeaton/ReelSort/issues"},"bin":{"reelsort":"dist/cli.js"},"dist":{"shasum":"759bf7d1dfb274a632734f870fd36e09ae910e94","tarball":"https://registry.npmjs.org/reelsort/-/reelsort-0.4.6.tgz","fileCount":15,"integrity":"sha512-MfUQtQYzCKUwDj2te6G44WsoFDmnjqGd0iaSN7U5WNDNY25jhtgbxAuZJusfG/3NITDwyOvqZtkyuTvk5mwe/g==","signatures":[{"sig":"MEUCIBlPzK0Kkc6lFtYFOXDHDmlIdz3LP3fu57q0WtC7jzB/AiEA2SGao5nUL68GlNwq6fzVnXHaQzgv17cCwvOcPGPO3EQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":392705},"main":"./dist/index.js","type":"commonjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"gitHead":"744b0588abdc304485bc7dd92ef178afae3f1b3a","scripts":{"fix":"npm run lint:fix","lint":"eslint","test":"jest","build":"tsup","clean":"rm -rf dist","release":"git push --follow-tags","lint:fix":"eslint --fix","validate":"npm run typecheck && npm run lint && npm test && npm run build","typecheck":"tsc --noEmit","preversion":"npm ci && npm run validate","test:watch":"jest --watchAll","build:watch":"tsup --watch","release:major":"npm version major && git push --follow-tags","release:minor":"npm version minor && git push --follow-tags","release:patch":"npm version patch && git push --follow-tags","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:be2d0693-875a-4d94-8f5e-d99660edf8e8"}},"repository":{"url":"git+https://github.com/jayrdeaton/ReelSort.git","type":"git"},"_npmVersion":"12.0.1","description":"CLI to rename, organize, and manage your movie and TV library — Plex-compatible naming, hardlink support, and automated watch mode.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"rimraf":"^6.1.3","termkit":"^2.4.4","chokidar":"^5.0.0","roman-numeral":"^0.2.6","to-title-case":"^1.0.0","better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","tsup":"^8.5.1","eslint":"^10.5.0","ts-jest":"^29.4.11","ts-node":"^10.9.2","prettier":"^3.8.4","typescript":"^6.0.3","@types/jest":"^30.0.0","@types/node":"^25.9.3","@types/chokidar":"^2.1.7","typescript-eslint":"^8.61.1","@types/better-sqlite3":"^7.6.13","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.6","@typescript-eslint/parser":"^8.61.1","eslint-plugin-package-json":"^1.4.0","eslint-plugin-simple-import-sort":"^13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/reelsort_0.4.6_1784952404642_0.3493922014290771","host":"s3://npm-registry-packages-npm-production"}},"0.4.7":{"name":"reelsort","version":"0.4.7","keywords":["media","library","organizer","plex","rename","movies","tv","television","cli","file-management","media-manager","hardlink","watch-folder"],"author":{"name":"Jay Deaton"},"license":"ISC","_id":"reelsort@0.4.7","maintainers":[{"name":"jayrdeaton","email":"jayrdeaton@gmail.com"}],"homepage":"https://github.com/jayrdeaton/ReelSort#readme","bugs":{"url":"https://github.com/jayrdeaton/ReelSort/issues"},"bin":{"reelsort":"dist/cli.js"},"dist":{"shasum":"c8bb1f9c5f4af85039a7fc0b23e0b0165ec6344d","tarball":"https://registry.npmjs.org/reelsort/-/reelsort-0.4.7.tgz","fileCount":16,"integrity":"sha512-K75weBph9YFKoSyuuwhxr2d4ZNJmF/nDxOrxOL3HQ1fhaTGnq+LsBz9QI2bA55v5Zu2Ne95QP1aSO6ST7ezHiA==","signatures":[{"sig":"MEYCIQCbK0GxsTU5TEPH/VpLpTjDR9a7FQ6GQ0PHSitgIWOeogIhAPwz/zzNCG4J3msVi8YRdhn1QC09p5ZiCFdEFyI2WDX5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":394454},"main":"./dist/index.js","type":"commonjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"gitHead":"6cf91d71b381b5dccffe37cdc42970a3296b9006","scripts":{"fix":"npm run lint:fix","lint":"eslint","test":"jest","build":"tsup","clean":"rm -rf dist","release":"git push --follow-tags","lint:fix":"eslint --fix","validate":"npm run typecheck && npm run lint && npm test && npm run build","typecheck":"tsc --noEmit","preversion":"npm ci && npm run validate","test:watch":"jest --watchAll","build:watch":"tsup --watch","postinstall":"node scripts/postinstall.js","release:major":"npm version major && git push --follow-tags","release:minor":"npm version minor && git push --follow-tags","release:patch":"npm version patch && git push --follow-tags","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:be2d0693-875a-4d94-8f5e-d99660edf8e8"}},"overrides":{"esbuild":"^0.28.1","brace-expansion":"^5.0.8"},"repository":{"url":"git+https://github.com/jayrdeaton/ReelSort.git","type":"git"},"_npmVersion":"12.0.1","description":"CLI to rename, organize, and manage your movie and TV library — Plex-compatible naming, hardlink support, and automated watch mode.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"rimraf":"^6.1.3","termkit":"^2.4.4","chokidar":"^5.0.0","roman-numeral":"^0.2.6","to-title-case":"^1.0.0","better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","tsup":"^8.5.1","eslint":"^10.5.0","ts-jest":"^29.4.11","ts-node":"^10.9.2","prettier":"^3.8.4","typescript":"^6.0.3","@types/jest":"^30.0.0","@types/node":"^26.1.1","@types/chokidar":"^2.1.7","typescript-eslint":"^8.61.1","@types/better-sqlite3":"^7.6.13","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.6","@typescript-eslint/parser":"^8.61.1","eslint-plugin-package-json":"^1.4.0","eslint-plugin-simple-import-sort":"^14.0.0"},"_npmOperationalInternal":{"tmp":"tmp/reelsort_0.4.7_1784954433855_0.09115987889195942","host":"s3://npm-registry-packages-npm-production"}},"0.4.8":{"name":"reelsort","version":"0.4.8","keywords":["media","library","organizer","plex","rename","movies","tv","television","cli","file-management","media-manager","hardlink","watch-folder"],"author":{"name":"Jay Deaton"},"license":"ISC","_id":"reelsort@0.4.8","maintainers":[{"name":"jayrdeaton","email":"jayrdeaton@gmail.com"}],"homepage":"https://github.com/jayrdeaton/ReelSort#readme","bugs":{"url":"https://github.com/jayrdeaton/ReelSort/issues"},"bin":{"reelsort":"dist/cli.js"},"dist":{"shasum":"5c986c5e6b48f21ea2d42cda6e85828837575036","tarball":"https://registry.npmjs.org/reelsort/-/reelsort-0.4.8.tgz","fileCount":15,"integrity":"sha512-LglLfENo2DJkiw4ge1VU+zp2lvL7jFax0WYggdZmCMEFlq/UK8uDOr0lv8vsR4GhwvMSxsqFtqcc/TCQTe7RHg==","signatures":[{"sig":"MEUCIQDIaVAgbZoVvcE/+AvAROmqq9ACZGFLHMn3t0+uOz6kPgIgRvLMHeg8ZmmIu7XvDM7cNc6BF6XXhR7vvcGoPdA/Xc8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":394508},"main":"./dist/index.js","type":"commonjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"gitHead":"3643df250d63b90890534a099253222ff9581c52","scripts":{"fix":"npm run lint:fix","lint":"eslint","test":"jest","build":"tsup","clean":"rm -rf dist","release":"git push --follow-tags","lint:fix":"eslint --fix","validate":"npm run typecheck && npm run lint && npm test && npm run build","typecheck":"tsc --noEmit","preversion":"npm ci && npm run validate","test:watch":"jest --watchAll","build:watch":"tsup --watch","release:major":"npm version major && git push --follow-tags","release:minor":"npm version minor && git push --follow-tags","release:patch":"npm version patch && git push --follow-tags","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:be2d0693-875a-4d94-8f5e-d99660edf8e8"}},"overrides":{"esbuild":"^0.28.1","brace-expansion":"^5.0.8"},"repository":{"url":"git+https://github.com/jayrdeaton/ReelSort.git","type":"git"},"_npmVersion":"12.0.1","description":"CLI to rename, organize, and manage your movie and TV library — Plex-compatible naming, hardlink support, and automated watch mode.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"rimraf":"^6.1.3","termkit":"^2.4.4","chokidar":"^5.0.0","roman-numeral":"^0.2.6","to-title-case":"^1.0.0","better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","tsup":"^8.5.1","eslint":"^10.5.0","ts-jest":"^29.4.11","ts-node":"^10.9.2","prettier":"^3.8.4","typescript":"^6.0.3","@types/jest":"^30.0.0","@types/node":"^26.1.1","@types/chokidar":"^2.1.7","typescript-eslint":"^8.61.1","@types/better-sqlite3":"^7.6.13","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.6","@typescript-eslint/parser":"^8.61.1","eslint-plugin-package-json":"^1.4.0","eslint-plugin-simple-import-sort":"^14.0.0"},"_npmOperationalInternal":{"tmp":"tmp/reelsort_0.4.8_1784955227816_0.08508737832137836","host":"s3://npm-registry-packages-npm-production"}},"0.4.9":{"name":"reelsort","version":"0.4.9","keywords":["media","library","organizer","plex","rename","movies","tv","television","cli","file-management","media-manager","hardlink","watch-folder"],"author":{"name":"Jay Deaton"},"license":"ISC","_id":"reelsort@0.4.9","maintainers":[{"name":"jayrdeaton","email":"jayrdeaton@gmail.com"}],"homepage":"https://github.com/jayrdeaton/ReelSort#readme","bugs":{"url":"https://github.com/jayrdeaton/ReelSort/issues"},"bin":{"reelsort":"dist/cli.js"},"dist":{"shasum":"ba292e58deed320dc8119e600dedb4f0c818fc15","tarball":"https://registry.npmjs.org/reelsort/-/reelsort-0.4.9.tgz","fileCount":15,"integrity":"sha512-UL+3OdpPRl0pBcGk5wSXzm6Za7PFOmHYbetxqfgTeNpaXAN6idmM1ipgs1BSXXnZwXwEmI9g8wZmQ/ZSRzxOYg==","signatures":[{"sig":"MEYCIQC32ZbWKWc1o1y1Ys69n35YNRa2LCD8C2UxmxJqOdQNvAIhANYRIh+8ciLkTda/ZQJEZabBsuw5iKmQov/dPfDnjYAt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":394256},"main":"./dist/index.js","type":"commonjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"gitHead":"9994983a8aae190012547d72ec3ecde23ae1682e","scripts":{"fix":"npm run lint:fix","lint":"eslint","test":"jest","build":"tsup","clean":"rm -rf dist","release":"git push --follow-tags","lint:fix":"eslint --fix","validate":"npm run typecheck && npm run lint && npm test && npm run build","typecheck":"tsc --noEmit","preversion":"npm ci && npm run validate","test:watch":"jest --watchAll","build:watch":"tsup --watch","release:major":"npm version major && git push --follow-tags","release:minor":"npm version minor && git push --follow-tags","release:patch":"npm version patch && git push --follow-tags","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:be2d0693-875a-4d94-8f5e-d99660edf8e8"}},"overrides":{"esbuild":"^0.28.1","brace-expansion":"^5.0.8"},"repository":{"url":"git+https://github.com/jayrdeaton/ReelSort.git","type":"git"},"_npmVersion":"12.0.1","description":"CLI to rename, organize, and manage your movie and TV library — Plex-compatible naming, hardlink support, and automated watch mode.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"rimraf":"^6.1.3","termkit":"^2.4.4","chokidar":"^5.0.0","roman-numeral":"^0.2.6","to-title-case":"^1.0.0","better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","tsup":"^8.5.1","eslint":"^10.5.0","ts-jest":"^29.4.11","ts-node":"^10.9.2","prettier":"^3.8.4","typescript":"^6.0.3","@types/jest":"^30.0.0","@types/node":"^26.1.1","@types/chokidar":"^2.1.7","typescript-eslint":"^8.61.1","@types/better-sqlite3":"^7.6.13","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.6","@typescript-eslint/parser":"^8.61.1","eslint-plugin-package-json":"^1.4.0","eslint-plugin-simple-import-sort":"^14.0.0"},"_npmOperationalInternal":{"tmp":"tmp/reelsort_0.4.9_1784956282281_0.43991821465631364","host":"s3://npm-registry-packages-npm-production"}},"0.4.10":{"name":"reelsort","version":"0.4.10","keywords":["media","library","organizer","plex","rename","movies","tv","television","cli","file-management","media-manager","hardlink","watch-folder"],"author":{"name":"Jay Deaton"},"license":"ISC","_id":"reelsort@0.4.10","maintainers":[{"name":"jayrdeaton","email":"jayrdeaton@gmail.com"}],"homepage":"https://github.com/jayrdeaton/ReelSort#readme","bugs":{"url":"https://github.com/jayrdeaton/ReelSort/issues"},"bin":{"reelsort":"dist/cli.js"},"dist":{"shasum":"51da2f03ae742bc14a8cad758c771a8a17da0652","tarball":"https://registry.npmjs.org/reelsort/-/reelsort-0.4.10.tgz","fileCount":15,"integrity":"sha512-8s7L+LCz5f0OrLa5WQ9XvP4Cm9gdj02Y0zc/58lKmmX7BMSIUAKSGOyARHs9U9fr56caRDMBXPy+uHcKiA1PRw==","signatures":[{"sig":"MEYCIQC9KTFnp61UIZbfgTdRiPQUu538qgokTu3PSmAjM81d3wIhAJtScBHn/31sLW+q3kNheNDG6zznCvh64nob1wRkNK5n","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":394258},"main":"./dist/index.js","type":"commonjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"gitHead":"07bc819065c9bf8af139e464f739aef3cfd629db","scripts":{"fix":"npm run lint:fix","lint":"eslint","test":"jest","build":"tsup","clean":"rm -rf dist","release":"git push --follow-tags","lint:fix":"eslint --fix","validate":"npm run typecheck && npm run lint && npm test && npm run build","typecheck":"tsc --noEmit","preversion":"npm ci && npm run validate","test:watch":"jest --watchAll","build:watch":"tsup --watch","release:major":"npm version major && git push --follow-tags","release:minor":"npm version minor && git push --follow-tags","release:patch":"npm version patch && git push --follow-tags","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:be2d0693-875a-4d94-8f5e-d99660edf8e8"}},"overrides":{"esbuild":"^0.28.1","brace-expansion":"^5.0.8"},"repository":{"url":"git+https://github.com/jayrdeaton/ReelSort.git","type":"git"},"_npmVersion":"11.16.0","description":"CLI to rename, organize, and manage your movie and TV library — Plex-compatible naming, hardlink support, and automated watch mode.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"rimraf":"^6.1.3","termkit":"^2.4.7","chokidar":"^5.0.0","roman-numeral":"^0.2.6","to-title-case":"^1.0.0","better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","tsup":"^8.5.1","eslint":"^10.5.0","ts-jest":"^29.4.11","ts-node":"^10.9.2","prettier":"^3.8.4","typescript":"^6.0.3","@types/jest":"^30.0.0","@types/node":"^26.1.1","@types/chokidar":"^2.1.7","typescript-eslint":"^8.61.1","@types/better-sqlite3":"^7.6.13","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.6","@typescript-eslint/parser":"^8.61.1","eslint-plugin-package-json":"^1.4.0","eslint-plugin-simple-import-sort":"^14.0.0"},"_npmOperationalInternal":{"tmp":"tmp/reelsort_0.4.10_1784960814263_0.6579807300910772","host":"s3://npm-registry-packages-npm-production"}},"0.4.11":{"name":"reelsort","version":"0.4.11","keywords":["media","library","organizer","plex","rename","movies","tv","television","cli","file-management","media-manager","hardlink","watch-folder"],"author":{"name":"Jay Deaton"},"license":"ISC","_id":"reelsort@0.4.11","maintainers":[{"name":"jayrdeaton","email":"jayrdeaton@gmail.com"}],"homepage":"https://github.com/jayrdeaton/ReelSort#readme","bugs":{"url":"https://github.com/jayrdeaton/ReelSort/issues"},"bin":{"reelsort":"dist/cli.js"},"dist":{"shasum":"9d3c489355bb3c3110676ca905b70d6f4cc0a794","tarball":"https://registry.npmjs.org/reelsort/-/reelsort-0.4.11.tgz","fileCount":15,"integrity":"sha512-BmLcWp4MZqqWmoxqsYQoHJ8vw8hV9ei7hvhhc6+uMAT2YzjQ3Wv1HCWjUvafoW5F5XhyOxSRBLRrCr6mEWymXA==","signatures":[{"sig":"MEQCIH2Vl/0lgZcnPdgWp2OpIqbbh1HZaH+gpzMAFln6SdE2AiBrtcDuQngHIpCcGXoiw8Jc4U1wu7bMkmql1CjkOeTI2g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":394258},"main":"./dist/index.js","type":"commonjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"gitHead":"c0d986fb62a77150bc30699a917211b94037c30a","scripts":{"fix":"npm run lint:fix","lint":"eslint","test":"jest","build":"tsup","clean":"rm -rf dist","release":"git push --follow-tags","lint:fix":"eslint --fix","validate":"npm run typecheck && npm run lint && npm test && npm run build","typecheck":"tsc --noEmit","preversion":"npm ci && npm run validate","test:watch":"jest --watchAll","build:watch":"tsup --watch","release:major":"npm version major && git push --follow-tags","release:minor":"npm version minor && git push --follow-tags","release:patch":"npm version patch && git push --follow-tags","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:be2d0693-875a-4d94-8f5e-d99660edf8e8"}},"overrides":{"esbuild":"^0.28.1","brace-expansion":"^5.0.8"},"repository":{"url":"git+https://github.com/jayrdeaton/ReelSort.git","type":"git"},"_npmVersion":"11.16.0","description":"CLI to rename, organize, and manage your movie and TV library — Plex-compatible naming, hardlink support, and automated watch mode.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"rimraf":"^6.1.3","termkit":"^2.4.8","chokidar":"^5.0.0","roman-numeral":"^0.2.6","to-title-case":"^1.0.0","better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","tsup":"^8.5.1","eslint":"^10.5.0","ts-jest":"^29.4.11","ts-node":"^10.9.2","prettier":"^3.8.4","typescript":"^6.0.3","@types/jest":"^30.0.0","@types/node":"^26.1.1","@types/chokidar":"^2.1.7","typescript-eslint":"^8.61.1","@types/better-sqlite3":"^7.6.13","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.6","@typescript-eslint/parser":"^8.61.1","eslint-plugin-package-json":"^1.4.0","eslint-plugin-simple-import-sort":"^14.0.0"},"_npmOperationalInternal":{"tmp":"tmp/reelsort_0.4.11_1784965851200_0.11463854174808596","host":"s3://npm-registry-packages-npm-production"}},"0.4.12":{"name":"reelsort","version":"0.4.12","keywords":["media","library","organizer","plex","rename","movies","tv","television","cli","file-management","media-manager","hardlink","watch-folder"],"author":{"name":"Jay Deaton"},"license":"ISC","_id":"reelsort@0.4.12","maintainers":[{"name":"jayrdeaton","email":"jayrdeaton@gmail.com"}],"homepage":"https://github.com/jayrdeaton/ReelSort#readme","bugs":{"url":"https://github.com/jayrdeaton/ReelSort/issues"},"bin":{"reelsort":"dist/cli.js"},"dist":{"shasum":"11b3dbb981ef87e8cadb0eb8de06c7a0edcf1c1a","tarball":"https://registry.npmjs.org/reelsort/-/reelsort-0.4.12.tgz","fileCount":15,"integrity":"sha512-MY0KHSolBvS+GRlOuBtgxjlTzce6dGyRjCrB/vRhZim98W7uoaSVVDecFV4lqSTu9mF24sbvigpxKNk+9DeoZg==","signatures":[{"sig":"MEQCIHu74q0R9QkRsefnqabbwIMzdI7onb1zgPB2VJz/uCJMAiBlmlVPQm+c4Qo/bQE8Xa4yrDhXLQba7H5SiPGfNb1/BA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":396982},"main":"./dist/index.js","type":"commonjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"gitHead":"bc00634b3bc8cc0adf42ac90fa3ceb76a1049588","scripts":{"fix":"npm run lint:fix","lint":"eslint","test":"jest","build":"tsup","clean":"rm -rf dist","release":"git push --follow-tags","lint:fix":"eslint --fix","validate":"npm run typecheck && npm run lint && npm test && npm run build","typecheck":"tsc --noEmit","preversion":"npm ci && npm run validate","test:watch":"jest --watchAll","build:watch":"tsup --watch","release:major":"npm version major && git push --follow-tags","release:minor":"npm version minor && git push --follow-tags","release:patch":"npm version patch && git push --follow-tags","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:be2d0693-875a-4d94-8f5e-d99660edf8e8"}},"overrides":{"esbuild":"^0.28.1","brace-expansion":"^5.0.8"},"repository":{"url":"git+https://github.com/jayrdeaton/ReelSort.git","type":"git"},"_npmVersion":"11.16.0","description":"CLI to rename, organize, and manage your movie and TV library — Plex-compatible naming, hardlink support, and automated watch mode.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"rimraf":"^6.1.3","termkit":"^2.4.8","chokidar":"^5.0.0","roman-numeral":"^0.2.6","to-title-case":"^1.0.0","better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","tsup":"^8.5.1","eslint":"^10.5.0","ts-jest":"^29.4.11","ts-node":"^10.9.2","prettier":"^3.8.4","typescript":"^6.0.3","@types/jest":"^30.0.0","@types/node":"^26.1.1","@types/chokidar":"^2.1.7","typescript-eslint":"^8.61.1","@types/better-sqlite3":"^7.6.13","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.6","@typescript-eslint/parser":"^8.61.1","eslint-plugin-package-json":"^1.4.0","eslint-plugin-simple-import-sort":"^14.0.0"},"_npmOperationalInternal":{"tmp":"tmp/reelsort_0.4.12_1785562267520_0.6289435774937873","host":"s3://npm-registry-packages-npm-production"}},"0.4.13":{"name":"reelsort","version":"0.4.13","keywords":["media","library","organizer","plex","rename","movies","tv","television","cli","file-management","media-manager","hardlink","watch-folder"],"author":{"name":"Jay Deaton"},"license":"MIT","_id":"reelsort@0.4.13","maintainers":[{"name":"jayrdeaton","email":"jayrdeaton@gmail.com"}],"homepage":"https://github.com/jayrdeaton/ReelSort#readme","bugs":{"url":"https://github.com/jayrdeaton/ReelSort/issues"},"bin":{"reelsort":"dist/cli.js"},"dist":{"shasum":"e4f8822be64c0212ca47679c0dfc55ee3b9e09f6","tarball":"https://registry.npmjs.org/reelsort/-/reelsort-0.4.13.tgz","fileCount":15,"integrity":"sha512-rqcHBdEOdf1SraOq+qSBhPpW6FJ7TLs8TOgLqg6iMfMtbNIp78ONmEZLZEGNWR9BccvikUIm6ThUnyqrxOd9eA==","signatures":[{"sig":"MEUCIQDeBQonJxyegFKtmUcEbToZL5B2+asjEz3LBnCwnqgV0AIgDTz8B/JawclDcCGmAkZmrGqZDkZa8XGxSLb1EFhIiBk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":396835},"main":"./dist/index.js","type":"commonjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"gitHead":"3af460a12868db006144ee3b8a797dea6a3a70a8","scripts":{"ci":"npm run lint && npm test && npm run typecheck && npm run build","fix":"npm run lint:fix","lint":"eslint","test":"jest","build":"tsup","clean":"rm -rf dist","release":"git push --follow-tags","lint:fix":"eslint --fix","typecheck":"tsc --noEmit","preversion":"npm ci && npm run ci","test:watch":"jest --watchAll","build:watch":"tsup --watch","release:major":"npm version major && npm run release","release:minor":"npm version minor && npm run release","release:patch":"npm version patch && npm run release","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:be2d0693-875a-4d94-8f5e-d99660edf8e8"}},"prettier":"@infinitetoken/eslint-config/prettier","overrides":{"esbuild":"^0.28.1","brace-expansion":"^5.0.8"},"repository":{"url":"git+https://github.com/jayrdeaton/ReelSort.git","type":"git"},"_npmVersion":"11.17.0","description":"CLI to rename, organize, and manage your movie and TV library — Plex-compatible naming, hardlink support, and automated watch mode.","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","dependencies":{"rimraf":"^6.1.3","termkit":"^2.4.8","chokidar":"^5.0.0","roman-numeral":"^0.2.6","to-title-case":"^1.0.0","better-sqlite3":"^12.11.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","tsup":"^8.5.1","eslint":"^10.5.0","ts-jest":"^29.4.11","ts-node":"^10.9.2","prettier":"^3.8.4","typescript":"^6.0.3","@types/jest":"^30.0.0","@types/node":"^26.1.1","@types/chokidar":"^2.1.7","@types/better-sqlite3":"^7.6.13","@infinitetoken/tsconfig":"^0.1.1","@infinitetoken/eslint-config":"^0.1.4"},"_npmOperationalInternal":{"tmp":"tmp/reelsort_0.4.13_1787810847649_0.1384767261575972","host":"s3://npm-registry-packages-npm-production"}},"0.4.14":{"name":"reelsort","version":"0.4.14","description":"CLI to rename, organize, and manage your movie and TV library — Plex-compatible naming, hardlink support, and automated watch mode.","keywords":["media","library","organizer","plex","rename","movies","tv","television","cli","file-management","media-manager","hardlink","watch-folder"],"homepage":"https://github.com/jayrdeaton/ReelSort#readme","bugs":{"url":"https://github.com/jayrdeaton/ReelSort/issues"},"repository":{"type":"git","url":"git+https://github.com/jayrdeaton/ReelSort.git"},"license":"MIT","author":{"name":"Jay Deaton"},"sideEffects":false,"type":"commonjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"main":"./dist/index.js","module":"./dist/index.mjs","types":"./dist/index.d.ts","bin":{"reelsort":"dist/cli.js"},"scripts":{"build":"tsup","build:watch":"tsup --watch","clean":"rm -rf dist","fix":"npm run lint:fix","lint":"eslint","lint:fix":"eslint --fix","prepublishOnly":"npm run build","release":"git push --follow-tags","release:major":"npm version major && npm run release","release:minor":"npm version minor && npm run release","release:patch":"npm version patch && npm run release","test":"jest","test:watch":"jest --watchAll","typecheck":"tsc --noEmit","verify":"npm run lint && npm test && npm run typecheck && npm run build","preversion":"npm run verify"},"prettier":"@infinitetoken/eslint-config/prettier","overrides":{"brace-expansion":"^5.0.8","esbuild":"^0.28.1"},"dependencies":{"better-sqlite3":"^12.11.1","chokidar":"^5.0.0","rimraf":"^6.1.3","roman-numeral":"^0.2.6","termkit":"^2.4.8","to-title-case":"^1.0.0"},"devDependencies":{"@infinitetoken/eslint-config":"^0.1.4","@infinitetoken/jest-config":"^0.1.5","@infinitetoken/tsconfig":"^0.1.1","@types/better-sqlite3":"^7.6.13","@types/chokidar":"^2.1.7","@types/jest":"^30.0.0","@types/node":"^26.1.1","eslint":"^10.5.0","jest":"^30.4.2","prettier":"^3.8.4","ts-node":"^10.9.2","tsup":"^8.5.1","typescript":"^6.0.3"},"engines":{"node":">=18.0.0"},"gitHead":"2b222a8f1783bdb649d07d8018443ed425e5be7c","_id":"reelsort@0.4.14","_nodeVersion":"24.19.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-7+rDkGRVgt4cRwjxQlk8udF/E2ebAZQ1kBtMMYfwSsGj9zHVuBFFi0ax4g7X3LKrxGPVzLO+zmlCHqaAKthy3A==","shasum":"c3d6993800edda31e5fe2c06bf8eab0c9b0ebe44","tarball":"https://registry.npmjs.org/reelsort/-/reelsort-0.4.14.tgz","fileCount":15,"unpackedSize":396850,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCID+h0xvhGRIQv26rqM1enOu9xsdDhj5DwFcgoLMYK7ifAiBvD+hnF8hcxyHHACgcdblSYIaGpvOrewYuOb38UCew8w=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:be2d0693-875a-4d94-8f5e-d99660edf8e8"}},"directories":{},"maintainers":[{"name":"jayrdeaton","email":"jayrdeaton@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/reelsort_0.4.14_1788427473890_0.7693521868495627"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-04T03:05:53.896Z","modified":"2026-09-03T09:24:34.903Z","0.1.0":"2026-06-04T03:05:54.104Z","0.1.1":"2026-06-04T03:48:32.480Z","0.1.2":"2026-06-04T07:26:49.637Z","0.2.0":"2026-06-06T08:33:47.654Z","0.2.1":"2026-06-06T15:42:11.305Z","0.2.2":"2026-06-06T16:12:02.847Z","0.2.3":"2026-06-06T16:37:14.244Z","0.2.4":"2026-06-06T17:13:57.424Z","0.2.5":"2026-06-07T04:00:35.941Z","0.2.6":"2026-06-07T04:26:03.321Z","0.2.7":"2026-06-07T04:39:20.281Z","0.2.8":"2026-06-07T07:04:50.431Z","0.2.9":"2026-06-07T07:20:15.971Z","0.2.10":"2026-06-07T09:12:12.741Z","0.2.11":"2026-06-07T10:11:22.507Z","0.2.12":"2026-06-19T03:53:39.910Z","0.3.0":"2026-06-27T03:39:28.932Z","0.3.1":"2026-06-27T07:49:26.059Z","0.3.2":"2026-06-30T02:56:05.345Z","0.3.3":"2026-06-30T03:56:45.194Z","0.4.0":"2026-06-30T05:27:14.134Z","0.4.1":"2026-07-04T13:04:19.503Z","0.4.2":"2026-07-07T03:30:25.156Z","0.4.3":"2026-07-07T08:58:45.142Z","0.4.4":"2026-07-12T03:26:21.589Z","0.4.5":"2026-07-21T04:36:06.978Z","0.4.6":"2026-07-25T04:06:44.782Z","0.4.7":"2026-07-25T04:40:34.065Z","0.4.8":"2026-07-25T04:53:47.962Z","0.4.9":"2026-07-25T05:11:22.415Z","0.4.10":"2026-07-25T06:26:54.414Z","0.4.11":"2026-07-25T07:50:51.338Z","0.4.12":"2026-08-01T05:31:07.687Z","0.4.13":"2026-08-27T06:07:27.819Z","0.4.14":"2026-09-03T09:24:34.030Z"},"bugs":{"url":"https://github.com/jayrdeaton/ReelSort/issues"},"author":{"name":"Jay Deaton"},"license":"MIT","homepage":"https://github.com/jayrdeaton/ReelSort#readme","keywords":["media","library","organizer","plex","rename","movies","tv","television","cli","file-management","media-manager","hardlink","watch-folder"],"repository":{"type":"git","url":"git+https://github.com/jayrdeaton/ReelSort.git"},"description":"CLI to rename, organize, and manage your movie and TV library — Plex-compatible naming, hardlink support, and automated watch mode.","maintainers":[{"name":"jayrdeaton","email":"jayrdeaton@gmail.com"}],"readme":"# ReelSort\n\nA CLI to organize and manage your media library. Renames messy download filenames into clean, consistent formats, moves files into the right destination folders, tracks everything in a local SQLite database, and keeps your library inspectable with a single command.\n\nWorks on macOS, Windows, and Linux.\n\n## Installation\n\n```bash\nnpm install -g reelsort\n```\n\n### Prerequisites\n\n- **Node.js** >= 18\n- **ffmpeg** — optional, required only for `reelsort probe`\n\n### Troubleshooting: \"Could not locate the bindings file\"\n\nNewer versions of npm (11.16+) block native install scripts by default, which stops ReelSort's database engine (`better-sqlite3`) from building. If you see this error, reinstall with scripts explicitly allowed:\n\n```bash\nnpm install -g --allow-scripts=reelsort,better-sqlite3 reelsort@latest\n```\n\n## Quick Start\n\n```bash\n# Tell ReelSort where your downloads land and where your library lives\nreelsort config add source ~/Downloads\nreelsort config set dest movie /Volumes/Media/Movies\nreelsort config set dest tv /Volumes/Media/TV\n\n# Preview what would be imported without touching anything\nreelsort --dry-run scan\n\n# Import\nreelsort scan\n```\n\n---\n\n## Global Options\n\n`--dry-run` (`-n`) and `--verbose` (`-v`) are top-level flags that work with any command:\n\n```bash\nreelsort --dry-run scan        # preview an import without touching anything\nreelsort --dry-run watch       # run the watcher in observe-only mode\nreelsort --dry-run undo        # see what would be reversed\nreelsort --verbose scan        # also show routine skips (unparsed names, ignored files, etc.)\n```\n\nBecause these are root-level flags, they go **before** the subcommand name.\n\n---\n\n## Commands\n\n### `reelsort config`\n\nManage configuration stored at `~/.config/reelsort/config.json`.\n\n```bash\nreelsort config add source <dir>          # add a source directory\nreelsort config remove source <dir>       # remove a source directory\nreelsort config set dest movie <dir>      # set movie destination\nreelsort config set dest tv <dir>         # set TV destination\nreelsort config set dest ps3 <dir>        # set PS3 destination\nreelsort config set language <code>       # subtitle language (default: eng)\nreelsort config set tmdb-key <key>        # TMDb API key\nreelsort config set format movie <fmt>    # movie naming format\nreelsort config set format episode <fmt>  # episode naming format\nreelsort config set format season <fmt>   # season folder format\nreelsort config show                      # print current config\n```\n\nMultiple sources are supported — useful if your torrent client and browser downloads land in different folders:\n\n```bash\nreelsort config add source ~/Downloads\nreelsort config add source /Volumes/External/uTorrent/Completed\n```\n\n---\n\n### `reelsort add <name>`\n\nRegister a TV show for scanning. Searches TMDb by name, shows an interactive picker when multiple results are found (with a clickable link to each candidate's TMDb page), and creates the show folder in your TV destination.\n\n```bash\nreelsort add Severance\nreelsort add \"The Bear\"\n```\n\nTV episodes are only imported during `reelsort scan` if the show is registered. Use `reelsort link` to register shows that already exist on disk.\n\n---\n\n### `reelsort scan`\n\nImport media from all configured sources into their destinations. Parses raw download filenames, renames files, creates folder structure, and records every import in the database.\n\n```bash\nreelsort scan                  # move files to destinations\nreelsort scan --hardlink       # hardlink instead of moving (great for seeders)\nreelsort scan --type movie     # only process movies\nreelsort scan --auto           # auto-register unrecognised TV shows instead of skipping\nreelsort scan --interactive    # prompt when a duplicate is ambiguous\nreelsort scan --force          # replace all duplicates without prompting\nreelsort --dry-run scan        # preview without touching anything\nreelsort --verbose scan        # also show routine skips (unparsed names, ignored files, etc.)\n```\n\nTV episodes are skipped unless the show has been registered via `reelsort add` or `reelsort link`. `--auto` restores the old behaviour: unregistered shows are created on the fly without prompting.\n\n#### Duplicate handling\n\nWhen a file already exists at the destination, ReelSort compares quality automatically:\n\n- **Clear upgrade** (higher resolution, or better codec at the same resolution, e.g. x265 replacing x264) — the existing file is trashed and the new one takes its place, no prompt.\n- **REPACK / PROPER** tagged files — always auto-replace, same as a quality upgrade.\n- **Ambiguous** (same quality, or quality can't be determined from the filename) — skipped by default, printed to the console with the existing vs. incoming quality so you know why. Pass `--interactive` to get a prompt instead:\n\n```\nDuplicate: The Dark Knight (2008)\n  A — keep existing  [1080p x264]\n  B — keep incoming  [1080p x264]\n  Skip\n```\n\n`--force` skips the comparison entirely and replaces every duplicate unconditionally.\n\nTV output creates the full folder structure:\n\n```\nTV/\n  Severance (2022)/\n    Season 2/\n      2x01.mkv\n```\n\nSeason folders are matched by number if they already exist under any naming convention. New season folders are created using your configured format.\n\n---\n\n### `reelsort watch`\n\nWatch all configured sources continuously and auto-import new files as they arrive. Same logic as `scan`, triggered per item with a debounce to handle large downloads that arrive in chunks.\n\n```bash\nreelsort watch\nreelsort watch --hardlink\nreelsort watch --auto\nreelsort --dry-run watch       # observe what would be imported without moving anything\nreelsort --verbose watch       # also show routine skips (unparsed names, ignored files, etc.)\n```\n\n`--dry-run` is especially useful before you commit to automated importing — run it for a while to build confidence that ReelSort is routing everything correctly, then restart without the flag when you're ready.\n\nPress `Ctrl+C` to stop.\n\n---\n\n### `reelsort clean`\n\nRemove source files that were already imported via hardlink or copy. Safe to run while seeding — a source that is still read-only, or otherwise locked by your torrent client, is skipped and left for the next run.\n\n```bash\nreelsort clean                       # remove imported source files\nreelsort clean --older-than 14d      # only clean imports older than 14 days\nreelsort --dry-run clean             # preview what would be removed\n```\n\n`--older-than` accepts `d` (days), `h` (hours), or `m` (minutes).\n\n---\n\n### `reelsort rename`\n\nRename media files in-place inside a directory. Useful for cleaning up an existing library that wasn't imported through `scan`.\n\n```bash\nreelsort rename <dir>\nreelsort rename <dir> --type movie\nreelsort rename <dir> --type tv\nreelsort rename <dir> --type ps3\nreelsort --dry-run rename <dir>\nreelsort --verbose rename <dir>\n```\n\nRenames folders and their primary video file to match your configured movie format. Keeps one subtitle file (matching your configured language) and removes everything else.\n\n---\n\n### `reelsort reset`\n\nRename episode files inside a season folder to match your configured episode format. Useful for seasons that were copied in without going through `scan`.\n\n```bash\nreelsort reset <dir>            # e.g. \"TV/Severance/Season 2\"\nreelsort reset <dir>            # or a show folder full of season subfolders, e.g. \"TV/Severance\"\nreelsort reset <dir> --double   # episodes are double-length (1x01-1x02)\nreelsort --dry-run reset <dir>  # preview renames without applying them\n```\n\nThe season number is detected automatically from the folder name. The show title is read from the parent folder. If `<dir>` isn't itself a season folder, `reset` looks for season subfolders inside it (e.g. `Season 1`, `S02`) and resets each one in turn.\n\n---\n\n### `reelsort split`\n\nSplit a flat directory of absolutely-ordered episodes into season folders, renaming files to your configured episode format along the way. Useful for anime and other shows that distribute episodes with a single running number rather than per-season numbering.\n\nProvide the directory followed by the number of episodes in each season, in order:\n\n```bash\nreelsort split ./yuyuhakusho 12 10 12 20 24\n# Season 1: 12 episodes, Season 2: 10, Season 3: 12, Season 4: 20, Season 5: 24\n```\n\nReelSort validates that the total of all counts matches the number of video files in the directory before touching anything. If the numbers don't add up, it exits with an error and nothing is moved.\n\n```bash\nreelsort --dry-run split ./yuyuhakusho 12 10 12 20 24   # preview first\nreelsort split ./yuyuhakusho 12 10 12 20 24              # then apply\n```\n\nFiles are sorted alphabetically before splitting, so the sort order must match episode order. Season folders are created using your configured season format. No TMDb key required.\n\n---\n\n### `reelsort probe`\n\nIndex your library using `ffprobe` to get accurate codec and resolution for every video file. Results are stored in SQLite and used by `reelsort list`. Run this once to populate your existing library, then re-run whenever you add files outside of `scan`.\n\n```bash\nreelsort probe                  # index all destinations\nreelsort probe --type movie     # index only movies\nreelsort probe --force          # re-probe files already indexed\nreelsort --verbose probe        # show each file as it is probed\n```\n\nRequires ffmpeg to be installed. If ffprobe is not found, the command tells you rather than silently doing nothing.\n\n---\n\n### `reelsort list`\n\nDisplay your library in a table, sorted by year. Codec and resolution come from the probe index (populated by `reelsort probe`) if available, otherwise fall back to parsing the original download filename from import history.\n\n```bash\nreelsort list                       # list all configured destinations\nreelsort list --type movie          # list only movies\nreelsort list --missing-subs        # only show items without subtitles\nreelsort list --codec x265          # filter by codec\nreelsort list --resolution 1080p    # filter by resolution\nreelsort list --sort title          # sort alphabetically (default: year)\n```\n\nExample output:\n\n```\nMOVIE  /Volumes/Media/Movies\n──────────────────────────────────────────────────────────────────────\nTitle                     Year    Res     Codec   Size        Sub\n──────────────────────────────────────────────────────────────────────\nDune Part Two             2024    2160p   x265    58.2 GB     ✓\nOppenheimer               2023    1080p   x264    22.1 GB     ✗\nThe Dark Knight           2008    —       —       14.8 GB     ✓\n──────────────────────────────────────────────────────────────────────\n3 of 3 items\n```\n\n---\n\n### `reelsort link`\n\nRegister TV shows that already exist on disk — useful when migrating an existing library or after manually organising files. Walks your TV destination, looks up each unregistered folder in TMDb, and prompts when multiple matches are found (with a clickable link to each candidate's TMDb page).\n\n```bash\nreelsort link           # register all unlinked shows\nreelsort link --force   # re-link shows that are already registered\n```\n\nShows with a single TMDb match are linked automatically. Shows not found in TMDb are skipped with a warning. Once registered, shows work with `reelsort scan` and `reelsort missing`.\n\n---\n\n### `reelsort ended`\n\nMark a show as ended so it is excluded from `reelsort missing`. Run it again with `--remove` to restore a show to active.\n\n```bash\nreelsort ended           # pick a show to mark as ended\nreelsort ended --remove  # pick an ended show to restore\n```\n\nAn interactive picker lists your tracked shows. Ended shows are skipped in `reelsort missing` and a count is shown at the bottom of that output.\n\n---\n\n### `reelsort shows`\n\nList all registered TV shows with their TMDb link, size on disk, and ended status.\n\n```bash\nreelsort shows\n```\n\nExample output:\n\n```\nSHOWS  /Volumes/Media/TV  (3 registered)\n────────────────────────────────────────────────────────\nTitle                          Size        Linked    Status\n────────────────────────────────────────────────────────\nSeverance (2022)               28.4 GB     ✓ tmdb    active\nThe Bear (2022)                14.1 GB     ✓ tmdb    active\nWhite Lotus (2021)             9.7 GB      ✗         ended\n────────────────────────────────────────────────────────\n3 shows  ·  2 linked  ·  1 ended\n```\n\n---\n\n### `reelsort stats`\n\nShow library statistics — total counts and size per destination.\n\n```bash\nreelsort stats\n```\n\n---\n\n### `reelsort missing`\n\nCheck your TV library against TMDb and report any episodes that have aired but aren't on disk. Requires a TMDb API key. Shows must be linked (via `reelsort scan` or `reelsort link`) to appear.\n\n```bash\nreelsort missing                      # check all shows\nreelsort missing --show Severance     # check a specific show\n```\n\nExample output:\n\n```\nSeverance (2022)\n  S01E04 — The You You Are\n  S01E07 — Defiant Jazz\n\n2 missing episodes total\n2 ended shows skipped\n```\n\nOnly episodes with a past air date are reported — future episodes are ignored. Ended shows are excluded entirely.\n\n---\n\n### `reelsort history`\n\nShow rename or import history grouped by session.\n\n```bash\nreelsort history                  # rename history\nreelsort history --imports        # import history (what scan/watch moved)\nreelsort history --limit 5        # show last 5 sessions (default: 10)\nreelsort history --imports --limit 3\n```\n\n---\n\n### `reelsort undo`\n\nReverse the last `reelsort rename` session, or undo the last batch of imports from `reelsort scan` or `reelsort watch`.\n\n```bash\nreelsort undo\nreelsort --dry-run undo   # see what would be reversed without doing it\n```\n\nReelSort picks whichever session is more recent — rename or import — and undoes it:\n\n- **Rename sessions** — every file and folder rename is reversed in place.\n- **Import sessions (movies, PS3, books)** — the destination folder is moved back to its original source path.\n- **Import sessions (TV)** — the episode file (and any companion subtitle) is sent to the Trash. The original download folder is not restored since it was deleted during import.\n\nHardlink and copy imports are not reversed (the source file was never touched).\n\n---\n\n### `reelsort diff`\n\nCompare two directories and show what's in one but not the other.\n\n```bash\nreelsort diff <dir1> <dir2>\nreelsort diff <dir1> <dir2> --only mkv\nreelsort diff <dir1> <dir2> --ignore nfo jpg\n```\n\n---\n\n## Configuration Reference\n\n### Naming Formats\n\nAll formats use token substitution. Unrecognized tokens are left as literals.\n\n#### Movie format\n\n| Token | Description |\n|---|---|\n| `{title}` | Movie title (required) |\n| `{year}` | Release year |\n| `{edition}` | Plex edition tag, e.g. `{edition-Director's Cut}` |\n\n```bash\nreelsort config set format movie \"{title} ({year})\"           # default\nreelsort config set format movie \"{title} ({year}){edition}\"  # Plex editions\n```\n\nDetected editions: Director's Cut, Final Cut, Extended, Theatrical, Unrated, Anniversary Edition, Collector's Edition, Special Edition.\n\n#### Episode format\n\n| Token | Description |\n|---|---|\n| `{s}` | Season number, no padding |\n| `{ss}` | Season number, 2-digit padded |\n| `{sss}` | Season number, 3-digit padded |\n| `{e}` `{ee}` `{eee}` | Episode number, same padding options |\n| `{title}` | Show title |\n| `{name}` | Episode title (from TMDb, requires API key) |\n\n```bash\nreelsort config set format episode \"{s}x{ee}\"             # 1x01 (default)\nreelsort config set format episode \"S{ss}E{ee}\"           # S01E01\nreelsort config set format episode \"S{ss}E{ee} - {title}\" # S01E01 - Severance\n```\n\n#### Season folder format\n\nUses the same `{s}` / `{ss}` / `{sss}` tokens.\n\n```bash\nreelsort config set format season \"Season {s}\"   # Season 1 (default)\nreelsort config set format season \"Season {ss}\"  # Season 01\nreelsort config set format season \"S{ss}\"        # S01\n```\n\n### Subtitle Language\n\nSet the preferred subtitle language code. When multiple subtitle files are present, the one matching this language is kept. Falls back to the first subtitle found.\n\n```bash\nreelsort config set language eng   # default\nreelsort config set language fre\nreelsort config set language spa\n```\n\n### TMDb Integration\n\nWhen a TMDb API key is configured, `reelsort scan` looks up each title before naming it. This corrects capitalization, fills in missing years, and resolves ambiguous names — the canonical TMDb title and year are used instead of whatever was in the download filename.\n\n```bash\nreelsort config set tmdb-key <your-key>\n```\n\n**Movie lookup** — automatically uses the top result.\n\n**TV show lookup** — if only one show matches, it is used automatically. If multiple shows share the same name, an interactive picker is shown so you can choose the right one:\n\n```\n◆ Multiple shows found for \"Severance\":\n  > 1. Severance (2022) — In a corporation, a group of employees have... <\n    2. Severance (2006) — Six office workers on a corporate retreat...\n    0. Skip\n```\n\nArrow keys or number keys to select, Enter to confirm. Choosing `0` or Skip falls back to the parsed filename as-is. If TMDb is unreachable or returns no results, ReelSort falls back silently and continues.\n\n**Episode names** — TMDb also supplies the episode title for each file. Use the `{name}` token in your episode format to include it:\n\n```bash\nreelsort config set format episode \"S{ss}E{ee} - {name}\"\n# produces: S01E01 - Good News About Hell.mkv\n```\n\nThe TMDb ID is stored alongside every import in the database, which powers the `reelsort missing` command.\n\n**Getting a free API key:**\n1. Create a free account at [themoviedb.org](https://www.themoviedb.org)\n2. Go to **Settings → API**\n3. Request a developer key — no credit card or approval needed, it's instant\n\nKeys are stored locally in `~/.config/reelsort/config.json` and never leave your machine.\n\n---\n\n## Workflows\n\n### Hardlink mode (recommended for seeders)\n\nHardlinks let your torrent client keep seeding the original file while your library gets the clean, organized copy — no extra disk space used. Only works within the same filesystem.\n\n```bash\nreelsort scan --hardlink    # or reelsort watch --hardlink\n# ... seed until done ...\nreelsort clean              # remove source files once seeding is finished\n```\n\nIf source and destination are on different filesystems, `--hardlink` automatically falls back to copy with a warning. Copied files are also tracked and cleaned up by `reelsort clean`.\n\nEven without `--hardlink`, ReelSort detects read-only source files (e.g. a torrent client marking a completed download read-only while it seeds) and automatically copies instead of moving them, leaving the original untouched.\n\n### One-time library cleanup\n\nIf you already have a library that was organized manually:\n\n```bash\n# Preview first, then apply\nreelsort --dry-run rename /Volumes/Media/Movies\nreelsort rename /Volumes/Media/Movies\n\n# Index metadata\nreelsort probe\n\n# Inspect\nreelsort list\n```\n\n### Fully automated\n\n```bash\nreelsort config add source ~/Downloads\nreelsort config set dest movie /Volumes/Media/Movies\nreelsort config set dest tv /Volumes/Media/TV\nreelsort watch --hardlink\n```\n\n---\n\n## Database\n\nReelSort stores its database at `~/.config/reelsort/reelsort.db`. It tracks:\n\n- **renameHistory** — every rename performed by `reelsort rename`, used by `reelsort undo`\n- **imports** — every file imported by `reelsort scan` or `reelsort watch`, used by `reelsort undo` and `reelsort clean`\n- **shows** — one row per TV show folder, storing the TMDb series ID and ended flag. Populated by `reelsort scan` and `reelsort link`, used by `reelsort missing` and `reelsort ended`\n- **mediaInfo** — codec, resolution, and duration indexed by `reelsort probe`, used by `reelsort list`\n\n---\n\n## Platform Support\n\n| Platform | Supported |\n|---|---|\n| macOS | ✓ |\n| Windows | ✓ |\n| Linux | ✓ |\n\nFile watching on macOS uses FSEvents, Windows uses ReadDirectoryChangesW, and Linux uses inotify — all via [chokidar](https://github.com/paulmillr/chokidar).\n","readmeFilename":"README.md"}