{"_id":"@9wick/eslint-plugin-strict-type-rules","_rev":"8-da2cef2a54eba9d2365b6dbe8ad9e411","name":"@9wick/eslint-plugin-strict-type-rules","dist-tags":{"beta":"0.1.0","latest":"1.5.0"},"versions":{"0.1.0":{"name":"@9wick/eslint-plugin-strict-type-rules","version":"0.1.0","keywords":["eslint","eslintplugin","typescript","neverthrow","strict","type-safety"],"license":"MIT","_id":"@9wick/eslint-plugin-strict-type-rules@0.1.0","maintainers":[{"name":"kido","email":"kido@9wick.com"}],"dist":{"shasum":"f53a04368e7d6c2218959542174d030fe10aa545","tarball":"https://registry.npmjs.org/@9wick/eslint-plugin-strict-type-rules/-/eslint-plugin-strict-type-rules-0.1.0.tgz","fileCount":5,"integrity":"sha512-lhXSDggaBmd3l9zxhj/JNp999E1Pk1tmQFl7SYsm8mv0P+7FsWufuQ5atDR8Izo/4pTlejhmccSvTgRmxkc+HQ==","signatures":[{"sig":"MEUCIBNp92/CKYuD12nLpfiAgARoNwIMevkda/RaddjYw2SAAiEA+2E8vm6nEvtmmmLQZ/C1mPLjcobj67CwJwhogWfl/S4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50260},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./tsconfig/strictest.json":"./tsconfig/strictest.json"},"scripts":{"test":"vitest run","build":"tsup","prepare":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"pnpm build"},"_npmUser":{"name":"kido","email":"kido@9wick.com"},"_npmVersion":"11.5.2","description":"ESLint plugin with the strictest TypeScript rules for neverthrow, type safety, and code quality","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"packageManager":"pnpm@10.26.0","devDependencies":{"tsup":"^8.4.0","eslint":"^9.24.0","vitest":"^3.0.0","typescript":"^5.7.0","@types/node":"^25.4.0","typescript-eslint":"^8.29.0","eslint-plugin-react":"^7.37.5","eslint-plugin-sonarjs":"^3.0.5","eslint-plugin-import-x":"^4.6.1","@typescript-eslint/utils":"^8.29.0","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.19","@typescript-eslint/rule-tester":"^8.29.0","@eslint-community/eslint-plugin-eslint-comments":"^4.5.0"},"peerDependencies":{"eslint":"^9.0.0","typescript-eslint":"^8.0.0","eslint-plugin-react":"^7.37.0","eslint-plugin-sonarjs":"^2.0.0 || ^3.0.0","eslint-plugin-import-x":"^4.0.0","eslint-plugin-react-hooks":"^5.0.0","eslint-plugin-react-refresh":"^0.4.0","@eslint-community/eslint-plugin-eslint-comments":"^4.0.0"},"peerDependenciesMeta":{"eslint-plugin-react":{"optional":true},"eslint-plugin-react-hooks":{"optional":true},"eslint-plugin-react-refresh":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin-strict-type-rules_0.1.0_1777859410111_0.7319683027641293","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@9wick/eslint-plugin-strict-type-rules","version":"1.0.2","keywords":["eslint","eslintplugin","typescript","neverthrow","strict","type-safety"],"license":"MIT","_id":"@9wick/eslint-plugin-strict-type-rules@1.0.2","maintainers":[{"name":"kido","email":"kido@9wick.com"}],"homepage":"https://github.com/9wick/eslint-plugin-strict-type-rules#readme","bugs":{"url":"https://github.com/9wick/eslint-plugin-strict-type-rules/issues"},"dist":{"shasum":"7e9ef263c3be6757c5a16156b7c8fed4f2ed9065","tarball":"https://registry.npmjs.org/@9wick/eslint-plugin-strict-type-rules/-/eslint-plugin-strict-type-rules-1.0.2.tgz","fileCount":5,"integrity":"sha512-9uLHtjnQW/kXzeT4v5T2fxbRSRps7B1NPhKUkKFqgTyWEVkG2zwbZxqNQn7NGWs1EUQ7/+qaMsYH3+M0qpVpXg==","signatures":[{"sig":"MEUCIQDkNxR3uoLcUgExGQYB/fUBoq7RpWMTSz+sKw75ZrTa6wIgVNpXk/cZq8vkHdbGdaUyMp/HRnFYBcA6mU2LP5lBmRM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@9wick%2feslint-plugin-strict-type-rules@1.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50280},"main":"./dist/index.js","type":"module","_from":"file:9wick-eslint-plugin-strict-type-rules-1.0.2.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./tsconfig/strictest.json":"./tsconfig/strictest.json"},"scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:666acc84-c20f-4e73-b82b-9af738fd45b2"}},"_resolved":"/tmp/4a12c533bb134f5d6bd95ff495bea25e/9wick-eslint-plugin-strict-type-rules-1.0.2.tgz","_integrity":"sha512-9uLHtjnQW/kXzeT4v5T2fxbRSRps7B1NPhKUkKFqgTyWEVkG2zwbZxqNQn7NGWs1EUQ7/+qaMsYH3+M0qpVpXg==","repository":{"url":"git+https://github.com/9wick/eslint-plugin-strict-type-rules.git","type":"git"},"_npmVersion":"11.13.0","description":"ESLint plugin with the strictest TypeScript rules for neverthrow, type safety, and code quality","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","eslint":"^9.24.0","vitest":"^3.0.0","typescript":"^5.7.0","@types/node":"^25.4.0","typescript-eslint":"^8.29.0","eslint-plugin-react":"^7.37.5","eslint-plugin-sonarjs":"^3.0.5","eslint-plugin-import-x":"^4.6.1","@typescript-eslint/utils":"^8.29.0","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.19","@typescript-eslint/rule-tester":"^8.29.0","@eslint-community/eslint-plugin-eslint-comments":"^4.5.0"},"peerDependencies":{"eslint":"^9.0.0","typescript-eslint":"^8.0.0","eslint-plugin-react":"^7.37.0","eslint-plugin-sonarjs":"^2.0.0 || ^3.0.0","eslint-plugin-import-x":"^4.0.0","eslint-plugin-react-hooks":"^5.0.0","eslint-plugin-react-refresh":"^0.4.0","@eslint-community/eslint-plugin-eslint-comments":"^4.0.0"},"peerDependenciesMeta":{"eslint-plugin-react":{"optional":true},"eslint-plugin-react-hooks":{"optional":true},"eslint-plugin-react-refresh":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin-strict-type-rules_1.0.2_1777866591607_0.5861621889186099","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@9wick/eslint-plugin-strict-type-rules","version":"1.1.0","keywords":["eslint","eslintplugin","typescript","neverthrow","strict","type-safety"],"license":"MIT","_id":"@9wick/eslint-plugin-strict-type-rules@1.1.0","maintainers":[{"name":"kido","email":"kido@9wick.com"}],"homepage":"https://github.com/9wick/eslint-plugin-strict-type-rules#readme","bugs":{"url":"https://github.com/9wick/eslint-plugin-strict-type-rules/issues"},"dist":{"shasum":"57fd905e0bd1c66440ffd5bc20353cb2f1e3912c","tarball":"https://registry.npmjs.org/@9wick/eslint-plugin-strict-type-rules/-/eslint-plugin-strict-type-rules-1.1.0.tgz","fileCount":5,"integrity":"sha512-yotaG2vPxvNn2aszKMKusYHyJicpBYAsWp9gAb5BoYRv2o3w0cpsCv2XW6pYlr3BpMLnJSRS5xMYa22YEH01pw==","signatures":[{"sig":"MEYCIQD+jMzG3ELNRBtYj+nYUokD6UCFrPcnvdeIqUagTUjzyAIhAIf11Q/JkN0bMXT4PpWjObB6LRA6ATpgaz1Ovm/Q/Bb3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@9wick%2feslint-plugin-strict-type-rules@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50762},"main":"./dist/index.js","type":"module","_from":"file:9wick-eslint-plugin-strict-type-rules-1.1.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./tsconfig/strictest.json":"./tsconfig/strictest.json"},"scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:666acc84-c20f-4e73-b82b-9af738fd45b2"}},"_resolved":"/tmp/f58d64237c5ffbc02ffc7624edc5840d/9wick-eslint-plugin-strict-type-rules-1.1.0.tgz","_integrity":"sha512-yotaG2vPxvNn2aszKMKusYHyJicpBYAsWp9gAb5BoYRv2o3w0cpsCv2XW6pYlr3BpMLnJSRS5xMYa22YEH01pw==","repository":{"url":"git+https://github.com/9wick/eslint-plugin-strict-type-rules.git","type":"git"},"_npmVersion":"11.13.0","description":"ESLint plugin with the strictest TypeScript rules for neverthrow, type safety, and code quality","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","eslint":"^9.24.0","vitest":"^3.0.0","typescript":"^5.7.0","@types/node":"^25.4.0","typescript-eslint":"^8.29.0","eslint-plugin-react":"^7.37.5","eslint-plugin-sonarjs":"^3.0.5","eslint-plugin-import-x":"^4.6.1","@typescript-eslint/utils":"^8.29.0","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.19","@typescript-eslint/rule-tester":"^8.29.0","@eslint-community/eslint-plugin-eslint-comments":"^4.5.0"},"peerDependencies":{"eslint":"^9.0.0","typescript-eslint":"^8.0.0","eslint-plugin-react":"^7.37.0","eslint-plugin-sonarjs":"^2.0.0 || ^3.0.0","eslint-plugin-import-x":"^4.0.0","eslint-plugin-react-hooks":"^5.0.0","eslint-plugin-react-refresh":"^0.4.0","@eslint-community/eslint-plugin-eslint-comments":"^4.0.0"},"peerDependenciesMeta":{"eslint-plugin-react":{"optional":true},"eslint-plugin-react-hooks":{"optional":true},"eslint-plugin-react-refresh":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin-strict-type-rules_1.1.0_1778045636496_0.5057813388068697","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@9wick/eslint-plugin-strict-type-rules","version":"1.1.1","keywords":["eslint","eslintplugin","typescript","neverthrow","strict","type-safety"],"license":"MIT","_id":"@9wick/eslint-plugin-strict-type-rules@1.1.1","maintainers":[{"name":"kido","email":"kido@9wick.com"}],"homepage":"https://github.com/9wick/eslint-plugin-strict-type-rules#readme","bugs":{"url":"https://github.com/9wick/eslint-plugin-strict-type-rules/issues"},"dist":{"shasum":"2bb9f77add114d7bbcc4ba3e97af0c776c980bf8","tarball":"https://registry.npmjs.org/@9wick/eslint-plugin-strict-type-rules/-/eslint-plugin-strict-type-rules-1.1.1.tgz","fileCount":5,"integrity":"sha512-lXhsn58ki+p0WVUDUP8tYhn/8DquZozJTTOeRDaoQHoehxwXXfzeoAFsVS97IuScLzMUmP9ef7LhoXKtJNyLdw==","signatures":[{"sig":"MEUCIQDy9KttxbqxX7MPvkybnlwJ5y2OQ3wMUJOVTTr6SlqWlAIgL3EcCymL5Kov9hOeL9Q9cVJe615NNBjTNQnhKh0Bydc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@9wick%2feslint-plugin-strict-type-rules@1.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":51060},"main":"./dist/index.js","type":"module","_from":"file:9wick-eslint-plugin-strict-type-rules-1.1.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./tsconfig/strictest.json":"./tsconfig/strictest.json"},"scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:666acc84-c20f-4e73-b82b-9af738fd45b2"}},"_resolved":"/tmp/6d5503660e74893f532a6e22005c676b/9wick-eslint-plugin-strict-type-rules-1.1.1.tgz","_integrity":"sha512-lXhsn58ki+p0WVUDUP8tYhn/8DquZozJTTOeRDaoQHoehxwXXfzeoAFsVS97IuScLzMUmP9ef7LhoXKtJNyLdw==","repository":{"url":"git+https://github.com/9wick/eslint-plugin-strict-type-rules.git","type":"git"},"_npmVersion":"11.14.0","description":"ESLint plugin with the strictest TypeScript rules for neverthrow, type safety, and code quality","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","eslint":"^9.24.0","vitest":"^3.0.0","typescript":"^5.7.0","@types/node":"^25.4.0","typescript-eslint":"^8.29.0","eslint-plugin-react":"^7.37.5","eslint-plugin-sonarjs":"^3.0.5","eslint-plugin-import-x":"^4.6.1","@typescript-eslint/utils":"^8.29.0","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.19","@typescript-eslint/rule-tester":"^8.29.0","@eslint-community/eslint-plugin-eslint-comments":"^4.5.0"},"peerDependencies":{"eslint":"^9.0.0","typescript-eslint":"^8.0.0","eslint-plugin-react":"^7.37.0","eslint-plugin-sonarjs":"^2.0.0 || ^3.0.0","eslint-plugin-import-x":"^4.0.0","eslint-plugin-react-hooks":"^5.0.0","eslint-plugin-react-refresh":"^0.4.0","@eslint-community/eslint-plugin-eslint-comments":"^4.0.0"},"peerDependenciesMeta":{"eslint-plugin-react":{"optional":true},"eslint-plugin-react-hooks":{"optional":true},"eslint-plugin-react-refresh":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin-strict-type-rules_1.1.1_1778165289819_0.9637440627824077","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@9wick/eslint-plugin-strict-type-rules","version":"1.2.0","keywords":["eslint","eslintplugin","typescript","neverthrow","strict","type-safety"],"license":"MIT","_id":"@9wick/eslint-plugin-strict-type-rules@1.2.0","maintainers":[{"name":"kido","email":"kido@9wick.com"}],"homepage":"https://github.com/9wick/eslint-plugin-strict-type-rules#readme","bugs":{"url":"https://github.com/9wick/eslint-plugin-strict-type-rules/issues"},"dist":{"shasum":"bacfd9a8f1cee72b3baab1030e57784b75ea751f","tarball":"https://registry.npmjs.org/@9wick/eslint-plugin-strict-type-rules/-/eslint-plugin-strict-type-rules-1.2.0.tgz","fileCount":5,"integrity":"sha512-Nxh9gVC6TFtQmF396taL15SSE9RxbY4QsWA9x+we+rIYm0vx2Q4GVQXTpfHj51BidLkCS01V07vvlF/KPCVdTw==","signatures":[{"sig":"MEUCIQC+loZoSRaiRJHtBZROJl1adNHFWcIcI8/HNQYhIG/f5wIgIAXxt7U4dt+r5dvetFx6dyksWfrQsPH1yKPOmetF5E8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@9wick%2feslint-plugin-strict-type-rules@1.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":51080},"main":"./dist/index.js","type":"module","_from":"file:9wick-eslint-plugin-strict-type-rules-1.2.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./tsconfig/strictest.json":"./tsconfig/strictest.json"},"scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:666acc84-c20f-4e73-b82b-9af738fd45b2"}},"_resolved":"/tmp/70cfad7fe68dde9ab8a74939d7c00bcd/9wick-eslint-plugin-strict-type-rules-1.2.0.tgz","_integrity":"sha512-Nxh9gVC6TFtQmF396taL15SSE9RxbY4QsWA9x+we+rIYm0vx2Q4GVQXTpfHj51BidLkCS01V07vvlF/KPCVdTw==","repository":{"url":"git+https://github.com/9wick/eslint-plugin-strict-type-rules.git","type":"git"},"_npmVersion":"11.14.1","description":"ESLint plugin with the strictest TypeScript rules for neverthrow, type safety, and code quality","directories":{},"_nodeVersion":"20.20.2","dependencies":{"picomatch":"4.0.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","eslint":"^9.24.0","vitest":"^3.0.0","typescript":"^5.7.0","@types/node":"^25.4.0","@types/picomatch":"3.0.2","typescript-eslint":"^8.29.0","eslint-plugin-react":"^7.37.5","eslint-plugin-sonarjs":"^3.0.5","eslint-plugin-import-x":"^4.6.1","@typescript-eslint/utils":"^8.29.0","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.19","@typescript-eslint/rule-tester":"^8.29.0","@eslint-community/eslint-plugin-eslint-comments":"^4.5.0"},"peerDependencies":{"eslint":"^9.0.0","typescript-eslint":"^8.0.0","eslint-plugin-react":"^7.37.0","eslint-plugin-sonarjs":"^2.0.0 || ^3.0.0","eslint-plugin-import-x":"^4.0.0","eslint-plugin-react-hooks":"^5.0.0","eslint-plugin-react-refresh":"^0.4.0","@eslint-community/eslint-plugin-eslint-comments":"^4.0.0"},"peerDependenciesMeta":{"eslint-plugin-react":{"optional":true},"eslint-plugin-react-hooks":{"optional":true},"eslint-plugin-react-refresh":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin-strict-type-rules_1.2.0_1778422784208_0.7388631104072418","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@9wick/eslint-plugin-strict-type-rules","version":"1.3.0","keywords":["eslint","eslintplugin","typescript","neverthrow","strict","type-safety"],"license":"MIT","_id":"@9wick/eslint-plugin-strict-type-rules@1.3.0","maintainers":[{"name":"kido","email":"kido@9wick.com"}],"homepage":"https://github.com/9wick/eslint-plugin-strict-type-rules#readme","bugs":{"url":"https://github.com/9wick/eslint-plugin-strict-type-rules/issues"},"dist":{"shasum":"a8034499cef28556886df3fafeeff41f2d3ca506","tarball":"https://registry.npmjs.org/@9wick/eslint-plugin-strict-type-rules/-/eslint-plugin-strict-type-rules-1.3.0.tgz","fileCount":5,"integrity":"sha512-RTZx6801OlqCrrQMMzVvOBnGtqZTgwlrDK6hMJNz2GHLsSjoC/qSyQjCzj+xI3r47vXwhPOpiU3uV59FGhoydA==","signatures":[{"sig":"MEQCIHSlLW/wZV4+b9DTRvl5+7r67rPbZ66pkhN83ZqTzrvqAiB2Y7H/BSnD0rgbzHpLdvROjK10m4D+i4RoM/Wrg0c3uA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@9wick%2feslint-plugin-strict-type-rules@1.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":51127},"main":"./dist/index.js","type":"module","_from":"file:9wick-eslint-plugin-strict-type-rules-1.3.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./tsconfig/strictest.json":"./tsconfig/strictest.json"},"scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:666acc84-c20f-4e73-b82b-9af738fd45b2"}},"_resolved":"/tmp/b5837805c7adfcd410789899562461c6/9wick-eslint-plugin-strict-type-rules-1.3.0.tgz","_integrity":"sha512-RTZx6801OlqCrrQMMzVvOBnGtqZTgwlrDK6hMJNz2GHLsSjoC/qSyQjCzj+xI3r47vXwhPOpiU3uV59FGhoydA==","repository":{"url":"git+https://github.com/9wick/eslint-plugin-strict-type-rules.git","type":"git"},"_npmVersion":"11.15.0","description":"ESLint plugin with the strictest TypeScript rules for neverthrow, type safety, and code quality","directories":{},"_nodeVersion":"20.20.2","dependencies":{"picomatch":"4.0.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","eslint":"^9.24.0","vitest":"^3.0.0","typescript":"^5.7.0","@types/node":"^25.4.0","@types/picomatch":"3.0.2","typescript-eslint":"^8.29.0","eslint-plugin-react":"^7.37.5","eslint-plugin-sonarjs":"^3.0.5","eslint-plugin-import-x":"^4.6.1","@typescript-eslint/utils":"^8.29.0","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.19","@typescript-eslint/rule-tester":"^8.29.0","@eslint-community/eslint-plugin-eslint-comments":"^4.5.0"},"peerDependencies":{"eslint":"^9.0.0","typescript-eslint":"^8.0.0","eslint-plugin-react":"^7.37.0","eslint-plugin-sonarjs":"^2.0.0 || ^3.0.0","eslint-plugin-import-x":"^4.0.0","eslint-plugin-react-hooks":"^5.0.0","eslint-plugin-react-refresh":"^0.4.0","@eslint-community/eslint-plugin-eslint-comments":"^4.0.0"},"peerDependenciesMeta":{"eslint-plugin-react":{"optional":true},"eslint-plugin-react-hooks":{"optional":true},"eslint-plugin-react-refresh":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin-strict-type-rules_1.3.0_1779669490103_0.22659985636100877","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@9wick/eslint-plugin-strict-type-rules","version":"1.4.0","keywords":["eslint","eslintplugin","typescript","neverthrow","strict","type-safety"],"license":"MIT","_id":"@9wick/eslint-plugin-strict-type-rules@1.4.0","maintainers":[{"name":"kido","email":"kido@9wick.com"}],"homepage":"https://github.com/9wick/eslint-plugin-strict-type-rules#readme","bugs":{"url":"https://github.com/9wick/eslint-plugin-strict-type-rules/issues"},"dist":{"shasum":"3a529fc35a8892451f0529ebd91f4ce665db9c6d","tarball":"https://registry.npmjs.org/@9wick/eslint-plugin-strict-type-rules/-/eslint-plugin-strict-type-rules-1.4.0.tgz","fileCount":5,"integrity":"sha512-ExowE88iwcKUJXc+hirzy8PqQMAl+2/zm4X5P+p7PK7cKF9DOWvmbnBz9c0KzdOnZ8tT8+Fbqi9dMUxworMclg==","signatures":[{"sig":"MEUCIQDFiywvGxyviDquCZiv3fE1MPDdrZ/JKoNe9MSuMdPMRgIgXW5f8+DILefozCuhB4Mb5amFuKZ5XTGyJjcK0plR7ec=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@9wick%2feslint-plugin-strict-type-rules@1.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":51459},"main":"./dist/index.js","type":"module","_from":"file:9wick-eslint-plugin-strict-type-rules-1.4.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./tsconfig/strictest.json":"./tsconfig/strictest.json"},"scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:666acc84-c20f-4e73-b82b-9af738fd45b2"}},"_resolved":"/tmp/6ea35e004daf8af40d63450ec64df73c/9wick-eslint-plugin-strict-type-rules-1.4.0.tgz","_integrity":"sha512-ExowE88iwcKUJXc+hirzy8PqQMAl+2/zm4X5P+p7PK7cKF9DOWvmbnBz9c0KzdOnZ8tT8+Fbqi9dMUxworMclg==","repository":{"url":"git+https://github.com/9wick/eslint-plugin-strict-type-rules.git","type":"git"},"_npmVersion":"11.15.0","description":"ESLint plugin with the strictest TypeScript rules for neverthrow, type safety, and code quality","directories":{},"_nodeVersion":"20.20.2","dependencies":{"picomatch":"4.0.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","eslint":"^9.24.0","vitest":"^3.0.0","typescript":"^5.7.0","@types/node":"^25.4.0","@types/picomatch":"3.0.2","typescript-eslint":"^8.29.0","eslint-plugin-react":"^7.37.5","eslint-plugin-sonarjs":"^3.0.5","eslint-plugin-import-x":"^4.6.1","@typescript-eslint/utils":"^8.29.0","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.19","@typescript-eslint/rule-tester":"^8.29.0","@eslint-community/eslint-plugin-eslint-comments":"^4.5.0"},"peerDependencies":{"eslint":"^9.0.0","typescript-eslint":"^8.0.0","eslint-plugin-react":"^7.37.0","eslint-plugin-sonarjs":"^2.0.0 || ^3.0.0","eslint-plugin-import-x":"^4.0.0","eslint-plugin-react-hooks":"^5.0.0","eslint-plugin-react-refresh":"^0.4.0","@eslint-community/eslint-plugin-eslint-comments":"^4.0.0"},"peerDependenciesMeta":{"eslint-plugin-react":{"optional":true},"eslint-plugin-react-hooks":{"optional":true},"eslint-plugin-react-refresh":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin-strict-type-rules_1.4.0_1779892566224_0.7162884339058198","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"@9wick/eslint-plugin-strict-type-rules","version":"1.5.0","description":"ESLint plugin with the strictest TypeScript rules for neverthrow, type safety, and code quality","type":"module","exports":{".":{"import":"./dist/index.js","types":"./dist/index.d.ts"},"./tsconfig/strictest.json":"./tsconfig/strictest.json"},"main":"./dist/index.js","types":"./dist/index.d.ts","peerDependencies":{"@eslint-community/eslint-plugin-eslint-comments":"^4.0.0","eslint":"^9.0.0","eslint-plugin-import-x":"^4.0.0","eslint-plugin-react":"^7.37.0","eslint-plugin-react-hooks":"^5.0.0","eslint-plugin-react-refresh":"^0.4.0","eslint-plugin-sonarjs":"^2.0.0 || ^3.0.0","typescript-eslint":"^8.0.0"},"peerDependenciesMeta":{"eslint-plugin-react":{"optional":true},"eslint-plugin-react-hooks":{"optional":true},"eslint-plugin-react-refresh":{"optional":true}},"devDependencies":{"@eslint-community/eslint-plugin-eslint-comments":"^4.5.0","@types/node":"^25.4.0","@types/picomatch":"3.0.2","@typescript-eslint/rule-tester":"^8.29.0","@typescript-eslint/utils":"^8.29.0","eslint":"^9.24.0","eslint-plugin-import-x":"^4.6.1","eslint-plugin-react":"^7.37.5","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.19","eslint-plugin-sonarjs":"^3.0.5","tsup":"^8.4.0","typescript":"^5.7.0","typescript-eslint":"^8.29.0","vitest":"^3.0.0"},"keywords":["eslint","eslintplugin","typescript","neverthrow","strict","type-safety"],"repository":{"type":"git","url":"git+https://github.com/9wick/eslint-plugin-strict-type-rules.git"},"license":"MIT","engines":{"node":">=18.18.0"},"dependencies":{"picomatch":"4.0.2"},"scripts":{"build":"tsup","test":"vitest run","test:watch":"vitest","typecheck":"tsc --noEmit"},"_id":"@9wick/eslint-plugin-strict-type-rules@1.5.0","bugs":{"url":"https://github.com/9wick/eslint-plugin-strict-type-rules/issues"},"homepage":"https://github.com/9wick/eslint-plugin-strict-type-rules#readme","_integrity":"sha512-q3WNj66Tj88oRZZlW9fuu3kno7T/L0gjQej9No9ZwMFMipDKD4KaY5jj9CgvmMdZt75TszUizaK3dnkf/8QQNQ==","_resolved":"/tmp/8a80d35032a9a70ef696559052133dcb/9wick-eslint-plugin-strict-type-rules-1.5.0.tgz","_from":"file:9wick-eslint-plugin-strict-type-rules-1.5.0.tgz","_nodeVersion":"20.20.2","_npmVersion":"11.16.0","dist":{"integrity":"sha512-q3WNj66Tj88oRZZlW9fuu3kno7T/L0gjQej9No9ZwMFMipDKD4KaY5jj9CgvmMdZt75TszUizaK3dnkf/8QQNQ==","shasum":"ac5d170e218553e6184e33a2704398003e865084","tarball":"https://registry.npmjs.org/@9wick/eslint-plugin-strict-type-rules/-/eslint-plugin-strict-type-rules-1.5.0.tgz","fileCount":5,"unpackedSize":51962,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@9wick%2feslint-plugin-strict-type-rules@1.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDyPNkxK9fGkXO5S5Ji5Mfmie3rEoxLyQX/KdRLXkFyUgIhAPb7vcfxqTMf1r8MxUJXfYfiirYDa3aPdtUqb64+K6Ew"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:666acc84-c20f-4e73-b82b-9af738fd45b2"}},"directories":{},"maintainers":[{"name":"kido","email":"kido@9wick.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/eslint-plugin-strict-type-rules_1.5.0_1779929284342_0.31940110174045766"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-04T01:50:10.049Z","modified":"2026-05-28T00:48:04.839Z","0.1.0":"2026-05-04T01:50:10.254Z","1.0.2":"2026-05-04T03:49:51.762Z","1.1.0":"2026-05-06T05:33:56.643Z","1.1.1":"2026-05-07T14:48:09.999Z","1.2.0":"2026-05-10T14:19:44.352Z","1.3.0":"2026-05-25T00:38:10.263Z","1.4.0":"2026-05-27T14:36:06.385Z","1.5.0":"2026-05-28T00:48:04.495Z"},"bugs":{"url":"https://github.com/9wick/eslint-plugin-strict-type-rules/issues"},"license":"MIT","homepage":"https://github.com/9wick/eslint-plugin-strict-type-rules#readme","keywords":["eslint","eslintplugin","typescript","neverthrow","strict","type-safety"],"repository":{"type":"git","url":"git+https://github.com/9wick/eslint-plugin-strict-type-rules.git"},"description":"ESLint plugin with the strictest TypeScript rules for neverthrow, type safety, and code quality","maintainers":[{"name":"kido","email":"kido@9wick.com"}],"readme":"# @9wick/eslint-plugin-strict-type-rules\n\n[![npm version](https://img.shields.io/npm/v/@9wick/eslint-plugin-strict-type-rules.svg)](https://www.npmjs.com/package/@9wick/eslint-plugin-strict-type-rules)\n\nneverthrow / 型安全性 / コード品質のための厳格な ESLint ルールセット + TypeScript 最厳格設定。\n\n## Install\n\n```bash\npnpm add -D @9wick/eslint-plugin-strict-type-rules\n```\n\n### Peer Dependencies\n\n```bash\npnpm add -D eslint typescript-eslint eslint-plugin-import-x eslint-plugin-sonarjs @eslint-community/eslint-plugin-eslint-comments\n```\n\nReact を使う場合:\n\n```bash\npnpm add -D eslint-plugin-react eslint-plugin-react-hooks eslint-plugin-react-refresh\n```\n\n## TSConfig\n\n最厳格な TypeScript コンパイラ設定を提供します。\n\n```json\n// tsconfig.json\n{\n  \"extends\": \"@9wick/eslint-plugin-strict-type-rules/tsconfig/strictest.json\",\n  \"compilerOptions\": {\n    \"target\": \"ES2022\",\n    \"module\": \"ESNext\",\n    \"moduleResolution\": \"bundler\",\n    \"outDir\": \"./dist\"\n  }\n}\n```\n\n### 含まれるオプション\n\n| カテゴリ | オプション | 説明 |\n|---------|-----------|------|\n| **strict** | `strict: true` | 8個の厳格チェックを一括有効化 |\n| **型安全性** | `noUncheckedIndexedAccess` | インデックスアクセスに `undefined` を追加 |\n| | `exactOptionalPropertyTypes` | `?` プロパティへの暗黙的 `undefined` 代入を禁止 |\n| | `noPropertyAccessFromIndexSignature` | Record 型のドットアクセスを禁止 |\n| **制御フロー** | `noImplicitOverride` | `override` キーワードの明示を強制 |\n| | `noFallthroughCasesInSwitch` | switch フォールスルーを禁止 |\n| | `noImplicitReturns` | void 以外の関数の暗黙 return を禁止 |\n| | `allowUnusedLabels: false` | 未使用ラベルをエラー |\n| | `allowUnreachableCode: false` | 到達不能コードをエラー |\n| **モジュール** | `isolatedModules` | ファイル単位トランスパイル互換を強制 |\n| | `verbatimModuleSyntax` | `import type` の明示を強制 |\n| | `erasableSyntaxOnly` | enum / namespace を禁止（TS 5.8+） |\n\n> **Note:** `noUnusedLocals` / `noUnusedParameters` は ESLint 側で制御するため意図的に除外しています。\n\n## Usage\n\n> **Note:** `no-unnecessary-condition` は typed linting が必要です。`parserOptions.projectService: true` の設定（`tseslint.configs.recommendedTypeChecked` 等）を推奨します。\n\n```js\n// eslint.config.mjs\nimport tseslint from \"typescript-eslint\";\nimport strictTypes from \"@9wick/eslint-plugin-strict-type-rules\";\n\nexport default tseslint.config(\n  ...tseslint.configs.recommendedTypeChecked,\n  ...strictTypes.configs.recommended,\n);\n```\n\n### React プロジェクト\n\n```js\nexport default tseslint.config(\n  ...tseslint.configs.recommendedTypeChecked,\n  ...strictTypes.configs.recommended,\n  ...strictTypes.configs.react,\n);\n```\n\n### テスト緩和 + barrel 制約\n\n```js\nexport default tseslint.config(\n  ...tseslint.configs.recommendedTypeChecked,\n  ...strictTypes.configs.recommended,\n  ...strictTypes.configs.test,    // .test.ts で throw/try-catch 等を許可\n  ...strictTypes.configs.barrel,  // index.ts を re-export のみに制限\n);\n```\n\n### ルールの個別 opt-out\n\n全ルールが独立しているため、1行で無効化できます:\n\n```js\nexport default tseslint.config(\n  ...tseslint.configs.recommendedTypeChecked,\n  ...strictTypes.configs.recommended,\n  {\n    rules: {\n      \"@9wick/strict-type-rules/no-throw\": \"off\",\n    },\n  },\n);\n```\n\n### DI ルールのスコープ\n\n`no-exported-callable` / `require-injectable-class` は sub-extension 付きファイル（`*.service.ts`, `*.controller.ts` 等）にのみ適用されます。特定の sub-extension を除外するには:\n\n```js\nexport default tseslint.config(\n  ...tseslint.configs.recommendedTypeChecked,\n  ...strictTypes.configs.recommended,\n  {\n    files: [\"**/*.lib.{ts,tsx}\"],\n    rules: {\n      \"@9wick/strict-type-rules/no-exported-callable\": \"off\",\n      \"@9wick/strict-type-rules/require-injectable-class\": \"off\",\n    },\n  },\n);\n```\n\n## Configs\n\n| Config | 説明 |\n|--------|------|\n| `recommended` / `base` | 全ルール有効（同一内容） |\n| `react` | `**/*.{jsx,tsx}` 対象。JSX depth/props 制限、prop-types off |\n| `test` | `**/*.test.{ts,tsx}` 対象。throw/try-catch 等を許可、max-lines 緩和。`.spec.ts` / `__tests__/` 禁止 |\n| `barrel` | `**/index.ts` 対象。re-export のみ許可 |\n\n## Rules\n\n### Strict Syntax Rules\n\n| Rule | 説明 |\n|------|------|\n| `no-throw` | `throw` 文を禁止。neverthrow の `err()` を使用 |\n| `no-try-catch` | `try-catch` を禁止。Result 型でエラーハンドリング |\n| `no-promise-result` | `Promise<Result>` を禁止。`ResultAsync` を使用 |\n| `no-nested-and-then` | `andThen` のネストを禁止。`safeTry` を使用 |\n| `no-as-assertion` | `as` 型アサーションを禁止（`as const` は許可） |\n| `no-angle-assertion` | `<Type>value` 型アサーションを禁止 |\n| `no-in-operator` | `in` 演算子を禁止。ts-pattern の `match` を使用 |\n| `no-object-has-own` | `Object.hasOwn` を禁止。ts-pattern の `match` を使用 |\n| `no-promise-reject` | `Promise.reject` を禁止。neverthrow の `errAsync` を使用 |\n| `no-process-access` | `process.*` への直接アクセスを禁止。DI / 設定オブジェクト経由でアクセス |\n| `no-unsafe-unwrap` | `_unsafeUnwrap` / `_unsafeUnwrapErr` を禁止。`match` や `andThen` を使用 |\n\n### Other Rules\n\n| Rule | 説明 |\n|------|------|\n| `no-empty-select-value` | `<SelectItem value=\"\">` 等の空 value を禁止 |\n| `no-vitest-resolve-alias` | vitest.config の `resolve.alias` を禁止 |\n| `no-cross-directory-lib-import` | `.lib` ファイルの同フォルダ外 import を禁止 |\n| `no-exported-callable` | DI モジュールからの関数 export を禁止（`*.*.{ts,tsx}` のみ、`*.lib.*` 除外） |\n| `require-injectable-class` | DI モジュールに `@injectable` class を要求（`*.*.{ts,tsx}` のみ、`*.lib.*` 除外） |\n\n### Built-in Rules (base config)\n\n| Rule | 設定 |\n|------|------|\n| `complexity` | max: 7 |\n| `sonarjs/cognitive-complexity` | error |\n| `no-console` | error |\n| `max-lines` | 500 行 |\n| `max-lines-per-function` | 50 行 |\n| `import-x/no-cycle` | error |\n| `import-x/order` | グループ間改行必須 |\n| `import-x/no-namespace` | error |\n| `@typescript-eslint/no-unnecessary-condition` | error (要 typed linting) |\n| `@eslint-community/eslint-comments/no-use` | allow: [] |\n","readmeFilename":"README.md"}