{"_id":"@eco-linter/eslint-plugin","_rev":"7-35da2ecb73eee466f686e59b445cbd9a","name":"@eco-linter/eslint-plugin","dist-tags":{"latest":"1.1.4"},"versions":{"1.0.0":{"name":"@eco-linter/eslint-plugin","version":"1.0.0","keywords":["eco-linter","eslint-plugin","green-code","carbon","energy-efficiency","sustainability"],"license":"MIT","_id":"@eco-linter/eslint-plugin@1.0.0","maintainers":[{"name":"zunaib.imtiaz","email":"zunaib60@gmail.com"}],"homepage":"https://eco-linter.vercel.app","bugs":{"url":"https://github.com/zunaibimtiaz/eco-linter/issues"},"dist":{"shasum":"781d0a96d810394b0f25a1e896b60af928b7027a","tarball":"https://registry.npmjs.org/@eco-linter/eslint-plugin/-/eslint-plugin-1.0.0.tgz","fileCount":5,"integrity":"sha512-lpsZKZtYN/7W3U4LCNJUWBU6P5mKPSuhtXNLfgmvk8xowSPty2m+nPpvGQXh61X68qoRTep2ddZ1Fzd3noXeKA==","signatures":[{"sig":"MEUCIDdcOtbrUx6DWbdtz8P4yfDahZa4T4ss61SSJxqdJSxmAiEAhi9D/6qe3EvWLRNDvAb5qDDW0lcCWcD5c51KVZDYTMM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7111},"main":"./dist/index.js","type":"module","_from":"file:eco-linter-eslint-plugin-1.0.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsc -p tsconfig.json --watch","build":"tsc -p tsconfig.json","clean":"rm -rf dist","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"zunaib.imtiaz","email":"zunaib60@gmail.com"},"_resolved":"/private/var/folders/fx/6_j04p_n1x7gnglswxk7cskc0000gp/T/d6d5412cffe7c5eeee7ac383867a86ff/eco-linter-eslint-plugin-1.0.0.tgz","_integrity":"sha512-lpsZKZtYN/7W3U4LCNJUWBU6P5mKPSuhtXNLfgmvk8xowSPty2m+nPpvGQXh61X68qoRTep2ddZ1Fzd3noXeKA==","repository":{"url":"git+https://github.com/zunaibimtiaz/eco-linter.git","type":"git"},"_npmVersion":"10.9.3","description":"ESLint plugin for eco-linter — inline IDE feedback for energy efficiency","directories":{},"_nodeVersion":"22.20.0","dependencies":{"@eco-linter/core":"1.0.0","@typescript-eslint/utils":"^8.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.4.5"},"peerDependencies":{"eslint":">=8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_1.0.0_1778449386232_0.9240087268960688","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@eco-linter/eslint-plugin","version":"1.0.1","keywords":["eco-linter","eslint-plugin","green-code","carbon","energy-efficiency","sustainability"],"license":"MIT","_id":"@eco-linter/eslint-plugin@1.0.1","maintainers":[{"name":"zunaib.imtiaz","email":"zunaib60@gmail.com"}],"homepage":"https://eco-linter.vercel.app","bugs":{"url":"https://github.com/zunaibimtiaz/eco-linter/issues"},"dist":{"shasum":"33d7be054969f73efee335db3351a9d99a02d7ef","tarball":"https://registry.npmjs.org/@eco-linter/eslint-plugin/-/eslint-plugin-1.0.1.tgz","fileCount":6,"integrity":"sha512-cat6WT+hyH8+IvRQo4IBDu0gCjVM0x2KDX7Xkz4hoYj8YbzhMR2ZzhfGsG+4uv6R43O330WHpUUFeQ1pXIHg3A==","signatures":[{"sig":"MEQCICPLo9iVS3tx8PK1LZpcHDXel2ts7gcO9L8bGcOjS/JCAiA8lR/DL9HNXLrwfop9ciPXw6CvwDV3dTZzAdbMm2IQtA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9867},"main":"./dist/index.js","type":"module","_from":"file:eco-linter-eslint-plugin-1.0.1.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsc -p tsconfig.json --watch","build":"tsc -p tsconfig.json","clean":"rm -rf dist","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"zunaib.imtiaz","email":"zunaib60@gmail.com"},"_resolved":"/private/var/folders/fx/6_j04p_n1x7gnglswxk7cskc0000gp/T/88b892b8a2ee802329bddf39235e784e/eco-linter-eslint-plugin-1.0.1.tgz","_integrity":"sha512-cat6WT+hyH8+IvRQo4IBDu0gCjVM0x2KDX7Xkz4hoYj8YbzhMR2ZzhfGsG+4uv6R43O330WHpUUFeQ1pXIHg3A==","repository":{"url":"git+https://github.com/zunaibimtiaz/eco-linter.git","type":"git"},"_npmVersion":"10.9.3","description":"ESLint plugin for eco-linter — inline IDE feedback for energy efficiency","directories":{},"_nodeVersion":"22.20.0","dependencies":{"@eco-linter/core":"1.0.1","@typescript-eslint/utils":"^8.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.4.5"},"peerDependencies":{"eslint":">=8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_1.0.1_1778449648268_0.48601633879100037","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@eco-linter/eslint-plugin","version":"1.1.0","keywords":["eco-linter","eslint-plugin","green-code","carbon","energy-efficiency","sustainability"],"license":"MIT","_id":"@eco-linter/eslint-plugin@1.1.0","maintainers":[{"name":"zunaib.imtiaz","email":"zunaib60@gmail.com"}],"homepage":"https://eco-linter.vercel.app","bugs":{"url":"https://github.com/zunaibimtiaz/eco-linter/issues"},"dist":{"shasum":"4743c1e7883ca19179aff161aabbf00dc63db5e9","tarball":"https://registry.npmjs.org/@eco-linter/eslint-plugin/-/eslint-plugin-1.1.0.tgz","fileCount":6,"integrity":"sha512-I6GzhLOToQyF7FHi1PS7hYLn6B12qqK8wjOtDMoouzmsJgqi8eBjnTqDuIVMSNcCyuCfnEVTuv/41f8Vo/ybPQ==","signatures":[{"sig":"MEUCIQCuNBeEwaYNq6Q1Lx3EjSk64KxDvJrzgfw8PnhKA1bKBgIgLcLC3vZLJkdBDpAtN8IJNFiWAoKoDbUNzBsqeMyqOnE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10002},"main":"./dist/index.js","type":"module","_from":"file:eco-linter-eslint-plugin-1.1.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsc -p tsconfig.json --watch","build":"tsc -p tsconfig.json","clean":"rm -rf dist","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"zunaib.imtiaz","email":"zunaib60@gmail.com"},"_resolved":"/private/var/folders/fx/6_j04p_n1x7gnglswxk7cskc0000gp/T/4446d3472d3e2bbefc2fe9bc8352bd6a/eco-linter-eslint-plugin-1.1.0.tgz","_integrity":"sha512-I6GzhLOToQyF7FHi1PS7hYLn6B12qqK8wjOtDMoouzmsJgqi8eBjnTqDuIVMSNcCyuCfnEVTuv/41f8Vo/ybPQ==","repository":{"url":"git+https://github.com/zunaibimtiaz/eco-linter.git","type":"git"},"_npmVersion":"10.9.3","description":"ESLint plugin for eco-linter — inline IDE feedback for energy efficiency","directories":{},"_nodeVersion":"22.20.0","dependencies":{"@eco-linter/core":"1.1.0","@typescript-eslint/utils":"^8.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.4.5"},"peerDependencies":{"eslint":">=8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_1.1.0_1778451385855_0.23505182098250033","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@eco-linter/eslint-plugin","version":"1.1.1","keywords":["eco-linter","eslint-plugin","green-code","carbon","energy-efficiency","sustainability"],"license":"MIT","_id":"@eco-linter/eslint-plugin@1.1.1","maintainers":[{"name":"zunaib.imtiaz","email":"zunaib60@gmail.com"}],"homepage":"https://github.com/zunaibimtiaz/eco-linter#readme","bugs":{"url":"https://github.com/zunaibimtiaz/eco-linter/issues"},"dist":{"shasum":"2aec1fcc48e9b7b54a967abfad91c0fbad92341c","tarball":"https://registry.npmjs.org/@eco-linter/eslint-plugin/-/eslint-plugin-1.1.1.tgz","fileCount":6,"integrity":"sha512-yMd4Cxm5nm1douH7leKZCs6EVZ5CW6u7swRo7xdOUaC+Rm7k4FvRROzW/sYgpD0fDoLHMgkr9uaQCtdIpBwKXQ==","signatures":[{"sig":"MEYCIQDvR3Nh6Sp7SLoxSNy6lKrIPcTXV50B3z4Nss/L4tInkQIhAOgRGWbyt6R3RI+rozF5ifIBOJ6/UvbXCFy91REevaUb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9955},"main":"./dist/index.js","type":"module","_from":"file:eco-linter-eslint-plugin-1.1.1.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsc -p tsconfig.json --watch","build":"tsc -p tsconfig.json","clean":"rm -rf dist","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"zunaib.imtiaz","email":"zunaib60@gmail.com"},"_resolved":"/private/var/folders/fx/6_j04p_n1x7gnglswxk7cskc0000gp/T/b6ed28f60f100f87687f6198c8b2d130/eco-linter-eslint-plugin-1.1.1.tgz","_integrity":"sha512-yMd4Cxm5nm1douH7leKZCs6EVZ5CW6u7swRo7xdOUaC+Rm7k4FvRROzW/sYgpD0fDoLHMgkr9uaQCtdIpBwKXQ==","repository":{"url":"git+https://github.com/zunaibimtiaz/eco-linter.git","type":"git"},"_npmVersion":"10.9.3","description":"ESLint plugin for eco-linter — inline IDE feedback for energy efficiency","directories":{},"_nodeVersion":"22.20.0","dependencies":{"@eco-linter/core":"1.1.1","@typescript-eslint/utils":"^8.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.4.5"},"peerDependencies":{"eslint":">=8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_1.1.1_1778451484396_0.31733467566519713","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@eco-linter/eslint-plugin","version":"1.1.2","keywords":["eco-linter","eslint-plugin","green-code","carbon","energy-efficiency","sustainability"],"license":"MIT","_id":"@eco-linter/eslint-plugin@1.1.2","maintainers":[{"name":"zunaib.imtiaz","email":"zunaib60@gmail.com"}],"homepage":"https://github.com/zunaibimtiaz/eco-linter#readme","bugs":{"url":"https://github.com/zunaibimtiaz/eco-linter/issues"},"dist":{"shasum":"d8217212b17b91989d532edacecc7776c21200b9","tarball":"https://registry.npmjs.org/@eco-linter/eslint-plugin/-/eslint-plugin-1.1.2.tgz","fileCount":6,"integrity":"sha512-zMZxKiexco3H5uXDdBVMYPPoIp9rm8DUECyx3HZqCZrSD1hASj9OI6EjjjgHA8TDjqRbmnLIQmVKocdbWfMUKw==","signatures":[{"sig":"MEYCIQC4hpwkyFz2Qs9g93E7cmRHUAlFCFVdeM+WNjgUNotz2QIhAO94TV7pCubjXlI3vfPfT+Mf7jde9KGyQyIQ32U+xbSA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9955},"main":"./dist/index.js","type":"module","_from":"file:eco-linter-eslint-plugin-1.1.2.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsc -p tsconfig.json --watch","build":"tsc -p tsconfig.json","clean":"rm -rf dist","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"zunaib.imtiaz","email":"zunaib60@gmail.com"},"_resolved":"/private/var/folders/fx/6_j04p_n1x7gnglswxk7cskc0000gp/T/e59421005453ea778fbf8affcd78ccfc/eco-linter-eslint-plugin-1.1.2.tgz","_integrity":"sha512-zMZxKiexco3H5uXDdBVMYPPoIp9rm8DUECyx3HZqCZrSD1hASj9OI6EjjjgHA8TDjqRbmnLIQmVKocdbWfMUKw==","repository":{"url":"git+https://github.com/zunaibimtiaz/eco-linter.git","type":"git"},"_npmVersion":"10.9.3","description":"ESLint plugin for eco-linter — inline IDE feedback for energy efficiency","directories":{},"_nodeVersion":"22.20.0","dependencies":{"@eco-linter/core":"1.1.2","@typescript-eslint/utils":"^8.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.4.5"},"peerDependencies":{"eslint":">=8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_1.1.2_1778454653168_0.7859151581257511","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"@eco-linter/eslint-plugin","version":"1.1.3","keywords":["eco-linter","eslint-plugin","green-code","carbon","energy-efficiency","sustainability"],"license":"MIT","_id":"@eco-linter/eslint-plugin@1.1.3","maintainers":[{"name":"zunaib.imtiaz","email":"zunaib60@gmail.com"}],"homepage":"https://github.com/Zunaib/eco-linter#readme","bugs":{"url":"https://github.com/Zunaib/eco-linter/issues"},"dist":{"shasum":"90ed5e7883c804e7f63bfdd7d14bce8cbf65f929","tarball":"https://registry.npmjs.org/@eco-linter/eslint-plugin/-/eslint-plugin-1.1.3.tgz","fileCount":6,"integrity":"sha512-DVE1z/0QNowAg4bvONIP07ZrmBiJm/O535/LDFnzBXonvAmxDVH059tF81RJGfWgbL50oMkn7tyQaMYUyWMLYQ==","signatures":[{"sig":"MEYCIQDweE9NXXUgfjmrUdigYIV6qpwAlVBqx3u+N2T+GCz4FgIhAJdLZ2q8pVcFAXbtS/+NL6YjS9A3O7T1dLzgXClTsm7F","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9949},"main":"./dist/index.js","type":"module","_from":"file:eco-linter-eslint-plugin-1.1.3.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsc -p tsconfig.json --watch","build":"tsc -p tsconfig.json","clean":"rm -rf dist","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"zunaib.imtiaz","email":"zunaib60@gmail.com"},"_resolved":"/private/var/folders/fx/6_j04p_n1x7gnglswxk7cskc0000gp/T/b8080e1ced222f07b1e4e8cda1db6827/eco-linter-eslint-plugin-1.1.3.tgz","_integrity":"sha512-DVE1z/0QNowAg4bvONIP07ZrmBiJm/O535/LDFnzBXonvAmxDVH059tF81RJGfWgbL50oMkn7tyQaMYUyWMLYQ==","repository":{"url":"git+https://github.com/Zunaib/eco-linter.git","type":"git"},"_npmVersion":"10.9.3","description":"ESLint plugin for eco-linter — inline IDE feedback for energy efficiency","directories":{},"_nodeVersion":"22.20.0","dependencies":{"@eco-linter/core":"1.1.3","@typescript-eslint/utils":"^8.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.4.5"},"peerDependencies":{"eslint":">=8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_1.1.3_1778513425590_0.8973872301071801","host":"s3://npm-registry-packages-npm-production"}},"1.1.4":{"name":"@eco-linter/eslint-plugin","version":"1.1.4","description":"ESLint plugin for eco-linter — inline IDE feedback for energy efficiency","repository":{"type":"git","url":"git+https://github.com/Zunaib/eco-linter.git"},"license":"MIT","keywords":["eco-linter","eslint-plugin","green-code","carbon","energy-efficiency","sustainability"],"type":"module","publishConfig":{"access":"public"},"main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"import":"./dist/index.js","types":"./dist/index.d.ts"}},"dependencies":{"@typescript-eslint/utils":"^8.0.0","@eco-linter/core":"1.1.4"},"devDependencies":{"typescript":"^5.4.5"},"peerDependencies":{"eslint":">=8.0.0"},"scripts":{"build":"tsc -p tsconfig.json","dev":"tsc -p tsconfig.json --watch","typecheck":"tsc -p tsconfig.json --noEmit","clean":"rm -rf dist"},"_id":"@eco-linter/eslint-plugin@1.1.4","bugs":{"url":"https://github.com/Zunaib/eco-linter/issues"},"homepage":"https://github.com/Zunaib/eco-linter#readme","_integrity":"sha512-TnVVJEUd+vjpO8cQ30IMnB7kjOprTRKTAhRm6szzeGNu266nsRFKptAFmlBPjfVsa3Zgz4HtiXc3LXC74Yo+Fw==","_resolved":"/private/var/folders/fx/6_j04p_n1x7gnglswxk7cskc0000gp/T/742116eacb4d37732de83f62563c1fcf/eco-linter-eslint-plugin-1.1.4.tgz","_from":"file:eco-linter-eslint-plugin-1.1.4.tgz","_nodeVersion":"22.20.0","_npmVersion":"10.9.3","dist":{"integrity":"sha512-TnVVJEUd+vjpO8cQ30IMnB7kjOprTRKTAhRm6szzeGNu266nsRFKptAFmlBPjfVsa3Zgz4HtiXc3LXC74Yo+Fw==","shasum":"016520faefcc403068fef422054ceea98ced9d20","tarball":"https://registry.npmjs.org/@eco-linter/eslint-plugin/-/eslint-plugin-1.1.4.tgz","fileCount":6,"unpackedSize":9959,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIAjX/XNdFlFTe3i0O+kKGDkw2ZiTK0FWkz1bbTWKUNjEAiEAvAnc83igpQdqpSLxNdm0NLDwsilb+JcnhO/z3jZWMfA="}]},"_npmUser":{"name":"zunaib.imtiaz","email":"zunaib60@gmail.com"},"directories":{},"maintainers":[{"name":"zunaib.imtiaz","email":"zunaib60@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/eslint-plugin_1.1.4_1778513550293_0.415123354065031"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-10T21:43:06.145Z","modified":"2026-05-11T15:32:30.612Z","1.0.0":"2026-05-10T21:43:06.364Z","1.0.1":"2026-05-10T21:47:28.405Z","1.1.0":"2026-05-10T22:16:26.000Z","1.1.1":"2026-05-10T22:18:04.544Z","1.1.2":"2026-05-10T23:10:53.333Z","1.1.3":"2026-05-11T15:30:25.771Z","1.1.4":"2026-05-11T15:32:30.496Z"},"bugs":{"url":"https://github.com/Zunaib/eco-linter/issues"},"license":"MIT","homepage":"https://github.com/Zunaib/eco-linter#readme","keywords":["eco-linter","eslint-plugin","green-code","carbon","energy-efficiency","sustainability"],"repository":{"type":"git","url":"git+https://github.com/Zunaib/eco-linter.git"},"description":"ESLint plugin for eco-linter — inline IDE feedback for energy efficiency","maintainers":[{"name":"zunaib.imtiaz","email":"zunaib60@gmail.com"}],"readme":"# @eco-linter/eslint-plugin\n\nESLint plugin for [@eco-linter/cli](https://www.npmjs.com/package/@eco-linter/cli) — inline IDE warnings for energy-inefficient code patterns in TypeScript and JavaScript.\n\n## Installation\n\n```bash\nnpm install -D @eco-linter/eslint-plugin\n```\n\n## Setup\n\n```ts\n// eslint.config.ts\nimport ecoLinter from '@eco-linter/eslint-plugin';\n\nexport default [\n  {\n    plugins: { eco: ecoLinter },\n    rules: {\n      'eco/no-heavy-moment':              'error',\n      'eco/no-lodash-full-import':        'error',\n      'eco/no-nested-array-iterations':   'warn',\n      'eco/no-repeated-dom-queries':      'warn',\n      'eco/no-polling-setinterval':       'warn',\n      'eco/no-barrel-reexports':          'warn',\n      'eco/no-side-effect-imports':       'warn',\n      'eco/no-exponential-recursion':     'error',\n      'eco/prefer-map-over-linear-find':  'warn',\n      'eco/prefer-named-exports':         'info',\n      'eco/prefer-for-of-over-foreach':   'info',\n      'eco/prefer-native-over-polyfill':  'warn',\n      'eco/prefer-date-fns-esm':          'info',\n      'eco/no-barrel-reexports':          'warn',\n    },\n  },\n];\n```\n\n## Rules\n\n### Loop Efficiency\n\n| Rule | Default | Description |\n|------|---------|-------------|\n| `eco/no-nested-array-iterations` | error | Nested `.forEach`/`.map`/`.filter` calls — O(n²) or worse |\n| `eco/no-repeated-dom-queries` | warn | DOM query inside a loop body |\n| `eco/no-polling-setinterval` | warn | `setInterval` with interval < 500 ms |\n| `eco/prefer-for-of-over-foreach` | info | `for…of` saves a callback allocation over `.forEach` |\n\n### Dependency Health\n\n| Rule | Default | Description |\n|------|---------|-------------|\n| `eco/no-heavy-moment` | error | `import moment` — use date-fns or native `Intl` instead |\n| `eco/no-lodash-full-import` | error | `import _ from 'lodash'` — use named imports or lodash-es |\n| `eco/prefer-native-over-polyfill` | warn | Polyfills for APIs natively supported in ES2022+ |\n| `eco/prefer-date-fns-esm` | info | `date-fns` CommonJS import — use ESM for tree-shaking |\n\n### Tree-Shakability\n\n| Rule | Default | Description |\n|------|---------|-------------|\n| `eco/no-side-effect-imports` | warn | `import 'module'` with no bindings |\n| `eco/no-barrel-reexports` | warn | `export * from '…'` in index files defeats tree-shaking |\n| `eco/prefer-named-exports` | info | Default exports in library code prevent dead-code elimination |\n\n### Algorithmic Complexity\n\n| Rule | Default | Description |\n|------|---------|-------------|\n| `eco/no-exponential-recursion` | error | Recursive function without memoization |\n| `eco/prefer-map-over-linear-find` | warn | `.find()` inside a loop — use a Map for O(1) lookup |\n\n## License\n\nMIT\n","readmeFilename":"README.md"}