{"_id":"svelte-doctor","_rev":"31-221da65c818506cf5ef0357d488fb976","name":"svelte-doctor","dist-tags":{"latest":"0.4.0"},"versions":{"0.1.0":{"name":"svelte-doctor","version":"0.1.0","keywords":["svelte","svelte5","sveltekit","diagnostics","linter","performance","runes","migration","codemod","cli","static-analysis","code-quality","typescript","security","refactoring","ai","analyzer","vite","javascript"],"author":"Pimatis","license":"Apache-2.0","_id":"svelte-doctor@0.1.0","maintainers":[{"name":"queaxtra","email":"fatih@etik.com"}],"homepage":"https://github.com/Pimatis/svelte-doctor","bugs":{"url":"https://github.com/Pimatis/svelte-doctor/issues"},"bin":{"svelte-doctor":"dist/cli.mjs"},"dist":{"shasum":"e1b50a991ba6f760d64bf89e047dcd360fc0a311","tarball":"https://registry.npmjs.org/svelte-doctor/-/svelte-doctor-0.1.0.tgz","fileCount":6,"integrity":"sha512-c3arLTyqyhRDFIIpPHDSuJ2L3DQU9jyuWi3z2IXYpMkYq3bwIrl+AcVIevSg0QuNFV8mkm3ETXmRJE4ev4Zkzg==","signatures":[{"sig":"MEYCIQD09prBHS3MQr3gkjp+KWu7x0n2DqbDZtye9gdI1EeBnwIhAJyO6cB1FQmKmF+alZMAx3TnWDJkkgcLlYkd/TkSODyH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":164016},"type":"module","shasum":"e1b50a991ba6f760d64bf89e047dcd360fc0a311","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"}},"scripts":{"dev":"tsdown --watch","test":"bun test --timeout 30000","build":"rm -rf dist && NODE_ENV=production tsdown && rm -f dist/*.map && sed -i '' '/sourceMappingURL/d' dist/*.mjs","typecheck":"tsc --noEmit"},"_npmUser":{"name":"queaxtra","email":"fatih@etik.com"},"_integrity":"sha512-c3arLTyqyhRDFIIpPHDSuJ2L3DQU9jyuWi3z2IXYpMkYq3bwIrl+AcVIevSg0QuNFV8mkm3ETXmRJE4ev4Zkzg==","repository":{"url":"git+https://github.com/Pimatis/svelte-doctor.git","type":"git"},"_npmVersion":"10.8.3","description":"Diagnose and fix performance, correctness, and architecture issues in your Svelte codebase","directories":{},"_nodeVersion":"24.3.0","dependencies":{"ora":"^9.3.0","knip":"^5.83.1","svelte":"^5.34.7","commander":"^14.0.3","picocolors":"^1.1.1","typescript":">=5.0.4 <7"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.20.3","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/svelte-doctor_0.1.0_1771506641380_0.28077416294915003","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"svelte-doctor","version":"0.1.1","keywords":["svelte","svelte5","sveltekit","diagnostics","linter","performance","runes","migration","codemod","cli","static-analysis","code-quality","typescript","security","refactoring","ai","analyzer","vite","javascript"],"author":"Pimatis","license":"Apache-2.0","_id":"svelte-doctor@0.1.1","maintainers":[{"name":"queaxtra","email":"fatih@etik.com"}],"homepage":"https://github.com/Pimatis/svelte-doctor","bugs":{"url":"https://github.com/Pimatis/svelte-doctor/issues"},"bin":{"svelte-doctor":"dist/cli.mjs"},"dist":{"shasum":"0c70bcebad8fa5b424505a097e6a3d08597cb378","tarball":"https://registry.npmjs.org/svelte-doctor/-/svelte-doctor-0.1.1.tgz","fileCount":6,"integrity":"sha512-UKQakrfauItTRVhXMnn2xjzEcMyz5LbxpCC3SZGCx8PdnMfoSiD8YHufp/vQPghQLs0honXut0uJR9qjqgRDMw==","signatures":[{"sig":"MEUCIENL3X297BOaVcgdtgatfvdo96XSDxAnLpo5wuYHaRf8AiEAvAwmPeVop7isZyis/bPGgB6AlsGJGOReSZr2KUGwe3M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":169096},"type":"module","shasum":"0c70bcebad8fa5b424505a097e6a3d08597cb378","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"}},"scripts":{"dev":"tsdown --watch","test":"bun test --timeout 30000","build":"rm -rf dist && NODE_ENV=production tsdown && rm -f dist/*.map && sed -i '' '/sourceMappingURL/d' dist/*.mjs","typecheck":"tsc --noEmit"},"_npmUser":{"name":"queaxtra","email":"fatih@etik.com"},"_integrity":"sha512-UKQakrfauItTRVhXMnn2xjzEcMyz5LbxpCC3SZGCx8PdnMfoSiD8YHufp/vQPghQLs0honXut0uJR9qjqgRDMw==","repository":{"url":"git+https://github.com/Pimatis/svelte-doctor.git","type":"git"},"_npmVersion":"10.8.3","description":"Diagnose and fix performance, correctness, and architecture issues in your Svelte codebase","directories":{},"_nodeVersion":"24.3.0","dependencies":{"ora":"^9.3.0","knip":"^5.84.1","svelte":"^5.53.0","commander":"^14.0.3","picocolors":"^1.1.1","typescript":"^5.9.3"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.20.3","@types/node":"^22.19.11"},"_npmOperationalInternal":{"tmp":"tmp/svelte-doctor_0.1.1_1771509850241_0.4074712632247264","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"svelte-doctor","version":"0.1.2","keywords":["svelte","svelte5","sveltekit","diagnostics","linter","performance","runes","migration","codemod","cli","static-analysis","code-quality","typescript","security","refactoring","ai","analyzer","vite","javascript"],"author":"Pimatis","license":"Apache-2.0","_id":"svelte-doctor@0.1.2","maintainers":[{"name":"queaxtra","email":"fatih@etik.com"}],"homepage":"https://github.com/Pimatis/svelte-doctor","bugs":{"url":"https://github.com/Pimatis/svelte-doctor/issues"},"bin":{"svelte-doctor":"dist/cli.mjs"},"dist":{"shasum":"812a288aaf1717dd627a7042f715c07ae9478194","tarball":"https://registry.npmjs.org/svelte-doctor/-/svelte-doctor-0.1.2.tgz","fileCount":6,"integrity":"sha512-mZU13wyTajXpgNVo5dZ8VVhYGpscNPyvPmcl+sHU+qQY+rq2x7hitqGflzs/wFDe+iZjRnQ/7e1L4U/ysZBZoQ==","signatures":[{"sig":"MEQCIFqxOg8OimgXkDNTfAZeYarSEMNHfV/IUbEcKliBawtfAiB/9l+esIzj683zjxdtIerbk5jR6kqDsj95TYkXEONC2Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":216686},"type":"module","shasum":"812a288aaf1717dd627a7042f715c07ae9478194","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"}},"scripts":{"dev":"tsdown --watch","test":"bun test --timeout 30000","build":"rm -rf dist && NODE_ENV=production tsdown && rm -f dist/*.map && sed -i '' '/sourceMappingURL/d' dist/*.mjs","typecheck":"tsc --noEmit"},"_npmUser":{"name":"queaxtra","email":"fatih@etik.com"},"_integrity":"sha512-mZU13wyTajXpgNVo5dZ8VVhYGpscNPyvPmcl+sHU+qQY+rq2x7hitqGflzs/wFDe+iZjRnQ/7e1L4U/ysZBZoQ==","repository":{"url":"git+https://github.com/Pimatis/svelte-doctor.git","type":"git"},"_npmVersion":"10.8.3","description":"Diagnose and fix performance, correctness, and architecture issues in your Svelte codebase","directories":{},"_nodeVersion":"24.3.0","dependencies":{"ora":"^9.3.0","knip":"^5.84.1","svelte":"^5.53.0","commander":"^14.0.3","picocolors":"^1.1.1","typescript":"^5.9.3"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.20.3","@types/node":"^22.19.11"},"_npmOperationalInternal":{"tmp":"tmp/svelte-doctor_0.1.2_1772546012000_0.4412028250778075","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"svelte-doctor","version":"0.1.3","keywords":["svelte","svelte5","sveltekit","diagnostics","linter","performance","runes","migration","codemod","cli","static-analysis","code-quality","typescript","security","refactoring","ai","analyzer","vite","javascript"],"author":"Pimatis","license":"Apache-2.0","_id":"svelte-doctor@0.1.3","maintainers":[{"name":"queaxtra","email":"fatih@etik.com"}],"homepage":"https://github.com/Pimatis/svelte-doctor","bugs":{"url":"https://github.com/Pimatis/svelte-doctor/issues"},"bin":{"svelte-doctor":"dist/cli.mjs"},"dist":{"shasum":"8d5aeea160a670ae61a2b6d40ae9e4cc1feb48ce","tarball":"https://registry.npmjs.org/svelte-doctor/-/svelte-doctor-0.1.3.tgz","fileCount":6,"integrity":"sha512-3uBHlnWHF6Ye72OF596ZnltPxJj8hKvhalNW68yl7guR5BXfq+p5Uzu20ocMuXXV+EPCVMZtDfG6lf7ugPqmaA==","signatures":[{"sig":"MEUCIDWjvxNu3+igpe+EdRuGWMHpccSOo8ZKtU1Xt7dfAWUWAiEA0OdQrjG2rtKyFuonsPiEMx5a5sGyTc6mVJwz7k6CMN0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":222813},"type":"module","shasum":"8d5aeea160a670ae61a2b6d40ae9e4cc1feb48ce","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"}},"scripts":{"dev":"tsdown --watch","test":"bun test --timeout 30000","build":"rm -rf dist && NODE_ENV=production tsdown && rm -f dist/*.map && sed -i '' '/sourceMappingURL/d' dist/*.mjs","typecheck":"tsc --noEmit"},"_npmUser":{"name":"queaxtra","email":"fatih@etik.com"},"_integrity":"sha512-3uBHlnWHF6Ye72OF596ZnltPxJj8hKvhalNW68yl7guR5BXfq+p5Uzu20ocMuXXV+EPCVMZtDfG6lf7ugPqmaA==","repository":{"url":"git+https://github.com/Pimatis/svelte-doctor.git","type":"git"},"_npmVersion":"10.8.3","description":"Diagnose and fix performance, correctness, and architecture issues in your Svelte codebase","directories":{},"_nodeVersion":"24.3.0","dependencies":{"ora":"^9.3.0","knip":"^5.85.0","svelte":"^5.53.7","commander":"^14.0.3","picocolors":"^1.1.1","typescript":"^5.9.3"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.20.3","@types/node":"^22.19.15"},"_npmOperationalInternal":{"tmp":"tmp/svelte-doctor_0.1.3_1772881036091_0.6336751148011814","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"svelte-doctor","version":"0.1.4","keywords":["svelte","svelte5","sveltekit","diagnostics","linter","performance","runes","migration","codemod","cli","static-analysis","code-quality","typescript","security","refactoring","ai","analyzer","vite","javascript"],"author":"Pimatis","license":"Apache-2.0","_id":"svelte-doctor@0.1.4","maintainers":[{"name":"queaxtra","email":"fatih@etik.com"}],"homepage":"https://github.com/Pimatis/svelte-doctor","bugs":{"url":"https://github.com/Pimatis/svelte-doctor/issues"},"bin":{"svelte-doctor":"dist/cli.mjs"},"dist":{"shasum":"d282291503f89258d8531cf63dd4d467202e4491","tarball":"https://registry.npmjs.org/svelte-doctor/-/svelte-doctor-0.1.4.tgz","fileCount":6,"integrity":"sha512-kHB1htkufLIeNKhmxty7/EEiaSwROjkeOZYYKJhi3eHsTQ2wvHBpHio5JnQLPrKgeL+NxvAD/uCjR/ck6qM39g==","signatures":[{"sig":"MEQCIExF5n9qhZSb+G5glfmo0IJhJoRrOHepqrVbIAvutqYCAiAA03DsKUZ3zbcBgg6nhZzdcMZl8RlxPOAOO12QPzqLNg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":281385},"type":"module","shasum":"d282291503f89258d8531cf63dd4d467202e4491","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"}},"scripts":{"dev":"tsdown --watch","test":"node -e \"console.log('No repository test suite configured')\"","build":"rm -rf dist && NODE_ENV=production tsdown && rm -f dist/*.map && sed -i '' '/sourceMappingURL/d' dist/*.mjs","typecheck":"tsc --noEmit"},"_npmUser":{"name":"queaxtra","email":"fatih@etik.com"},"_integrity":"sha512-kHB1htkufLIeNKhmxty7/EEiaSwROjkeOZYYKJhi3eHsTQ2wvHBpHio5JnQLPrKgeL+NxvAD/uCjR/ck6qM39g==","repository":{"url":"git+https://github.com/Pimatis/svelte-doctor.git","type":"git"},"_npmVersion":"10.8.3","description":"Diagnose and fix performance, correctness, and architecture issues in your Svelte codebase","directories":{},"_nodeVersion":"24.3.0","dependencies":{"ora":"^9.3.0","knip":"^6.0.4","svelte":"^5.55.0","commander":"^14.0.3","picocolors":"^1.1.1","typescript":"^6.0.2"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.21.4","@types/node":"^25.5.0"},"_npmOperationalInternal":{"tmp":"tmp/svelte-doctor_0.1.4_1774379833944_0.596178319141291","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"svelte-doctor","version":"0.1.5","keywords":["svelte","svelte5","sveltekit","diagnostics","linter","performance","runes","migration","codemod","cli","static-analysis","code-quality","typescript","security","refactoring","ai","analyzer","vite","javascript"],"author":"Pimatis","license":"Apache-2.0","_id":"svelte-doctor@0.1.5","maintainers":[{"name":"queaxtra","email":"fatih@etik.com"}],"homepage":"https://github.com/Pimatis/svelte-doctor","bugs":{"url":"https://github.com/Pimatis/svelte-doctor/issues"},"bin":{"svelte-doctor":"dist/cli.mjs"},"dist":{"shasum":"2b3feeeb315bd99b23385ba00f67fba9fb34e917","tarball":"https://registry.npmjs.org/svelte-doctor/-/svelte-doctor-0.1.5.tgz","fileCount":6,"integrity":"sha512-Zvv6N2PRnpG29dyW4KSe5M1VQBop1Gwqh1t8jiLnJ0gbYNzLEUih8miwpyI6+lqsBwKXX3iT5xyWA5blVbPm/w==","signatures":[{"sig":"MEYCIQCcigopywqppuun6AJZPUYUMFy1I1KgtUkdw4iFS+7GwQIhAPdTYSXAKfhQzt2Bb+0kLMiHmIk0MtghAhoIUQCGoRMi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":280572},"type":"module","shasum":"2b3feeeb315bd99b23385ba00f67fba9fb34e917","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"}},"scripts":{"dev":"tsdown --watch","test":"node -e \"console.log('No repository test suite configured')\"","build":"rm -rf dist && NODE_ENV=production tsdown && rm -f dist/*.map && node -e \"const fs=require('node:fs'); for (const file of fs.readdirSync('dist')) { if (!file.endsWith('.mjs')) continue; const path='dist/' + file; const source=fs.readFileSync(path,'utf8').replace(/^\\/\\/\\# sourceMappingURL=.*$/gm,'').replace(/\\n{3,}/g,'\\n\\n'); fs.writeFileSync(path, source, 'utf8'); }\"","typecheck":"tsc --noEmit"},"_npmUser":{"name":"queaxtra","email":"fatih@etik.com"},"_integrity":"sha512-Zvv6N2PRnpG29dyW4KSe5M1VQBop1Gwqh1t8jiLnJ0gbYNzLEUih8miwpyI6+lqsBwKXX3iT5xyWA5blVbPm/w==","repository":{"url":"git+https://github.com/Pimatis/svelte-doctor.git","type":"git"},"_npmVersion":"10.8.3","description":"Diagnose and fix performance, correctness, and architecture issues in your Svelte codebase","directories":{},"_nodeVersion":"24.3.0","dependencies":{"ora":"^9.3.0","knip":"^6.0.4","svelte":"^5.55.0","commander":"^14.0.3","picocolors":"^1.1.1","typescript":"^6.0.2"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.21.4","@types/node":"^25.5.0"},"_npmOperationalInternal":{"tmp":"tmp/svelte-doctor_0.1.5_1774380025032_0.7281662447234614","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"svelte-doctor","version":"0.1.6","keywords":["svelte","svelte5","sveltekit","diagnostics","linter","performance","runes","migration","codemod","cli","static-analysis","code-quality","typescript","security","refactoring","ai","analyzer","vite","javascript"],"author":"Pimatis","license":"Apache-2.0","_id":"svelte-doctor@0.1.6","maintainers":[{"name":"queaxtra","email":"fatih@etik.com"}],"homepage":"https://github.com/Pimatis/svelte-doctor","bugs":{"url":"https://github.com/Pimatis/svelte-doctor/issues"},"bin":{"svelte-doctor":"dist/cli.mjs"},"dist":{"shasum":"21b9de6efaf3d03b05fa414961fc3bd3c53bc033","tarball":"https://registry.npmjs.org/svelte-doctor/-/svelte-doctor-0.1.6.tgz","fileCount":6,"integrity":"sha512-KvMI0ndbeOJpErQmrMnhCkyxNm0SNT+vAH2899+L6NcEDcb6fA1t0bjnOOeaNDEd+qRlmohrRQVWHwsWDz6Cdw==","signatures":[{"sig":"MEUCIQCPwZw4onO1ayXNSY0dQpXvT1/GWcBISxquN7t1n1I9BwIgS/SNoVIWeWsohdMNkCLGdYqdk2Qx2DCxZvuwFwrYEB0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":287001},"type":"module","shasum":"21b9de6efaf3d03b05fa414961fc3bd3c53bc033","engines":{"node":">=22.18.0"},"exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"}},"scripts":{"dev":"tsdown --watch","test":"node -e \"console.log('No repository test suite configured')\"","build":"rm -rf dist && NODE_ENV=production tsdown && rm -f dist/*.map && node -e \"const fs=require('node:fs'); for (const file of fs.readdirSync('dist')) { if (!file.endsWith('.mjs')) continue; const path='dist/' + file; const source=fs.readFileSync(path,'utf8').replace(/^\\/\\/\\# sourceMappingURL=.*$/gm,'').replace(/\\n{3,}/g,'\\n\\n'); fs.writeFileSync(path, source, 'utf8'); }\"","typecheck":"tsc --noEmit"},"_npmUser":{"name":"queaxtra","email":"fatih@etik.com"},"_integrity":"sha512-KvMI0ndbeOJpErQmrMnhCkyxNm0SNT+vAH2899+L6NcEDcb6fA1t0bjnOOeaNDEd+qRlmohrRQVWHwsWDz6Cdw==","repository":{"url":"git+https://github.com/Pimatis/svelte-doctor.git","type":"git"},"_npmVersion":"10.8.3","description":"Diagnose and fix performance, correctness, and architecture issues in your Svelte codebase","directories":{},"_nodeVersion":"24.3.0","dependencies":{"ora":"^9.3.0","knip":"^6.0.4","svelte":"^5.55.0","commander":"^14.0.3","picocolors":"^1.1.1","typescript":"^6.0.2"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.21.4","@types/node":"^25.5.0"},"_npmOperationalInternal":{"tmp":"tmp/svelte-doctor_0.1.6_1774380490145_0.28982237854028314","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"svelte-doctor","version":"0.1.7","keywords":["svelte","svelte5","sveltekit","diagnostics","linter","performance","runes","migration","codemod","cli","static-analysis","code-quality","typescript","security","refactoring","ai","analyzer","vite","javascript"],"author":"Pimatis","license":"Apache-2.0","_id":"svelte-doctor@0.1.7","maintainers":[{"name":"queaxtra","email":"fatih@etik.com"}],"homepage":"https://github.com/Pimatis/svelte-doctor","bugs":{"url":"https://github.com/Pimatis/svelte-doctor/issues"},"bin":{"svelte-doctor":"dist/cli.mjs"},"dist":{"shasum":"4817df39127c20bb1cf27e207bd3c4a3ec7961f4","tarball":"https://registry.npmjs.org/svelte-doctor/-/svelte-doctor-0.1.7.tgz","fileCount":6,"integrity":"sha512-NfUDriRqDdM9YBtNsU4m2HSdN46kl16pMRDiX3RZRzZOffH7n5nOQ2IQuSG5nMt/3/31IbtKHEHcpnZukyTdqA==","signatures":[{"sig":"MEQCIBwvaUYW1vTeU15s3qTHjMp+Xlj+AaDfW0zJz743yFg7AiBs5kd5KNFzsY9XD2/ySjJ95JL7d+yeDNiAo7ohXlAZ3w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":299650},"type":"module","shasum":"4817df39127c20bb1cf27e207bd3c4a3ec7961f4","engines":{"node":">=22.18.0"},"exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"}},"scripts":{"dev":"tsdown --watch","test":"node -e \"console.log('No repository test suite configured')\"","build":"rm -rf dist && NODE_ENV=production tsdown && rm -f dist/*.map && node -e \"const fs=require('node:fs'); for (const file of fs.readdirSync('dist')) { if (!file.endsWith('.mjs')) continue; const path='dist/' + file; const source=fs.readFileSync(path,'utf8').replace(/^\\/\\/\\# sourceMappingURL=.*$/gm,'').replace(/\\n{3,}/g,'\\n\\n'); fs.writeFileSync(path, source, 'utf8'); }\"","typecheck":"tsc --noEmit"},"_npmUser":{"name":"queaxtra","email":"fatih@etik.com"},"_integrity":"sha512-NfUDriRqDdM9YBtNsU4m2HSdN46kl16pMRDiX3RZRzZOffH7n5nOQ2IQuSG5nMt/3/31IbtKHEHcpnZukyTdqA==","repository":{"url":"git+https://github.com/Pimatis/svelte-doctor.git","type":"git"},"_npmVersion":"10.8.3","description":"Diagnose and fix performance, correctness, and architecture issues in your Svelte codebase","directories":{},"_nodeVersion":"24.3.0","dependencies":{"ora":"^9.3.0","knip":"^6.0.4","svelte":"^5.55.0","commander":"^14.0.3","picocolors":"^1.1.1","typescript":"^6.0.2"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.21.4","@types/node":"^25.5.0"},"_npmOperationalInternal":{"tmp":"tmp/svelte-doctor_0.1.7_1774382226356_0.2500402387423868","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"svelte-doctor","version":"0.1.8","keywords":["svelte","svelte5","sveltekit","diagnostics","linter","performance","runes","migration","codemod","cli","static-analysis","code-quality","typescript","security","refactoring","ai","analyzer","vite","javascript"],"author":"Pimatis","license":"Apache-2.0","_id":"svelte-doctor@0.1.8","maintainers":[{"name":"queaxtra","email":"fatih@etik.com"}],"homepage":"https://github.com/Pimatis/svelte-doctor","bugs":{"url":"https://github.com/Pimatis/svelte-doctor/issues"},"bin":{"svelte-doctor":"dist/cli.mjs"},"dist":{"shasum":"1db35990cd73d48c6da7fce0845fe955b93a58d5","tarball":"https://registry.npmjs.org/svelte-doctor/-/svelte-doctor-0.1.8.tgz","fileCount":6,"integrity":"sha512-YV14DWjFwSHzW9knKnL8YE6fhjGwnZnXYL26GELF7OL+z//E28Iq7iL3eanbPVzRltTZV0/+SrxsBJniAfN0qw==","signatures":[{"sig":"MEUCIALf+wvHx+JjX8JZCT9QG1sbeQwEr7rvQoWcwyR4o9ofAiEA7Odr+U9b6iYb+niOfL5o+0eDUdtxOcSvpe8XCIf8xgo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":349693},"type":"module","shasum":"1db35990cd73d48c6da7fce0845fe955b93a58d5","engines":{"node":">=22.18.0"},"exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"}},"scripts":{"dev":"tsdown --watch","test":"bun run build && bun test test/cli.test.mjs","build":"rm -rf dist && NODE_ENV=production tsdown && rm -f dist/*.map && node -e \"const fs=require('node:fs'); for (const file of fs.readdirSync('dist')) { if (!file.endsWith('.mjs')) continue; const path='dist/' + file; const source=fs.readFileSync(path,'utf8').replace(/^\\/\\/\\# sourceMappingURL=.*$/gm,'').replace(/\\n{3,}/g,'\\n\\n'); fs.writeFileSync(path, source, 'utf8'); }\"","typecheck":"tsc --noEmit"},"_npmUser":{"name":"queaxtra","email":"fatih@etik.com"},"_integrity":"sha512-YV14DWjFwSHzW9knKnL8YE6fhjGwnZnXYL26GELF7OL+z//E28Iq7iL3eanbPVzRltTZV0/+SrxsBJniAfN0qw==","repository":{"url":"git+https://github.com/Pimatis/svelte-doctor.git","type":"git"},"_npmVersion":"10.8.3","description":"Diagnose and fix performance, correctness, and architecture issues in your Svelte codebase","directories":{},"_nodeVersion":"24.3.0","dependencies":{"ora":"^9.3.0","knip":"^6.0.4","svelte":"^5.55.0","commander":"^14.0.3","picocolors":"^1.1.1","typescript":"^6.0.2"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.21.4","@types/node":"^25.5.0"},"_npmOperationalInternal":{"tmp":"tmp/svelte-doctor_0.1.8_1774436685174_0.9915938673468914","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"svelte-doctor","version":"0.1.9","keywords":["svelte","svelte5","sveltekit","diagnostics","linter","performance","runes","migration","codemod","cli","static-analysis","code-quality","typescript","security","refactoring","ai","analyzer","vite","javascript"],"author":"Pimatis","license":"Apache-2.0","_id":"svelte-doctor@0.1.9","maintainers":[{"name":"queaxtra","email":"fatih@etik.com"}],"homepage":"https://github.com/Pimatis/svelte-doctor","bugs":{"url":"https://github.com/Pimatis/svelte-doctor/issues"},"bin":{"svelte-doctor":"dist/cli.mjs"},"dist":{"shasum":"5f82dc0333157bbe9fe01cab40e8a130d8ea39e6","tarball":"https://registry.npmjs.org/svelte-doctor/-/svelte-doctor-0.1.9.tgz","fileCount":6,"integrity":"sha512-W7ERaUmbw6yJpeTx+FFGGjcDjcQeEoIlzmQV0XnTFE3uUkAm+3Pbw+WuZm2jXKHl3HWwEttL7EH0+/nYoVJE/g==","signatures":[{"sig":"MEQCIFUqOq8dB7Dcze8mxBZwHLsgHtTLPQl38rXoGQlziiWXAiB4lzx8Mzld+y663W2ObJ0zkeUJM5bbE6W61pfm1ghV8A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":356025},"type":"module","shasum":"5f82dc0333157bbe9fe01cab40e8a130d8ea39e6","engines":{"node":">=22.18.0"},"exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"}},"scripts":{"dev":"tsdown --watch","test":"bun run build && bun test test","build":"rm -rf dist && NODE_ENV=production tsdown && rm -f dist/*.map && node -e \"const fs=require('node:fs'); for (const file of fs.readdirSync('dist')) { if (!file.endsWith('.mjs')) continue; const path='dist/' + file; const source=fs.readFileSync(path,'utf8').replace(/^\\/\\/\\# sourceMappingURL=.*$/gm,'').replace(/\\n{3,}/g,'\\n\\n'); fs.writeFileSync(path, source, 'utf8'); }\"","prepack":"bun run build","typecheck":"tsc --noEmit"},"_npmUser":{"name":"queaxtra","email":"fatih@etik.com"},"_integrity":"sha512-W7ERaUmbw6yJpeTx+FFGGjcDjcQeEoIlzmQV0XnTFE3uUkAm+3Pbw+WuZm2jXKHl3HWwEttL7EH0+/nYoVJE/g==","repository":{"url":"git+https://github.com/Pimatis/svelte-doctor.git","type":"git"},"_npmVersion":"10.8.3","description":"Diagnose and fix performance, correctness, and architecture issues in your Svelte codebase","directories":{},"_nodeVersion":"24.3.0","dependencies":{"ora":"^9.3.0","knip":"^6.0.5","svelte":"^5.55.0","commander":"^14.0.3","picocolors":"^1.1.1","typescript":"^6.0.2"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"packageManager":"bun@1.3.10","devDependencies":{"tsdown":"^0.21.5","@types/node":"^25.5.0"},"_npmOperationalInternal":{"tmp":"tmp/svelte-doctor_0.1.9_1774470770838_0.49951091756348487","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"svelte-doctor","version":"0.2.0","keywords":["svelte","svelte5","sveltekit","diagnostics","linter","performance","runes","migration","codemod","cli","static-analysis","code-quality","typescript","security","refactoring","ai","analyzer","vite","javascript"],"author":"Pimatis","license":"Apache-2.0","_id":"svelte-doctor@0.2.0","maintainers":[{"name":"queaxtra","email":"fatih@etik.com"}],"homepage":"https://github.com/Pimatis/svelte-doctor","bugs":{"url":"https://github.com/Pimatis/svelte-doctor/issues"},"bin":{"svelte-doctor":"dist/cli.mjs"},"dist":{"shasum":"1175530ec8e2573b13f0d9ba9806411155b8f5de","tarball":"https://registry.npmjs.org/svelte-doctor/-/svelte-doctor-0.2.0.tgz","fileCount":6,"integrity":"sha512-CjAvmftvxDrR87gzYZYnN90ISx+CIG3hSilSYRtbAHKd7ZN7xKkgzMyUhmM+jKyHXuAgPmqswG87Q3R5Myu9fQ==","signatures":[{"sig":"MEQCIESMQFlxI1gYdsxoOW6d71qWkJ/tng1/906Y//bJtLE/AiBq85dBKLsvs0Hc3v6K+D5v8CEXR4vAr01fv1ka+LLRfA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":359740},"type":"module","shasum":"1175530ec8e2573b13f0d9ba9806411155b8f5de","engines":{"node":">=22.18.0"},"exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"}},"scripts":{"dev":"tsdown --watch","test":"bun run build && bun test test","build":"rm -rf dist && NODE_ENV=production tsdown && rm -f dist/*.map && node -e \"const fs=require('node:fs'); for (const file of fs.readdirSync('dist')) { if (!file.endsWith('.mjs')) continue; const path='dist/' + file; const source=fs.readFileSync(path,'utf8').replace(/^\\/\\/\\# sourceMappingURL=.*$/gm,'').replace(/\\n{3,}/g,'\\n\\n'); fs.writeFileSync(path, source, 'utf8'); }\"","prepack":"bun run build","typecheck":"tsc --noEmit"},"_npmUser":{"name":"queaxtra","email":"fatih@etik.com"},"_integrity":"sha512-CjAvmftvxDrR87gzYZYnN90ISx+CIG3hSilSYRtbAHKd7ZN7xKkgzMyUhmM+jKyHXuAgPmqswG87Q3R5Myu9fQ==","repository":{"url":"git+https://github.com/Pimatis/svelte-doctor.git","type":"git"},"_npmVersion":"10.8.3","description":"Diagnose and fix performance, correctness, and architecture issues in your Svelte codebase","directories":{},"_nodeVersion":"24.3.0","dependencies":{"ora":"^9.3.0","knip":"^6.0.5","svelte":"^5.55.0","commander":"^14.0.3","picocolors":"^1.1.1","typescript":"^6.0.2"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"packageManager":"bun@1.3.10","devDependencies":{"tsdown":"^0.21.5","@types/node":"^25.5.0"},"_npmOperationalInternal":{"tmp":"tmp/svelte-doctor_0.2.0_1778086957291_0.7176524702173293","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"svelte-doctor","version":"0.2.1","keywords":["svelte","svelte5","sveltekit","diagnostics","linter","performance","runes","migration","codemod","cli","static-analysis","code-quality","typescript","security","refactoring","ai","analyzer","vite","javascript"],"author":"Pimatis","license":"Apache-2.0","_id":"svelte-doctor@0.2.1","maintainers":[{"name":"queaxtra","email":"fatih@etik.com"}],"homepage":"https://github.com/Pimatis/svelte-doctor","bugs":{"url":"https://github.com/Pimatis/svelte-doctor/issues"},"bin":{"svelte-doctor":"dist/cli.mjs"},"dist":{"shasum":"93c0d87a6e66a8bebf186f29c8cc04feaf27990b","tarball":"https://registry.npmjs.org/svelte-doctor/-/svelte-doctor-0.2.1.tgz","fileCount":6,"integrity":"sha512-SqlX+zPpG76ujEvk8Ij8+dpa4nlXWgc8gn9eJndBXdRQQ8DejPw4DR8R9ovH9wPltgx03EC4JzjHBfkVKK3gEg==","signatures":[{"sig":"MEYCIQDwAuY/qfuSuCZpa9hfnkk+L8LtxAhp+W77Rl6WbEglyAIhAN/vbew7qzipfgV1bQATFak9qm0LCO483e3+KuRKpdYX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":421723},"type":"module","shasum":"93c0d87a6e66a8bebf186f29c8cc04feaf27990b","engines":{"node":">=22.18.0"},"exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"}},"scripts":{"dev":"tsdown --watch","test":"bun run build && bun test test","build":"rm -rf dist && NODE_ENV=production tsdown && rm -f dist/*.map && node -e \"const fs=require('node:fs'); for (const file of fs.readdirSync('dist')) { if (!file.endsWith('.mjs')) continue; const path='dist/' + file; const source=fs.readFileSync(path,'utf8').replace(/^\\/\\/\\# sourceMappingURL=.*$/gm,'').replace(/\\n{3,}/g,'\\n\\n'); fs.writeFileSync(path, source, 'utf8'); }\"","prepack":"bun run build","typecheck":"tsc --noEmit"},"_npmUser":{"name":"queaxtra","email":"fatih@etik.com"},"_integrity":"sha512-SqlX+zPpG76ujEvk8Ij8+dpa4nlXWgc8gn9eJndBXdRQQ8DejPw4DR8R9ovH9wPltgx03EC4JzjHBfkVKK3gEg==","repository":{"url":"git+https://github.com/Pimatis/svelte-doctor.git","type":"git"},"_npmVersion":"10.8.3","description":"Diagnose and fix performance, correctness, and architecture issues in your Svelte codebase","directories":{},"_nodeVersion":"24.3.0","dependencies":{"ora":"^9.3.0","knip":"^6.0.5","svelte":"^5.55.0","commander":"^14.0.3","picocolors":"^1.1.1","typescript":"^6.0.2"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"packageManager":"bun@1.3.10","devDependencies":{"tsdown":"^0.21.5","@types/node":"^25.5.0"},"_npmOperationalInternal":{"tmp":"tmp/svelte-doctor_0.2.1_1778446092123_0.4409711343312306","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"svelte-doctor","version":"0.2.2","keywords":["svelte","svelte5","sveltekit","diagnostics","linter","performance","runes","migration","codemod","cli","static-analysis","code-quality","typescript","security","refactoring","ai","analyzer","vite","javascript"],"author":"Pimatis","license":"Apache-2.0","_id":"svelte-doctor@0.2.2","maintainers":[{"name":"queaxtra","email":"fatih@etik.com"}],"homepage":"https://github.com/Pimatis/svelte-doctor","bugs":{"url":"https://github.com/Pimatis/svelte-doctor/issues"},"bin":{"svelte-doctor":"dist/cli.mjs"},"dist":{"shasum":"c17da0c7e54b9149e237d1980cb7d6b9855b5e3f","tarball":"https://registry.npmjs.org/svelte-doctor/-/svelte-doctor-0.2.2.tgz","fileCount":6,"integrity":"sha512-+pAYI0dqnYnwGsx7vrcETQfSoM1eU+qSuTJAbmP45zND4DJ1n3s8Bxaw+XMMvlu1h0J6bBnHAHklxmZhGjWl/w==","signatures":[{"sig":"MEQCIFB5MpG8nQ7M/xOwzvEX7AV/wYnc9i3KBDXjWVar0p2DAiBExqYqeZKu3khckt7x+t/iXzK8MdkeRAjMGrUTNoUxug==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":448943},"type":"module","shasum":"c17da0c7e54b9149e237d1980cb7d6b9855b5e3f","engines":{"node":">=22.18.0"},"exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"}},"scripts":{"dev":"tsdown --watch","test":"bun run build && bun test test","build":"rm -rf dist && NODE_ENV=production tsdown && rm -f dist/*.map && node -e \"const fs=require('node:fs'); for (const file of fs.readdirSync('dist')) { if (!file.endsWith('.mjs')) continue; const path='dist/' + file; const source=fs.readFileSync(path,'utf8').replace(/^\\/\\/\\# sourceMappingURL=.*$/gm,'').replace(/\\n{3,}/g,'\\n\\n'); fs.writeFileSync(path, source, 'utf8'); }\"","prepack":"bun run build","typecheck":"tsc --noEmit"},"_npmUser":{"name":"queaxtra","email":"fatih@etik.com"},"_integrity":"sha512-+pAYI0dqnYnwGsx7vrcETQfSoM1eU+qSuTJAbmP45zND4DJ1n3s8Bxaw+XMMvlu1h0J6bBnHAHklxmZhGjWl/w==","repository":{"url":"git+https://github.com/Pimatis/svelte-doctor.git","type":"git"},"_npmVersion":"10.8.3","description":"Diagnose and fix performance, correctness, and architecture issues in your Svelte codebase","directories":{},"_nodeVersion":"24.3.0","dependencies":{"ora":"^9.3.0","knip":"^6.0.5","svelte":"^5.55.0","commander":"^14.0.3","picocolors":"^1.1.1","typescript":"^6.0.2"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"packageManager":"bun@1.3.10","devDependencies":{"tsdown":"^0.21.5","@types/node":"^25.5.0"},"_npmOperationalInternal":{"tmp":"tmp/svelte-doctor_0.2.2_1778692150551_0.37876820957233726","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"svelte-doctor","version":"0.2.3","keywords":["svelte","svelte5","sveltekit","diagnostics","linter","performance","runes","migration","codemod","cli","static-analysis","code-quality","typescript","security","refactoring","ai","analyzer","vite","javascript"],"author":"Pimatis","license":"Apache-2.0","_id":"svelte-doctor@0.2.3","maintainers":[{"name":"queaxtra","email":"fatih@etik.com"}],"homepage":"https://github.com/Pimatis/svelte-doctor","bugs":{"url":"https://github.com/Pimatis/svelte-doctor/issues"},"bin":{"svelte-doctor":"dist/cli.mjs"},"dist":{"shasum":"dd51b92d18bc7322541944922edee59a44f84707","tarball":"https://registry.npmjs.org/svelte-doctor/-/svelte-doctor-0.2.3.tgz","fileCount":6,"integrity":"sha512-QCivQgiJU/3p+gegdt6KQstFVqn1zPx6hBMYpqsN2vCC7PdOtG8vvIGevDAU5c+IxIVd+Qy3VzHslGWVmib7Yw==","signatures":[{"sig":"MEUCIQDcu77rS1BgF/D8ITMKUdRa2UTAr83TA6BFp+u2saGzVQIgGv3/RQq6vPbB3SdsDhZYQ5BMElUZDoeI1wtF9gjd1wU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":454533},"type":"module","shasum":"dd51b92d18bc7322541944922edee59a44f84707","engines":{"node":">=22.18.0"},"exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"}},"scripts":{"dev":"tsdown --watch","test":"bun run build && bun test test","build":"rm -rf dist && NODE_ENV=production tsdown && rm -f dist/*.map && node -e \"const fs=require('node:fs'); for (const file of fs.readdirSync('dist')) { if (!file.endsWith('.mjs')) continue; const path='dist/' + file; const source=fs.readFileSync(path,'utf8').replace(/^\\/\\/\\# sourceMappingURL=.*$/gm,'').replace(/\\n{3,}/g,'\\n\\n'); fs.writeFileSync(path, source, 'utf8'); }\"","check":"tsc --noEmit","prepack":"bun run build","typecheck":"tsc --noEmit"},"_npmUser":{"name":"queaxtra","email":"fatih@etik.com"},"_integrity":"sha512-QCivQgiJU/3p+gegdt6KQstFVqn1zPx6hBMYpqsN2vCC7PdOtG8vvIGevDAU5c+IxIVd+Qy3VzHslGWVmib7Yw==","repository":{"url":"git+https://github.com/Pimatis/svelte-doctor.git","type":"git"},"_npmVersion":"10.8.3","description":"Diagnose and fix performance, correctness, and architecture issues in your Svelte codebase","directories":{},"_nodeVersion":"24.3.0","dependencies":{"ora":"^9.4.0","knip":"^6.14.1","svelte":"^5.55.7","commander":"^14.0.3","picocolors":"^1.1.1","typescript":"^6.0.3"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"packageManager":"bun@1.3.10","devDependencies":{"tsdown":"^0.21.10","@types/node":"^25.8.0"},"_npmOperationalInternal":{"tmp":"tmp/svelte-doctor_0.2.3_1778926148799_0.4548857309371288","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"svelte-doctor","version":"0.2.4","keywords":["svelte","svelte5","sveltekit","diagnostics","linter","performance","runes","migration","codemod","cli","static-analysis","code-quality","typescript","security","refactoring","ai","analyzer","vite","javascript"],"author":"Pimatis","license":"Apache-2.0","_id":"svelte-doctor@0.2.4","maintainers":[{"name":"queaxtra","email":"fatih@etik.com"}],"homepage":"https://github.com/Pimatis/svelte-doctor","bugs":{"url":"https://github.com/Pimatis/svelte-doctor/issues"},"bin":{"svelte-doctor":"dist/cli.mjs"},"dist":{"shasum":"9a46c2e8b0ff4f404ad8065e84a288b4a3e3ddbf","tarball":"https://registry.npmjs.org/svelte-doctor/-/svelte-doctor-0.2.4.tgz","fileCount":6,"integrity":"sha512-C1/MT0fuA5EkxPxT0aPl5QyBZ6a4frWvXofY1NO1cYCJmFBAQnkuLZOwklWc9MNL5kYgbhXt1wI3qSugjse21Q==","signatures":[{"sig":"MEYCIQC+T7lk2dFC9WBE8lehpPeEt4Gzh+5br2ZGXQhk+zKYiAIhAIeExubMuVdl3bEC6vkUKQHPlUUsbiDtnIFJt2wfrrLy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":477576},"type":"module","shasum":"9a46c2e8b0ff4f404ad8065e84a288b4a3e3ddbf","engines":{"node":">=22.18.0"},"exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"}},"scripts":{"dev":"tsdown --watch","test":"bun run build && bun test test","build":"rm -rf dist && NODE_ENV=production tsdown && rm -f dist/*.map && node -e \"const fs=require('node:fs'); for (const file of fs.readdirSync('dist')) { if (!file.endsWith('.mjs')) continue; const path='dist/' + file; const source=fs.readFileSync(path,'utf8').replace(/^\\/\\/\\# sourceMappingURL=.*$/gm,'').replace(/\\n{3,}/g,'\\n\\n'); fs.writeFileSync(path, source, 'utf8'); }\"","check":"tsc --noEmit","prepack":"bun run build","typecheck":"tsc --noEmit"},"_npmUser":{"name":"queaxtra","email":"fatih@etik.com"},"_integrity":"sha512-C1/MT0fuA5EkxPxT0aPl5QyBZ6a4frWvXofY1NO1cYCJmFBAQnkuLZOwklWc9MNL5kYgbhXt1wI3qSugjse21Q==","repository":{"url":"git+https://github.com/Pimatis/svelte-doctor.git","type":"git"},"_npmVersion":"10.8.3","description":"Diagnose and fix performance, correctness, and architecture issues in your Svelte codebase","directories":{},"_nodeVersion":"24.3.0","dependencies":{"ora":"^9.4.0","knip":"^6.14.1","svelte":"^5.55.7","commander":"^14.0.3","picocolors":"^1.1.1","typescript":"^6.0.3"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"packageManager":"bun@1.3.10","devDependencies":{"tsdown":"^0.21.10","@types/node":"^25.8.0"},"_npmOperationalInternal":{"tmp":"tmp/svelte-doctor_0.2.4_1779018046874_0.374109893042041","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"svelte-doctor","version":"0.2.5","keywords":["svelte","svelte5","sveltekit","diagnostics","linter","performance","runes","migration","codemod","cli","static-analysis","code-quality","typescript","security","refactoring","ai","analyzer","vite","javascript"],"author":"Pimatis","license":"Apache-2.0","_id":"svelte-doctor@0.2.5","maintainers":[{"name":"queaxtra","email":"fatih@etik.com"}],"homepage":"https://github.com/Pimatis/svelte-doctor","bugs":{"url":"https://github.com/Pimatis/svelte-doctor/issues"},"bin":{"svelte-doctor":"dist/cli.mjs"},"dist":{"shasum":"dfbc753541aa49cd7d4a9c2869627bd4b4684a78","tarball":"https://registry.npmjs.org/svelte-doctor/-/svelte-doctor-0.2.5.tgz","fileCount":6,"integrity":"sha512-nO1FV384sDhk9fv547Y0wzWED8crmXE2HQ9GAS+fCJh8JC+XVZaC2kJVmcDWloP8lYEk4TVxNEZq1LRSdBCU0w==","signatures":[{"sig":"MEUCIQDZI11z/QtEVNG9Ew+vrIy0REAQxsVH+slHP0sA9T7aigIgVnG/fNkAXlEC/ii10Go1O5EDbKDnezOm1IdrkT8QFVc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":483736},"type":"module","shasum":"dfbc753541aa49cd7d4a9c2869627bd4b4684a78","engines":{"node":">=22.18.0"},"exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"}},"scripts":{"dev":"tsdown --watch","test":"bun run build && bun test test","build":"rm -rf dist && NODE_ENV=production tsdown && rm -f dist/*.map && node -e \"const fs=require('node:fs'); for (const file of fs.readdirSync('dist')) { if (!file.endsWith('.mjs')) continue; const path='dist/' + file; const source=fs.readFileSync(path,'utf8').replace(/^\\/\\/\\# sourceMappingURL=.*$/gm,'').replace(/\\n{3,}/g,'\\n\\n'); fs.writeFileSync(path, source, 'utf8'); }\"","check":"tsc --noEmit","prepack":"bun run build","typecheck":"tsc --noEmit"},"_npmUser":{"name":"queaxtra","email":"fatih@etik.com"},"_integrity":"sha512-nO1FV384sDhk9fv547Y0wzWED8crmXE2HQ9GAS+fCJh8JC+XVZaC2kJVmcDWloP8lYEk4TVxNEZq1LRSdBCU0w==","repository":{"url":"git+https://github.com/Pimatis/svelte-doctor.git","type":"git"},"_npmVersion":"10.8.3","description":"Diagnose and fix performance, correctness, and architecture issues in your Svelte codebase","directories":{},"_nodeVersion":"24.3.0","dependencies":{"ora":"^9.4.0","knip":"^6.14.1","svelte":"^5.55.7","commander":"^14.0.3","picocolors":"^1.1.1","typescript":"^6.0.3"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"packageManager":"bun@1.3.10","devDependencies":{"tsdown":"^0.21.10","@types/node":"^25.8.0"},"_npmOperationalInternal":{"tmp":"tmp/svelte-doctor_0.2.5_1779035252289_0.81908525458698","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"svelte-doctor","version":"0.2.6","keywords":["svelte","svelte5","sveltekit","diagnostics","linter","performance","runes","migration","codemod","cli","static-analysis","code-quality","typescript","security","refactoring","ai","analyzer","vite","javascript"],"author":"Pimatis","license":"Apache-2.0","_id":"svelte-doctor@0.2.6","maintainers":[{"name":"queaxtra","email":"fatih@etik.com"}],"homepage":"https://github.com/Pimatis/svelte-doctor","bugs":{"url":"https://github.com/Pimatis/svelte-doctor/issues"},"bin":{"svelte-doctor":"dist/cli.mjs"},"dist":{"shasum":"99b8862ddb63797d6f6bcaa6e4e06be95cb36b93","tarball":"https://registry.npmjs.org/svelte-doctor/-/svelte-doctor-0.2.6.tgz","fileCount":6,"integrity":"sha512-aWItHcbskqxhcpvuZnPrb65w2af5wp6X6+xBy7IJi5IS2AiMU5iExMDIGJH2G8TAuIshffcwQlm+h/MlsGTtYw==","signatures":[{"sig":"MEYCIQCF6wk1d3bLRLNc1/jJ7PEgiFwgRoQB9fIfuvgZCmNa/QIhANS60XK6HluqamlCE6LAAgIhbqho/QADa3OI6mm5MrOe","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":494139},"type":"module","shasum":"99b8862ddb63797d6f6bcaa6e4e06be95cb36b93","engines":{"node":">=22.18.0"},"exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"}},"scripts":{"dev":"tsdown --watch","test":"bun run build && bun test test","build":"rm -rf dist && NODE_ENV=production tsdown && rm -f dist/*.map && node -e \"const fs=require('node:fs'); for (const file of fs.readdirSync('dist')) { if (!file.endsWith('.mjs')) continue; const path='dist/' + file; const source=fs.readFileSync(path,'utf8').replace(/^\\/\\/\\# sourceMappingURL=.*$/gm,'').replace(/\\n{3,}/g,'\\n\\n'); fs.writeFileSync(path, source, 'utf8'); }\"","check":"tsc --noEmit","prepack":"bun run build","typecheck":"tsc --noEmit"},"_npmUser":{"name":"queaxtra","email":"fatih@etik.com"},"_integrity":"sha512-aWItHcbskqxhcpvuZnPrb65w2af5wp6X6+xBy7IJi5IS2AiMU5iExMDIGJH2G8TAuIshffcwQlm+h/MlsGTtYw==","repository":{"url":"git+https://github.com/Pimatis/svelte-doctor.git","type":"git"},"_npmVersion":"10.8.3","description":"Diagnose and fix performance, correctness, and architecture issues in your Svelte codebase","directories":{},"_nodeVersion":"24.3.0","dependencies":{"ora":"^9.4.0","knip":"^6.14.1","svelte":"^5.55.7","commander":"^14.0.3","picocolors":"^1.1.1","typescript":"^6.0.3"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"packageManager":"bun@1.3.10","devDependencies":{"tsdown":"^0.21.10","@types/node":"^25.8.0"},"_npmOperationalInternal":{"tmp":"tmp/svelte-doctor_0.2.6_1779107481058_0.9175950542204474","host":"s3://npm-registry-packages-npm-production"}},"0.2.7":{"name":"svelte-doctor","version":"0.2.7","keywords":["svelte","svelte5","sveltekit","diagnostics","linter","performance","runes","migration","codemod","cli","static-analysis","code-quality","typescript","security","refactoring","ai","analyzer","vite","javascript"],"author":"Pimatis","license":"Apache-2.0","_id":"svelte-doctor@0.2.7","maintainers":[{"name":"queaxtra","email":"fatih@etik.com"}],"homepage":"https://github.com/Pimatis/svelte-doctor","bugs":{"url":"https://github.com/Pimatis/svelte-doctor/issues"},"bin":{"svelte-doctor":"dist/cli.mjs"},"dist":{"shasum":"3cceb2c5945eff5bab4989937c78306f07b20180","tarball":"https://registry.npmjs.org/svelte-doctor/-/svelte-doctor-0.2.7.tgz","fileCount":6,"integrity":"sha512-dCBOQxiIhml0d2YmbqP6lLvEYxsy5bcXy0muCw8L/YMf5OX3wcjnkeM7+l1TOvOW8ERSGXkMZyu07opV6EA7Xw==","signatures":[{"sig":"MEUCIQDdEW1zOX9PFh4RWOTpkjYFWSoFcwrYw1grYXajRUoLiQIgA2tLSxA/jAeiDlG1LDyUjm4XOXBQDCcxOPDb4EKfkJQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":529303},"type":"module","shasum":"3cceb2c5945eff5bab4989937c78306f07b20180","engines":{"node":">=22.18.0"},"exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"}},"scripts":{"dev":"tsdown --watch","test":"bun run build && bun test test","build":"rm -rf dist && NODE_ENV=production tsdown && rm -f dist/*.map && node -e \"const fs=require('node:fs'); for (const file of fs.readdirSync('dist')) { if (!file.endsWith('.mjs')) continue; const path='dist/' + file; const source=fs.readFileSync(path,'utf8').replace(/^\\/\\/\\# sourceMappingURL=.*$/gm,'').replace(/\\n{3,}/g,'\\n\\n'); fs.writeFileSync(path, source, 'utf8'); }\"","check":"tsc --noEmit","prepack":"bun run build","typecheck":"tsc --noEmit"},"_npmUser":{"name":"queaxtra","email":"fatih@etik.com"},"_integrity":"sha512-dCBOQxiIhml0d2YmbqP6lLvEYxsy5bcXy0muCw8L/YMf5OX3wcjnkeM7+l1TOvOW8ERSGXkMZyu07opV6EA7Xw==","repository":{"url":"git+https://github.com/Pimatis/svelte-doctor.git","type":"git"},"_npmVersion":"10.8.3","description":"Diagnose and fix performance, correctness, and architecture issues in your Svelte codebase","directories":{},"_nodeVersion":"24.3.0","dependencies":{"ora":"^9.4.0","knip":"^6.14.1","svelte":"^5.55.7","commander":"^14.0.3","picocolors":"^1.1.1","typescript":"^6.0.3"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"packageManager":"bun@1.3.10","devDependencies":{"tsdown":"^0.21.10","@types/node":"^25.8.0"},"_npmOperationalInternal":{"tmp":"tmp/svelte-doctor_0.2.7_1779713839054_0.9835730901186259","host":"s3://npm-registry-packages-npm-production"}},"0.2.8":{"name":"svelte-doctor","version":"0.2.8","keywords":["svelte","svelte5","sveltekit","diagnostics","linter","performance","runes","migration","codemod","cli","static-analysis","code-quality","typescript","security","refactoring","ai","analyzer","vite","javascript"],"author":"Pimatis","license":"Apache-2.0","_id":"svelte-doctor@0.2.8","maintainers":[{"name":"queaxtra","email":"fatih@etik.com"}],"homepage":"https://github.com/Pimatis/svelte-doctor","bugs":{"url":"https://github.com/Pimatis/svelte-doctor/issues"},"bin":{"svelte-doctor":"dist/cli.mjs"},"dist":{"shasum":"7ab8eb75dc61ba5849c1eb8be5a20ccd08f5b9b1","tarball":"https://registry.npmjs.org/svelte-doctor/-/svelte-doctor-0.2.8.tgz","fileCount":6,"integrity":"sha512-sS/SijoWUSp21XA23pifhZuRxSYjQsrcfp5cGnZ7nAvc+42WPwYXMbCnz1rVIOiJI/jUkTHGKJOOn5hyx4qp/A==","signatures":[{"sig":"MEUCIQDoeJq1ZqfC9hLrhfHHC2r7OYlZU1PVf9ZNTyRm7bZHCgIgSvK6gv6hSS0pQ/2oetMQQvvlb1qL8PDFEIiRB4A3cyc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":570374},"type":"module","shasum":"7ab8eb75dc61ba5849c1eb8be5a20ccd08f5b9b1","engines":{"node":">=22.18.0"},"exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"}},"scripts":{"dev":"tsdown --watch","test":"bun run build && bun test test","build":"rm -rf dist && NODE_ENV=production tsdown && rm -f dist/*.map && node -e \"const fs=require('node:fs'); for (const file of fs.readdirSync('dist')) { if (!file.endsWith('.mjs')) continue; const path='dist/' + file; const source=fs.readFileSync(path,'utf8').replace(/^\\/\\/\\# sourceMappingURL=.*$/gm,'').replace(/\\n{3,}/g,'\\n\\n'); fs.writeFileSync(path, source, 'utf8'); }\"","check":"tsc --noEmit","prepack":"bun run build","typecheck":"tsc --noEmit"},"_npmUser":{"name":"queaxtra","email":"fatih@etik.com"},"_integrity":"sha512-sS/SijoWUSp21XA23pifhZuRxSYjQsrcfp5cGnZ7nAvc+42WPwYXMbCnz1rVIOiJI/jUkTHGKJOOn5hyx4qp/A==","repository":{"url":"git+https://github.com/Pimatis/svelte-doctor.git","type":"git"},"_npmVersion":"10.8.3","description":"Diagnose and fix performance, correctness, and architecture issues in your Svelte codebase","directories":{},"_nodeVersion":"24.3.0","dependencies":{"ora":"^9.4.0","knip":"^6.14.1","svelte":"^5.55.7","commander":"^14.0.3","picocolors":"^1.1.1","typescript":"^6.0.3"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"packageManager":"bun@1.3.10","devDependencies":{"tsdown":"^0.21.10","@types/node":"^25.8.0"},"_npmOperationalInternal":{"tmp":"tmp/svelte-doctor_0.2.8_1779738822139_0.1369632860311374","host":"s3://npm-registry-packages-npm-production"}},"0.2.9":{"name":"svelte-doctor","version":"0.2.9","keywords":["svelte","svelte5","sveltekit","diagnostics","linter","performance","runes","migration","codemod","cli","static-analysis","code-quality","typescript","security","refactoring","ai","analyzer","vite","javascript"],"author":"Pimatis","license":"Apache-2.0","_id":"svelte-doctor@0.2.9","maintainers":[{"name":"queaxtra","email":"fatih@etik.com"}],"homepage":"https://github.com/Pimatis/svelte-doctor","bugs":{"url":"https://github.com/Pimatis/svelte-doctor/issues"},"bin":{"svelte-doctor":"dist/cli.mjs"},"dist":{"shasum":"5a3c5df70265ed51f1e3638f143a3c227371e8d2","tarball":"https://registry.npmjs.org/svelte-doctor/-/svelte-doctor-0.2.9.tgz","fileCount":6,"integrity":"sha512-kHTvnvLraRdEYJSoiqzTHMWzRQsnDX72aHLa9jE1wLUDaqqVPkMkwSlSyuN8tEgXRelf9Lz41ZlKjpIHPFOSFQ==","signatures":[{"sig":"MEUCIQC3AkB84Ocv1V6HuLT+aMXikqsWy8N1Y8K+cBY3ZIG+TAIgBpfxHpfXnn5X8avLUsOLkg72q0knm+eVWKWIBNhT5Ak=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":571202},"type":"module","shasum":"5a3c5df70265ed51f1e3638f143a3c227371e8d2","engines":{"node":">=22.18.0"},"exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"}},"scripts":{"dev":"tsdown --watch","test":"bun run build && bun test test","build":"rm -rf dist && NODE_ENV=production tsdown && rm -f dist/*.map && node -e \"const fs=require('node:fs'); for (const file of fs.readdirSync('dist')) { if (!file.endsWith('.mjs')) continue; const path='dist/' + file; const source=fs.readFileSync(path,'utf8').replace(/^\\/\\/\\# sourceMappingURL=.*$/gm,'').replace(/\\n{3,}/g,'\\n\\n'); fs.writeFileSync(path, source, 'utf8'); }\"","check":"tsc --noEmit","prepack":"bun run build","typecheck":"tsc --noEmit"},"_npmUser":{"name":"queaxtra","email":"fatih@etik.com"},"_integrity":"sha512-kHTvnvLraRdEYJSoiqzTHMWzRQsnDX72aHLa9jE1wLUDaqqVPkMkwSlSyuN8tEgXRelf9Lz41ZlKjpIHPFOSFQ==","repository":{"url":"git+https://github.com/Pimatis/svelte-doctor.git","type":"git"},"_npmVersion":"10.8.3","description":"Diagnose and fix performance, correctness, and architecture issues in your Svelte codebase","directories":{},"_nodeVersion":"24.3.0","dependencies":{"ora":"^9.4.0","knip":"^6.14.1","svelte":"^5.55.7","commander":"^14.0.3","picocolors":"^1.1.1","typescript":"^6.0.3"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"packageManager":"bun@1.3.10","devDependencies":{"tsdown":"^0.21.10","@types/node":"^25.8.0"},"_npmOperationalInternal":{"tmp":"tmp/svelte-doctor_0.2.9_1780829007124_0.9625820610060283","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"svelte-doctor","version":"0.3.0","keywords":["svelte","svelte5","sveltekit","diagnostics","linter","performance","runes","migration","codemod","cli","static-analysis","code-quality","typescript","security","refactoring","ai","analyzer","vite","javascript"],"author":"Pimatis","license":"Apache-2.0","_id":"svelte-doctor@0.3.0","maintainers":[{"name":"queaxtra","email":"fatih@etik.com"}],"homepage":"https://github.com/Pimatis/svelte-doctor","bugs":{"url":"https://github.com/Pimatis/svelte-doctor/issues"},"bin":{"svelte-doctor":"dist/cli.mjs"},"dist":{"shasum":"ff5b7c872663a944413fc81eac972ecbe3dea86a","tarball":"https://registry.npmjs.org/svelte-doctor/-/svelte-doctor-0.3.0.tgz","fileCount":6,"integrity":"sha512-1r0IjyfY9VmPBEyhZAZeHm9VNlJX0CY6ZEFJEnuKeF5b6mCr2en+WQA3EMtUnhZmIVgX26Ge+h87dBjxNno+xA==","signatures":[{"sig":"MEUCIA4Eupxhu3i5UmoGVES3+pQN0bbOaxLpAbG0w050bPGnAiEA5lVRWqP9vwRDCT84HEWZ9w36xUc6LHeTwOY82q7c99c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":603448},"type":"module","shasum":"ff5b7c872663a944413fc81eac972ecbe3dea86a","engines":{"node":">=22.18.0"},"exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"}},"scripts":{"dev":"tsdown --watch","test":"bun run build && bun test test","build":"rm -rf dist && NODE_ENV=production tsdown && rm -f dist/*.map && node -e \"const fs=require('node:fs'); for (const file of fs.readdirSync('dist')) { if (!file.endsWith('.mjs')) continue; const path='dist/' + file; const source=fs.readFileSync(path,'utf8').replace(/^\\/\\/\\# sourceMappingURL=.*$/gm,'').replace(/\\n{3,}/g,'\\n\\n'); fs.writeFileSync(path, source, 'utf8'); }\"","check":"tsc --noEmit","prepack":"bun run build","typecheck":"tsc --noEmit"},"_npmUser":{"name":"queaxtra","email":"fatih@etik.com"},"_integrity":"sha512-1r0IjyfY9VmPBEyhZAZeHm9VNlJX0CY6ZEFJEnuKeF5b6mCr2en+WQA3EMtUnhZmIVgX26Ge+h87dBjxNno+xA==","repository":{"url":"git+https://github.com/Pimatis/svelte-doctor.git","type":"git"},"_npmVersion":"10.8.3","description":"Diagnose and fix performance, correctness, and architecture issues in your Svelte codebase","directories":{},"_nodeVersion":"24.3.0","dependencies":{"ora":"^9.4.0","knip":"^6.16.1","svelte":"^5.56.3","commander":"^15.0.0","picocolors":"^1.1.1","typescript":"^6.0.3"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"packageManager":"bun@1.3.10","devDependencies":{"tsdown":"^0.22.2","@types/node":"^25.9.3"},"_npmOperationalInternal":{"tmp":"tmp/svelte-doctor_0.3.0_1781372461323_0.2572031941503994","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"svelte-doctor","version":"0.3.1","keywords":["svelte","svelte5","sveltekit","diagnostics","linter","performance","runes","migration","codemod","cli","static-analysis","code-quality","typescript","security","refactoring","ai","analyzer","vite","javascript"],"author":"Pimatis","license":"Apache-2.0","_id":"svelte-doctor@0.3.1","maintainers":[{"name":"queaxtra","email":"fatih@etik.com"}],"homepage":"https://github.com/Pimatis/svelte-doctor","bugs":{"url":"https://github.com/Pimatis/svelte-doctor/issues"},"bin":{"svelte-doctor":"dist/cli.mjs"},"dist":{"shasum":"5b61f89eec32686b2f35fcb69ebf24f09b10fc21","tarball":"https://registry.npmjs.org/svelte-doctor/-/svelte-doctor-0.3.1.tgz","fileCount":6,"integrity":"sha512-KIREeqapK/7ZY1nayDXV8elfY53pxg4OSEBSwt0ApGjIQtBkD8GXE8cUEjcchRuwx1cDWxMdsnhOeN1vW+FIKg==","signatures":[{"sig":"MEYCIQCwZMMbZrDdWkkMwmmPEs2W2STaO7+kprl4Hf4LBx/T4gIhAK1mEmWkQvCa6geazkpaFkqNBLwFjMgO6CCxyNZVjy29","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":662022},"type":"module","shasum":"5b61f89eec32686b2f35fcb69ebf24f09b10fc21","engines":{"node":">=22.18.0"},"exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"}},"scripts":{"dev":"tsdown --watch","test":"bun run build && bun test test","build":"rm -rf dist && NODE_ENV=production tsdown && rm -f dist/*.map && node -e \"const fs=require('node:fs'); for (const file of fs.readdirSync('dist')) { if (!file.endsWith('.mjs')) continue; const path='dist/' + file; const source=fs.readFileSync(path,'utf8').replace(/^\\/\\/\\# sourceMappingURL=.*$/gm,'').replace(/\\n{3,}/g,'\\n\\n'); fs.writeFileSync(path, source, 'utf8'); }\"","check":"tsc --noEmit","prepack":"bun run build","typecheck":"tsc --noEmit"},"_npmUser":{"name":"queaxtra","email":"fatih@etik.com"},"_integrity":"sha512-KIREeqapK/7ZY1nayDXV8elfY53pxg4OSEBSwt0ApGjIQtBkD8GXE8cUEjcchRuwx1cDWxMdsnhOeN1vW+FIKg==","repository":{"url":"git+https://github.com/Pimatis/svelte-doctor.git","type":"git"},"_npmVersion":"10.8.3","description":"Diagnose and fix performance, correctness, and architecture issues in your Svelte codebase","directories":{},"_nodeVersion":"24.3.0","dependencies":{"ora":"^9.4.1","knip":"^6.24.0","svelte":"^5.56.4","commander":"^15.0.0","picocolors":"^1.1.1","typescript":"^6.0.3"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"packageManager":"bun@1.3.10","devDependencies":{"tsdown":"^0.22.3","@types/node":"^26.1.0"},"_npmOperationalInternal":{"tmp":"tmp/svelte-doctor_0.3.1_1782984165260_0.6570040707836229","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"svelte-doctor","version":"0.3.2","keywords":["svelte","svelte5","sveltekit","diagnostics","linter","performance","runes","migration","codemod","cli","static-analysis","code-quality","typescript","security","refactoring","ai","analyzer","vite","javascript"],"author":"Pimatis","license":"Apache-2.0","_id":"svelte-doctor@0.3.2","maintainers":[{"name":"queaxtra","email":"fatih@etik.com"}],"homepage":"https://github.com/Pimatis/svelte-doctor","bugs":{"url":"https://github.com/Pimatis/svelte-doctor/issues"},"bin":{"svelte-doctor":"dist/cli.mjs"},"dist":{"shasum":"b666385d5eb6358bc734ef31d3c707a099baed83","tarball":"https://registry.npmjs.org/svelte-doctor/-/svelte-doctor-0.3.2.tgz","fileCount":6,"integrity":"sha512-CQ9eldjmyJh7PWI1ZuqvVuIJgyjqsi0n6XJOkxVzkqIP7UyIkbpv3mfW4OdyKKXlr7Zvxhv+C/Rg9sg3x2MG9A==","signatures":[{"sig":"MEYCIQCqebb+TCMRlb0Vdbh8s142xNxRoBkqxbfkhDo/VAPCmQIhANH9dhJoBp5+BqakHOJB6M3oNzdyl5/PgaS6JK3gDt6J","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":764108},"type":"module","shasum":"b666385d5eb6358bc734ef31d3c707a099baed83","engines":{"node":">=22.18.0"},"exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"}},"scripts":{"dev":"tsdown --watch","lint":"eslint src/","test":"bun run build && bun test test","build":"rm -rf dist && NODE_ENV=production tsdown && rm -f dist/*.map && node -e \"const fs=require('node:fs'); for (const file of fs.readdirSync('dist')) { if (!file.endsWith('.mjs')) continue; const path='dist/' + file; const source=fs.readFileSync(path,'utf8').replace(/^\\/\\/\\# sourceMappingURL=.*$/gm,'').replace(/\\n{3,}/g,'\\n\\n'); fs.writeFileSync(path, source, 'utf8'); }\"","check":"tsc --noEmit","format":"prettier --write .","prepack":"bun run build","typecheck":"tsc --noEmit","format:check":"prettier --check ."},"_npmUser":{"name":"queaxtra","email":"fatih@etik.com"},"_integrity":"sha512-CQ9eldjmyJh7PWI1ZuqvVuIJgyjqsi0n6XJOkxVzkqIP7UyIkbpv3mfW4OdyKKXlr7Zvxhv+C/Rg9sg3x2MG9A==","repository":{"url":"git+https://github.com/Pimatis/svelte-doctor.git","type":"git"},"_npmVersion":"10.8.3","description":"Diagnose and fix performance, correctness, and architecture issues in your Svelte codebase","directories":{},"_nodeVersion":"24.3.0","dependencies":{"ora":"^9.4.1","knip":"^6.26.0","svelte":"^5.56.4","commander":"^15.0.0","picocolors":"^1.1.1","typescript":"^6.0.3"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"packageManager":"bun@1.3.10","devDependencies":{"eslint":"^10.7.0","tsdown":"^0.22.7","prettier":"^3.9.5","@eslint/js":"^10.0.1","@types/node":"^26.1.1","typescript-eslint":"^8.64.0","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/svelte-doctor_0.3.2_1784072062491_0.7688332682012287","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"svelte-doctor","version":"0.3.3","keywords":["svelte","svelte5","sveltekit","diagnostics","linter","performance","runes","migration","codemod","cli","static-analysis","code-quality","typescript","security","refactoring","ai","analyzer","vite","javascript"],"author":"Pimatis","license":"Apache-2.0","_id":"svelte-doctor@0.3.3","maintainers":[{"name":"queaxtra","email":"fatih@etik.com"}],"homepage":"https://github.com/Pimatis/svelte-doctor","bugs":{"url":"https://github.com/Pimatis/svelte-doctor/issues"},"bin":{"svelte-doctor":"dist/cli.mjs"},"dist":{"shasum":"9b99638943e80f730f16a57f9d75c3c019ababf7","tarball":"https://registry.npmjs.org/svelte-doctor/-/svelte-doctor-0.3.3.tgz","fileCount":6,"integrity":"sha512-Lp2eA7bbDYUv8BTnODgcdx4w57cTiEpvjl7h7uWGpIjJuLHbB1HNTM0IIS6N7r+1ENhWFG/otIgP6GGUGxO4yw==","signatures":[{"sig":"MEYCIQDB9Myq7alxbHC/+xkLpWdABOQcDmcFDM+YKbLcZHCsGwIhAK7jxgNyTvci9jCoCPPbjNhxiXeZ9t8D8n/fvxqCVnUf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":802140},"type":"module","shasum":"9b99638943e80f730f16a57f9d75c3c019ababf7","engines":{"node":">=22.18.0"},"exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"}},"scripts":{"dev":"tsdown --watch","lint":"eslint src/","test":"bun run build && bun test test","build":"rm -rf dist && NODE_ENV=production tsdown && rm -f dist/*.map && node -e \"const fs=require('node:fs'); for (const file of fs.readdirSync('dist')) { if (!file.endsWith('.mjs')) continue; const path='dist/' + file; const source=fs.readFileSync(path,'utf8').replace(/^\\/\\/\\# sourceMappingURL=.*$/gm,'').replace(/\\n{3,}/g,'\\n\\n'); fs.writeFileSync(path, source, 'utf8'); }\"","check":"tsc --noEmit","format":"prettier --write .","prepack":"bun run build","typecheck":"tsc --noEmit","format:check":"prettier --check ."},"_npmUser":{"name":"queaxtra","email":"fatih@etik.com"},"_integrity":"sha512-Lp2eA7bbDYUv8BTnODgcdx4w57cTiEpvjl7h7uWGpIjJuLHbB1HNTM0IIS6N7r+1ENhWFG/otIgP6GGUGxO4yw==","repository":{"url":"git+https://github.com/Pimatis/svelte-doctor.git","type":"git"},"_npmVersion":"10.8.3","description":"Diagnose and fix performance, correctness, and architecture issues in your Svelte codebase","directories":{},"_nodeVersion":"24.3.0","dependencies":{"ora":"^9.4.1","knip":"^6.26.0","svelte":"^5.56.4","commander":"^15.0.0","picocolors":"^1.1.1","typescript":"^6.0.3"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"packageManager":"bun@1.3.10","devDependencies":{"eslint":"^10.7.0","tsdown":"^0.22.7","prettier":"^3.9.5","@eslint/js":"^10.0.1","@types/node":"^26.1.1","typescript-eslint":"^8.64.0","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/svelte-doctor_0.3.3_1784114044526_0.17506034490626177","host":"s3://npm-registry-packages-npm-production"}},"0.3.4":{"name":"svelte-doctor","version":"0.3.4","keywords":["svelte","svelte5","sveltekit","diagnostics","linter","performance","runes","migration","codemod","cli","static-analysis","code-quality","typescript","security","refactoring","ai","analyzer","vite","javascript"],"author":"Pimatis","license":"Apache-2.0","_id":"svelte-doctor@0.3.4","maintainers":[{"name":"queaxtra","email":"fatih@etik.com"}],"homepage":"https://github.com/Pimatis/svelte-doctor","bugs":{"url":"https://github.com/Pimatis/svelte-doctor/issues"},"bin":{"svelte-doctor":"dist/cli.mjs"},"dist":{"shasum":"3b5c0f0ecb4075eb0ea078a0786a4c58a2ebf0d3","tarball":"https://registry.npmjs.org/svelte-doctor/-/svelte-doctor-0.3.4.tgz","fileCount":6,"integrity":"sha512-VFeQHWjs+z6609r/umADE60SHxtsN8nqWUNN5Su9uaiou8V2FZKUmqi2oygmL2rse9aWg2d4eFfyKjsLrMkOHg==","signatures":[{"sig":"MEYCIQCujCA4GspaZiJB5E9w3vXSZtavg2VuYpcgJP12dMKdpwIhANSJoHvu99eMrdWP45ZZOSZ2/ddIFkeuOkMVk7t+nEQB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":802880},"type":"module","shasum":"3b5c0f0ecb4075eb0ea078a0786a4c58a2ebf0d3","engines":{"node":">=22.18.0"},"exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"}},"scripts":{"dev":"tsdown --watch","lint":"eslint src/","test":"bun run build && bun test test","build":"rm -rf dist && NODE_ENV=production tsdown && rm -f dist/*.map && node -e \"const fs=require('node:fs'); for (const file of fs.readdirSync('dist')) { if (!file.endsWith('.mjs')) continue; const path='dist/' + file; const source=fs.readFileSync(path,'utf8').replace(/^\\/\\/\\# sourceMappingURL=.*$/gm,'').replace(/\\n{3,}/g,'\\n\\n'); fs.writeFileSync(path, source, 'utf8'); }\"","check":"tsc --noEmit","format":"prettier --write .","prepack":"bun run build","typecheck":"tsc --noEmit","format:check":"prettier --check ."},"_npmUser":{"name":"queaxtra","email":"fatih@etik.com"},"_integrity":"sha512-VFeQHWjs+z6609r/umADE60SHxtsN8nqWUNN5Su9uaiou8V2FZKUmqi2oygmL2rse9aWg2d4eFfyKjsLrMkOHg==","repository":{"url":"git+https://github.com/Pimatis/svelte-doctor.git","type":"git"},"_npmVersion":"10.8.3","description":"Diagnose and fix performance, correctness, and architecture issues in your Svelte codebase","directories":{},"_nodeVersion":"24.3.0","dependencies":{"ora":"^9.4.1","knip":"^6.32.2","svelte":"^5.56.9","commander":"^15.0.0","picocolors":"^1.1.1","typescript":"^6.0.3"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"packageManager":"bun@1.3.10","devDependencies":{"eslint":"^10.8.1","tsdown":"^0.22.14","prettier":"^3.9.6","@eslint/js":"^10.0.1","@types/node":"^26.2.0","typescript-eslint":"^8.67.0","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/svelte-doctor_0.3.4_1786873180932_0.18628574457554414","host":"s3://npm-registry-packages-npm-production"}},"0.3.5":{"name":"svelte-doctor","version":"0.3.5","keywords":["svelte","svelte5","sveltekit","diagnostics","linter","performance","runes","migration","codemod","cli","static-analysis","code-quality","typescript","security","refactoring","ai","analyzer","vite","javascript"],"author":"Pimatis","license":"Apache-2.0","_id":"svelte-doctor@0.3.5","maintainers":[{"name":"queaxtra","email":"fatih@etik.com"}],"homepage":"https://github.com/Pimatis/svelte-doctor","bugs":{"url":"https://github.com/Pimatis/svelte-doctor/issues"},"bin":{"svelte-doctor":"dist/cli.mjs"},"dist":{"shasum":"ac4e0eea9d0daaf6223e49e56875c96d87b74397","tarball":"https://registry.npmjs.org/svelte-doctor/-/svelte-doctor-0.3.5.tgz","fileCount":10,"integrity":"sha512-HM2fcadH4iJmYWD0ND5cZA3zbSo+nmprFMLH8jTRZ6TXOsvIsMgFsJiamzSfrLvgAdi68Da9t+s+g7/kzoiCNA==","signatures":[{"sig":"MEQCIBb009UaXaGG1QgOWylVYcgJWwZJg1HniSqD038+LDPJAiBHBq1MJ8F1G6wxobczSuX9IZnINMCG+ckJKyuCWAx5Lg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1060390},"type":"module","shasum":"ac4e0eea9d0daaf6223e49e56875c96d87b74397","engines":{"node":">=22.18.0"},"exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"}},"scripts":{"dev":"tsdown --watch","lint":"eslint src/","test":"bun run build && bun test test","build":"rm -rf dist && NODE_ENV=production tsdown && rm -f dist/*.map && node -e \"const fs=require('node:fs'); for (const file of fs.readdirSync('dist')) { if (!file.endsWith('.mjs')) continue; const path='dist/' + file; const source=fs.readFileSync(path,'utf8').replace(/^\\/\\/\\# sourceMappingURL=.*$/gm,'').replace(/\\n{3,}/g,'\\n\\n'); fs.writeFileSync(path, source, 'utf8'); }\"","check":"tsc --noEmit","format":"prettier --write .","prepack":"bun run build","typecheck":"tsc --noEmit","format:check":"prettier --check ."},"_npmUser":{"name":"queaxtra","email":"fatih@etik.com"},"_integrity":"sha512-HM2fcadH4iJmYWD0ND5cZA3zbSo+nmprFMLH8jTRZ6TXOsvIsMgFsJiamzSfrLvgAdi68Da9t+s+g7/kzoiCNA==","repository":{"url":"git+https://github.com/Pimatis/svelte-doctor.git","type":"git"},"_npmVersion":"10.8.3","description":"Diagnose and fix performance, correctness, and architecture issues in your Svelte codebase","directories":{},"_nodeVersion":"24.3.0","dependencies":{"ora":"^9.4.1","knip":"^6.32.2","svelte":"^5.56.9","commander":"^15.0.0","picocolors":"^1.1.1","typescript":"^6.0.3"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"packageManager":"bun@1.3.10","devDependencies":{"eslint":"^10.8.1","tsdown":"^0.22.14","prettier":"^3.9.6","@eslint/js":"^10.0.1","@types/node":"^26.2.0","typescript-eslint":"^8.67.0","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/svelte-doctor_0.3.5_1786963893353_0.17844783943345321","host":"s3://npm-registry-packages-npm-production"}},"0.3.6":{"name":"svelte-doctor","version":"0.3.6","keywords":["svelte","svelte5","sveltekit","diagnostics","linter","performance","runes","migration","codemod","cli","static-analysis","code-quality","typescript","security","refactoring","ai","analyzer","vite","javascript"],"author":"Pimatis","license":"Apache-2.0","_id":"svelte-doctor@0.3.6","maintainers":[{"name":"queaxtra","email":"fatih@etik.com"}],"homepage":"https://github.com/Pimatis/svelte-doctor","bugs":{"url":"https://github.com/Pimatis/svelte-doctor/issues"},"bin":{"svelte-doctor":"dist/cli.mjs"},"dist":{"shasum":"e398f5e052287603bc8a361ea3d021d5145c0cd9","tarball":"https://registry.npmjs.org/svelte-doctor/-/svelte-doctor-0.3.6.tgz","fileCount":10,"integrity":"sha512-Qyb/licq9LQRvQPbGqGjVy6HJ1zBVJttuBCeDvK0/pL5MezBghP8+5xtYk8djWoqne4pRjxcqZfthgqEK6s4FQ==","signatures":[{"sig":"MEUCIHzqhSzbdgfM/dImPL8+IIfnoFAg7Pm8W2ClFn7X9jTfAiEAteJ+TPHtV3s1K7NLLgSliYhuT9O39c1QtBs35gj5UjY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1073844},"type":"module","shasum":"e398f5e052287603bc8a361ea3d021d5145c0cd9","engines":{"node":">=22.18.0"},"exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"}},"scripts":{"dev":"tsdown --watch","lint":"eslint src/","test":"bun run build && bun test test","build":"rm -rf dist && NODE_ENV=production tsdown && rm -f dist/*.map && node -e \"const fs=require('node:fs'); for (const file of fs.readdirSync('dist')) { if (!file.endsWith('.mjs')) continue; const path='dist/' + file; const source=fs.readFileSync(path,'utf8').replace(/^\\/\\/\\# sourceMappingURL=.*$/gm,'').replace(/\\n{3,}/g,'\\n\\n'); fs.writeFileSync(path, source, 'utf8'); }\"","check":"tsc --noEmit","format":"prettier --write .","prepack":"bun run build","typecheck":"tsc --noEmit","format:check":"prettier --check ."},"_npmUser":{"name":"queaxtra","email":"fatih@etik.com"},"_integrity":"sha512-Qyb/licq9LQRvQPbGqGjVy6HJ1zBVJttuBCeDvK0/pL5MezBghP8+5xtYk8djWoqne4pRjxcqZfthgqEK6s4FQ==","repository":{"url":"git+https://github.com/Pimatis/svelte-doctor.git","type":"git"},"_npmVersion":"10.8.3","description":"Diagnose and fix performance, correctness, and architecture issues in your Svelte codebase","directories":{},"_nodeVersion":"24.3.0","dependencies":{"ora":"^9.4.1","knip":"^6.32.2","svelte":"^5.56.9","commander":"^15.0.0","picocolors":"^1.1.1","typescript":"^6.0.3"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"packageManager":"bun@1.3.10","devDependencies":{"eslint":"^10.8.1","tsdown":"^0.22.14","prettier":"^3.9.6","@eslint/js":"^10.0.1","@types/node":"^26.2.0","typescript-eslint":"^8.67.0","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/svelte-doctor_0.3.6_1787175945547_0.467817175106793","host":"s3://npm-registry-packages-npm-production"}},"0.3.7":{"name":"svelte-doctor","version":"0.3.7","keywords":["svelte","svelte5","sveltekit","diagnostics","linter","performance","runes","migration","codemod","cli","static-analysis","code-quality","typescript","security","refactoring","ai","analyzer","vite","javascript"],"author":"Pimatis","license":"Apache-2.0","_id":"svelte-doctor@0.3.7","maintainers":[{"name":"queaxtra","email":"fatih@etik.com"}],"homepage":"https://github.com/Pimatis/svelte-doctor","bugs":{"url":"https://github.com/Pimatis/svelte-doctor/issues"},"bin":{"svelte-doctor":"dist/cli.mjs"},"dist":{"shasum":"e7393d0ad1016d7cfd4a0ec2accbcafb4d7203b1","tarball":"https://registry.npmjs.org/svelte-doctor/-/svelte-doctor-0.3.7.tgz","fileCount":10,"integrity":"sha512-HkYCVSX2VgeO1beOnTgCuv/6ruscsxSuRNks7kWFzFDmLAv545ECWKyDHShAaShF+pQov1szVbqecVqyKfXn6g==","signatures":[{"sig":"MEUCIQDBKWdpHsnpjdNpadphxd7IOhBSp1r0jObl1517MPtVVgIgLqU+2lROx7KE8JxDWIJUGCk+4zS90bI+bz8wpp0v/l0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1119992},"type":"module","shasum":"e7393d0ad1016d7cfd4a0ec2accbcafb4d7203b1","engines":{"node":">=22.18.0"},"exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"}},"scripts":{"dev":"tsdown --watch","lint":"eslint src/","build":"rm -rf dist && NODE_ENV=production tsdown && rm -f dist/*.map && node -e \"const fs=require('node:fs'); for (const file of fs.readdirSync('dist')) { if (!file.endsWith('.mjs')) continue; const path='dist/' + file; const source=fs.readFileSync(path,'utf8').replace(/^\\/\\/\\# sourceMappingURL=.*$/gm,'').replace(/\\n{3,}/g,'\\n\\n'); fs.writeFileSync(path, source, 'utf8'); }\"","check":"tsc --noEmit","format":"prettier --write .","prepack":"bun run build","typecheck":"tsc --noEmit","format:check":"prettier --check ."},"_npmUser":{"name":"queaxtra","email":"fatih@etik.com"},"_integrity":"sha512-HkYCVSX2VgeO1beOnTgCuv/6ruscsxSuRNks7kWFzFDmLAv545ECWKyDHShAaShF+pQov1szVbqecVqyKfXn6g==","repository":{"url":"git+https://github.com/Pimatis/svelte-doctor.git","type":"git"},"_npmVersion":"10.8.3","description":"Diagnose and fix performance, correctness, and architecture issues in your Svelte codebase","directories":{},"_nodeVersion":"26.3.0","dependencies":{"ora":"^9.4.1","knip":"^6.32.2","svelte":"^5.56.9","commander":"^15.0.0","picocolors":"^1.1.1","typescript":"^6.0.3"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"packageManager":"bun@1.3.10","devDependencies":{"eslint":"^10.8.1","tsdown":"^0.22.14","prettier":"^3.9.6","@eslint/js":"^10.0.1","@types/node":"^26.2.0","typescript-eslint":"^8.67.0","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/svelte-doctor_0.3.7_1787768027699_0.1947503046717387","host":"s3://npm-registry-packages-npm-production"}},"0.3.8":{"name":"svelte-doctor","version":"0.3.8","keywords":["svelte","svelte5","sveltekit","diagnostics","linter","performance","runes","migration","codemod","cli","static-analysis","code-quality","typescript","security","refactoring","ai","analyzer","vite","javascript"],"author":"Pimatis","license":"Apache-2.0","_id":"svelte-doctor@0.3.8","maintainers":[{"name":"queaxtra","email":"fatih@etik.com"}],"homepage":"https://github.com/Pimatis/svelte-doctor","bugs":{"url":"https://github.com/Pimatis/svelte-doctor/issues"},"bin":{"svelte-doctor":"dist/cli.mjs"},"dist":{"shasum":"87df30b465de93cd7d4a6c477d3813ea37823317","tarball":"https://registry.npmjs.org/svelte-doctor/-/svelte-doctor-0.3.8.tgz","fileCount":10,"integrity":"sha512-uAA1iVYpPs48qUsmn1ZJ77WWkfzq3PUMoXbjPt8KF1MiaicnDKf7pfYvVTVKV8/2FzmdgT9XqzpEgO7BXtOtqQ==","signatures":[{"sig":"MEUCIQCpZnjPnRywwU5hYM7PnAMopq8lQbsTSjxN3mOGXj7qOgIgDUH+67+gINI/PSIfSBA3Y3231GYgqlwmmKoCiCNeoSM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1134039},"type":"module","shasum":"87df30b465de93cd7d4a6c477d3813ea37823317","engines":{"node":">=22.18.0"},"exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"}},"scripts":{"dev":"tsdown --watch","lint":"eslint src/","build":"rm -rf dist && NODE_ENV=production tsdown && rm -f dist/*.map && node -e \"const fs=require('node:fs'); for (const file of fs.readdirSync('dist')) { if (!file.endsWith('.mjs')) continue; const path='dist/' + file; const source=fs.readFileSync(path,'utf8').replace(/^\\/\\/\\# sourceMappingURL=.*$/gm,'').replace(/\\n{3,}/g,'\\n\\n'); fs.writeFileSync(path, source, 'utf8'); }\"","check":"tsc --noEmit","format":"prettier --write .","prepack":"bun run build","typecheck":"tsc --noEmit","format:check":"prettier --check ."},"_npmUser":{"name":"queaxtra","email":"fatih@etik.com"},"_integrity":"sha512-uAA1iVYpPs48qUsmn1ZJ77WWkfzq3PUMoXbjPt8KF1MiaicnDKf7pfYvVTVKV8/2FzmdgT9XqzpEgO7BXtOtqQ==","repository":{"url":"git+https://github.com/Pimatis/svelte-doctor.git","type":"git"},"_npmVersion":"10.8.3","description":"Diagnose and fix performance, correctness, and architecture issues in your Svelte codebase","directories":{},"_nodeVersion":"26.3.0","dependencies":{"ora":"^9.4.1","knip":"^6.32.2","svelte":"^5.56.9","commander":"^15.0.0","picocolors":"^1.1.1","typescript":"^6.0.3"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"packageManager":"bun@1.3.10","devDependencies":{"eslint":"^10.8.1","tsdown":"^0.22.14","prettier":"^3.9.6","@eslint/js":"^10.0.1","@types/node":"^26.2.0","typescript-eslint":"^8.67.0","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/svelte-doctor_0.3.8_1788186388990_0.2559311606706951","host":"s3://npm-registry-packages-npm-production"}},"0.3.9":{"name":"svelte-doctor","version":"0.3.9","keywords":["svelte","svelte5","sveltekit","diagnostics","linter","performance","runes","migration","codemod","cli","static-analysis","code-quality","typescript","security","refactoring","ai","analyzer","vite","javascript"],"author":{"name":"Pimatis"},"license":"Apache-2.0","_id":"svelte-doctor@0.3.9","maintainers":[{"name":"queaxtra","email":"fatih@etik.com"}],"homepage":"https://github.com/Pimatis/svelte-doctor","bugs":{"url":"https://github.com/Pimatis/svelte-doctor/issues"},"bin":{"svelte-doctor":"dist/cli.mjs"},"dist":{"shasum":"a917cc5937e38bc276e5674bfa6ae2288d18f2b8","tarball":"https://registry.npmjs.org/svelte-doctor/-/svelte-doctor-0.3.9.tgz","fileCount":10,"integrity":"sha512-fP5pwUHt5lHNCWVceijOF0Kx8kDqubGNg5t+UHMUEP7SSlWZ2aQWxJILmQqAOLHv1Ca8pKpaF398tEmXXS23Qg==","signatures":[{"sig":"MEUCIFxIoPEVxtRwewSbk2laDHXBygk4hp/41KgwOGke1+d0AiEA1yPPkzvF/9YMTHS3CGRhPv6rSUs5pawNlK6g8Q5agUw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIBxsxnHIWMqzW/PV68SczmwtR6l/jDv6+O42aCqMYUv6AiAHZgBB7e5+OMxR1A5G/K4U2ReAbjUuKeHiW4Q72VTJRw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1160933},"type":"module","engines":{"node":">=22.18.0"},"exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"}},"gitHead":"72dfb7b2617b95c4c10a59f5898c890053ad9282","scripts":{"dev":"tsdown --watch","lint":"eslint src/","build":"rm -rf dist && NODE_ENV=production tsdown && rm -f dist/*.map && node -e \"const fs=require('node:fs'); for (const file of fs.readdirSync('dist')) { if (!file.endsWith('.mjs')) continue; const path='dist/' + file; const source=fs.readFileSync(path,'utf8').replace(/^\\/\\/\\# sourceMappingURL=.*$/gm,'').replace(/\\n{3,}/g,'\\n\\n'); fs.writeFileSync(path, source, 'utf8'); }\"","check":"tsc --noEmit","format":"prettier --write .","prepack":"bun run build","typecheck":"tsc --noEmit","format:check":"prettier --check ."},"_npmUser":{"name":"queaxtra","email":"fatih@etik.com"},"repository":{"url":"git+https://github.com/Pimatis/svelte-doctor.git","type":"git"},"_npmVersion":"11.19.0","description":"Diagnose and fix performance, correctness, and architecture issues in your Svelte codebase","directories":{},"_nodeVersion":"26.7.0","dependencies":{"ora":"^9.4.1","knip":"^6.32.2","svelte":"^5.56.9","commander":"^15.0.0","picocolors":"^1.1.1","typescript":"^6.0.3"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"packageManager":"bun@1.3.10","devDependencies":{"eslint":"^10.8.1","tsdown":"^0.22.14","prettier":"^3.9.6","@eslint/js":"^10.0.1","@types/node":"^26.2.0","typescript-eslint":"^8.67.0","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/svelte-doctor_0.3.9_1788780603988_0.7471877880111701","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"_id":"svelte-doctor@0.4.0","bin":{"svelte-doctor":"dist/cli.mjs"},"bugs":{"url":"https://github.com/Pimatis/svelte-doctor/issues"},"dist":{"shasum":"288522b34ffa9b1e72df98f26e35b3f9cca10ca3","tarball":"https://registry.npmjs.org/svelte-doctor/-/svelte-doctor-0.4.0.tgz","fileCount":69,"integrity":"sha512-b1C5/1tyDyoOOxcRONAyaiQVOkp+HNqE5FIcsk0X0E70zC8cMNamrqg/c89Pi4Y7/CLwy099pUA8KFvGjMXwOg==","signatures":[{"sig":"MEYCIQD7+pMY4ZWX1iRCMWa9qQfyaerHAnE2Dqleh3hVYHv5xQIhAOBehvREMGhSEH0xCiyymBKXyYroyT4VRG9sjt0Ee/5J","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIAm87TRgETsE/g/dAq7f+yOWmbJj2Aqihxto2gkrW11HAiEAy6GjLTq/Pduar/7egb7CnU9UtQl3mAmHeI9wQKNHYug="}],"unpackedSize":1192721},"name":"svelte-doctor","type":"module","author":"Pimatis","shasum":"288522b34ffa9b1e72df98f26e35b3f9cca10ca3","engines":{"node":">=22.18.0"},"exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"}},"license":"Apache-2.0","scripts":{"dev":"tsdown --watch","lint":"eslint src/","build":"rm -rf dist && NODE_ENV=production tsdown && rm -f dist/*.map && node -e \"const fs=require('node:fs'); for (const file of fs.readdirSync('dist')) { if (!file.endsWith('.mjs')) continue; const path='dist/' + file; const source=fs.readFileSync(path,'utf8').replace(/^\\/\\/\\# sourceMappingURL=.*$/gm,'').replace(/\\n{3,}/g,'\\n\\n'); fs.writeFileSync(path, source, 'utf8'); }\"","check":"tsc --noEmit","format":"prettier --write .","prepack":"bun run build","typecheck":"tsc --noEmit","format:check":"prettier --check ."},"version":"0.4.0","_npmUser":{"name":"queaxtra","email":"fatih@etik.com"},"homepage":"https://github.com/Pimatis/svelte-doctor","keywords":["svelte","svelte5","sveltekit","diagnostics","linter","performance","runes","migration","codemod","cli","static-analysis","code-quality","typescript","security","refactoring","ai","analyzer","vite","javascript"],"_integrity":"sha512-b1C5/1tyDyoOOxcRONAyaiQVOkp+HNqE5FIcsk0X0E70zC8cMNamrqg/c89Pi4Y7/CLwy099pUA8KFvGjMXwOg==","repository":{"url":"git+https://github.com/Pimatis/svelte-doctor.git","type":"git"},"_npmVersion":"10.8.3","description":"Diagnose and fix performance, correctness, and architecture issues in your Svelte codebase","directories":{},"maintainers":[{"name":"queaxtra","email":"fatih@etik.com"}],"_nodeVersion":"26.3.0","dependencies":{"ora":"^9.4.1","svelte":"^5.57.0","commander":"^15.0.0","picocolors":"^1.1.1","typescript":"~6.0.3"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"packageManager":"bun@1.3.10","devDependencies":{"eslint":"^10.10.0","tsdown":"^0.23.0","prettier":"^3.9.6","@eslint/js":"^10.0.1","@types/node":"^26.5.0","typescript-eslint":"^8.70.0","eslint-config-prettier":"^10.1.8"},"optionalDependencies":{"knip":"^6.35.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/svelte-doctor_0.4.0_1788901994026_0.6933122420542857"}}},"time":{"created":"2026-02-19T13:10:41.379Z","modified":"2026-09-08T21:13:14.318Z","0.1.0":"2026-02-19T13:10:41.536Z","0.1.1":"2026-02-19T14:04:10.380Z","0.1.2":"2026-03-03T13:53:32.195Z","0.1.3":"2026-03-07T10:57:16.240Z","0.1.4":"2026-03-24T19:17:14.088Z","0.1.5":"2026-03-24T19:20:25.213Z","0.1.6":"2026-03-24T19:28:10.297Z","0.1.7":"2026-03-24T19:57:06.497Z","0.1.8":"2026-03-25T11:04:45.350Z","0.1.9":"2026-03-25T20:32:50.986Z","0.2.0":"2026-05-06T17:02:37.457Z","0.2.1":"2026-05-10T20:48:12.290Z","0.2.2":"2026-05-13T17:09:10.738Z","0.2.3":"2026-05-16T10:09:08.954Z","0.2.4":"2026-05-17T11:40:47.012Z","0.2.5":"2026-05-17T16:27:32.441Z","0.2.6":"2026-05-18T12:31:21.231Z","0.2.7":"2026-05-25T12:57:19.183Z","0.2.8":"2026-05-25T19:53:42.319Z","0.2.9":"2026-06-07T10:43:27.272Z","0.3.0":"2026-06-13T17:41:01.531Z","0.3.1":"2026-07-02T09:22:45.411Z","0.3.2":"2026-07-14T23:34:22.678Z","0.3.3":"2026-07-15T11:14:04.726Z","0.3.4":"2026-08-16T09:39:41.106Z","0.3.5":"2026-08-17T10:51:33.501Z","0.3.6":"2026-08-19T21:45:45.702Z","0.3.7":"2026-08-26T18:13:47.908Z","0.3.8":"2026-08-31T14:26:29.132Z","0.3.9":"2026-09-07T11:30:04.129Z","0.4.0":"2026-09-08T21:13:14.151Z"},"bugs":{"url":"https://github.com/Pimatis/svelte-doctor/issues"},"author":"Pimatis","license":"Apache-2.0","homepage":"https://github.com/Pimatis/svelte-doctor","keywords":["svelte","svelte5","sveltekit","diagnostics","linter","performance","runes","migration","codemod","cli","static-analysis","code-quality","typescript","security","refactoring","ai","analyzer","vite","javascript"],"repository":{"url":"git+https://github.com/Pimatis/svelte-doctor.git","type":"git"},"description":"Diagnose and fix performance, correctness, and architecture issues in your Svelte codebase","maintainers":[{"name":"queaxtra","email":"fatih@etik.com"}],"readme":"<p align=\"center\">\n  <img src=\"assets/logos/logo.png\" width=\"96\" height=\"96\" alt=\"svelte-doctor logo\">\n</p>\n\n<h1 align=\"center\">svelte-doctor</h1>\n\n<p align=\"center\">\n  <strong>Diagnose and fix performance, correctness, and architecture issues in your Svelte codebase</strong>\n</p>\n\n<p align=\"center\">\n  <a href=\"https://www.npmjs.com/package/svelte-doctor\">\n    <img src=\"https://img.shields.io/npm/v/svelte-doctor.svg\" alt=\"npm version\">\n  </a>\n  <a href=\"https://www.npmjs.com/package/svelte-doctor\">\n    <img src=\"https://img.shields.io/npm/dm/svelte-doctor.svg\" alt=\"npm downloads\">\n  </a>\n  <a href=\"./LICENSE\">\n    <img src=\"https://img.shields.io/badge/license-Apache%202.0-blue.svg\" alt=\"license\">\n  </a>\n</p>\n\n---\n\n## Table of Contents\n\n- [Overview](#overview)\n- [Key Features](#key-features)\n- [Quick Start](#quick-start)\n- [Installation](#installation)\n- [Commands](#commands)\n- [Configuration](#configuration)\n- [Plugins & Community Rules](#plugins--community-rules)\n- [Rules](#rules)\n- [Node.js API](#nodejs-api)\n- [License](#license)\n\n---\n\n## Overview\n\n`svelte-doctor` is a comprehensive diagnostic CLI for Svelte and SvelteKit projects. It analyzes your codebase for security vulnerabilities, performance bottlenecks, architectural issues, and Svelte 4-to-5 migration patterns — then reports everything as a single **0–100 health score** with actionable, line-specific diagnostics.\n\nRun one command to scan your entire project:\n\n```bash\nsvelte-doctor check\n```\n\nThe tool is designed to be **safe by default**: deterministic fixes are opt-in, AI agents run in a controlled flow, and CI integration is a first-class citizen (SARIF, GitHub annotations, baseline suppression, and PR checks).\n\n---\n\n## Key Features\n\n### Diagnostics & Scanning\n\n- **93 source diagnostic rules + 3 build artifact diagnostics** covering correctness, performance, security, architecture, SvelteKit reliability, runtime performance, hydration safety, CSS specificity, and accessibility\n- **0–100 health score** with actionable, line-specific diagnostics on every scan\n- **TypeScript AST-backed script analysis** for lower false-positive rates on security-sensitive checks\n- **Accessibility autofix and suggestions** with automatic decorative-image `alt=\"\"` fixes and contextual ARIA snippets for manual decisions\n- **Cached scans + incremental watch** for faster repeat checks and tighter feedback loops, with `watch --fix` auto-applying deterministic fixes on save\n- **Incremental checks** with `check --incremental` to scan only changed tracked and untracked files in large projects\n- **Diff-aware and workspace-aware scans** for staged files, changed files, and monorepos\n- **Parallel scanning** with `--jobs` for multi-worker file scanning in large codebases, with automatic CPU detection (`--jobs 0`)\n- **Focused scan modes** — `quick` (error-only), `audit` (security-only), `compare` (regression analysis), `stats` (project metrics), `metrics` (command durations, rule gains, technical debt)\n\n### Fixing & Migration\n\n- **Deterministic Safe Apply** via `apply` — covers CSS transitions, lodash/moment/icon imports, Svelte 4→5 migration, unnecessary `$state` wrappers, and `$effect` → `$derived` conversions\n- **Svelte 4→5 AST-backed auto-migration** with modular codemods, plan/diff/interactive modes, backups, rollback, staged commits, JSON output, and `.svelte.js` / `.svelte.ts` module file support\n- **Migration progress tracking** via `migrate-status` with migrated/pending/skipped counts, category breakdown, and ETA\n- **Safe-by-default AI Fix** flow with secure temp prompts, opt-in unsafe execution, post-fix verification, and support for Cursor, Amp, Claude Code, Codex, Copilot CLI, OpenCode, Pi, Gemini CLI, Qwen Code, Aider, and Goose\n\n### CI & Workflows\n\n- **Baseline suppression** to keep legacy issues out of new CI failures\n- **Managed Git hooks** via `install-hook` for automatic pre-commit and pre-push quality gates\n- **SARIF + GitHub annotations** for code scanning and CI integration\n- **PR Check workflow** for branch diff analysis and GitHub PR summary comments\n- **Ref comparison** via `compare` for diagnosing regressions between commits, branches, and tags\n- **Dependency health checks and upgrade planning** for ecosystem compatibility and npm registry updates\n\n### Insights & Reporting\n\n- **Component dependency graphs** via `graph` with ASCII, DOT, JSON, alias resolution, and circular dependency detection\n- **Component where-used lookup** via `where-used` with line-accurate import/render locations, `$lib` and tsconfig alias resolution, dynamic import detection, render trees, scope filtering, and reverse direction\n- **Bundle impact preview** via `bundle-impact` for estimated savings from fixable bundle-size diagnostics\n- **Dead store detection** via `dead-stores` for `writable` stores never written, with cross-file write tracking and runes migration suggestions\n- **Bundle-aware dead code detection** for unused function exports, unused components imported by `+page.svelte`, and tree-shaking compatibility risks\n- **Test coverage gap finder** via `test-gaps` for source-to-test matching and SvelteKit critical path checks\n- **Component render profiler** via `render-profile` for compile-time DOM, reactivity, hydration, and re-render cost ranking\n- **Performance budgets** with estimated LCP/CLS risk, excessive store/reactive subscription warnings, and derived-state render cost estimation\n- **Server-side code detection** for client runes in server-only routes, with universal and server-only rule filtering\n- **Score history and trends** via `trend` and live feedback via `watch`\n\n### Automation & DX\n\n- **Zero configuration** — works out of the box\n- **Interactive project bootstrap** via `init` for config, CI, scripts, baseline, and `.gitignore` setup\n- **Single-command scan + fix** via `check --fix`, with `--interactive` for step-by-step approval\n- **AI-friendly copy export** via `check --copy` with clipboard-first fallback behavior\n- **Smart ignore suggestions** via `suggest-ignore` with confidence scoring and generated config snippets\n- **Rule authoring kit** via `create-rule` for custom rule, test, and docs scaffolding\n- **Environment diagnosis** via `doctor` with `--fix` to auto-resolve config, gitignore, and dependency issues\n- **Lazy-loaded commands** — each subcommand's module loads only when invoked, keeping CLI startup fast\n- **Script-friendly output** — with `--json`, stdout carries only machine-readable JSON (human-readable logs go to stderr)\n- **Automatic `.gitignore` sync** for generated `.svelte-doctor/*` cache/history files while preserving tracked baseline negations\n- **Generated file cleanup** via `reset` to safely clear cache, baseline, and history\n\n---\n\n## Quick Start\n\nGet a health score for your project in under a minute:\n\n```bash\n# 1. Install the CLI globally (or skip this and use npx / bunx)\nbun i -g svelte-doctor          # or: npm install -g svelte-doctor\n\n# 2. Scan your project\nsvelte-doctor check\n\n# 3. Bootstrap config, CI, and git hooks (recommended)\nsvelte-doctor init --yes --ci github-actions\nsvelte-doctor install-hook --mode staged --fail-on error\n```\n\nRequires **Node.js 22.18.0+** — see [Installation](#installation) for details.\n\n---\n\n## Installation\n\n**Runtime requirement:** Node.js `22.18.0+`. If you are on Node 18 or Node 20, upgrade Node before installing or building `svelte-doctor`.\n\n### Global Installation (Recommended)\n\nInstall `svelte-doctor` globally to use it from anywhere in your terminal:\n\n```bash\n# Using bun (recommended)\nbun i -g svelte-doctor\n\n# Using npm\nnpm install -g svelte-doctor\n\n# Using pnpm\npnpm add -g svelte-doctor\n```\n\n**Add to PATH (required for first-time setup):**\n\nIf you get a `command not found` error after installation, add the global bin folder to your PATH.\n\n**macOS / Linux:**\n\n```bash\n# For Bun users\necho 'export PATH=\"$HOME/.bun/bin:$PATH\"' >> ~/.zshrc  # or ~/.bashrc\nsource ~/.zshrc  # or source ~/.bashrc\n\n# For npm users (usually automatic, but if needed)\necho 'export PATH=\"$(npm config get prefix)/bin:$PATH\"' >> ~/.zshrc\nsource ~/.zshrc\n```\n\n**Windows (PowerShell as Administrator):**\n\n```powershell\n# For Bun users\n[Environment]::SetEnvironmentVariable(\"Path\", $env:Path + \";$env:USERPROFILE\\.bun\\bin\", \"User\")\n\n# For npm users - usually automatic; if needed, add %APPDATA%\\npm to your PATH\n```\n\n### Local Installation\n\nYou can also install it locally in your project:\n\n```bash\n# Using bun\nbun i -D svelte-doctor\n\n# Using npm\nnpm install -D svelte-doctor\n\n# Using pnpm\npnpm add -D svelte-doctor\n```\n\nThen run with `npx` / `bunx` or a package script:\n\n```bash\n# Using npx / bunx\nnpx svelte-doctor\nbunx svelte-doctor\n```\n\n```json\n\"scripts\": {\n  \"doctor\": \"svelte-doctor check\"\n}\n```\n\n---\n\n## Commands\n\n### Common Workflows\n\n```bash\n# First scan\nsvelte-doctor check\n\n# Bootstrap config, CI, scripts, gitignore, and baseline\nsvelte-doctor init --yes --ci github-actions\n\n# Install managed pre-commit / pre-push quality gates\nsvelte-doctor install-hook --mode staged --fail-on error\n\n# Fix issues — deterministic first, then with an AI agent\nsvelte-doctor check --fix\nsvelte-doctor fix\n\n# Gate CI on score and warning thresholds\nsvelte-doctor check --fail-on warning --min-score 80\n```\n\n### Command Index\n\n| Command                                                               | Purpose                                                |\n| --------------------------------------------------------------------- | ------------------------------------------------------ |\n| [`init`](#svelte-doctor-init-directory-options)                       | Bootstrap config, CI, scripts, baseline, and gitignore |\n| [`install-hook`](#svelte-doctor-install-hook-directory-options)       | Install managed pre-commit / pre-push git hooks        |\n| [`pr-check`](#svelte-doctor-pr-check-directory-options)               | Analyze a branch diff for PR / CI feedback             |\n| [`doctor`](#svelte-doctor-doctor-directory-options)                   | Diagnose and fix your development environment          |\n| [`reset`](#svelte-doctor-reset-directory-options)                     | Clean generated cache, baseline, and history files     |\n| [`check`](#svelte-doctor-check-directory-options)                     | Scan the project and output a health score             |\n| [`quick`](#svelte-doctor-quick-directory-options)                     | Fast error-only scan with health score                 |\n| [`audit`](#svelte-doctor-audit-directory-options)                     | Security-focused scan with a dedicated security score  |\n| [`baseline`](#svelte-doctor-baseline-directory)                       | Create a baseline from current diagnostics             |\n| [`config`](#svelte-doctor-config-directory-options)                   | Display the active configuration                       |\n| [`validate`](#svelte-doctor-validate-directory-options)               | Validate the config file for errors                    |\n| [`suggest-ignore`](#svelte-doctor-suggest-ignore-directory-options)   | Suggest likely false-positive ignores                  |\n| [`stats`](#svelte-doctor-stats-directory-options)                     | Show project metrics and statistics                    |\n| [`metrics`](#svelte-doctor-metrics-directory-options)                 | Scan phase durations, rule gains, and technical debt   |\n| [`compare`](#svelte-doctor-compare-directory-options)                 | Compare diagnostics between two git refs               |\n| [`watch`](#svelte-doctor-watch-directory-options)                     | Watch files and show live diagnostics                  |\n| [`trend`](#svelte-doctor-trend-directory-options)                     | Show score history and trend                           |\n| [`apply`](#svelte-doctor-apply-directory-options)                     | Apply deterministic, safe fixes                        |\n| [`fix`](#svelte-doctor-fix-directory-options)                         | Fix issues automatically with an AI agent              |\n| [`migrate`](#svelte-doctor-migrate-directory-options)                 | Auto-migrate Svelte 4 → Svelte 5                       |\n| [`migrate-status`](#svelte-doctor-migrate-status-directory-options)   | Track Svelte 4 → 5 migration progress                  |\n| [`graph`](#svelte-doctor-graph-directory-options)                     | Build a component dependency graph                     |\n| [`where-used`](#svelte-doctor-where-used-component-directory-options) | Find every place a component is used                   |\n| [`dead-stores`](#svelte-doctor-dead-stores-directory-options)         | Find writable stores that are never written            |\n| [`test-gaps`](#svelte-doctor-test-gaps-directory-options)             | Find source files without matching tests               |\n| [`bundle-impact`](#svelte-doctor-bundle-impact-directory-options)     | Preview bundle savings from fixable diagnostics        |\n| [`render-profile`](#svelte-doctor-render-profile-directory-options)   | Rank the most expensive components                     |\n| [`deps`](#svelte-doctor-deps-directory-options)                       | Check dependency health (offline)                      |\n| [`upgrade`](#svelte-doctor-upgrade-directory-options)                 | Check the npm registry for dependency upgrades         |\n| [`update`](#svelte-doctor-update-options)                             | Update the global CLI installation                     |\n| [`rules`](#svelte-doctor-rules-directory)                             | List every rule and its category                       |\n| [`explain`](#svelte-doctor-explain-rule-directory-options)            | Explain a rule in detail                               |\n| [`create-rule`](#svelte-doctor-create-rule-name-directory-options)    | Scaffold a custom rule, test, and docs                 |\n\n### Setup, CI & Hooks\n\n#### `svelte-doctor init [directory] [options]`\n\nBootstrap an existing Svelte project for `svelte-doctor`. The command probes the project with the same discovery path used by scans, writes `svelte-doctor.config.json`, syncs `.gitignore`, injects package scripts, optionally creates a CI workflow, and can create an initial diagnostic baseline.\n\nGenerated defaults:\n\n- `svelte-doctor.config.json`\n- `.svelte-doctor/*` entry in `.gitignore`\n- `package.json` scripts: `doctor` and `doctor:fix`\n- optional CI file for GitHub Actions, GitLab CI, or CircleCI\n- optional `.svelte-doctor/baseline.json`\n- optional direct `.git/hooks/pre-commit` hook\n\n| Option                                        | Description                                                          |\n| --------------------------------------------- | -------------------------------------------------------------------- |\n| `--ci <github-actions\\|gitlab-ci\\|circle-ci>` | Generate CI config for the selected platform                         |\n| `--force`                                     | Overwrite existing `svelte-doctor.config.json` and generated CI file |\n| `-y, --yes`                                   | Accept defaults without prompts                                      |\n\nExamples:\n\n```bash\nsvelte-doctor init\nsvelte-doctor init --yes\nsvelte-doctor init --yes --ci github-actions\nsvelte-doctor init packages/app --ci gitlab-ci\n```\n\n#### `svelte-doctor install-hook [directory] [options]`\n\nInstall, list, or remove managed git hooks that run `svelte-doctor check` automatically. The command detects direct git hooks, Husky (`.husky/`), and Lefthook (`.lefthook/` or `lefthook.yml`). It chooses `bunx`, `pnpm exec`, or `npx` from the lockfile and only updates hooks that contain the `svelte-doctor managed hook` signature unless `--force` is used.\n\nUse this for low-friction local adoption: developers do not need to remember a scan command before committing. Pair it with CI generated by `svelte-doctor init --ci github-actions` or an equivalent pipeline command such as `bunx svelte-doctor check --fail-on warning --min-score 80` to block PRs when warnings or score regressions appear.\n\n| Option                              | Description                                               |\n| ----------------------------------- | --------------------------------------------------------- |\n| `--pre-push`                        | Also manage a `pre-push` hook in addition to `pre-commit` |\n| `--mode <staged\\|changed\\|full>`    | Choose scan scope for the hook command                    |\n| `--fail-on <never\\|error\\|warning>` | Control hook exit behavior                                |\n| `--min-score <score>`               | Fail if the scan score is below the threshold             |\n| `--force`                           | Overwrite an existing non-svelte-doctor hook              |\n| `--remove`                          | Remove svelte-doctor managed hooks                        |\n| `--list`                            | List managed hook status                                  |\n| `--json`                            | Output machine-readable JSON                              |\n\nExamples:\n\n```bash\n# Pre-commit only, scans staged files\nsvelte-doctor install-hook\n\n# Pre-commit and pre-push, full scan with warning gate and score floor\nsvelte-doctor install-hook --pre-push --mode full --fail-on warning --min-score 80\n\n# Inspect current hook state\nsvelte-doctor install-hook --list\nsvelte-doctor install-hook --list --json\n\n# Remove only svelte-doctor managed hooks\nsvelte-doctor install-hook --remove --pre-push\n```\n\n#### `svelte-doctor pr-check [directory] [options]`\n\nAnalyze a branch diff for PR or CI feedback. The command lists files changed between `--base` and `--head`, scans isolated git worktrees for both refs, builds a Markdown PR summary, and can post it to GitHub, GitLab, or Bitbucket. GitHub uses the `gh` CLI; GitLab and Bitbucket use their APIs and write a `svelte-doctor` commit status for required-check workflows.\n\n| Option                                         | Description                                              |\n| ---------------------------------------------- | -------------------------------------------------------- |\n| `--pr <number>`                                | Pull request number for comment posting                  |\n| `--base <branch>`                              | Base branch or ref (default: `main`)                     |\n| `--head <branch>`                              | Head branch or ref (default: `HEAD`)                     |\n| `--comment`                                    | Post a summary comment to the selected PR platform       |\n| `--inline`                                     | Submit an inline review comment to the selected platform |\n| `--fail-on <never\\|error\\|warning>`            | Control exit behavior for new issues                     |\n| `--min-score <score>`                          | Fail if PR score is below the threshold                  |\n| `--ratchet`                                    | Fail if PR score drops or new issues appear vs base      |\n| `--json`                                       | Output machine-readable JSON                             |\n| `--platform <github\\|gitlab\\|bitbucket\\|auto>` | Select PR platform adapter mode                          |\n| `--token <env-var>`                            | Token environment variable name                          |\n\nExamples:\n\n```bash\nsvelte-doctor pr-check --base main --head HEAD\nsvelte-doctor pr-check --base origin/main --head HEAD --min-score 80\nsvelte-doctor pr-check --base main --head HEAD --ratchet\nsvelte-doctor pr-check --pr 42 --comment --platform github\nsvelte-doctor pr-check --json\n```\n\n#### `svelte-doctor doctor [directory] [options]`\n\nCheck your development environment for common issues — inspired by `flutter doctor`. Diagnoses Node.js version, Svelte dependency presence, `svelte.config.js` configuration, `tsconfig.json` validity, `node_modules` installation state, `svelte-doctor.config.json` schema validation, `.gitignore` completeness, build artifact freshness, and scan cache status.\n\nWith `--fix`, the command automatically resolves missing or misconfigured project files: creates `svelte.config.js` with `vitePreprocess`, generates `tsconfig.json` with TypeScript configuration, bootstraps `svelte-doctor.config.json`, adds the `.svelte-doctor/*` entry to `.gitignore`, injects `doctor` and `doctor:fix` scripts into `package.json`, and runs the detected package manager to install `node_modules` when missing.\n\nEach check returns one of four statuses: **pass**, **warning**, **fail**, or **na** (not applicable). The command exits with code 1 if any check fails, making it suitable for CI onboarding gates.\n\n| Option   | Description                                                         |\n| -------- | ------------------------------------------------------------------- |\n| `--json` | Output machine-readable JSON                                        |\n| `--fix`  | Automatically fix detected issues (config, gitignore, scripts, etc) |\n\nExamples:\n\n```bash\nsvelte-doctor doctor\nsvelte-doctor doctor packages/app\nsvelte-doctor doctor --json\nsvelte-doctor doctor --fix\n```\n\n#### `svelte-doctor reset [directory] [options]`\n\nClean generated files (cache, baseline, score history) inside `.svelte-doctor/`. Useful when cache gets corrupted, baseline becomes stale, or you want to start fresh without manually deleting files.\n\nBy default (no flags), all generated files are removed and the `.svelte-doctor/` directory is cleaned up if empty afterwards.\n\n| Option       | Description                                                |\n| ------------ | ---------------------------------------------------------- |\n| `--all`      | Clean everything in `.svelte-doctor/` (default if no flag) |\n| `--cache`    | Clean only scan cache                                      |\n| `--baseline` | Clean only baseline                                        |\n| `--history`  | Clean only score history                                   |\n| `--dry-run`  | Show what would be deleted without deleting                |\n| `--json`     | Output machine-readable JSON                               |\n\nExamples:\n\n```bash\nsvelte-doctor reset\nsvelte-doctor reset --dry-run\nsvelte-doctor reset --cache\nsvelte-doctor reset --baseline --history\nsvelte-doctor reset --all --json\n```\n\n### Scanning & Reporting\n\n#### `svelte-doctor check [directory] [options]`\n\nScan your project for issues and output a health score. The scanner analyzes source files, Svelte compiler output, and existing SvelteKit build artifacts under `.svelte-kit/output/` when that directory exists. Every run saves the score to `.svelte-doctor/history.json`, including `--json` and `--score` modes, so your CI pipeline contributes to the trend graph. When `svelte-doctor` first creates its local `.svelte-doctor/` directory, it also ensures the scanned project's `.gitignore` contains a `.svelte-doctor/*` entry unless an equivalent `.svelte-doctor` or `.svelte-doctor/*` pattern already exists.\n\n| Option                                    | Description                                                                                                             |\n| ----------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- |\n| `--score`                                 | Output only the numeric score                                                                                           |\n| `--json`                                  | Output machine-readable JSON — all human-readable logs go to stderr, so stdout is safe to pipe into `jq` or an AI agent |\n| `--format <text\\|table>`                  | Output format for diagnostics: default text listing or aligned table                                                    |\n| `--no-lint`                               | Skip lint rules                                                                                                         |\n| `--no-dead-code`                          | Skip dead code detection                                                                                                |\n| `--no-cache`                              | Disable the on-disk scan cache for this run                                                                             |\n| `--incremental`                           | Scan only files changed relative to `HEAD`, including untracked non-ignored files                                       |\n| `--copy`                                  | Export diagnostics in an AI-friendly format                                                                             |\n| `--copy-output <clipboard\\|stdout\\|file>` | Choose clipboard, stdout, or file output                                                                                |\n| `--copy-file <path>`                      | Write export output to a file inside the scanned project root                                                           |\n| `--copy-max <count>`                      | Limit how many diagnostics are included in the export                                                                   |\n| `--copy-errors-only`                      | Export only error-level diagnostics                                                                                     |\n| `--copy-format <prompt\\|raw>`             | Export as a structured prompt or raw text                                                                               |\n| `--baseline`                              | Suppress diagnostics present in `.svelte-doctor/baseline.json`                                                          |\n| `--sarif`                                 | Emit SARIF output                                                                                                       |\n| `--sarif-file <path>`                     | Write SARIF output to a file                                                                                            |\n| `--html`                                  | Write an interactive HTML report to `.svelte-doctor/report.html`                                                        |\n| `--html-file <path>`                      | Write HTML report to a custom file                                                                                      |\n| `--junit`                                 | Write a JUnit XML report to `.svelte-doctor/junit.xml`                                                                  |\n| `--junit-file <path>`                     | Write JUnit XML report to a custom file                                                                                 |\n| `--markdown`                              | Write a Markdown report to `.svelte-doctor/report.md`                                                                   |\n| `--markdown-file <path>`                  | Write Markdown report to a custom file                                                                                  |\n| `--github-annotations`                    | Emit GitHub Actions annotation commands                                                                                 |\n| `--fail-on <never\\|error\\|warning>`       | Control exit behavior                                                                                                   |\n| `--min-score <score>`                     | Fail if score is below the threshold                                                                                    |\n| `--changed`                               | Scan files changed relative to `HEAD`                                                                                   |\n| `--staged`                                | Scan staged files only                                                                                                  |\n| `--since <ref>`                           | Scan files changed since a git ref                                                                                      |\n| `--all-workspaces`                        | Scan all package.json workspaces                                                                                        |\n| `--workspace <name>`                      | Scan one workspace by name or relative path                                                                             |\n| `--fix`                                   | Apply deterministic auto-fixes after scan                                                                               |\n| `--diff`                                  | With `--fix`: preview automatic fixes as unified diffs                                                                  |\n| `--interactive`                           | With `--fix`: confirm each fix individually (`y`, `n`, `a`, `q`)                                                        |\n| `--fix-ai`                                | Also run AI agent fix after deterministic fixes                                                                         |\n| `--dry-run`                               | With `--fix`: preview fixes without writing files                                                                       |\n| `--rules <csv>`                           | With `--fix`: limit deterministic fixes to comma-separated rules                                                        |\n| `--errors-only`                           | With `--fix`: fix only error-severity diagnostics                                                                       |\n| `--verify-level <level>`                  | With `--fix-ai`: verification depth — `diagnostics`, `typecheck`, `tests`, or `full`                                    |\n| `--max-files <count>`                     | With `--fix-ai`: max diagnostics in AI agent batch (default: 50)                                                        |\n| `--jobs <count>`                          | Number of parallel scan workers (0 = auto-detect CPU count, default: 1)                                                 |\n\n`--copy` is designed for cases where you want to paste diagnostics into a different AI agent instead of using `svelte-doctor fix`. The default mode tries the system clipboard first, then falls back to stdout if no clipboard integration is available. If you need deterministic output for scripts, use `--copy-output file`.\n\n`--format table` prints one row per diagnostic with aligned `Severity`, `Rule`, `File`, `Line`, and `Message` columns, errors first, then sorted by file and line. It works with `--all-workspaces` too, where the workspace summary is rendered as a table. `--json` and `--score` keep their machine-readable output regardless of `--format`.\n\nJSON output includes structured fix metrics:\n\n| Field              | Type     | Description                                          |\n| ------------------ | -------- | ---------------------------------------------------- |\n| `fixableSummary`   | object   | Auto-fixable, AI-fixable, and manual-required counts |\n| `estimatedFixTime` | string   | Estimated time to fix all issues (e.g. `\"3m 20s\"`)   |\n| `priorityFiles`    | string[] | Top 5 files ranked by weighted issue severity        |\n| `regressionRisk`   | string   | `low`, `medium`, `high`, or `critical` risk level    |\n\n```bash\n# Quick CI summary with jq\nsvelte-doctor check --json | jq '{score, risk: .regressionRisk, fixTime: .estimatedFixTime, autoFix: .fixableSummary.autoFixable}'\n\n# Gate PRs by regression risk\nRISK=$(svelte-doctor check --json | jq -r '.regressionRisk')\nif [ \"$RISK\" = \"high\" ] || [ \"$RISK\" = \"critical\" ]; then\n  echo \"Block merge: regression risk too high\"\n  exit 1\nfi\n```\n\nRich reports also work with `--all-workspaces` and `--workspace`. Workspace reports aggregate diagnostics into one file and prefix paths with the workspace directory, such as `packages/app/src/App.svelte`.\n\nExamples:\n\n```bash\nsvelte-doctor check --format table\nsvelte-doctor check --copy\nsvelte-doctor check --copy --copy-errors-only\nsvelte-doctor check --copy --copy-output stdout\nsvelte-doctor check --copy --copy-output file --copy-file .svelte-doctor/diagnostics.txt\nsvelte-doctor check --changed\nsvelte-doctor check --incremental\nsvelte-doctor check --fix --diff --dry-run\nsvelte-doctor check --sarif --sarif-file .svelte-doctor/report.sarif\nsvelte-doctor check --html --html-file .svelte-doctor/report.html\nsvelte-doctor check --junit --junit-file .svelte-doctor/junit.xml\nsvelte-doctor check --markdown --markdown-file .svelte-doctor/report.md\nsvelte-doctor check --all-workspaces --html --junit --markdown\n\n# Parallel scanning for large codebases\nsvelte-doctor check --jobs 4\nsvelte-doctor check --jobs 0  # auto-detect CPU count\n\n# Scan and apply fixes in one step\nsvelte-doctor check --fix\nsvelte-doctor check --fix --dry-run\nsvelte-doctor check --fix --interactive\nsvelte-doctor check --fix --fix-ai --verify-level tests\n```\n\n#### `svelte-doctor quick [directory] [options]`\n\nFast error-only scan with health score. Runs a lint scan with cache enabled and dead-code detection disabled for maximum speed. Only error-level diagnostics are reported, making it ideal for quick pre-commit checks or rapid feedback during development.\n\n| Option    | Description                   |\n| --------- | ----------------------------- |\n| `--json`  | Output machine-readable JSON  |\n| `--score` | Output only the numeric score |\n\nExamples:\n\n```bash\nsvelte-doctor quick\nsvelte-doctor quick --score\nsvelte-doctor quick packages/app --json\n```\n\n#### `svelte-doctor audit [directory] [options]`\n\nSecurity-focused scan that runs the full lint pipeline but filters results to only the Security category. Computes a dedicated security score from the filtered diagnostics. Useful for compliance checks, security reviews, and CI gates that focus exclusively on security posture.\n\n| Option    | Description                    |\n| --------- | ------------------------------ |\n| `--json`  | Output machine-readable JSON   |\n| `--score` | Output only the security score |\n\nSecurity rules include XSS via `{@html}`, hardcoded secrets, `eval()` usage, insecure cookies, broad CORS, shell injection, server secret leaks, dangerous redirect parameters, public env secret imports, external links without `rel=\"noopener\"`, and raw error details exposed to clients.\n\nExamples:\n\n```bash\nsvelte-doctor audit\nsvelte-doctor audit --score\nsvelte-doctor audit --json\nsvelte-doctor audit packages/api --json\n```\n\n#### `svelte-doctor baseline [directory]`\n\nCreate `.svelte-doctor/baseline.json` from the current diagnostics so future checks can suppress already-known issues with `check --baseline`.\n\nExamples:\n\n```bash\nsvelte-doctor baseline\nsvelte-doctor baseline --changed\nsvelte-doctor baseline --all-workspaces\n```\n\n#### `svelte-doctor config [directory] [options]`\n\nDisplay the active `svelte-doctor` configuration. Reads from `svelte-doctor.config.json` first, then falls back to the `\"svelte-doctor\"` key in `package.json`. Shows all active settings including lint, dead-code, cache, watch, fix, reports, ignore, plugins, rules, and ci fields.\n\n| Option     | Description                                           |\n| ---------- | ----------------------------------------------------- |\n| `--json`   | Output machine-readable JSON                          |\n| `--path`   | Show only the config file path                        |\n| `--schema` | Print the JSON Schema for `svelte-doctor.config.json` |\n\nExamples:\n\n```bash\nsvelte-doctor config\nsvelte-doctor config --json\nsvelte-doctor config --path\nsvelte-doctor config --schema\nsvelte-doctor config --schema > svelte-doctor.config.schema.json\n```\n\nTo use the schema in VS Code, point `json.schemas` at the generated file:\n\n```json\n{\n  \"json.schemas\": [\n    {\n      \"fileMatch\": [\"svelte-doctor.config.json\"],\n      \"url\": \"./svelte-doctor.config.schema.json\"\n    }\n  ]\n}\n```\n\n#### `svelte-doctor validate [directory] [options]`\n\nValidate the `svelte-doctor.config.json` file for syntax and schema errors. Checks for invalid JSON syntax, unknown top-level and nested keys, type mismatches (e.g., string where boolean expected), invalid enum values (e.g., `watch.deadCode`, `fix.verifyLevel`), empty report paths, and malformed ignore lists with non-string elements. The schema printed by `svelte-doctor config --schema` covers lint, deadCode, cache, watch, fix, reports, ignore, plugins, rules, and ci.\n\n| Option   | Description                  |\n| -------- | ---------------------------- |\n| `--json` | Output machine-readable JSON |\n\nValidation covers:\n\n- **Unknown keys** at all nesting levels\n- **Type checks** for `lint`, `deadCode`, `cache`, `watch`, `fix`, `reports`, `ignore`\n- **Enum validation** for `watch.deadCode` (`off`/`lazy`/`full`), `fix.verifyLevel` (`diagnostics`/`typecheck`/`tests`/`full`)\n- **Numeric bounds** for `fix.maxFiles` (must be positive)\n- **Path validation** for `reports.html`, `reports.junit`, `reports.markdown` (must be non-empty strings)\n- **Array validation** for `ignore.rules` and `ignore.files` (must be arrays of non-empty strings)\n- **Symlink detection** — refuses to validate symlinked config files\n\nExamples:\n\n```bash\nsvelte-doctor validate\nsvelte-doctor validate --json\nsvelte-doctor validate packages/app\n```\n\n#### `svelte-doctor suggest-ignore [directory] [options]`\n\nGenerate smart ignore suggestions for diagnostics that are likely false positives or low-risk noise. Each suggestion includes a confidence score, the reason it was flagged, and an ignore config snippet you can review before copying into `svelte-doctor.config.json`.\n\nThis is intentionally advisory. It does not write config automatically.\n\n| Option   | Description                                              |\n| -------- | -------------------------------------------------------- |\n| `--json` | Output machine-readable JSON with suggestions and config |\n\nExamples:\n\n```bash\nsvelte-doctor suggest-ignore\nsvelte-doctor suggest-ignore --json\n```\n\n#### `svelte-doctor stats [directory] [options]`\n\nShow project metrics including total diagnostics by severity, category breakdown with error/warning counts and penalty weights, most frequently triggered rules, and most affected files. Useful for identifying systemic patterns and prioritizing cleanup efforts.\n\n| Option          | Description                                          |\n| --------------- | ---------------------------------------------------- |\n| `--json`        | Output machine-readable JSON                         |\n| `--top <count>` | Number of top items to show per list (default: `10`) |\n\nExamples:\n\n```bash\nsvelte-doctor stats\nsvelte-doctor stats --top 5\nsvelte-doctor stats --json\nsvelte-doctor stats --top 3 --json\n```\n\n#### `svelte-doctor metrics [directory] [options]`\n\nDetailed metrics beyond the score: how long each scan phase takes, how many score points fixing each rule alone would gain, and a technical debt estimate for the whole project.\n\n**Sections:**\n\n- **Command durations** — wall-clock time of scan phases (discovery, lint, dead code, build artifacts) and the total elapsed time\n- **Rule gains** — per rule: the score points you would gain by fixing all of its diagnostics alone, with diagnostic counts, category, and estimated fix time\n- **Technical debt estimate** — total estimated remediation time (split into deterministic/AI-fixable vs manual work) and a per-category breakdown\n\n| Option          | Description                                               |\n| --------------- | --------------------------------------------------------- |\n| `--json`        | Output machine-readable JSON                              |\n| `--top <count>` | Number of rules to show in the gain table (default: `15`) |\n\nExamples:\n\n```bash\nsvelte-doctor metrics\nsvelte-doctor metrics --top 5\nsvelte-doctor metrics --json\n```\n\nExample output:\n\n```text\n  svelte-doctor metrics v0.3.7\n\n  Score: 64 / 100  Needs Work\n  Potential score (all fixes applied): 100  (+36)\n  Files: 155  Diagnostics: 70  Errors: 0  Warnings: 70  Fixable: 2\n\n  Command durations:\n    discovery: 12ms\n    lint: 345ms\n    deadCode: 355ms\n    artifacts: 0ms\n    total: 710ms\n\n  Rule gains: score points gained by fixing each rule alone\n    +15  types  34 diagnostics  [Dead Code]  ~816m\n    +15  exports  33 diagnostics  [Dead Code]  ~792m\n\n  Technical debt estimate:\n    Total: 1d 3h  (fixable: ~6m, manual: ~1d 3h)\n    Dead Code: 68 diagnostics, ~22h 40m\n```\n\n#### `svelte-doctor compare [directory] [options]`\n\nCompare diagnostics between two git refs (commits, branches, tags). Creates temporary git worktrees for both refs, runs independent scans, and reports the score delta along with newly introduced and fixed diagnostics. The comparison is symmetric: it shows both what got worse and what improved.\n\n| Option         | Description                                          |\n| -------------- | ---------------------------------------------------- |\n| `--base <ref>` | Base git ref (commit, branch, tag) (default: `main`) |\n| `--head <ref>` | Head git ref (default: `HEAD`)                       |\n| `--json`       | Output machine-readable JSON                         |\n\nGit refs are validated for injection-safe characters. Temporary worktrees are created in the OS temp directory and cleaned up automatically, even on scan failure.\n\nExamples:\n\n```bash\nsvelte-doctor compare --base main --head HEAD\nsvelte-doctor compare --base v1.0.0 --head v2.0.0\nsvelte-doctor compare --base HEAD~5 --head HEAD --json\nsvelte-doctor compare --base origin/main --head feature/xyz\n```\n\n#### `svelte-doctor watch [directory] [options]`\n\nWatch for file changes and show live diagnostics. Runs an initial cached scan, then incrementally re-scans only changed files with 150ms debounced updates. With `--fix`, deterministic fixes are applied automatically when a file is saved — the watch loop closes the feedback gap between \"see the issue\" and \"fix the issue\".\n\n| Option               | Description                                                                  |\n| -------------------- | ---------------------------------------------------------------------------- |\n| `--dead-code <mode>` | Dead-code behavior in watch mode: `off`, `lazy`, or `full` (default: `lazy`) |\n| `--incremental`      | Start with only tracked and untracked non-ignored files changed from `HEAD`  |\n| `--fix`              | Auto-apply deterministic fixes to saved files                                |\n| `--fix-rules <csv>`  | With `--fix`: limit auto-fixes to comma-separated rules (implies `--fix`)    |\n\nAuto-fix can also be enabled permanently in `svelte-doctor.config.json` — no CLI flag needed:\n\n```jsonc\n{\n  \"watch\": {\n    \"deadCode\": \"lazy\",\n    \"fix\": true, // or { \"rules\": [\"no-transition-all\", \"no-moment\"] }\n  },\n}\n```\n\nCLI flags (`--fix`, `--fix-rules`) take precedence over config. Only deterministic, high-confidence fixes are applied — the same set as `svelte-doctor apply` — so the loop stays safe. When a fix is applied, the line shows which rules were fixed:\n\n```text\n[12:34:56] src/Component.svelte changed — Score: 82 → 78 (⚠ 2 issues)\n[12:34:59] src/Layout.svelte changed — Score: 78 → 80 (✓ fixed: no-transition-all)\n[12:35:02] src/Card.svelte changed — Score: 80 → 84 (✓ score improved +4)\n```\n\nUse `watch --incremental` to start with the current Git working-tree changes while continuing to watch the project. Existing files changed after startup are scanned individually; newly created files trigger a full rescan so they are added to the watch state.\n\nWatch mode uses recursive `fs.watch` on macOS and Windows. On Linux, where recursive watching is unsupported, it watches each project directory individually (directories created after startup are picked up on the next watch restart).\n\n```bash\nsvelte-doctor watch --incremental\n```\n\n#### `svelte-doctor trend [directory] [options]`\n\nShow score history and trend over time. Every `check` run automatically saves the score to `.svelte-doctor/history.json`. The `trend` command visualizes this data as a terminal bar chart.\n\nMonorepos can also query the latest trend snapshot per workspace with `--all-workspaces` or `--workspace <name>`.\n\n### Fixing & Migration\n\n#### `svelte-doctor apply [directory] [options]`\n\nApply deterministic, high-confidence fixes without launching an AI agent. This command is intentionally conservative and only rewrites patterns the tool can fix safely.\n\n**Supported fixes:**\n\n- `no-transition-all` — replaces `transition: all` with explicit `opacity` and `transform`\n- `no-full-lodash` — rewrites full lodash imports to per-function paths\n- `no-moment` — replaces `moment` imports with `dayjs`\n- `no-full-icon-import` — converts namespace icon imports to named imports\n- Svelte 4→5 migration rules (`no-legacy-reactive`, `no-export-let`, `no-legacy-slots`, `no-on-directive`, `no-event-dispatcher`, `no-let-directive`, `no-legacy-lifecycle`)\n- `no-unnecessary-state` — strips `$state()` wrapper from values that are never mutated\n- `no-effect-for-derived` — converts `$effect(() => { x = expr })` to `const x = $derived(expr)`\n\n| Option          | Description                                          |\n| --------------- | ---------------------------------------------------- |\n| `--dry-run`     | Preview changes without writing files                |\n| `--write`       | Write changes to disk                                |\n| `--json`        | Output machine-readable JSON                         |\n| `--rules <csv>` | Restrict fixes to specific rule names                |\n| `--changed`     | Apply fixes only on files changed relative to `HEAD` |\n| `--staged`      | Apply fixes only on staged files                     |\n| `--since <ref>` | Apply fixes only on files changed since a git ref    |\n\nExamples:\n\n```bash\nsvelte-doctor apply --write\nsvelte-doctor apply --dry-run\nsvelte-doctor apply --write --rules no-transition-all,no-full-lodash\n```\n\n#### `svelte-doctor fix [directory] [options]`\n\nDetects installed AI coding agents (**Cursor**, **Amp**, **Claude Code**, **Codex**, **Copilot CLI**, **OpenCode**, **Pi**, **Gemini CLI**, **Qwen Code**, **Aider**, **Goose**) and uses the best available one to fix reported issues automatically. The flow is **safe by default**: privileged agent flags are disabled unless you explicitly pass `--unsafe-agent-exec`. Diagnostics are redacted before prompt generation, prompts are written into a secure temp directory when needed, and post-fix verification re-scans the project and fails if **errors or warnings** increased — the prompt bundle is kept for inspection instead of being silently cleaned up. Verification can be escalated from diagnostics-only to full typecheck/test/build smoke.\n\nSupported agent ids for `--agent` are `cursor`, `amp`, `claude`, `codex`, `copilot`, `opencode`, `pi`, `gemini`, `qwen`, `aider`, and `goose`. Install and authenticate at least one of them first, then run `svelte-doctor fix`. The command uses each agent's documented non-interactive mode where available: Amp execute mode, Claude print mode, Codex exec mode, Copilot prompt mode, OpenCode run mode, Pi print mode, Gemini headless mode, Qwen headless mode, Aider message mode, and Goose run mode.\n\n| Option                   | Description                                                                                            |\n| ------------------------ | ------------------------------------------------------------------------------------------------------ |\n| `--agent <name>`         | Force a specific agent (cursor, amp, claude, codex, copilot, opencode, pi, gemini, qwen, aider, goose) |\n| `--errors-only`          | Fix only errors first (reduces cascade errors, run again for warnings)                                 |\n| `--unsafe-agent-exec`    | Opt in to agent-specific privileged execution flags                                                    |\n| `--dry-run-prompt`       | Generate the secure prompt bundle without spawning an agent                                            |\n| `--verify-level <level>` | Verification depth: `diagnostics`, `typecheck`, `tests`, `full`                                        |\n| `--max-files <count>`    | Limit how many diagnostics are sent in a single agent batch                                            |\n\nSupported agents under `src/agents`:\n\n| Agent id   | CLI command | Non-interactive mode                                           |\n| ---------- | ----------- | -------------------------------------------------------------- |\n| `cursor`   | `agent`     | `--print --workspace <cwd> --output-format stream-json`        |\n| `amp`      | `amp`       | `-x` execute mode, unsafe opt-in via `--dangerously-allow-all` |\n| `claude`   | `claude`    | `-p --output-format stream-json --include-partial-messages`    |\n| `codex`    | `codex`     | `exec -C <cwd>`, unsafe opt-in via bypass flag                 |\n| `copilot`  | `copilot`   | `-p`                                                           |\n| `opencode` | `opencode`  | `run`                                                          |\n| `pi`       | `pi`        | `-p`                                                           |\n| `gemini`   | `gemini`    | `-p`, unsafe opt-in via `--yolo`                               |\n| `qwen`     | `qwen`      | `-p`, unsafe opt-in via `--yolo`                               |\n| `aider`    | `aider`     | `--yes --no-auto-commits --message`                            |\n| `goose`    | `goose`     | `run --no-session --quiet -t`                                  |\n\nExamples:\n\n```bash\n# Use the best installed agent\nsvelte-doctor fix\n\n# Force a specific agent\nsvelte-doctor fix --agent amp\nsvelte-doctor fix --agent claude\nsvelte-doctor fix --agent codex\nsvelte-doctor fix --agent copilot\nsvelte-doctor fix --agent opencode\nsvelte-doctor fix --agent pi\nsvelte-doctor fix --agent gemini\nsvelte-doctor fix --agent qwen\nsvelte-doctor fix --agent aider\nsvelte-doctor fix --agent goose\n\n# Preview the prompt if you want to paste it manually\nsvelte-doctor fix --dry-run-prompt\n```\n\n#### `svelte-doctor migrate [directory] [options]`\n\nAuto-migrate Svelte 4 syntax to Svelte 5. The migration engine uses a modular codemod pipeline with Svelte parser validation and TypeScript AST-backed script transforms for safer rewrites than line-only regex replacement. Template transforms remain conservative and parser-validated; complex cases are marked for review instead of being silently rewritten. Both `.svelte` component files and `.svelte.js` / `.svelte.ts` module files are scanned and migrated — module files receive reactive-statement, lifecycle, and store transforms since they can contain `$:` reactive statements and lifecycle imports that need runes migration.\n\n**Transformations:**\n\n- `$:` reactive statements → `$derived()` / `$effect()`\n- `export let` props, including defaults and TypeScript annotations → `let { ... } = $props()`\n- Destructuring reactive assignments such as `$: ({ value } = item)` → `$derived()` review-safe output\n- `createEventDispatcher` → callback props review marker\n- `<slot>` and named slots → `{@render children?.()}` / `{@render name?.()}`\n- `on:click={handler}` → `onclick={handler}`\n- `let:` directives → snippet-prop review markers\n- `onMount` / `onDestroy` → `$effect()` review marker\n- `beforeUpdate` / `afterUpdate` → `$effect.pre()` review marker\n- `svelte/store` `writable` / `derived` usage → manual-review warning for shared stores and subscriptions\n- `class:active={isActive}` → `class={isActive ? \"active\" : \"\"}`\n- `export const` in instance scripts → `<script module>` exports\n- `<svelte:options immutable/accessors>` → modern API review marker\n\n| Option            | Description                                                                                                                                                                                                   |\n| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `--dry-run`       | Show changes without modifying files                                                                                                                                                                          |\n| `--diff`          | Output unified diff for proposed changes                                                                                                                                                                      |\n| `--interactive`   | Show each file diff and ask before applying (`y`, `n`, `a`, `q`)                                                                                                                                              |\n| `--plan`          | Report total files, auto-migratable files, manual-review files, and top issue categories without writing files                                                                                                |\n| `--commit-stages` | Run supported migration stages and create one git commit per stage                                                                                                                                            |\n| `--rollback`      | Restore files from `.bak` backups and remove the backup files                                                                                                                                                 |\n| `--no-backup`     | Skip creating `.bak` backup files                                                                                                                                                                             |\n| `--stage <name>`  | Run only one stage: `reactive-statement`, `export-let`, `event-dispatcher`, `slot`, `on-directive`, `lifecycle`, `let-directive`, `store`, `class-directive`, `module-export`, `snippet`, or `svelte-options` |\n| `--json`          | Output machine-readable JSON                                                                                                                                                                                  |\n\nExamples:\n\n```bash\n# Preview all changes as a patch without writing files\nsvelte-doctor migrate --dry-run --diff > migration.patch\n\n# Get a migration plan for CI or rollout estimation\nsvelte-doctor migrate --plan\nsvelte-doctor migrate --plan --json\n\n# Review and accept each file interactively\nsvelte-doctor migrate --interactive\n\n# Apply only one stage\nsvelte-doctor migrate --stage export-let\n\n# Restore from backups created by the default migration mode\nsvelte-doctor migrate --rollback\n```\n\n#### `svelte-doctor migrate-status [directory] [options]`\n\nShow Svelte 4 to 5 migration progress without modifying files. The command scans `.svelte` files for pending legacy patterns and reports migrated, pending, and skipped file counts, category-specific progress, and an estimated remaining time.\n\nTracked categories:\n\n- reactive statements (`$:`)\n- `export let` props\n- legacy `<slot>` usage\n- `on:event` directives\n\n| Option   | Description                  |\n| -------- | ---------------------------- |\n| `--json` | Output machine-readable JSON |\n\nExamples:\n\n```bash\nsvelte-doctor migrate-status\nsvelte-doctor migrate-status --json\n```\n\n### Analysis & Insights\n\n#### `svelte-doctor graph [directory] [options]`\n\nBuild a component dependency graph from local imports and rendered component tags. The graph helps answer which component imports or renders another component and highlights circular dependencies. Imports through SvelteKit's `$lib` alias and custom `tsconfig.json` `compilerOptions.paths` aliases are resolved, alongside relative and re-export specifiers.\n\n| Option                        | Description                        |\n| ----------------------------- | ---------------------------------- |\n| `--format <ascii\\|dot\\|json>` | Output format, defaults to `ascii` |\n\nExamples:\n\n```bash\nsvelte-doctor graph\nsvelte-doctor graph --format dot > graph.dot\nsvelte-doctor graph --format json\n```\n\n#### `svelte-doctor where-used <component> [directory] [options]`\n\nFind every place a component is imported or rendered, with line-accurate locations and source snippets. Useful for impact analysis before refactoring or removing a component.\n\nThe `<component>` argument accepts a component name (`Button`) or a full project-relative path (`src/lib/Button.svelte`). Multiple components can be passed comma-separated (`Button,Card,Modal`).\n\n| Option                        | Description                                                                       |\n| ----------------------------- | --------------------------------------------------------------------------------- |\n| `--json`                      | Output machine-readable JSON                                                      |\n| `--type <import\\|render>`     | Restrict to import or render usages                                               |\n| `--scope <path>`              | Restrict results to files under a subdirectory                                    |\n| `--direction <used-by\\|uses>` | `used-by` (default) finds who uses the component; `uses` finds what it depends on |\n| `--tree`                      | Render the parent render hierarchy as an ASCII tree rooted at entry points        |\n\nAmbiguous component names (for example `src/lib/Button.svelte` and `src/ui/Button.svelte`) produce an error listing the candidates so you can disambiguate with the full path. Re-exports (`export { default as Button } from ...`) and string-literal dynamic imports (`await import(\"...\")`) are reported as import usages. Imports through SvelteKit's `$lib` alias (default `$lib` -> `src/lib`) and custom `tsconfig.json` `compilerOptions.paths` aliases (`$components/*`, `@/*`, etc.) are resolved automatically, so SvelteKit projects report import usages the same way relative imports do.\n\nExamples:\n\n```bash\n# who uses Button?\nsvelte-doctor where-used Button\n\n# full path query\nsvelte-doctor where-used src/lib/Button.svelte\n\n# CI / automation output\nsvelte-doctor where-used Button --json\n\n# multiple components\nsvelte-doctor where-used Button,Card,Modal\n\n# only render sites\nsvelte-doctor where-used Button --type render\n\n# render tree of parents leading to Button\nsvelte-doctor where-used Button --tree\n\n# scope to a subdirectory\nsvelte-doctor where-used Button --scope src/pages\n\n# reverse: what does Button depend on?\nsvelte-doctor where-used Button --direction uses\n```\n\n#### `svelte-doctor dead-stores [directory] [options]`\n\nDetect `writable` stores that are never written to anywhere in the project. A `writable` that is only ever read should be a `readable` store or migrated to Svelte 5 runes `$state`. This is especially useful when migrating a codebase from stores to runes: it identifies stores that can be safely converted to read-only values without changing any write sites.\n\nThe analysis is cross-file: it tracks `.set()`, `.update()`, `this.store.set()` in classes, and `$store =` auto-subscription writes in `.svelte` templates, resolving imports and re-exports back to the original declaration. Stores that are written in any file are reported as OK with their write sites listed.\n\nFull checks also use Knip for function-level unused export diagnostics and detect component imports that are never rendered in `+page.svelte`. Bundle analysis reports wildcard, namespace, and CommonJS patterns that can prevent tree-shaking from removing unused code.\n\nKnip ships as an **optional dependency**: it is installed by default, but you can skip it (for example `npm install -g svelte-doctor --omit=optional`) to slim the install down. When Knip is not available, dead-code analysis automatically falls back to page-component checks and prints a one-time notice; nothing crashes.\n\n| Option   | Description                  |\n| -------- | ---------------------------- |\n| `--json` | Output machine-readable JSON |\n\nExamples:\n\n```bash\n# full dead store report\nsvelte-doctor dead-stores\n\n# CI / automation output\nsvelte-doctor dead-stores --json\n\n# scan a specific workspace\nsvelte-doctor dead-stores packages/app\n```\n\nSample text output:\n\n```text\n  Dead store report: 1 never-written, 1 ok, 2 total\n\n  Never written (candidates for readable or $state):\n\n  user - writable - NEVER WRITTEN (src/stores/user.ts:2)\n  Used in ($-auto-subscribe, 1):\n    src/routes/+page.svelte:7           $currentUser\n  Replace with: replace `user` with a `readable` store (read-only contract) or migrate to runes `$state` and expose via props\n\n  Written (OK):\n\n  counter - writable - WRITTEN (src/stores/counter.ts:2)\n  Written in 2 places:\n    src/routes/+page.svelte:5           $counter =\n    src/stores/counter.ts:3             counter.set()\n```\n\n#### `svelte-doctor test-gaps [directory] [options]`\n\nFind source files that do not have a nearby matching test file. It also marks critical SvelteKit paths, such as server load modules and form actions, so CI can prioritize missing tests for production-sensitive code.\n\n| Option   | Description                  |\n| -------- | ---------------------------- |\n| `--json` | Output machine-readable JSON |\n\nExamples:\n\n```bash\nsvelte-doctor test-gaps\nsvelte-doctor test-gaps --json\n```\n\n#### `svelte-doctor bundle-impact [directory] [options]`\n\nEstimate potential bundle savings from fixable bundle-size diagnostics. Current estimates cover heavy imports such as `moment`, full `lodash`, and wildcard icon package imports.\n\n| Option   | Description                  |\n| -------- | ---------------------------- |\n| `--json` | Output machine-readable JSON |\n\nExamples:\n\n```bash\nsvelte-doctor bundle-impact\nsvelte-doctor bundle-impact --json\n```\n\n#### `svelte-doctor render-profile [directory] [options]`\n\nAnalyze Svelte components before runtime and rank the most expensive render surfaces. The profiler parses and compiles each `.svelte` file, then combines AST and compiled-output signals into a deterministic render cost model.\n\nPer component metrics:\n\n- DOM node count\n- reactive dependency count\n- hydration complexity score\n- re-render risk factor\n- compiled output size\n- aggregate render cost\n\nThe default terminal output lists the top 10 most expensive components. `--watch` re-runs the profile when `.svelte` files change and shows cost deltas, which helps catch render-cost regressions before a build reaches production.\n\n| Option          | Description                                            |\n| --------------- | ------------------------------------------------------ |\n| `--json`        | Output machine-readable JSON                           |\n| `--top <count>` | Number of expensive components to show, defaults to 10 |\n| `--watch`       | Watch `.svelte` files and show render cost changes     |\n\nExamples:\n\n```bash\nsvelte-doctor render-profile\nsvelte-doctor render-profile --top 5\nsvelte-doctor render-profile --watch\nsvelte-doctor render-profile --json\n```\n\n### Dependencies & Updates\n\n#### `svelte-doctor deps [directory] [options]`\n\nCheck dependency health for Svelte ecosystem compatibility. Fully offline — no network requests.\n\n**Checks:**\n\n- **Deprecated packages** — sapper, svelte-routing, svelte-preprocess, etc.\n- **Svelte 5 compatibility** — packages not updated for runes/snippets\n- **Risky version ranges** — `*` or `latest` dependencies\n- **Better alternatives** — axios → fetch, moment → dayjs, lodash → lodash-es\n\n| Option   | Description                  |\n| -------- | ---------------------------- |\n| `--json` | Output machine-readable JSON |\n\n#### `svelte-doctor upgrade [directory] [options]`\n\nCheck project dependencies against the npm registry and prepare safe upgrade suggestions. By default, major upgrades are excluded. Use `--dry-run` to report without touching `package.json`; without `--dry-run`, accepted suggestions are written atomically and the detected package manager runs install.\n\nThe upgrade plan includes current version, lockfile-resolved version when available, latest version, wanted range, dependency block, major/minor/patch classification, deprecation signal, replacement alternative when known, breaking-change flag, changelog/repository URL when available, and risk score.\n\n| Option               | Description                                                   |\n| -------------------- | ------------------------------------------------------------- |\n| `--dry-run`          | Report upgrades without writing `package.json` or lockfile    |\n| `--interactive`      | Ask before applying each package upgrade (`y`, `n`, `a`, `q`) |\n| `--major`            | Include major-version upgrades                                |\n| `--json`             | Output machine-readable JSON                                  |\n| `--all-workspaces`   | Check every package.json workspace                            |\n| `--workspace <name>` | Check one workspace by name or relative path                  |\n\nExamples:\n\n```bash\nsvelte-doctor upgrade --dry-run\nsvelte-doctor upgrade --dry-run --major\nsvelte-doctor upgrade --json\nsvelte-doctor upgrade --all-workspaces --dry-run\n```\n\n#### `svelte-doctor update [options]`\n\nChecks the official npm registry for the latest `svelte-doctor` version and updates the **global CLI installation**. This command does not update local project dependencies.\n\n| Option                       | Description                                         |\n| ---------------------------- | --------------------------------------------------- |\n| `--check`                    | Check for an update without installing ","readmeFilename":"README.md"}