{"_id":"@e18e/eslint-plugin","_rev":"14-51277c4af575464ffaf99ede469821c2","name":"@e18e/eslint-plugin","dist-tags":{"latest":"0.8.1"},"versions":{"0.0.1":{"name":"@e18e/eslint-plugin","version":"0.0.1","keywords":["eslint","e18e","performance","bloat","perf"],"author":{"url":"https://github.com/43081j","name":"James Garbutt"},"license":"MIT","_id":"@e18e/eslint-plugin@0.0.1","maintainers":[{"name":"43081j","email":"43081james@gmail.com"}],"homepage":"https://github.com/e18e/eslint-plugin#readme","bugs":{"url":"https://github.com/e18e/eslint-plugin/issues"},"dist":{"shasum":"3fbfb462a61f698477d52f0c350268c6f45f5a0d","tarball":"https://registry.npmjs.org/@e18e/eslint-plugin/-/eslint-plugin-0.0.1.tgz","fileCount":51,"integrity":"sha512-iqRyCfRpgonoudtzr+bIGSOJk+eCE1woCUsK5gwmYCsbaKZ7aDkbKelG2zAlb7v1dWKN0xFHpEkNrawGEOVxDg==","signatures":[{"sig":"MEUCIQDQBATEP9SvkNFwUmiNuQiWqwdkIpic/v8NjHkEavZ1ngIgAcPFGNgqZOXhtFe0L7aJpjJobzTfnLmwl9yXdvH8yLc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":79850},"main":"lib/main.js","type":"module","types":"./lib/main.d.ts","gitHead":"f16316342395d54246b45693ea69ba9ade48e99e","scripts":{"lint":"npm run lint:js && npm run lint:format","test":"vitest run","build":"tsc","format":"prettier --write src","lint:js":"eslint src","lint:format":"prettier --check src"},"_npmUser":{"name":"43081j","email":"43081james@gmail.com"},"repository":{"url":"git+https://github.com/e18e/eslint-plugin.git","type":"git"},"_npmVersion":"11.7.0","description":"The official e18e ESLint plugin for modernizing code and improving performance.","directories":{},"_nodeVersion":"24.1.0","dependencies":{"eslint-plugin-depend":"^1.4.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.2","vitest":"^4.0.14","prettier":"^3.7.4","@eslint/js":"^9.39.2","typescript":"^5.9.3","@types/node":"^25.0.3","typescript-eslint":"^8.50.0","@vitest/coverage-v8":"^4.0.16","eslint-plugin-eslint-plugin":"^7.2.0","@typescript-eslint/rule-tester":"^8.50.0","@typescript-eslint/typescript-estree":"^8.50.0"},"peerDependencies":{"eslint":"^9.0.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_0.0.1_1766162325208_0.9431302312779606","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@e18e/eslint-plugin","version":"0.1.0","keywords":["eslint","e18e","performance","bloat","perf"],"author":{"url":"https://github.com/43081j","name":"James Garbutt"},"license":"MIT","_id":"@e18e/eslint-plugin@0.1.0","maintainers":[{"name":"43081j","email":"43081james@gmail.com"}],"homepage":"https://github.com/e18e/eslint-plugin#readme","bugs":{"url":"https://github.com/e18e/eslint-plugin/issues"},"dist":{"shasum":"aaa7aa8d5186b3982a0d9e7b2f7d794b1f19ab74","tarball":"https://registry.npmjs.org/@e18e/eslint-plugin/-/eslint-plugin-0.1.0.tgz","fileCount":47,"integrity":"sha512-Sx2dKIfhNHxgSzOuZK10guJSE+fOXTpDgGy9Y1Zpz59e1x/iaBRDfpV6Uq0Y3Jy9I7rcZAuBgkNNQavTXpSIuA==","signatures":[{"sig":"MEQCIEkpl0VTu6dusQgo5kPiQ3F55XRvRdx6A7p47zvXOALCAiAoUZgGzAI5fMLcFXDADcHARAnBdVs2JrUHwbyh4KiaRA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@e18e%2feslint-plugin@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":68530},"main":"lib/main.js","type":"module","types":"./lib/main.d.ts","gitHead":"f5ea6db00de6b8d5b1ee225de34f1f3defbf6c04","scripts":{"lint":"npm run lint:js && npm run lint:format","test":"vitest run","build":"tsc","format":"prettier --write src","lint:js":"eslint src","lint:format":"prettier --check src"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9ec6407d-291f-4eb3-ac96-2fc22a730e81"}},"repository":{"url":"git+https://github.com/e18e/eslint-plugin.git","type":"git"},"_npmVersion":"11.7.0","description":"The official e18e ESLint plugin for modernizing code and improving performance.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"eslint-plugin-depend":"^1.4.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.2","oxlint":"^1.34.0","vitest":"^4.0.14","prettier":"^3.7.4","@eslint/js":"^9.39.2","typescript":"^5.9.3","@types/node":"^25.0.3","typescript-eslint":"^8.50.0","@vitest/coverage-v8":"^4.0.16","eslint-plugin-eslint-plugin":"^7.2.0","@typescript-eslint/rule-tester":"^8.50.0","@typescript-eslint/typescript-estree":"^8.50.0"},"peerDependencies":{"eslint":"^9.0.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_0.1.0_1766171843150_0.6543511815327088","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@e18e/eslint-plugin","version":"0.1.1","keywords":["eslint","e18e","performance","bloat","perf"],"author":{"url":"https://github.com/43081j","name":"James Garbutt"},"license":"MIT","_id":"@e18e/eslint-plugin@0.1.1","maintainers":[{"name":"43081j","email":"43081james@gmail.com"}],"homepage":"https://github.com/e18e/eslint-plugin#readme","bugs":{"url":"https://github.com/e18e/eslint-plugin/issues"},"dist":{"shasum":"86ce6baa058f21f6bdd36091756e8d6b2babe6bb","tarball":"https://registry.npmjs.org/@e18e/eslint-plugin/-/eslint-plugin-0.1.1.tgz","fileCount":47,"integrity":"sha512-X62xmdPhD8rRLWUCqyij8LlXDcjCsPwq2F1Bx8lk8CkdSL0BrdHT6arDVcaU2pCNfNJkSG7DtvVqk+r+08rnyQ==","signatures":[{"sig":"MEUCIFibxNnLZ4oZsFUpTGfhnjWlOm6u7ZUXUvCIrnl0COylAiEA38UWSPNPjgnMRobWTHNAHMX1aswVx4ztdxdtp3VBJME=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@e18e%2feslint-plugin@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":68756},"main":"lib/main.js","type":"module","types":"./lib/main.d.ts","gitHead":"1155ad7ea8f3eb6e6822e3fc6552b0a82dce8184","scripts":{"lint":"npm run lint:js && npm run lint:format","test":"vitest run","build":"tsc","format":"prettier --write src","lint:js":"eslint src","lint:format":"prettier --check src"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9ec6407d-291f-4eb3-ac96-2fc22a730e81"}},"repository":{"url":"git+https://github.com/e18e/eslint-plugin.git","type":"git"},"_npmVersion":"11.7.0","description":"The official e18e ESLint plugin for modernizing code and improving performance.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"eslint-plugin-depend":"^1.4.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.2","oxlint":"^1.34.0","vitest":"^4.0.14","prettier":"^3.7.4","@eslint/js":"^9.39.2","typescript":"^5.9.3","@types/node":"^25.0.3","typescript-eslint":"^8.50.0","@vitest/coverage-v8":"^4.0.16","eslint-plugin-eslint-plugin":"^7.2.0","@typescript-eslint/rule-tester":"^8.50.0","@typescript-eslint/typescript-estree":"^8.50.0"},"peerDependencies":{"eslint":"^9.0.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_0.1.1_1766177634719_0.18730675218642268","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@e18e/eslint-plugin","version":"0.1.2","keywords":["eslint","e18e","performance","bloat","perf"],"author":{"url":"https://github.com/43081j","name":"James Garbutt"},"license":"MIT","_id":"@e18e/eslint-plugin@0.1.2","maintainers":[{"name":"43081j","email":"43081james@gmail.com"}],"homepage":"https://github.com/e18e/eslint-plugin#readme","bugs":{"url":"https://github.com/e18e/eslint-plugin/issues"},"dist":{"shasum":"9b9220860662fd12b2964e6785c917b2d622e917","tarball":"https://registry.npmjs.org/@e18e/eslint-plugin/-/eslint-plugin-0.1.2.tgz","fileCount":47,"integrity":"sha512-QJ44h5WI91F3DqHTTlDsfOoDE14yWEeWLgd36AB2hyR6ZSnsCpafzpPeaJLVUh7gPGAHcgay1knA8O8ZB5w2vQ==","signatures":[{"sig":"MEYCIQDKwWlYa4H1Y5CeTCXr8GhtFfYXwgkuzEknsfeha3KgAQIhALEw81LhfA1JoUZe2jDzWJ4d0I3Q8DPvh/IyLZbaPIGc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@e18e%2feslint-plugin@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":69589},"main":"lib/main.js","type":"module","types":"./lib/main.d.ts","gitHead":"cb2e05c6729198867a79fab644987df9a1f0e429","scripts":{"lint":"npm run lint:js && npm run lint:format","test":"vitest run","build":"tsc","format":"prettier --write src","lint:js":"eslint src","lint:format":"prettier --check src"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9ec6407d-291f-4eb3-ac96-2fc22a730e81"}},"repository":{"url":"git+https://github.com/e18e/eslint-plugin.git","type":"git"},"_npmVersion":"11.7.0","description":"The official e18e ESLint plugin for modernizing code and improving performance.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"eslint-plugin-depend":"^1.4.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.2","oxlint":"^1.34.0","vitest":"^4.0.14","prettier":"^3.7.4","@eslint/js":"^9.39.2","typescript":"^5.9.3","@types/node":"^25.0.3","typescript-eslint":"^8.50.0","@vitest/coverage-v8":"^4.0.16","eslint-plugin-eslint-plugin":"^7.2.0","@typescript-eslint/rule-tester":"^8.50.0","@typescript-eslint/typescript-estree":"^8.50.0"},"peerDependencies":{"eslint":"^9.0.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_0.1.2_1766183982931_0.4129187335085023","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@e18e/eslint-plugin","version":"0.1.3","keywords":["eslint","e18e","performance","bloat","perf"],"author":{"url":"https://github.com/43081j","name":"James Garbutt"},"license":"MIT","_id":"@e18e/eslint-plugin@0.1.3","maintainers":[{"name":"43081j","email":"43081james@gmail.com"}],"homepage":"https://github.com/e18e/eslint-plugin#readme","bugs":{"url":"https://github.com/e18e/eslint-plugin/issues"},"dist":{"shasum":"83012596baaeecd117b29abcebc85c37d4be3835","tarball":"https://registry.npmjs.org/@e18e/eslint-plugin/-/eslint-plugin-0.1.3.tgz","fileCount":51,"integrity":"sha512-gkldotfVlQqyiA2YkmpeWkMva7kbz+wf7nh7tswzDaFjlGxkIgrx45hIgj5oUb1vKS6SVKBa/8/f0ZmBxUXyxg==","signatures":[{"sig":"MEYCIQD+pQl2p/DoxsUkeFjuTBGV5R7w0RiaJb9hCI0BxQX65QIhAINXFfxgXe9zsllGln+ZpvqxBHxduQPaUoJlmNIHDX+3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@e18e%2feslint-plugin@0.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":79142},"main":"lib/main.js","type":"module","types":"./lib/main.d.ts","gitHead":"08c515afb54aefec9f94395530bf50ea03157290","scripts":{"lint":"npm run lint:js && npm run lint:format","test":"vitest run","build":"tsc","format":"prettier --write src","lint:js":"eslint src","lint:format":"prettier --check src"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9ec6407d-291f-4eb3-ac96-2fc22a730e81"}},"repository":{"url":"git+https://github.com/e18e/eslint-plugin.git","type":"git"},"_npmVersion":"11.7.0","description":"The official e18e ESLint plugin for modernizing code and improving performance.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"eslint-plugin-depend":"^1.4.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.2","oxlint":"^1.34.0","vitest":"^4.0.14","prettier":"^3.7.4","@eslint/js":"^9.39.2","typescript":"^5.9.3","@types/node":"^25.0.3","typescript-eslint":"^8.50.0","@vitest/coverage-v8":"^4.0.16","eslint-plugin-eslint-plugin":"^7.2.0","@typescript-eslint/rule-tester":"^8.50.0","@typescript-eslint/typescript-estree":"^8.50.0"},"peerDependencies":{"eslint":"^9.0.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_0.1.3_1766330258530_0.2455099061670185","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@e18e/eslint-plugin","version":"0.1.4","keywords":["eslint","e18e","performance","bloat","perf"],"author":{"url":"https://github.com/43081j","name":"James Garbutt"},"license":"MIT","_id":"@e18e/eslint-plugin@0.1.4","maintainers":[{"name":"43081j","email":"43081james@gmail.com"}],"homepage":"https://github.com/e18e/eslint-plugin#readme","bugs":{"url":"https://github.com/e18e/eslint-plugin/issues"},"dist":{"shasum":"cea3fe867d227c3a790af34678b4dc16594780ae","tarball":"https://registry.npmjs.org/@e18e/eslint-plugin/-/eslint-plugin-0.1.4.tgz","fileCount":53,"integrity":"sha512-nN0zo9lIsYJynhFyN+kNVINc9pDMotKjfEr1NcRRXCFKJt89V5S4DL6ZSXN2USJb2XezkMvyLOQMZ0lZTpvFeQ==","signatures":[{"sig":"MEUCIAzIH+Au3BXDasUPu5uPg6EoRROEP2rZB9HH5W2hSYCtAiEA/K1+xJsbejNR8FlT5POIe6FP1WLXs5WhdBRZoDNCssQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@e18e%2feslint-plugin@0.1.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":88364},"main":"lib/main.js","type":"module","types":"./lib/main.d.ts","gitHead":"1dc399be6eb9dcee207e5cd63ef184bd6c902492","scripts":{"lint":"npm run lint:js && npm run lint:format","test":"vitest run","build":"tsc","format":"prettier --write src","lint:js":"eslint src","lint:format":"prettier --check src"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9ec6407d-291f-4eb3-ac96-2fc22a730e81"}},"repository":{"url":"git+https://github.com/e18e/eslint-plugin.git","type":"git"},"_npmVersion":"11.8.0","description":"The official e18e ESLint plugin for modernizing code and improving performance.","directories":{},"_nodeVersion":"22.22.0","dependencies":{"eslint-plugin-depend":"^1.4.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.2","oxlint":"^1.41.0","vitest":"^4.0.14","prettier":"^3.8.1","@eslint/js":"^9.39.2","typescript":"^5.9.3","@types/node":"^25.0.10","@eslint/json":"^0.14.0","typescript-eslint":"^8.53.1","@vitest/coverage-v8":"^4.0.18","jsonc-eslint-parser":"^2.4.2","eslint-plugin-eslint-plugin":"^7.3.0","@typescript-eslint/rule-tester":"^8.53.1","@typescript-eslint/typescript-estree":"^8.53.1"},"peerDependencies":{"eslint":"^9.0.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_0.1.4_1769607771856_0.5855961891424881","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@e18e/eslint-plugin","version":"0.2.0","keywords":["eslint","e18e","performance","bloat","perf"],"author":{"url":"https://github.com/43081j","name":"James Garbutt"},"license":"MIT","_id":"@e18e/eslint-plugin@0.2.0","maintainers":[{"name":"43081j","email":"43081james@gmail.com"}],"homepage":"https://github.com/e18e/eslint-plugin#readme","bugs":{"url":"https://github.com/e18e/eslint-plugin/issues"},"dist":{"shasum":"458d2ca0164707e4bf419b62e8b91b102208dcf6","tarball":"https://registry.npmjs.org/@e18e/eslint-plugin/-/eslint-plugin-0.2.0.tgz","fileCount":57,"integrity":"sha512-mXgODVwhuDjTJ+UT+XSvmMmCidtGKfrV5nMIv1UtpWex2pYLsIM3RSpT8HWIMAebS9qANbXPKlSX4BE7ZvuCgA==","signatures":[{"sig":"MEYCIQDv99+FZAalDxFCUMmAxxeuT6G0WTKW9EZr/XgvmlO9VwIhAIlah95BWSob//y/nKZ3thfl6yp/Pg3dD2y0QqEgdpCG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@e18e%2feslint-plugin@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":96846},"main":"lib/main.js","type":"module","types":"./lib/main.d.ts","gitHead":"34ff3ef3be562b9fb07ac8b0714e4c1fadf5b233","scripts":{"lint":"npm run lint:js && npm run lint:format","test":"vitest run","build":"tsc","format":"prettier --write src","lint:js":"eslint src","lint:format":"prettier --check src"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9ec6407d-291f-4eb3-ac96-2fc22a730e81"}},"repository":{"url":"git+https://github.com/e18e/eslint-plugin.git","type":"git"},"_npmVersion":"11.10.0","description":"The official e18e ESLint plugin for modernizing code and improving performance.","directories":{},"_nodeVersion":"22.22.0","dependencies":{"eslint-plugin-depend":"^1.4.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.2","oxlint":"^1.41.0","vitest":"^4.0.14","prettier":"^3.8.1","@eslint/js":"^9.39.2","typescript":"^5.9.3","@types/node":"^25.0.10","@eslint/json":"^0.14.0","typescript-eslint":"^8.53.1","@vitest/coverage-v8":"^4.0.18","jsonc-eslint-parser":"^2.4.2","eslint-plugin-eslint-plugin":"^7.3.0","@typescript-eslint/rule-tester":"^8.53.1","@typescript-eslint/typescript-estree":"^8.53.1"},"peerDependencies":{"eslint":"^9.0.0 || ^10.0.0","oxlint":"^1.41.0"},"peerDependenciesMeta":{"eslint":{"optional":true},"oxlint":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_0.2.0_1771274768969_0.6626269036535153","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@e18e/eslint-plugin","version":"0.3.0","keywords":["eslint","e18e","performance","bloat","perf"],"author":{"url":"https://github.com/43081j","name":"James Garbutt"},"license":"MIT","_id":"@e18e/eslint-plugin@0.3.0","maintainers":[{"name":"43081j","email":"43081james@gmail.com"}],"homepage":"https://github.com/e18e/eslint-plugin#readme","bugs":{"url":"https://github.com/e18e/eslint-plugin/issues"},"dist":{"shasum":"8ab0703bfbe4b75ad3b9fb7efc4fceb886de9a4f","tarball":"https://registry.npmjs.org/@e18e/eslint-plugin/-/eslint-plugin-0.3.0.tgz","fileCount":57,"integrity":"sha512-hHgfpxsrZ2UYHcicA+tGZnmk19uJTaye9VH79O+XS8R4ona2Hx3xjhXghclNW58uXMk3xXlbYEOMr8thsoBmWg==","signatures":[{"sig":"MEYCIQCqDv1Ma5PPy7gPDzODWk8y3BwLuYfxBMM1V4hty07IcAIhAKnuRsUmI+0H4t6jT6pcCw7o+8FdXtPzH3CRI0X6xI2X","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@e18e%2feslint-plugin@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":102030},"main":"lib/main.js","type":"module","types":"./lib/main.d.ts","gitHead":"877252815a665541be33943665ad23a3534d9414","scripts":{"lint":"npm run lint:js && npm run lint:format","test":"vitest run","build":"tsc","format":"prettier --write src","lint:js":"eslint src","lint:format":"prettier --check src"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9ec6407d-291f-4eb3-ac96-2fc22a730e81"}},"repository":{"url":"git+https://github.com/e18e/eslint-plugin.git","type":"git"},"_npmVersion":"11.12.0","description":"The official e18e ESLint plugin for modernizing code and improving performance.","directories":{},"_nodeVersion":"22.22.1","dependencies":{"eslint-plugin-depend":"^1.5.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.0.3","oxlint":"^1.55.0","vitest":"^4.0.14","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^25.5.0","@eslint/json":"^1.1.0","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^4.1.0","jsonc-eslint-parser":"^3.1.0","eslint-plugin-eslint-plugin":"^7.3.2","@typescript-eslint/rule-tester":"^8.57.0","@typescript-eslint/typescript-estree":"^8.57.0"},"peerDependencies":{"eslint":"^9.0.0 || ^10.0.0","oxlint":"^1.55.0"},"peerDependenciesMeta":{"eslint":{"optional":true},"oxlint":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_0.3.0_1774150603023_0.4908418287294096","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@e18e/eslint-plugin","version":"0.4.1","keywords":["eslint","e18e","performance","bloat","perf"],"author":{"url":"https://github.com/43081j","name":"James Garbutt"},"license":"MIT","_id":"@e18e/eslint-plugin@0.4.1","maintainers":[{"name":"43081j","email":"43081james@gmail.com"}],"homepage":"https://github.com/e18e/eslint-plugin#readme","bugs":{"url":"https://github.com/e18e/eslint-plugin/issues"},"dist":{"shasum":"350667be7b5a2c36ba4a14e85d9df0b4b2d31007","tarball":"https://registry.npmjs.org/@e18e/eslint-plugin/-/eslint-plugin-0.4.1.tgz","fileCount":63,"integrity":"sha512-Re00N8ad1HsNrzpuIX7Bhdr8RSaFWp6VgwJUEJF+47+D1CMcXoS7VNRkIG23e46pddhgxWU0cWk4wYiQIuMHqQ==","signatures":[{"sig":"MEYCIQD0KCFEpdAoSHn5IQ8UKjjQ13bqELFcRQBfJwoQ1ecykAIhAK9JX9SZAQlADK74Lgp3UfQESimgO08AHq97zxX5JIyT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@e18e%2feslint-plugin@0.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":118154},"main":"lib/main.js","type":"module","types":"./lib/main.d.ts","gitHead":"fa56ae7636168a8ff4d4a10a924713c599d53898","scripts":{"lint":"npm run lint:js && npm run lint:format","test":"vitest run","build":"tsc","format":"prettier --write src","lint:js":"eslint src","lint:format":"prettier --check src"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9ec6407d-291f-4eb3-ac96-2fc22a730e81"}},"repository":{"url":"git+https://github.com/e18e/eslint-plugin.git","type":"git"},"_npmVersion":"11.13.0","description":"The official e18e ESLint plugin for modernizing code and improving performance.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"semver":"^7.7.4","empathic":"^2.0.0","module-replacements":"^3.0.0-beta.7"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.2.1","oxlint":"^1.61.0","vitest":"^4.0.14","prettier":"^3.8.3","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^25.6.0","@eslint/json":"^1.2.0","@types/semver":"^7.7.1","typescript-eslint":"^8.59.0","@vitest/coverage-v8":"^4.1.5","jsonc-eslint-parser":"^3.1.0","eslint-plugin-eslint-plugin":"^7.3.2","@typescript-eslint/rule-tester":"^8.59.0","@typescript-eslint/typescript-estree":"^8.59.0"},"peerDependencies":{"eslint":"^9.0.0 || ^10.0.0","oxlint":"^1.61.0"},"peerDependenciesMeta":{"eslint":{"optional":true},"oxlint":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_0.4.1_1777395067047_0.24382106377179147","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@e18e/eslint-plugin","version":"0.5.0","keywords":["eslint","e18e","performance","bloat","perf"],"author":{"url":"https://github.com/43081j","name":"James Garbutt"},"license":"MIT","_id":"@e18e/eslint-plugin@0.5.0","maintainers":[{"name":"43081j","email":"43081james@gmail.com"}],"homepage":"https://github.com/e18e/eslint-plugin#readme","bugs":{"url":"https://github.com/e18e/eslint-plugin/issues"},"dist":{"shasum":"3b233bbde7a6a896ef4d96faceab48372a8bd06d","tarball":"https://registry.npmjs.org/@e18e/eslint-plugin/-/eslint-plugin-0.5.0.tgz","fileCount":73,"integrity":"sha512-UtClP/mXtMPAxSe5c+OaNQ2nEMCNCdNAkAoKfVCT9jKeC5Y4O6cV/jjXxN7/bRVC75XmNjbVz7YAQtHvU9McyQ==","signatures":[{"sig":"MEYCIQDKaNQ+jv0ubDmcgUwr/maHXRc2l6Ocosfu0MzbH/jZ2QIhAJTmoCGeOhyArqALcOm70D7Gm/mpJ1zQD250LZTIUyiP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@e18e%2feslint-plugin@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":144299},"main":"lib/main.js","type":"module","types":"./lib/main.d.ts","gitHead":"47974f6036134b8200606a6a010ab489baab2091","scripts":{"lint":"npm run lint:js && npm run lint:format","test":"vitest run","build":"tsc","format":"prettier --write src","lint:js":"eslint src","lint:format":"prettier --check src"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9ec6407d-291f-4eb3-ac96-2fc22a730e81"}},"repository":{"url":"git+https://github.com/e18e/eslint-plugin.git","type":"git"},"_npmVersion":"11.14.1","description":"The official e18e ESLint plugin for modernizing code and improving performance.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"semver":"^7.8.0","empathic":"^2.0.1","module-replacements":"^3.0.0-beta.7"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.3.0","oxlint":"^1.63.0","vitest":"^4.0.14","prettier":"^3.8.3","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^25.6.2","@eslint/json":"^1.2.0","@types/semver":"^7.7.1","typescript-eslint":"^8.59.2","@vitest/coverage-v8":"^4.1.5","jsonc-eslint-parser":"^3.1.0","eslint-plugin-eslint-plugin":"^7.3.3","@typescript-eslint/rule-tester":"^8.59.2","@typescript-eslint/typescript-estree":"^8.59.2"},"peerDependencies":{"eslint":"^9.0.0 || ^10.0.0","oxlint":"^1.63.0"},"peerDependenciesMeta":{"eslint":{"optional":true},"oxlint":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_0.5.0_1778619613912_0.4019179617708437","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@e18e/eslint-plugin","version":"0.5.1","keywords":["eslint","e18e","performance","bloat","perf"],"author":{"url":"https://github.com/43081j","name":"James Garbutt"},"license":"MIT","_id":"@e18e/eslint-plugin@0.5.1","maintainers":[{"name":"43081j","email":"43081james@gmail.com"}],"homepage":"https://github.com/e18e/eslint-plugin#readme","bugs":{"url":"https://github.com/e18e/eslint-plugin/issues"},"dist":{"shasum":"8d75427248b4799332bdf32d4005292d8f50f772","tarball":"https://registry.npmjs.org/@e18e/eslint-plugin/-/eslint-plugin-0.5.1.tgz","fileCount":77,"integrity":"sha512-mqUozeyNI9xvJbjrOO7y765dT7Kud3bwCm/DHwctxdEngPdJWQaS9BNGgpM1wCCzZfOtlKQh4ZRhm3VRomT9KA==","signatures":[{"sig":"MEUCIHCSIpu9pYBC5PlAkQUdnPokWQbpzVwqfnwSyPIAt95dAiEA8WxmYXtpieAwmr/rbKMi/OHoANcrAu9mTD7ig3nRG8Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@e18e%2feslint-plugin@0.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":157406},"main":"lib/main.js","type":"module","types":"./lib/main.d.ts","gitHead":"163f573896c54d5c41fc9750d28189f5aa8651a0","scripts":{"lint":"npm run lint:js && npm run lint:format","test":"vitest run","build":"tsc","format":"prettier --write src","lint:js":"eslint src","lint:format":"prettier --check src"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","approver":{"name":"43081j","email":"43081james@gmail.com"},"trustedPublisher":{"id":"github","oidcConfigId":"oidc:db515268-a87a-4de6-8071-0144f7359e06"}},"repository":{"url":"git+https://github.com/e18e/eslint-plugin.git","type":"git"},"_npmVersion":"11.17.0","description":"The official e18e ESLint plugin for modernizing code and improving performance.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"semver":"^7.8.2","empathic":"^2.0.1","module-replacements":"^3.0.0-beta.8"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.4.1","oxlint":"^1.68.0","vitest":"^4.0.14","prettier":"^3.8.3","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^25.9.2","@eslint/json":"^2.0.0","@types/semver":"^7.7.1","typescript-eslint":"^8.60.1","@vitest/coverage-v8":"^4.1.8","jsonc-eslint-parser":"^3.1.0","eslint-plugin-eslint-plugin":"^7.4.0","@typescript-eslint/rule-tester":"^8.60.1","@typescript-eslint/typescript-estree":"^8.60.1"},"peerDependencies":{"eslint":"^9.0.0 || ^10.0.0","oxlint":"^1.68.0"},"peerDependenciesMeta":{"eslint":{"optional":true},"oxlint":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_0.5.1_1781452553708_0.9298065507255846","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@e18e/eslint-plugin","version":"0.6.0","keywords":["eslint","e18e","performance","bloat","perf"],"author":{"url":"https://github.com/43081j","name":"James Garbutt"},"license":"MIT","_id":"@e18e/eslint-plugin@0.6.0","maintainers":[{"name":"43081j","email":"43081james@gmail.com"}],"homepage":"https://github.com/e18e/eslint-plugin#readme","bugs":{"url":"https://github.com/e18e/eslint-plugin/issues"},"dist":{"shasum":"b7b75d849fca785db5bbb6d71dfb5d253f2b0a56","tarball":"https://registry.npmjs.org/@e18e/eslint-plugin/-/eslint-plugin-0.6.0.tgz","fileCount":83,"integrity":"sha512-JQkeXoZA12f9WM2H4t4IobIRqlPvYLeNAjZF6raFu2vmD5YoyuzKmwsLZNJ4g/39c3v1Se2ad3o+oq4y2et/RA==","signatures":[{"sig":"MEYCIQDLaVf80HLQr2Gs5OErNmGTiaP3KygQO0SQBxbooJBEAgIhALZE+FzqN3l5v5bdFzDxZHytUoDVMbKrEEvTOMFoRj5p","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@e18e%2feslint-plugin@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":176359},"main":"lib/main.js","type":"module","types":"./lib/main.d.ts","gitHead":"c675b93e2acf98366aaf9175d8ccf9edefa0927b","scripts":{"lint":"npm run lint:js && npm run lint:format","test":"vitest run","build":"tsc","format":"prettier --write src","lint:js":"eslint src","lint:format":"prettier --check src"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","approver":{"name":"43081j","email":"43081james@gmail.com"},"trustedPublisher":{"id":"github","oidcConfigId":"oidc:db515268-a87a-4de6-8071-0144f7359e06"}},"repository":{"url":"git+https://github.com/e18e/eslint-plugin.git","type":"git"},"_npmVersion":"12.0.1","description":"The official e18e ESLint plugin for modernizing code and improving performance.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"semver":"^7.8.5","empathic":"^2.0.1","module-replacements":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.6.0","oxlint":"^1.72.0","vitest":"^4.0.14","prettier":"^3.9.4","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^26.1.0","@eslint/json":"^2.0.1","@types/semver":"^7.7.1","typescript-eslint":"^8.62.1","@vitest/coverage-v8":"^4.1.9","jsonc-eslint-parser":"^3.1.0","eslint-plugin-eslint-plugin":"^7.4.1","@typescript-eslint/rule-tester":"^8.62.1","@typescript-eslint/typescript-estree":"^8.62.1"},"peerDependencies":{"eslint":"^9.0.0 || ^10.0.0","oxlint":"^1.72.0"},"peerDependenciesMeta":{"eslint":{"optional":true},"oxlint":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_0.6.0_1784901201478_0.38152961080296866","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@e18e/eslint-plugin","version":"0.8.0","keywords":["eslint","e18e","performance","bloat","perf"],"author":{"url":"https://github.com/43081j","name":"James Garbutt"},"license":"MIT","_id":"@e18e/eslint-plugin@0.8.0","maintainers":[{"name":"43081j","email":"43081james@gmail.com"}],"homepage":"https://github.com/e18e/eslint-plugin#readme","bugs":{"url":"https://github.com/e18e/eslint-plugin/issues"},"dist":{"shasum":"002dabfe0bf12b27717befa3346fe799283f6c28","tarball":"https://registry.npmjs.org/@e18e/eslint-plugin/-/eslint-plugin-0.8.0.tgz","fileCount":83,"integrity":"sha512-js/TeM+XJyoJ2Zk4if5uTEchv3MEbqugc9gLgq8YdB6Dy+LvwGACpQiAwcul0r4LUl0TvhuzAKUeIUPtGp2cew==","signatures":[{"sig":"MEQCIEqdr6Th5yvWs2BG4BEprjcNqf3P3GBrYvJUODIS/x2KAiB5xN2H8Guc55JerCmn1ozUmj+r19FSx9j44TqgXsrxVQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@e18e%2feslint-plugin@0.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":178176},"main":"lib/main.js","type":"module","types":"./lib/main.d.ts","gitHead":"78d163aaf21d6cb1fb461e7a1d685f2679ba6ebd","scripts":{"lint":"npm run lint:js && npm run lint:format","test":"vitest run","build":"tsc","format":"prettier --write src","lint:js":"eslint src","lint:format":"prettier --check src"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","approver":{"name":"43081j","email":"43081james@gmail.com"},"trustedPublisher":{"id":"github","oidcConfigId":"oidc:db515268-a87a-4de6-8071-0144f7359e06"}},"repository":{"url":"git+https://github.com/e18e/eslint-plugin.git","type":"git"},"_npmVersion":"12.0.2","description":"The official e18e ESLint plugin for modernizing code and improving performance.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"semver":"^7.8.5","empathic":"^2.0.1","module-replacements":"^3.1.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.6.0","oxlint":"^1.72.0","vitest":"^4.0.14","prettier":"^3.9.4","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^26.1.0","@eslint/json":"^2.0.1","@types/semver":"^7.7.1","typescript-eslint":"^8.62.1","@vitest/coverage-v8":"^4.1.9","jsonc-eslint-parser":"^3.1.0","eslint-plugin-eslint-plugin":"^7.4.1","@typescript-eslint/rule-tester":"^8.62.1","@typescript-eslint/typescript-estree":"^8.62.1"},"peerDependencies":{"eslint":"^9.0.0 || ^10.0.0","oxlint":"^1.72.0"},"peerDependenciesMeta":{"eslint":{"optional":true},"oxlint":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_0.8.0_1785938146958_0.6033206219983394","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"_id":"@e18e/eslint-plugin@0.8.1","bugs":{"url":"https://github.com/e18e/eslint-plugin/issues"},"dist":{"shasum":"6748e7807e5001e37a5aba86631f886f97a56254","tarball":"https://registry.npmjs.org/@e18e/eslint-plugin/-/eslint-plugin-0.8.1.tgz","integrity":"sha512-OV3T7l0r52/IglskdAuoO+BJyzsCs7AcIHpwpBMlIMO0+3RHskM2h5MuHdLuesIhSRhwCURGMKtp/XwnfXrfxg==","fileCount":83,"unpackedSize":178762,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@e18e%2feslint-plugin@0.8.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIB9IZhb4qBzJhRvPL1O8x3BAaZohPQzlR/+tijnr7y/8AiA4q2qcHY0BBfJyYumdy+yEXelW5gzJWLowu199dM6nqg=="}]},"main":"lib/main.js","name":"@e18e/eslint-plugin","type":"module","types":"./lib/main.d.ts","author":{"url":"https://github.com/43081j","name":"James Garbutt"},"gitHead":"32f2c34924e8daf3ed3e16c21051610a125e4ea8","license":"MIT","scripts":{"lint":"npm run lint:js && npm run lint:format","test":"vitest run","build":"tsc","format":"prettier --write src","lint:js":"eslint src","lint:format":"prettier --check src"},"version":"0.8.1","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:db515268-a87a-4de6-8071-0144f7359e06"},"approver":{"name":"43081j","email":"43081james@gmail.com"}},"homepage":"https://github.com/e18e/eslint-plugin#readme","keywords":["eslint","e18e","performance","bloat","perf"],"repository":{"url":"git+https://github.com/e18e/eslint-plugin.git","type":"git"},"_npmVersion":"12.0.2","description":"The official e18e ESLint plugin for modernizing code and improving performance.","directories":{},"maintainers":[{"name":"43081j","email":"43081james@gmail.com"}],"_nodeVersion":"22.23.2","dependencies":{"verkit":"^0.4.0","empathic":"^2.0.1","module-replacements":"^3.3.0"},"devDependencies":{"eslint":"^10.6.0","oxlint":"^1.72.0","vitest":"^4.0.14","prettier":"^3.9.4","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^26.1.0","@eslint/json":"^2.0.1","typescript-eslint":"^8.62.1","@vitest/coverage-v8":"^4.1.9","jsonc-eslint-parser":"^3.1.0","eslint-plugin-eslint-plugin":"^7.4.1","@typescript-eslint/rule-tester":"^8.62.1","@typescript-eslint/typescript-estree":"^8.62.1"},"peerDependencies":{"eslint":"^9.0.0 || ^10.0.0","oxlint":"^1.72.0"},"peerDependenciesMeta":{"eslint":{"optional":true},"oxlint":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/eslint-plugin_0.8.1_1789652563771_0.8612935632393057"},"_hasShrinkwrap":false}},"time":{"created":"2025-12-19T16:38:45.097Z","modified":"2026-09-17T13:42:44.174Z","0.0.1":"2025-12-19T16:38:45.355Z","0.1.0":"2025-12-19T19:17:23.300Z","0.1.1":"2025-12-19T20:53:54.849Z","0.1.2":"2025-12-19T22:39:43.084Z","0.1.3":"2025-12-21T15:17:38.709Z","0.1.4":"2026-01-28T13:42:52.019Z","0.2.0":"2026-02-16T20:46:09.193Z","0.3.0":"2026-03-22T03:36:43.157Z","0.4.1":"2026-04-28T16:51:07.176Z","0.5.0":"2026-05-12T21:00:14.074Z","0.5.1":"2026-06-14T15:55:53.782Z","0.6.0":"2026-07-24T13:53:21.549Z","0.8.0":"2026-08-05T13:55:47.112Z","0.8.1":"2026-09-17T13:42:43.857Z"},"bugs":{"url":"https://github.com/e18e/eslint-plugin/issues"},"author":{"url":"https://github.com/43081j","name":"James Garbutt"},"license":"MIT","homepage":"https://github.com/e18e/eslint-plugin#readme","keywords":["eslint","e18e","performance","bloat","perf"],"repository":{"url":"git+https://github.com/e18e/eslint-plugin.git","type":"git"},"description":"The official e18e ESLint plugin for modernizing code and improving performance.","maintainers":[{"name":"43081j","email":"43081james@gmail.com"}],"readme":"# @e18e/eslint-plugin\n\n> The official e18e ESLint plugin for modernizing JavaScript/TypeScript code and improving performance.\n\nThis plugin focuses on applying the e18e community's best practices and advise to JavaScript/TypeScript codebases.\n\n## Overview\n\nThere are a few categories of rules in this plugin:\n\n- Modernization - New syntax and APIs which improve code readability and performance\n- Module replacements - Community recommended alternatives to popular libraries, focused on performance and size\n- Performance improvements - Patterns that can be optimized for better runtime performance\n\nEach of these can be enabled individually, or you can use the recommended configuration to enable all rules.\n\n## Installation\n\n```bash\nnpm install --save-dev @e18e/eslint-plugin\n```\n\n## Usage\n\nAdd the plugin to your `eslint.config.js`:\n\n```ts\nimport e18e from '@e18e/eslint-plugin';\n\nexport default [\n  // Use the recommended configuration (includes all categories)\n  e18e.configs.recommended,\n\n  // Or use specific category configurations\n  e18e.configs.modernization,\n  e18e.configs.moduleReplacements,\n  e18e.configs.performanceImprovements,\n\n  // Or configure rules manually\n  {\n    plugins: {\n      e18e\n    },\n    rules: {\n      'e18e/prefer-array-at': 'error',\n      'e18e/prefer-array-fill': 'error',\n      'e18e/prefer-includes': 'error'\n    }\n  }\n];\n```\n\n## Usage with oxlint\n\nIf you're using oxlint, you can enable the e18e plugin by adding it to your `.oxlintrc.json` file:\n\n```json\n{\n  \"jsPlugins\": [\"@e18e/eslint-plugin\"],\n  \"rules\": {\n    \"e18e/prefer-includes\": \"error\"\n  }\n}\n```\n\nYou can enable the recommended configuration by copying the rules from each of the ESLint configuration files into your `.oxlintrc.json` file.\n\n- [modernization configuration](./src/configs/modernization.ts)\n- [module replacements configuration](./src/configs/module-replacements.ts)\n- [performance improvements configuration](./src/configs/performance-improvements.ts)\n\nCopying these rules into your `rules` object will achieve the same effect as using the recommended configuration in ESLint.\n\n> [!NOTE]\n> Our type-aware rules depend on TypeScript ESLint's parser, which means they\n> will not work with oxlint at this time.\n\n## Linting `package.json`\n\nSome rules (e.g. `ban-dependencies`) can be used against your `package.json`.\n\nYou can achieve this by using `@eslint/json` or `jsonc-eslint-parser`.\n\nFor example, with `@eslint/json` and `eslint.config.js`:\n\n```ts\nimport e18e from '@e18e/eslint-plugin';\nimport json from '@eslint/json';\nimport {defineConfig} from 'eslint/config';\n\nexport default defineConfig([\n  {\n    files: ['package.json'],\n    language: 'json/json',\n    plugins: {\n      e18e,\n      json\n    },\n    extends: ['e18e/recommended'],\n  }\n]);\n```\n\nOr with `jsonc-eslint-parser` and `eslint.config.js`:\n\n```ts\nimport e18e from '@e18e/eslint-plugin';\nimport jsonParser from 'jsonc-eslint-parser';\nimport {defineConfig} from 'eslint/config';\n\nexport default defineConfig([\n  {\n    files: ['package.json'],\n    languageOptions: {\n      parser: jsonParser\n    },\n    plugins: {\n      e18e\n    },\n    extends: ['e18e/recommended'],\n  }\n]);\n```\n\nRead more at the\n[`@eslint/json` docs](https://github.com/eslint/json) and\n[`jsonc-eslint-parser` docs](https://github.com/ota-meshi/jsonc-eslint-parser).\n\n## Rules\n\n**Legend:**\n- ✅ = Yes / Enabled\n- ✖️ = No / Disabled\n- 💡 = Has suggestions (requires user confirmation for fixes)\n- 🔶 = Optionally uses types (works without TypeScript but more powerful with it)\n\n### Modernization\n\n| Rule | Description | Recommended | Fixable | Requires Types |\n|------|-------------|-------------|---------|----------------|\n| [prefer-array-at](./src/rules/prefer-array-at.ts) | Prefer `Array.prototype.at()` over length-based indexing | ✅ | ✅ | 🔶 |\n| [prefer-array-fill](./src/rules/prefer-array-fill.ts) | Prefer `Array.prototype.fill()` over `Array.from()` or `map()` with constant values | ✅ | ✅ | ✖️ |\n| [prefer-includes](./src/rules/prefer-includes.ts) | Prefer `.includes()` over `indexOf()` comparisons for arrays and strings | ✅ | ✅ | ✖️ |\n| [prefer-array-to-reversed](./src/rules/prefer-array-to-reversed.ts) | Prefer `Array.prototype.toReversed()` over copying and reversing arrays | ✅ | ✅ | 🔶 |\n| [prefer-array-to-sorted](./src/rules/prefer-array-to-sorted.ts) | Prefer `Array.prototype.toSorted()` over copying and sorting arrays | ✅ | ✅ | 🔶 |\n| [prefer-array-to-spliced](./src/rules/prefer-array-to-spliced.ts) | Prefer `Array.prototype.toSpliced()` over copying and splicing arrays | ✅ | ✅ | ✖️ |\n| [prefer-exponentiation-operator](./src/rules/prefer-exponentiation-operator.ts) | Prefer the exponentiation operator `**` over `Math.pow()` | ✅ | ✅ | ✖️ |\n| [prefer-nullish-coalescing](./src/rules/prefer-nullish-coalescing.ts) | Prefer nullish coalescing operator (`??` and `??=`) over verbose null checks | ✅ | ✅ | ✖️ |\n| [prefer-object-has-own](./src/rules/prefer-object-has-own.ts) | Prefer `Object.hasOwn()` over `Object.prototype.hasOwnProperty.call()` and `obj.hasOwnProperty()` | ✅ | ✅ | ✖️ |\n| [prefer-spread-syntax](./src/rules/prefer-spread-syntax.ts) | Prefer spread syntax over `Array.concat()`, `Array.from()`, `Object.assign({}, ...)`, and `Function.apply()` | ✅ | ✅ | 🔶 |\n| [prefer-url-canparse](./src/rules/prefer-url-canparse.ts) | Prefer `URL.canParse()` over try-catch blocks for URL validation | ✅ | 💡 | ✖️ |\n| [prefer-get-or-insert](./src/rules/prefer-get-or-insert.ts) | Prefer `Map.prototype.getOrInsert()` over reading a map entry with a default and writing it back | ✖️ | ✅ | ✖️ |\n\n### Module replacements\n\n| Rule | Description | Recommended | Fixable | Requires Types |\n|------|-------------|-------------|---------|----------------|\n| [ban-dependencies](./src/rules/ban-dependencies.ts) | Disallow dependencies in favor of more performant or secure alternatives | ✅ | ✖️ | ✖️ |\n\n### Performance improvements\n\n| Rule | Description | Recommended | Fixable | Requires Types |\n|------|-------------|-------------|---------|----------------|\n| [no-indexof-equality](./src/rules/no-indexof-equality.ts) | Prefer `startsWith()` for strings and direct array access over `indexOf()` equality checks | ✖️ | ✅ | ✅ |\n| [prefer-array-from-map](./src/rules/prefer-array-from-map.ts) | Prefer `Array.from(iterable, mapper)` over `[...iterable].map(mapper)` to avoid intermediate array allocation | ✅ | ✅ | ✖️ |\n| [prefer-array-some](./src/rules/prefer-array-some.ts) | Prefer `Array.some()` over `Array.find()` and `Array.filter().length` checks when checking for element existence | ✅ | ✅ | ✖️ |\n| [prefer-timer-args](./src/rules/prefer-timer-args.ts) | Prefer passing function and arguments directly to `setTimeout`/`setInterval` instead of wrapping in an arrow function or using `bind` | ✅ | ✅ | ✖️ |\n| [prefer-date-now](./src/rules/prefer-date-now.ts) | Prefer `Date.now()` over `new Date().getTime()` and `+new Date()` | ✅ | ✅ | ✖️ |\n| [prefer-regex-test](./src/rules/prefer-regex-test.ts) | Prefer `RegExp.test()` over `String.match()` and `RegExp.exec()` when only checking for match existence | ✅ | ✅ | 🔶 |\n| [prefer-static-regex](./src/rules/prefer-static-regex.ts) | Prefer defining regular expressions at module scope to avoid re-compilation on every function call | ✅ | ✖️ | 🔶 |\n| [prefer-inline-equality](./src/rules/prefer-inline-equality.ts) | Prefer inline equality checks over temporary object creation for simple comparisons | ✖️ | ✅ | 🔶 |\n| [prefer-string-fromcharcode](./src/rules/prefer-string-fromcharcode.ts) | Prefer `String.fromCharCode()` over `String.fromCodePoint()` for code points below `0x10000` | ✅ | ✅ | ✖️ |\n| [prefer-includes-over-regex-test](./src/rules/prefer-includes-over-regex-test.ts) | Prefer `s.includes()` / `startsWith` / `endsWith` over `/literal/.test(s)` when the regex has no metacharacters or flags | ✖️ | ✅ | ✖️ |\n| [prefer-charcode-at-in-loop](./src/rules/prefer-charcode-at-in-loop.ts) | Prefer `charCodeAt()` over indexed string access for single-character comparisons inside loops | ✖️ | 💡 | 🔶 |\n| [prefer-throw-if-no-entry](./src/rules/prefer-throw-if-no-entry.ts) | Prefer `{throwIfNoEntry: false}` over relying on a thrown error for missing fs entries from sync stat calls | ✖️ | 💡 | ✖️ |\n| [no-delete-property](./src/rules/no-delete-property.ts) | Disallow `delete` on properties — V8 deoptimizes the object to dictionary mode | ✖️ | 💡 | ✖️ |\n| [prefer-flatmap-over-map-flat](./src/rules/prefer-flatmap-over-map-flat.ts) | Prefer `Array.prototype.flatMap()` over `.map(fn).flat()` to skip the intermediate array | ✖️ | ✅ | ✖️ |\n| [prefer-slice-over-split-index](./src/rules/prefer-slice-over-split-index.ts) | Prefer `indexOf(needle)` and `slice(...)` over `split()[N]` when splitting a string into two pieces | ✖️ | ✖️ | ✖️ |\n| [no-spread-in-reduce](./src/rules/no-spread-in-reduce.ts) | Disallow spreading the accumulator inside a `.reduce()` callback — it's O(N²) | ✖️ | ✖️ | ✖️ |\n| [prefer-static-collator](./src/rules/prefer-static-collator.ts) | Prefer hoisting an `Intl.Collator` over calling `localeCompare` inside a `sort`/`toSorted` callback | ✖️ | ✖️ | ✖️ |\n\n## Sponsors\n\n<p align=\"center\">\n  <a href=\"https://e18e.dev/sponsor\">\n    <img src=\"https://e18e.dev/sponsors.svg\" alt=\"e18e community sponsors\" />\n  </a>\n</p>\n\n## License\n\nMIT\n","readmeFilename":"README.md"}