{"_id":"@sarj/eslint-plugin","_rev":"147-97c73ec679dfa9326885bcbdca23b45f","name":"@sarj/eslint-plugin","dist-tags":{"latest":"15.26.8"},"versions":{"0.1.0":{"name":"@sarj/eslint-plugin","version":"0.1.0","keywords":["eslint","eslintplugin","eslint-plugin","zod"],"author":{"name":"Your Name"},"license":"MIT","_id":"@sarj/eslint-plugin@0.1.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"dist":{"shasum":"513ab7255155edcae9fb2a857c5506a6dcf3e179","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-0.1.0.tgz","fileCount":4,"integrity":"sha512-9xvggBUKI/W3Kk/xMI6XqSbI9+AiXVHytniNqp8SwoWjDPYC/79PfhwuG9dJsEWyGBxEsduOck9MGhObPORtvA==","signatures":[{"sig":"MEYCIQDykIpTNCA1btJRVgj7ws3Ah7z4RH3CnkwpHXdtA+gYBAIhAMsNkyevZVVsxTcdCyScWQENeDldaZ/MhHpZqGNtzV78","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2392},"main":"lib/index.js","engines":{"node":">=14.0.0"},"gitHead":"24f5759a94559a29042bb5b6ac77cdd83660297e","scripts":{"test":"mocha tests/**/*.test.js"},"_npmUser":{"name":"sarj","email":"nasr@sarj.ai"},"_npmVersion":"10.9.2","description":"Custom ESLint rules collection","directories":{},"_nodeVersion":"22.13.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^10.0.0","eslint":"^8.0.0"},"peerDependencies":{"eslint":">=6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_0.1.0_1742413556626_0.6446974632194347","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@sarj/eslint-plugin","version":"0.1.1","keywords":["eslint","eslintplugin","eslint-plugin","zod"],"author":{"name":"Your Name"},"license":"MIT","_id":"@sarj/eslint-plugin@0.1.1","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"dist":{"shasum":"a72271a99c1c02d0786d4923285d6451f846d08a","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-0.1.1.tgz","fileCount":4,"integrity":"sha512-Mc/UTYBQoy0Na+opz55utR7ir43iJGx6cE69ahLx+TGTiF7NBetQKR9KwCSXktVF7MCLaQnCmsM5d4O+8OUMjQ==","signatures":[{"sig":"MEUCIQDlk8K2E3YZdnkEnQyd4YlV6U3Hld5E2fo9xiMJnjGkNAIgJ3Q3NxMTD06/AFe33CYS8j1rO+Mf4IubogDVQE6jBzQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2392},"main":"lib/index.js","engines":{"node":">=14.0.0"},"gitHead":"9d66bfae895f369fcb787a7d4ed28f52c1d4a5a5","scripts":{"test":"mocha tests/**/*.test.js"},"_npmUser":{"name":"sarj","email":"nasr@sarj.ai"},"_npmVersion":"10.9.2","description":"Custom ESLint rules collection","directories":{},"_nodeVersion":"22.13.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^10.0.0","eslint":"^8.0.0"},"peerDependencies":{"eslint":">=6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_0.1.1_1742414096842_0.36209176757768025","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@sarj/eslint-plugin","version":"0.1.2","keywords":["eslint","eslintplugin","eslint-plugin","zod"],"author":{"name":"Your Name"},"license":"MIT","_id":"@sarj/eslint-plugin@0.1.2","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"dist":{"shasum":"37dd72704ba963ead4385d7810dbb492ec9d3445","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-0.1.2.tgz","fileCount":4,"integrity":"sha512-38vOu/VHMauFTHTDA8TMMbjMT+N4mb1kabaJvqNVIUwj0AmyXsW0Td+2nGLyyKSNzIZahSJH0ERMPDvo0c+n2A==","signatures":[{"sig":"MEUCIQDL1eZ9Tw6ftpTA2/peTdRLDheQEJeelodUycD4X+RvrQIgct36MtnpPH8Xo9Yw+7AI1QpsP6ZhlUc2ICBScwrmWdM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2447},"main":"lib/index.js","engines":{"node":">=14.0.0"},"gitHead":"566efba6800fa4c3530cd98fe791fb57420d2d80","scripts":{"test":"mocha tests/**/*.test.js"},"_npmUser":{"name":"sarj","email":"nasr@sarj.ai"},"_npmVersion":"10.9.2","description":"Custom ESLint rules collection","directories":{},"_nodeVersion":"22.13.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^10.0.0","eslint":"^8.0.0"},"peerDependencies":{"eslint":">=6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_0.1.2_1742414698274_0.1953117462143017","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@sarj/eslint-plugin","version":"0.2.0","keywords":["eslint","eslintplugin","eslint-plugin","zod"],"author":{"name":"Your Name"},"license":"MIT","_id":"@sarj/eslint-plugin@0.2.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"dist":{"shasum":"7d19f74520a1acbd09b1dad77e1b90f23fbc05fa","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-0.2.0.tgz","fileCount":7,"integrity":"sha512-4/jMokWfnsZ9nMW0WlX58nk3tQXcWF8D6j5RYG4rs1YMhOkzjbJEat8PavPrcP6ExjiR7e4bNL1dvZmn/0tYuA==","signatures":[{"sig":"MEQCIA+QwJ/egUUoWn9unGCCbJ82eoqfA97uJ5OWsU8cm+Z4AiAIKB6xvRIZ6R1LQGD5irSkzROakWKLFqoim3Ccvv2/3A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8458},"main":"lib/index.js","engines":{"node":">=14.0.0"},"gitHead":"8ddb27ab1230d750a5d42d278909f23392f65f64","scripts":{"test":"mocha tests/**/*.test.js"},"_npmUser":{"name":"sarj","email":"nasr@sarj.ai"},"_npmVersion":"10.9.2","description":"Custom ESLint rules collection","directories":{},"_nodeVersion":"22.15.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^10.0.0","eslint":"^8.0.0"},"peerDependencies":{"eslint":">=6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_0.2.0_1749400236109_0.8704780608288243","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@sarj/eslint-plugin","version":"0.2.1","keywords":["eslint","eslintplugin","eslint-plugin","zod"],"author":{"name":"Your Name"},"license":"MIT","_id":"@sarj/eslint-plugin@0.2.1","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"dist":{"shasum":"a53b3ecb69cd5949e8689f84c41eb45cd6ea1dd7","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-0.2.1.tgz","fileCount":8,"integrity":"sha512-xvyo8+uydbh5xVnwcqgsLFmeS1EFo/U71eDRbZZd7XMwZf5EB+UIdIicL9ShZXVtOwRcWFrZM6skN+PQvFe+vQ==","signatures":[{"sig":"MEUCIQDvG4Yq7Mt5LFfyXxTBzLmLlPQo4EXKi6q5pOiDCLXnFwIgSo4OQmxIRKwAtLVj0CtDjiYqzwS0tl5LJ4wEXNu8H1k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8451},"main":"lib/index.js","engines":{"node":">=14.0.0"},"gitHead":"9d8405b026ca1127f50fbc3531f92224df8efe65","scripts":{"test":"mocha tests/**/*.test.js"},"_npmUser":{"name":"sarj","email":"nasr@sarj.ai"},"_npmVersion":"10.9.2","description":"Custom ESLint rules collection","directories":{},"_nodeVersion":"22.15.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^10.0.0","eslint":"^8.0.0"},"peerDependencies":{"eslint":">=6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_0.2.1_1768762177785_0.6160790431326979","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@sarj/eslint-plugin","version":"1.0.0","keywords":["eslint","eslintplugin","eslint-plugin","zod","typescript","flat-config"],"author":{"name":"Sarj"},"license":"MIT","_id":"@sarj/eslint-plugin@1.0.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"dist":{"shasum":"afa23df24540a3d5ebc5a91d2ced4a2a8b855693","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-1.0.0.tgz","fileCount":41,"integrity":"sha512-Ps+qpEK3WcxjgT8Ne2sCbYkqUv9J1uLZlnmWCUOlCrg3B4G2NwyV37bPoVTEpxATxTgn79W3Sl7N6eQ/emvBHQ==","signatures":[{"sig":"MEQCIGVOv6PtOieyL9boxRfZNXQulKP0B1cKABz9Li0S+jIZAiB7JqfujMN68vXUOwizSXnH9jGwGX7SbQQPYHrPn6dLeQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35389},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"3388b16e44d190ac511075bd0f569a8b414d7ed2","scripts":{"lint":"eslint src","test":"vitest run","build":"tsc","test:watch":"vitest","prepublishOnly":"yarn build"},"_npmUser":{"name":"sarj","email":"nasr@sarj.ai"},"_npmVersion":"10.9.2","description":"Custom ESLint rules collection for Sarj projects","directories":{},"_nodeVersion":"22.15.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"yarn@4.12.0+sha512.f45ab632439a67f8bc759bf32ead036a1f413287b9042726b7cc4818b7b49e14e9423ba49b18f9e06ea4941c1ad062385b1d8760a8d5091a1a31e5f6219afca8","devDependencies":{"eslint":"^9.0.0","vitest":"^2.0.0","typescript":"^5.7.0","@types/node":"^22.0.0","@types/eslint":"^9.6.0","@typescript-eslint/parser":"^8.0.0"},"peerDependencies":{"eslint":">=9.0.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_1.0.0_1769211564507_0.8089825029177558","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@sarj/eslint-plugin","version":"1.0.1","keywords":["eslint","eslintplugin","eslint-plugin","zod","typescript","flat-config"],"author":{"name":"Sarj"},"license":"MIT","_id":"@sarj/eslint-plugin@1.0.1","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"dist":{"shasum":"aa648ae18c478923adb5c76509b4d97912244ac8","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-1.0.1.tgz","fileCount":26,"integrity":"sha512-OkbY3BAMvjji8rqikS18AfCXVifWWtRtUDV27PRSalqSC50vIG7odawwgtkuTyxiRqzVZy/87EkUFpbYYPaQoQ==","signatures":[{"sig":"MEUCIQCSlQPc7zeN7QvHULvGFHqa4SgOoBgEZFPvK6pegOnwTwIgKwI7wPX5E8MQqEoP4Wyqaan3Jt2Z1AT9ksDR91iPRBU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25757},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"3388b16e44d190ac511075bd0f569a8b414d7ed2","scripts":{"lint":"eslint src","test":"vitest run","build":"tsc -p tsconfig.build.json","test:watch":"vitest","prepublishOnly":"yarn build"},"_npmUser":{"name":"sarj","email":"nasr@sarj.ai"},"_npmVersion":"10.9.2","description":"Custom ESLint rules collection for Sarj projects","directories":{},"_nodeVersion":"22.15.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"yarn@4.12.0+sha512.f45ab632439a67f8bc759bf32ead036a1f413287b9042726b7cc4818b7b49e14e9423ba49b18f9e06ea4941c1ad062385b1d8760a8d5091a1a31e5f6219afca8","devDependencies":{"eslint":"^9.0.0","vitest":"^2.0.0","typescript":"^5.7.0","@types/node":"^22.0.0","@types/eslint":"^9.6.0","@typescript-eslint/parser":"^8.0.0"},"peerDependencies":{"eslint":">=9.0.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_1.0.1_1769211919072_0.6043203143002376","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@sarj/eslint-plugin","version":"2.0.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@2.0.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://github.com/sarj-ai/linting/tree/main/packages/typescript","bugs":{"url":"https://github.com/sarj-ai/linting/issues"},"dist":{"shasum":"a626f0aa75aae0474582fa12cbf6be5f9930c3c0","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-2.0.0.tgz","fileCount":8,"integrity":"sha512-H3d5hgHPh6uHL46zRsPHa2na4ibX6zFdpC13aNpStunGWQ6dsRizQYkVYMR2cl+weFBhSQqQr+8MLbUzjji+7Q==","signatures":[{"sig":"MEUCIQCJaZJuVwAfdzJf2NbPSEJmMUFYHH9vDZ9GjcY1OSOvSwIgKVHY0EJU3ym2SHpEP3X3Ymm/Ca1fTvPYSys2Q86SE4I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@2.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2906173},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"984b865bd18266e50dceaab4f5fba6c99eb70786","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sarj","email":"nasr@sarj.ai"},"repository":{"url":"git+https://github.com/sarj-ai/linting.git","type":"git","directory":"packages/typescript"},"_npmVersion":"10.9.8","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","eslint":"^9.0.0","vitest":"^2.0.0","typescript":"^5.6.0","@types/node":"^20.0.0","@typescript-eslint/utils":"^8.0.0","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/rule-tester":"^8.0.0"},"peerDependencies":{"eslint":">=9.0.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_2.0.0_1779907110524_0.6637637195287225","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@sarj/eslint-plugin","version":"2.0.1","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@2.0.1","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://github.com/sarj-ai/standards/tree/main/packages/typescript","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"2205070de4644aa991e3492bf8c28d84969f8a50","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-2.0.1.tgz","fileCount":8,"integrity":"sha512-m9GmynEzMqWN9v6Ya/Hz2Ivjps0goum7ivb2BD820xkGMqwSWNWc51h7k4ebkSIEJV+xie9YFdlbMgIG8vyFiw==","signatures":[{"sig":"MEYCIQDsn9inh0SxQ4TgnNUPcmIAduYtJlOXnDmis4AweXFFjwIhAK80qh0opwbIuNVT75QSb5iL81M4HdYVb+jyzw1vVXuf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@2.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":236374},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"7368058a87466d27588d4c0774427147f1c5989e","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sarj","email":"nasr@sarj.ai"},"repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.13.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.16.0","dependencies":{"@typescript-eslint/utils":"^8.60.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsup":"latest","eslint":"latest","vitest":"latest","typescript":"latest","@types/node":"latest","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","@typescript-eslint/rule-tester":"latest"},"peerDependencies":{"eslint":">=10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_2.0.1_1780619603791_0.47056100613485596","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"@sarj/eslint-plugin","version":"2.0.2","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@2.0.2","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://github.com/sarj-ai/standards/tree/main/packages/typescript","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"9507a936622e4c75bbcdfc8901fdab417ee66a73","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-2.0.2.tgz","fileCount":8,"integrity":"sha512-pxWRouUM9IHtawaJ1oY3bkqGBAHZqIRD6XOe/d7RJRU2kRdgkjhcran/4suIN9pxrJx6a99QJEqoWd65r95pZw==","signatures":[{"sig":"MEYCIQDjxDy2cccpX3yl81laNt/ARk8j+p5WWiy/CCLVd+c8zAIhAKT4PPl9keIIJWsoASrNaEpnykhm4nAQarnuKCBXm4Ch","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@2.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":236374},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"e6a0f51e5853296bafe22d6a100611beccd1af13","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sarj","email":"nasr@sarj.ai"},"repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.13.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.16.0","dependencies":{"@typescript-eslint/utils":"^8.60.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsup":"latest","eslint":"latest","vitest":"latest","typescript":"latest","@types/node":"latest","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","@typescript-eslint/rule-tester":"latest"},"peerDependencies":{"eslint":">=9.39.4"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_2.0.2_1780661156431_0.9912490779011223","host":"s3://npm-registry-packages-npm-production"}},"2.1.1":{"name":"@sarj/eslint-plugin","version":"2.1.1","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@2.1.1","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://github.com/sarj-ai/standards/tree/main/packages/typescript","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"bc2f94acb849b3530e491bdfe257d42b36088e80","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-2.1.1.tgz","fileCount":8,"integrity":"sha512-n4TLUK1UlujGoHO03IgfmVVcwvsDNSr6S67B0t5EKoLMHSC7Kjiz41ZcPZhcJkrVYr6DVZ+1sZjvY5ZzIzwZDQ==","signatures":[{"sig":"MEUCIQDIH0RewpRJpW4DNjiPAZ3+KKPku898ibP/zG4CTTt51gIgR2iVAUCfZYpjPqp1OkJdJiUcLfA0ph1counOOoDNt6Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":385935},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"f7dcd8104805f1e7b810ff0de90886369dd06428","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sarj","email":"nasr@sarj.ai"},"repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.13.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.16.0","dependencies":{"@typescript-eslint/utils":"^8.60.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"latest","eslint":"latest","vitest":"latest","typescript":"latest","@types/node":"latest","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","@typescript-eslint/rule-tester":"latest"},"peerDependencies":{"eslint":">=9.39.4"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_2.1.1_1782058452132_0.9905608521359961","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"@sarj/eslint-plugin","version":"2.2.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@2.2.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://github.com/sarj-ai/standards/tree/main/packages/typescript","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"b820a01886ad2a6d68a23f0d561b3de3c693f2c8","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-2.2.0.tgz","fileCount":8,"integrity":"sha512-MBoVQuyce/7oAJ2XrkZQjNW8dghY/u9VUZZr7h0IktW8odQmPqQ4AYX8sns7Zab9Xd/G/dvBRW6EGRDonhu+gw==","signatures":[{"sig":"MEUCIDlsOiJNJS9cV5w9g+O5tdc+vsF5CFZqikFON9uC2VXwAiEAjPC5c/atAw7vNaf7h30rU/sAEEaGI+o3rGVva11kUI0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":482963},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"aee993deba29d31b1678cc3098369061ea8c194e","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sarj","email":"nasr@sarj.ai"},"repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.13.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.17.0","dependencies":{"@typescript-eslint/utils":"^8.62.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"latest","eslint":"latest","vitest":"latest","typescript":"latest","@types/node":"latest","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","@typescript-eslint/rule-tester":"latest"},"peerDependencies":{"eslint":">=9.39.4"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_2.2.0_1782824757406_0.7789023981471481","host":"s3://npm-registry-packages-npm-production"}},"2.3.0":{"name":"@sarj/eslint-plugin","version":"2.3.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@2.3.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://github.com/sarj-ai/standards/tree/main/packages/typescript","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"7a3bf827a9cd7e76ca98359b2ec8438e86963991","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-2.3.0.tgz","fileCount":8,"integrity":"sha512-aKmqZxVqAduk6JHFu09lauVA+/bkqeQ0EQ2omQpD6hwTM77tbX0TXlpvSWpjwOdDp1i/rjZAYY1vDTp9g09qgw==","signatures":[{"sig":"MEQCIE9+MfHcf9W7JBGjo2sS83oEwB0/yzQCD43/0tjdoGWWAiBcAXwm7/Gfas0n0ZBnA0zPDXhmqjro2wO+Cz59z+E0hQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":711529},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"cf4611a90cc07d67aa39160aafd1c9d84a466cf2","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sarj","email":"nasr@sarj.ai"},"repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"@typescript-eslint/utils":"^8.63.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"latest","eslint":"latest","vitest":"latest","typescript":"latest","@types/node":"latest","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","@typescript-eslint/rule-tester":"latest"},"peerDependencies":{"eslint":">=9.39.4"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_2.3.0_1784717562639_0.9698204273052473","host":"s3://npm-registry-packages-npm-production"}},"2.3.1":{"name":"@sarj/eslint-plugin","version":"2.3.1","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@2.3.1","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://github.com/sarj-ai/standards/tree/main/packages/typescript","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"4d2dfd74f54edf34e422762f7963cf5713065e22","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-2.3.1.tgz","fileCount":8,"integrity":"sha512-Q5UemvQen7N1ibPnxq7+auBuiWsQcPWg7eTe6Z0d5VcJbpnMDpQ5dqm4XtyqWWJGXLd/ODuE8sAHxtjNFzfWHA==","signatures":[{"sig":"MEUCIQDbw8WoRZSqlAiDao4CKtttVddSIRqmp+b3h4NkH9j5DQIgYvTdx9nIIdPDTzydR6A9fJcDjBulTXAkW9iniJtce8o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":687129},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"11e7f8f3cbe65d123034eb1aa674f4ffc6707afa","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sarj","email":"nasr@sarj.ai"},"repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"@typescript-eslint/utils":"^8.63.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"latest","eslint":"latest","vitest":"latest","typescript":"latest","@types/node":"latest","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","@typescript-eslint/rule-tester":"latest"},"peerDependencies":{"eslint":">=9.39.4"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_2.3.1_1784718221636_0.017965445977908168","host":"s3://npm-registry-packages-npm-production"}},"2.3.2":{"name":"@sarj/eslint-plugin","version":"2.3.2","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@2.3.2","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://github.com/sarj-ai/standards/tree/main/packages/typescript","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"0b0c0efc12643ebc6164f412f4ae97b2f7e5cc01","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-2.3.2.tgz","fileCount":8,"integrity":"sha512-ajRCoWzxwM4hdyOsikMAmukGN83J18WN20bDWINi0LRtoSwZdWif6Rvp301FpjSOU3BOn00epgOdQV8AJCG1fg==","signatures":[{"sig":"MEUCIG5CsEHQtu/ZPGN9gpG2p09GDujR0JCo9RCfPtQneEbAAiEA4qp4Eks5RekuZ86bDgAqJE0kXsHylYEQPgDlTug8ebA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":715259},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"75de0921e2668886b4eb6f79f4c8aaf057975fca","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sarj","email":"nasr@sarj.ai"},"repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"@typescript-eslint/utils":"^8.63.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"latest","eslint":"latest","vitest":"latest","typescript":"latest","@types/node":"latest","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","@typescript-eslint/rule-tester":"latest"},"peerDependencies":{"eslint":">=9.39.4"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_2.3.2_1784722558035_0.5069857602148935","host":"s3://npm-registry-packages-npm-production"}},"2.3.3":{"name":"@sarj/eslint-plugin","version":"2.3.3","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@2.3.3","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://github.com/sarj-ai/standards/tree/main/packages/typescript","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"a79f82b8aab504b75394d0383d9b7b07473921de","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-2.3.3.tgz","fileCount":8,"integrity":"sha512-cNWiqNfRPVroUyEE5lsv8sTddNi42jFi9qgs0TpXF2uTJBaB06r2IRl39H4/oaoJxI/MZppIF1PQa/jVwxQgiw==","signatures":[{"sig":"MEQCIHLv1m9XjQAHrdR3AnFeULvbnn6Sl7TaKVkWh0/FR15GAiAjArrtZmjTZFzYf5XZK7955OFMOXODIxEyPxIHV5gt2g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":701372},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"46d8e8620854e7f6c4d2037ceed82719fd6f262e","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sarj","email":"nasr@sarj.ai"},"repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"@typescript-eslint/utils":"^8.63.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"latest","eslint":"latest","vitest":"latest","typescript":"latest","@types/node":"latest","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","@typescript-eslint/rule-tester":"latest"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_2.3.3_1784755915575_0.11102889117247683","host":"s3://npm-registry-packages-npm-production"}},"2.3.4":{"name":"@sarj/eslint-plugin","version":"2.3.4","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@2.3.4","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://github.com/sarj-ai/standards/tree/main/packages/typescript","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"f4790d995596091c2816792ae8d63e82b0604341","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-2.3.4.tgz","fileCount":8,"integrity":"sha512-QjABy9StvJrR5UOLcD3eJj1bHjtZi3Q1BnJmtu2u3z/2qAa3TeayTfQyIX9S45SUKF2H5mtS0cx69i1/bXH10Q==","signatures":[{"sig":"MEUCIBhCz4gKP2ZJIbOrtWplG8+8lMzbLTd3T86mlwbNaJM7AiEAsdSpgev6yK0rqLOvPuYUAv/j5wkJUUNunTwaAdaYCLc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":713598},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"b3c75dddb496ee7df42f030c822a90dff5036df5","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sarj","email":"nasr@sarj.ai"},"repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"@typescript-eslint/utils":"^8.63.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"latest","eslint":"latest","vitest":"latest","typescript":"latest","@types/node":"latest","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","@typescript-eslint/rule-tester":"latest"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_2.3.4_1784761606157_0.11205673652781889","host":"s3://npm-registry-packages-npm-production"}},"2.4.0":{"name":"@sarj/eslint-plugin","version":"2.4.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@2.4.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://github.com/sarj-ai/standards/tree/main/packages/typescript","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"a981c9ed5aff8f190c4b2e18d6b3215beab26e5a","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-2.4.0.tgz","fileCount":8,"integrity":"sha512-V8bd5GaunasGlqoCMSYcpd7b9j6Y3JayCmAu50UqQ+q3LyEJKK+IptSjFYJm5Jc3HMavIZcK8QX8ZgMK7aTi8w==","signatures":[{"sig":"MEUCIGAIrkBR4f5NkeaJBJVoZwdnFtalQKmUZ+SeHmT2tQ4CAiEAhOfUlF5IcqQwFZbG6npgkmCt7ueEYe53dxM2Vu0ZYcQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":847501},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"699ca528eb2ffaf758765e3f838e356c50612d2e","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sarj","email":"nasr@sarj.ai"},"repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"@typescript-eslint/utils":"^8.63.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"latest","eslint":"latest","vitest":"latest","typescript":"latest","@types/node":"latest","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","@typescript-eslint/rule-tester":"latest"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_2.4.0_1784765964148_0.09458561163293644","host":"s3://npm-registry-packages-npm-production"}},"2.4.1":{"name":"@sarj/eslint-plugin","version":"2.4.1","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@2.4.1","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://github.com/sarj-ai/standards/tree/main/packages/typescript","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"92504e2d28afd90a0d4a8fe93a0ca4b35941ab97","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-2.4.1.tgz","fileCount":8,"integrity":"sha512-2nDTXPKEH81pFqWRWwP8gb7oEP51mRwX+KA8xhtWbLQruQEHQFScl0S6fbXhG8IyrZ2xUOlB6kuixZZ0h66N/Q==","signatures":[{"sig":"MEQCIDiJdiN2xw9sBdmIPxv/i8P+RysFLdF1iLjfFoi2amNLAiB3m/TLVIe84HO+kkodI893oLzaq2oGlXrce7YtbxbSCw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":867239},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"1ba85c41a79d0f35e7bf38e8b23dfad1da513b93","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sarj","email":"nasr@sarj.ai"},"repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"@typescript-eslint/utils":"^8.65.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"latest","eslint":"latest","vitest":"latest","typescript":"latest","@types/node":"latest","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","@typescript-eslint/rule-tester":"latest"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_2.4.1_1784813953924_0.468952859957501","host":"s3://npm-registry-packages-npm-production"}},"2.5.0":{"name":"@sarj/eslint-plugin","version":"2.5.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@2.5.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://github.com/sarj-ai/standards/tree/main/packages/typescript","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"37ff376a97ad37810e425690ec03319e5a826c64","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-2.5.0.tgz","fileCount":8,"integrity":"sha512-KParwkjRxONnQRiyOrtF8U28WPcIdvF9VkbV5NPua3fao6mF3HEC9NJtDii9S5fY5hS03/n9J8JpAEoaFl/4Cw==","signatures":[{"sig":"MEUCIDovz8An+lIFTwItVuGitAIwGVbdwxS9EGR99FE83MhrAiEAtonAjXxKegQemObm0kH3w04ce/kHxBI8JfTqC9ro3Ec=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":879617},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"422fe58ca497867e1a0da47ddd22787b73cab923","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sarj","email":"nasr@sarj.ai"},"repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"@typescript-eslint/utils":"^8.65.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"latest","eslint":"latest","vitest":"latest","typescript":"latest","@types/node":"latest","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","@typescript-eslint/rule-tester":"latest"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_2.5.0_1784817767942_0.9104792908715422","host":"s3://npm-registry-packages-npm-production"}},"2.6.0":{"name":"@sarj/eslint-plugin","version":"2.6.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@2.6.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://github.com/sarj-ai/standards/tree/main/packages/typescript","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"2a79a054c1606b3d88ced255c75f726411bbe998","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-2.6.0.tgz","fileCount":8,"integrity":"sha512-j8hjByqjaJWOWxz/C2oVnVdvErAiVDANmpL2W3LDk8H18DMy3sgPg7rdFsXl05+x1AJQdbAWeVkeomCdYgG31w==","signatures":[{"sig":"MEQCIHT5GHRL0DKfd5TW79g9G8SY4yWuP8TTiPf3l6yRR/GqAiAlORlAMlr2m00CEzv0qzIo8cDBHY/7VKYe8cerz3plgw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":887861},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"a48822447cc5368c9c193a8ffae291d2a39083e7","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sarj","email":"nasr@sarj.ai"},"repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"@typescript-eslint/utils":"^8.65.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"latest","eslint":"latest","vitest":"latest","typescript":"latest","@types/node":"latest","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","@typescript-eslint/rule-tester":"latest"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_2.6.0_1784818076349_0.6874307757049052","host":"s3://npm-registry-packages-npm-production"}},"2.7.0":{"name":"@sarj/eslint-plugin","version":"2.7.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@2.7.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://github.com/sarj-ai/standards/tree/main/packages/typescript","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"06fc8eef84ec3e5e6b9f5964d2252249739d1155","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-2.7.0.tgz","fileCount":8,"integrity":"sha512-4VJSlDkjdKUnxaK5IkwguiKFjTxfWab/J6Wjt5KHdKgFf1kBcURA+uWA6vGAeoyHFLplKW+Srdvq5KfEev6aCA==","signatures":[{"sig":"MEUCIEg9JdAnE32EI2FMuvbajihlSorjuGdsF1Qs22BjmPP/AiEAuRk8OMtKoI2IGpn+wel4hG+ic4xpXPWszd3nGr0R9nE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":969295},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"d7dec9d32ee4a64079c7b1cd0802392f3f802709","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sarj","email":"nasr@sarj.ai"},"repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"@typescript-eslint/utils":"^8.65.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"latest","eslint":"latest","vitest":"latest","typescript":"latest","@types/node":"latest","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","@typescript-eslint/rule-tester":"latest"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_2.7.0_1784994958435_0.9954964944752807","host":"s3://npm-registry-packages-npm-production"}},"2.8.0":{"name":"@sarj/eslint-plugin","version":"2.8.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@2.8.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://github.com/sarj-ai/standards/tree/main/packages/typescript","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"e8d0ed8b967178aebc26132af7e7fdb236ec50d1","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-2.8.0.tgz","fileCount":8,"integrity":"sha512-TJ1YpM5x407aMUJr9DSlsTDM5IPWeH/L9KkUvdzWcdggIQQBcxfo/JeYX2aiMLtd6pZhU3dkYHDtSr1iw6vPyw==","signatures":[{"sig":"MEUCIBvqC17Fjs3GYozy4P9UyBlihhziOxsujHCQnoc0GWryAiEAipc67SikfgZlj0k4hj9tH7bhHP8KGomw13Wivi2Y8WE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1364866},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"aa6cd498d91b7f8d7728b02dfcdd9632fef0d4d8","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sarj","email":"nasr@sarj.ai"},"repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"@typescript-eslint/utils":"^8.65.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"latest","eslint":"latest","vitest":"latest","typescript":"latest","@types/node":"latest","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","@typescript-eslint/rule-tester":"latest"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_2.8.0_1785023387174_0.9277710890570048","host":"s3://npm-registry-packages-npm-production"}},"2.9.0":{"name":"@sarj/eslint-plugin","version":"2.9.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@2.9.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://github.com/sarj-ai/standards/tree/main/packages/typescript","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"e3ad0fa8cfe0c3de66bf396afddaa6f2a37b389d","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-2.9.0.tgz","fileCount":8,"integrity":"sha512-CGEepS8k/fpmlp7EBVm9EaNDfdScIhZu7ZTOjD+on0ebp90unwAyZIbi6eRmUVqw+Wa2Um3h+62I+VQ1nXSwjQ==","signatures":[{"sig":"MEUCIC14ipHWWF7iNKYx/0zUd+m4nbNc1usadby/iplvC0eoAiEAwCXDhvAyiClwdBBPDsz7/PoWt01WDR8IP7JCjYz3G9E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1487736},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"976e10da2544da527c6eb54f89b64e29a472ca06","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sarj","email":"nasr@sarj.ai"},"repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"@typescript-eslint/utils":"^8.65.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"latest","eslint":"latest","vitest":"latest","typescript":"latest","@types/node":"latest","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","@typescript-eslint/rule-tester":"latest"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_2.9.0_1785025769222_0.9050708489144335","host":"s3://npm-registry-packages-npm-production"}},"2.10.0":{"name":"@sarj/eslint-plugin","version":"2.10.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@2.10.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://github.com/sarj-ai/standards/tree/main/packages/typescript","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"85f58a5e6b6e86582d9289eddf8f795c671c7dfb","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-2.10.0.tgz","fileCount":8,"integrity":"sha512-gNl1rj5nDhidi7EfGLVrI6Aa7gjNFCxzTEzYo37jsfnl/smFwuf+gPrMPD2KZVoVEZF6drngzh3AvlTto/cYCQ==","signatures":[{"sig":"MEYCIQCvf8JExle6cckMjCx3tyC5XxI9UzZPmah6wgksDIzGDgIhAOn9QPz9mO302h7OTkVLkPwGdombuOcTzmeP+YQL6r2R","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1550693},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"65bb95b8ee21878ba38b12bb713fdc3c0447cba4","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sarj","email":"nasr@sarj.ai"},"repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"@typescript-eslint/utils":"^8.65.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"latest","eslint":"latest","vitest":"latest","typescript":"latest","@types/node":"latest","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","@typescript-eslint/rule-tester":"latest"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_2.10.0_1785029365923_0.9505976560784568","host":"s3://npm-registry-packages-npm-production"}},"2.11.0":{"name":"@sarj/eslint-plugin","version":"2.11.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@2.11.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://github.com/sarj-ai/standards/tree/main/packages/typescript","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"75e247f04ccf15df7b7443444cded82687ecbadb","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-2.11.0.tgz","fileCount":8,"integrity":"sha512-6s6zxHeIfQy9LWaXHqMaITpKBVXWAm9Je3qtMhuwxCUSbN7tCXMYixZKFdgBAmspVsBtwR5SKsGInfOPpOdJIQ==","signatures":[{"sig":"MEYCIQCgrZr0DrPK3HnKifKdgyfDWRUARmSxG0pM9uhETnZS7AIhAPfvZH+78422mMBFoegdSm6yvmcvnRQ/yDxCyxP6V44a","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1550749},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"9a1dc142b50364e990390dd9d24c5d04b9adf840","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sarj","email":"nasr@sarj.ai"},"repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"@typescript-eslint/utils":"^8.65.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"latest","eslint":"latest","vitest":"latest","typescript":"latest","@types/node":"latest","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","@typescript-eslint/rule-tester":"latest"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_2.11.0_1785030043102_0.16227856735981971","host":"s3://npm-registry-packages-npm-production"}},"2.12.0":{"name":"@sarj/eslint-plugin","version":"2.12.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@2.12.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://github.com/sarj-ai/standards/tree/main/packages/typescript","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"63eccbbbcde5bbc976a6ecebc0ba536fa7c93ff9","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-2.12.0.tgz","fileCount":8,"integrity":"sha512-vHaA8ZJEr+HYyvjMPPwMnNoJiWjYQ3wBvInVXzvlOq1Mj6NQu6k34kRkREgG6QGodAzVuPMVIuZw+zRIy8miVA==","signatures":[{"sig":"MEUCIQCv3oJgFKjQ4ULEbug5b71Bs6zFoO44iNpSV3y+PocwegIgPi/kLmxf7H8FungwZpSvtFVIpZFKHD+szlXfUfiAw/4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1739871},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"8cb1e708214d2b524e1a96972cfc93b4e79604d8","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sarj","email":"nasr@sarj.ai"},"repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"@typescript-eslint/utils":"^8.65.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"latest","eslint":"latest","vitest":"latest","typescript":"latest","@types/node":"latest","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","@typescript-eslint/rule-tester":"latest"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_2.12.0_1785066469315_0.36949488027940136","host":"s3://npm-registry-packages-npm-production"}},"2.12.1":{"name":"@sarj/eslint-plugin","version":"2.12.1","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@2.12.1","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://github.com/sarj-ai/standards/tree/main/packages/typescript","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"f9708e58f1eb5194c6d4a769c43a9faa2db68fef","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-2.12.1.tgz","fileCount":8,"integrity":"sha512-z9rM4GH4sGQRpGpcIgoCLo5xFoaPGOXDBXUfEkaeEZadSAXLub5NoMnoB2wp0AjXlk8TnV/jHrMOt3ZnIKV4sw==","signatures":[{"sig":"MEUCIGnoAXauanipteUy4hdO3dO188ifmP07CV3CM7Ap87DTAiEA5GAvwk8pmL+3JL2HDMlZOUBz3tmD5rYz0bx95rCW9q4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1763147},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"f42bcc47990b29452fce086a97c44e982fe96c45","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sarj","email":"nasr@sarj.ai"},"repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"@typescript-eslint/utils":"^8.65.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"latest","eslint":"latest","vitest":"latest","typescript":"latest","@types/node":"latest","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","@typescript-eslint/rule-tester":"latest"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_2.12.1_1785077150054_0.1374963557642388","host":"s3://npm-registry-packages-npm-production"}},"2.12.2":{"name":"@sarj/eslint-plugin","version":"2.12.2","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@2.12.2","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://github.com/sarj-ai/standards/tree/main/packages/typescript","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"b67b899924fb277bcd5423efd1e69ec0a9e16ea0","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-2.12.2.tgz","fileCount":8,"integrity":"sha512-R6xtC8PijiOp2q5dwlepTJjEJv96703nFZtvM8huVs9PprHLyEMIYX41YdM/N5Da3ZAz3prM9JQP/OK7xpQMhg==","signatures":[{"sig":"MEUCIQC4P3UKUrXH9u2CsK0zrgxIWJfc+v8Wp9gg7KDV4I5e0wIgeI3P1Dn7aWmhe5dTuKDmPVVHH7pM6jCUpE7iRzu25cc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1773339},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"de0b490a7a8e038f09e64a5582a51f258d48318c","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sarj","email":"nasr@sarj.ai"},"repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"@typescript-eslint/utils":"^8.65.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"latest","eslint":"latest","vitest":"latest","typescript":"latest","@types/node":"latest","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","@typescript-eslint/rule-tester":"latest"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_2.12.2_1785079148758_0.15800557353618117","host":"s3://npm-registry-packages-npm-production"}},"2.13.0":{"name":"@sarj/eslint-plugin","version":"2.13.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@2.13.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://github.com/sarj-ai/standards/tree/main/packages/typescript","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"a387a6decdc0b77f923ee486950e00a4d78ddbae","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-2.13.0.tgz","fileCount":8,"integrity":"sha512-S9d6qM/qtO7EmXpS7g/K+uoQpFJ3DpebhgSrP6msJzI1rewezY76OP0VLI2wh5zsKdTCC9mCp2kXfcLg09TPiA==","signatures":[{"sig":"MEUCIE3GeU/f9UtgLpvjLbk9PLRF+cRJU+dFrdlGGmutwb35AiEA8G9qHayNymL/HSlccQvbyXgDBBxxGFNz0XwAG5kR6OY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1952701},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"21aae7fd540def3efb1d894193d47befa2023267","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sarj","email":"nasr@sarj.ai"},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"@typescript-eslint/utils":"^8.65.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"latest","eslint":"latest","vitest":"latest","typescript":"latest","@types/node":"latest","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","@typescript-eslint/rule-tester":"latest"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_2.13.0_1785095714786_0.7725521821909829","host":"s3://npm-registry-packages-npm-production"}},"2.14.0":{"name":"@sarj/eslint-plugin","version":"2.14.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@2.14.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://github.com/sarj-ai/standards/tree/main/packages/typescript","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"4d69fc728c8c37814959551ae2fb4360bcb2b0ba","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-2.14.0.tgz","fileCount":8,"integrity":"sha512-zwpozqCmg5tlWnMwoE39d6vxbZSZJRr+gapFQO1QDU1lmxGNfoMnHOuuI77pnWA+zXMOuqreOl7i6dvQ4dfmmA==","signatures":[{"sig":"MEQCIC6EOtVWK2Dg9/fSIstArLOKHF7qkPdnH5c0MAjf57pIAiApe+iEt9jhX+oiEwToTppqfxQsyOvE5PicEKHP/yF7vw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1988159},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"3b69a955edbbc759500f39e2d824b7b56c200905","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sarj","email":"nasr@sarj.ai"},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"@typescript-eslint/utils":"^8.65.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"latest","eslint":"latest","vitest":"latest","typescript":"latest","@types/node":"latest","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","@typescript-eslint/rule-tester":"latest"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_2.14.0_1785154710883_0.9522903291390863","host":"s3://npm-registry-packages-npm-production"}},"2.15.0":{"name":"@sarj/eslint-plugin","version":"2.15.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@2.15.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://github.com/sarj-ai/standards/tree/main/packages/typescript","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"c623e9fb8f65e02aa7ecd5ac42df540a64585e8c","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-2.15.0.tgz","fileCount":8,"integrity":"sha512-GdGmpeW5Kae01oL/ppFb3i/J4z9T/VHsssVBkb9HsSRv+ZCpin6UABlVQZTB7aYlb96ONbycPJhkcsqvYd5vbg==","signatures":[{"sig":"MEUCIDdFZkpzZo+UJZTaUnvd7lROYLpbVBG2dD29Y91stuI9AiEAlaMmq/w0XNgqMo5JyrPYVbF8cBA154/aa4VbV74JVQU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2101768},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"2900c402d5edd6ec9481b5af2ef3233ec75a6283","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sarj","email":"nasr@sarj.ai"},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"@typescript-eslint/utils":"^8.65.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"latest","eslint":"latest","vitest":"latest","typescript":"latest","@types/node":"latest","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","@typescript-eslint/rule-tester":"latest"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_2.15.0_1785173277547_0.23785396272719317","host":"s3://npm-registry-packages-npm-production"}},"2.16.0":{"name":"@sarj/eslint-plugin","version":"2.16.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@2.16.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://github.com/sarj-ai/standards/tree/main/packages/typescript","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"9ae2b2bd6e4ed4c4dd17a47bfd753bea5c3bd2fc","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-2.16.0.tgz","fileCount":8,"integrity":"sha512-k1oFrI+IEyCxQb6cskKBHmcdNKK5YWj5ub0vCeaHwpERGwmAD3EbmDfJLdSEVQKcqq5tX6p7QrJuwgMVuKrQjA==","signatures":[{"sig":"MEUCIAn0Hkv4CYHVeV8ICITIr/+Jeqb6w864s5JG95KozE14AiEAqizHKmyazX372l1LmsdBIqjtXY3Gp8tUYQbeG1wSl9k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2158789},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"023f540a83cc71aaeb224680dfb05171767019d0","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sarj","email":"nasr@sarj.ai"},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"@typescript-eslint/utils":"^8.65.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"latest","eslint":"latest","vitest":"latest","typescript":"latest","@types/node":"latest","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","@typescript-eslint/rule-tester":"latest"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_2.16.0_1785334348473_0.4849170318374132","host":"s3://npm-registry-packages-npm-production"}},"2.17.0":{"name":"@sarj/eslint-plugin","version":"2.17.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@2.17.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://github.com/sarj-ai/standards/tree/main/packages/typescript","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"6b8c2f62765597acf43d032d57b6442fa34a44ac","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-2.17.0.tgz","fileCount":8,"integrity":"sha512-490Tm9iy2HLNKXxq5ZAFbO8QswsjQ5mskOkMLKhVXgAcduU/RIF5v2+Timc83ydNzVsp09+0jgyVZ4mMbQ/iSg==","signatures":[{"sig":"MEUCICEupF3RQFlFNvEJoxTt22tpopmJiEkM+7gbj/1D2CzXAiEA730GR0MklHnuvbgRU+qta3uWOR+jnh5yDbXe1Vo67jc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2260495},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"4a59ce345860642cc3f93d5e807c334fd490ca57","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sarj","email":"nasr@sarj.ai"},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"@typescript-eslint/utils":"^8.65.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"latest","eslint":"latest","vitest":"latest","typescript":"latest","@types/node":"latest","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","@typescript-eslint/rule-tester":"latest"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_2.17.0_1785427900928_0.7097334270594648","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"@sarj/eslint-plugin","version":"3.0.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@3.0.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://github.com/sarj-ai/standards/tree/main/packages/typescript","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"4d2be57bc71d23d00568e809dc8dd44260c1e157","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-3.0.0.tgz","fileCount":8,"integrity":"sha512-5k6pcXPIql0Tg4XX8ZGi4SG+seXiEuYMnBVPdeAQTVvNRVfSZEGjRgdTF8poYuEwDXs3dXP2J+A3Iv6OVSJzvQ==","signatures":[{"sig":"MEQCICmQk1oaUnl3dI4DVlI1TFWmsTdcVioehYS/u50kiDR5AiBHw6Y+kIDfAJxuPLQ112QBY7iiAmWnDlmDt10ilWh+Ig==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2095954},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"3f0d6f53a75ea7ebd5106174fc2c02411a14f89c","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sarj","email":"nasr@sarj.ai"},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"@typescript-eslint/utils":"^8.65.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"latest","eslint":"latest","vitest":"latest","typescript":"latest","@types/node":"latest","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","@typescript-eslint/rule-tester":"latest"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_3.0.0_1785441401582_0.8517290949756036","host":"s3://npm-registry-packages-npm-production"}},"4.0.0":{"name":"@sarj/eslint-plugin","version":"4.0.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@4.0.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://github.com/sarj-ai/standards/tree/main/packages/typescript","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"25724104d31fb7a7e9257ae7995f000504907da8","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-4.0.0.tgz","fileCount":8,"integrity":"sha512-MKAIwgXm+Bg8uj65LTHRzpy4Y8wtGZehGwo8e9TpSvpGbWXQe5AqMShAQyNWaYwuDaHZHRoc3l5jyHkfznRmbA==","signatures":[{"sig":"MEYCIQCRxFGUmWl9VCDC2bxzns1AR73isr7mbSDNfMi2nYoOsAIhAOemy4L+wgHZzEBQw0iYotqhFdwaAxsELFBoAAdbzbR1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2060646},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"27e2d1fc9f9be9f2cfcca7950308bd6297924e21","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sarj","email":"nasr@sarj.ai"},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"@typescript-eslint/utils":"^8.65.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"latest","eslint":"latest","vitest":"latest","typescript":"latest","@types/node":"latest","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","@typescript-eslint/rule-tester":"latest"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_4.0.0_1785472031429_0.03345739218797683","host":"s3://npm-registry-packages-npm-production"}},"4.1.0":{"name":"@sarj/eslint-plugin","version":"4.1.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@4.1.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://github.com/sarj-ai/standards/tree/main/packages/typescript","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"efbcd024f57c9dd4a62ce17f4a07ca08e02fe06f","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-4.1.0.tgz","fileCount":8,"integrity":"sha512-BZ3i5kGZIHiWMj7mNIEPJ9QMdt7jbAfkpmcMk/qXavlxz3yYks2bOkcIkxiw089il+LjkEOH4o7rDep15v++ig==","signatures":[{"sig":"MEQCIGokbm8oyuENcCboziOkY7xkY/5fq1i+m+ZkR/u5YIKIAiBooKQBct9qAgX7sapvyrHPprucQ6Eo4WeVynYcwoNY4g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2124998},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"d19425564e79b50660bc16ac7364b6d0a2f836f3","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sarj","email":"nasr@sarj.ai"},"overrides":{"esbuild":"^0.28.1","eslint-plugin-react":{"eslint":"$eslint"}},"repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"@typescript-eslint/utils":"^8.65.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"latest","eslint":"^10.8.0","vitest":"latest","typescript":"latest","@types/node":"latest","typescript-eslint":"^8.65.0","eslint-plugin-react":"^7.37.5","eslint-plugin-unicorn":"^72.0.0","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.0","@typescript-eslint/rule-tester":"latest","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_4.1.0_1785479163075_0.7870845007584826","host":"s3://npm-registry-packages-npm-production"}},"4.2.0":{"name":"@sarj/eslint-plugin","version":"4.2.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@4.2.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://github.com/sarj-ai/standards/tree/main/packages/typescript","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"adb2793fb61138de3eeec3d919f4ff5b74adefba","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-4.2.0.tgz","fileCount":8,"integrity":"sha512-mUamlei4RiiQJwFuV8vKvE3FdQs0u7q7oXDUnr0gKxfb77Z1AIK7dXOnIzTmKqty49MqvRxDG0jlJvEbrQjyVw==","signatures":[{"sig":"MEUCIFAnMVNmJ90ETmqIMXHnT59WSI8hA5MjwnQI7BSuI/9GAiEA83t8zcvVBOeexM1wUpRdYk0SPnPQsYvG3obuFkg65cg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2236435},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"c4c288752a48b1cc3388bf4278c275cb2e20686c","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sarj","email":"nasr@sarj.ai"},"overrides":{"esbuild":"^0.28.1","eslint-plugin-react":{"eslint":"$eslint"}},"repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"@typescript-eslint/utils":"^8.65.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"latest","eslint":"^10.8.0","vitest":"latest","typescript":"latest","@types/node":"latest","typescript-eslint":"^8.65.0","eslint-plugin-react":"^7.37.5","eslint-plugin-unicorn":"^72.0.0","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.0","@typescript-eslint/rule-tester":"latest","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_4.2.0_1785479513441_0.6355383521242479","host":"s3://npm-registry-packages-npm-production"}},"5.0.0":{"name":"@sarj/eslint-plugin","version":"5.0.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@5.0.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://github.com/sarj-ai/standards/tree/main/packages/typescript","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"a91c803cf9f25faa54b2498d5747a0cfe36e79f3","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-5.0.0.tgz","fileCount":8,"integrity":"sha512-xz9U5F0+BOGBqe+mV62a2bDcaSjwsslcM6zYHMNBj2olmLmUygZ16nZzDh/fpucS7gSFYabGDh83L1hSmWYaXQ==","signatures":[{"sig":"MEUCIFSEo3aQCjDnyNBFhfAeK5v6jaE+Yw+H+ayCQiJ704hiAiEA2Dg7itMH4C1+ZHbDIGruRVMiwIRYf5oJRDJjoUJ10M0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2452413},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"731636943fbdd73644306cdbb6dfdb61c057a2ed","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sarj","email":"nasr@sarj.ai"},"overrides":{"esbuild":"^0.28.1","eslint-plugin-react":{"eslint":"$eslint"}},"repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"@typescript-eslint/utils":"^8.65.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"latest","eslint":"^10.8.0","vitest":"latest","typescript":"latest","@types/node":"latest","typescript-eslint":"^8.65.0","eslint-plugin-react":"^7.37.5","eslint-plugin-unicorn":"^72.0.0","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.0","@typescript-eslint/rule-tester":"latest","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_5.0.0_1785487146069_0.5170824537445418","host":"s3://npm-registry-packages-npm-production"}},"5.1.0":{"name":"@sarj/eslint-plugin","version":"5.1.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@5.1.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://github.com/sarj-ai/standards/tree/main/packages/typescript","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"626938e183b40a9d3180eae7660c0d98ad37a8dc","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-5.1.0.tgz","fileCount":8,"integrity":"sha512-tTD/o7sCzuZt30scGV8J8sHsUKAm8ju+I6zTIKaRfZuSviODu8hVUTqFOBaDFfEwoTvCaQVO+QgMKYpIYbsUHA==","signatures":[{"sig":"MEYCIQDUShZA5iR2XcusJiqSUnVZv4AtWoVxTPwAkShpcH1PRgIhAMOAJ2jrq2XAtRCTDzebAupMqypk0fOZxh3KAP1HIJh3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2516896},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"94707c315ca04b7b9353081cc9baa89e661b5b56","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sarj","email":"nasr@sarj.ai"},"overrides":{"esbuild":"^0.28.1","eslint-plugin-react":{"eslint":"$eslint"}},"repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"@typescript-eslint/utils":"^8.65.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"latest","eslint":"^10.8.0","vitest":"latest","typescript":"latest","@types/node":"latest","typescript-eslint":"^8.65.0","eslint-plugin-react":"^7.37.5","eslint-plugin-unicorn":"^72.0.0","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.0","@typescript-eslint/rule-tester":"latest","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_5.1.0_1785487567155_0.2852463589621548","host":"s3://npm-registry-packages-npm-production"}},"6.0.0":{"name":"@sarj/eslint-plugin","version":"6.0.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@6.0.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://github.com/sarj-ai/standards/tree/main/packages/typescript","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"8480f976488fac0020d3ea3a46c8ae32c7110cd5","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-6.0.0.tgz","fileCount":8,"integrity":"sha512-TX1g7V62p8gqQmHixRMg08dtKHYkVQSN5K+UZR0rR1b6dawJOv1EJFtVgD8kPv52ybeRm7O4ALvEbqleqsocMw==","signatures":[{"sig":"MEQCIGb0un5t8ulDjvDb9xMfrToVJU6b8tge7ck0SwilBvDzAiAEfds1nIEbJ2TtWgJrg3d+ePBjIDl1an20y7EfRTm5aA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2520036},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"575f865366d1dc730380ecd8cd9e8b679d73c9fe","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sarj","email":"nasr@sarj.ai"},"overrides":{"esbuild":"^0.28.1","eslint-plugin-react":{"eslint":"$eslint"}},"repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"@typescript-eslint/utils":"^8.65.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"latest","eslint":"^10.8.0","vitest":"latest","typescript":"latest","@types/node":"latest","typescript-eslint":"^8.65.0","eslint-plugin-react":"^7.37.5","eslint-plugin-unicorn":"^72.0.0","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.0","@typescript-eslint/rule-tester":"latest","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_6.0.0_1785489838314_0.3076947159571115","host":"s3://npm-registry-packages-npm-production"}},"6.1.0":{"name":"@sarj/eslint-plugin","version":"6.1.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@6.1.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://github.com/sarj-ai/standards/tree/main/packages/typescript","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"7b3b14d572238aaa678c9af394bcdc1974f0cc00","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-6.1.0.tgz","fileCount":8,"integrity":"sha512-+F049EjDv5JXMuE1+66jjmpWX0LMYWmGjmtruj6cTr5EAJmJtUS7ilsn/fUHN2WbEeOhMa12NoRsfvhGELbYow==","signatures":[{"sig":"MEYCIQCX43UaQ36IPG5oKEd1A8HxGEzaDPOTf+kgTOO/lnq7CgIhAOT1uwHyZyVzJTRE9lAAOjEU78DyMm6p9S8a+ke0lAAz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2595285},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"6a88cc24104c0eee7c44247b0c8238dd6bd6e661","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sarj","email":"nasr@sarj.ai"},"overrides":{"esbuild":"^0.28.1","eslint-plugin-react":{"eslint":"$eslint"}},"repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"@typescript-eslint/utils":"^8.65.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"latest","eslint":"^10.8.0","vitest":"latest","typescript":"latest","@types/node":"latest","eslint-plugin-zod":"^4.9.0","typescript-eslint":"^8.65.0","eslint-plugin-react":"^7.37.5","eslint-plugin-unicorn":"^72.0.0","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.0","@typescript-eslint/rule-tester":"latest","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_6.1.0_1785490233130_0.7416741967085723","host":"s3://npm-registry-packages-npm-production"}},"7.0.0":{"name":"@sarj/eslint-plugin","version":"7.0.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@7.0.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://github.com/sarj-ai/standards/tree/main/packages/typescript","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"45940df8803b254ab01c5902f37850e314e7310f","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-7.0.0.tgz","fileCount":8,"integrity":"sha512-vztHSGhmsdNDLzz2xwR0lMzcJPD0Ej4RD3596Rcw4hHX3+bsGtRvN4JtTT2vdzAj0z3oAeoYexqgZxvlzPPOPQ==","signatures":[{"sig":"MEYCIQCn0kjkHvKXSaGZYUW89B3xLRaf/Rqf8hlS5MdPs4C5QQIhAIpZI5EK+pTR38Q2YxeRNPwESMBkJCuvwFRgxqGBkW2g","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2156918},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"11e0b5dbfd4599d7c8a6356920c5d6dfa5a8c59d","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sarj","email":"nasr@sarj.ai"},"overrides":{"esbuild":"^0.28.1","eslint-plugin-react":{"eslint":"$eslint"}},"repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"@typescript-eslint/utils":"^8.65.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"latest","eslint":"^10.8.0","vitest":"latest","typescript":"latest","@types/node":"latest","eslint-plugin-zod":"^4.9.0","typescript-eslint":"^8.65.0","eslint-plugin-react":"^7.37.5","eslint-plugin-unicorn":"^72.0.0","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.0","@typescript-eslint/rule-tester":"latest","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_7.0.0_1785510885633_0.8060536462743721","host":"s3://npm-registry-packages-npm-production"}},"7.1.0":{"name":"@sarj/eslint-plugin","version":"7.1.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@7.1.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://github.com/sarj-ai/standards/tree/main/packages/typescript","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"a81dd9b13b51ca825ebbbd74a7deb9f59356d242","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-7.1.0.tgz","fileCount":8,"integrity":"sha512-ef5JEpMxTJK4YqGpTfVtDOo7q7HjwhICE/wVHlRAYvBzyNaRTsHZRia6nasIWEp2HHhYNxpqXZxgarrUvXpxWA==","signatures":[{"sig":"MEUCIBRSoxwtXx7SFGP19444CArKJ1THpWSmZ/J/wICjuc5nAiEA7+cfhUc/qWlf/9Fv/OVZR2a6Q9ip7D4jhvpQgq+r6aI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2199956},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"137bc0127d8382545f7491e0a6b407aeb9b7a75b","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sarj","email":"nasr@sarj.ai"},"overrides":{"esbuild":"^0.28.1","eslint-plugin-react":{"eslint":"$eslint"}},"repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"@typescript-eslint/utils":"^8.65.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"latest","eslint":"^10.8.0","vitest":"latest","typescript":"latest","@types/node":"latest","eslint-plugin-zod":"^4.9.0","typescript-eslint":"^8.65.0","eslint-plugin-react":"^7.37.5","eslint-plugin-unicorn":"^72.0.0","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.0","@typescript-eslint/rule-tester":"latest","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_7.1.0_1785513990769_0.8974525805477791","host":"s3://npm-registry-packages-npm-production"}},"8.0.0":{"name":"@sarj/eslint-plugin","version":"8.0.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@8.0.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://github.com/sarj-ai/standards/tree/main/packages/typescript","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"9d42270b57f2d3f6374c0f0b19747f99c04d03ab","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-8.0.0.tgz","fileCount":8,"integrity":"sha512-enRLJMlqbxJw0KpyHa4gZ7tnYmWCFstajMQQFluhlOgTeU50ZeLF6ka1nG01zQ3xD1Y3LSt+NtIRTJ8ylknbyA==","signatures":[{"sig":"MEUCICz5gmQS383Vr5rfar0SaZ/AG2Otpq2t8yYXKOItABLtAiEA+Ya8QVxT2ODLlmEnHdvYATzHmX9jgn4DBTqy4/C3LtU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2287828},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"8cbb3f8649169016d3eb586d8b7da07129b38556","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sarj","email":"nasr@sarj.ai"},"overrides":{"esbuild":"^0.28.1","eslint-plugin-react":{"eslint":"$eslint"}},"repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"@typescript-eslint/utils":"^8.65.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"latest","eslint":"^10.8.0","vitest":"latest","typescript":"latest","@types/node":"latest","eslint-plugin-zod":"^4.9.0","typescript-eslint":"^8.65.0","eslint-plugin-react":"^7.37.5","eslint-plugin-unicorn":"^72.0.0","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.0","@typescript-eslint/rule-tester":"latest","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_8.0.0_1785516215214_0.2031522006956692","host":"s3://npm-registry-packages-npm-production"}},"9.0.0":{"name":"@sarj/eslint-plugin","version":"9.0.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@9.0.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://github.com/sarj-ai/standards/tree/main/packages/typescript","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"038abd15eb626c9d8c63930353bcea7ce6bc3205","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-9.0.0.tgz","fileCount":8,"integrity":"sha512-ZHv8m63VNB9jjzYmRFa6xXkr2prQaeVjcv+Ia0TRGHHXrTaTByzZdCeEuKCD1TNIB0DpN0frCPfuZW9cPxithA==","signatures":[{"sig":"MEQCIHIz2h+eMjoZilUFOZIRqIyOnQSlxlSfreP+bLrBN/e/AiBc7arOSHAi3xfNaoCJ5lM8SNGI69wtvh49FqBLdsBPTw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2284411},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"41595f6a402f8225def7bd0404e8dd9583d0da14","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sarj","email":"nasr@sarj.ai"},"overrides":{"esbuild":"^0.28.1","eslint-plugin-react":{"eslint":"$eslint"}},"repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"@typescript-eslint/utils":"^8.65.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"latest","eslint":"^10.8.0","vitest":"latest","typescript":"latest","@types/node":"latest","eslint-plugin-zod":"^4.9.0","typescript-eslint":"^8.65.0","eslint-plugin-react":"^7.37.5","eslint-plugin-unicorn":"^72.0.0","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.0","@typescript-eslint/rule-tester":"latest","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_9.0.0_1785517102966_0.7646848449344226","host":"s3://npm-registry-packages-npm-production"}},"9.1.0":{"name":"@sarj/eslint-plugin","version":"9.1.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@9.1.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://github.com/sarj-ai/standards/tree/main/packages/typescript","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"0bea52e11b973b0ef77536015dba854d309f71cc","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-9.1.0.tgz","fileCount":8,"integrity":"sha512-bEPiYQihlJezFEYVOJkLCbwaUnR80JyOvCAaitFBjn2TdQNCsc9U4AqqrNV6uyqCngzp7O0fOQBzFBGmYtOqEw==","signatures":[{"sig":"MEUCIQCu4rTmt8bPlh4YF/ztVE2Ecoecwf7KnOfOuYIXvDgMRQIgGKFC917tVunWysPenx1eaEs/UunlxiOJCSdSPL7rQFY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2316645},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"cdd825394b60bf25e2407c3386d80f0ace02b7e3","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sarj","email":"nasr@sarj.ai"},"overrides":{"esbuild":"^0.28.1","eslint-plugin-react":{"eslint":"$eslint"}},"repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"@typescript-eslint/utils":"^8.65.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"latest","eslint":"^10.8.0","vitest":"latest","typescript":"latest","@types/node":"latest","eslint-plugin-zod":"^4.9.0","typescript-eslint":"^8.65.0","eslint-plugin-react":"^7.37.5","eslint-plugin-unicorn":"^72.0.0","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.0","@typescript-eslint/rule-tester":"latest","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_9.1.0_1785517515377_0.6689580647253075","host":"s3://npm-registry-packages-npm-production"}},"9.2.0":{"name":"@sarj/eslint-plugin","version":"9.2.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@9.2.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://github.com/sarj-ai/standards/tree/main/packages/typescript","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"6f558cd9b876222e3e45c833ab25c855f65f7e2b","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-9.2.0.tgz","fileCount":8,"integrity":"sha512-qWIAEDWnOqKrYzXvOnGVE9oEOWcCjRCg5JKiNClufZFd56ev+cFX9uQdhlrjx0OBRDj+fXBPv0wkr7PkgZFs0g==","signatures":[{"sig":"MEUCIQCuuCv34cT/0O508pPzTdMvbtlKXMt43j9xGMeWD1oqJAIgCCwgT2hU0FVCLVpNydO+mxoQRKgoz0UKx4XGyB2uOso=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2310643},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"372034056252225b621750c1d58032412b4057ca","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sarj","email":"nasr@sarj.ai"},"overrides":{"esbuild":"^0.28.1","eslint-plugin-react":{"eslint":"$eslint"}},"repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"@typescript-eslint/utils":"^8.65.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"latest","eslint":"^10.8.0","vitest":"latest","typescript":"latest","@types/node":"latest","eslint-plugin-zod":"^4.9.0","typescript-eslint":"^8.65.0","eslint-plugin-react":"^7.37.5","eslint-plugin-unicorn":"^72.0.0","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.0","@typescript-eslint/rule-tester":"latest","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_9.2.0_1785518327146_0.6619587263865963","host":"s3://npm-registry-packages-npm-production"}},"9.3.0":{"name":"@sarj/eslint-plugin","version":"9.3.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@9.3.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://github.com/sarj-ai/standards/tree/main/packages/typescript","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"8cf6ed3e37f488460fc8454d81c1827704f76d56","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-9.3.0.tgz","fileCount":8,"integrity":"sha512-JvekivHoWMt7yW9Zv89dYYO3iodw6faVGOjVah7v0q5nAnKvFimvAyPXTEG6TIbs89BTIgjBC3pBte0+hUl2Qw==","signatures":[{"sig":"MEUCIBFqQCFFsjQGEslWyWlDj7lo+fBKLXQaOffiAyurOF2GAiEAqcEJc9UN8rW8gmoZMe6hFbnDfwlGVpEjt8sglkh5tBA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2320023},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"8c4643f6a5ba370307a4d5b8fa97be5448b91ec1","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sarj","email":"nasr@sarj.ai"},"overrides":{"esbuild":"^0.28.1","eslint-plugin-react":{"eslint":"$eslint"}},"repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"@typescript-eslint/utils":"^8.65.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"latest","eslint":"^10.8.0","vitest":"latest","typescript":"latest","@types/node":"latest","eslint-plugin-zod":"^4.9.0","typescript-eslint":"^8.65.0","eslint-plugin-react":"^7.37.5","eslint-plugin-unicorn":"^72.0.0","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.0","@typescript-eslint/rule-tester":"latest","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_9.3.0_1785525016607_0.1898555892135636","host":"s3://npm-registry-packages-npm-production"}},"9.4.0":{"name":"@sarj/eslint-plugin","version":"9.4.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@9.4.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://github.com/sarj-ai/standards/tree/main/packages/typescript","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"d38b0dc5cf0bc4b857f5159c4bacd7a04b1309cb","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-9.4.0.tgz","fileCount":8,"integrity":"sha512-5UqnhaTvCH8GkQ8wDOi9m5FMYFgalYFc2Py4HWQ5lk0nbXJ/ND8xLTu/431Z80KmBpEG4fce8VGw4weRiW4BTQ==","signatures":[{"sig":"MEQCIGAdH0CqlJrHBazWhOq5MCyiD3q6rblk0oPMgkhkEUPZAiBgx3Nr5abKRUCgd1BoYzAPv2h5DygFcU13iUhMECIgug==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2360976},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"fd8f6ff6b46d7ce2191c809ac94b4616e5a13430","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sarj","email":"nasr@sarj.ai"},"overrides":{"esbuild":"^0.28.1","eslint-plugin-react":{"eslint":"$eslint"}},"repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"@typescript-eslint/utils":"^8.65.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"latest","eslint":"^10.8.0","vitest":"latest","typescript":"latest","@types/node":"latest","eslint-plugin-zod":"^4.9.0","typescript-eslint":"^8.65.0","eslint-plugin-react":"^7.37.5","eslint-plugin-unicorn":"^72.0.0","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.0","@typescript-eslint/rule-tester":"latest","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_9.4.0_1785525683399_0.8702236544596924","host":"s3://npm-registry-packages-npm-production"}},"9.5.0":{"name":"@sarj/eslint-plugin","version":"9.5.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@9.5.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://github.com/sarj-ai/standards/tree/main/packages/typescript","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"b61ecdf57189c47daef5a37832bfadbe24c3e5a0","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-9.5.0.tgz","fileCount":8,"integrity":"sha512-QN88sGShQCiMCY8K526bDYrglJwZftk9jGxnzAw0ML09qIn5rb2k9Jrqr2QjDZWXHJMWrZQIjJProFaIMAb8zg==","signatures":[{"sig":"MEQCIH3wRV3fbjJCzOR9Du0lqjeKMVYdVg9TB2lvYZAeljcQAiBMlTBPuWtXBMh+MSfaVE0LYYzN9m7iqmnRnWRMgHq6sw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2361008},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"9d4d2d3ef01d48fd9cdfec07070255a04c3e940d","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sarj","email":"nasr@sarj.ai"},"overrides":{"esbuild":"^0.28.1","eslint-plugin-react":{"eslint":"$eslint"}},"repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"@typescript-eslint/utils":"^8.65.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"latest","eslint":"^10.8.0","vitest":"latest","typescript":"latest","@types/node":"latest","@eslint/compat":"^2.1.0","eslint-plugin-zod":"^4.9.0","typescript-eslint":"^8.65.0","eslint-plugin-react":"^7.37.5","eslint-plugin-unicorn":"^72.0.0","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.0","@typescript-eslint/rule-tester":"latest","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_9.5.0_1785526607372_0.5146038020986161","host":"s3://npm-registry-packages-npm-production"}},"9.6.0":{"name":"@sarj/eslint-plugin","version":"9.6.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@9.6.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://github.com/sarj-ai/standards/tree/main/packages/typescript","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"5d1890105ecf8718c0ff37a72f4593bc4101115f","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-9.6.0.tgz","fileCount":8,"integrity":"sha512-GUU7MQR9wYB5oQ9Lrsx3YN2D+N11YVGAFSA7bm9NvFOdHbaPShiOjnEwmo1uAu7glAXJsjqZUcUMvyRGeNR28A==","signatures":[{"sig":"MEYCIQCyJyvBnCQpwgx9dvB6TfPQanzxiLjvwapndbKDX8L9xAIhAL9MhJBknoxm+/c1x68qxibxP9VKrt2cfge658B6l1zp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2399708},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"5ceda7815007a8789f3d5c4296af301865546740","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sarj","email":"nasr@sarj.ai"},"overrides":{"esbuild":"^0.28.1","eslint-plugin-react":{"eslint":"$eslint"}},"repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"@typescript-eslint/utils":"^8.65.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"latest","eslint":"^10.8.0","vitest":"latest","typescript":"latest","@types/node":"latest","@eslint/compat":"^2.1.0","eslint-plugin-zod":"^4.9.0","typescript-eslint":"^8.65.0","eslint-plugin-react":"^7.37.5","eslint-plugin-unicorn":"^72.0.0","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.0","@typescript-eslint/rule-tester":"latest","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_9.6.0_1785631033834_0.806003182609909","host":"s3://npm-registry-packages-npm-production"}},"9.7.0":{"name":"@sarj/eslint-plugin","version":"9.7.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@9.7.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://github.com/sarj-ai/standards/tree/main/packages/typescript","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"157264d0a4ee761be146ed4eb045b568aae46995","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-9.7.0.tgz","fileCount":8,"integrity":"sha512-T452LcAtVNA4Fp0jpQ0mWt/msNr3o4zPDa4IsDWxiiyACc/qC3KM1Pqc1mWIjltNY9MfeNWd/G9orGcdVDG0Hw==","signatures":[{"sig":"MEYCIQD5UGeG6bYkyl+STx7EqnwrY6bzTM/AmoVVmYLYue9T4gIhAL5Ba9R9j8ypGUM3CRbUps4VSwAkQUADQLc1azcPZnJm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2368580},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"31cc91f33fcd63d208fbc591a1c2f133bc50dfd9","scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sarj","email":"nasr@sarj.ai"},"overrides":{"esbuild":"^0.28.1","eslint-plugin-react":{"eslint":"$eslint"}},"repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"@typescript-eslint/utils":"^8.65.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"latest","eslint":"^10.8.0","vitest":"latest","@eslint/js":"10.0.1","typescript":"latest","@types/node":"latest","@eslint/compat":"^2.1.0","eslint-plugin-zod":"^4.9.0","typescript-eslint":"^8.65.0","eslint-plugin-react":"^7.37.5","eslint-plugin-unicorn":"^72.0.0","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.0","@typescript-eslint/rule-tester":"latest","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_9.7.0_1785763540142_0.04580374883367955","host":"s3://npm-registry-packages-npm-production"}},"9.7.1":{"name":"@sarj/eslint-plugin","version":"9.7.1","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@9.7.1","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://github.com/sarj-ai/standards/tree/main/packages/typescript","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"016c2869d2fe887e8952980210dceef28cfe378a","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-9.7.1.tgz","fileCount":8,"integrity":"sha512-VhAWi0/3DCgegz+16iaW80lWVjZFnvKijpysEodO8IkLvZFl0UmHd6Z0HTjnyYvrICYX3qyzZU5JnOEdGveMBg==","signatures":[{"sig":"MEQCIAi88naZuXuspxWxJJ55/fauOg4X1pUBwBf0zq5kFcD0AiANIu1TRYAC9vgwQc6e5gmT/ElzYrHjBU8RiBJU1xrcSQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2368853},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"eae95b19c7203ed87dde508c1ecb9de46bf84d18","scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sarj","email":"nasr@sarj.ai"},"overrides":{"esbuild":"^0.28.1","eslint-plugin-react":{"eslint":"$eslint"}},"repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"@typescript-eslint/utils":"^8.65.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"latest","eslint":"^10.8.0","vitest":"latest","@eslint/js":"10.0.1","typescript":"latest","@types/node":"latest","@eslint/compat":"^2.1.0","eslint-plugin-zod":"^4.9.0","typescript-eslint":"^8.65.0","eslint-plugin-react":"^7.37.5","eslint-plugin-unicorn":"^72.0.0","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.0","@typescript-eslint/rule-tester":"latest","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_9.7.1_1785845576438_0.7785411922700938","host":"s3://npm-registry-packages-npm-production"}},"9.8.0":{"name":"@sarj/eslint-plugin","version":"9.8.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@9.8.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://github.com/sarj-ai/standards/tree/main/packages/typescript","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"e502ff87d5bf935148e52028386c4f59f333533c","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-9.8.0.tgz","fileCount":8,"integrity":"sha512-xUEGVpiFNMxKDDzFfAezBrnIKxXDznPhzmiHIzHU15Ws3EzfuDXit0z3epWZUKQo2GlGWymrB0Z2eLLmO2NsyQ==","signatures":[{"sig":"MEUCIQCHWQyChzclmc+NeUJuZvjnCTh3giwVxrA/5quhSBhVggIgfYaLhA5Z9IA8vhMYrmoa+pKj92qPwtH6wrT/dDePoQg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2419677},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"ee43171897dd60ad4a781bead31911463f091cb5","scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sarj","email":"nasr@sarj.ai"},"overrides":{"esbuild":"^0.28.1","eslint-plugin-react":{"eslint":"$eslint"}},"repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"@typescript-eslint/utils":"^8.65.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"latest","eslint":"^10.8.0","vitest":"latest","@eslint/js":"10.0.1","typescript":"latest","@types/node":"latest","@eslint/compat":"^2.1.0","eslint-plugin-zod":"^4.9.0","typescript-eslint":"^8.65.0","eslint-plugin-react":"^7.37.5","eslint-plugin-unicorn":"^72.0.0","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.0","@typescript-eslint/rule-tester":"latest","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_9.8.0_1785854724922_0.8338908379344987","host":"s3://npm-registry-packages-npm-production"}},"9.9.0":{"name":"@sarj/eslint-plugin","version":"9.9.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@9.9.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://github.com/sarj-ai/standards/tree/main/packages/typescript","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"2af29421a9c3d8906ba99be4168ccf91a371a1d2","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-9.9.0.tgz","fileCount":8,"integrity":"sha512-LJoadLNPbSwkHFXGj9VwWwuzsO3R31zqKnXsMDBu26Om7y8/vmH1mvmSZ0MBNeeaPw660GCjbejGcfeuB0/2yg==","signatures":[{"sig":"MEYCIQD1Ergl3ghP0BkdIM0e9YgPhzsZT2oOo2v/Pwut9tm4ewIhAKPIC/LhbZP7/wBT0RYI9IZv9ipfkSCAPfp6QUlMHUNZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2455024},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"f990925cb08cccac6e1b094131cc9d314d456c08","scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sarj","email":"nasr@sarj.ai"},"overrides":{"esbuild":"^0.28.1","eslint-plugin-react":{"eslint":"$eslint"}},"repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"@typescript-eslint/utils":"^8.65.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"latest","eslint":"^10.8.0","vitest":"latest","@eslint/js":"10.0.1","typescript":"latest","@types/node":"latest","@eslint/compat":"^2.1.0","eslint-plugin-zod":"^4.9.0","typescript-eslint":"^8.65.0","eslint-plugin-react":"^7.37.5","eslint-plugin-unicorn":"^72.0.0","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.0","@typescript-eslint/rule-tester":"latest","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_9.9.0_1785865125858_0.8088877797591836","host":"s3://npm-registry-packages-npm-production"}},"9.10.0":{"name":"@sarj/eslint-plugin","version":"9.10.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@9.10.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://github.com/sarj-ai/standards/tree/main/packages/typescript","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"755703f3aedd6e816582f644f357c11c91390418","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-9.10.0.tgz","fileCount":8,"integrity":"sha512-Tl2NM8sbmneOO/Ss5fLGy/BS5NMzctzPTQJQwMcfw7f0Cet32COtdo+v7dll3HIwcIsGK1MRUFMjeYPNS75ssw==","signatures":[{"sig":"MEUCIQCqCg0fd7/ZHZ1kCJ6uJw/UXGdykzMGlCh9kxZZzu20dgIgCA7UQoeZTYeS6cNVQHUpWZ/Fq7Jh6FVzdHyCgZi9LiI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2481260},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"b12e9d7d474193d38f3ab86e47eca87a6ec93398","scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sarj","email":"nasr@sarj.ai"},"overrides":{"esbuild":"^0.28.1","eslint-plugin-react":{"eslint":"$eslint"}},"repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"@typescript-eslint/utils":"^8.65.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"latest","eslint":"^10.8.0","vitest":"latest","@eslint/js":"10.0.1","typescript":"latest","@types/node":"latest","@eslint/compat":"^2.1.0","eslint-plugin-zod":"^4.9.0","typescript-eslint":"^8.65.0","eslint-plugin-react":"^7.37.5","eslint-plugin-unicorn":"^72.0.0","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.0","@typescript-eslint/rule-tester":"latest","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_9.10.0_1785867898765_0.3968284497614112","host":"s3://npm-registry-packages-npm-production"}},"9.11.0":{"name":"@sarj/eslint-plugin","version":"9.11.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@9.11.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://github.com/sarj-ai/standards/tree/main/packages/typescript","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"1c2a3b5490c50215e88dac6f11efad7bb0374eff","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-9.11.0.tgz","fileCount":8,"integrity":"sha512-oSlYzvg9i3VImT8T2s2dFIg72NRHDEjZuVnR5guhPCfPLIcsmIDzhILWiyUhdBpLsLYRujw3qYGKq9bb5kF8FQ==","signatures":[{"sig":"MEYCIQDnn6MBbA60YJqb4J4yfoJgzyYuG1JN6dnHyBHwSXVS/QIhAK2vZZiT2VtvhoH3QMC2xmwIBc2EaKq2RRZ7RTdmMqZT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2482985},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"e71f50dcfa26676bf4e1f83ddb80fded4f1eca60","scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sarj","email":"nasr@sarj.ai"},"overrides":{"esbuild":"^0.28.1","eslint-plugin-react":{"eslint":"$eslint"}},"repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"@typescript-eslint/utils":"^8.65.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"latest","eslint":"^10.8.0","vitest":"latest","@eslint/js":"10.0.1","typescript":"latest","@types/node":"latest","@eslint/compat":"^2.1.0","eslint-plugin-zod":"^4.9.0","typescript-eslint":"^8.65.0","eslint-plugin-react":"^7.37.5","eslint-plugin-unicorn":"^72.0.0","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.0","@typescript-eslint/rule-tester":"latest","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_9.11.0_1785902217375_0.5600435421809185","host":"s3://npm-registry-packages-npm-production"}},"9.12.1":{"name":"@sarj/eslint-plugin","version":"9.12.1","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@9.12.1","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://github.com/sarj-ai/standards/tree/main/packages/typescript","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"dd60e34fe6add7cb8e5e5b7f58ceb684c93ac359","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-9.12.1.tgz","fileCount":8,"integrity":"sha512-1uGMIeg2KK8PyIRjv95lnRsLLu9PstcFpdQosAH+ilToUqEnzPCI0CR5ksuVHLZdrG6HPqvPllr2iInuEAwdsA==","signatures":[{"sig":"MEQCIBcCJ6QVvyCutiT/4ii0VlBsf2wU9l0XNq31vIX1QhnEAiA/wr19q3dwEJ/EweISU67zo0i+0+uKWuY3nXrr+mQtVw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@9.12.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2514896},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/sarj-eslint-plugin-9.12.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2ff66eee-25bb-4fd9-8165-71cbf8112376"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/sarj-eslint-plugin-9.12.1.tgz","overrides":{"esbuild":"^0.28.1","eslint-plugin-react":{"eslint":"$eslint"}},"_integrity":"sha512-1uGMIeg2KK8PyIRjv95lnRsLLu9PstcFpdQosAH+ilToUqEnzPCI0CR5ksuVHLZdrG6HPqvPllr2iInuEAwdsA==","repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.19.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","allowScripts":{"esbuild@0.28.1":true,"fsevents@2.3.3":true},"dependencies":{"@typescript-eslint/utils":"^8.65.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.19.0","devDependencies":{"tsup":"latest","eslint":"^10.8.0","vitest":"latest","@eslint/js":"10.0.1","typescript":"latest","@types/node":"latest","@eslint/compat":"^2.1.0","eslint-plugin-zod":"^4.9.0","typescript-eslint":"^8.65.0","eslint-plugin-react":"^7.37.5","eslint-plugin-unicorn":"^72.0.0","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.0","@typescript-eslint/rule-tester":"latest","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_9.12.1_1785948789662_0.9031527082363588","host":"s3://npm-registry-packages-npm-production"}},"9.13.0":{"name":"@sarj/eslint-plugin","version":"9.13.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@9.13.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://github.com/sarj-ai/standards/tree/main/packages/typescript","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"8ed2fc3bafc8946d2382b84bc52be616778c5d94","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-9.13.0.tgz","fileCount":6,"integrity":"sha512-/8LszAzZagSX15Y2Ar9YgW2yEra90tLbpqbgO917y2XyM+PSRvspvBIOsovSEOUiGqBNpBuxnTPOH4Ssm1p4cg==","signatures":[{"sig":"MEUCIBle84Osl/gNU+hop1rDmw5k16M03TGNc8CIq0twQsePAiEAlQWPKr8/NqQUJCoqI7HHWqN4RYAQPU3Aka1eMC9oiHc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@9.13.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":904886},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2ff66eee-25bb-4fd9-8165-71cbf8112376"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"^0.28.1","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-/8LszAzZagSX15Y2Ar9YgW2yEra90tLbpqbgO917y2XyM+PSRvspvBIOsovSEOUiGqBNpBuxnTPOH4Ssm1p4cg==","repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","allowScripts":{"esbuild@0.28.1":true,"fsevents@2.3.3":true},"dependencies":{"@typescript-eslint/utils":"^8.65.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.19.0","devDependencies":{"tsup":"latest","eslint":"^10.8.0","vitest":"latest","@eslint/js":"10.0.1","typescript":"latest","@types/node":"latest","@eslint/compat":"^2.1.0","eslint-plugin-zod":"^4.9.0","typescript-eslint":"^8.65.0","eslint-plugin-react":"^7.37.5","eslint-plugin-unicorn":"^72.0.0","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.0","@typescript-eslint/rule-tester":"latest","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_9.13.0_1785960738367_0.15132569535592855","host":"s3://npm-registry-packages-npm-production"}},"9.13.1":{"name":"@sarj/eslint-plugin","version":"9.13.1","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@9.13.1","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://github.com/sarj-ai/standards/tree/main/packages/typescript","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"43b9f03e60a918de4f64de734b8c522cb930f533","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-9.13.1.tgz","fileCount":7,"integrity":"sha512-4Yz6bt1G3cn7DQWkXglgXXJFXyi0kWz8hIXEyaZgEeEoRYQMLiVwlYgiX/SuIKWn0aBG34z4eTX+v5GBm/XxpA==","signatures":[{"sig":"MEYCIQCvzW/W5Mb/Iw/kjrJT+pUWzu74mh4k3h81cWNIlmqL8wIhAMbqlrX1ZhEgwN8XOqd36lOF/jrRD0cBoKwsQnado3xz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@9.13.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":908656},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2ff66eee-25bb-4fd9-8165-71cbf8112376"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"^0.28.1","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-4Yz6bt1G3cn7DQWkXglgXXJFXyi0kWz8hIXEyaZgEeEoRYQMLiVwlYgiX/SuIKWn0aBG34z4eTX+v5GBm/XxpA==","repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","allowScripts":{"esbuild@0.28.1":true,"fsevents@2.3.3":true},"dependencies":{"@typescript-eslint/utils":"^8.65.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.19.0","devDependencies":{"tsup":"latest","eslint":"^10.8.0","vitest":"latest","@eslint/js":"10.0.1","typescript":"latest","@types/node":"latest","@eslint/compat":"^2.1.0","eslint-plugin-zod":"^4.9.0","typescript-eslint":"^8.65.0","eslint-plugin-react":"^7.37.5","eslint-plugin-unicorn":"^72.0.0","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.0","@typescript-eslint/rule-tester":"latest","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_9.13.1_1785965093601_0.6386723257042277","host":"s3://npm-registry-packages-npm-production"}},"9.14.0":{"name":"@sarj/eslint-plugin","version":"9.14.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@9.14.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://github.com/sarj-ai/standards/tree/main/packages/typescript","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"26b327c7730e26887d5028e93b598761940536e8","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-9.14.0.tgz","fileCount":7,"integrity":"sha512-l5yzDOEL8hrtYGTEvzGfkpA7yszVJOWK2dPYuiLPWipUAXOq+T0LZH2Sska+b8kC5eOHHr4EpR2RzhqiRAxEUQ==","signatures":[{"sig":"MEQCIHVYEJyhvnAdvrtVmq6PKRb8qk9rEvhaPPDbWhvceR4DAiAclIxT5ujadoRLhX28Ara9PVBe6Fw2+ayGt45aPoX4Lw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@9.14.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1013191},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3fdb68f3-1605-4126-839d-3c98445f8db8"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"^0.28.1","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-l5yzDOEL8hrtYGTEvzGfkpA7yszVJOWK2dPYuiLPWipUAXOq+T0LZH2Sska+b8kC5eOHHr4EpR2RzhqiRAxEUQ==","repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","allowScripts":{"esbuild@0.28.1":true,"fsevents@2.3.3":true},"dependencies":{"@typescript-eslint/utils":"^8.65.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.19.0","devDependencies":{"tsup":"latest","eslint":"^10.8.0","vitest":"latest","@eslint/js":"10.0.1","typescript":"latest","@types/node":"latest","@eslint/compat":"^2.1.0","eslint-plugin-zod":"^4.9.0","typescript-eslint":"^8.65.0","eslint-plugin-react":"^7.37.5","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^72.0.0","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.0","@typescript-eslint/rule-tester":"latest","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_9.14.0_1785973613301_0.7778607586223791","host":"s3://npm-registry-packages-npm-production"}},"9.15.0":{"name":"@sarj/eslint-plugin","version":"9.15.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@9.15.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://github.com/sarj-ai/standards/tree/main/packages/typescript","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"dbff65253b3f20c2e0697fd0db79709992d85d5e","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-9.15.0.tgz","fileCount":7,"integrity":"sha512-9egTNsk7RT+TcZfcgpxCB8ExetA8VU0/YaUeodH5mhUoQfpKs2gAQFjNaxsZV1qEDwxwlDNgjBpwvpj40tqWBw==","signatures":[{"sig":"MEYCIQCOo2H/kuPtr3kKwqvpZ0JJM4ugfgcNcbZYkAbwHpkFngIhAJ3vXJiHZoap0BaCh11WWrQGQl7d+IyJS/SZRzY+sku9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@9.15.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1061929},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3fdb68f3-1605-4126-839d-3c98445f8db8"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"^0.28.1","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-9egTNsk7RT+TcZfcgpxCB8ExetA8VU0/YaUeodH5mhUoQfpKs2gAQFjNaxsZV1qEDwxwlDNgjBpwvpj40tqWBw==","repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","allowScripts":{"esbuild@0.28.1":true,"fsevents@2.3.3":true},"dependencies":{"@typescript-eslint/utils":"^8.65.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.19.0","devDependencies":{"tsup":"latest","eslint":"^10.8.0","vitest":"latest","@eslint/js":"10.0.1","typescript":"latest","@types/node":"latest","@eslint/compat":"^2.1.0","eslint-plugin-zod":"^4.9.0","typescript-eslint":"^8.65.0","eslint-plugin-react":"^7.37.5","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^72.0.0","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.0","@typescript-eslint/rule-tester":"latest","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_9.15.0_1785985341423_0.6019471258902995","host":"s3://npm-registry-packages-npm-production"}},"9.16.0":{"name":"@sarj/eslint-plugin","version":"9.16.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@9.16.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://github.com/sarj-ai/standards/tree/main/packages/typescript","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"fd1b37888a221ee2713f109f29f9d36d202f497c","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-9.16.0.tgz","fileCount":7,"integrity":"sha512-Ew1X4r9T574Ifovz4GlAf42mao4nofEVa6le2ixZmDOO2gZab571QwuYc/SP8fVrhEmYryoB0+PpCEmeISNdsg==","signatures":[{"sig":"MEYCIQDXOdxcTP1dwt4zvi5+AP4FzLBw8R7UvlS021rgIhdOOAIhAPBwZWYyMNuoSmIH/ZQ2eir8H6twqamrzR6en4dyE0xa","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@9.16.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1067059},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3fdb68f3-1605-4126-839d-3c98445f8db8"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"^0.28.1","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-Ew1X4r9T574Ifovz4GlAf42mao4nofEVa6le2ixZmDOO2gZab571QwuYc/SP8fVrhEmYryoB0+PpCEmeISNdsg==","repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","allowScripts":{"esbuild@0.28.1":true,"fsevents@2.3.3":true},"dependencies":{"@typescript-eslint/utils":"^8.65.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.19.0","devDependencies":{"tsup":"latest","eslint":"^10.8.0","vitest":"latest","@eslint/js":"10.0.1","typescript":"latest","@types/node":"latest","@eslint/compat":"^2.1.0","eslint-plugin-zod":"^4.9.0","typescript-eslint":"^8.65.0","eslint-plugin-react":"^7.37.5","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^72.0.0","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.0","@typescript-eslint/rule-tester":"latest","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_9.16.0_1786200054330_0.8572004402420816","host":"s3://npm-registry-packages-npm-production"}},"9.17.0":{"name":"@sarj/eslint-plugin","version":"9.17.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@9.17.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://github.com/sarj-ai/standards/tree/main/packages/typescript","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"05230bcc9fba152c1be3d7d8cb8140cf977dd163","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-9.17.0.tgz","fileCount":7,"integrity":"sha512-9Qe63nhNQI/jZ16RiZDPYmvJE+IpCAEFyxysJT6djsCXgrkbxwKSMgl1qakuA1t7NyTjvRwajOWl7kVFwQYdMQ==","signatures":[{"sig":"MEUCIDSQBvhvEdYXXxaP+QB/CLuUom+L71hD0GMID2JjFc4EAiEAgrecFJfeuIFInj21GP7zX8b3yqZ6kA1Ui1+ZqQCQx0Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@9.17.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1101102},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3fdb68f3-1605-4126-839d-3c98445f8db8"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"^0.28.1","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-9Qe63nhNQI/jZ16RiZDPYmvJE+IpCAEFyxysJT6djsCXgrkbxwKSMgl1qakuA1t7NyTjvRwajOWl7kVFwQYdMQ==","repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","allowScripts":{"esbuild@0.28.1":true,"fsevents@2.3.3":true},"dependencies":{"@typescript-eslint/utils":"^8.65.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.19.0","devDependencies":{"tsup":"latest","eslint":"^10.8.0","vitest":"latest","@eslint/js":"10.0.1","typescript":"latest","@types/node":"latest","@eslint/compat":"^2.1.0","eslint-plugin-zod":"^4.9.0","typescript-eslint":"^8.65.0","eslint-plugin-react":"^7.37.5","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^72.0.0","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.0","@typescript-eslint/rule-tester":"latest","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_9.17.0_1786204271700_0.8382023011847006","host":"s3://npm-registry-packages-npm-production"}},"9.17.1":{"name":"@sarj/eslint-plugin","version":"9.17.1","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@9.17.1","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://github.com/sarj-ai/standards/tree/main/packages/typescript","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"306bd541488decb73e09a6d45989c1d4153f70cf","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-9.17.1.tgz","fileCount":7,"integrity":"sha512-0jt1vZMsv/8KvcinxSKIsqmGNgNCkvLIIcKhLSy/ci7WXn4AxDO78LS+IoJTVd6pju93o6Zf98NlRLaUwEpROw==","signatures":[{"sig":"MEYCIQCobEijWwJ1Ec8/M6Y/nKHbrHtmAUvtJ/12z+g8rbiNPAIhAJ/rWykmfOJbtXuILIYm79GuEZ3zkvXIj1lSaphfwYB1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@9.17.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1101496},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3fdb68f3-1605-4126-839d-3c98445f8db8"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"^0.28.1","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-0jt1vZMsv/8KvcinxSKIsqmGNgNCkvLIIcKhLSy/ci7WXn4AxDO78LS+IoJTVd6pju93o6Zf98NlRLaUwEpROw==","repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","allowScripts":{"esbuild@0.28.1":true,"fsevents@2.3.3":true},"dependencies":{"@typescript-eslint/utils":"^8.65.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.19.0","devDependencies":{"tsup":"latest","eslint":"^10.8.0","vitest":"latest","@eslint/js":"10.0.1","typescript":"latest","@types/node":"latest","@eslint/compat":"^2.1.0","eslint-plugin-zod":"^4.9.0","typescript-eslint":"^8.65.0","eslint-plugin-react":"^7.37.5","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^72.0.0","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.0","@typescript-eslint/rule-tester":"latest","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_9.17.1_1786206849223_0.00786823726843311","host":"s3://npm-registry-packages-npm-production"}},"10.0.0":{"name":"@sarj/eslint-plugin","version":"10.0.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@10.0.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://github.com/sarj-ai/standards/tree/main/packages/typescript","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"212efe8eb50fcac1fdcdd04bbb89441712b92bf9","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-10.0.0.tgz","fileCount":7,"integrity":"sha512-5VS7jMUgSC/l3MWYJy/tu6VJWHkrjw4bdDPX2B+oUymUno4zRqYpVzRhml5Cs5IhdmfotSekt5ElL++khPNnmg==","signatures":[{"sig":"MEQCICK33Q826+PfFD2xjuvgigKL7IZ2O4JxXsN+MRprqKq3AiB7KpFURspG6N8kGI5UOqVxBvzwKnzysiXEBBJRz93NEQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@10.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1102673},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3fdb68f3-1605-4126-839d-3c98445f8db8"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"^0.28.1","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-5VS7jMUgSC/l3MWYJy/tu6VJWHkrjw4bdDPX2B+oUymUno4zRqYpVzRhml5Cs5IhdmfotSekt5ElL++khPNnmg==","repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","allowScripts":{"esbuild@0.28.1":true,"fsevents@2.3.3":true},"dependencies":{"@typescript-eslint/utils":"^8.65.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.19.0","devDependencies":{"tsup":"latest","eslint":"^10.8.0","vitest":"latest","@eslint/js":"10.0.1","typescript":"latest","@types/node":"latest","@eslint/compat":"^2.1.0","eslint-plugin-zod":"^4.9.0","typescript-eslint":"^8.65.0","eslint-plugin-react":"^7.37.5","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^72.0.0","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.0","@typescript-eslint/rule-tester":"latest","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_10.0.0_1786209174450_0.8822813369655411","host":"s3://npm-registry-packages-npm-production"}},"11.0.0":{"name":"@sarj/eslint-plugin","version":"11.0.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@11.0.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://github.com/sarj-ai/standards/tree/main/packages/typescript","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"d005e47ebd040917bf0b65e7ddf017e30755b676","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-11.0.0.tgz","fileCount":7,"integrity":"sha512-ZFGopusFda2K3BeOo4IwWT5wVR5S6aqAPZqWmtGKTd/TUVeqsBvsO2Vh7V0y2edBUCol88SCUPATQW0UmeE/LQ==","signatures":[{"sig":"MEUCIGixYJzTNMJ8xqlU7xjis46938dSL9IJM/8IxVuctZkNAiEAu3GcjOeg6f9idp6oxzCwPo4TD4hiTYhc8f7bV4HV7QI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@11.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1102925},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3fdb68f3-1605-4126-839d-3c98445f8db8"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"^0.28.1","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-ZFGopusFda2K3BeOo4IwWT5wVR5S6aqAPZqWmtGKTd/TUVeqsBvsO2Vh7V0y2edBUCol88SCUPATQW0UmeE/LQ==","repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","allowScripts":{"esbuild@0.28.1":true,"fsevents@2.3.3":true},"dependencies":{"@typescript-eslint/utils":"^8.65.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.19.0","devDependencies":{"tsup":"latest","eslint":"^10.8.0","vitest":"latest","@eslint/js":"10.0.1","typescript":"latest","@types/node":"latest","@eslint/compat":"^2.1.0","eslint-plugin-zod":"^4.9.0","typescript-eslint":"^8.65.0","eslint-plugin-react":"^7.37.5","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^72.0.0","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.0","@typescript-eslint/rule-tester":"latest","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_11.0.0_1786211977456_0.14077086475307765","host":"s3://npm-registry-packages-npm-production"}},"11.0.1":{"name":"@sarj/eslint-plugin","version":"11.0.1","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@11.0.1","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://github.com/sarj-ai/standards/tree/main/packages/typescript","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"e0a92544357b6a65a1bd0b0119c11784ec51be9c","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-11.0.1.tgz","fileCount":7,"integrity":"sha512-hN7SgINXqKQ753QvUebA5t4nNo1FK6MvPz5umrPRwJDXVD5CVN7L5tgLc5k6dEcnnD4BlRMBbsZ9HmKdyZxP6A==","signatures":[{"sig":"MEQCIEkVLPZ8dUyzQDfEY+sOnP8S4VZeGXmLC0J/tpeMqDgeAiBm6gUTVyF0upelY80o97JnSUV5EorZRt5ElqL1Hs5ptQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@11.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1083206},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3fdb68f3-1605-4126-839d-3c98445f8db8"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"^0.28.1","nanoid@<3.3.17":"3.3.17","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-hN7SgINXqKQ753QvUebA5t4nNo1FK6MvPz5umrPRwJDXVD5CVN7L5tgLc5k6dEcnnD4BlRMBbsZ9HmKdyZxP6A==","repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","allowScripts":{"esbuild@0.28.1":true,"fsevents@2.3.3":true},"dependencies":{"@typescript-eslint/utils":"^8.65.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.19.0","devDependencies":{"tsup":"latest","eslint":"^10.8.0","vitest":"latest","@eslint/js":"10.0.1","typescript":"latest","@types/node":"latest","@eslint/compat":"^2.1.0","eslint-plugin-zod":"^4.9.0","typescript-eslint":"^8.65.0","eslint-plugin-react":"^7.37.5","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^72.0.0","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.0","@typescript-eslint/rule-tester":"latest","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_11.0.1_1786212818911_0.057330249366503105","host":"s3://npm-registry-packages-npm-production"}},"11.1.0":{"name":"@sarj/eslint-plugin","version":"11.1.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@11.1.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://github.com/sarj-ai/standards/tree/main/packages/typescript","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"0c9becd61876fae5705c22848def9e9ccfa2b366","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-11.1.0.tgz","fileCount":7,"integrity":"sha512-+i/q/E/qWItjjuhFfDoTT+r5u6jdMgDlXBX1xuxxtMfsx/6ilTGMvIEgYuD2R6GDktyRZ39rjmU7MlIq89JCNg==","signatures":[{"sig":"MEQCIDykXTEHaitZQnmWuhlkozYROareqrxCD8MUVBA7+KBbAiARMU/rlFRWPzEiQIeA3jnSmCFA75cUJyjVF+f61HhCvw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@11.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1110354},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3fdb68f3-1605-4126-839d-3c98445f8db8"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"^0.28.1","nanoid@<3.3.17":"3.3.17","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-+i/q/E/qWItjjuhFfDoTT+r5u6jdMgDlXBX1xuxxtMfsx/6ilTGMvIEgYuD2R6GDktyRZ39rjmU7MlIq89JCNg==","repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","allowScripts":{"esbuild@0.28.1":true,"fsevents@2.3.3":true},"dependencies":{"@typescript-eslint/utils":"^8.65.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.19.0","devDependencies":{"tsup":"latest","eslint":"^10.8.0","vitest":"latest","@eslint/js":"10.0.1","typescript":"latest","@types/node":"latest","@eslint/compat":"^2.1.0","eslint-plugin-zod":"^4.9.0","typescript-eslint":"^8.65.0","eslint-plugin-react":"^7.37.5","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^72.0.0","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.0","@typescript-eslint/rule-tester":"latest","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_11.1.0_1786217836161_0.03575720386998027","host":"s3://npm-registry-packages-npm-production"}},"11.2.0":{"name":"@sarj/eslint-plugin","version":"11.2.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@11.2.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://github.com/sarj-ai/standards/tree/main/packages/typescript","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"14356396d684f54fbeccc7dfba572b9057236bff","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-11.2.0.tgz","fileCount":7,"integrity":"sha512-tEyTM+v4hKWcUxWHmqZfm66hQtQUhEdxJGalhxppraHkmXgS1KDLUggAbeDwKv8hVQMUw/RWh86W3/wc0vbVQA==","signatures":[{"sig":"MEQCIHc7Y/i+zdjsEKhOAgGzaIrDqW1ZzhKc65QIsmusr7cWAiArBb75tuSRGZc7Uc6ntIvHIYWv9lnZkq8JPwDIkBOdsQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@11.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1117222},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3fdb68f3-1605-4126-839d-3c98445f8db8"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"^0.28.1","nanoid@<3.3.17":"3.3.17","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-tEyTM+v4hKWcUxWHmqZfm66hQtQUhEdxJGalhxppraHkmXgS1KDLUggAbeDwKv8hVQMUw/RWh86W3/wc0vbVQA==","repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","allowScripts":{"esbuild@0.28.1":true,"fsevents@2.3.3":true},"dependencies":{"@typescript-eslint/utils":"^8.65.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.19.0","devDependencies":{"tsup":"latest","eslint":"^10.8.0","vitest":"latest","@eslint/js":"10.0.1","typescript":"latest","@types/node":"latest","@eslint/compat":"^2.1.0","eslint-plugin-zod":"^4.9.0","typescript-eslint":"^8.65.0","eslint-plugin-react":"^7.37.5","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^72.0.0","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.0","@typescript-eslint/rule-tester":"latest","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_11.2.0_1786220621320_0.50044320680471","host":"s3://npm-registry-packages-npm-production"}},"12.0.0":{"name":"@sarj/eslint-plugin","version":"12.0.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@12.0.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://github.com/sarj-ai/standards/tree/main/packages/typescript","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"921da9ea383619cdfa13a9fa54672984d17d94e3","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-12.0.0.tgz","fileCount":7,"integrity":"sha512-UTepE9kuFyLq1oU0NE9O3p/oI5Eusx7/sK5kbfBF3AETiwzCmi3cMHj3wo1agLgz63RjpdFFsP8RUsT6KkqI3A==","signatures":[{"sig":"MEUCIQDp1gkrogDLC+nx0gEaRHonBIUFHGSX8zx6QRuNelxfVgIgfT5BYFWpYfDQNknl8exBMQ+gaA1vzKzsYc7bgCFDtFM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@12.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1116383},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3fdb68f3-1605-4126-839d-3c98445f8db8"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"^0.28.1","nanoid@<3.3.17":"3.3.17","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-UTepE9kuFyLq1oU0NE9O3p/oI5Eusx7/sK5kbfBF3AETiwzCmi3cMHj3wo1agLgz63RjpdFFsP8RUsT6KkqI3A==","repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","allowScripts":{"esbuild@0.28.1":true,"fsevents@2.3.3":true},"dependencies":{"@typescript-eslint/utils":"^8.65.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.19.0","devDependencies":{"tsup":"latest","eslint":"^10.8.0","vitest":"latest","@eslint/js":"10.0.1","typescript":"latest","@types/node":"latest","@eslint/compat":"^2.1.0","eslint-plugin-zod":"^4.9.0","typescript-eslint":"^8.65.0","eslint-plugin-react":"^7.37.5","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^72.0.0","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.0","@typescript-eslint/rule-tester":"latest","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_12.0.0_1786230717146_0.9329200397604904","host":"s3://npm-registry-packages-npm-production"}},"13.0.0":{"name":"@sarj/eslint-plugin","version":"13.0.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@13.0.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"6bf8cbdf19d3b7d1b111c09fba2d8384049aa7cc","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-13.0.0.tgz","fileCount":7,"integrity":"sha512-3hE6t5jsMOA6pXl2mb9svqpXXtcxa8fgkRLdp3JJXZVLoOkYOXQuSVAmDEWYOG6uipjHmE3Ei3gOaGQ+knzg6w==","signatures":[{"sig":"MEYCIQDiMREo1+Z80wsmeuGDom/15E3rMvVNHX2jbPbHJpun1gIhAO67QM2ziEXD51KEhdkyc/UqABIyeqRb/P4+lvHX55Ir","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@13.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1269402},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3fdb68f3-1605-4126-839d-3c98445f8db8"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"^0.28.1","nanoid@<3.3.17":"3.3.17","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-3hE6t5jsMOA6pXl2mb9svqpXXtcxa8fgkRLdp3JJXZVLoOkYOXQuSVAmDEWYOG6uipjHmE3Ei3gOaGQ+knzg6w==","repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","allowScripts":{"esbuild@0.28.1":true,"fsevents@2.3.3":true},"dependencies":{"@typescript-eslint/utils":"^8.65.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.19.0","devDependencies":{"tsup":"latest","eslint":"^10.8.0","vitest":"latest","@eslint/js":"10.0.1","typescript":"latest","@types/node":"latest","@eslint/compat":"^2.1.0","eslint-plugin-zod":"^4.9.0","typescript-eslint":"^8.65.0","eslint-plugin-react":"^7.37.5","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^72.0.0","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.0","@typescript-eslint/rule-tester":"latest","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_13.0.0_1786233786783_0.2785704879019546","host":"s3://npm-registry-packages-npm-production"}},"13.1.0":{"name":"@sarj/eslint-plugin","version":"13.1.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@13.1.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"50d0751910f828562c706e86589869cef5ec3afd","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-13.1.0.tgz","fileCount":7,"integrity":"sha512-CqGb5GpRH93+FQeVSsuxh1EpG6khERQwVE89zqvo94fZ8NjELcKnPOcgf8y7hWQf6uaL/bTAw8PnfZTu7tbS+Q==","signatures":[{"sig":"MEQCIBtDcpmHJ0WOBNL89V4N2boS5+m1PCOdJZeFr0i5DziQAiAmuuy4EsU3mo0QqE8QSPdvvWYM2D4s6Pu0MKdKTSGAcw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@13.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1273124},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3fdb68f3-1605-4126-839d-3c98445f8db8"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"^0.28.1","nanoid@<3.3.17":"3.3.17","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-CqGb5GpRH93+FQeVSsuxh1EpG6khERQwVE89zqvo94fZ8NjELcKnPOcgf8y7hWQf6uaL/bTAw8PnfZTu7tbS+Q==","repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","allowScripts":{"esbuild@0.28.1":true,"fsevents@2.3.3":true},"dependencies":{"@typescript-eslint/utils":"^8.65.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.19.0","devDependencies":{"tsup":"latest","eslint":"^10.8.0","vitest":"latest","@eslint/js":"10.0.1","typescript":"latest","@types/node":"latest","@eslint/compat":"^2.1.0","eslint-plugin-zod":"^4.9.0","typescript-eslint":"^8.65.0","eslint-plugin-react":"^7.37.5","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^72.0.0","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.0","@typescript-eslint/rule-tester":"latest","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_13.1.0_1786238928140_0.3362264881044599","host":"s3://npm-registry-packages-npm-production"}},"14.0.0":{"name":"@sarj/eslint-plugin","version":"14.0.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@14.0.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"bbc028138682d70ec03eed76ec65677fed354934","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-14.0.0.tgz","fileCount":7,"integrity":"sha512-hq2irIPx1jG0ddU+6kd6L4fJT8dH0Xt4RiXPsS3ObonLpZ4uQkvvlB736LaSoDyg/2s88eqeFT/ghXba3fWKfQ==","signatures":[{"sig":"MEUCIQCvR5vp7Uzked12jRTCh098lb3CRiU3w92+LGB1JguxJwIgAIgdYRSq3alC9arkqkX2DQP6mVeqXEcGM+TTX3ftCMs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@14.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1273940},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3fdb68f3-1605-4126-839d-3c98445f8db8"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"^0.28.1","nanoid@<3.3.17":"3.3.17","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-hq2irIPx1jG0ddU+6kd6L4fJT8dH0Xt4RiXPsS3ObonLpZ4uQkvvlB736LaSoDyg/2s88eqeFT/ghXba3fWKfQ==","repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","allowScripts":{"esbuild@0.28.1":true,"fsevents@2.3.3":true},"dependencies":{"@typescript-eslint/utils":"^8.65.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.19.0","devDependencies":{"tsup":"latest","eslint":"^10.8.0","vitest":"latest","@eslint/js":"10.0.1","typescript":"latest","@types/node":"latest","@eslint/compat":"^2.1.0","eslint-plugin-zod":"^4.9.0","typescript-eslint":"^8.65.0","eslint-plugin-react":"^7.37.5","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^72.0.0","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.0","@typescript-eslint/rule-tester":"latest","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_14.0.0_1786243180961_0.18731221490596828","host":"s3://npm-registry-packages-npm-production"}},"15.0.0":{"name":"@sarj/eslint-plugin","version":"15.0.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.0.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"6159c8191e1464118acf885a91cb833f5c7b8492","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.0.0.tgz","fileCount":7,"integrity":"sha512-tZSoQe13q0f5Eq69RfaI/RJ6Ie0LBEs87Q4R8+JX0IR3pyil3VedHMuS+G1kn7NNjxU77HdGZtLdSvZgKLbsIA==","signatures":[{"sig":"MEYCIQDMiGq6ctdNQggp3bITE2G0nKLDRnuwdwWIUJ8rpUn5MQIhANqOEI4O2B6OWrIajk/EAw1h6LQ/IxXx4A/YW/pSScC1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1259579},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3fdb68f3-1605-4126-839d-3c98445f8db8"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"^0.28.1","nanoid@<3.3.17":"3.3.17","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-tZSoQe13q0f5Eq69RfaI/RJ6Ie0LBEs87Q4R8+JX0IR3pyil3VedHMuS+G1kn7NNjxU77HdGZtLdSvZgKLbsIA==","repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","allowScripts":{"esbuild@0.28.1":true,"fsevents@2.3.3":true},"dependencies":{"@typescript-eslint/utils":"^8.65.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.19.0","devDependencies":{"tsup":"latest","eslint":"^10.8.0","vitest":"latest","@eslint/js":"10.0.1","typescript":"latest","@types/node":"latest","@eslint/compat":"^2.1.0","eslint-plugin-zod":"^4.9.0","typescript-eslint":"^8.65.0","eslint-plugin-react":"^7.37.5","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^72.0.0","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.0","@typescript-eslint/rule-tester":"latest","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.0.0_1786247195886_0.16199660342838085","host":"s3://npm-registry-packages-npm-production"}},"15.1.0":{"name":"@sarj/eslint-plugin","version":"15.1.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.1.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"43e0d76b3267f9e3ab2f8ae6f4af4da56cf862d8","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.1.0.tgz","fileCount":7,"integrity":"sha512-Zkp7Hl0oe0P6Z0P2GfyMKr2KLSiRpdBsjqnIeCWf/afRSmTKNy/guqmtAM325H/70LQEytMGJwbhZTFqYikeww==","signatures":[{"sig":"MEUCIQDxrfA3a8eU3O0zUbcDhYO9VlzaDAqAmLyDG9h3vaIlrwIgDdGwec4An2tYLfkdfUSoFQUtAJFPMfu9CT+C327Ja5I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1275788},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3fdb68f3-1605-4126-839d-3c98445f8db8"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"^0.28.1","nanoid@<3.3.17":"3.3.17","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-Zkp7Hl0oe0P6Z0P2GfyMKr2KLSiRpdBsjqnIeCWf/afRSmTKNy/guqmtAM325H/70LQEytMGJwbhZTFqYikeww==","repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","allowScripts":{"esbuild@0.28.1":true,"fsevents@2.3.3":true},"dependencies":{"@typescript-eslint/utils":"^8.65.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.19.0","devDependencies":{"tsup":"latest","eslint":"^10.8.0","vitest":"latest","@eslint/js":"10.0.1","typescript":"latest","@types/node":"latest","@eslint/compat":"^2.1.0","eslint-plugin-zod":"^4.9.0","typescript-eslint":"^8.65.0","eslint-plugin-react":"^7.37.5","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^72.0.0","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.0","@typescript-eslint/rule-tester":"latest","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.1.0_1786251910173_0.4884552283902095","host":"s3://npm-registry-packages-npm-production"}},"15.2.0":{"name":"@sarj/eslint-plugin","version":"15.2.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.2.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"e1959bcaf82e4c6122e51681054cbb4a2d2e93a7","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.2.0.tgz","fileCount":7,"integrity":"sha512-xl+J5KcnJiQVBei6CRts0S0Y8Rm9K9lzIfE/gbaRtnCWsZvLJdzo402Rh5wXk/qoTpGcBDzwe2LTqNfcNweZpg==","signatures":[{"sig":"MEYCIQCA8/r8wTUvrwBih964rRzB+ZyyuUNKKiflCWhaqdJ+jQIhAJxc+p/RZLvLUXwBls3Oa8Zb1cuZBwbiiWIe33eTHvRP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1301467},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3fdb68f3-1605-4126-839d-3c98445f8db8"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"^0.28.1","nanoid@<3.3.17":"3.3.17","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-xl+J5KcnJiQVBei6CRts0S0Y8Rm9K9lzIfE/gbaRtnCWsZvLJdzo402Rh5wXk/qoTpGcBDzwe2LTqNfcNweZpg==","repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","allowScripts":{"esbuild@0.28.1":true,"fsevents@2.3.3":true},"dependencies":{"@typescript-eslint/utils":"^8.65.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.19.0","devDependencies":{"tsup":"latest","eslint":"^10.8.0","vitest":"latest","@eslint/js":"10.0.1","typescript":"latest","@types/node":"latest","@eslint/compat":"^2.1.0","eslint-plugin-zod":"^4.9.0","typescript-eslint":"^8.65.0","eslint-plugin-react":"^7.37.5","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^72.0.0","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.0","@typescript-eslint/rule-tester":"latest","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.2.0_1786279129172_0.7236375043673642","host":"s3://npm-registry-packages-npm-production"}},"15.3.0":{"name":"@sarj/eslint-plugin","version":"15.3.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.3.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"28b374f53843c8304a4c930431537cb35a619663","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.3.0.tgz","fileCount":7,"integrity":"sha512-jKqW7uUouyPgPJth0khycV5J+wJ2dYo2zYUOJYHxzn6XB03uPVtabVE/oKTVsTwsY/e6VORuz/Us/m6HT9JjrQ==","signatures":[{"sig":"MEQCIEIptjAwNYeN3/FeDHqjSsh38Yh7h6Fz+ICSHrD1TzjJAiBwFkvtVh52r0aBPzisM/o0X9uIPDFnwq5A0GJjZQVu/A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1315239},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3fdb68f3-1605-4126-839d-3c98445f8db8"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"^0.28.1","nanoid@<3.3.17":"3.3.17","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-jKqW7uUouyPgPJth0khycV5J+wJ2dYo2zYUOJYHxzn6XB03uPVtabVE/oKTVsTwsY/e6VORuz/Us/m6HT9JjrQ==","repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","allowScripts":{"esbuild@0.28.1":true,"fsevents@2.3.3":true},"dependencies":{"@typescript-eslint/utils":"^8.65.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.19.0","devDependencies":{"tsup":"latest","eslint":"^10.8.0","vitest":"latest","@eslint/js":"10.0.1","typescript":"latest","@types/node":"latest","@eslint/compat":"^2.1.0","eslint-plugin-zod":"^4.9.0","typescript-eslint":"^8.65.0","eslint-plugin-react":"^7.37.5","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^72.0.0","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.0","@typescript-eslint/rule-tester":"latest","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.3.0_1786286401450_0.09253852632623594","host":"s3://npm-registry-packages-npm-production"}},"15.4.0":{"name":"@sarj/eslint-plugin","version":"15.4.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.4.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"e989d97bf22e7840080360fd0a9c6f906c4eece7","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.4.0.tgz","fileCount":7,"integrity":"sha512-sEkdE9aut6baQs4C/Mu03oCJmQifpBUJC6KzxbJMerrD4MOSLjH4y7V9TntMQ5nc93cCyyqv/AwlAQXz5YAI8w==","signatures":[{"sig":"MEYCIQCY8n9lPFB0AzjkB8NWVTlCXWVfMexjHah0HHljcghGrQIhAIud6ecwXHZ5QvJbLqRrRbThzysgrR/5DOOymwjbwFr0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1316139},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3fdb68f3-1605-4126-839d-3c98445f8db8"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"^0.28.1","nanoid@<3.3.17":"3.3.17","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-sEkdE9aut6baQs4C/Mu03oCJmQifpBUJC6KzxbJMerrD4MOSLjH4y7V9TntMQ5nc93cCyyqv/AwlAQXz5YAI8w==","repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","allowScripts":{"esbuild@0.28.1":true,"fsevents@2.3.3":true},"dependencies":{"@typescript-eslint/utils":"^8.65.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.19.0","devDependencies":{"tsup":"latest","eslint":"^10.8.0","vitest":"latest","@eslint/js":"10.0.1","typescript":"latest","@types/node":"latest","@eslint/compat":"^2.1.0","eslint-plugin-zod":"^4.9.0","typescript-eslint":"^8.65.0","eslint-plugin-react":"^7.37.5","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^72.0.0","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.0","@typescript-eslint/rule-tester":"latest","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.4.0_1786290767637_0.4657603760769935","host":"s3://npm-registry-packages-npm-production"}},"15.5.0":{"name":"@sarj/eslint-plugin","version":"15.5.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.5.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"42125fb0be392fabc4e9bd6759416be655d642cb","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.5.0.tgz","fileCount":7,"integrity":"sha512-K6iDt+MCzXKzKWx1oX47Dq+xM1JUR66QmY8tXbBGmILCbr8aopv+e3KhvEvfWa/c0JL26DxCcYqWZ+t6J7i+eA==","signatures":[{"sig":"MEYCIQCO4K5tMSJQ1dvH9/Sc/c9LRcYS9esggDTUcpczoSvnwwIhAM52I7numdo13u1nLjsoJbdRTucxr6HS2xUgrmCYNeJ6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1331377},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3fdb68f3-1605-4126-839d-3c98445f8db8"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"^0.28.1","nanoid@<3.3.17":"3.3.17","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-K6iDt+MCzXKzKWx1oX47Dq+xM1JUR66QmY8tXbBGmILCbr8aopv+e3KhvEvfWa/c0JL26DxCcYqWZ+t6J7i+eA==","repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","allowScripts":{"esbuild@0.28.1":true,"fsevents@2.3.3":true},"dependencies":{"@typescript-eslint/utils":"^8.65.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.19.0","devDependencies":{"tsup":"latest","eslint":"^10.8.0","vitest":"latest","@eslint/js":"10.0.1","typescript":"latest","@types/node":"latest","@eslint/compat":"^2.1.0","eslint-plugin-zod":"^4.9.0","typescript-eslint":"^8.65.0","eslint-plugin-react":"^7.37.5","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^72.0.0","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.0","@typescript-eslint/rule-tester":"latest","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.5.0_1786292225748_0.5222058927222046","host":"s3://npm-registry-packages-npm-production"}},"15.6.0":{"name":"@sarj/eslint-plugin","version":"15.6.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.6.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"98d85b20822d764f40b0c4438838420d54b110f3","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.6.0.tgz","fileCount":7,"integrity":"sha512-BnyJqiBasKZ5XaXfZBr1i3EAoEvWxKls3+PBisyfKY5Hs8yC6ymy9Q92QC4w/K9yu79Q6OL0SN/OiFDzFeXwEg==","signatures":[{"sig":"MEYCIQDb/EOTxOTQHPCsF6ozeourj3c4onavUkbLe4LOZ5hS9wIhALjNf/WaCWgJYApzoRX0IeN/7RZSfJXqywoi0IfcnWju","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1330799},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3fdb68f3-1605-4126-839d-3c98445f8db8"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"^0.28.1","nanoid@<3.3.17":"3.3.17","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-BnyJqiBasKZ5XaXfZBr1i3EAoEvWxKls3+PBisyfKY5Hs8yC6ymy9Q92QC4w/K9yu79Q6OL0SN/OiFDzFeXwEg==","repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","allowScripts":{"esbuild@0.28.1":true,"fsevents@2.3.3":true},"dependencies":{"@typescript-eslint/utils":"^8.65.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.19.0","devDependencies":{"tsup":"latest","eslint":"^10.8.0","vitest":"latest","@eslint/js":"10.0.1","typescript":"latest","@types/node":"latest","@eslint/compat":"^2.1.0","eslint-plugin-zod":"^4.9.0","typescript-eslint":"^8.65.0","eslint-plugin-react":"^7.37.5","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^72.0.0","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.0","@typescript-eslint/rule-tester":"latest","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.6.0_1786295983063_0.07621221422660529","host":"s3://npm-registry-packages-npm-production"}},"15.6.1":{"name":"@sarj/eslint-plugin","version":"15.6.1","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.6.1","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"5316f32424885644f7888c5a88a4be5586974c74","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.6.1.tgz","fileCount":7,"integrity":"sha512-rfVVapuL5zE9h183aow72iH5sVe/11f54E5WvGwRqTcIe4r1jUtHlofhlQlPg1qXK34Qojd86GlOY23B5ROdSA==","signatures":[{"sig":"MEYCIQCVYpcnY2ODZEsZs/9UafIL3JBAYV9ROTgAjWhWwj763QIhAL/7J6wrYX5KM5WrILqUJQuM2eHIxZlZtCUa2R9ypEHt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.6.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1330889},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3fdb68f3-1605-4126-839d-3c98445f8db8"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"^0.28.1","nanoid@<3.3.17":"3.3.17","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-rfVVapuL5zE9h183aow72iH5sVe/11f54E5WvGwRqTcIe4r1jUtHlofhlQlPg1qXK34Qojd86GlOY23B5ROdSA==","repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","allowScripts":{"esbuild@0.28.1":true,"fsevents@2.3.3":true},"dependencies":{"@typescript-eslint/utils":"^8.65.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.19.0","devDependencies":{"tsup":"latest","eslint":"^10.8.0","vitest":"latest","@eslint/js":"10.0.1","typescript":"latest","@types/node":"latest","@eslint/compat":"^2.1.0","eslint-plugin-zod":"^4.9.0","typescript-eslint":"^8.65.0","eslint-plugin-react":"^7.37.5","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^72.0.0","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.0","@typescript-eslint/rule-tester":"latest","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.6.1_1786303848396_0.7564183947964511","host":"s3://npm-registry-packages-npm-production"}},"15.6.2":{"name":"@sarj/eslint-plugin","version":"15.6.2","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.6.2","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"f9eee022b2782f309235bb0f1d8c816e4d2696da","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.6.2.tgz","fileCount":7,"integrity":"sha512-tmDZdDQ8iz6VfaxgJ1PZ0ybH5N33eT/7aTyyJCWwziAA1k2YLgOJnn7I9hvLtVyFCsxqZhtBo0zAnxVJ+pA7ug==","signatures":[{"sig":"MEUCIQCqd06JPcpmrC58HHZHSOEWfOwjCrQpuKCUmm8h7ZHYWgIgFuV6Sl9RhWzafecr+5kbEeo69KuNudCj2LJn+KZ7/Ws=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.6.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1353834},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3fdb68f3-1605-4126-839d-3c98445f8db8"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"^0.28.1","nanoid@<3.3.17":"3.3.17","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-tmDZdDQ8iz6VfaxgJ1PZ0ybH5N33eT/7aTyyJCWwziAA1k2YLgOJnn7I9hvLtVyFCsxqZhtBo0zAnxVJ+pA7ug==","repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","allowScripts":{"esbuild@0.28.1":true,"fsevents@2.3.3":true},"dependencies":{"@typescript-eslint/utils":"^8.65.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.19.0","devDependencies":{"tsup":"latest","eslint":"^10.8.0","vitest":"latest","@eslint/js":"10.0.1","typescript":"latest","@types/node":"latest","@eslint/compat":"^2.1.0","eslint-plugin-zod":"^4.9.0","typescript-eslint":"^8.65.0","eslint-plugin-react":"^7.37.5","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^72.0.0","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.0","@typescript-eslint/rule-tester":"latest","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.6.2_1786306542518_0.49027555685988","host":"s3://npm-registry-packages-npm-production"}},"15.6.3":{"name":"@sarj/eslint-plugin","version":"15.6.3","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.6.3","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"39532eb69e56fd42fcdd0ea7019855c11d4271ff","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.6.3.tgz","fileCount":7,"integrity":"sha512-4qSNExO3ggxn+UzQiMT2G9w/PV+qcZzDlVBVvtOgKdvj8YfZVEF+o5xaSAJA+Ui2cK1GSCAjIy4m6auL2bCQ9g==","signatures":[{"sig":"MEUCIQDKatvT2GsHdADxgjcYAgTW7rz7Pw4ZKyAcpAmC7bvu+gIgb0b9VGvW9wBfQwPxvkjamvqU0WKMj3KGd2RfaCAHmZg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.6.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1366571},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3fdb68f3-1605-4126-839d-3c98445f8db8"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"^0.28.1","nanoid@<3.3.17":"3.3.17","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-4qSNExO3ggxn+UzQiMT2G9w/PV+qcZzDlVBVvtOgKdvj8YfZVEF+o5xaSAJA+Ui2cK1GSCAjIy4m6auL2bCQ9g==","repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","allowScripts":{"esbuild@0.28.1":true,"fsevents@2.3.3":true},"dependencies":{"@typescript-eslint/utils":"^8.65.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.19.0","devDependencies":{"tsup":"latest","eslint":"^10.8.0","vitest":"latest","@eslint/js":"10.0.1","typescript":"latest","@types/node":"latest","@eslint/compat":"^2.1.0","eslint-plugin-zod":"^4.9.0","typescript-eslint":"^8.65.0","eslint-plugin-react":"^7.37.5","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^72.0.0","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.0","@typescript-eslint/rule-tester":"latest","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.6.3_1786317459963_0.13462057236489056","host":"s3://npm-registry-packages-npm-production"}},"15.6.4":{"name":"@sarj/eslint-plugin","version":"15.6.4","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.6.4","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"db190b557d871c4bfd04f652bad750f4831c04cc","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.6.4.tgz","fileCount":7,"integrity":"sha512-xJkah2L/31h3Omt/dxY79BxlPNdtbueEme/JXAGGhpwVIPxO2Phw/6c/FxkEewPCK3X0yfrz/5Y+ea0Jn3Tbxw==","signatures":[{"sig":"MEQCIHJqLLe2Z3Lw40A9O5zDz4FnDhgnCkTCK711Nhq1dHylAiACGWtDX0p7kjDCY9JPN6/uhyDVixRqlERrNlbwupB/tA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.6.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1368731},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3fdb68f3-1605-4126-839d-3c98445f8db8"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"^0.28.1","nanoid@<3.3.17":"3.3.17","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-xJkah2L/31h3Omt/dxY79BxlPNdtbueEme/JXAGGhpwVIPxO2Phw/6c/FxkEewPCK3X0yfrz/5Y+ea0Jn3Tbxw==","repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","allowScripts":{"esbuild@0.28.1":true,"fsevents@2.3.3":true},"dependencies":{"@typescript-eslint/utils":"^8.65.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.19.0","devDependencies":{"tsup":"latest","eslint":"^10.8.0","vitest":"latest","@eslint/js":"10.0.1","typescript":"latest","@types/node":"latest","@eslint/compat":"^2.1.0","eslint-plugin-zod":"^4.9.0","typescript-eslint":"^8.65.0","eslint-plugin-react":"^7.37.5","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^72.0.0","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.0","@typescript-eslint/rule-tester":"latest","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.6.4_1786318492201_0.45875852744734313","host":"s3://npm-registry-packages-npm-production"}},"15.6.5":{"name":"@sarj/eslint-plugin","version":"15.6.5","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.6.5","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"7d2d026613cb9e3c6a95a5cab1e76efd88722640","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.6.5.tgz","fileCount":7,"integrity":"sha512-11WP6D/VhA1VHYR/dFvFI4DSQaLIUvgJ5jWy1CK/XSNvZQ5QQpAeWSGquC4rdRvOiaIp1G5AMVAhYEm9GHBZFg==","signatures":[{"sig":"MEUCIE6EZ9+JwUM/3qhjxUrMoDRgpzBl4P7BwkIKjSP7ozbJAiEA2OkBV6/w6Ys7vu1xKP1oDTaHZnk3e17D1q6hC3ct8zg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.6.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1368730},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3fdb68f3-1605-4126-839d-3c98445f8db8"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"^0.28.1","nanoid@<3.3.17":"3.3.17","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-11WP6D/VhA1VHYR/dFvFI4DSQaLIUvgJ5jWy1CK/XSNvZQ5QQpAeWSGquC4rdRvOiaIp1G5AMVAhYEm9GHBZFg==","repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","allowScripts":{"esbuild@0.28.1":true,"fsevents@2.3.3":true},"dependencies":{"@typescript-eslint/utils":"^8.65.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.2","devDependencies":{"tsup":"latest","eslint":"^10.8.0","vitest":"latest","@eslint/js":"10.0.1","typescript":"latest","@types/node":"latest","@eslint/compat":"^2.1.0","eslint-plugin-zod":"^4.9.0","typescript-eslint":"^8.65.0","eslint-plugin-react":"^7.37.5","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^72.0.0","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.0","@typescript-eslint/rule-tester":"latest","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.6.5_1786383959512_0.29296622559302743","host":"s3://npm-registry-packages-npm-production"}},"15.6.6":{"name":"@sarj/eslint-plugin","version":"15.6.6","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.6.6","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"51350d8c241a9d178b948bb511a37d0d5f9eefa1","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.6.6.tgz","fileCount":7,"integrity":"sha512-bwCXyScBZzjgmUVivxWKuzyvO6eycdvIxmuOSsG2HrMRMtj5LEuy/qWkN1p/lV76ogrMTEosKHFRaxX7rZFpZA==","signatures":[{"sig":"MEQCIB70K13iGLFMBzTipqLfeTPOsAvuL/OEiFdKNT7hx6gBAiAYU0muAy/qW01vc4rwjim1SLGPeooi1X27fk8waH1+QQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.6.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1368730},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3fdb68f3-1605-4126-839d-3c98445f8db8"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"^0.28.1","nanoid@<3.3.17":"3.3.17","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-bwCXyScBZzjgmUVivxWKuzyvO6eycdvIxmuOSsG2HrMRMtj5LEuy/qWkN1p/lV76ogrMTEosKHFRaxX7rZFpZA==","repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","allowScripts":{"esbuild@0.28.1":true,"fsevents@2.3.3":true},"dependencies":{"@typescript-eslint/utils":"^8.67.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.2","devDependencies":{"tsup":"latest","eslint":"^10.8.1","vitest":"latest","@eslint/js":"10.0.1","typescript":"latest","@types/node":"latest","@eslint/compat":"^2.1.0","eslint-plugin-zod":"^4.9.1","typescript-eslint":"^8.67.0","eslint-plugin-react":"^7.37.5","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^73.0.0","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.1","@typescript-eslint/rule-tester":"latest","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.6.6_1786392884096_0.5619068448762743","host":"s3://npm-registry-packages-npm-production"}},"15.6.7":{"name":"@sarj/eslint-plugin","version":"15.6.7","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.6.7","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"a54653d021d09639983e2684074a725e2647a099","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.6.7.tgz","fileCount":7,"integrity":"sha512-CrTdcHVxde8UUPZQoE5J+y9AnKBqtMH9iSUZEHFSvBkpWIBxYHLpIyvH8sJc6WL8fFRop1su6DoWVMu1l3MazA==","signatures":[{"sig":"MEQCIHmkMyWpjNLbk+gyb0BFrJY8K9mULJEbmsGU8J8xcrgVAiAZkgedo0E32qmIxCd7r9RM/M0aiC6Wfb2FnkzTN4FHbw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.6.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1368838},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3fdb68f3-1605-4126-839d-3c98445f8db8"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"^0.28.1","nanoid@<3.3.17":"3.3.17","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-CrTdcHVxde8UUPZQoE5J+y9AnKBqtMH9iSUZEHFSvBkpWIBxYHLpIyvH8sJc6WL8fFRop1su6DoWVMu1l3MazA==","repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","allowScripts":{"esbuild@0.28.1":true,"fsevents@2.3.3":true},"dependencies":{"@typescript-eslint/utils":"^8.67.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.2","devDependencies":{"tsup":"latest","eslint":"^10.8.1","vitest":"latest","@eslint/js":"10.0.1","typescript":"latest","@types/node":"latest","@eslint/compat":"^2.1.0","eslint-plugin-zod":"^4.9.1","typescript-eslint":"^8.67.0","eslint-plugin-react":"^7.37.5","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^73.0.0","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.1","@typescript-eslint/rule-tester":"latest","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.6.7_1786400994673_0.43715771090437094","host":"s3://npm-registry-packages-npm-production"}},"15.6.8":{"name":"@sarj/eslint-plugin","version":"15.6.8","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.6.8","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"84d7ca67e90c82e65b45efc83946b026ecdf87e1","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.6.8.tgz","fileCount":7,"integrity":"sha512-5FKQkLBBITfajDiiH7HKrAW3kaPnVUPDDYeHnXkz9AEWou3cW0JJHLIha/Z7FoWeWAuJF7yqQRsbMZql9Yvq9g==","signatures":[{"sig":"MEUCIQDKLyMbVUxTNZAzesaYUOwaQSAkiacFNqNUrHVe3FppHAIgTfdORkohDWrRFSArCvoTX4anN0lZZ/RR7hq2XoXFQss=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.6.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1402652},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3fdb68f3-1605-4126-839d-3c98445f8db8"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"^0.28.1","nanoid@<3.3.17":"3.3.17","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-5FKQkLBBITfajDiiH7HKrAW3kaPnVUPDDYeHnXkz9AEWou3cW0JJHLIha/Z7FoWeWAuJF7yqQRsbMZql9Yvq9g==","repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.16.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","allowScripts":{"esbuild@0.28.1":true,"fsevents@2.3.3":true},"dependencies":{"@typescript-eslint/utils":"^8.67.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.2","devDependencies":{"tsup":"latest","eslint":"^10.8.1","vitest":"latest","@eslint/js":"10.0.1","typescript":"latest","@types/node":"latest","@eslint/compat":"^2.1.0","eslint-plugin-zod":"^4.9.1","typescript-eslint":"^8.67.0","eslint-plugin-react":"^7.37.5","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^73.0.0","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.1","@typescript-eslint/rule-tester":"latest","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.6.8_1786473434322_0.9512709118532778","host":"s3://npm-registry-packages-npm-production"}},"15.6.9":{"name":"@sarj/eslint-plugin","version":"15.6.9","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.6.9","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"6848976e392984fce8b595be43cbbfb110498b70","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.6.9.tgz","fileCount":7,"integrity":"sha512-1YADfTY/ghc47+GKLT2NkWcsCGB7OljOi1IDsbUUKblqmYqwLBHlyJ/e0Coa3NL085u8uN3E/6hKntw4B5Pjfw==","signatures":[{"sig":"MEUCIQDhiGs3h1R8GUpgytixZ4zBUo6z5FLVuFlSIKVqBxgDIQIgLqpq3V67ZG9uOwgTvqqcpbLmaAvpEffKqF48HK+gllI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.6.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1410246},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3fdb68f3-1605-4126-839d-3c98445f8db8"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"^0.28.1","nanoid@<3.3.17":"3.3.17","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-1YADfTY/ghc47+GKLT2NkWcsCGB7OljOi1IDsbUUKblqmYqwLBHlyJ/e0Coa3NL085u8uN3E/6hKntw4B5Pjfw==","repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.17.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","allowScripts":{"esbuild@0.28.1":true,"fsevents@2.3.3":true},"dependencies":{"@typescript-eslint/utils":"^8.67.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.2","devDependencies":{"tsup":"latest","eslint":"^10.8.1","vitest":"latest","@eslint/js":"10.0.1","typescript":"latest","@types/node":"latest","@eslint/compat":"^2.1.0","eslint-plugin-zod":"^4.9.1","typescript-eslint":"^8.67.0","eslint-plugin-react":"^7.37.5","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^73.0.0","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.1","@typescript-eslint/rule-tester":"latest","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.6.9_1786922783428_0.3950206176729054","host":"s3://npm-registry-packages-npm-production"}},"15.7.0":{"name":"@sarj/eslint-plugin","version":"15.7.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.7.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"5e9ee1ecbd46742d1d42b1f63bb347f788575d51","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.7.0.tgz","fileCount":7,"integrity":"sha512-VAGvtXUCAoCQlAp1uIU2v5lPmz/ZC92tZthNWh8ODW//XVXqvc4dLdBRlslH4Ao7y7QEzqOmfywlUIVx+4x6Tg==","signatures":[{"sig":"MEYCIQDIm49K5oAJXjJKJc9Ph/itl6erq93pCBmSnfQklrfregIhAL4SjuEuOuJhSGrZ3dOXJ5lrD5HtHgnG0whnfZlUc/20","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1416343},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3fdb68f3-1605-4126-839d-3c98445f8db8"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"^0.28.1","nanoid@<3.3.17":"3.3.17","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-VAGvtXUCAoCQlAp1uIU2v5lPmz/ZC92tZthNWh8ODW//XVXqvc4dLdBRlslH4Ao7y7QEzqOmfywlUIVx+4x6Tg==","repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.17.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","allowScripts":{"esbuild@0.28.1":true,"fsevents@2.3.3":true},"dependencies":{"@typescript-eslint/utils":"^8.67.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.2","devDependencies":{"tsup":"latest","eslint":"^10.8.1","vitest":"latest","@eslint/js":"10.0.1","typescript":"latest","@types/node":"latest","@eslint/compat":"^2.1.0","eslint-plugin-zod":"^4.9.1","typescript-eslint":"^8.67.0","eslint-plugin-react":"^7.37.5","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^73.0.0","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.1","@typescript-eslint/rule-tester":"latest","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.7.0_1786927224999_0.27900189817123877","host":"s3://npm-registry-packages-npm-production"}},"15.8.0":{"name":"@sarj/eslint-plugin","version":"15.8.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.8.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"4757defe7f948146fe3e36741062b2f7b7a5f140","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.8.0.tgz","fileCount":7,"integrity":"sha512-Z2NoFuDpCefKaEpIM5MyGMhkBnInBdZtx4k7nK8D9VFIrt5SyLHh0I/9mBhb3z3tqQ07aSwPHmOM1TX+ZW+paQ==","signatures":[{"sig":"MEUCIQCCrr6A/LuymWcuRf4W6PiicC2j2m1Osbev9nyzdKqcBwIgI/RgJKw2N4PjNCKT6CUcznNV08SH/827Nkzagb/5b80=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1456675},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3fdb68f3-1605-4126-839d-3c98445f8db8"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"^0.28.1","nanoid@<3.3.17":"3.3.17","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-Z2NoFuDpCefKaEpIM5MyGMhkBnInBdZtx4k7nK8D9VFIrt5SyLHh0I/9mBhb3z3tqQ07aSwPHmOM1TX+ZW+paQ==","repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.17.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","allowScripts":{"esbuild@0.28.1":true,"fsevents@2.3.3":true},"dependencies":{"@typescript-eslint/utils":"^8.67.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.2","devDependencies":{"tsup":"latest","eslint":"^10.8.1","vitest":"latest","@eslint/js":"10.0.1","typescript":"latest","@types/node":"latest","@eslint/compat":"^2.1.0","eslint-plugin-zod":"^4.9.1","typescript-eslint":"^8.67.0","eslint-plugin-react":"^7.37.5","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^73.0.0","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.1","@typescript-eslint/rule-tester":"latest","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.8.0_1786932147582_0.07788272925679851","host":"s3://npm-registry-packages-npm-production"}},"15.8.1":{"name":"@sarj/eslint-plugin","version":"15.8.1","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.8.1","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"fc8e274feba0f431c707c2155e75178207c27612","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.8.1.tgz","fileCount":7,"integrity":"sha512-FC6NkGal50ydyyGw0anx9DLz5EWMOjUOiwW2LffMyKeC3qSCuf/8YKVxZXwB7zIUPJrIQdplHPkPy0ZnYZmOzg==","signatures":[{"sig":"MEYCIQCSPlg8+CPo3GFUHMyi9MSvlZJ7uqhx3fWDb1gmTaPArQIhANz4CdtdM1TlfTsHhVlnmFD3w+EDMYsGIqJe/6NczlD3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.8.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1456535},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3fdb68f3-1605-4126-839d-3c98445f8db8"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"^0.28.1","nanoid@<3.3.17":"3.3.17","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-FC6NkGal50ydyyGw0anx9DLz5EWMOjUOiwW2LffMyKeC3qSCuf/8YKVxZXwB7zIUPJrIQdplHPkPy0ZnYZmOzg==","repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.17.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","allowScripts":{"esbuild@0.28.1":true,"fsevents@2.3.3":true},"dependencies":{"@typescript-eslint/utils":"^8.67.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.2","devDependencies":{"tsup":"latest","eslint":"^10.8.1","vitest":"latest","@eslint/js":"10.0.1","typescript":"latest","@types/node":"latest","@eslint/compat":"^2.1.0","eslint-plugin-zod":"^4.9.1","typescript-eslint":"^8.67.0","eslint-plugin-react":"^7.37.5","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^73.0.0","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.1","@typescript-eslint/rule-tester":"latest","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.8.1_1786933504889_0.802732065524757","host":"s3://npm-registry-packages-npm-production"}},"15.8.2":{"name":"@sarj/eslint-plugin","version":"15.8.2","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.8.2","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"c93089ed787233147ea7da481d083524489623b8","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.8.2.tgz","fileCount":7,"integrity":"sha512-9k1gX1Z54NsN4apFteMtqAB4sPKrptPIC2SI579RyX1EA0FL8tfNcyTZNdRM2StNreCsplNmjcpE5vdcu2/bbA==","signatures":[{"sig":"MEQCIEsI/3HfQkney9hJRm/dHXr5CERcGs2UYJlw3nCesBRmAiAcdYoZWeyZNAttjvf1MaqbtwIu5LtlE4D64dPgcjLYhg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.8.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1461354},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3fdb68f3-1605-4126-839d-3c98445f8db8"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"^0.28.1","nanoid@<3.3.17":"3.3.17","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-9k1gX1Z54NsN4apFteMtqAB4sPKrptPIC2SI579RyX1EA0FL8tfNcyTZNdRM2StNreCsplNmjcpE5vdcu2/bbA==","repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.17.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","allowScripts":{"esbuild@0.28.1":true,"fsevents@2.3.3":true},"dependencies":{"@typescript-eslint/utils":"^8.67.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.2","devDependencies":{"tsup":"latest","eslint":"^10.8.1","vitest":"latest","@eslint/js":"10.0.1","typescript":"latest","@types/node":"latest","@eslint/compat":"^2.1.0","eslint-plugin-zod":"^4.9.1","typescript-eslint":"^8.67.0","eslint-plugin-react":"^7.37.5","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^73.0.0","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.1","@typescript-eslint/rule-tester":"latest","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.8.2_1786968839570_0.6428026902453556","host":"s3://npm-registry-packages-npm-production"}},"15.9.0":{"name":"@sarj/eslint-plugin","version":"15.9.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.9.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"e86fe048f16a13eb0317111e1857235dbf48983d","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.9.0.tgz","fileCount":7,"integrity":"sha512-DJJo2D9qlY6LiDZbKWJJn0Svl3Ysl6x1uiziPt/1njhy1t+ex7KYM+C0JUjS62/P0wGH62TbjTWQcJyfqHnMHA==","signatures":[{"sig":"MEQCID4IhVqXuOz/YqQXbMLooqib3bXo+wloj+NckVpjNFdlAiA+rkAvfrXRTeYlPWxQKjl6/P16X/JzeYIMyDZ65UMR4Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1475958},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3fdb68f3-1605-4126-839d-3c98445f8db8"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"^0.28.1","nanoid@<3.3.17":"3.3.17","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-DJJo2D9qlY6LiDZbKWJJn0Svl3Ysl6x1uiziPt/1njhy1t+ex7KYM+C0JUjS62/P0wGH62TbjTWQcJyfqHnMHA==","repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.17.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","allowScripts":{"esbuild@0.28.1":true,"fsevents@2.3.3":true},"dependencies":{"@typescript-eslint/utils":"^8.67.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.2","devDependencies":{"tsup":"latest","eslint":"^10.8.1","vitest":"latest","@eslint/js":"10.0.1","typescript":"latest","@types/node":"latest","@eslint/compat":"^2.1.0","eslint-plugin-zod":"^4.9.1","typescript-eslint":"^8.67.0","eslint-plugin-react":"^7.37.5","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^73.0.0","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.1","@typescript-eslint/rule-tester":"latest","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.9.0_1786969393446_0.047275636564570345","host":"s3://npm-registry-packages-npm-production"}},"15.10.0":{"name":"@sarj/eslint-plugin","version":"15.10.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.10.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"15cb75dfd2a95a7e9b78dedb8c1bf9c32fc81da2","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.10.0.tgz","fileCount":7,"integrity":"sha512-GdC7PocBN4CuxWMEEBWvwrBGOuaaF4oWY+QlFNgHPvUwrjMzN2jXlwYSHOne1gvbBo2e9MFYVtlVr50mgwm+5Q==","signatures":[{"sig":"MEQCIFZAIHCeaYn0L0kIIasYGG3f0vEWmbEhaAIwe/muLj7bAiBUJSjcjlUiuRENK7iHu5IhkfSPph+QSJ6Pe61SQqvp+w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1485117},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3fdb68f3-1605-4126-839d-3c98445f8db8"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"^0.28.1","nanoid@<3.3.17":"3.3.17","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-GdC7PocBN4CuxWMEEBWvwrBGOuaaF4oWY+QlFNgHPvUwrjMzN2jXlwYSHOne1gvbBo2e9MFYVtlVr50mgwm+5Q==","repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.17.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","allowScripts":{"esbuild@0.28.1":true,"fsevents@2.3.3":true},"dependencies":{"@typescript-eslint/utils":"^8.67.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.2","devDependencies":{"tsup":"latest","eslint":"^10.8.1","vitest":"latest","@eslint/js":"10.0.1","typescript":"latest","@types/node":"latest","@eslint/compat":"^2.1.0","eslint-plugin-zod":"^4.9.1","typescript-eslint":"^8.67.0","eslint-plugin-react":"^7.37.5","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^73.0.0","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.1","@typescript-eslint/rule-tester":"latest","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.10.0_1787074420279_0.3808609592157415","host":"s3://npm-registry-packages-npm-production"}},"15.10.1":{"name":"@sarj/eslint-plugin","version":"15.10.1","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.10.1","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"15c7cbfdc6f4d15862620b11c07fbd1b90c04170","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.10.1.tgz","fileCount":7,"integrity":"sha512-HrJ0bzl0Qafr+UcXShoV3v6RIGEOFATKchKh4gHo+IF/I8z49Yqu8dZUeDUZsPIk/jYVXdIV8UwOPYp2avXjWw==","signatures":[{"sig":"MEUCIFsnhDkbK7yUEkO/jis3eLQyzZKnv0kBdBFAbzVQGHlvAiEA8G9vZAfI+1vA4ccfRbXpEOMJiiEW9C+K2S/RBAJMxfg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.10.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1486427},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3fdb68f3-1605-4126-839d-3c98445f8db8"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"^0.28.1","nanoid@<3.3.17":"3.3.17","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-HrJ0bzl0Qafr+UcXShoV3v6RIGEOFATKchKh4gHo+IF/I8z49Yqu8dZUeDUZsPIk/jYVXdIV8UwOPYp2avXjWw==","repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.17.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","allowScripts":{"esbuild@0.28.1":true,"fsevents@2.3.3":true},"dependencies":{"@typescript-eslint/utils":"^8.67.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.2","devDependencies":{"tsup":"latest","eslint":"^10.8.1","vitest":"latest","@eslint/js":"10.0.1","typescript":"latest","@types/node":"latest","@eslint/compat":"^2.1.0","eslint-plugin-zod":"^4.9.1","typescript-eslint":"^8.67.0","eslint-plugin-react":"^7.37.5","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^73.0.0","@typescript-eslint/utils":"latest","@typescript-eslint/parser":"latest","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.1","@typescript-eslint/rule-tester":"latest","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.10.1_1787078607529_0.5830171607095869","host":"s3://npm-registry-packages-npm-production"}},"15.10.3":{"name":"@sarj/eslint-plugin","version":"15.10.3","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.10.3","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"8f603da1114ffab080f5289a034351f371217407","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.10.3.tgz","fileCount":7,"integrity":"sha512-l7h63BruI16cMhJs5Z/zlnSO/Zb1ERwOImvo0WoBSwP3qXob0/bymGf9aswKmzoEF1S/7EPAXmuyWATtS189Yw==","signatures":[{"sig":"MEUCIC0zUFwRopQfwqZiZr5pntQzCEVB0R8puTrvV5pIzZQ5AiEA3jCfLRjsO5GV4PL3CJQ2BlH6aNYKt/Z1FkxnpkbzwdQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.10.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1486425},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3fdb68f3-1605-4126-839d-3c98445f8db8"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"0.28.2","nanoid@<3.3.18":"3.3.18","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-l7h63BruI16cMhJs5Z/zlnSO/Zb1ERwOImvo0WoBSwP3qXob0/bymGf9aswKmzoEF1S/7EPAXmuyWATtS189Yw==","repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.17.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","allowScripts":{"esbuild@0.28.2":true,"fsevents@2.3.3":true},"dependencies":{"@typescript-eslint/utils":"^8.67.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.2","devDependencies":{"tsup":"latest","eslint":"^10.8.1","vitest":"4.1.11","@eslint/js":"10.0.1","typescript":"6.0.3","@types/node":"26.2.0","@eslint/compat":"^2.1.0","eslint-plugin-zod":"^4.9.1","typescript-eslint":"^8.67.0","eslint-plugin-react":"^7.37.5","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^73.0.0","@typescript-eslint/utils":"8.67.0","@typescript-eslint/parser":"8.67.0","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.1","@typescript-eslint/rule-tester":"8.67.0","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.10.3_1787090844312_0.21722712318029824","host":"s3://npm-registry-packages-npm-production"}},"15.10.4":{"name":"@sarj/eslint-plugin","version":"15.10.4","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.10.4","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"8f21b3fd374ad34c295c45873c64facb442c341f","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.10.4.tgz","fileCount":7,"integrity":"sha512-Q+ZrLHdrgGBnY1TaPy1s0DOXq2929eRq5xnHUrw5KkmQ+bZWs/yezg++f5Zcvd8xN2W9QorqBSF17cUfjzaYOA==","signatures":[{"sig":"MEYCIQCyH+XM2m3BZCQcrdOS9g3ii9RmYB85vL+qRdICRzoiEgIhALo6CI1nOrWaCnGjZ3+zEDOvIeZ8v2WlZ6ieJXHbT5oV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.10.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1489766},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3fdb68f3-1605-4126-839d-3c98445f8db8"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"0.28.2","nanoid@<3.3.18":"3.3.18","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-Q+ZrLHdrgGBnY1TaPy1s0DOXq2929eRq5xnHUrw5KkmQ+bZWs/yezg++f5Zcvd8xN2W9QorqBSF17cUfjzaYOA==","repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.17.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","allowScripts":{"esbuild@0.28.2":true,"fsevents@2.3.3":true},"dependencies":{"@typescript-eslint/utils":"^8.67.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.2","devDependencies":{"tsup":"latest","eslint":"^10.8.1","vitest":"4.1.11","@eslint/js":"10.0.1","typescript":"6.0.3","@types/node":"26.2.0","@eslint/compat":"^2.1.0","eslint-plugin-zod":"^4.9.1","typescript-eslint":"^8.67.0","eslint-plugin-react":"^7.37.5","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^73.0.0","@typescript-eslint/utils":"8.67.0","@typescript-eslint/parser":"8.67.0","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.1","@typescript-eslint/rule-tester":"8.67.0","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.10.4_1787112502283_0.45216477336060334","host":"s3://npm-registry-packages-npm-production"}},"15.11.0":{"name":"@sarj/eslint-plugin","version":"15.11.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.11.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"0f18f0603175e507cf06561e919fdb528844899b","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.11.0.tgz","fileCount":7,"integrity":"sha512-BX1y+t4hO6hPadVaOcu0p17MwNxik8y0NxoTmJUQ+JmQ/1a/U8qtmZILkGVH6MOoSpfF/Og01ZGORmume+R8cQ==","signatures":[{"sig":"MEUCIQCkVyhhgACJhe90rwk27HQtm+oT8I+QdkygOj6JD8SAfAIgb600WKNcF/mhYb9P2hzf1/rvruqvQCPqzHvjJTsEA6M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1520174},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3fdb68f3-1605-4126-839d-3c98445f8db8"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"0.28.2","nanoid@<3.3.18":"3.3.18","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-BX1y+t4hO6hPadVaOcu0p17MwNxik8y0NxoTmJUQ+JmQ/1a/U8qtmZILkGVH6MOoSpfF/Og01ZGORmume+R8cQ==","repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.17.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","allowScripts":{"esbuild@0.28.2":true,"fsevents@2.3.3":true},"dependencies":{"@typescript-eslint/utils":"^8.67.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.2","devDependencies":{"tsup":"latest","eslint":"^10.8.1","vitest":"4.1.11","@eslint/js":"10.0.1","typescript":"6.0.3","@types/node":"26.2.0","@eslint/compat":"^2.1.0","eslint-plugin-zod":"^4.9.1","typescript-eslint":"^8.67.0","eslint-plugin-react":"^7.37.5","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^73.0.0","@typescript-eslint/utils":"8.67.0","@typescript-eslint/parser":"8.67.0","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.1","@typescript-eslint/rule-tester":"8.67.0","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.11.0_1787166012796_0.0017449491818870566","host":"s3://npm-registry-packages-npm-production"}},"15.12.0":{"name":"@sarj/eslint-plugin","version":"15.12.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.12.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/standards/issues"},"dist":{"shasum":"37517f329085b94f2e42e82c471cf63dadf56af2","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.12.0.tgz","fileCount":7,"integrity":"sha512-GIhcHHKmy37XhNBvWiaaWP5xxHUuoK8W8GKiiDjDM0fwMPfgCkglhRiIT28gzbizRacgpxRYpPJO93cGTRAwvA==","signatures":[{"sig":"MEUCIQC4K3nFgVY42Z61Z+X/knoip5bhoo6D4T7emcu0znS3CQIgP/M1ye9Ny05uz+fYbSErlYvXQfr21inVMOJQSDQLyHI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.12.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1555689},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3fdb68f3-1605-4126-839d-3c98445f8db8"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"0.28.2","nanoid@<3.3.18":"3.3.18","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-GIhcHHKmy37XhNBvWiaaWP5xxHUuoK8W8GKiiDjDM0fwMPfgCkglhRiIT28gzbizRacgpxRYpPJO93cGTRAwvA==","repository":{"url":"git+https://github.com/sarj-ai/standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.17.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","allowScripts":{"esbuild@0.28.2":true,"fsevents@2.3.3":true},"dependencies":{"@typescript-eslint/utils":"^8.67.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.2","devDependencies":{"tsup":"latest","eslint":"^10.8.1","vitest":"4.1.11","@eslint/js":"10.0.1","typescript":"6.0.3","@types/node":"26.2.0","@eslint/compat":"^2.1.0","eslint-plugin-zod":"^4.9.1","typescript-eslint":"^8.67.0","eslint-plugin-react":"^7.37.5","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^73.0.0","@typescript-eslint/utils":"8.67.0","@typescript-eslint/parser":"8.67.0","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.1","@typescript-eslint/rule-tester":"8.67.0","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.12.0_1787170561010_0.3324981040613113","host":"s3://npm-registry-packages-npm-production"}},"15.12.1":{"name":"@sarj/eslint-plugin","version":"15.12.1","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.12.1","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/code-standards/issues"},"dist":{"shasum":"43cb3a8b5ce2b70148d1364ab0aadf16e2a5148c","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.12.1.tgz","fileCount":7,"integrity":"sha512-TWPkEkjMQWCx9z0ZLawDldPKnSPdLLj+vcGN83lYr+HCTd8xbbeARIA1JEJJ591rOBYNHwZlWyIidD57KhO+2w==","signatures":[{"sig":"MEYCIQCWg5adexieugNp06bBRTvdTBRqQB8SJn/KHFLFv6ZjzwIhAJ/QRiN0DuwOPxZFmGuPfAjCi2itZQLViTIeKniaY/gc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.12.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1555774},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c75544fe-71b3-4013-8f37-5754f7d65efb"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"0.28.2","nanoid@<3.3.18":"3.3.18","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-TWPkEkjMQWCx9z0ZLawDldPKnSPdLLj+vcGN83lYr+HCTd8xbbeARIA1JEJJ591rOBYNHwZlWyIidD57KhO+2w==","repository":{"url":"git+https://github.com/sarj-ai/code-standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.17.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","allowScripts":{"esbuild@0.28.2":true,"fsevents@2.3.3":true},"dependencies":{"@typescript-eslint/utils":"^8.67.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.2","devDependencies":{"tsup":"latest","eslint":"^10.8.1","vitest":"4.1.11","@eslint/js":"10.0.1","typescript":"6.0.3","@types/node":"26.2.0","@eslint/compat":"^2.1.0","eslint-plugin-zod":"^4.9.1","typescript-eslint":"^8.67.0","eslint-plugin-react":"^7.37.5","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^73.0.0","@typescript-eslint/utils":"8.67.0","@typescript-eslint/parser":"8.67.0","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.1","@typescript-eslint/rule-tester":"8.67.0","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.12.1_1787229791955_0.796170698668397","host":"s3://npm-registry-packages-npm-production"}},"15.13.0":{"name":"@sarj/eslint-plugin","version":"15.13.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.13.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/code-standards/issues"},"dist":{"shasum":"c6c86e6ae57713a509bb97adb5b690f6385a3fad","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.13.0.tgz","fileCount":7,"integrity":"sha512-Pz8Ys0ZV8OMMQGmk9TuKBc/xZxFaUZMNF1aaIqlq8G7lXB+80r9cpJNABaaDaSQXEBPo5yeGIaoY0di+cpZwEA==","signatures":[{"sig":"MEQCIB2eqnoM9PdrKKS02D1Clcu4f3vLnz1x73qbW2zq3khUAiAY1/S32uLzghBs0XwttvK0xqJfAvkg0FiT24RKPWmmFA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.13.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1589062},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c75544fe-71b3-4013-8f37-5754f7d65efb"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"0.28.2","nanoid@<3.3.18":"3.3.18","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-Pz8Ys0ZV8OMMQGmk9TuKBc/xZxFaUZMNF1aaIqlq8G7lXB+80r9cpJNABaaDaSQXEBPo5yeGIaoY0di+cpZwEA==","repository":{"url":"git+https://github.com/sarj-ai/code-standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.17.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","allowScripts":{"esbuild@0.28.2":true,"fsevents@2.3.3":true},"dependencies":{"@typescript-eslint/utils":"^8.67.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.2","devDependencies":{"tsup":"latest","eslint":"^10.8.1","vitest":"4.1.11","@eslint/js":"10.0.1","typescript":"6.0.3","@types/node":"26.2.0","@eslint/compat":"^2.1.0","eslint-plugin-zod":"^4.9.1","typescript-eslint":"^8.67.0","eslint-plugin-react":"^7.37.5","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^73.0.0","@typescript-eslint/utils":"8.67.0","@typescript-eslint/parser":"8.67.0","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.1","@typescript-eslint/rule-tester":"8.67.0","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.13.0_1787361273389_0.8380727311540539","host":"s3://npm-registry-packages-npm-production"}},"15.13.1":{"name":"@sarj/eslint-plugin","version":"15.13.1","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.13.1","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/code-standards/issues"},"dist":{"shasum":"55b54f4881be906d4cd36025a0b746df6becb2ae","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.13.1.tgz","fileCount":7,"integrity":"sha512-Qa8sCDqqJk4szMNHRpedppubfKOLJfuSMu4/DKj+maCxor42clnr23kBHMSiYSs0mSvQTCR1s/oem8kQHb5mcQ==","signatures":[{"sig":"MEUCICifTUz1IVlF9Ge5qfXjC1JC0vB6+/aSaCdvPrlaTbcCAiEAvHiUDWnMTgt4/ny9j/MMgJ//tbQHx0ZZ5YwUlbPd6wM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.13.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1589104},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs eslint.naming-options.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c75544fe-71b3-4013-8f37-5754f7d65efb"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"0.28.2","nanoid@<3.3.18":"3.3.18","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-Qa8sCDqqJk4szMNHRpedppubfKOLJfuSMu4/DKj+maCxor42clnr23kBHMSiYSs0mSvQTCR1s/oem8kQHb5mcQ==","repository":{"url":"git+https://github.com/sarj-ai/code-standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.17.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","allowScripts":{"esbuild@0.28.2":true,"fsevents@2.3.3":true},"dependencies":{"@typescript-eslint/utils":"^8.67.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.2","devDependencies":{"tsup":"latest","eslint":"^10.8.1","vitest":"4.1.11","@eslint/js":"10.0.1","typescript":"6.0.3","@types/node":"26.2.0","@eslint/compat":"^2.1.0","eslint-plugin-zod":"^4.9.1","typescript-eslint":"^8.67.0","eslint-plugin-react":"^7.37.5","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^73.0.0","@typescript-eslint/utils":"8.67.0","@typescript-eslint/parser":"8.67.0","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.1","@typescript-eslint/rule-tester":"8.67.0","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.13.1_1787379752859_0.01510489352127764","host":"s3://npm-registry-packages-npm-production"}},"15.13.2":{"name":"@sarj/eslint-plugin","version":"15.13.2","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.13.2","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/code-standards/issues"},"dist":{"shasum":"992c525a8242602326d6550968f73fb31e4f391c","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.13.2.tgz","fileCount":7,"integrity":"sha512-+N8F2bRg5+yfJlXCIMTBQiWHddOES5yz64+nXMYOc9CThuSPI1DNMLvilbHZs6jXoLhMEKgEniyp4jLT3ub6LQ==","signatures":[{"sig":"MEUCIQCNIkuxMyHMIBPUOnJ0tEe1eB4rwxHfvfHVfESbZD+58gIgafml7zIdWBf/fPUA47wZNiCoJ0EvX6OY3xshOPk66wk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.13.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1591633},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs eslint.naming-options.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c75544fe-71b3-4013-8f37-5754f7d65efb"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"0.28.2","nanoid@<3.3.18":"3.3.18","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-+N8F2bRg5+yfJlXCIMTBQiWHddOES5yz64+nXMYOc9CThuSPI1DNMLvilbHZs6jXoLhMEKgEniyp4jLT3ub6LQ==","repository":{"url":"git+https://github.com/sarj-ai/code-standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.17.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","allowScripts":{"esbuild@0.28.2":true,"fsevents@2.3.3":true},"dependencies":{"@typescript-eslint/utils":"^8.67.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.2","devDependencies":{"tsup":"latest","eslint":"^10.8.1","vitest":"4.1.11","@eslint/js":"10.0.1","typescript":"6.0.3","@types/node":"26.2.0","@eslint/compat":"^2.1.0","eslint-plugin-zod":"^4.9.1","typescript-eslint":"^8.67.0","eslint-plugin-react":"^7.37.5","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^73.0.0","@typescript-eslint/utils":"8.67.0","@typescript-eslint/parser":"8.67.0","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.1","@typescript-eslint/rule-tester":"8.67.0","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.13.2_1787436219015_0.7878246078620952","host":"s3://npm-registry-packages-npm-production"}},"15.13.3":{"name":"@sarj/eslint-plugin","version":"15.13.3","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.13.3","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/code-standards/issues"},"dist":{"shasum":"08a2b3f396125b0ceff266f23d64451df14dbfd3","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.13.3.tgz","fileCount":7,"integrity":"sha512-SEyIFqFUmOouDsI2BD0Dhn/y2NMCHCZz6uctybZLAEQW1Sm0Eo/81+GmuxYQeyNaFgHvqbaJuB6w01NvmPj9YQ==","signatures":[{"sig":"MEUCIGKG0uH5rE+JA1jvpCcPDJ1yMYsLc3wxjiWtQxTOD7isAiEAtjUCe0zoOJ+thZn/7nD4ky9ylh7dfZpxVO5bs/96XoM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.13.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1598349},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs eslint.naming-options.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c75544fe-71b3-4013-8f37-5754f7d65efb"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"0.28.2","nanoid@<3.3.18":"3.3.18","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-SEyIFqFUmOouDsI2BD0Dhn/y2NMCHCZz6uctybZLAEQW1Sm0Eo/81+GmuxYQeyNaFgHvqbaJuB6w01NvmPj9YQ==","repository":{"url":"git+https://github.com/sarj-ai/code-standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.17.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","allowScripts":{"esbuild@0.28.2":true,"fsevents@2.3.3":true},"dependencies":{"@typescript-eslint/utils":"^8.67.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.2","devDependencies":{"tsup":"latest","eslint":"^10.8.1","vitest":"4.1.11","@eslint/js":"10.0.1","typescript":"6.0.3","@types/node":"26.2.0","@eslint/compat":"^2.1.0","eslint-plugin-zod":"^4.9.1","typescript-eslint":"^8.67.0","eslint-plugin-react":"^7.37.5","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^73.0.0","@typescript-eslint/utils":"8.67.0","@typescript-eslint/parser":"8.67.0","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.1","@typescript-eslint/rule-tester":"8.67.0","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.13.3_1787676188195_0.6436651283957553","host":"s3://npm-registry-packages-npm-production"}},"15.14.0":{"name":"@sarj/eslint-plugin","version":"15.14.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.14.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/code-standards/issues"},"dist":{"shasum":"6fc613f98ad4aaf6ac5a78a436820222bbf0ba03","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.14.0.tgz","fileCount":7,"integrity":"sha512-F1MKz/XcN0i3brTsR9oj4GX5VgtwxWAcaXLei/AW2lGdCM+7d4hBbOkWTHyZ3O3IskJqfT18MRVpo6jL8V4JqA==","signatures":[{"sig":"MEUCICD4XBdPXsr03xzj2W2Qt4NfkH1MXy1N+nXng4ZPKeXRAiEA230Y6EXC1Woqce4gbwtdEsJrSMH4LSH/t5h+q+oDqwI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.14.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1613348},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs eslint.naming-options.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c75544fe-71b3-4013-8f37-5754f7d65efb"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"0.28.2","nanoid@<3.3.18":"3.3.18","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-F1MKz/XcN0i3brTsR9oj4GX5VgtwxWAcaXLei/AW2lGdCM+7d4hBbOkWTHyZ3O3IskJqfT18MRVpo6jL8V4JqA==","repository":{"url":"git+https://github.com/sarj-ai/code-standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.17.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","allowScripts":{"esbuild@0.28.2":true,"fsevents@2.3.3":true},"dependencies":{"@typescript-eslint/utils":"^8.67.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.2","devDependencies":{"tsup":"latest","eslint":"^10.8.1","vitest":"4.1.11","@eslint/js":"10.0.1","typescript":"6.0.3","@types/node":"26.2.0","@eslint/compat":"^2.1.0","eslint-plugin-zod":"^4.9.1","typescript-eslint":"^8.67.0","eslint-plugin-react":"^7.37.5","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^73.0.0","@typescript-eslint/utils":"8.67.0","@typescript-eslint/parser":"8.67.0","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.1","@typescript-eslint/rule-tester":"8.67.0","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.14.0_1787687866341_0.1147804256647933","host":"s3://npm-registry-packages-npm-production"}},"15.15.0":{"name":"@sarj/eslint-plugin","version":"15.15.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.15.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/code-standards/issues"},"dist":{"shasum":"185530354505d261a0b8344016c8588775821344","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.15.0.tgz","fileCount":7,"integrity":"sha512-A0lXLNcSQN8rO2BUU8N2DeFEyS7DJ9C0resDF0vEGI/Vj/MpmN1OnV26nXuinaDUbQ3PJIqTbOZQB65+hUFMpA==","signatures":[{"sig":"MEUCIQCbAe8z6r1eTPfdCA/rEJwykiQq1p1gDiANqSyyEc+VfwIgTRYirfcTkOznJ+d6tNlSb3tPfL+f7zMNungIclecuA4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.15.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1678026},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs module-constant-naming-options.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c75544fe-71b3-4013-8f37-5754f7d65efb"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"0.28.2","nanoid@<3.3.18":"3.3.18","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-A0lXLNcSQN8rO2BUU8N2DeFEyS7DJ9C0resDF0vEGI/Vj/MpmN1OnV26nXuinaDUbQ3PJIqTbOZQB65+hUFMpA==","repository":{"url":"git+https://github.com/sarj-ai/code-standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.17.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","allowScripts":{"esbuild@0.28.2":true,"fsevents@2.3.3":true},"dependencies":{"@typescript-eslint/utils":"^8.67.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.2","devDependencies":{"tsup":"latest","eslint":"^10.8.1","vitest":"4.1.11","@eslint/js":"10.0.1","typescript":"6.0.3","@types/node":"26.2.0","@eslint/compat":"^2.1.0","eslint-plugin-n":"^18.3.0","eslint-plugin-zod":"^4.9.1","typescript-eslint":"^8.67.0","eslint-plugin-react":"^7.37.5","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^73.0.0","@typescript-eslint/utils":"8.67.0","@typescript-eslint/parser":"8.67.0","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.1","@typescript-eslint/rule-tester":"8.67.0","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.15.0_1788092011708_0.6557437889737157","host":"s3://npm-registry-packages-npm-production"}},"15.16.0":{"name":"@sarj/eslint-plugin","version":"15.16.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.16.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/code-standards/issues"},"dist":{"shasum":"d7434f459fd123e94d93ebdaa9d9ea4702146613","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.16.0.tgz","fileCount":7,"integrity":"sha512-96igeXykHeU2ImovaWB4yctlUsdbolvUXShamoZ2ilwfSB7KtumveQinoMiuUyuaYYKYWzspwrKAGm59UOxowA==","signatures":[{"sig":"MEUCIEfKLPgviUzwJercHLudf26nMdB8NIaNSo9JF4VvlPsUAiEA8DQRepMuoeQlflJMWIfTJsFJ6NwIp1lIxIAKum0ZWlc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.16.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1721207},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs module-constant-naming-options.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c75544fe-71b3-4013-8f37-5754f7d65efb"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"0.28.2","nanoid@<3.3.18":"3.3.18","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-96igeXykHeU2ImovaWB4yctlUsdbolvUXShamoZ2ilwfSB7KtumveQinoMiuUyuaYYKYWzspwrKAGm59UOxowA==","repository":{"url":"git+https://github.com/sarj-ai/code-standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.17.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","allowScripts":{"esbuild@0.28.2":true,"fsevents@2.3.3":true},"dependencies":{"@typescript-eslint/utils":"^8.67.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.2","devDependencies":{"tsup":"latest","eslint":"^10.8.1","vitest":"4.1.11","@eslint/js":"10.0.1","typescript":"6.0.3","@types/node":"26.2.0","@eslint/compat":"^2.1.0","eslint-plugin-n":"^18.3.0","eslint-plugin-zod":"^4.9.1","typescript-eslint":"^8.67.0","eslint-plugin-react":"^7.37.5","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^73.0.0","@typescript-eslint/utils":"8.67.0","@typescript-eslint/parser":"8.67.0","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.1","@typescript-eslint/rule-tester":"8.67.0","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.16.0_1788104453289_0.24014566465184828","host":"s3://npm-registry-packages-npm-production"}},"15.16.1":{"name":"@sarj/eslint-plugin","version":"15.16.1","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.16.1","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/code-standards/issues"},"dist":{"shasum":"e38c4583da965466537aa9e3fd219db15aefee18","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.16.1.tgz","fileCount":7,"integrity":"sha512-k7j22BLjlmJ15neSihpBPGBkuanY3xRoYTVuhOIddtyQIwqcgxNcJZjk1BEnx/i5ywAxoUa0tGB4G/w0iO9QlA==","signatures":[{"sig":"MEQCIH6hHjC4yVWrmajbzxN2yHz5ZMXmlPMEFiNq4pCIEJlGAiBLiyGnntmyzcvEIHYELjp0FpyiFNL3K1mpy6bH97A4Cw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.16.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1721207},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs module-constant-naming-options.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c75544fe-71b3-4013-8f37-5754f7d65efb"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"0.28.2","nanoid@<3.3.18":"3.3.18","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-k7j22BLjlmJ15neSihpBPGBkuanY3xRoYTVuhOIddtyQIwqcgxNcJZjk1BEnx/i5ywAxoUa0tGB4G/w0iO9QlA==","repository":{"url":"git+https://github.com/sarj-ai/code-standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.17.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","allowScripts":{"esbuild@0.28.2":true,"fsevents@2.3.3":true},"dependencies":{"@typescript-eslint/utils":"^8.68.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.2","devDependencies":{"tsup":"latest","eslint":"^10.9.1","vitest":"4.1.11","@eslint/js":"10.0.1","typescript":"6.0.3","@types/node":"26.4.0","@eslint/compat":"^2.1.0","eslint-plugin-n":"^18.3.0","eslint-plugin-zod":"^4.9.1","typescript-eslint":"^8.68.0","eslint-plugin-react":"^7.37.5","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^74.0.0","@typescript-eslint/utils":"8.68.0","@typescript-eslint/parser":"8.68.0","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.1","@typescript-eslint/rule-tester":"8.68.0","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.16.1_1788117890825_0.7770195162517641","host":"s3://npm-registry-packages-npm-production"}},"15.17.0":{"name":"@sarj/eslint-plugin","version":"15.17.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.17.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/code-standards/issues"},"dist":{"shasum":"f6a7430493036e4928ed549a57b4020e7239a253","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.17.0.tgz","fileCount":7,"integrity":"sha512-B21Y+IbIZldEjJvzfw1HD2wAm/fZEt0WCfxaf21+JvIDPwxIoA+LgIdqbo7CzBWwo0vnpRB/rt/AxLlPK0Olig==","signatures":[{"sig":"MEYCIQC0Z39QSDz0q3/5DbkZuFliW5DuseQjIhkth9s6GQJlsAIhANGEZSKbqFqmmz3gzhMho/cJ5XKT1MxRqx3CAHoGCptO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.17.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1751239},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs module-constant-naming-options.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c75544fe-71b3-4013-8f37-5754f7d65efb"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"0.28.2","nanoid@<3.3.18":"3.3.18","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-B21Y+IbIZldEjJvzfw1HD2wAm/fZEt0WCfxaf21+JvIDPwxIoA+LgIdqbo7CzBWwo0vnpRB/rt/AxLlPK0Olig==","repository":{"url":"git+https://github.com/sarj-ai/code-standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.17.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","allowScripts":{"esbuild@0.28.2":true,"fsevents@2.3.3":true},"dependencies":{"@typescript-eslint/utils":"^8.68.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.2","devDependencies":{"tsup":"latest","eslint":"^10.9.1","vitest":"4.1.11","@eslint/js":"10.0.1","typescript":"6.0.3","@types/node":"26.4.0","@eslint/compat":"^2.1.0","eslint-plugin-n":"^18.3.0","eslint-plugin-zod":"^4.9.1","typescript-eslint":"^8.68.0","eslint-plugin-react":"^7.37.5","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^74.0.0","@typescript-eslint/utils":"8.68.0","@typescript-eslint/parser":"8.68.0","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.1","@typescript-eslint/rule-tester":"8.68.0","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.17.0_1788131165935_0.743080940657391","host":"s3://npm-registry-packages-npm-production"}},"15.17.1":{"name":"@sarj/eslint-plugin","version":"15.17.1","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.17.1","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/code-standards/issues"},"dist":{"shasum":"b11f4a461e6f4ca223c85cdc2671436c1d9f7281","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.17.1.tgz","fileCount":7,"integrity":"sha512-iJHIZrZqxriSplW91Er7lqy4KMFiRMlsHr73OXHGZteScwg+fxfEp1kJZ7Dbdxrp6bAApvzLEkaYufta+ktQAA==","signatures":[{"sig":"MEUCIQC/AM/JbhAiIfIFTYCU7SuTC4yZ0CkjL5x/ATfexEowEgIgBrI+8FZAQ5cSx4IEB9uQ/pIr4ZYi1JFrOOyqw3ef8Nc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.17.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1788008},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs module-constant-naming-options.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c75544fe-71b3-4013-8f37-5754f7d65efb"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"0.28.2","nanoid@<3.3.18":"3.3.18","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-iJHIZrZqxriSplW91Er7lqy4KMFiRMlsHr73OXHGZteScwg+fxfEp1kJZ7Dbdxrp6bAApvzLEkaYufta+ktQAA==","repository":{"url":"git+https://github.com/sarj-ai/code-standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.17.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","allowScripts":{"esbuild@0.28.2":true,"fsevents@2.3.3":true},"dependencies":{"@typescript-eslint/utils":"^8.68.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.2","devDependencies":{"tsup":"latest","eslint":"^10.9.1","vitest":"4.1.11","@eslint/js":"10.0.1","typescript":"6.0.3","@types/node":"26.4.0","@eslint/compat":"^2.1.0","eslint-plugin-n":"^18.3.0","eslint-plugin-zod":"^4.9.1","typescript-eslint":"^8.68.0","eslint-plugin-react":"^7.37.5","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^74.0.0","@typescript-eslint/utils":"8.68.0","@typescript-eslint/parser":"8.68.0","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.1","@typescript-eslint/rule-tester":"8.68.0","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.17.1_1788264189521_0.06045187383649653","host":"s3://npm-registry-packages-npm-production"}},"15.17.2":{"name":"@sarj/eslint-plugin","version":"15.17.2","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.17.2","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/code-standards/issues"},"dist":{"shasum":"85d6acfdada9d977cdfd5b572309bcfebb912d61","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.17.2.tgz","fileCount":7,"integrity":"sha512-mj6Qbaxeo616mVjNvPnauF2bEEu/SjatQIW+CCPCqRRFFcxl+sE0AlaTbwE4gw8zkGvybbB5LIKSZ25aaezQWg==","signatures":[{"sig":"MEUCIQClP9JZ5qrOotl6aELgEyLEMYBmAdd+gNCfs0n/0VAsrgIgQhmWM64fkIOZCOFED46RBQ1VUEbfX4lW7IGIvM4UTl0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.17.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1806844},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs module-constant-naming-options.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c75544fe-71b3-4013-8f37-5754f7d65efb"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"0.28.2","nanoid@<3.3.18":"3.3.18","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-mj6Qbaxeo616mVjNvPnauF2bEEu/SjatQIW+CCPCqRRFFcxl+sE0AlaTbwE4gw8zkGvybbB5LIKSZ25aaezQWg==","repository":{"url":"git+https://github.com/sarj-ai/code-standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.17.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","allowScripts":{"esbuild@0.28.2":true,"fsevents@2.3.3":true},"dependencies":{"@typescript-eslint/utils":"^8.68.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.2","devDependencies":{"tsup":"latest","eslint":"^10.9.1","vitest":"4.1.11","@eslint/js":"10.0.1","typescript":"6.0.3","@types/node":"26.4.0","@eslint/compat":"^2.1.0","eslint-plugin-n":"^18.3.0","eslint-plugin-zod":"^4.9.1","typescript-eslint":"^8.68.0","eslint-plugin-react":"^7.37.5","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^74.0.0","@typescript-eslint/utils":"8.68.0","@typescript-eslint/parser":"8.68.0","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.1","@typescript-eslint/rule-tester":"8.68.0","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.17.2_1788366533784_0.9540803736924528","host":"s3://npm-registry-packages-npm-production"}},"15.17.3":{"name":"@sarj/eslint-plugin","version":"15.17.3","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.17.3","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/code-standards/issues"},"dist":{"shasum":"e4bb42b3908f4ec2758b27efa998174fabaefd41","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.17.3.tgz","fileCount":7,"integrity":"sha512-x1pOcKU7AfiR5LcMzVlWVmR4U9zxtqJH3z+zQ4PF8HAp7nsfEA4+1OADtv0Lv1+faZ4tW7hvBv1EEGbICXkjZA==","signatures":[{"sig":"MEQCHw7etXagnyFjeOx+haAoC/Q7cUjhhTPFTVE5pv9RaFICIQCoSCjiMJKiDRkUyQjUMWhgjDtFxdObvKq+A/4fDgSKnw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.17.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1839364},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs module-constant-naming-options.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c75544fe-71b3-4013-8f37-5754f7d65efb"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"0.28.2","nanoid@<3.3.18":"3.3.18","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-x1pOcKU7AfiR5LcMzVlWVmR4U9zxtqJH3z+zQ4PF8HAp7nsfEA4+1OADtv0Lv1+faZ4tW7hvBv1EEGbICXkjZA==","repository":{"url":"git+https://github.com/sarj-ai/code-standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.17.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","allowScripts":{"esbuild@0.28.2":true,"fsevents@2.3.3":true},"dependencies":{"jsonc-parser":"^3.3.1","@typescript-eslint/utils":"^8.68.0","@typescript-eslint/typescript-estree":"^8.68.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.2","devDependencies":{"tsup":"latest","eslint":"^10.9.1","vitest":"4.1.11","@eslint/js":"10.0.1","typescript":"6.0.3","@types/node":"26.4.0","@eslint/compat":"^2.1.0","eslint-plugin-n":"^18.3.0","eslint-plugin-zod":"^4.9.1","typescript-eslint":"^8.68.0","eslint-plugin-react":"^7.37.5","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^74.0.0","@typescript-eslint/utils":"8.68.0","@typescript-eslint/parser":"8.68.0","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.1","@typescript-eslint/rule-tester":"8.68.0","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.17.3_1788432101969_0.23406194147768078","host":"s3://npm-registry-packages-npm-production"}},"15.17.4":{"name":"@sarj/eslint-plugin","version":"15.17.4","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.17.4","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/code-standards/issues"},"dist":{"shasum":"03467b6c5f1da9ecda4116de7c2390c57daa03f9","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.17.4.tgz","fileCount":7,"integrity":"sha512-o+5wI4CKecGAPyw549l5FuMrsqIeSPJk7qQKOeCJS3/qEoAAa+1OvlNwhV0VUiEUl8bDJ7iI9Qjeou7LyIToxQ==","signatures":[{"sig":"MEUCID58TglFTxa7/wPOTefgkKF0HlXMgfVDK1r0BO7vDlhbAiEAwG2a6Mf2TNfOn+WXIwVlhap5M9qN802D6ymgRx9RsSo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIDqG3r1/GsO0LshN54VrkhBVEBhMOQatYNgGLIgvLa8JAiEArI2dfY1KenItIQSfxl8TUnizkdOVqj/GXZzjKjecKJo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.17.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1839562},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs module-constant-naming-options.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c75544fe-71b3-4013-8f37-5754f7d65efb"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"0.28.2","nanoid@<3.3.18":"3.3.18","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-o+5wI4CKecGAPyw549l5FuMrsqIeSPJk7qQKOeCJS3/qEoAAa+1OvlNwhV0VUiEUl8bDJ7iI9Qjeou7LyIToxQ==","repository":{"url":"git+https://github.com/sarj-ai/code-standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.17.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","allowScripts":{"esbuild@0.28.2":true,"fsevents@2.3.3":true},"dependencies":{"jsonc-parser":"^3.3.1","@typescript-eslint/utils":"^8.68.0","@typescript-eslint/typescript-estree":"^8.68.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.2","devDependencies":{"tsup":"latest","eslint":"^10.9.1","vitest":"4.1.11","@eslint/js":"10.0.1","typescript":"6.0.3","@types/node":"26.4.0","@eslint/compat":"^2.1.0","eslint-plugin-n":"^18.3.0","eslint-node-test":"0.4.0","eslint-plugin-zod":"^4.9.1","typescript-eslint":"^8.68.0","eslint-plugin-jest":"29.16.6","eslint-plugin-react":"^7.37.5","@vitest/eslint-plugin":"1.6.27","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^74.0.0","@typescript-eslint/utils":"8.68.0","eslint-plugin-playwright":"2.11.0","@typescript-eslint/parser":"8.68.0","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.1","eslint-plugin-testing-library":"7.16.2","@typescript-eslint/rule-tester":"8.68.0","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.17.4_1788488195014_0.13079502514484886","host":"s3://npm-registry-packages-npm-production"}},"15.17.5":{"name":"@sarj/eslint-plugin","version":"15.17.5","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.17.5","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/code-standards/issues"},"dist":{"shasum":"3a609ed146ab1934e2d7479bb158b3431df50311","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.17.5.tgz","fileCount":7,"integrity":"sha512-lJ1d1cbybHamihteNTERia16P/9JdW9JRBAc3Rf9KeoAvxdIg5LFD1aqf9GLS3taXzacyOTW38atdBkBt13fBQ==","signatures":[{"sig":"MEYCIQCulEPdkPFbP91q8x63qd682GcK1g7q1U/Thludvj6dnAIhAMkV7YBEk+OLoeu1xKEBjF/J4fEBDx/Z07tJCMZXQlgy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDdu9DCRdDsVr+Ql1phOvjhuQZdKD6EX3F2038hrOzB8QIgJ6Ub556BLWC954ZvZzWKS/G1LtUrKZyV7qQf6KBzlBE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.17.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1899824},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs module-constant-naming-options.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c75544fe-71b3-4013-8f37-5754f7d65efb"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"0.28.2","nanoid@<3.3.18":"3.3.18","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-lJ1d1cbybHamihteNTERia16P/9JdW9JRBAc3Rf9KeoAvxdIg5LFD1aqf9GLS3taXzacyOTW38atdBkBt13fBQ==","repository":{"url":"git+https://github.com/sarj-ai/code-standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.19.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","allowScripts":{"esbuild@0.28.2":true,"fsevents@2.3.3":true},"dependencies":{"jsonc-parser":"^3.3.1","@typescript-eslint/utils":"^8.68.0","@typescript-eslint/typescript-estree":"^8.68.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.2","devDependencies":{"tsup":"latest","eslint":"^10.9.1","vitest":"4.1.11","@eslint/js":"10.0.1","typescript":"6.0.3","@types/node":"26.4.0","@eslint/compat":"^2.1.0","eslint-plugin-n":"^18.3.0","eslint-node-test":"0.4.0","eslint-plugin-zod":"^4.9.1","typescript-eslint":"^8.68.0","eslint-plugin-jest":"29.16.6","eslint-plugin-react":"^7.37.5","@vitest/eslint-plugin":"1.6.27","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^74.0.0","@typescript-eslint/utils":"8.68.0","eslint-plugin-playwright":"2.11.0","@typescript-eslint/parser":"8.68.0","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.1","eslint-plugin-testing-library":"7.16.2","@typescript-eslint/rule-tester":"8.68.0","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.17.5_1788578568366_0.8419337475391748","host":"s3://npm-registry-packages-npm-production"}},"15.17.6":{"name":"@sarj/eslint-plugin","version":"15.17.6","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.17.6","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/code-standards/issues"},"dist":{"shasum":"67f3c2e8b956c23428398c3ec5364efd76cb7a56","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.17.6.tgz","fileCount":7,"integrity":"sha512-MDzFC4of/lwq39GT95a8OtdRo6FdDq/AgEmKAEvDQTV8auhBemJPOXRNec/DomTUh58lDF01pv4bACtMNJWv1w==","signatures":[{"sig":"MEYCIQCnbOfU9DoGy9NvY/Z6XNakhx9Wu7Ao/FGieH20/4lk1AIhAINbJv+y5S1LL8ACgoRd5ixMmgWX9gRYMERi76RdDro/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIFTe5zuJVOwESAEAjf7E5Bi7utWQCWRsKEVQh58zVFtGAiEA8rfshWeRd+xL1R4rOVsCVJ/gxayW5AB3BsQq8sErIjE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.17.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1904317},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs module-constant-naming-options.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c75544fe-71b3-4013-8f37-5754f7d65efb"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"0.28.2","nanoid@<3.3.18":"3.3.18","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-MDzFC4of/lwq39GT95a8OtdRo6FdDq/AgEmKAEvDQTV8auhBemJPOXRNec/DomTUh58lDF01pv4bACtMNJWv1w==","repository":{"url":"git+https://github.com/sarj-ai/code-standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.19.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","allowScripts":{"esbuild@0.28.2":true,"fsevents@2.3.3":true},"dependencies":{"jsonc-parser":"^3.3.1","@typescript-eslint/utils":"^8.68.0","@typescript-eslint/typescript-estree":"^8.68.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.2","devDependencies":{"tsup":"latest","eslint":"^10.9.1","vitest":"4.1.11","@eslint/js":"10.0.1","typescript":"6.0.3","@types/node":"26.4.0","@eslint/compat":"^2.1.0","eslint-plugin-n":"^18.3.0","eslint-node-test":"0.4.0","eslint-plugin-zod":"^4.9.1","typescript-eslint":"^8.68.0","eslint-plugin-jest":"29.16.6","eslint-plugin-react":"^7.37.5","@vitest/eslint-plugin":"1.6.27","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^74.0.0","@typescript-eslint/utils":"8.68.0","eslint-plugin-playwright":"2.11.0","@typescript-eslint/parser":"8.68.0","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.1","eslint-plugin-testing-library":"7.16.2","@typescript-eslint/rule-tester":"8.68.0","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.17.6_1788618501379_0.6985199872684038","host":"s3://npm-registry-packages-npm-production"}},"15.17.7":{"name":"@sarj/eslint-plugin","version":"15.17.7","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.17.7","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/code-standards/issues"},"dist":{"shasum":"c7156540b949e3bde08e0bb23eea3d65f34e7f6c","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.17.7.tgz","fileCount":7,"integrity":"sha512-gjh/ak21TjnqPd0s8aD1tpfOTUGTug5wDyPgHAR9Crgbq0f0thM711k002u/2T16S/mblpaN6pv2mrnyN1hFSA==","signatures":[{"sig":"MEUCIQC6KoYkjSMBxxJYYQCx3PztbRvvYgjM661T3Za89CVcAAIgVbMWHW7qJWUH3cqElA+u174z5c9kMMH2heg+r859hwQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIGVHYb50135yezawEo4ykNz9uZJRIOppuwVXTKopeC+bAiAWUdN69KXMNKdxuqWXp5+xM60/XDoOefHvuVAAH/uMhQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.17.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1907229},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs module-constant-naming-options.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c75544fe-71b3-4013-8f37-5754f7d65efb"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"0.28.2","nanoid@<3.3.18":"3.3.18","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-gjh/ak21TjnqPd0s8aD1tpfOTUGTug5wDyPgHAR9Crgbq0f0thM711k002u/2T16S/mblpaN6pv2mrnyN1hFSA==","repository":{"url":"git+https://github.com/sarj-ai/code-standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.19.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","allowScripts":{"esbuild@0.28.2":true,"fsevents@2.3.3":true},"dependencies":{"jsonc-parser":"^3.3.1","@typescript-eslint/utils":"^8.68.0","@typescript-eslint/typescript-estree":"^8.68.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.2","devDependencies":{"tsup":"latest","eslint":"^10.9.1","vitest":"4.1.11","@eslint/js":"10.0.1","typescript":"6.0.3","@types/node":"26.4.0","@eslint/compat":"^2.1.0","eslint-plugin-n":"^18.3.0","eslint-node-test":"0.4.0","eslint-plugin-zod":"^4.9.1","typescript-eslint":"^8.68.0","eslint-plugin-jest":"29.16.6","eslint-plugin-react":"^7.37.5","@vitest/eslint-plugin":"1.6.27","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^74.0.0","@typescript-eslint/utils":"8.68.0","eslint-plugin-playwright":"2.11.0","@typescript-eslint/parser":"8.68.0","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.1","eslint-plugin-testing-library":"7.16.2","@typescript-eslint/rule-tester":"8.68.0","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.17.7_1788651027350_0.9228769788446607","host":"s3://npm-registry-packages-npm-production"}},"15.17.8":{"name":"@sarj/eslint-plugin","version":"15.17.8","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.17.8","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/code-standards/issues"},"dist":{"shasum":"a0084e3b082e962015ecefd0afd149676a2eba22","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.17.8.tgz","fileCount":7,"integrity":"sha512-ALT9UWMTyux/ydoC6hTkpHtX2D3Zylcxzdxrqa+sh/tXfI1KKS0TXwP5v7jPHeosjyFzGZksQPX9TuOy09mkwA==","signatures":[{"sig":"MEYCIQDbuMzc7egkOyR2d8T8M4533xV4JXDZzffPpytOUWwkNwIhAJGWelCCaDPCoZanX4nKNfif+ryLBupsKKrSdyaEx8V3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIADF0XH3WG962PClFB2NcO7zYTfDr3GEPocVBws1OcvoAiEAmvNIOcZ0W7HxwvOWZI/fbbsoMe2yvcaDYy9sTA9hVkc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.17.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1902003},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs module-constant-naming-options.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c75544fe-71b3-4013-8f37-5754f7d65efb"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"0.28.2","nanoid@<3.3.18":"3.3.18","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-ALT9UWMTyux/ydoC6hTkpHtX2D3Zylcxzdxrqa+sh/tXfI1KKS0TXwP5v7jPHeosjyFzGZksQPX9TuOy09mkwA==","repository":{"url":"git+https://github.com/sarj-ai/code-standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.19.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","allowScripts":{"esbuild@0.28.2":true,"fsevents@2.3.3":true},"dependencies":{"jsonc-parser":"^3.3.1","@typescript-eslint/utils":"^8.68.0","@typescript-eslint/typescript-estree":"^8.68.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.2","devDependencies":{"tsup":"latest","eslint":"^10.9.1","vitest":"4.1.11","@eslint/js":"10.0.1","typescript":"6.0.3","@types/node":"26.4.0","@eslint/compat":"^2.1.0","eslint-plugin-n":"^18.3.0","eslint-node-test":"0.4.0","eslint-plugin-zod":"^4.9.1","typescript-eslint":"^8.68.0","eslint-plugin-jest":"29.16.6","eslint-plugin-react":"^7.37.5","@vitest/eslint-plugin":"1.6.27","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^74.0.0","@typescript-eslint/utils":"8.68.0","eslint-plugin-playwright":"2.11.0","@typescript-eslint/parser":"8.68.0","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.1","eslint-plugin-testing-library":"7.16.2","@typescript-eslint/rule-tester":"8.68.0","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.17.8_1788692827700_0.19477756321028505","host":"s3://npm-registry-packages-npm-production"}},"15.17.9":{"name":"@sarj/eslint-plugin","version":"15.17.9","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.17.9","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/code-standards/issues"},"dist":{"shasum":"d5c9ebf1b2f086f94be0fbd4c4e1add9b34bd21c","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.17.9.tgz","fileCount":7,"integrity":"sha512-ouHks43cERfyi7tpt6XdpuXMsU/LgAGR/+vmaYZ4YoUT+Byf2CiICFHTIs93MyUAhmRo4gq52Tll0R1OLQRUpw==","signatures":[{"sig":"MEUCIQCmx986kVjST/rnW0KPf9d+qIntf5jVgm32CIAE09mGwwIgdDFiDh/Aw9kLWHOVqAGrh2+BIEC3bkYlg1hdvcnjGWo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCICneOxNMEiOytNnaK9NMiz7luS7fRi4tSNZBk3YIO8amAiAWUBWJ7dQVX5P5Z6yjmT6GiFYSrVYVVRkQQjIszuzcxw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.17.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1942012},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs module-constant-naming-options.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c75544fe-71b3-4013-8f37-5754f7d65efb"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"0.28.2","nanoid@<3.3.18":"3.3.18","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-ouHks43cERfyi7tpt6XdpuXMsU/LgAGR/+vmaYZ4YoUT+Byf2CiICFHTIs93MyUAhmRo4gq52Tll0R1OLQRUpw==","repository":{"url":"git+https://github.com/sarj-ai/code-standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.19.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","allowScripts":{"esbuild@0.28.2":true,"fsevents@2.3.3":true},"dependencies":{"jsonc-parser":"^3.3.1","@typescript-eslint/utils":"^8.68.0","@typescript-eslint/typescript-estree":"^8.68.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.2","devDependencies":{"tsup":"latest","eslint":"^10.9.1","vitest":"4.1.11","@eslint/js":"10.0.1","typescript":"6.0.3","@types/node":"26.4.0","@eslint/compat":"^2.1.0","eslint-plugin-n":"^18.3.0","eslint-node-test":"0.4.0","eslint-plugin-zod":"^4.9.1","typescript-eslint":"^8.68.0","eslint-plugin-jest":"29.16.6","eslint-plugin-react":"^7.37.5","@vitest/eslint-plugin":"1.6.27","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^74.0.0","@typescript-eslint/utils":"8.68.0","eslint-plugin-playwright":"2.11.0","@typescript-eslint/parser":"8.68.0","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.1","eslint-plugin-testing-library":"7.16.2","@typescript-eslint/rule-tester":"8.68.0","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.17.9_1788697731325_0.5964053567156802","host":"s3://npm-registry-packages-npm-production"}},"15.17.10":{"name":"@sarj/eslint-plugin","version":"15.17.10","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.17.10","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/code-standards/issues"},"dist":{"shasum":"61e966e8e9f2e037898a58539fc4baebc071f96e","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.17.10.tgz","fileCount":7,"integrity":"sha512-nZHXfjYyviBLVu2qvrSCEXQaurviNJNWBXHC/q+8aPGhNg5eP67QnJAdvLJYibR/9I0cDkx0br83rLbpz2daNA==","signatures":[{"sig":"MEYCIQDKK38712jExOcKh1U7lqJss5TW5wm8cQ/MIJHHDXZzVAIhAPUpfSkb1VjUum1f01wSAoKUxLPVH0GhVRmTR2z4ySWw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCID7Y6sW51jDgXZUqKKZDdV+1xWzXGCbsGIaWiVynNMj6AiEAw4W+KyGUPwpBnA14KIaLp7YAOt/Df8OK6bGXsIZRVck=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.17.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1940860},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs module-constant-naming-options.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c75544fe-71b3-4013-8f37-5754f7d65efb"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"0.28.2","nanoid@<3.3.18":"3.3.18","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-nZHXfjYyviBLVu2qvrSCEXQaurviNJNWBXHC/q+8aPGhNg5eP67QnJAdvLJYibR/9I0cDkx0br83rLbpz2daNA==","repository":{"url":"git+https://github.com/sarj-ai/code-standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.19.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","allowScripts":{"esbuild@0.28.2":true,"fsevents@2.3.3":true},"dependencies":{"jsonc-parser":"^3.3.1","@typescript-eslint/utils":"^8.68.0","@typescript-eslint/typescript-estree":"^8.68.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.2","devDependencies":{"tsup":"latest","eslint":"^10.9.1","vitest":"4.1.11","@eslint/js":"10.0.1","typescript":"6.0.3","@types/node":"26.4.0","@eslint/compat":"^2.1.0","eslint-plugin-n":"^18.3.0","eslint-node-test":"0.4.0","eslint-plugin-zod":"^4.9.1","typescript-eslint":"^8.68.0","eslint-plugin-jest":"29.16.6","eslint-plugin-react":"^7.37.5","@vitest/eslint-plugin":"1.6.27","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^74.0.0","@typescript-eslint/utils":"8.68.0","eslint-plugin-playwright":"2.11.0","@typescript-eslint/parser":"8.68.0","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.1","eslint-plugin-testing-library":"7.16.2","@typescript-eslint/rule-tester":"8.68.0","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.17.10_1788699796886_0.34300720200711554","host":"s3://npm-registry-packages-npm-production"}},"15.17.11":{"name":"@sarj/eslint-plugin","version":"15.17.11","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.17.11","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/code-standards/issues"},"dist":{"shasum":"4985a474e1764c0c6cdffa8866a5edeb99dd1bd7","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.17.11.tgz","fileCount":7,"integrity":"sha512-gqzVXm3Ek5fFd+mqeT4eS3QmkfnUbeWpidvfpo7h5ZwReHXd8BjhyYi4Y2qRPDDdqiFJuTWgXk2hhOGYqn8O6w==","signatures":[{"sig":"MEQCIDLwO3xavjXgveQflpjxf74fm/+4jHAwcJPRWMfy1BzOAiAekU27MQTP1gFYADSvVZzyxvbZlHjRgH1YBRHup/pb8g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQD+/sK3c6ABqbT4bdFQ5Q36ZZou7Egf0il1sz2B2MsXSwIgSKNLKQeBRQPAdE0ghnSu3Tln+TIZJ/w02LGk7lt2lhk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.17.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2021549},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs module-constant-naming-options.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c75544fe-71b3-4013-8f37-5754f7d65efb"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"0.28.2","nanoid@<3.3.18":"3.3.18","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-gqzVXm3Ek5fFd+mqeT4eS3QmkfnUbeWpidvfpo7h5ZwReHXd8BjhyYi4Y2qRPDDdqiFJuTWgXk2hhOGYqn8O6w==","repository":{"url":"git+https://github.com/sarj-ai/code-standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.19.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","allowScripts":{"esbuild@0.28.2":true,"fsevents@2.3.3":true},"dependencies":{"jsonc-parser":"^3.3.1","@typescript-eslint/utils":"^8.68.0","@typescript-eslint/typescript-estree":"^8.68.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.2","devDependencies":{"tsup":"latest","eslint":"^10.9.1","vitest":"4.1.11","@eslint/js":"10.0.1","typescript":"6.0.3","@types/node":"26.4.0","@eslint/compat":"^2.1.0","eslint-plugin-n":"^18.3.0","eslint-node-test":"0.4.0","eslint-plugin-zod":"^4.9.1","typescript-eslint":"^8.68.0","eslint-plugin-jest":"29.16.6","eslint-plugin-react":"^7.37.5","@vitest/eslint-plugin":"1.6.27","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^74.0.0","@typescript-eslint/utils":"8.68.0","eslint-plugin-playwright":"2.11.0","@typescript-eslint/parser":"8.68.0","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.1","eslint-plugin-testing-library":"7.16.2","@typescript-eslint/rule-tester":"8.68.0","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.17.11_1788707510634_0.16869703767410416","host":"s3://npm-registry-packages-npm-production"}},"15.17.12":{"name":"@sarj/eslint-plugin","version":"15.17.12","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.17.12","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/code-standards/issues"},"dist":{"shasum":"2d7ecb5de45fa53d15ba1deedb452ee9895ea163","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.17.12.tgz","fileCount":7,"integrity":"sha512-C29SMs8O4H0e5+VQtSzWbxclfE3fR4M6zLg+D/zkjknOjAoBuZYuPsbsIrnB8FPgOVB2qmX0F4dCDIq7P5Qzyw==","signatures":[{"sig":"MEUCIQDvKzjhq8aG9RHyg4RP31ir+eY7Rn21rahVrScW+A2UoQIgRk7aL+1PKOv4KwebvXvR1tRHtnuT/7hnagG5LPf267Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDWGyFJqqg9MnaYEA6t6v2TDRUxAIadsO2WQmDMOeZeswIhAP4y7T88bWvUTF0afXkbkXUqvqn64cKx6DKgvt5VkfIX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.17.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2056932},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs module-constant-naming-options.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c75544fe-71b3-4013-8f37-5754f7d65efb"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"0.28.2","nanoid@<3.3.18":"3.3.18","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-C29SMs8O4H0e5+VQtSzWbxclfE3fR4M6zLg+D/zkjknOjAoBuZYuPsbsIrnB8FPgOVB2qmX0F4dCDIq7P5Qzyw==","repository":{"url":"git+https://github.com/sarj-ai/code-standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.19.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","allowScripts":{"esbuild@0.28.2":true,"fsevents@2.3.3":true},"dependencies":{"jsonc-parser":"^3.3.1","@typescript-eslint/utils":"^8.68.0","@typescript-eslint/typescript-estree":"^8.68.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.2","devDependencies":{"tsup":"latest","eslint":"^10.9.1","vitest":"4.1.11","@eslint/js":"10.0.1","typescript":"6.0.3","@types/node":"26.4.0","@eslint/compat":"^2.1.0","eslint-plugin-n":"^18.3.0","eslint-node-test":"0.4.0","eslint-plugin-zod":"^4.9.1","typescript-eslint":"^8.68.0","eslint-plugin-jest":"29.16.6","eslint-plugin-react":"^7.37.5","@vitest/eslint-plugin":"1.6.27","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^74.0.0","@typescript-eslint/utils":"8.68.0","eslint-plugin-playwright":"2.11.0","@typescript-eslint/parser":"8.68.0","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.1","eslint-plugin-testing-library":"7.16.2","@typescript-eslint/rule-tester":"8.68.0","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.17.12_1789040734345_0.6536542680611992","host":"s3://npm-registry-packages-npm-production"}},"15.17.13":{"name":"@sarj/eslint-plugin","version":"15.17.13","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.17.13","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/code-standards/issues"},"dist":{"shasum":"ae6b8a35c22e2710729608814a32565763b76fa5","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.17.13.tgz","fileCount":7,"integrity":"sha512-NgVqnXa17eTLQTwVDflOQPLhZPUzkuidHP4w5NtXqkVpLJnRl32F2qg94XO6VDShqILBEqPnQKsjY+CBdgOxlw==","signatures":[{"sig":"MEYCIQCzmvtiGhoBeHF0hxlZxGmBrPqeOBea3brIerUiOVSNqQIhAPmznP3uWtlxz5YUXBVkMQnIWg0ec/IheITgV13NN2+5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDSmp9k+U7fXaAayS9F8RQ0E3EWgp+0pHZ/Rcai3WLfdQIgA6jUHmBw3uXO0FmGHXsffgNn6wV5WkmLuMuFBBUe3YA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.17.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2056932},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs module-constant-naming-options.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c75544fe-71b3-4013-8f37-5754f7d65efb"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"0.28.2","nanoid@<3.3.18":"3.3.18","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-NgVqnXa17eTLQTwVDflOQPLhZPUzkuidHP4w5NtXqkVpLJnRl32F2qg94XO6VDShqILBEqPnQKsjY+CBdgOxlw==","repository":{"url":"git+https://github.com/sarj-ai/code-standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.19.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","allowScripts":{"esbuild@0.28.2":true,"fsevents@2.3.3":true},"dependencies":{"jsonc-parser":"^3.3.1","@typescript-eslint/utils":"^8.68.0","@typescript-eslint/typescript-estree":"^8.68.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.2","devDependencies":{"tsup":"latest","eslint":"10.10.0","vitest":"4.1.11","@eslint/js":"10.0.1","typescript":"6.0.3","@types/node":"26.4.0","@eslint/compat":"^2.1.0","eslint-plugin-n":"^18.3.0","eslint-node-test":"0.4.0","eslint-plugin-zod":"^4.9.1","typescript-eslint":"^8.68.0","eslint-plugin-jest":"29.16.6","eslint-plugin-react":"^7.37.5","@vitest/eslint-plugin":"1.6.27","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^74.0.0","@typescript-eslint/utils":"8.68.0","eslint-plugin-playwright":"2.11.0","@typescript-eslint/parser":"8.68.0","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.1","eslint-plugin-testing-library":"7.16.2","@typescript-eslint/rule-tester":"8.68.0","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.17.13_1789046791516_0.16072544446464176","host":"s3://npm-registry-packages-npm-production"}},"15.17.14":{"name":"@sarj/eslint-plugin","version":"15.17.14","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.17.14","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/code-standards/issues"},"dist":{"shasum":"6689028c97c99863365345a58bc6538b5c892356","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.17.14.tgz","fileCount":7,"integrity":"sha512-M5PnMF6Cv3gEUENjBiXcLUImW7yqI1YtvBWTBGm1YaWO54lXmLKCxIsXiF555ovPs96vGEzoUMo6GUx7HOKBNA==","signatures":[{"sig":"MEUCIBwSyv9CXZG7ElLfVxt+oyaB2It5BaRRBOJ+QnBMDm4MAiEAoGp7T61ubZ0CO6ezwg/37hwTvNecVNBxxmsblhqCMO4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDSi3tGthIjtFcmtSjOegd7ZwyYvxqdzWSe4a2a9V9yFQIgDWXglpfCvIHMc+2itf95hTWCpspfPJJP6sS5vRFNFVE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.17.14","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2076363},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs module-constant-naming-options.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c75544fe-71b3-4013-8f37-5754f7d65efb"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"0.28.2","nanoid@<3.3.18":"3.3.18","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-M5PnMF6Cv3gEUENjBiXcLUImW7yqI1YtvBWTBGm1YaWO54lXmLKCxIsXiF555ovPs96vGEzoUMo6GUx7HOKBNA==","repository":{"url":"git+https://github.com/sarj-ai/code-standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.19.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","allowScripts":{"esbuild@0.28.2":true,"fsevents@2.3.3":true},"dependencies":{"jsonc-parser":"^3.3.1","@typescript-eslint/utils":"^8.68.0","@typescript-eslint/typescript-estree":"^8.68.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.2","devDependencies":{"tsup":"latest","eslint":"10.10.0","vitest":"4.1.11","@eslint/js":"10.0.1","typescript":"6.0.3","@types/node":"26.4.0","@eslint/compat":"^2.1.0","eslint-plugin-n":"^18.3.0","eslint-node-test":"0.4.0","eslint-plugin-zod":"^4.9.1","typescript-eslint":"^8.68.0","eslint-plugin-jest":"29.16.6","eslint-plugin-react":"^7.37.5","@vitest/eslint-plugin":"1.6.27","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^74.0.0","@typescript-eslint/utils":"8.68.0","eslint-plugin-playwright":"2.11.0","@typescript-eslint/parser":"8.68.0","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.1","eslint-plugin-testing-library":"7.16.2","@typescript-eslint/rule-tester":"8.68.0","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.17.14_1789060606683_0.9081668739895472","host":"s3://npm-registry-packages-npm-production"}},"15.17.16":{"name":"@sarj/eslint-plugin","version":"15.17.16","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.17.16","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/code-standards/issues"},"dist":{"shasum":"a6e6c8d9554a711c38d084f14694801e1e85023b","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.17.16.tgz","fileCount":7,"integrity":"sha512-msIHodMG0k9/VCF+3Gyn3nish2YjOSoW3d22b+4r7ekSSfUDz90CqX8DtNaAJKjErvwfrPszYPGxPHSltHq/3A==","signatures":[{"sig":"MEUCIQC89vLBK3NOGa6xdn/2yjNb/4xxO3MziXlCB4MmnCW6PAIgGYJxB+Ud9oYQg3e8MM7AuJ0Qzrt69A2M8+YYrD28pPo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIH4yXgJ9K7hUzHbLKMSj22akTXuEPEWjiCHNvkh2qdnuAiEA7mbpiPiJToL3VTyLwvOXh+kMiwwFYEZ+yGOzinO8LLo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.17.16","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2113164},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs module-constant-naming-options.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c75544fe-71b3-4013-8f37-5754f7d65efb"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"0.28.2","nanoid@<3.3.18":"3.3.18","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-msIHodMG0k9/VCF+3Gyn3nish2YjOSoW3d22b+4r7ekSSfUDz90CqX8DtNaAJKjErvwfrPszYPGxPHSltHq/3A==","repository":{"url":"git+https://github.com/sarj-ai/code-standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.19.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","allowScripts":{"esbuild@0.28.2":true,"fsevents@2.3.3":true},"dependencies":{"jsonc-parser":"^3.3.1","@typescript-eslint/utils":"^8.68.0","@typescript-eslint/typescript-estree":"^8.68.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.2","devDependencies":{"tsup":"latest","eslint":"10.10.0","vitest":"4.1.11","@eslint/js":"10.0.1","typescript":"6.0.3","@types/node":"26.4.0","@eslint/compat":"^2.1.0","eslint-plugin-n":"^18.3.0","eslint-node-test":"0.4.0","eslint-plugin-zod":"^4.9.1","typescript-eslint":"^8.68.0","eslint-plugin-jest":"29.16.6","eslint-plugin-react":"^7.37.5","@vitest/eslint-plugin":"1.6.27","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^74.0.0","@typescript-eslint/utils":"8.68.0","eslint-plugin-playwright":"2.11.0","@typescript-eslint/parser":"8.68.0","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.1","eslint-plugin-testing-library":"7.16.2","@typescript-eslint/rule-tester":"8.68.0","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.17.16_1789079859014_0.687854560580268","host":"s3://npm-registry-packages-npm-production"}},"15.17.17":{"name":"@sarj/eslint-plugin","version":"15.17.17","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.17.17","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/code-standards/issues"},"dist":{"shasum":"8aa81b865b4e6e18fde08614c379909b245c33e5","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.17.17.tgz","fileCount":7,"integrity":"sha512-SnOpPzAYbamEpG/SY0RJCQ7ldNaWLlnzhS7kbPhH0HQuYTTLz6PUrOlmHrXhP+iafO+YJh9ASRDGqYlKTukdJg==","signatures":[{"sig":"MEQCICsJOG76h+qnKV+Nst5fAtsSQWpvMs5DBdxEVi6CuZafAiB5XQ9tqf3VgTqAq2Wrmi2G2jQEI0rQ2g2BM8Op0XDBMQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQD9+ObpbQC8x3EGYNHoxoVqMYfMZ1ivFrj/wO+9tLGIDAIgWCNu2HrvTxckalu730Ea76oQ2yqcvAiU52YTRSwO6v0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.17.17","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2148713},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs module-constant-naming-options.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c75544fe-71b3-4013-8f37-5754f7d65efb"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"0.28.2","nanoid@<3.3.18":"3.3.18","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-SnOpPzAYbamEpG/SY0RJCQ7ldNaWLlnzhS7kbPhH0HQuYTTLz6PUrOlmHrXhP+iafO+YJh9ASRDGqYlKTukdJg==","repository":{"url":"git+https://github.com/sarj-ai/code-standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.19.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","allowScripts":{"esbuild@0.28.2":true,"fsevents@2.3.3":true},"dependencies":{"jsonc-parser":"^3.3.1","@typescript-eslint/utils":"^8.68.0","@typescript-eslint/typescript-estree":"^8.68.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.2","devDependencies":{"tsup":"latest","eslint":"10.10.0","vitest":"4.1.11","@eslint/js":"10.0.1","typescript":"6.0.3","@types/node":"26.4.0","@eslint/compat":"^2.1.0","eslint-plugin-n":"^18.3.0","eslint-node-test":"0.4.0","eslint-plugin-zod":"^4.9.1","typescript-eslint":"^8.68.0","eslint-plugin-jest":"29.16.6","eslint-plugin-react":"^7.37.5","@vitest/eslint-plugin":"1.6.27","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^74.0.0","@typescript-eslint/utils":"8.68.0","eslint-plugin-playwright":"2.11.0","@typescript-eslint/parser":"8.68.0","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.1","eslint-plugin-testing-library":"7.16.2","@typescript-eslint/rule-tester":"8.68.0","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.17.17_1789086577802_0.8371137732596707","host":"s3://npm-registry-packages-npm-production"}},"15.17.18":{"name":"@sarj/eslint-plugin","version":"15.17.18","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.17.18","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/code-standards/issues"},"dist":{"shasum":"78c2273b02367d6a1de49cdeb7249dcc93a60047","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.17.18.tgz","fileCount":7,"integrity":"sha512-eb2b8v7KhyVkJO+hYQ0omPMUb+nDE2G7IFFVrywmfLTfhGAmqiyHZ7nweeEPbAdM4wqcdeTTovs+ckMwfmZWIA==","signatures":[{"sig":"MEQCIDpmtl/APQ3sZJBDTXRSoU2rnjV+hwnCv34yoNTHBMqjAiBtlFhlPilwlrOz6S5/ANo2FGrWbdMCE3rvEZmM610Vsg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIF44cb4J/1X0wTRSLzBS4AwdNrj6UNeCCRd+7IrE+EkEAiEA96h6OQUB+qPzj4VNGDc1YeBSjGZtpgNXO6yhWO2dnoU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.17.18","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2149469},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs module-constant-naming-options.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c75544fe-71b3-4013-8f37-5754f7d65efb"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"0.28.2","nanoid@<3.3.18":"3.3.18","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-eb2b8v7KhyVkJO+hYQ0omPMUb+nDE2G7IFFVrywmfLTfhGAmqiyHZ7nweeEPbAdM4wqcdeTTovs+ckMwfmZWIA==","repository":{"url":"git+https://github.com/sarj-ai/code-standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.19.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","allowScripts":{"esbuild@0.28.2":true,"fsevents@2.3.3":true},"dependencies":{"jsonc-parser":"^3.3.1","@typescript-eslint/utils":"^8.68.0","@typescript-eslint/typescript-estree":"^8.68.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.2","devDependencies":{"tsup":"latest","eslint":"10.10.0","vitest":"4.1.11","@eslint/js":"10.0.1","typescript":"6.0.3","@types/node":"26.4.0","@eslint/compat":"^2.1.0","eslint-plugin-n":"^18.3.0","eslint-node-test":"0.4.0","eslint-plugin-zod":"^4.9.1","typescript-eslint":"^8.68.0","eslint-plugin-jest":"29.16.6","eslint-plugin-react":"^7.37.5","@vitest/eslint-plugin":"1.6.27","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^74.0.0","@typescript-eslint/utils":"8.68.0","eslint-plugin-playwright":"2.11.0","@typescript-eslint/parser":"8.68.0","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.1","eslint-plugin-testing-library":"7.16.2","@typescript-eslint/rule-tester":"8.68.0","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.17.18_1789435180519_0.35002931655374714","host":"s3://npm-registry-packages-npm-production"}},"15.19.0":{"name":"@sarj/eslint-plugin","version":"15.19.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.19.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/code-standards/issues"},"dist":{"shasum":"32ac3672071adb4b177de4d5744e27175c02db1a","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.19.0.tgz","fileCount":7,"integrity":"sha512-ljgRr22GbEbDSlqPPVKHH1t3H+YwmnEhlSyANIwGbzZAbgrTQy2CgDWn2FcpiFqxuf7oYlAbUChp5e0zTxwG0g==","signatures":[{"sig":"MEUCIQC5dsWiau04OIS9Pu2i3BBU1Iz3X5fJxckrXbe5uoztRAIgBK38flxrkvrRoM46+FXRbpb5uv8FX1fdF3iFD4uEnWY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDzIOPtEfcwkxC3hW5maDUTndnbesdhnS8/kYYRqrGgRQIgXyGNMaQkqSHBaRE8ecQRYqO8y2rqRmSce/w1V5MsOT8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.19.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2179792},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs module-constant-naming-options.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c75544fe-71b3-4013-8f37-5754f7d65efb"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"0.28.2","nanoid@<3.3.18":"3.3.18","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-ljgRr22GbEbDSlqPPVKHH1t3H+YwmnEhlSyANIwGbzZAbgrTQy2CgDWn2FcpiFqxuf7oYlAbUChp5e0zTxwG0g==","repository":{"url":"git+https://github.com/sarj-ai/code-standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.19.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","allowScripts":{"esbuild@0.28.2":true,"fsevents@2.3.3":true},"dependencies":{"jsonc-parser":"^3.3.1","@typescript-eslint/utils":"^8.68.0","@typescript-eslint/typescript-estree":"^8.68.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.2","devDependencies":{"tsup":"latest","eslint":"10.10.0","vitest":"4.1.11","@eslint/js":"10.0.1","typescript":"6.0.3","@types/node":"26.4.0","@eslint/compat":"^2.1.0","eslint-plugin-n":"^18.3.0","eslint-node-test":"0.4.0","eslint-plugin-zod":"^4.9.1","typescript-eslint":"^8.68.0","eslint-plugin-jest":"29.16.6","eslint-plugin-react":"^7.37.5","@vitest/eslint-plugin":"1.6.27","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^74.0.0","@typescript-eslint/utils":"8.68.0","eslint-plugin-playwright":"2.11.0","@typescript-eslint/parser":"8.68.0","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.1","eslint-plugin-testing-library":"7.16.2","@typescript-eslint/rule-tester":"8.68.0","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.19.0_1789578043537_0.3156701663817043","host":"s3://npm-registry-packages-npm-production"}},"15.20.0":{"name":"@sarj/eslint-plugin","version":"15.20.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.20.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/code-standards/issues"},"dist":{"shasum":"6d2a425be29efad9e2422a7d58b295420b91ab4d","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.20.0.tgz","fileCount":7,"integrity":"sha512-HKE0pW5fc3v/NIu6RuhGxQTKuux/r2ovbAmCUCMVQ/P4l2f1XIMHAEnDV1aCWbPIxI7JBRf76qoXy9JqlT4H2A==","signatures":[{"sig":"MEQCIFSZQFuzr98eG2pIcgzufNTjvJGHeZlD2HVCd+RCTIJQAiBKXImOGKt8EhCMm/g8TPHI4JsIxLSLv0rShwilBm6D+w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIFCDB5ZQgdVrCJvVsuPvEmhP9hFGzBzyHtu0uCcwx7bEAiBh/Qwe+7nLkYo/dww2p9YHhsTIWHuXb5f22vV2qlYYJA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.20.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2192734},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs module-constant-naming-options.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c75544fe-71b3-4013-8f37-5754f7d65efb"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"0.28.2","nanoid@<3.3.18":"3.3.18","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-HKE0pW5fc3v/NIu6RuhGxQTKuux/r2ovbAmCUCMVQ/P4l2f1XIMHAEnDV1aCWbPIxI7JBRf76qoXy9JqlT4H2A==","repository":{"url":"git+https://github.com/sarj-ai/code-standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.19.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","allowScripts":{"esbuild@0.28.2":true,"fsevents@2.3.3":true},"dependencies":{"jsonc-parser":"^3.3.1","@typescript-eslint/utils":"^8.68.0","@typescript-eslint/typescript-estree":"^8.68.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.2","devDependencies":{"tsup":"latest","eslint":"10.10.0","vitest":"4.1.11","@eslint/js":"10.0.1","typescript":"6.0.3","@types/node":"26.4.0","@eslint/compat":"^2.1.0","eslint-plugin-n":"^18.3.0","eslint-node-test":"0.4.0","eslint-plugin-zod":"^4.9.1","typescript-eslint":"^8.68.0","eslint-plugin-jest":"29.16.6","eslint-plugin-react":"^7.37.5","@vitest/eslint-plugin":"1.6.27","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^74.0.0","@typescript-eslint/utils":"8.68.0","eslint-plugin-playwright":"2.11.0","@typescript-eslint/parser":"8.68.0","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.1","eslint-plugin-testing-library":"7.16.2","@typescript-eslint/rule-tester":"8.68.0","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.20.0_1789580023739_0.8891699630329668","host":"s3://npm-registry-packages-npm-production"}},"15.21.0":{"name":"@sarj/eslint-plugin","version":"15.21.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.21.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/code-standards/issues"},"dist":{"shasum":"3379dc754daeb1415d93db5d80b852a776d46833","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.21.0.tgz","fileCount":7,"integrity":"sha512-9m22ObFaH6Nn7Tw2kFSyXp5WeRBzXmFw4NjEQOx4D9oXLDSLLXxR1upQFM/qtrDJQcp5kfPGu1/xt80UxZ59qw==","signatures":[{"sig":"MEUCIQCI0EZhC+M0UQyvDcKQek4zeSjX2mPNXDeY8C183M8A3gIgSjNHU7sdqTI9EU3HUchQXfZgnorWp29hcmDCCwKhqyA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCJI9/lcNIMcWHPhVWOeoG/OiRNQt2vPShQeAf5sIeklgIhAOALmFsnKOVEvi/SiiXuAevBtW6JlEe1tRifN3GJa0Cs","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.21.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2223614},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs module-constant-naming-options.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c75544fe-71b3-4013-8f37-5754f7d65efb"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"0.28.2","nanoid@<3.3.18":"3.3.18","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-9m22ObFaH6Nn7Tw2kFSyXp5WeRBzXmFw4NjEQOx4D9oXLDSLLXxR1upQFM/qtrDJQcp5kfPGu1/xt80UxZ59qw==","repository":{"url":"git+https://github.com/sarj-ai/code-standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.19.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","allowScripts":{"esbuild@0.28.2":true,"fsevents@2.3.3":true},"dependencies":{"jsonc-parser":"^3.3.1","@typescript-eslint/utils":"^8.68.0","@typescript-eslint/typescript-estree":"^8.68.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.2","devDependencies":{"tsup":"latest","eslint":"10.10.0","vitest":"4.1.11","@eslint/js":"10.0.1","typescript":"6.0.3","@types/node":"26.4.0","@eslint/compat":"^2.1.0","eslint-plugin-n":"^18.3.0","eslint-node-test":"0.4.0","eslint-plugin-zod":"^4.9.1","typescript-eslint":"^8.68.0","eslint-plugin-jest":"29.16.6","eslint-plugin-react":"^7.37.5","@vitest/eslint-plugin":"1.6.27","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^74.0.0","@typescript-eslint/utils":"8.68.0","eslint-plugin-playwright":"2.11.0","@typescript-eslint/parser":"8.68.0","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.1","eslint-plugin-testing-library":"7.16.2","@typescript-eslint/rule-tester":"8.68.0","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.21.0_1789582330197_0.37181365306673886","host":"s3://npm-registry-packages-npm-production"}},"15.21.1":{"name":"@sarj/eslint-plugin","version":"15.21.1","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.21.1","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/code-standards/issues"},"dist":{"shasum":"0a96957fbcbb84e68caf0dc2312b30e068f9b89f","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.21.1.tgz","fileCount":7,"integrity":"sha512-RJbDxfC6Y28y9AJlfltj4vwkk9WRD6Z0+Hsikr+oTjMZOJOH90ZNZXKyakTpAFVY/VqnE63SCyoO2En3/99ovA==","signatures":[{"sig":"MEUCIAyIniCwWS3UNak9qPYtBOTrCSn5dpKr5RTWknIlaocRAiEAtd1+Xbt8s3N9eiLbTyFLfB/0888l1NyFHxzqDQBMbAU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIDQJvyGoq+uRbIbvPGD6i/ukPLnGSdbW6kbjnH6vk67zAiAGFRLzP+DAsAaxQbDSMfDhu7O8dnoCzL+cuKWKAqxcqQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.21.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2255066},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs module-constant-naming-options.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c75544fe-71b3-4013-8f37-5754f7d65efb"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"0.28.2","nanoid@<3.3.18":"3.3.18","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-RJbDxfC6Y28y9AJlfltj4vwkk9WRD6Z0+Hsikr+oTjMZOJOH90ZNZXKyakTpAFVY/VqnE63SCyoO2En3/99ovA==","repository":{"url":"git+https://github.com/sarj-ai/code-standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.19.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","allowScripts":{"esbuild@0.28.2":true,"fsevents@2.3.3":true},"dependencies":{"jsonc-parser":"^3.3.1","@typescript-eslint/utils":"^8.68.0","@typescript-eslint/typescript-estree":"^8.68.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.2","devDependencies":{"tsup":"latest","eslint":"10.10.0","vitest":"4.1.11","@eslint/js":"10.0.1","typescript":"6.0.3","@types/node":"26.4.0","@eslint/compat":"^2.1.0","eslint-plugin-n":"^18.3.0","eslint-node-test":"0.4.0","eslint-plugin-zod":"^4.9.1","typescript-eslint":"^8.68.0","eslint-plugin-jest":"29.16.6","eslint-plugin-react":"^7.37.5","@vitest/eslint-plugin":"1.6.27","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^74.0.0","@typescript-eslint/utils":"8.68.0","eslint-plugin-playwright":"2.11.0","@typescript-eslint/parser":"8.68.0","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.1","eslint-plugin-testing-library":"7.16.2","@typescript-eslint/rule-tester":"8.68.0","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.21.1_1789591319581_0.9023503706296576","host":"s3://npm-registry-packages-npm-production"}},"15.22.0":{"name":"@sarj/eslint-plugin","version":"15.22.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.22.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/code-standards/issues"},"dist":{"shasum":"4507b1da76049b8421eebc0ececdea6615cc840c","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.22.0.tgz","fileCount":7,"integrity":"sha512-ZU5slHql4b+iU/VCyBAQSrjUP4sv3rKafyKR2LdCAwBfU4QlRihIAXQAoGa4I2opRomfZauZWppWJpetjo8mPA==","signatures":[{"sig":"MEQCIBxCfYZaAxT08j2DvuqikNrFcwthZCr9RM3SWx2iFNpKAiBjLFckg4AYgT/IffIE8UQy2AIjfDb/YmTvmtjypokfnA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDPBN6e8ZYqTNOjJlQvPKdxeLhl3LjBXNaiVLtDRGNblwIhAMrGbLZzUQcQ9Fpf6kNRA14SV/QhHRboD9c6zfvCtObl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.22.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2264788},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs module-constant-naming-options.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c75544fe-71b3-4013-8f37-5754f7d65efb"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"0.28.2","nanoid@<3.3.18":"3.3.18","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-ZU5slHql4b+iU/VCyBAQSrjUP4sv3rKafyKR2LdCAwBfU4QlRihIAXQAoGa4I2opRomfZauZWppWJpetjo8mPA==","repository":{"url":"git+https://github.com/sarj-ai/code-standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.19.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","allowScripts":{"esbuild@0.28.2":true,"fsevents@2.3.3":true},"dependencies":{"jsonc-parser":"^3.3.1","@typescript-eslint/utils":"^8.68.0","@typescript-eslint/typescript-estree":"^8.68.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.2","devDependencies":{"tsup":"latest","eslint":"10.10.0","vitest":"4.1.11","@eslint/js":"10.0.1","typescript":"6.0.3","@types/node":"26.4.0","@eslint/compat":"^2.1.0","eslint-plugin-n":"^18.3.0","eslint-node-test":"0.4.0","eslint-plugin-zod":"^4.9.1","typescript-eslint":"^8.68.0","eslint-plugin-jest":"29.16.6","eslint-plugin-react":"^7.37.5","@vitest/eslint-plugin":"1.6.27","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^74.0.0","@typescript-eslint/utils":"8.68.0","eslint-plugin-playwright":"2.11.0","@typescript-eslint/parser":"8.68.0","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.1","eslint-plugin-testing-library":"7.16.2","@typescript-eslint/rule-tester":"8.68.0","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.22.0_1789593513629_0.5671768572973124","host":"s3://npm-registry-packages-npm-production"}},"15.23.0":{"name":"@sarj/eslint-plugin","version":"15.23.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.23.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/code-standards/issues"},"dist":{"shasum":"5e052428d371b03c545db08e4be6547a4818c289","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.23.0.tgz","fileCount":7,"integrity":"sha512-l3GjbjyG69r72N4I7xQ+HdGKH154glyqjftbGib02GYrydd3jUBExaD+KXSAWHk/U7Du57elAZc+iI4XH4+dFA==","signatures":[{"sig":"MEQCIB1Up3tz1WeaPy+To9EjQsn00Mhl9wCEw+HjKuV1nGnNAiA/qab8EQQCYu7eWew9h9iYVFGw+iefhaPN+g0cahuqZA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCID+H8kMOZrNnpDk4uxSfEk1nlAT9uGPdpy+CgQSOOOXOAiEA5LUzX/N6pyuadqrpAwjb/hat14Ijbbe3mGihJUQPs14=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.23.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2280541},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs module-constant-naming-options.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c75544fe-71b3-4013-8f37-5754f7d65efb"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"0.28.2","nanoid@<3.3.18":"3.3.18","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-l3GjbjyG69r72N4I7xQ+HdGKH154glyqjftbGib02GYrydd3jUBExaD+KXSAWHk/U7Du57elAZc+iI4XH4+dFA==","repository":{"url":"git+https://github.com/sarj-ai/code-standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.19.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","allowScripts":{"esbuild@0.28.2":true,"fsevents@2.3.3":true},"dependencies":{"jsonc-parser":"^3.3.1","@typescript-eslint/utils":"^8.68.0","@typescript-eslint/typescript-estree":"^8.68.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.2","devDependencies":{"tsup":"latest","eslint":"10.10.0","vitest":"4.1.11","@eslint/js":"10.0.1","typescript":"6.0.3","@types/node":"26.4.0","@eslint/compat":"^2.1.0","eslint-plugin-n":"^18.3.0","eslint-node-test":"0.4.0","eslint-plugin-zod":"^4.9.1","typescript-eslint":"^8.68.0","eslint-plugin-jest":"29.16.6","eslint-plugin-react":"^7.37.5","@vitest/eslint-plugin":"1.6.27","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^74.0.0","@typescript-eslint/utils":"8.68.0","eslint-plugin-playwright":"2.11.0","@typescript-eslint/parser":"8.68.0","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.1","eslint-plugin-testing-library":"7.16.2","@typescript-eslint/rule-tester":"8.68.0","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.23.0_1789594966234_0.5370505215712762","host":"s3://npm-registry-packages-npm-production"}},"15.24.0":{"name":"@sarj/eslint-plugin","version":"15.24.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.24.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/code-standards/issues"},"dist":{"shasum":"1e54b011a53adf99eac5d5ad66fefacf307902cc","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.24.0.tgz","fileCount":7,"integrity":"sha512-Q9d6x7HRDNZGrxTH6ByOQFzcZz75pYQqIoVaBcBYtLTS4gPvc8YKOBIuwbk2jGFARQ9FzQkuAjq6SGex8LZNlA==","signatures":[{"sig":"MEUCICFDpzDqXhtl0g39Wcr92YXdBP95mG80ImszfBaWx4FTAiEA1ZB/fBCFKwY11GgywrovO4KhpZHZlphcuwlWnglY6eg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHpU1K++ozEQAk5SxcIz/mDxeBdpr9x2HHYy88Rst7CxAiAx9wE2MBxVX/3emyScsfFe+FaWlAcaHYpa2DNqTvhkaA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.24.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2311252},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs module-constant-naming-options.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c75544fe-71b3-4013-8f37-5754f7d65efb"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"0.28.2","nanoid@<3.3.18":"3.3.18","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-Q9d6x7HRDNZGrxTH6ByOQFzcZz75pYQqIoVaBcBYtLTS4gPvc8YKOBIuwbk2jGFARQ9FzQkuAjq6SGex8LZNlA==","repository":{"url":"git+https://github.com/sarj-ai/code-standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.19.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","allowScripts":{"esbuild@0.28.2":true,"fsevents@2.3.3":true},"dependencies":{"jsonc-parser":"^3.3.1","@typescript-eslint/utils":"^8.68.0","@typescript-eslint/typescript-estree":"^8.68.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.2","devDependencies":{"tsup":"latest","eslint":"10.10.0","vitest":"4.1.11","@eslint/js":"10.0.1","typescript":"6.0.3","@types/node":"26.4.0","@eslint/compat":"^2.1.0","eslint-plugin-n":"^18.3.0","eslint-node-test":"0.4.0","eslint-plugin-zod":"^4.9.1","typescript-eslint":"^8.68.0","eslint-plugin-jest":"29.16.6","eslint-plugin-react":"^7.37.5","@vitest/eslint-plugin":"1.6.27","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^74.0.0","@typescript-eslint/utils":"8.68.0","eslint-plugin-playwright":"2.11.0","@typescript-eslint/parser":"8.68.0","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.1","eslint-plugin-testing-library":"7.16.2","@typescript-eslint/rule-tester":"8.68.0","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.24.0_1789673335738_0.49021877409454984","host":"s3://npm-registry-packages-npm-production"}},"15.25.0":{"name":"@sarj/eslint-plugin","version":"15.25.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.25.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/code-standards/issues"},"dist":{"shasum":"efebeb77627aae24c89022f0073752b34b3b72da","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.25.0.tgz","fileCount":7,"integrity":"sha512-+N0jqrBW1hbdTpRDvkioxUxxlX6K3F/mDVNktVx2MHooWDxKZxp8+RMm+hyYSqt8ajh0pUiNNU+fNMKyOllkmA==","signatures":[{"sig":"MEQCIDWVNF7h24hdDEO3bmgXpTOFFm86hnIhofWVQ3+hYQgdAiBHdG2UQb90tTdinheeDiQZI8igevezcQmsfI+UVc48Ig==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCQ7eYVW5bcsHA4bcBzM/KRL2cWYIl3kQVRZ2V3ZJN5ogIhANgJRX2xin8oaRy2A23L5ZDM54AbpeFECui4AFvSMSSf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.25.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2329772},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs module-constant-naming-options.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c75544fe-71b3-4013-8f37-5754f7d65efb"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"0.28.2","nanoid@<3.3.18":"3.3.18","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-+N0jqrBW1hbdTpRDvkioxUxxlX6K3F/mDVNktVx2MHooWDxKZxp8+RMm+hyYSqt8ajh0pUiNNU+fNMKyOllkmA==","repository":{"url":"git+https://github.com/sarj-ai/code-standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.19.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","allowScripts":{"esbuild@0.28.2":true,"fsevents@2.3.3":true},"dependencies":{"jsonc-parser":"^3.3.1","@typescript-eslint/utils":"^8.68.0","@typescript-eslint/typescript-estree":"^8.68.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.2","devDependencies":{"tsup":"latest","eslint":"10.10.0","vitest":"4.1.11","@eslint/js":"10.0.1","typescript":"6.0.3","@types/node":"26.4.0","@eslint/compat":"^2.1.0","eslint-plugin-n":"^18.3.0","eslint-node-test":"0.4.0","eslint-plugin-zod":"^4.9.1","typescript-eslint":"^8.68.0","eslint-plugin-jest":"29.16.6","eslint-plugin-react":"^7.37.5","@vitest/eslint-plugin":"1.6.27","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^74.0.0","@typescript-eslint/utils":"8.68.0","eslint-plugin-playwright":"2.11.0","@typescript-eslint/parser":"8.68.0","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.1","eslint-plugin-testing-library":"7.16.2","@typescript-eslint/rule-tester":"8.68.0","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.25.0_1789747529505_0.7431466440583909","host":"s3://npm-registry-packages-npm-production"}},"15.25.1":{"name":"@sarj/eslint-plugin","version":"15.25.1","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.25.1","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/code-standards/issues"},"dist":{"shasum":"9bd23c84a6f7ba0ff662a7ef5b5bc3ae3ea3646d","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.25.1.tgz","fileCount":7,"integrity":"sha512-lBgpcd+a51MbPGX4wLwCYfyWUlsDbPDPsdfNEHBTnGyDqelfh3ez+1A9+VeZGQN026Mj5OR4wLFK33El76fvAQ==","signatures":[{"sig":"MEYCIQDXPytO87CD1uuMTCi+fuKFmOjpK9TTRkkvxfCH7iEQngIhAI4PaWD+/0qYWiYdjhAdIp9PfMc7ra/y9QSIqZh7ndLh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDGZU27eglnLIF4eDAj2GI/nAgNM4k8oaidCSIcz5oqwgIhALSLorxJ0MR7iJu79RUoojyMVY31Mlk4PxBHKdqd7KxO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.25.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2327976},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs module-constant-naming-options.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c75544fe-71b3-4013-8f37-5754f7d65efb"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"0.28.2","nanoid@<3.3.18":"3.3.18","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-lBgpcd+a51MbPGX4wLwCYfyWUlsDbPDPsdfNEHBTnGyDqelfh3ez+1A9+VeZGQN026Mj5OR4wLFK33El76fvAQ==","repository":{"url":"git+https://github.com/sarj-ai/code-standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.19.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","allowScripts":{"esbuild@0.28.2":true,"fsevents@2.3.3":true},"dependencies":{"jsonc-parser":"^3.3.1","@typescript-eslint/utils":"^8.68.0","@typescript-eslint/typescript-estree":"^8.68.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.2","devDependencies":{"tsup":"latest","eslint":"10.10.0","vitest":"4.1.11","@eslint/js":"10.0.1","typescript":"6.0.3","@types/node":"26.4.0","@eslint/compat":"^2.1.0","eslint-plugin-n":"^18.3.0","eslint-node-test":"0.4.0","eslint-plugin-zod":"^4.9.1","typescript-eslint":"^8.68.0","eslint-plugin-jest":"29.16.6","eslint-plugin-react":"^7.37.5","@vitest/eslint-plugin":"1.6.27","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^74.0.0","@typescript-eslint/utils":"8.68.0","eslint-plugin-playwright":"2.11.0","@typescript-eslint/parser":"8.68.0","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.10.1","eslint-plugin-testing-library":"7.16.2","@typescript-eslint/rule-tester":"8.68.0","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.7.2"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.25.1_1789765600983_0.27790550771326217","host":"s3://npm-registry-packages-npm-production"}},"15.26.0":{"name":"@sarj/eslint-plugin","version":"15.26.0","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.26.0","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/code-standards/issues"},"dist":{"shasum":"48bc41d24360d27af0b5efbcfbe13d7aef7751ab","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.26.0.tgz","fileCount":7,"integrity":"sha512-sZofsrl+tklag/fqGWLzzahkjz+7y8+vkQUHLRx7NUfCB3jPDGoTVqTHl04OX9lVCOHAxolMH4aAniluSkF9wg==","signatures":[{"sig":"MEUCIQDVKQH8dOjEf58ZBDcJy7U0rg+WAhS79YYZof9oUjbYTQIgHq6kYOVB8FjTsFgHhf1q6ZlVAbRMpR8GbdNfeXGOc+s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIEsTsDC7rI9WQV/zew7zDWSp92vJWvBizSKCiK28zf0KAiAbK81weNJudYKamSGaiiHDwtB1Wo7q44EbfMTDlmAsCg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.26.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2336084},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.22.2"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs module-constant-naming-options.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c75544fe-71b3-4013-8f37-5754f7d65efb"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"0.28.2","nanoid@<3.3.18":"3.3.18","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-sZofsrl+tklag/fqGWLzzahkjz+7y8+vkQUHLRx7NUfCB3jPDGoTVqTHl04OX9lVCOHAxolMH4aAniluSkF9wg==","repository":{"url":"git+https://github.com/sarj-ai/code-standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.19.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","allowScripts":{"esbuild@0.28.2":true,"fsevents@2.3.3":true},"dependencies":{"jsonc-parser":"^3.3.1","@typescript-eslint/utils":"^8.70.1","@typescript-eslint/typescript-estree":"^8.70.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.2","devDependencies":{"tsup":"latest","eslint":"10.11.0","vitest":"5.0.1","@eslint/js":"10.0.1","typescript":"6.0.3","@types/node":"26.6.2","@shadcn/lint":"0.1.1","@eslint/compat":"^2.1.1","eslint-plugin-n":"^18.3.0","eslint-node-test":"0.4.0","eslint-plugin-zod":"^4.14.2","typescript-eslint":"^8.70.1","eslint-plugin-jest":"29.16.6","eslint-plugin-jsdoc":"64.5.4","eslint-plugin-react":"^7.37.5","@vitest/eslint-plugin":"1.6.27","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^76.0.0","@typescript-eslint/utils":"8.70.1","eslint-plugin-playwright":"2.12.0","@typescript-eslint/parser":"8.70.1","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.11.1","eslint-plugin-testing-library":"7.16.2","@typescript-eslint/rule-tester":"8.70.1","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.8.1"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.26.0_1790132845309_0.891747689810015","host":"s3://npm-registry-packages-npm-production"}},"15.26.1":{"name":"@sarj/eslint-plugin","version":"15.26.1","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.26.1","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/code-standards/issues"},"dist":{"shasum":"c2d0e6b227b697d986a32d44a0c6039cdc670da0","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.26.1.tgz","fileCount":7,"integrity":"sha512-gQN/N0IWJHIv00mbgvFTxwXf6KbSGlXHDso1FX2Tpnni4/nJ6LQdrbJmwd/lqSy+XMAJucfrriD51wTVkRyDWw==","signatures":[{"sig":"MEQCIA5NfuZiPI1HWE2OCkZ8bVUF4XCpVmbQF/wC1+NtK9+oAiB65yT2g2i94Ysz3cXlfoDQ1dJwFaY6w+5EOrpCScti0w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQC22P8UYMXIk5WSZ5xX7lR3i+cGxe4jSJApX0jXYOZMegIgWJ34+/6NRoCxN5kRmwOkCaipbWrmvBcXgArvLxhzjbk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.26.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2337496},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.22.2"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs module-constant-naming-options.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c75544fe-71b3-4013-8f37-5754f7d65efb"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"0.28.2","nanoid@<3.3.18":"3.3.18","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-gQN/N0IWJHIv00mbgvFTxwXf6KbSGlXHDso1FX2Tpnni4/nJ6LQdrbJmwd/lqSy+XMAJucfrriD51wTVkRyDWw==","repository":{"url":"git+https://github.com/sarj-ai/code-standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.19.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.21.0","allowScripts":{"esbuild@0.28.2":true,"fsevents@2.3.3":true},"dependencies":{"jsonc-parser":"^3.3.1","@typescript-eslint/utils":"^8.70.1","@typescript-eslint/typescript-estree":"^8.70.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.2","devDependencies":{"tsup":"latest","eslint":"10.11.0","vitest":"5.0.1","@eslint/js":"10.0.1","typescript":"6.0.3","@types/node":"26.6.2","@shadcn/lint":"0.1.1","@eslint/compat":"^2.1.1","eslint-plugin-n":"^18.3.0","eslint-node-test":"0.4.0","eslint-plugin-zod":"^4.14.2","typescript-eslint":"^8.70.1","eslint-plugin-jest":"29.16.6","eslint-plugin-jsdoc":"64.5.4","eslint-plugin-react":"^7.37.5","@vitest/eslint-plugin":"1.6.27","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^76.0.0","@typescript-eslint/utils":"8.70.1","eslint-plugin-playwright":"2.12.0","@typescript-eslint/parser":"8.70.1","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.11.1","eslint-plugin-testing-library":"7.16.2","@typescript-eslint/rule-tester":"8.70.1","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.8.1"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.26.1_1790199511019_0.6764852264461285","host":"s3://npm-registry-packages-npm-production"}},"15.26.2":{"name":"@sarj/eslint-plugin","version":"15.26.2","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.26.2","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/code-standards/issues"},"dist":{"shasum":"604d53e46be8371c7af2607f53685fd2b5c02a08","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.26.2.tgz","fileCount":7,"integrity":"sha512-1LSfHUQR8uERBnxz74ZbeLc6SR9EatWbOhnTJZFzO8ldnHjzSsam9WZoZWQs1jsfVuk5EX44e30fMiuK8zPmRQ==","signatures":[{"sig":"MEYCIQCvWhTWAcmH/BYj6N17ivK45IFVt44RYOC2us0E2pL5bgIhAJfPTf7amywKqLUJ5ATgrLWX+x+61RvlCuNC24HCsND7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIBOdl/bAFNd68zLzHzWKCHjXtGw0P7jOCyGYdkgHezVHAiBgVpQuTZw4YhmB2Y6ieTiFNSKrALN3IRlzZMYNfNFxig==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.26.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2340468},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.22.2"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs module-constant-naming-options.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c75544fe-71b3-4013-8f37-5754f7d65efb"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"0.28.2","nanoid@<3.3.18":"3.3.18","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-1LSfHUQR8uERBnxz74ZbeLc6SR9EatWbOhnTJZFzO8ldnHjzSsam9WZoZWQs1jsfVuk5EX44e30fMiuK8zPmRQ==","repository":{"url":"git+https://github.com/sarj-ai/code-standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.19.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","allowScripts":{"esbuild@0.28.2":true,"fsevents@2.3.3":true},"dependencies":{"jsonc-parser":"^3.3.1","@typescript-eslint/utils":"^8.70.1","@typescript-eslint/typescript-estree":"^8.70.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.2","devDependencies":{"tsup":"latest","eslint":"10.11.0","vitest":"5.0.1","@eslint/js":"10.0.1","typescript":"6.0.3","@types/node":"26.6.2","@shadcn/lint":"0.1.1","@eslint/compat":"^2.1.1","eslint-plugin-n":"^18.3.0","eslint-node-test":"0.4.0","eslint-plugin-zod":"^4.14.2","typescript-eslint":"^8.70.1","eslint-plugin-jest":"29.16.6","eslint-plugin-jsdoc":"64.5.4","eslint-plugin-react":"^7.37.5","@vitest/eslint-plugin":"1.6.27","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^76.0.0","@typescript-eslint/utils":"8.70.1","eslint-plugin-playwright":"2.12.0","@typescript-eslint/parser":"8.70.1","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.11.1","eslint-plugin-testing-library":"7.16.2","@typescript-eslint/rule-tester":"8.70.1","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.8.1"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.26.2_1790206596150_0.872250911127018","host":"s3://npm-registry-packages-npm-production"}},"15.26.3":{"name":"@sarj/eslint-plugin","version":"15.26.3","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.26.3","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/code-standards/issues"},"dist":{"shasum":"de9b4ce53bd4d34e747162792c7fdf71459fb4d9","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.26.3.tgz","fileCount":7,"integrity":"sha512-k1Xt/bXm+N89u6FoC556OtEVPZnPnfIgT/OKb6gdJWk6BYoivAVqJEyvBpjSy/E3fx3ZN6c88/B0aA49SlT1ew==","signatures":[{"sig":"MEQCIAPvOnDwvXVNwD0iTWw9T1UpWkxDvOqdKrM5Ex/Gpbf0AiB500PPxmSbkfuuDRMbTVfmfKeOBynVSi4cjMgJi7cBqQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIF8zW2vyOZzWj+wpbwhP8QRdVEJw/KRllcCoW4OZ9A9MAiAuruDB2+1JlXfI7XvVJinfZGB9eegdzrCGwdpRl99Q+w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.26.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2339494},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.22.2"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs module-constant-naming-options.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c75544fe-71b3-4013-8f37-5754f7d65efb"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"0.28.2","nanoid@<3.3.18":"3.3.18","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-k1Xt/bXm+N89u6FoC556OtEVPZnPnfIgT/OKb6gdJWk6BYoivAVqJEyvBpjSy/E3fx3ZN6c88/B0aA49SlT1ew==","repository":{"url":"git+https://github.com/sarj-ai/code-standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.19.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","allowScripts":{"esbuild@0.28.2":true,"fsevents@2.3.3":true},"dependencies":{"jsonc-parser":"^3.3.1","@typescript-eslint/utils":"^8.70.1","@typescript-eslint/typescript-estree":"^8.70.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.2","devDependencies":{"tsup":"latest","eslint":"10.11.0","vitest":"5.0.1","@eslint/js":"10.0.1","typescript":"6.0.3","@types/node":"26.6.2","@shadcn/lint":"0.1.1","@eslint/compat":"^2.1.1","eslint-plugin-n":"^18.3.0","eslint-node-test":"0.4.0","eslint-plugin-zod":"^4.14.2","typescript-eslint":"^8.70.1","eslint-plugin-jest":"29.16.6","eslint-plugin-jsdoc":"64.5.4","eslint-plugin-react":"^7.37.5","@vitest/eslint-plugin":"1.6.27","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^76.0.0","@typescript-eslint/utils":"8.70.1","eslint-plugin-playwright":"2.12.0","@typescript-eslint/parser":"8.70.1","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.11.1","eslint-plugin-testing-library":"7.16.2","@typescript-eslint/rule-tester":"8.70.1","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.8.1"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.26.3_1790210354547_0.4983748178248979","host":"s3://npm-registry-packages-npm-production"}},"15.26.4":{"name":"@sarj/eslint-plugin","version":"15.26.4","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.26.4","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/code-standards/issues"},"dist":{"shasum":"4fc1016a60f489c0e34390d7f263d1e877063d37","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.26.4.tgz","fileCount":7,"integrity":"sha512-Yt9y3RsWcZAoBoapPGE4Kwor3fxKXW0qptjrN6Xr7QuRbpC8jZiPL4LvrEuuwhMlalbUvpooQ+Sj/NWpeyK9Xw==","signatures":[{"sig":"MEUCID7TR93OAinFxRxOTRSguKBeDWwLN0SfRnf4clWK8OnhAiEAliPTn4lWgX+Jb52vtQYHAZJHmTEdGMmh0hHDR+4ZltA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCICLwIKv46xAf8RQt5yS+ujf1yUlky/GcxqWuXMF0jVV0AiB64OCucnE4MOEPLpwR9Wk776PGmI3e2mItOE4s5Jzy7Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.26.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2336764},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.22.2"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs module-constant-naming-options.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c75544fe-71b3-4013-8f37-5754f7d65efb"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"0.28.2","nanoid@<3.3.18":"3.3.18","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-Yt9y3RsWcZAoBoapPGE4Kwor3fxKXW0qptjrN6Xr7QuRbpC8jZiPL4LvrEuuwhMlalbUvpooQ+Sj/NWpeyK9Xw==","repository":{"url":"git+https://github.com/sarj-ai/code-standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.19.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","allowScripts":{"esbuild@0.28.2":true,"fsevents@2.3.3":true},"dependencies":{"jsonc-parser":"^3.3.1","@typescript-eslint/utils":"^8.70.1","@typescript-eslint/typescript-estree":"^8.70.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.2","devDependencies":{"tsup":"latest","eslint":"10.11.0","vitest":"5.0.1","@eslint/js":"10.0.1","typescript":"6.0.3","@types/node":"26.6.2","@shadcn/lint":"0.1.1","@eslint/compat":"^2.1.1","eslint-plugin-n":"^18.3.0","eslint-node-test":"0.4.0","eslint-plugin-zod":"^4.14.2","typescript-eslint":"^8.70.1","eslint-plugin-jest":"29.16.6","eslint-plugin-jsdoc":"64.5.4","eslint-plugin-react":"^7.37.5","@vitest/eslint-plugin":"1.6.27","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^76.0.0","@typescript-eslint/utils":"8.70.1","eslint-plugin-playwright":"2.12.0","@typescript-eslint/parser":"8.70.1","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.11.1","eslint-plugin-testing-library":"7.16.2","@typescript-eslint/rule-tester":"8.70.1","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.8.1"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.26.4_1790211615383_0.2370116343577402","host":"s3://npm-registry-packages-npm-production"}},"15.26.5":{"name":"@sarj/eslint-plugin","version":"15.26.5","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.26.5","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/code-standards/issues"},"dist":{"shasum":"e65e68e8a72fde8981cb93ef868443983d440a79","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.26.5.tgz","fileCount":7,"integrity":"sha512-d2uJjlwlqTRJRUSxVqqoYHfnenPWZPIxxjljN8jEHvMLoOfwvwvqwdU6TeofMJamrz7/cDKlyWLK7OrtX5Zkpg==","signatures":[{"sig":"MEQCIBBlbuJPi5dmIfvX8SIaroR4Tt6EWjJheDduDtk1loBFAiBTfn5Re9eFv3HXdwWQEZ+pRY/4Gk9CwwpYxCKAgPZCxQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDsWzO5+RI5StZmbUY4Tr0PlBqPq/K9mNBRurxfz5kzJgIgA3Z3F6oAqZwk7ny+95RGOUa2t70tqKdqVaR9Iej2Fm4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.26.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2332604},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.22.2"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs module-constant-naming-options.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c75544fe-71b3-4013-8f37-5754f7d65efb"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"0.28.2","nanoid@<3.3.18":"3.3.18","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-d2uJjlwlqTRJRUSxVqqoYHfnenPWZPIxxjljN8jEHvMLoOfwvwvqwdU6TeofMJamrz7/cDKlyWLK7OrtX5Zkpg==","repository":{"url":"git+https://github.com/sarj-ai/code-standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.19.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","allowScripts":{"esbuild@0.28.2":true,"fsevents@2.3.3":true},"dependencies":{"jsonc-parser":"^3.3.1","@typescript-eslint/utils":"^8.70.1","@typescript-eslint/typescript-estree":"^8.70.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.2","devDependencies":{"tsup":"latest","eslint":"10.11.0","vitest":"5.0.1","@eslint/js":"10.0.1","typescript":"6.0.3","@types/node":"26.6.2","@shadcn/lint":"0.1.1","@eslint/compat":"^2.1.1","eslint-plugin-n":"^18.3.0","eslint-node-test":"0.4.0","eslint-plugin-zod":"^4.14.2","typescript-eslint":"^8.70.1","eslint-plugin-jest":"29.16.6","eslint-plugin-jsdoc":"64.5.4","eslint-plugin-react":"^7.37.5","@vitest/eslint-plugin":"1.6.27","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^76.0.0","@typescript-eslint/utils":"8.70.1","eslint-plugin-playwright":"2.12.0","@typescript-eslint/parser":"8.70.1","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.11.1","eslint-plugin-testing-library":"7.16.2","@typescript-eslint/rule-tester":"8.70.1","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.8.1"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.26.5_1790212848255_0.9066324131200827","host":"s3://npm-registry-packages-npm-production"}},"15.26.6":{"name":"@sarj/eslint-plugin","version":"15.26.6","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.26.6","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/code-standards/issues"},"dist":{"shasum":"9e702f619edaa99f4c57ead42ff817bf381ae39c","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.26.6.tgz","fileCount":7,"integrity":"sha512-/2ZwoatPKMOR6ADkJZDfMXt8214QkSd6+4l+esgT7q5sOjkB8pWXnAbSis3uoBgj5sGopoUtzCf2K5+gYUQeEg==","signatures":[{"sig":"MEUCIQCrRO1ElBeaOwAQOdrjomp8z5QQSXrzvj9ivEA23RnZsQIgLdF67uk5dkSVjDGX2MPdXlXW9RXdyv0aVwW4aVxUV9k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDfcro7MBBvyUWxxBEa/EGjoGUd50c//X/xz8Px+AbN+QIgCaqIj95tBq3ZB5BBL+WPcrf3c2XNzAKVQZc3ie+BZtM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.26.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2332604},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.22.2"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs module-constant-naming-options.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c75544fe-71b3-4013-8f37-5754f7d65efb"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"0.28.2","nanoid@<3.3.18":"3.3.18","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-/2ZwoatPKMOR6ADkJZDfMXt8214QkSd6+4l+esgT7q5sOjkB8pWXnAbSis3uoBgj5sGopoUtzCf2K5+gYUQeEg==","repository":{"url":"git+https://github.com/sarj-ai/code-standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.19.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.21.0","allowScripts":{"esbuild@0.28.2":true,"fsevents@2.3.3":true},"dependencies":{"jsonc-parser":"^3.3.1","@typescript-eslint/utils":"^8.70.1","@typescript-eslint/typescript-estree":"^8.70.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.2","devDependencies":{"tsup":"latest","eslint":"10.11.0","vitest":"5.0.1","@eslint/js":"10.0.1","typescript":"6.0.3","@types/node":"26.6.2","@shadcn/lint":"0.1.1","@eslint/compat":"^2.1.1","eslint-plugin-n":"^18.3.0","eslint-node-test":"0.4.0","eslint-plugin-zod":"^4.14.2","typescript-eslint":"^8.70.1","eslint-plugin-jest":"29.16.6","eslint-plugin-jsdoc":"64.5.4","eslint-plugin-react":"^7.37.5","@vitest/eslint-plugin":"1.6.27","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^76.0.0","@typescript-eslint/utils":"8.70.1","eslint-plugin-playwright":"2.12.0","@typescript-eslint/parser":"8.70.1","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"^5.11.1","eslint-plugin-testing-library":"7.16.2","@typescript-eslint/rule-tester":"8.70.1","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.8.1"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.26.6_1790216808224_0.7430803265657631","host":"s3://npm-registry-packages-npm-production"}},"15.26.7":{"name":"@sarj/eslint-plugin","version":"15.26.7","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"author":{"name":"sarj-ai"},"license":"MIT","_id":"@sarj/eslint-plugin@15.26.7","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"homepage":"https://code-standards.sarj.ai/rules/eslint/","bugs":{"url":"https://github.com/sarj-ai/code-standards/issues"},"dist":{"shasum":"814025bb0f3d1b937774dc8d43d933419d8a8c31","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.26.7.tgz","fileCount":7,"integrity":"sha512-qvZiQGKwT4ffX3cEDD3X+05Bpy1aN11aafK21ELXkrS7gmzoMWQtygWZ9gJqUwNHj7kmNGx2LYv8cSO6TbUy6w==","signatures":[{"sig":"MEQCIDdOt1vZ1I3SLBc22YPlJpf32DDgLkOh3ZQ3+v/SUS7IAiBBMlW3Yi/0ctEvsZnqV+c5VLy0ZKeiQkm3gBBEJOQKKg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCMNv6I6oOWQg9NTYOSBStTFysA1us6FpyKRKztJSoK5wIgccD0+eJR9LHY04smtN92m9eda9f9K9jcnwm2sE9Perg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.26.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2332603},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.22.2"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs module-constant-naming-options.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c75544fe-71b3-4013-8f37-5754f7d65efb"}},"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"0.28.2","nanoid@<3.3.18":"3.3.18","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-qvZiQGKwT4ffX3cEDD3X+05Bpy1aN11aafK21ELXkrS7gmzoMWQtygWZ9gJqUwNHj7kmNGx2LYv8cSO6TbUy6w==","repository":{"url":"git+https://github.com/sarj-ai/code-standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.19.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"sideEffects":false,"_nodeVersion":"24.21.0","allowScripts":{"esbuild@0.28.2":true,"fsevents@2.3.3":true},"dependencies":{"jsonc-parser":"^3.3.1","@typescript-eslint/utils":"^8.70.1","@typescript-eslint/typescript-estree":"^8.70.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.1.0","devDependencies":{"tsup":"latest","eslint":"10.11.0","vitest":"5.0.1","@eslint/js":"10.0.1","typescript":"6.0.3","@types/node":"26.6.2","@shadcn/lint":"0.2.0","@eslint/compat":"^2.1.1","eslint-plugin-n":"^18.3.0","eslint-node-test":"0.4.0","eslint-plugin-zod":"^4.14.2","typescript-eslint":"^8.70.1","eslint-plugin-jest":"29.16.6","eslint-plugin-jsdoc":"64.5.4","eslint-plugin-react":"^7.37.5","@vitest/eslint-plugin":"1.6.27","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^76.0.0","@typescript-eslint/utils":"8.70.1","eslint-plugin-playwright":"2.12.0","@typescript-eslint/parser":"8.70.1","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"5.12.1","eslint-plugin-testing-library":"7.16.2","@typescript-eslint/rule-tester":"8.70.1","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.8.1"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_15.26.7_1790261618467_0.4622963750407034","host":"s3://npm-registry-packages-npm-production"}},"15.26.8":{"_id":"@sarj/eslint-plugin@15.26.8","bugs":{"url":"https://github.com/sarj-ai/code-standards/issues"},"dist":{"shasum":"fbf0b93edd8be4c03c2789e0c16e15b8fc805dd1","tarball":"https://registry.npmjs.org/@sarj/eslint-plugin/-/eslint-plugin-15.26.8.tgz","fileCount":7,"integrity":"sha512-qX2jXZIFAniXXPFx+xxHqUAQ2BXPzvcZBxIbQMD05V+eRDMmTCf36vbb6J87K8qq+0hC21bdkpfNQsdxOfPvoQ==","signatures":[{"sig":"MEQCIAeid3khg32aqLHuZuHJx4iJ+FAvp0z+iGGuAZDOy9FmAiA3htXB8J3ZYqVY5G1Y4d31OIXkF4MMVlZFRy2eTw3znQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCICOoqvyseGpOqc/3nq4QWuzn0PqPM4N1hnH6POlXbBLeAiAL27OR2nopMEzXgOA/CdbFCgBCiKGaKpoO051h/maLog=="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sarj%2feslint-plugin@15.26.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2336115},"main":"./dist/index.cjs","name":"@sarj/eslint-plugin","type":"module","_from":"file:/home/runner/work/_temp/npm-artifacts/package.tgz","types":"./dist/index.d.ts","author":{"name":"sarj-ai"},"module":"./dist/index.js","engines":{"node":">=22.22.2"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"license":"MIT","scripts":{"lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","dogfood":"npm run build && eslint --config eslint.dogfood.config.mjs src tests eslint.config.mjs eslint.dogfood.config.mjs module-constant-naming-options.mjs tsup.config.ts vitest.config.ts --max-warnings 0 && node -e \"import('./dist/index.js').then(({default:p}) => console.log('dogfood: '+Object.keys(p.rules).length+' TypeScript rules, 0 diagnostics'))\"","prepack":"npm run build && npm run verify-package","typecheck":"tsc --noEmit","verify-package":"node -e \"const fs=require('node:fs'),p=require('./package.json'),walk=x=>typeof x==='string'?[x]:x&&typeof x==='object'?Object.values(x).flatMap(walk):[];for(const file of new Set([p.main,p.module,p.types,...walk(p.exports)].filter(Boolean).map(x=>x.startsWith('./')?x.slice(2):x))){if(!file.startsWith('dist/'))throw new Error('export must live under dist: '+file);const stat=fs.statSync(file);if(!stat.isFile()||stat.size===0)throw new Error('missing or empty export: '+file)}\""},"version":"15.26.8","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c75544fe-71b3-4013-8f37-5754f7d65efb"}},"homepage":"https://code-standards.sarj.ai/rules/eslint/","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"_resolved":"/home/runner/work/_temp/npm-artifacts/package.tgz","overrides":{"esbuild":"0.28.2","nanoid@<3.3.18":"3.3.18","eslint-plugin-react":{"eslint":"$eslint"},"brace-expansion@^5.0.0":"5.0.9"},"_integrity":"sha512-qX2jXZIFAniXXPFx+xxHqUAQ2BXPzvcZBxIbQMD05V+eRDMmTCf36vbb6J87K8qq+0hC21bdkpfNQsdxOfPvoQ==","repository":{"url":"git+https://github.com/sarj-ai/code-standards.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.19.0","description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","directories":{},"maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"sideEffects":false,"_nodeVersion":"24.21.0","allowScripts":{"esbuild@0.28.2":true,"fsevents@2.3.3":true},"dependencies":{"jsonc-parser":"^3.3.1","@typescript-eslint/utils":"^8.70.1","@typescript-eslint/typescript-estree":"^8.70.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.1.0","devDependencies":{"tsup":"latest","eslint":"10.11.0","vitest":"5.0.1","@eslint/js":"10.0.1","typescript":"6.0.3","@types/node":"26.6.2","@shadcn/lint":"0.2.0","@eslint/compat":"^2.1.1","eslint-plugin-n":"^18.3.0","eslint-node-test":"0.4.0","eslint-plugin-zod":"^4.14.2","typescript-eslint":"^8.70.1","eslint-plugin-jest":"29.16.6","eslint-plugin-jsdoc":"64.5.4","eslint-plugin-react":"^7.37.5","@vitest/eslint-plugin":"1.6.27","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^76.0.0","@typescript-eslint/utils":"8.70.1","eslint-plugin-playwright":"2.12.0","@typescript-eslint/parser":"8.70.1","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-perfectionist":"5.12.1","eslint-plugin-testing-library":"7.16.2","@typescript-eslint/rule-tester":"8.70.1","eslint-plugin-better-tailwindcss":"^4.7.0","eslint-plugin-simple-import-sort":"^14.0.0","@eslint-community/eslint-plugin-eslint-comments":"^4.8.1"},"peerDependencies":{"eslint":">=9.39.4","typescript":">=5.0.0"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/eslint-plugin_15.26.8_1790358825637_0.7816629662272665"}}},"time":{"created":"2025-03-19T19:45:56.549Z","modified":"2026-09-25T17:53:46.026Z","0.1.0":"2025-03-19T19:45:56.834Z","0.1.1":"2025-03-19T19:54:57.016Z","0.1.2":"2025-03-19T20:04:58.465Z","0.2.0":"2025-06-08T16:30:36.294Z","0.2.1":"2026-01-18T18:49:37.932Z","1.0.0":"2026-01-23T23:39:24.660Z","1.0.1":"2026-01-23T23:45:19.201Z","2.0.0":"2026-05-27T18:38:30.704Z","2.0.1":"2026-06-05T00:33:23.996Z","2.0.2":"2026-06-05T12:05:56.599Z","2.1.1":"2026-06-21T16:14:12.283Z","2.2.0":"2026-06-30T13:05:57.560Z","2.3.0":"2026-07-22T10:52:42.817Z","2.3.1":"2026-07-22T11:03:41.819Z","2.3.2":"2026-07-22T12:15:58.180Z","2.3.3":"2026-07-22T21:31:55.727Z","2.3.4":"2026-07-22T23:06:46.366Z","2.4.0":"2026-07-23T00:19:24.298Z","2.4.1":"2026-07-23T13:39:14.076Z","2.5.0":"2026-07-23T14:42:48.087Z","2.6.0":"2026-07-23T14:47:56.585Z","2.7.0":"2026-07-25T15:55:58.592Z","2.8.0":"2026-07-25T23:49:47.416Z","2.9.0":"2026-07-26T00:29:29.531Z","2.10.0":"2026-07-26T01:29:26.123Z","2.11.0":"2026-07-26T01:40:43.265Z","2.12.0":"2026-07-26T11:47:49.500Z","2.12.1":"2026-07-26T14:45:50.187Z","2.12.2":"2026-07-26T15:19:08.946Z","2.13.0":"2026-07-26T19:55:14.946Z","2.14.0":"2026-07-27T12:18:31.069Z","2.15.0":"2026-07-27T17:27:57.731Z","2.16.0":"2026-07-29T14:12:28.678Z","2.17.0":"2026-07-30T16:11:41.111Z","3.0.0":"2026-07-30T19:56:41.763Z","4.0.0":"2026-07-31T04:27:11.568Z","4.1.0":"2026-07-31T06:26:03.226Z","4.2.0":"2026-07-31T06:31:53.626Z","5.0.0":"2026-07-31T08:39:06.281Z","5.1.0":"2026-07-31T08:46:07.403Z","6.0.0":"2026-07-31T09:23:58.512Z","6.1.0":"2026-07-31T09:30:33.312Z","7.0.0":"2026-07-31T15:14:45.828Z","7.1.0":"2026-07-31T16:06:30.946Z","8.0.0":"2026-07-31T16:43:35.386Z","9.0.0":"2026-07-31T16:58:23.142Z","9.1.0":"2026-07-31T17:05:15.557Z","9.2.0":"2026-07-31T17:18:47.333Z","9.3.0":"2026-07-31T19:10:16.814Z","9.4.0":"2026-07-31T19:21:23.595Z","9.5.0":"2026-07-31T19:36:47.571Z","9.6.0":"2026-08-02T00:37:14.007Z","9.7.0":"2026-08-03T13:25:40.304Z","9.7.1":"2026-08-04T12:12:56.611Z","9.8.0":"2026-08-04T14:45:25.105Z","9.9.0":"2026-08-04T17:38:46.037Z","9.10.0":"2026-08-04T18:24:58.981Z","9.11.0":"2026-08-05T03:56:57.585Z","9.12.1":"2026-08-05T16:53:09.884Z","9.13.0":"2026-08-05T20:12:18.577Z","9.13.1":"2026-08-05T21:24:53.803Z","9.14.0":"2026-08-05T23:46:53.478Z","9.15.0":"2026-08-06T03:02:21.594Z","9.16.0":"2026-08-08T14:40:54.493Z","9.17.0":"2026-08-08T15:51:11.843Z","9.17.1":"2026-08-08T16:34:09.401Z","10.0.0":"2026-08-08T17:12:54.617Z","11.0.0":"2026-08-08T17:59:37.622Z","11.0.1":"2026-08-08T18:13:39.116Z","11.1.0":"2026-08-08T19:37:16.309Z","11.2.0":"2026-08-08T20:23:41.471Z","12.0.0":"2026-08-08T23:11:57.321Z","13.0.0":"2026-08-09T00:03:06.947Z","13.1.0":"2026-08-09T01:28:48.305Z","14.0.0":"2026-08-09T02:39:41.342Z","15.0.0":"2026-08-09T03:46:36.032Z","15.1.0":"2026-08-09T05:05:10.311Z","15.2.0":"2026-08-09T12:38:49.322Z","15.3.0":"2026-08-09T14:40:01.613Z","15.4.0":"2026-08-09T15:52:47.825Z","15.5.0":"2026-08-09T16:17:05.893Z","15.6.0":"2026-08-09T17:19:43.217Z","15.6.1":"2026-08-09T19:30:48.602Z","15.6.2":"2026-08-09T20:15:42.726Z","15.6.3":"2026-08-09T23:17:40.115Z","15.6.4":"2026-08-09T23:34:52.385Z","15.6.5":"2026-08-10T17:45:59.679Z","15.6.6":"2026-08-10T20:14:44.332Z","15.6.7":"2026-08-10T22:29:54.827Z","15.6.8":"2026-08-11T18:37:14.479Z","15.6.9":"2026-08-16T23:26:23.569Z","15.7.0":"2026-08-17T00:40:25.137Z","15.8.0":"2026-08-17T02:02:27.729Z","15.8.1":"2026-08-17T02:25:05.051Z","15.8.2":"2026-08-17T12:13:59.722Z","15.9.0":"2026-08-17T12:23:13.626Z","15.10.0":"2026-08-18T17:33:40.431Z","15.10.1":"2026-08-18T18:43:27.681Z","15.10.3":"2026-08-18T22:07:24.479Z","15.10.4":"2026-08-19T04:08:22.470Z","15.11.0":"2026-08-19T19:00:12.950Z","15.12.0":"2026-08-19T20:16:01.171Z","15.12.1":"2026-08-20T12:43:12.109Z","15.13.0":"2026-08-22T01:14:33.550Z","15.13.1":"2026-08-22T06:22:33.020Z","15.13.2":"2026-08-22T22:03:39.175Z","15.13.3":"2026-08-25T16:43:08.388Z","15.14.0":"2026-08-25T19:57:46.524Z","15.15.0":"2026-08-30T12:13:31.851Z","15.16.0":"2026-08-30T15:40:53.442Z","15.16.1":"2026-08-30T19:24:51.073Z","15.17.0":"2026-08-30T23:06:06.088Z","15.17.1":"2026-09-01T12:03:09.687Z","15.17.2":"2026-09-02T16:28:53.929Z","15.17.3":"2026-09-03T10:41:42.120Z","15.17.4":"2026-09-04T02:16:35.120Z","15.17.5":"2026-09-05T03:22:48.457Z","15.17.6":"2026-09-05T14:28:21.478Z","15.17.7":"2026-09-05T23:30:27.473Z","15.17.8":"2026-09-06T11:07:07.794Z","15.17.9":"2026-09-06T12:28:51.413Z","15.17.10":"2026-09-06T13:03:16.989Z","15.17.11":"2026-09-06T15:11:50.731Z","15.17.12":"2026-09-10T11:45:34.444Z","15.17.13":"2026-09-10T13:26:31.622Z","15.17.14":"2026-09-10T17:16:46.814Z","15.17.16":"2026-09-10T22:37:39.131Z","15.17.17":"2026-09-11T00:29:37.893Z","15.17.18":"2026-09-15T01:19:40.640Z","15.19.0":"2026-09-16T17:00:43.668Z","15.20.0":"2026-09-16T17:33:43.857Z","15.21.0":"2026-09-16T18:12:10.387Z","15.21.1":"2026-09-16T20:41:59.710Z","15.22.0":"2026-09-16T21:18:33.744Z","15.23.0":"2026-09-16T21:42:46.322Z","15.24.0":"2026-09-17T19:28:55.827Z","15.25.0":"2026-09-18T16:05:29.625Z","15.25.1":"2026-09-18T21:06:41.086Z","15.26.0":"2026-09-23T03:07:25.406Z","15.26.1":"2026-09-23T21:38:31.142Z","15.26.2":"2026-09-23T23:36:36.256Z","15.26.3":"2026-09-24T00:39:14.640Z","15.26.4":"2026-09-24T01:00:15.532Z","15.26.5":"2026-09-24T01:20:48.365Z","15.26.6":"2026-09-24T02:26:48.337Z","15.26.7":"2026-09-24T14:53:38.602Z","15.26.8":"2026-09-25T17:53:45.732Z"},"bugs":{"url":"https://github.com/sarj-ai/code-standards/issues"},"author":{"name":"sarj-ai"},"license":"MIT","homepage":"https://code-standards.sarj.ai/rules/eslint/","keywords":["eslint","eslintplugin","eslint-plugin","sarj","react","nextjs","zod"],"repository":{"url":"git+https://github.com/sarj-ai/code-standards.git","type":"git","directory":"packages/typescript"},"description":"Custom ESLint rules for hypermodern TypeScript / React / Next.js projects","maintainers":[{"name":"sarj","email":"nasr@sarj.ai"}],"readme":"<!-- Generated by `code-standards maintain docs sync`; do not edit. -->\n\n# @sarj/eslint-plugin\n\nCustom ESLint rules for hypermodern TypeScript / React / Next.js projects\n\n```bash\nnpm install --save-dev @sarj/eslint-plugin\n```\n\nRules and configuration are documented in the generated rule directory.\n\n[Documentation](https://code-standards.sarj.ai/rules/eslint/) · [Source](https://github.com/sarj-ai/code-standards)\n","readmeFilename":"README.md"}