{"_id":"@dylannormandin/eslint-config","_rev":"2-dafacdb3a48247d12ed690b22646bfd9","name":"@dylannormandin/eslint-config","dist-tags":{"latest":"0.0.1"},"versions":{"0.0.0":{"name":"@dylannormandin/eslint-config","version":"0.0.0","keywords":["eslint","eslintconfig","config","bubbly"],"author":"","license":"ISC","_id":"@dylannormandin/eslint-config@0.0.0","maintainers":[{"name":"dylannormandin","email":"dtrnormandin@gmail.com"}],"homepage":"https://github.com/DylanNormandin/custom-packages#readme","bugs":{"url":"https://github.com/DylanNormandin/custom-packages/issues"},"dist":{"shasum":"f1d6e7944ca42909994e2c0e09fe676548fd963c","tarball":"https://registry.npmjs.org/@dylannormandin/eslint-config/-/eslint-config-0.0.0.tgz","fileCount":3,"integrity":"sha512-CuPPL9v3r0aUOyW94Gu9kTqcJXjLvxC2+wrwRFGOC8iXgOGtREtxi5JoXW7VsdY3gJ3Els/zUEp6CX+8o+TVIA==","signatures":[{"sig":"MEQCICmFASZvGp2bEro7FVEog/ZA4pjoGojquGXOmkU3nYqXAiB8YKHsvixbE1TzLLhYTgBTzqdbJP/0YYTaEhXgB5dqPQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":17775},"main":"src/index.js","type":"module","exports":{".":"./src/index.js"},"private":false,"_npmUser":{"name":"dylannormandin","email":"dtrnormandin@gmail.com"},"repository":{"url":"git+https://github.com/DylanNormandin/custom-packages.git","type":"git"},"_npmVersion":"10.8.2","description":"Shared ESLint configuration for Bubbly projects","directories":{},"_nodeVersion":"20.19.2","dependencies":{"globals":"^16.3.0","@eslint/js":"^9.31.0","typescript-eslint":"^8.36.0","eslint-plugin-node":"^11.1.0","eslint-plugin-react":"^7.37.5","eslint-plugin-depend":"^1.2.0","eslint-plugin-unicorn":"^55.0.0","eslint-plugin-dirnames":"^1.0.3","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-unused-imports":"^4.1.4","eslint-plugin-react-you-might-not-need-an-effect":"^0.4.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint-plugin-import":"^2.32.0","eslint-import-resolver-typescript":"^4.4.4"},"peerDependencies":{"eslint":"^9.9.1"},"_npmOperationalInternal":{"tmp":"tmp/eslint-config_0.0.0_1758671484559_0.6631890161269329","host":"s3://npm-registry-packages-npm-production"}},"0.0.1":{"name":"@dylannormandin/eslint-config","version":"0.0.1","private":false,"description":"Shared ESLint configuration for Bubbly projects","main":"src/index.js","exports":{".":"./src/index.js"},"type":"module","publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/DylanNormandin/custom-packages.git"},"keywords":["eslint","eslintconfig","config","bubbly"],"author":"","license":"ISC","dependencies":{"@eslint/js":"^9.31.0","eslint-plugin-depend":"^1.2.0","eslint-plugin-dirnames":"^1.0.3","eslint-plugin-node":"^11.1.0","eslint-plugin-unicorn":"^55.0.0","eslint-plugin-react":"^7.37.5","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-you-might-not-need-an-effect":"^0.4.1","eslint-plugin-unused-imports":"^4.1.4","globals":"^16.3.0","typescript-eslint":"^8.36.0"},"peerDependencies":{"eslint":"^9.9.1"},"devDependencies":{"eslint-import-resolver-typescript":"^4.4.4","eslint-plugin-import":"^2.32.0"},"_id":"@dylannormandin/eslint-config@0.0.1","gitHead":"851cc4ed7beb3dcd7de7b23128a951856a620b4a","bugs":{"url":"https://github.com/DylanNormandin/custom-packages/issues"},"homepage":"https://github.com/DylanNormandin/custom-packages#readme","_nodeVersion":"20.19.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-nSqrDRX3jpCEI0HPgxKKnBrx4CJwjyZ+QOZRzn1mTHvTghVfQaSRUetNGSJ51KeAuCnDtjos6LpLSAIOfMnPZg==","shasum":"cfc7135b33ff14520e475682dc31a06e4b652841","tarball":"https://registry.npmjs.org/@dylannormandin/eslint-config/-/eslint-config-0.0.1.tgz","fileCount":4,"unpackedSize":19575,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIAf1zDlGge/Q6Iji9o5gtXw4A9ySmIocFjnXlgyw+sk9AiAdZLRpHFt/Kut7b4EjAQD36BPrBi45avcSZufVd9EWPg=="}]},"_npmUser":{"name":"dylannormandin","email":"dtrnormandin@gmail.com"},"directories":{},"maintainers":[{"name":"dylannormandin","email":"dtrnormandin@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/eslint-config_0.0.1_1758981245015_0.8522212854241273"},"_hasShrinkwrap":false}},"time":{"created":"2025-09-23T23:51:24.426Z","modified":"2025-09-27T13:54:05.352Z","0.0.0":"2025-09-23T23:51:24.768Z","0.0.1":"2025-09-27T13:54:05.174Z"},"bugs":{"url":"https://github.com/DylanNormandin/custom-packages/issues"},"license":"ISC","homepage":"https://github.com/DylanNormandin/custom-packages#readme","keywords":["eslint","eslintconfig","config","bubbly"],"repository":{"type":"git","url":"git+https://github.com/DylanNormandin/custom-packages.git"},"description":"Shared ESLint configuration for Bubbly projects","maintainers":[{"name":"dylannormandin","email":"dtrnormandin@gmail.com"}],"readme":"# @dylannormandin/eslint-config\n\nFlat ESLint config for projects with client/server or frontend/backend code, TypeScript, React, Tailwind, and absolute imports.\n\n## Install\n```bash\nnpm i -D eslint @dylannormandin/eslint-config eslint-plugin-import eslint-import-resolver-typescript eslint-plugin-tailwindcss typescript\n```\n\n## Usage (flat config)\nCreate `eslint.config.js` at your project root:\n```js\nimport base from '@dylannormandin/eslint-config';\nexport default base;\n```\n\nRun ESLint:\n```bash\nnpx eslint . --max-warnings=0\n# or\nnpx eslint . --fix\n```\n\n## Client/Server layout\nIf your folders are `client/` and `server/` (instead of `frontend/` and `backend/`), remap the patterns:\n```js\nimport base from '@dylannormandin/eslint-config';\n\nconst remap = (entry) => {\n  const map = (p) => typeof p === 'string'\n    ? p.replace(/^frontend\\//, 'client/').replace(/^backend\\//, 'server/')\n    : p;\n  return {\n    ...entry,\n    files: entry.files?.map(map),\n    ignores: entry.ignores?.map(map),\n  };\n};\n\nexport default base.map(remap);\n```\n\n## TypeScript paths / absolute imports\nEnsure your project `tsconfig.json` has the right resolver settings (example):\n```json\n{\n  \"compilerOptions\": {\n    \"module\": \"ESNext\",\n    \"moduleResolution\": \"bundler\",\n    \"baseUrl\": \".\",\n    \"paths\": { \"@/*\": [\"client/src/*\"] },\n    \"jsx\": \"react-jsx\"\n  },\n  \"include\": [\"client/**/*\", \"server/**/*\"]\n}\n```\n\n## Tailwind\nThe config enables Tailwind rules and expects `tailwind.config.js` at your project root. If your config file is elsewhere, tell the resolver via an override.\n\n## Notes\n- This package exports a flat config (eslint.config.js). `.eslintrc.*` is legacy and not supported here.\n- Install the config as a devDependency in each project where you run ESLint, or at monorepo root if you lint from the root.\n","readmeFilename":"README.md"}