{"_id":"@batoanng/eslint-config","_rev":"8-82c148c264e0aa6102392963bb2b58c6","name":"@batoanng/eslint-config","dist-tags":{"latest":"3.4.0"},"versions":{"1.0.0":{"name":"@batoanng/eslint-config","version":"1.0.0","license":"MIT","_id":"@batoanng/eslint-config@1.0.0","maintainers":[{"name":"batoanng","email":"michael.batoan.nguyen@gmail.com"}],"dist":{"shasum":"8758c889cdb5d7a59d80f0c9ab8b271d3e2cc72b","tarball":"https://registry.npmjs.org/@batoanng/eslint-config/-/eslint-config-1.0.0.tgz","fileCount":3,"integrity":"sha512-s80zGw99aptWBDMuC53E6Vh3oMgAvIYnumaYnqi9Rr27ASG75ElpHVRammmfQP3KfIjLl/JvVsxmWRv5GQUsfA==","signatures":[{"sig":"MEUCID1ZFz4jo1lfqBw8IZ8/NPCnnWGr5CzepwX/+dXzfbtMAiEA45qfXqUr7CY8ImApelLdx8/bqjAOMrO7FeU1KkRLlQ0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2820},"main":"index.js","_from":"file:batoanng-eslint-config-1.0.0.tgz","_npmUser":{"name":"batoanng","actor":{"name":"batoanng","type":"user","email":"michael.batoan.nguyen@gmail.com"},"email":"michael.batoan.nguyen@gmail.com"},"_resolved":"/private/var/folders/nt/pm0npgws5cb599xlj4yk9jwm0000gn/T/2d571d2a2d8463f5ebfc6ed001aff06c/batoanng-eslint-config-1.0.0.tgz","_integrity":"sha512-s80zGw99aptWBDMuC53E6Vh3oMgAvIYnumaYnqi9Rr27ASG75ElpHVRammmfQP3KfIjLl/JvVsxmWRv5GQUsfA==","_npmVersion":"10.8.3","directories":{},"_nodeVersion":"20.12.2","dependencies":{"eslint-config-next":"^13.4.19","eslint-plugin-jest":"^27.2.3","eslint-config-turbo":"^1.10.12","eslint-plugin-react":"^7.33.2","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.28.1","eslint-config-prettier":"^9.0.0","eslint-plugin-jsx-a11y":"^6.7.1","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^6.4.0","eslint-plugin-react-hooks":"^4.6.0","eslint-plugin-tailwindcss":"^3.13.0","eslint-import-resolver-alias":"^1.1.2","eslint-plugin-testing-library":"^6.0.0","eslint-config-airbnb-typescript":"^17.1.0","@typescript-eslint/eslint-plugin":"^6.4.0","eslint-plugin-simple-import-sort":"^10.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.47.0","prettier":"^3.0.2","typescript":"^5.1.6","tailwindcss":"^3.3.3","prettier-plugin-tailwindcss":"^0.5.3"},"_npmOperationalInternal":{"tmp":"tmp/eslint-config_1.0.0_1751086487978_0.00019639464904486204","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@batoanng/eslint-config","version":"1.0.1","license":"MIT","_id":"@batoanng/eslint-config@1.0.1","maintainers":[{"name":"batoanng","email":"michael.batoan.nguyen@gmail.com"}],"dist":{"shasum":"9d847623bf3209ecd4a67ca2effb676575c0a5a8","tarball":"https://registry.npmjs.org/@batoanng/eslint-config/-/eslint-config-1.0.1.tgz","fileCount":5,"integrity":"sha512-DP6hcB2vltv0rDDDIn3T9DPBnQmop8KHpqzD5WSyjQ0V0UZWEW448e9k6nDv4HTJxEExZArtwWcXYfwtpI0Jxg==","signatures":[{"sig":"MEUCIQDyUCd8EOUDkJmnRWqm6Kqa12rschr2h0ZvTa9A1KwVcgIgR2qBzqh+dzomeuiFcu/f6uow0cEg+uV3NSdjqB+Fzig=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4817},"main":"index.js","_from":"file:batoanng-eslint-config-1.0.1.tgz","_npmUser":{"name":"batoanng","actor":{"name":"batoanng","type":"user","email":"michael.batoan.nguyen@gmail.com"},"email":"michael.batoan.nguyen@gmail.com"},"_resolved":"/private/var/folders/nt/pm0npgws5cb599xlj4yk9jwm0000gn/T/d98daa193e2b839eab0eaa16b5af2580/batoanng-eslint-config-1.0.1.tgz","_integrity":"sha512-DP6hcB2vltv0rDDDIn3T9DPBnQmop8KHpqzD5WSyjQ0V0UZWEW448e9k6nDv4HTJxEExZArtwWcXYfwtpI0Jxg==","_npmVersion":"10.8.3","description":"[![npm version](https://img.shields.io/npm/v/@batoanng/eslint-config)](https://www.npmjs.com/package/@batoanng/eslint-config) [![install size](https://packagephobia.com/badge?p=@batoanng/eslint-config)](https://packagephobia.com/result?p=@batoanng/eslint-","directories":{},"_nodeVersion":"20.12.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.47.0","prettier":"^3.0.2","typescript":"^5.1.6","tailwindcss":"^3.3.3","eslint-config-next":"^13.4.19","eslint-plugin-jest":"^27.2.3","eslint-config-turbo":"^1.10.12","eslint-plugin-react":"^7.33.2","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.28.1","eslint-config-prettier":"^9.0.0","eslint-plugin-jsx-a11y":"^6.7.1","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^6.4.0","eslint-plugin-react-hooks":"^4.6.0","eslint-plugin-tailwindcss":"^3.13.0","prettier-plugin-tailwindcss":"^0.5.3","eslint-import-resolver-alias":"^1.1.2","eslint-plugin-testing-library":"^6.0.0","eslint-config-airbnb-typescript":"^17.1.0","@typescript-eslint/eslint-plugin":"^6.4.0","eslint-plugin-simple-import-sort":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-config_1.0.1_1751982569429_0.009633950253955081","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@batoanng/eslint-config","version":"2.0.0","license":"MIT","_id":"@batoanng/eslint-config@2.0.0","maintainers":[{"name":"batoanng","email":"michael.batoan.nguyen@gmail.com"}],"dist":{"shasum":"ad193179498525348c9a3a99af738595e92098b9","tarball":"https://registry.npmjs.org/@batoanng/eslint-config/-/eslint-config-2.0.0.tgz","fileCount":5,"integrity":"sha512-e7glHfpeMzGbwI7Fb1R3p2YrAgTF/usE3Ysu2OJQWjT+C29wYEk5fQGLze30LcKiGPcovGFyREwYmR4LqkUBwg==","signatures":[{"sig":"MEQCICbq5pozPkU04tdmGCtnRXvJA7aSlAvhLyheXZRjwiwAAiAa3we2xIWj7lWaDcac0AvF4jhh0e766zC1SxlhrW5FJQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4874},"main":"index.js","_from":"file:batoanng-eslint-config-2.0.0.tgz","_npmUser":{"name":"batoanng","email":"michael.batoan.nguyen@gmail.com"},"_resolved":"/private/var/folders/nt/pm0npgws5cb599xlj4yk9jwm0000gn/T/174c6ff78ee294a9893a677901061acf/batoanng-eslint-config-2.0.0.tgz","_integrity":"sha512-e7glHfpeMzGbwI7Fb1R3p2YrAgTF/usE3Ysu2OJQWjT+C29wYEk5fQGLze30LcKiGPcovGFyREwYmR4LqkUBwg==","_npmVersion":"10.8.3","description":"[![npm version](https://img.shields.io/npm/v/@batoanng/eslint-config)](https://www.npmjs.com/package/@batoanng/eslint-config) [![install size](https://packagephobia.com/badge?p=@batoanng/eslint-config)](https://packagephobia.com/result?p=@batoanng/eslint-","directories":{},"_nodeVersion":"20.12.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.47.0","prettier":"^3.0.2","typescript":"^5.1.6","tailwindcss":"^3.3.3","eslint-config-next":"^13.4.19","eslint-plugin-jest":"^27.2.3","eslint-config-turbo":"^1.10.12","eslint-plugin-react":"^7.33.2","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.28.1","eslint-config-prettier":"^9.0.0","eslint-plugin-jsx-a11y":"^6.7.1","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^8.44.1","eslint-plugin-react-hooks":"^4.6.0","eslint-plugin-tailwindcss":"^3.13.0","prettier-plugin-tailwindcss":"^0.5.3","eslint-import-resolver-alias":"^1.1.2","eslint-plugin-testing-library":"^6.0.0","eslint-config-airbnb-typescript":"^17.1.0","@typescript-eslint/eslint-plugin":"^8.44.1","eslint-plugin-simple-import-sort":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-config_2.0.0_1759029425989_0.470141008211967","host":"s3://npm-registry-packages-npm-production"}},"3.1.0":{"name":"@batoanng/eslint-config","version":"3.1.0","license":"MIT","_id":"@batoanng/eslint-config@3.1.0","maintainers":[{"name":"batoanng","email":"michael.batoan.nguyen@gmail.com"}],"dist":{"shasum":"fab9d36ef1f5e46df606f70cc8a36ac98bc3141d","tarball":"https://registry.npmjs.org/@batoanng/eslint-config/-/eslint-config-3.1.0.tgz","fileCount":13,"integrity":"sha512-iaxzvB8nvZlLqRnCw5EOWlfNUrzuM6NTmrMRH7uvWQ5KQZDBj9yJqZregQtElfm7ABS9aphzKI8D14N6yp+Kww==","signatures":[{"sig":"MEUCIDI/tTk+UQk03noEYIUaaHgkMwu7R5ZGbuFtzom9f5xgAiEAkOmkA9hcGnl6GtJCYYVj4JgLIcIwsIfiL3weB4m977U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13065},"type":"module","exports":{".":"./index.mjs","./base":"./base.mjs","./next":"./next.mjs","./test":"./test.mjs","./react":"./react.mjs","./typed":"./typed.mjs","./tailwind":"./tailwind.mjs"},"gitHead":"9cc4168601836dc582ff6bb55d43e4ceca6db672","scripts":{"lint:smoke":"eslint --config smoke/eslint.config.mjs smoke"},"_npmUser":{"name":"batoanng","email":"michael.batoan.nguyen@gmail.com"},"_npmVersion":"11.6.0","description":"Flat ESLint configs for TypeScript, React, Next.js, Tailwind, and tests.","directories":{},"_nodeVersion":"24.9.0","dependencies":{"globals":"^17.4.0","@eslint/js":"^9.39.4","tailwindcss":"^3.4.19","typescript-eslint":"^8.58.0","eslint-plugin-jest":"^29.15.1","eslint-plugin-react":"^7.37.5","eslint-plugin-import":"^2.32.0","eslint-config-prettier":"^10.1.8","eslint-plugin-jsx-a11y":"^6.10.2","@next/eslint-plugin-next":"^16.2.2","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-tailwindcss":"^3.18.2","eslint-plugin-testing-library":"^7.16.2","eslint-import-resolver-typescript":"^4.4.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"eslint":"^9.0.0","typescript":">=5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-config_3.1.0_1775217242379_0.32961978541122083","host":"s3://npm-registry-packages-npm-production"}},"3.2.0":{"name":"@batoanng/eslint-config","version":"3.2.0","license":"MIT","_id":"@batoanng/eslint-config@3.2.0","maintainers":[{"name":"batoanng","email":"michael.batoan.nguyen@gmail.com"}],"dist":{"shasum":"653fff1dcb5005b37d2d566748682e9273b832b4","tarball":"https://registry.npmjs.org/@batoanng/eslint-config/-/eslint-config-3.2.0.tgz","fileCount":13,"integrity":"sha512-dWDbXgFDX6M7BWTg7/PP2rcyNCnM1cpVaiqFNu1Xql1zkb4SdoncssHmEqMKWjqnZfUdCS6+5u/7UryGC+4jMA==","signatures":[{"sig":"MEUCIHbmO8u8B2xNyMp86AZpzCEecUHXHRrTHpitMyxfHsO2AiEAvT8Sws5LmP1A6Yx7y78M3mj3mgw8AfY+zPRSpo8dH/c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13065},"type":"module","exports":{".":"./index.mjs","./base":"./base.mjs","./next":"./next.mjs","./test":"./test.mjs","./react":"./react.mjs","./typed":"./typed.mjs","./tailwind":"./tailwind.mjs"},"gitHead":"a055d2e7570529644e541311f02f90581c49a25f","scripts":{"lint:smoke":"eslint --config smoke/eslint.config.mjs smoke"},"_npmUser":{"name":"batoanng","email":"michael.batoan.nguyen@gmail.com"},"_npmVersion":"11.6.0","description":"Flat ESLint configs for TypeScript, React, Next.js, Tailwind, and tests.","directories":{},"_nodeVersion":"24.9.0","dependencies":{"globals":"^17.4.0","@eslint/js":"^9.39.4","tailwindcss":"^3.4.19","typescript-eslint":"^8.58.0","eslint-plugin-jest":"^29.15.1","eslint-plugin-react":"^7.37.5","eslint-plugin-import":"^2.32.0","eslint-config-prettier":"^10.1.8","eslint-plugin-jsx-a11y":"^6.10.2","@next/eslint-plugin-next":"^16.2.2","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-tailwindcss":"^3.18.2","eslint-plugin-testing-library":"^7.16.2","eslint-import-resolver-typescript":"^4.4.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"eslint":"^9.0.0","typescript":">=5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-config_3.2.0_1775438433978_0.7406858667758034","host":"s3://npm-registry-packages-npm-production"}},"3.3.1":{"name":"@batoanng/eslint-config","version":"3.3.1","license":"MIT","_id":"@batoanng/eslint-config@3.3.1","maintainers":[{"name":"batoanng","email":"michael.batoan.nguyen@gmail.com"}],"dist":{"shasum":"7995d0eff653750fadbcb5882753946fc962a76f","tarball":"https://registry.npmjs.org/@batoanng/eslint-config/-/eslint-config-3.3.1.tgz","fileCount":13,"integrity":"sha512-VkW02p5jjulFP7o/mqAuCrRGM4Wx6nObGc8N7l4e+NVJmnoZ/RKzTbYjymn1kif0q07ik6/zBbxCE82E4QT+nA==","signatures":[{"sig":"MEYCIQCCvOg6VyyfQV7lYMSOyBND3s8HiVDlhCEdcLz23qtxcQIhAOW5DLqN61ljZjOU4d4lT2+Sk59iRC0f5fg1THntF8yv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15060},"type":"module","exports":{".":"./index.mjs","./base":"./base.mjs","./next":"./next.mjs","./test":"./test.mjs","./react":"./react.mjs","./typed":"./typed.mjs","./tailwind":"./tailwind.mjs"},"gitHead":"20840dc0b1b07013f2457683335a5bf1f44c188d","scripts":{"lint:smoke":"eslint --config smoke/eslint.config.mjs smoke"},"_npmUser":{"name":"batoanng","email":"michael.batoan.nguyen@gmail.com"},"_npmVersion":"11.6.0","description":"Flat ESLint configs for TypeScript, React, Next.js, Tailwind, and tests.","directories":{},"_nodeVersion":"24.9.0","dependencies":{"globals":"^17.4.0","@eslint/js":"^9.39.4","typescript-eslint":"^8.58.0","eslint-plugin-import":"^2.32.0","eslint-config-prettier":"^10.1.8","eslint-import-resolver-typescript":"^4.4.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.0.0","typescript":">=5.0.0","tailwindcss":"^3.4.19","eslint-plugin-jest":"^29.15.1","eslint-plugin-react":"^7.37.5","eslint-plugin-jsx-a11y":"^6.10.2","@next/eslint-plugin-next":"^16.2.2","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-tailwindcss":"^3.18.2","eslint-plugin-testing-library":"^7.16.2"},"peerDependencies":{"eslint":"^9.0.0","typescript":">=5.0.0","tailwindcss":"^3.4.19","eslint-plugin-jest":"^29.15.1","eslint-plugin-react":"^7.37.5","eslint-plugin-jsx-a11y":"^6.10.2","@next/eslint-plugin-next":"^16.2.2","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-tailwindcss":"^3.18.2","eslint-plugin-testing-library":"^7.16.2"},"peerDependenciesMeta":{"tailwindcss":{"optional":true},"eslint-plugin-jest":{"optional":true},"eslint-plugin-react":{"optional":true},"eslint-plugin-jsx-a11y":{"optional":true},"@next/eslint-plugin-next":{"optional":true},"eslint-plugin-react-hooks":{"optional":true},"eslint-plugin-tailwindcss":{"optional":true},"eslint-plugin-testing-library":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-config_3.3.1_1775547330696_0.11100974399704877","host":"s3://npm-registry-packages-npm-production"}},"3.3.2":{"name":"@batoanng/eslint-config","version":"3.3.2","license":"MIT","_id":"@batoanng/eslint-config@3.3.2","maintainers":[{"name":"batoanng","email":"michael.batoan.nguyen@gmail.com"}],"dist":{"shasum":"c9455f1b58a1cd2dbbad2d129b5c8b00161313a8","tarball":"https://registry.npmjs.org/@batoanng/eslint-config/-/eslint-config-3.3.2.tgz","fileCount":13,"integrity":"sha512-KFnm8E7pNgF+5SufnhFZgri58xPBppTKhOUND8WUK/k691poMBymWFHkqmUhhlhSdmvPsE2Gu4XvW8TfKffSVA==","signatures":[{"sig":"MEQCIA7C+cW37eMpnQh3rFUO2nsgK6lIWJbhQWJ59nyWC9oIAiA0A459E9Kkg9FdpiHtvAFVDqcjZEWHHwOVAVsRvRIIJw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16500},"type":"module","exports":{".":"./index.mjs","./base":"./base.mjs","./next":"./next.mjs","./test":"./test.mjs","./react":"./react.mjs","./typed":"./typed.mjs","./tailwind":"./tailwind.mjs"},"gitHead":"69ce055efa15d1fdcfc60c9af70a3cf6e62e90a0","scripts":{"lint:smoke":"eslint --config smoke/eslint.config.mjs smoke"},"_npmUser":{"name":"batoanng","email":"michael.batoan.nguyen@gmail.com"},"_npmVersion":"11.6.0","description":"Flat ESLint configs for TypeScript, React, Next.js, Tailwind, and tests.","directories":{},"_nodeVersion":"24.9.0","dependencies":{"globals":"^17.4.0","@eslint/js":"^9.39.4","typescript-eslint":"^8.58.0","eslint-plugin-import":"^2.32.0","eslint-config-prettier":"^10.1.8","eslint-import-resolver-typescript":"^4.4.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.0.0","typescript":">=5.0.0","tailwindcss":"^4.1.13","eslint-plugin-jest":"^29.15.1","eslint-plugin-react":"^7.37.5","eslint-plugin-jsx-a11y":"^6.10.2","@next/eslint-plugin-next":"^16.2.2","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-tailwindcss":"^4.0.0-beta.0","eslint-plugin-testing-library":"^7.16.2"},"peerDependencies":{"eslint":"^9.0.0","typescript":">=5.0.0","tailwindcss":"^3.4.19 || ^4.0.0","eslint-plugin-jest":"^29.15.1","eslint-plugin-react":"^7.37.5","eslint-plugin-jsx-a11y":"^6.10.2","@next/eslint-plugin-next":"^16.2.2","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-tailwindcss":"^3.18.2 || ^4.0.0-beta.0","eslint-plugin-testing-library":"^7.16.2"},"peerDependenciesMeta":{"tailwindcss":{"optional":true},"eslint-plugin-jest":{"optional":true},"eslint-plugin-react":{"optional":true},"eslint-plugin-jsx-a11y":{"optional":true},"@next/eslint-plugin-next":{"optional":true},"eslint-plugin-react-hooks":{"optional":true},"eslint-plugin-tailwindcss":{"optional":true},"eslint-plugin-testing-library":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-config_3.3.2_1775895197723_0.3436903911262452","host":"s3://npm-registry-packages-npm-production"}},"3.4.0":{"name":"@batoanng/eslint-config","version":"3.4.0","type":"module","exports":{".":"./index.mjs","./base":"./base.mjs","./react":"./react.mjs","./typed":"./typed.mjs","./next":"./next.mjs","./tailwind":"./tailwind.mjs","./test":"./test.mjs"},"license":"MIT","publishConfig":{"access":"public"},"scripts":{"lint:smoke":"eslint --config smoke/eslint.config.mjs smoke"},"peerDependencies":{"@next/eslint-plugin-next":"^16.2.2","eslint":"^10.0.0","eslint-plugin-jest":"^29.15.1","eslint-plugin-jsx-a11y":"^6.10.2","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-testing-library":"^7.16.2","tailwindcss":"^3.4.19 || ^4.0.0","typescript":">=5.0.0"},"peerDependenciesMeta":{"@next/eslint-plugin-next":{"optional":true},"eslint-plugin-jest":{"optional":true},"eslint-plugin-jsx-a11y":{"optional":true},"eslint-plugin-react-hooks":{"optional":true},"eslint-plugin-testing-library":{"optional":true},"tailwindcss":{"optional":true}},"dependencies":{"@eslint/js":"^10.0.1","eslint-config-prettier":"^10.1.8","eslint-import-resolver-typescript":"^4.4.4","eslint-plugin-import":"^2.32.0","globals":"^17.5.0","typescript-eslint":"^8.59.1"},"devDependencies":{"@next/eslint-plugin-next":"^16.2.4","eslint":"^10.2.1","eslint-plugin-jest":"^29.15.2","eslint-plugin-jsx-a11y":"^6.10.2","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-testing-library":"^7.16.2","tailwindcss":"^4.2.4","typescript":"^6.0.3"},"_id":"@batoanng/eslint-config@3.4.0","gitHead":"77f9470d74e77f51651588b25842e655993167b4","description":"Flat ESLint configs for TypeScript, React, Next.js, Tailwind, and tests.","_nodeVersion":"24.9.0","_npmVersion":"11.6.0","dist":{"integrity":"sha512-jDBPo5cOVp7i4fPtkvaTtUL4rq71PYeEhNzZy8hVi+oA1MhegaV5Z9Aoim3R8/9Sv4+gn9W+qDANK9OlAB6lKQ==","shasum":"f7b424b1275d763ef180af0623e76f0c0f0c131a","tarball":"https://registry.npmjs.org/@batoanng/eslint-config/-/eslint-config-3.4.0.tgz","fileCount":13,"unpackedSize":15545,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHoj+X/VhhkCEo/ss3Kl600s15KpdKEP3a3fIexJb9wLAiB3xB7bOqK3cHRjbmGxeapu9vEWlBFXioNa5Ezz4PftWA=="}]},"_npmUser":{"name":"batoanng","email":"michael.batoan.nguyen@gmail.com"},"directories":{},"maintainers":[{"name":"batoanng","email":"michael.batoan.nguyen@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/eslint-config_3.4.0_1777628558182_0.5935732967246683"},"_hasShrinkwrap":false}},"time":{"created":"2025-06-28T04:54:47.922Z","modified":"2026-05-01T09:42:38.430Z","1.0.0":"2025-06-28T04:54:48.168Z","1.0.1":"2025-07-08T13:49:29.617Z","2.0.0":"2025-09-28T03:17:06.174Z","3.1.0":"2026-04-03T11:54:02.527Z","3.2.0":"2026-04-06T01:20:34.108Z","3.3.1":"2026-04-07T07:35:30.841Z","3.3.2":"2026-04-11T08:13:17.869Z","3.4.0":"2026-05-01T09:42:38.322Z"},"license":"MIT","description":"Flat ESLint configs for TypeScript, React, Next.js, Tailwind, and tests.","maintainers":[{"name":"batoanng","email":"michael.batoan.nguyen@gmail.com"}],"readme":"# @batoanng/eslint-config\n\nFlat ESLint configs for TypeScript, React, Next.js, Tailwind, and tests.\n\n## Installation\n\nBaseline install:\n\n```bash\nnpm install -D eslint typescript @batoanng/eslint-config\n```\n\nInstall additional peers only for the entrypoints you use:\n\n- `@batoanng/eslint-config` or `@batoanng/eslint-config/react`:\n  `eslint-plugin-react`, `eslint-plugin-react-hooks`, `eslint-plugin-jsx-a11y`\n- `@batoanng/eslint-config/next`:\n  `@next/eslint-plugin-next`\n- `@batoanng/eslint-config/tailwind`:\n  `eslint-plugin-tailwindcss`, `tailwindcss`\n  For Tailwind CSS v4, install `eslint-plugin-tailwindcss@^4.0.0-beta.0`\n- `@batoanng/eslint-config/test`:\n  `eslint-plugin-jest`, `eslint-plugin-testing-library`, `jest`\n\n## Exports\n\n- `@batoanng/eslint-config`: base + React defaults\n  Requires: `eslint-plugin-react`, `eslint-plugin-react-hooks`, `eslint-plugin-jsx-a11y`\n- `@batoanng/eslint-config/base`: JavaScript and TypeScript baseline\n  Requires no extra peers beyond `eslint` and `typescript`\n- `@batoanng/eslint-config/react`: React, hooks, and JSX a11y rules\n  Requires: `eslint-plugin-react`, `eslint-plugin-react-hooks`, `eslint-plugin-jsx-a11y`\n- `@batoanng/eslint-config/typed`: opt-in type-aware TypeScript rules\n  Requires no extra peers beyond `eslint` and `typescript`\n- `@batoanng/eslint-config/next`: Next.js rules\n  Requires: `@next/eslint-plugin-next`\n- `@batoanng/eslint-config/tailwind`: Tailwind CSS rules\n  Requires: `eslint-plugin-tailwindcss`, `tailwindcss`\n  Supports: Tailwind CSS v3 with `eslint-plugin-tailwindcss@^3.18.2`, or Tailwind CSS v4 with `eslint-plugin-tailwindcss@^4.0.0-beta.0`\n- `@batoanng/eslint-config/test`: Jest, Vitest globals, and Testing Library rules\n  Requires: `eslint-plugin-jest`, `eslint-plugin-testing-library`, `jest`\n\n## Usage\n\n### TypeScript library\n\n```js\n// eslint.config.mjs\nimport base from '@batoanng/eslint-config/base';\n\nexport default [...base];\n```\n\n### React package with type-aware linting\n\n```js\n// eslint.config.mjs\nimport config from '@batoanng/eslint-config';\nimport test from '@batoanng/eslint-config/test';\nimport typed from '@batoanng/eslint-config/typed';\n\nexport default [...config, ...typed, ...test];\n```\n\n### Next.js app with Tailwind\n\n```js\n// eslint.config.mjs\nimport config from '@batoanng/eslint-config';\nimport next from '@batoanng/eslint-config/next';\nimport tailwind from '@batoanng/eslint-config/tailwind';\nimport typed from '@batoanng/eslint-config/typed';\n\nexport default [...config, ...typed, ...next, ...tailwind];\n```\n\n## Notes\n\n- `typed` uses `parserOptions.projectService`, so it reads the consumer project's own TypeScript configuration.\n- The shared config already enables `eslint-config-prettier`, so formatting-only rule conflicts stay off.\n- Feature-specific ESLint plugins are peer dependencies so consumers only install the entrypoint-specific packages they actually use.\n- Tailwind CSS v4 currently relies on the upstream `eslint-plugin-tailwindcss` beta channel, because stable upstream releases still pin Tailwind CSS to v3.\n- The Tailwind entrypoint automatically uses a local `tailwind.config.*` file when one exists, and falls back to Tailwind's default config for CSS-first Tailwind CSS v4 projects.\n- The package ships flat config only. Legacy `.eslintrc*` usage is intentionally unsupported.\n","readmeFilename":"README.md"}