{"_id":"@assalabs/eslint-config","name":"@assalabs/eslint-config","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.1":{"name":"@assalabs/eslint-config","version":"0.1.1","description":"Composable ESLint flat configs for TypeScript, Node.js, React, Expo, Jest, and Turborepo projects","license":"MIT","type":"module","sideEffects":false,"exports":{"./base":"./src/base.mjs","./expo":"./src/expo.mjs","./jest":"./src/jest.mjs","./node":"./src/node.mjs","./react":"./src/react.mjs","./react-refresh":"./src/react-refresh.mjs","./turbo":"./src/turbo.mjs"},"dependencies":{"@eslint/js":"^9.39.2","eslint-config-prettier":"^10.1.8","eslint-plugin-jest":"^28.11.0","eslint-plugin-react":"^7.37.5","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.4.24","eslint-plugin-turbo":"^2.5.3","globals":"^16.5.0","typescript-eslint":"^8.54.0"},"devDependencies":{"eslint":"^9.39.2","eslint-config-expo":"~55.0.0","react":"19.2.3"},"peerDependencies":{"eslint":"^9.0.0","eslint-config-expo":"*"},"peerDependenciesMeta":{"eslint-config-expo":{"optional":true}},"engines":{"node":">=22"},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/assalabs/assalabs.git","directory":"packages/eslint-config"},"scripts":{"lint":"eslint .","test":"node --test test/*.test.mjs"},"_id":"@assalabs/eslint-config@0.1.1","bugs":{"url":"https://github.com/assalabs/assalabs/issues"},"homepage":"https://github.com/assalabs/assalabs#readme","_integrity":"sha512-fpGbIhNzp1niBGg+4DGB8ee73DMCvg6k9/fXMp7veJJGMLwgH1qOax764NH9HRMMl9kx8A0K3xwakYO4kDntDw==","_resolved":"/tmp/8167fec3e050ebb80ffe7e5485a86857/assalabs-eslint-config-0.1.1.tgz","_from":"file:assalabs-eslint-config-0.1.1.tgz","_nodeVersion":"24.18.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-fpGbIhNzp1niBGg+4DGB8ee73DMCvg6k9/fXMp7veJJGMLwgH1qOax764NH9HRMMl9kx8A0K3xwakYO4kDntDw==","shasum":"3babee6753572c113d3a00abb1fa512bf4d3c3a2","tarball":"https://registry.npmjs.org/@assalabs/eslint-config/-/eslint-config-0.1.1.tgz","fileCount":10,"unpackedSize":8830,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCNYd49WcX1S8ToqLS7EvZo4y0Uf+nUan1moNYu8z7TngIhAKoI0Ugg1TohpmAK+OOlt/MC8HoI+mGC/3vzYIf9ZnY4"}]},"_npmUser":{"name":"matanassa","email":"matan@matto.com"},"directories":{},"maintainers":[{"name":"matanassa","email":"matan@matto.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/eslint-config_0.1.1_1786184254283_0.06887297134581805"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-08T10:17:34.142Z","0.1.1":"2026-08-08T10:17:34.429Z","modified":"2026-08-08T10:17:34.635Z"},"maintainers":[{"name":"matanassa","email":"matan@matto.com"}],"description":"Composable ESLint flat configs for TypeScript, Node.js, React, Expo, Jest, and Turborepo projects","homepage":"https://github.com/assalabs/assalabs#readme","repository":{"type":"git","url":"git+https://github.com/assalabs/assalabs.git","directory":"packages/eslint-config"},"bugs":{"url":"https://github.com/assalabs/assalabs/issues"},"license":"MIT","readme":"# @assalabs/eslint-config\n\nComposable [ESLint flat configs](https://eslint.org/docs/latest/use/configure/configuration-files)\nfor TypeScript, Node.js, React, Expo, Jest, and Turborepo projects.\n\nThe presets own shared language and framework rules. Each consumer keeps its\ngenerated-file ignores and any intentional compatibility exceptions in its own\n`eslint.config.mjs`.\n\n## Install\n\n```bash\npnpm add --save-dev @assalabs/eslint-config eslint\n```\n\nUse the equivalent `npm install --save-dev` command in npm projects.\n\nThe Expo preset follows Expo's versioned ESLint config. Expo consumers must\nalso install the `eslint-config-expo` version that matches their Expo SDK.\n\n```bash\nnpx expo install eslint-config-expo\n```\n\n## Presets\n\n| Import                                  | Kind     | Purpose                                               |\n| --------------------------------------- | -------- | ----------------------------------------------------- |\n| `@assalabs/eslint-config/base`          | Complete | JavaScript, TypeScript, and Prettier compatibility    |\n| `@assalabs/eslint-config/node`          | Complete | Base rules plus Node.js globals and CommonJS support  |\n| `@assalabs/eslint-config/react`         | Complete | Base rules plus browser, React, and React Hooks rules |\n| `@assalabs/eslint-config/expo`          | Complete | Expo's flat config plus Prettier compatibility        |\n| `@assalabs/eslint-config/react-refresh` | Add-on   | Fast Refresh export safety for Vite/Rsbuild apps      |\n| `@assalabs/eslint-config/jest`          | Add-on   | Jest globals and focused-test protection              |\n| `@assalabs/eslint-config/turbo`         | Add-on   | Turborepo environment-variable checks                 |\n\nComplete presets include the base language rules and can start a config. Add-on\npresets are spread after a complete preset.\n\n## TypeScript or Node.js\n\n```js\n// eslint.config.mjs\nimport { nodeConfig } from \"@assalabs/eslint-config/node\";\n\nexport default [{ ignores: [\"dist/**\"] }, ...nodeConfig];\n```\n\nUse `baseConfig` from `@assalabs/eslint-config/base` for runtime-neutral shared\npackages.\n\n## React web app\n\n```js\n// eslint.config.mjs\nimport { reactConfig } from \"@assalabs/eslint-config/react\";\nimport { reactRefreshConfig } from \"@assalabs/eslint-config/react-refresh\";\nimport { turboConfig } from \"@assalabs/eslint-config/turbo\";\n\nexport default [\n  { ignores: [\"dist/**\", \"playwright-report/**\"] },\n  ...reactConfig,\n  ...reactRefreshConfig,\n  ...turboConfig,\n];\n```\n\nReact version detection is automatic. SSR frameworks can omit\n`reactRefreshConfig`, or turn its export rule off only for route modules that\nalso export loaders and actions.\n\n## Expo app\n\n```js\n// eslint.config.mjs\nimport { expoConfig } from \"@assalabs/eslint-config/expo\";\nimport { jestConfig } from \"@assalabs/eslint-config/jest\";\nimport { turboConfig } from \"@assalabs/eslint-config/turbo\";\n\nexport default [\n  { ignores: [\"dist/**\"] },\n  ...expoConfig,\n  ...jestConfig,\n  ...turboConfig,\n];\n```\n\n## Local overrides\n\nPlace app-specific exceptions last so they are visible and cannot weaken other\nconsumers. For example:\n\n```js\nexport default [\n  ...reactConfig,\n  {\n    files: [\"app/routes/**/*.{ts,tsx}\"],\n    rules: {\n      \"react-refresh/only-export-components\": \"off\",\n    },\n  },\n];\n```\n","readmeFilename":"README.md","_rev":"1-40191e6995af8888186ed2f95d03dd98"}