{"_id":"@cs-magic/eslint-config","_rev":"6-7707eff990ae87f572916298bfca8bb9","name":"@cs-magic/eslint-config","dist-tags":{"latest":"0.6.1"},"versions":{"0.1.0":{"name":"@cs-magic/eslint-config","version":"0.1.0","_id":"@cs-magic/eslint-config@0.1.0","maintainers":[{"name":"markshawn","email":"mark@cs-magic.com"}],"dist":{"shasum":"74b6f91bfdee0761017c2162d802f5e9d5945902","tarball":"https://registry.npmjs.org/@cs-magic/eslint-config/-/eslint-config-0.1.0.tgz","fileCount":2,"integrity":"sha512-w8BFDmRNalWjLsiTlqezaQ0AHJfALTWpbrn0ApAzxVDdToqrT98hs7rTTeT3avUi3DGcfBrV71t1uJsDYBCXww==","signatures":[{"sig":"MEUCIBcyq8Xl/1GRL/VsnMBZYkPoi/f5iqSqVIMdxlj2JScAAiEA52zJxfTRvSFcwcmaNMtF5Q4vVoOdy5BelFRPhY++bOQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3207},"main":".eslintrc.js","gitHead":"f697c070927df60b2bdfce06978e362d3205f0a0","scripts":{"lint":"echo 'skip eslint'","test":"echo \"Error: no test specified\" && exit 1","prepublishOnly":""},"_npmUser":{"name":"markshawn","email":"mark@cs-magic.com"},"_npmVersion":"10.2.3","directories":{},"_nodeVersion":"18.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"8.57.0","typescript":"*","@types/eslint":"^8.56.0","eslint-plugin-n":"^17.10.2","eslint-config-next":"*","eslint-plugin-jest":"^27.2.3","eslint-plugin-react":"^7.33.2","eslint-config-airbnb":"^19.0.4","eslint-plugin-header":"^3.1.1","eslint-plugin-import":"^2.28.1","eslint-plugin-regexp":"^1.15.0","eslint-plugin-promise":"^7.1.0","eslint-config-prettier":"*","eslint-plugin-jsx-a11y":"^6.7.1","@typescript-eslint/parser":"7.18.0","eslint-plugin-react-hooks":"^4.6.0","eslint-plugin-eslint-plugin":"^5.1.1","@typescript-eslint/eslint-plugin":"^7.17.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-config_0.1.0_1731485300984_0.277381798588227","host":"s3://npm-registry-packages"}},"0.2.0":{"name":"@cs-magic/eslint-config","version":"0.2.0","keywords":["eslint","eslintconfig","config","cs-magic","typescript","react","next"],"author":{"name":"CS Magic"},"license":"MIT","_id":"@cs-magic/eslint-config@0.2.0","maintainers":[{"name":"markshawn","email":"mark@cs-magic.com"}],"dist":{"shasum":"f423c0644315492a26fdef02413423fda46414d7","tarball":"https://registry.npmjs.org/@cs-magic/eslint-config/-/eslint-config-0.2.0.tgz","fileCount":8,"integrity":"sha512-Il+s+W2z8K7wEJL3WHVmzNLW0dwc5lx/OiZ94PlkpdkpfU4SuN6DGdgMsMVBOy/kV3x0d2Gxz4kmrdZnYrLwcw==","signatures":[{"sig":"MEQCIGn1NJM+uJ4uJbZk2L3yYXaZx7H/umKYLSEz4B+guQYXAiAzmY3r3u7DuA9Yi4//Oe3wrlRkDPZF95APHzyq3ZgF3g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7287},"main":"index.js","gitHead":"0a55fa2183c40251ab1e8c378a41fcbae5709882","_npmUser":{"name":"markshawn","email":"mark@cs-magic.com"},"_npmVersion":"10.2.3","description":"Shared ESLint configurations for CS Magic projects","directories":{},"_nodeVersion":"18.19.0","dependencies":{"eslint-plugin-react":"^7.33.0","eslint-plugin-import":"^2.29.0","eslint-config-prettier":"^9.0.0","eslint-plugin-jsx-a11y":"^6.8.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^6.0.0","eslint-plugin-react-hooks":"^4.6.0","@typescript-eslint/eslint-plugin":"^6.0.0","eslint-import-resolver-typescript":"^3.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"eslint":">=8.0.0","typescript":">=4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-config_0.2.0_1731514057622_0.175560415275543","host":"s3://npm-registry-packages"}},"0.3.0":{"name":"@cs-magic/eslint-config","version":"0.3.0","keywords":["eslint","eslintconfig","config","cs-magic","typescript","react","next"],"author":{"name":"CS Magic"},"license":"MIT","_id":"@cs-magic/eslint-config@0.3.0","maintainers":[{"name":"markshawn","email":"mark@cs-magic.com"}],"dist":{"shasum":"3d03e10b754824ca9df96ba709c843840aa4ea09","tarball":"https://registry.npmjs.org/@cs-magic/eslint-config/-/eslint-config-0.3.0.tgz","fileCount":9,"integrity":"sha512-sVE1Fz/cOt6728c6pNe8NntNDZT9gSrKZvCn7HxipR1X0UHbCLOU/Yftk7mBMTJEv24iASYsju/KbmlbIKhc9Q==","signatures":[{"sig":"MEQCIEeOulHV1N1eSSZnnkIrs/v+ai2OTWFiz2+d6ozXWWERAiBwcjKTUf4y+vE+HX8qW7aNqgrDsxiu0h7YpfQnWiPUUA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":9141},"exports":{"./base":"./base.js","./next":"./next.js","./node":"./node.js","./react":"./react.js","./prettier":"./prettier.js","./typescript":"./typescript.js","./typescript-type-checked":"./typescript-type-checked.js"},"gitHead":"602a6d91405befe622814a1fef56fe84de40a953","_npmUser":{"name":"markshawn","email":"mark@cs-magic.com"},"_npmVersion":"10.2.3","description":"Shared ESLint configurations for CS Magic projects","directories":{},"_nodeVersion":"18.19.0","dependencies":{"eslint-plugin-react":"^7.33.0","eslint-plugin-import":"^2.29.0","eslint-config-prettier":"^9.0.0","eslint-plugin-jsx-a11y":"^6.8.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^6.0.0","eslint-plugin-react-hooks":"^4.6.0","@typescript-eslint/eslint-plugin":"^6.0.0","eslint-import-resolver-typescript":"^3.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"eslint":">=8.0.0","typescript":">=4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-config_0.3.0_1731524173011_0.9026933103981132","host":"s3://npm-registry-packages"}},"0.4.0":{"name":"@cs-magic/eslint-config","version":"0.4.0","keywords":["eslint","eslintconfig","config","cs-magic","typescript","react","next"],"author":{"name":"CS Magic"},"license":"MIT","_id":"@cs-magic/eslint-config@0.4.0","maintainers":[{"name":"markshawn","email":"mark@cs-magic.com"}],"dist":{"shasum":"f047fdd2a9c64414ff5deb3991d635c4a00cf2c1","tarball":"https://registry.npmjs.org/@cs-magic/eslint-config/-/eslint-config-0.4.0.tgz","fileCount":9,"integrity":"sha512-qVcET4YgOPOY8MCheCbbg1PPn0Zpgi/LJbAo5klRohBMgczjhu55j3stalUlmNl6fbXHW8+i5hKwiCRvk1O0QQ==","signatures":[{"sig":"MEYCIQC2GO2qD+m/YOlgB8jlOR0xAinjiyHnAYJW9RVDtrW9fQIhAMqyuDoZQ6iLytXwhNGIcreaaU0qFlcGlPX3oc4LD2xh","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":10195},"exports":{".":"./src/base.js","./base":"./src/base.js","./next":"./src/next.js","./node":"./src/node.js","./react":"./src/react.js","./prettier":"./src/prettier.js","./typescript":"./src/typescript.js","./typescript-type-checked":"./src/typescript-type-checked.js"},"gitHead":"6efb9eee29cb718267b79d5271d64e797b4dcdd1","_npmUser":{"name":"markshawn","email":"mark@cs-magic.com"},"_npmVersion":"10.2.3","description":"Shared ESLint configurations for CS Magic projects","directories":{},"_nodeVersion":"18.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint-plugin-react":"^7.33.0","eslint-plugin-import":"^2.29.0","eslint-config-prettier":"^9.1.0","eslint-plugin-jsx-a11y":"^6.8.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^6.0.0","eslint-plugin-react-hooks":"^4.6.0","@typescript-eslint/eslint-plugin":"^6.0.0","prettier-plugin-organize-imports":"^4.1.0","eslint-import-resolver-typescript":"^3.6.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"eslint":">=8.0.0","typescript":">=4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-config_0.4.0_1732130179780_0.4467128229069819","host":"s3://npm-registry-packages"}},"0.5.0":{"name":"@cs-magic/eslint-config","version":"0.5.0","keywords":["eslint","eslintconfig","config","cs-magic","typescript","react","next"],"author":{"name":"CS Magic"},"license":"MIT","_id":"@cs-magic/eslint-config@0.5.0","maintainers":[{"name":"markshawn","email":"mark@cs-magic.com"}],"dist":{"shasum":"6bb628ec91322cd5e94ee525b59208fff549337d","tarball":"https://registry.npmjs.org/@cs-magic/eslint-config/-/eslint-config-0.5.0.tgz","fileCount":9,"integrity":"sha512-jMTrRefm4QF0CgdrOx4dp3HU/XiS14hjkOHHYGYA6/BhnIV+TJZm4UJjdZF/7GpFfCzKg3ph6F10y6PYALmJFg==","signatures":[{"sig":"MEQCIGQjqIdoTJnepGs/2LcSa/Mfb/bBeKEugnFUPGjZQ/LdAiAaIu6jvNEa6+Fxzy8Dlc+lBoBQHAu4Xtbc8p4ezgFQ8w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":10274},"exports":{".":"./src/base.js","./base":"./src/base.js","./next":"./src/next.js","./node":"./src/node.js","./react":"./src/react.js","./prettier":"./src/prettier.js","./typescript":"./src/typescript.js","./typescript-type-checked":"./src/typescript-type-checked.js"},"gitHead":"3ad1b097b722eb6adfc8c6b90563c6b23969cb01","_npmUser":{"name":"markshawn","email":"mark@cs-magic.com"},"_npmVersion":"10.2.3","description":"Shared ESLint configurations for CS Magic projects","directories":{},"_nodeVersion":"18.19.0","dependencies":{"eslint-plugin-react":"^7.33.0","eslint-plugin-import":"^2.29.0","eslint-config-prettier":"^9.1.0","eslint-plugin-jsx-a11y":"^6.8.0","eslint-plugin-prettier":"^5.2.1","@typescript-eslint/parser":"^6.0.0","eslint-plugin-react-hooks":"^4.6.0","@typescript-eslint/eslint-plugin":"^6.0.0","prettier-plugin-organize-imports":"^4.1.0","eslint-import-resolver-typescript":"^3.6.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"eslint":">=8.0.0","typescript":">=4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-config_0.5.0_1732550707419_0.9739305570000389","host":"s3://npm-registry-packages"}},"0.6.0":{"name":"@cs-magic/eslint-config","version":"0.6.0","keywords":["eslint","eslintconfig","config","cs-magic","typescript","react","next"],"author":{"name":"CS Magic"},"license":"MIT","_id":"@cs-magic/eslint-config@0.6.0","maintainers":[{"name":"markshawn","email":"mark@cs-magic.com"}],"dist":{"shasum":"8e87034157b19e6580c6c483ac7bb3f85744940f","tarball":"https://registry.npmjs.org/@cs-magic/eslint-config/-/eslint-config-0.6.0.tgz","fileCount":9,"integrity":"sha512-OTVUpZAeaPp1IAwF69IGsXLVlCiDyWBfZBwnfqx4MCoxjnjIZ4yvjzNKZ6anvv1QCTVPmw2z+ky9e5ldWkoEwQ==","signatures":[{"sig":"MEUCIFzNtBi/lSh0mJHmOccbj3Th29FVquiXMnWkjzwpCKPxAiEAvhwH3mJxbgs/BekzPLJ7qDirtZXkSMHW4hd9q+B+6Eo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":10348},"exports":{".":"./src/base.js","./base":"./src/base.js","./next":"./src/next.js","./node":"./src/node.js","./react":"./src/react.js","./prettier":"./src/prettier.js","./typescript":"./src/typescript.js","./typescript-type-checked":"./src/typescript-type-checked.js"},"gitHead":"03cf81c374d6630164d92604ef7b244ea173d7e5","_npmUser":{"name":"markshawn","email":"mark@cs-magic.com"},"_npmVersion":"10.2.3","description":"Shared ESLint configurations for CS Magic projects","directories":{},"_nodeVersion":"18.19.0","dependencies":{"prettier":"^3.4.1","eslint-plugin-react":"^7.33.0","eslint-plugin-import":"^2.29.0","eslint-config-prettier":"^9.1.0","eslint-plugin-jsx-a11y":"^6.8.0","eslint-plugin-prettier":"^5.2.1","@cs-magic/prettier-config":"workspace:^","@typescript-eslint/parser":"^6.0.0","eslint-plugin-react-hooks":"^4.6.0","@typescript-eslint/eslint-plugin":"^6.0.0","prettier-plugin-organize-imports":"^4.1.0","eslint-import-resolver-typescript":"^3.6.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"eslint":">=8.0.0","typescript":">=4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-config_0.6.0_1733137309160_0.1964969357986759","host":"s3://npm-registry-packages"}},"0.6.1":{"name":"@cs-magic/eslint-config","version":"0.6.1","description":"Shared ESLint configurations for CS Magic projects","exports":{".":"./src/base.js","./base":"./src/base.js","./typescript":"./src/typescript.js","./typescript-type-checked":"./src/typescript-type-checked.js","./react":"./src/react.js","./next":"./src/next.js","./node":"./src/node.js","./prettier":"./src/prettier.js"},"publishConfig":{"access":"public"},"peerDependencies":{"eslint":">=8.0.0","typescript":">=4.0.0"},"dependencies":{"@cs-magic/prettier-config":"*","@trivago/prettier-plugin-sort-imports":"^4.3.0","@typescript-eslint/eslint-plugin":"^6.0.0","@typescript-eslint/parser":"^6.0.0","eslint-config-prettier":"^9.1.0","eslint-import-resolver-typescript":"^3.6.0","eslint-plugin-import":"^2.29.0","eslint-plugin-jsx-a11y":"^6.8.0","eslint-plugin-prettier":"^5.2.1","eslint-plugin-react":"^7.33.0","eslint-plugin-react-hooks":"^4.6.0","prettier":"^3.4.1","prettier-plugin-organize-imports":"^4.1.0"},"keywords":["eslint","eslintconfig","config","cs-magic","typescript","react","next"],"author":{"name":"CS Magic"},"license":"MIT","_id":"@cs-magic/eslint-config@0.6.1","gitHead":"a3691376f5c0ce9b6a5b3a4f79c4c382a76b6979","_nodeVersion":"18.19.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-UviQ2or9wftGhP9qHL1hoe+phi9dbTLIEzbsX09UQkNNf41FhGBMWkmD9YhKVyHdfbYMymcUmz+EZUPZ8S5Egg==","shasum":"139c139fb132c86a94165f01ec219105846e7d94","tarball":"https://registry.npmjs.org/@cs-magic/eslint-config/-/eslint-config-0.6.1.tgz","fileCount":9,"unpackedSize":10338,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDGy7+lBJpymbeSToAbIzKN7rFtgLC1IGTm9RO4crzK0wIgBfm7MNtf+OJhpUwyKFe4NowgXw2mRgIhvVzsB0qIoJw="}]},"_npmUser":{"name":"markshawn","email":"mark@cs-magic.com"},"directories":{},"maintainers":[{"name":"markshawn","email":"mark@cs-magic.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-config_0.6.1_1733137469193_0.29808323350653954"},"_hasShrinkwrap":false}},"time":{"created":"2024-11-13T08:08:20.878Z","modified":"2024-12-02T11:04:29.537Z","0.1.0":"2024-11-13T08:08:21.199Z","0.2.0":"2024-11-13T16:07:37.903Z","0.3.0":"2024-11-13T18:56:13.172Z","0.4.0":"2024-11-20T19:16:19.966Z","0.5.0":"2024-11-25T16:05:07.607Z","0.6.0":"2024-12-02T11:01:49.315Z","0.6.1":"2024-12-02T11:04:29.348Z"},"author":{"name":"CS Magic"},"license":"MIT","keywords":["eslint","eslintconfig","config","cs-magic","typescript","react","next"],"description":"Shared ESLint configurations for CS Magic projects","maintainers":[{"name":"markshawn","email":"mark@cs-magic.com"}],"readme":"# @cs-magic/eslint-config\n\nCS Magic 项目的共享 ESLint 配置。\n\n## 重要说明\n\n1. 使用带有类型检查的规则会显著增加 ESLint 的运行时间。如果不需要这些规则，可以使用基础的 typescript 配置。\n\n2. 确保在项目根目录有正确配置的 `tsconfig.json`。\n\n3. 如果使用 monorepo，确保正确设置了 `parserOptions.project`：\n\n```js\n// 根目录 .eslintrc.js\nmodule.exports = {\n  root: true,\n  extends: [\"@cs-magic/eslint-config/typescript-type-checked\", \"@cs-magic/eslint-config/prettier\"],\n  parserOptions: {\n    project: [\"./tsconfig.json\", \"./packages/*/tsconfig.json\"],\n  },\n  ignorePatterns: [\"**/dist/**\", \"**/node_modules/**\"],\n}\n```\n\n4. 如果遇到性能问题，可以：\n   - 使用 `.eslintignore` 排除不需要检查的文件\n   - 使用基础的 typescript 配置而不是 typescript-type-checked\n   - 在 CI 中使用类型检查，本地开发时使用基础配置\n\n## 安装\n\n```bash\nnpm install --save-dev @cs-magic/eslint-config\n```\n\n## 使用\n\n## 使用\n\n创建 `.eslintrc.js` 文件：\n\n### JavaScript 项目\n\n```js\nmodule.exports = {\n  extends: [\"@cs-magic/eslint-config/base\", \"@cs-magic/eslint-config/prettier\"],\n}\n```\n\n### TypeScript 项目（基础配置）\n\n```js\n// .eslintrc.js\nmodule.exports = {\n  extends: [\"@cs-magic/eslint-config/typescript\", \"@cs-magic/eslint-config/prettier\"],\n}\n```\n\n### TypeScript 项目（包含类型检查）\n\n```js\n// .eslintrc.js\nmodule.exports = {\n  extends: [\"@cs-magic/eslint-config/typescript-type-checked\", \"@cs-magic/eslint-config/prettier\"],\n  parserOptions: {\n    project: \"./tsconfig.json\",\n  },\n}\n```\n\n### React 项目\n\n```js\nmodule.exports = {\n  extends: [\"@cs-magic/eslint-config/react\", \"@cs-magic/eslint-config/prettier\"],\n}\n```\n\n### Next.js 项目\n\n```js\nmodule.exports = {\n  extends: [\"@cs-magic/eslint-config/next\", \"@cs-magic/eslint-config/prettier\"],\n  parserOptions: {\n    project: \"./tsconfig.json\", // 如果需要类型检查\n  },\n}\n```\n\n## 推荐的 .eslintignore\n\n```text\nnode_modules\ndist\nbuild\ncoverage\n.next\npublic\n```\n\n## 特性\n\n- 基于最新的 ESLint 推荐规则\n- TypeScript 支持\n- React 和 React Hooks 规则\n- Next.js 特定规则\n- Node.js 环境优化\n- Prettier 集成\n- 导入顺序规范化\n- JSX 可访问性检查\n\n## 自定义规则\n\n你可以在项目的 `.eslintrc.js` 中覆盖任何规则：\n\n```js\nmodule.exports = {\n  extends: [\"@cs-magic/eslint-config/react\"],\n  rules: {\n    // 你的自定义规则\n  },\n}\n```\n","readmeFilename":"README.md"}