{"_id":"@anarkisti/eslint-config","_rev":"4-a5d3e54602154840bcff4b6b81a7a12e","name":"@anarkisti/eslint-config","dist-tags":{"rc":"1.0.0-rc.2","latest":"1.1.0"},"versions":{"1.0.0-rc.1":{"name":"@anarkisti/eslint-config","version":"1.0.0-rc.1","license":"MIT","_id":"@anarkisti/eslint-config@1.0.0-rc.1","maintainers":[{"name":"anarkisti","email":"anarkisti@protonmail.com"}],"homepage":"https://github.com/eetu/eslint-config#readme","bugs":{"url":"https://github.com/eetu/eslint-config/issues"},"dist":{"shasum":"02dc5b115f3f4d9a6452fd7a2b6dec832a2e7e8d","tarball":"https://registry.npmjs.org/@anarkisti/eslint-config/-/eslint-config-1.0.0-rc.1.tgz","fileCount":11,"integrity":"sha512-MCE1ADzQqpEMYxGKysxP7a4EfRZOjS67tw66pbzGglI5UtpkIyboueUgG35gced1QktpThmrtTX+6VU2ThPDOw==","signatures":[{"sig":"MEUCIGT3Ss4MbLpmAZHf/f4UvQBw3V6QDSKX9/ILvK3qKBvzAiEAxLvsI49mLYyQ63Tb1uIfRo1XmhN156M0Ls663rhTF60=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9598},"main":"index.js","type":"module","types":"./index.d.ts","exports":{".":{"types":"./index.d.ts","default":"./index.js"},"./node":{"types":"./node.d.ts","default":"./node.js"},"./react":{"types":"./react.d.ts","default":"./react.js"},"./svelte":{"types":"./svelte.d.ts","default":"./svelte.js"}},"gitHead":"46d58131792de7d3549508f553b7b201615dcc24","scripts":{"lint":"eslint -c node.js node.js && eslint -c node.js react.js svelte.js","test":"vitest run","test:watch":"vitest","prepublishOnly":"yarn test && yarn lint && npm pack --dry-run"},"_npmUser":{"name":"anarkisti","email":"anarkisti@protonmail.com"},"repository":{"url":"git+https://github.com/eetu/eslint-config.git","type":"git"},"_npmVersion":"11.6.2","description":"Unified ESLint configuration for Node, React and Svelte projects","directories":{},"_nodeVersion":"24.12.0","dependencies":{"globals":"^17.6.0","@eslint/js":"^10.0.1","typescript-eslint":"^8.60.1","eslint-plugin-svelte":"^3.12.4","eslint-config-prettier":"^10.1.8","@eslint-react/eslint-plugin":"^5.8.11","eslint-plugin-react-refresh":"^0.5.2","eslint-plugin-unused-imports":"^4.4.1","eslint-plugin-simple-import-sort":"^13.0.0"},"_hasShrinkwrap":false,"packageManager":"yarn@4.9.1","devDependencies":{"react":"^19.2.7","eslint":"^10.4.1","svelte":"^5.56.1","vitest":"^4.1.8","typescript":"^6.0.3","@types/node":"^25.9.1","expect-type":"^1.3.0","@types/react":"^19.2.16"},"peerDependencies":{"eslint":">= 9","svelte":">= 5"},"peerDependenciesMeta":{"svelte":{"optional":true},"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-config_1.0.0-rc.1_1781105364558_0.2137086619088937","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-rc.2":{"name":"@anarkisti/eslint-config","version":"1.0.0-rc.2","license":"MIT","_id":"@anarkisti/eslint-config@1.0.0-rc.2","maintainers":[{"name":"anarkisti","email":"anarkisti@protonmail.com"}],"homepage":"https://github.com/eetu/eslint-config#readme","bugs":{"url":"https://github.com/eetu/eslint-config/issues"},"dist":{"shasum":"f071b0dad0637478f3e8ac7b74df61096b626134","tarball":"https://registry.npmjs.org/@anarkisti/eslint-config/-/eslint-config-1.0.0-rc.2.tgz","fileCount":11,"integrity":"sha512-hf+IkN+c4Eh8r/2HrmNOQOjh/R6Y1vZaMbeZz8le3UivTHDrSZoigxDYwZFAWbCrWopS7FNlglCU6skCh6CHQQ==","signatures":[{"sig":"MEUCIQC1Z3c8jyBPqrkUIO8Aqg5gkO04amBnoNY2ws3QrkbilAIgQLmxSeIFV0tewYu7q0BB92FYhpRcL42cjZQJzVfTHno=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@anarkisti%2feslint-config@1.0.0-rc.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":9598},"main":"index.js","type":"module","types":"./index.d.ts","exports":{".":{"types":"./index.d.ts","default":"./index.js"},"./node":{"types":"./node.d.ts","default":"./node.js"},"./react":{"types":"./react.d.ts","default":"./react.js"},"./svelte":{"types":"./svelte.d.ts","default":"./svelte.js"}},"gitHead":"0d0badb3bb2e50ea4bb453553f88130228da114b","scripts":{"lint":"eslint -c node.js node.js && eslint -c node.js react.js svelte.js","test":"vitest run","test:watch":"vitest","prepublishOnly":"yarn test && yarn lint && npm pack --dry-run"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4d253959-0ce3-4967-a559-b5ab5cb63721"}},"repository":{"url":"git+https://github.com/eetu/eslint-config.git","type":"git"},"_npmVersion":"11.13.0","description":"Unified ESLint configuration for Node, React and Svelte projects","directories":{},"_nodeVersion":"24.16.0","dependencies":{"globals":"^17.6.0","@eslint/js":"^10.0.1","typescript-eslint":"^8.60.1","eslint-plugin-svelte":"^3.12.4","eslint-config-prettier":"^10.1.8","@eslint-react/eslint-plugin":"^5.8.11","eslint-plugin-react-refresh":"^0.5.2","eslint-plugin-unused-imports":"^4.4.1","eslint-plugin-simple-import-sort":"^13.0.0"},"_hasShrinkwrap":false,"packageManager":"yarn@4.9.1","readmeFilename":"README.md","devDependencies":{"react":"^19.2.7","eslint":"^10.4.1","svelte":"^5.56.1","vitest":"^4.1.8","typescript":"^6.0.3","@types/node":"^25.9.1","expect-type":"^1.3.0","@types/react":"^19.2.16"},"peerDependencies":{"eslint":">= 9","svelte":">= 5"},"peerDependenciesMeta":{"svelte":{"optional":true},"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-config_1.0.0-rc.2_1781106197429_0.21037021263365796","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@anarkisti/eslint-config","version":"1.0.0","license":"MIT","_id":"@anarkisti/eslint-config@1.0.0","maintainers":[{"name":"anarkisti","email":"anarkisti@protonmail.com"}],"homepage":"https://github.com/eetu/eslint-config#readme","bugs":{"url":"https://github.com/eetu/eslint-config/issues"},"dist":{"shasum":"030affdd20377676f3fc6256235ff98d93946c83","tarball":"https://registry.npmjs.org/@anarkisti/eslint-config/-/eslint-config-1.0.0.tgz","fileCount":11,"integrity":"sha512-TmrylyYfQFAhyrQheMAKxYh5noDG0vZnGEYLZlmM6iaMp4axq+2CJ8SlrStCCjACktX/48iOEd4LDPCkTE33dg==","signatures":[{"sig":"MEYCIQCjEFyYu79DuyFEmpDXa2XN0Ao6SamK4wrdKMJ/tFfZdwIhAKOiHJqgwPWy+hCaJ5L+YQy/V2DlSC636Ou4aYlxOAUh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@anarkisti%2feslint-config@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":9593},"main":"index.js","type":"module","types":"./index.d.ts","exports":{".":{"types":"./index.d.ts","default":"./index.js"},"./node":{"types":"./node.d.ts","default":"./node.js"},"./react":{"types":"./react.d.ts","default":"./react.js"},"./svelte":{"types":"./svelte.d.ts","default":"./svelte.js"}},"gitHead":"e9c5f9aae6b18e7e5898028b7077da041c167594","scripts":{"lint":"eslint -c node.js node.js && eslint -c node.js react.js svelte.js","test":"vitest run","test:watch":"vitest","prepublishOnly":"yarn test && yarn lint && npm pack --dry-run"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4d253959-0ce3-4967-a559-b5ab5cb63721"}},"repository":{"url":"git+https://github.com/eetu/eslint-config.git","type":"git"},"_npmVersion":"11.13.0","description":"Unified ESLint configuration for Node, React and Svelte projects","directories":{},"_nodeVersion":"24.16.0","dependencies":{"globals":"^17.6.0","@eslint/js":"^10.0.1","typescript-eslint":"^8.60.1","eslint-plugin-svelte":"^3.12.4","eslint-config-prettier":"^10.1.8","@eslint-react/eslint-plugin":"^5.8.11","eslint-plugin-react-refresh":"^0.5.2","eslint-plugin-unused-imports":"^4.4.1","eslint-plugin-simple-import-sort":"^13.0.0"},"_hasShrinkwrap":false,"packageManager":"yarn@4.9.1","devDependencies":{"react":"^19.2.7","eslint":"^10.4.1","svelte":"^5.56.1","vitest":"^4.1.8","typescript":"^6.0.3","@types/node":"^25.9.1","expect-type":"^1.3.0","@types/react":"^19.2.16"},"peerDependencies":{"eslint":">= 9","svelte":">= 5"},"peerDependenciesMeta":{"svelte":{"optional":true},"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-config_1.0.0_1781106422952_0.7769525248472642","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@anarkisti/eslint-config","version":"1.1.0","description":"Unified ESLint configuration for Node, React, Svelte and plain web projects","license":"MIT","repository":{"type":"git","url":"git+https://github.com/eetu/eslint-config.git"},"type":"module","main":"index.js","exports":{".":{"types":"./index.d.ts","default":"./index.js"},"./node":{"types":"./node.d.ts","default":"./node.js"},"./react":{"types":"./react.d.ts","default":"./react.js"},"./svelte":{"types":"./svelte.d.ts","default":"./svelte.js"},"./web":{"types":"./web.d.ts","default":"./web.js"}},"scripts":{"test":"vitest run","test:watch":"vitest","lint":"eslint -c node.js node.js && eslint -c node.js react.js svelte.js web.js","prepublishOnly":"yarn test && yarn lint && npm pack --dry-run"},"dependencies":{"@eslint-react/eslint-plugin":"^5.8.11","@eslint/js":"^10.0.1","eslint-config-prettier":"^10.1.8","eslint-plugin-react-refresh":"^0.5.2","eslint-plugin-simple-import-sort":"^13.0.0","eslint-plugin-svelte":"^3.12.4","eslint-plugin-unused-imports":"^4.4.1","globals":"^17.6.0","typescript-eslint":"^8.60.1"},"devDependencies":{"@types/node":"^25.9.1","@types/react":"^19.2.16","eslint":"^10.4.1","expect-type":"^1.3.0","react":"^19.2.7","svelte":"^5.56.1","typescript":"^6.0.3","vitest":"^4.1.8"},"peerDependencies":{"eslint":">= 9","svelte":">= 5"},"peerDependenciesMeta":{"svelte":{"optional":true},"typescript":{"optional":true}},"packageManager":"yarn@4.9.1","gitHead":"19700f1cab1037eb3f49c034b537549fafa643ab","types":"./index.d.ts","_id":"@anarkisti/eslint-config@1.1.0","bugs":{"url":"https://github.com/eetu/eslint-config/issues"},"homepage":"https://github.com/eetu/eslint-config#readme","_nodeVersion":"24.16.0","_npmVersion":"11.13.0","dist":{"integrity":"sha512-icGzBW3kOR1vQm47iE/rk5gFzTWpeKSKUqsVRgPqma3Qr9JwBDNsYFp6uYhDPxKmZlW6cChnF6WHdZU9XdZXjg==","shasum":"dc4fe82825bb4fcb6931999c5993f732bfb1b73b","tarball":"https://registry.npmjs.org/@anarkisti/eslint-config/-/eslint-config-1.1.0.tgz","fileCount":13,"unpackedSize":10962,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@anarkisti%2feslint-config@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIEvso3Xdky8fVz0GKLqLT0C1Sfawz4LQ2K8gANK/49ZRAiEA6fEBbihw7EeW8hhymulD0yTJgcN93cSziS7R0UcwuFo="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4d253959-0ce3-4967-a559-b5ab5cb63721"}},"directories":{},"maintainers":[{"name":"anarkisti","email":"anarkisti@protonmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/eslint-config_1.1.0_1781875179901_0.9371679835882019"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-10T15:29:24.388Z","modified":"2026-06-19T13:19:40.283Z","1.0.0-rc.1":"2026-06-10T15:29:24.713Z","1.0.0-rc.2":"2026-06-10T15:43:17.590Z","1.0.0":"2026-06-10T15:47:03.119Z","1.1.0":"2026-06-19T13:19:40.038Z"},"bugs":{"url":"https://github.com/eetu/eslint-config/issues"},"license":"MIT","homepage":"https://github.com/eetu/eslint-config#readme","repository":{"type":"git","url":"git+https://github.com/eetu/eslint-config.git"},"description":"Unified ESLint configuration for Node, React, Svelte and plain web projects","maintainers":[{"name":"anarkisti","email":"anarkisti@protonmail.com"}],"readme":"# @anarkisti/eslint-config\n\nUnified ESLint configuration for Node, React, Svelte and plain web projects.\n\n## Features\n\n- **Node configuration**: Base TypeScript ESLint setup with import sorting and unused imports detection\n- **React configuration**: Extends Node config with React, React Hooks, and React Refresh support\n- **Svelte configuration**: Extends Node config with Svelte + SvelteKit support (TypeScript-first)\n- **Web configuration**: Extends Node config with browser globals — for plain vanilla JS/TS (canvas, no framework)\n- Modern ESLint flat config format\n- Prettier integration included\n\n## Install\n\n```bash\nyarn add -D @anarkisti/eslint-config eslint typescript typescript-eslint\n```\n\n## Usage\n\n### For Node projects\n\nCreate `eslint.config.js`:\n\n```javascript\nimport config from \"@anarkisti/eslint-config\";\n// or\nimport config from \"@anarkisti/eslint-config/node\";\n\nexport default config;\n```\n\n### For React projects\n\nCreate `eslint.config.js`:\n\n```javascript\nimport reactConfig from \"@anarkisti/eslint-config/react\";\n\nexport default reactConfig;\n```\n\n### For Svelte / SvelteKit projects\n\nUnlike `node`/`react` (plain arrays), the Svelte config is a **factory** — pass\nyour imported `svelte.config.js` so the parser and SvelteKit-aware rules\n(e.g. `svelte/no-navigation-without-resolve`) resolve correctly. Create\n`eslint.config.js`:\n\n```javascript\nimport svelte from \"@anarkisti/eslint-config/svelte\";\n\nimport svelteConfig from \"./svelte.config.js\";\n\nexport default svelte(svelteConfig);\n```\n\nRequires `svelte` (always present in a SvelteKit app) and, for formatting,\n`prettier` + `prettier-plugin-svelte`. `typecheck` uses `svelte-check`, not\n`tsc`.\n\n### For plain web projects\n\nVanilla browser JS/TS with no framework (e.g. a `<canvas>` app). Same as `node`\nplus browser globals, so `window`/`document`/`requestAnimationFrame` don't trip\n`no-undef`. Create `eslint.config.js`:\n\n```javascript\nimport webConfig from \"@anarkisti/eslint-config/web\";\n\nexport default webConfig;\n```\n\n### Custom configuration\n\nYou can extend the configs with your own rules:\n\n```javascript\nimport nodeConfig from \"@anarkisti/eslint-config/node\";\n\nexport default [\n  ...nodeConfig,\n  {\n    rules: {\n      // Your custom rules\n    },\n  },\n];\n```\n\n## Included plugins\n\n### Node configuration\n- `@eslint/js` - ESLint recommended rules\n- `typescript-eslint` - TypeScript support\n- `eslint-plugin-simple-import-sort` - Auto-sort imports\n- `eslint-plugin-unused-imports` - Remove unused imports\n- `eslint-config-prettier` - Prettier compatibility\n\n### React configuration (includes all Node plugins plus)\n- `eslint-plugin-react` - React specific rules\n- `eslint-plugin-react-hooks` - React Hooks rules\n- `eslint-plugin-react-refresh` - React Refresh rules\n\n### Svelte configuration (includes all Node plugins plus)\n- `eslint-plugin-svelte` - Svelte + SvelteKit rules (recommended + prettier)\n- `typescript-eslint` parser wired into `.svelte` `<script lang=\"ts\">`\n\n### Web configuration (includes all Node plugins plus)\n- `globals` - browser globals (`window`, `document`, etc.) wired into `languageOptions`\n","readmeFilename":"README.md"}