{"_id":"@alexandrebenkendorf/frontend-tooling","_rev":"13-56d0782947d3d5eea17bff5fcdfa7813","name":"@alexandrebenkendorf/frontend-tooling","dist-tags":{"next":"2.0.0-rc.0","latest":"2.1.0"},"versions":{"1.0.0":{"name":"@alexandrebenkendorf/frontend-tooling","version":"1.0.0","keywords":["eslint","prettier","typescript","frontend","tooling"],"license":"MIT","_id":"@alexandrebenkendorf/frontend-tooling@1.0.0","maintainers":[{"name":"alexandrebenkendorf","email":"alexandre.alemao@gmail.com"}],"homepage":"https://github.com/alexandrebenkendorf/frontend-tooling#readme","bugs":{"url":"https://github.com/alexandrebenkendorf/frontend-tooling/issues"},"bin":{"frontend-tooling-init":"scripts/init.mjs"},"dist":{"shasum":"86920d9d315f25070287c1e30773093e38f51c71","tarball":"https://registry.npmjs.org/@alexandrebenkendorf/frontend-tooling/-/frontend-tooling-1.0.0.tgz","fileCount":22,"integrity":"sha512-kzqJUSU6EZey923pllxDO0gMWpOWD22dzUjr70/BSeAOvrwgt8gJ/2lMe8gtjtcpNGIoAiIacVoBtL/CiGKh9Q==","signatures":[{"sig":"MEUCIQCF2MU97Qi0OnFFgoT+09tgg2wSzWOGV3ipWC4diGNZNAIgQf8Kmy2EAGA1vL4tf4MXeewTFV+3N5EXU4+gCMxTtLs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":46410},"type":"module","engines":{"node":">=20.11.0"},"exports":{"./eslint":{"types":"./eslint/createEslintConfig.d.mts","default":"./eslint/createEslintConfig.mjs"},"./prettier":"./prettier/index.mjs","./lint-staged":"./lint-staged/index.mjs","./tsconfig.json":"./tsconfig.json","./tsconfig/base.json":"./tsconfig.base.json","./tsconfig/node.json":"./tsconfig.node.json","./tsconfig/eslint.json":"./tsconfig.eslint.json"},"gitHead":"d158bcbeb7afeb7dc107707f8568757edb800343","private":false,"scripts":{"lint":"eslint .","format":"prettier . --write","prepare":"husky","lint:fix":"eslint . --fix","lint-staged":"lint-staged","format:check":"prettier . --check"},"_npmUser":{"name":"alexandrebenkendorf","email":"alexandre.alemao@gmail.com"},"repository":{"url":"git+https://github.com/alexandrebenkendorf/frontend-tooling.git","type":"git"},"_npmVersion":"10.9.4","description":"Shared frontend tooling configs","directories":{},"_nodeVersion":"22.21.1","dependencies":{"globals":"^16.0.0","@eslint/js":"^9.39.1","typescript-eslint":"8.48.1","eslint-plugin-jest":"^29.0.1","eslint-plugin-react":"^7.37.5","prettier-plugin-ejs":"^1.0.3","eslint-plugin-import":"^2.32.0","@vitest/eslint-plugin":"^1.0.0","eslint-config-prettier":"10.1.8","eslint-plugin-jsx-a11y":"^6.10.2","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-no-only-tests":"2.6.0","eslint-plugin-react-refresh":"^0.4.24","eslint-import-resolver-alias":"1.1.2","eslint-import-resolver-typescript":"4.4.4","@trivago/prettier-plugin-sort-imports":"^6.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"husky":"9.1.7","eslint":"^9.39.1","prettier":"^3.6.2","typescript":"^5.9.3","lint-staged":"^15.5.2"},"peerDependencies":{"eslint":"^9.0.0","prettier":"^3.0.0","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/frontend-tooling_1.0.0_1776421665974_0.44625542108415006","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@alexandrebenkendorf/frontend-tooling","version":"1.1.0","keywords":["eslint","prettier","typescript","frontend","tooling"],"license":"MIT","_id":"@alexandrebenkendorf/frontend-tooling@1.1.0","maintainers":[{"name":"alexandrebenkendorf","email":"alexandre.alemao@gmail.com"}],"homepage":"https://github.com/alexandrebenkendorf/frontend-tooling#readme","bugs":{"url":"https://github.com/alexandrebenkendorf/frontend-tooling/issues"},"bin":{"frontend-tooling-init":"scripts/init.mjs"},"dist":{"shasum":"dea5e861ebeb4151df01b2c50a92edc759828391","tarball":"https://registry.npmjs.org/@alexandrebenkendorf/frontend-tooling/-/frontend-tooling-1.1.0.tgz","fileCount":21,"integrity":"sha512-t0QAgJOkkvROAG+4vMKlvz/SeTFniaaCeYKOJV9keK1GbkyQcn5nHL5FYd5ltDbo6p3BR+77asdLK4a4S42c9A==","signatures":[{"sig":"MEYCIQCXLQhwbo2cvWNvKzdlTU38icZnHcKAJeb0dlRqvh6v4gIhAIY+IHj+H/9ggr8yaeyohsWHPbHVP+IxFGGKCsxOYJQ9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":46761},"type":"module","engines":{"node":">=20.11.0"},"exports":{"./eslint":{"types":"./eslint/createEslintConfig.d.mts","default":"./eslint/createEslintConfig.mjs"},"./prettier":"./prettier/index.mjs","./lint-staged":"./lint-staged/index.mjs","./tsconfig/base.json":"./tsconfig/base.json","./tsconfig/node.json":"./tsconfig/node.json","./tsconfig/eslint.json":"./tsconfig/eslint.json"},"gitHead":"88318fa7ed5150338d3f26d8669b7886ec86d033","private":false,"scripts":{"lint":"eslint .","format":"prettier . --write","prepare":"husky","lint:fix":"eslint . --fix","lint-staged":"lint-staged","format:check":"prettier . --check"},"_npmUser":{"name":"alexandrebenkendorf","email":"alexandre.alemao@gmail.com"},"repository":{"url":"git+https://github.com/alexandrebenkendorf/frontend-tooling.git","type":"git"},"_npmVersion":"10.9.4","description":"Shared frontend tooling configs","directories":{},"_nodeVersion":"22.21.1","dependencies":{"globals":"^16.0.0","@eslint/js":"^9.39.1","typescript-eslint":"8.48.1","eslint-plugin-jest":"^29.0.1","eslint-plugin-react":"^7.37.5","prettier-plugin-ejs":"^1.0.3","eslint-plugin-import":"^2.32.0","@vitest/eslint-plugin":"^1.0.0","eslint-config-prettier":"10.1.8","eslint-plugin-jsx-a11y":"^6.10.2","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-no-only-tests":"2.6.0","eslint-plugin-react-refresh":"^0.4.24","eslint-import-resolver-alias":"1.1.2","eslint-import-resolver-typescript":"4.4.4","@trivago/prettier-plugin-sort-imports":"^6.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"husky":"9.1.7","eslint":"^9.39.1","prettier":"^3.6.2","typescript":"^5.9.3","lint-staged":"^15.5.2"},"peerDependencies":{"eslint":"^9.0.0","prettier":"^3.0.0","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/frontend-tooling_1.1.0_1776437685768_0.12173469199720932","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@alexandrebenkendorf/frontend-tooling","version":"1.2.0","keywords":["eslint","prettier","typescript","frontend","tooling"],"license":"MIT","_id":"@alexandrebenkendorf/frontend-tooling@1.2.0","maintainers":[{"name":"alexandrebenkendorf","email":"alexandre.alemao@gmail.com"}],"homepage":"https://github.com/alexandrebenkendorf/frontend-tooling#readme","bugs":{"url":"https://github.com/alexandrebenkendorf/frontend-tooling/issues"},"bin":{"frontend-tooling-init":"scripts/init.mjs"},"dist":{"shasum":"ed395c658b180e900d3eaf3f55832042805308db","tarball":"https://registry.npmjs.org/@alexandrebenkendorf/frontend-tooling/-/frontend-tooling-1.2.0.tgz","fileCount":33,"integrity":"sha512-NmaY4gU7ztdRZj72nY9Ya6iIjHX8D0HeRxrn3QS9QiaS5Oqxfv+u5uvggf1QKU8PrHghhyuM3wLxPKEvo6x+3Q==","signatures":[{"sig":"MEUCIQC0BF1+EyPBGxlE+uDwDwP3Rd0pReoED3ZTsajgiJOqhQIgMkP9tTodal+2gtLo7GHELy8wOVFotpPiTZaLHsZZUDo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexandrebenkendorf%2ffrontend-tooling@1.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":64291},"type":"module","engines":{"node":">=20.11.0"},"exports":{"./eslint":{"types":"./eslint/createEslintConfig.d.mts","default":"./eslint/createEslintConfig.mjs"},"./prettier":"./prettier/index.mjs","./lint-staged":"./lint-staged/index.mjs","./tsconfig/base.json":"./tsconfig/base.json","./tsconfig/node.json":"./tsconfig/node.json","./tsconfig/eslint.json":"./tsconfig/eslint.json"},"gitHead":"eec44cf7c873450ab2f5b8653de6d8d5b820025c","private":false,"scripts":{"lint":"eslint .","format":"prettier . --write","prepare":"husky","lint:fix":"eslint . --fix","lint-staged":"lint-staged","format:check":"prettier . --check"},"_npmUser":{"name":"alexandrebenkendorf","email":"alexandre.alemao@gmail.com"},"repository":{"url":"git+https://github.com/alexandrebenkendorf/frontend-tooling.git","type":"git"},"_npmVersion":"10.8.2","description":"Shared frontend tooling configs","directories":{},"_nodeVersion":"20.20.2","dependencies":{"globals":"^16.0.0","@eslint/js":"^9.39.1","typescript-eslint":"^8.48.1","eslint-plugin-import":"^2.32.0","eslint-config-prettier":"^10.1.8","eslint-plugin-no-only-tests":"^2.6.0","eslint-import-resolver-alias":"^1.1.2","eslint-import-resolver-typescript":"^4.4.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","eslint":"^9.39.1","prettier":"^3.6.2","typescript":"^5.9.3","lint-staged":"^15.5.2","eslint-plugin-jest":"^29.0.1","eslint-plugin-react":"^7.37.5","prettier-plugin-ejs":"^1.0.3","@vitest/eslint-plugin":"^1.0.0","eslint-plugin-jsx-a11y":"^6.10.2","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.4.24","@trivago/prettier-plugin-sort-imports":"^6.0.0"},"peerDependencies":{"eslint":"^9.0.0","prettier":"^3.0.0","typescript":"^5.0.0","eslint-plugin-jest":"^29.0.1","eslint-plugin-react":"^7.37.5","prettier-plugin-ejs":"^1.0.3","@vitest/eslint-plugin":"^1.0.0","eslint-plugin-jsx-a11y":"^6.10.2","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.4.24","@trivago/prettier-plugin-sort-imports":"^6.0.0"},"peerDependenciesMeta":{"eslint-plugin-jest":{"optional":true},"eslint-plugin-react":{"optional":true},"prettier-plugin-ejs":{"optional":true},"@vitest/eslint-plugin":{"optional":true},"eslint-plugin-jsx-a11y":{"optional":true},"eslint-plugin-react-hooks":{"optional":true},"eslint-plugin-react-refresh":{"optional":true},"@trivago/prettier-plugin-sort-imports":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/frontend-tooling_1.2.0_1776469465756_0.82882568525443","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@alexandrebenkendorf/frontend-tooling","version":"1.3.0","keywords":["eslint","prettier","typescript","frontend","tooling"],"license":"MIT","_id":"@alexandrebenkendorf/frontend-tooling@1.3.0","maintainers":[{"name":"alexandrebenkendorf","email":"alexandre.alemao@gmail.com"}],"homepage":"https://github.com/alexandrebenkendorf/frontend-tooling#readme","bugs":{"url":"https://github.com/alexandrebenkendorf/frontend-tooling/issues"},"bin":{"frontend-tooling-init":"scripts/init.mjs"},"dist":{"shasum":"66f5b733d4a15f640b98dcd33a5b55a2313d2fa6","tarball":"https://registry.npmjs.org/@alexandrebenkendorf/frontend-tooling/-/frontend-tooling-1.3.0.tgz","fileCount":33,"integrity":"sha512-oCs9rfNcuspw0xAUQ0PEstia7hSwAjQrjg1qsJVJHXWpbXO7zXnYbDfqO7XTxa83rJSvprEw8XdtRMCk/YI04Q==","signatures":[{"sig":"MEYCIQDnLYzT7EJwv4lXEbcLXhBla58/JaHYbA+YtdAZMq+edQIhALG9cN5LTaBGGFNuItUgGbsS3nZGp0NaGiCwfWknYO4x","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexandrebenkendorf%2ffrontend-tooling@1.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":64777},"type":"module","engines":{"node":">=20.11.0"},"exports":{"./eslint":{"types":"./eslint/createEslintConfig.d.mts","default":"./eslint/createEslintConfig.mjs"},"./prettier":"./prettier/index.mjs","./lint-staged":"./lint-staged/index.mjs","./tsconfig/base.json":"./tsconfig/base.json","./tsconfig/node.json":"./tsconfig/node.json","./tsconfig/eslint.json":"./tsconfig/eslint.json"},"gitHead":"d70c66f4d082f2050b15c1ea7206549c5d0d6c31","private":false,"scripts":{"lint":"eslint .","format":"prettier . --write","prepare":"husky","lint:fix":"eslint . --fix","lint-staged":"lint-staged","format:check":"prettier . --check"},"_npmUser":{"name":"alexandrebenkendorf","email":"alexandre.alemao@gmail.com"},"repository":{"url":"git+https://github.com/alexandrebenkendorf/frontend-tooling.git","type":"git"},"_npmVersion":"10.8.2","description":"Shared frontend tooling configs","directories":{},"_nodeVersion":"20.20.2","dependencies":{"globals":"^17.5.0","@eslint/js":"^9.39.4","typescript-eslint":"^8.58.2","eslint-plugin-import":"^2.32.0","eslint-config-prettier":"^10.1.8","eslint-plugin-no-only-tests":"^3.3.0","eslint-import-resolver-alias":"^1.1.2","eslint-import-resolver-typescript":"^4.4.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","eslint":"^9.39.4","prettier":"^3.8.3","typescript":"^6.0.3","lint-staged":"^16.4.0","eslint-plugin-jest":"^29.15.2","eslint-plugin-react":"^7.37.5","prettier-plugin-ejs":"^1.0.3","@vitest/eslint-plugin":"^1.6.16","eslint-plugin-jsx-a11y":"^6.10.2","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-refresh":"^0.5.2","@trivago/prettier-plugin-sort-imports":"^6.0.2"},"peerDependencies":{"eslint":"^9.0.0","prettier":"^3.0.0","typescript":"^5.0.0 || ^6.0.0","eslint-plugin-jest":"^29.15.2","eslint-plugin-react":"^7.37.5","prettier-plugin-ejs":"^1.0.3","@vitest/eslint-plugin":"^1.6.16","eslint-plugin-jsx-a11y":"^6.10.2","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-refresh":"^0.5.2","@trivago/prettier-plugin-sort-imports":"^6.0.2"},"peerDependenciesMeta":{"eslint-plugin-jest":{"optional":true},"eslint-plugin-react":{"optional":true},"prettier-plugin-ejs":{"optional":true},"@vitest/eslint-plugin":{"optional":true},"eslint-plugin-jsx-a11y":{"optional":true},"eslint-plugin-react-hooks":{"optional":true},"eslint-plugin-react-refresh":{"optional":true},"@trivago/prettier-plugin-sort-imports":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/frontend-tooling_1.3.0_1776530592284_0.8834942562825363","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"@alexandrebenkendorf/frontend-tooling","version":"1.3.1","keywords":["eslint","prettier","typescript","frontend","tooling"],"license":"MIT","_id":"@alexandrebenkendorf/frontend-tooling@1.3.1","maintainers":[{"name":"alexandrebenkendorf","email":"alexandre.alemao@gmail.com"}],"homepage":"https://github.com/alexandrebenkendorf/frontend-tooling#readme","bugs":{"url":"https://github.com/alexandrebenkendorf/frontend-tooling/issues"},"bin":{"frontend-tooling-init":"scripts/init.mjs"},"dist":{"shasum":"79705612b11c2859b5208a6a7fcd09b17505b633","tarball":"https://registry.npmjs.org/@alexandrebenkendorf/frontend-tooling/-/frontend-tooling-1.3.1.tgz","fileCount":33,"integrity":"sha512-7nWHGbZcZfDl0NRjmUXUo+Tsco6nA6iHmq4jXNfaG739M/wYCZqFfdJ+3CxypdfGhoNPnssPZZuDJgcGIJ/Mig==","signatures":[{"sig":"MEUCIE1nUAKG736jd6GVybbOC7gwi/0aSBbGh6994e9smXX1AiEA0AMtITA54fS5SJUYLkNyp9e9O+F4x4cIDKnBM0+SF8o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexandrebenkendorf%2ffrontend-tooling@1.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":65389},"type":"module","engines":{"node":">=20.11.0"},"exports":{"./eslint":{"types":"./eslint/createEslintConfig.d.mts","default":"./eslint/createEslintConfig.mjs"},"./prettier":"./prettier/index.mjs","./lint-staged":"./lint-staged/index.mjs","./tsconfig/base.json":"./tsconfig/base.json","./tsconfig/node.json":"./tsconfig/node.json","./tsconfig/eslint.json":"./tsconfig/eslint.json"},"gitHead":"d87fcadfa691e32f9f4559b25b3b37cc6d0fbf01","private":false,"scripts":{"lint":"eslint .","format":"prettier . --write","prepare":"husky","lint:fix":"eslint . --fix","lint-staged":"lint-staged","format:check":"prettier . --check"},"_npmUser":{"name":"alexandrebenkendorf","email":"alexandre.alemao@gmail.com"},"repository":{"url":"git+https://github.com/alexandrebenkendorf/frontend-tooling.git","type":"git"},"_npmVersion":"10.8.2","description":"Shared frontend tooling configs","directories":{},"_nodeVersion":"20.20.2","dependencies":{"globals":"^17.5.0","@eslint/js":"^9.39.4","typescript-eslint":"^8.58.2","eslint-plugin-import":"^2.32.0","eslint-config-prettier":"^10.1.8","eslint-plugin-no-only-tests":"^3.3.0","eslint-import-resolver-alias":"^1.1.2","eslint-import-resolver-typescript":"^4.4.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","eslint":"^9.39.4","prettier":"^3.8.3","typescript":"^6.0.3","lint-staged":"^16.4.0","eslint-plugin-jest":"^29.15.2","eslint-plugin-react":"^7.37.5","prettier-plugin-ejs":"^1.0.3","@vitest/eslint-plugin":"^1.6.16","eslint-plugin-jsx-a11y":"^6.10.2","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-refresh":"^0.5.2","@trivago/prettier-plugin-sort-imports":"^6.0.2"},"peerDependencies":{"eslint":"^9.0.0","prettier":"^3.0.0","typescript":"^5.0.0 || ^6.0.0","eslint-plugin-jest":"^29.15.2","eslint-plugin-react":"^7.37.5","prettier-plugin-ejs":"^1.0.3","@vitest/eslint-plugin":"^1.6.16","eslint-plugin-jsx-a11y":"^6.10.2","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-refresh":"^0.5.2","@trivago/prettier-plugin-sort-imports":"^6.0.2"},"peerDependenciesMeta":{"eslint-plugin-jest":{"optional":true},"eslint-plugin-react":{"optional":true},"prettier-plugin-ejs":{"optional":true},"@vitest/eslint-plugin":{"optional":true},"eslint-plugin-jsx-a11y":{"optional":true},"eslint-plugin-react-hooks":{"optional":true},"eslint-plugin-react-refresh":{"optional":true},"@trivago/prettier-plugin-sort-imports":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/frontend-tooling_1.3.1_1776550499605_0.9943668509901447","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@alexandrebenkendorf/frontend-tooling","version":"1.4.0","keywords":["eslint","prettier","typescript","frontend","tooling"],"license":"MIT","_id":"@alexandrebenkendorf/frontend-tooling@1.4.0","maintainers":[{"name":"alexandrebenkendorf","email":"alexandre.alemao@gmail.com"}],"homepage":"https://github.com/alexandrebenkendorf/frontend-tooling#readme","bugs":{"url":"https://github.com/alexandrebenkendorf/frontend-tooling/issues"},"bin":{"frontend-tooling-init":"scripts/init.mjs"},"dist":{"shasum":"f5fce2b7c6232a37c1bd0b85010c41caf1037df2","tarball":"https://registry.npmjs.org/@alexandrebenkendorf/frontend-tooling/-/frontend-tooling-1.4.0.tgz","fileCount":36,"integrity":"sha512-poJHiETWVTWZG2Y6AVbeub3QZDt1pDZIkqKfMH0uflE9TgkohAyaSgJ47+X9iVtTbgnSfFJTEEFkbydn9dl7Pw==","signatures":[{"sig":"MEQCIBOQBwDQeX8Hjnlx9iK0cWMtxY8H6HBaULkhrc4wz0V/AiBBEgiPgMcFaD8ShJUtBmMoT+tIJzk7f7tny7zk+wifIA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexandrebenkendorf%2ffrontend-tooling@1.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":56404},"type":"module","engines":{"node":">=22.0.0"},"exports":{"./eslint":{"types":"./eslint/createEslintConfig.d.mts","default":"./eslint/createEslintConfig.mjs"},"./prettier":{"types":"./prettier/index.d.mts","default":"./prettier/index.mjs"},"./lint-staged":{"types":"./lint-staged/index.d.mts","default":"./lint-staged/index.mjs"},"./tsconfig/base.json":"./tsconfig/base.json","./tsconfig/node.json":"./tsconfig/node.json","./tsconfig/eslint.json":"./tsconfig/eslint.json"},"gitHead":"e816fcae04c868ea9917bca4e16628bd82402f7d","private":false,"scripts":{"lint":"eslint .","test":"vitest run","format":"prettier . --write","prepare":"husky","lint:fix":"eslint . --fix","lint-staged":"lint-staged","format:check":"prettier . --check"},"_npmUser":{"name":"alexandrebenkendorf","email":"alexandre.alemao@gmail.com"},"repository":{"url":"git+https://github.com/alexandrebenkendorf/frontend-tooling.git","type":"git"},"_npmVersion":"10.9.7","description":"Shared frontend tooling configs","directories":{},"_nodeVersion":"22.22.2","dependencies":{"globals":"^17.5.0","@eslint/js":"^9.39.4","@clack/prompts":"^0.7.0","typescript-eslint":"^8.58.2","eslint-plugin-import":"^2.32.0","eslint-config-prettier":"^10.1.8","eslint-plugin-no-only-tests":"^3.3.0","eslint-import-resolver-alias":"^1.1.2","eslint-import-resolver-typescript":"^4.4.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","eslint":"^9.39.4","vitest":"^3.0.0","prettier":"^3.8.3","typescript":"^6.0.3","lint-staged":"^16.4.0","eslint-plugin-jest":"^29.15.2","eslint-plugin-react":"^7.37.5","prettier-plugin-ejs":"^1.0.3","@vitest/eslint-plugin":"^1.6.16","eslint-plugin-jsx-a11y":"^6.10.2","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-refresh":"^0.5.2","@trivago/prettier-plugin-sort-imports":"^6.0.2"},"peerDependencies":{"eslint":"^9.0.0","prettier":"^3.0.0","typescript":"^5.0.0 || ^6.0.0","eslint-plugin-jest":"^29.15.2","eslint-plugin-react":"^7.37.5","prettier-plugin-ejs":"^1.0.3","@vitest/eslint-plugin":"^1.6.16","eslint-plugin-jsx-a11y":"^6.10.2","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-refresh":"^0.5.2","@trivago/prettier-plugin-sort-imports":"^6.0.2"},"peerDependenciesMeta":{"eslint-plugin-jest":{"optional":true},"eslint-plugin-react":{"optional":true},"prettier-plugin-ejs":{"optional":true},"@vitest/eslint-plugin":{"optional":true},"eslint-plugin-jsx-a11y":{"optional":true},"eslint-plugin-react-hooks":{"optional":true},"eslint-plugin-react-refresh":{"optional":true},"@trivago/prettier-plugin-sort-imports":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/frontend-tooling_1.4.0_1776759920655_0.3862183167627624","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"@alexandrebenkendorf/frontend-tooling","version":"1.4.1","keywords":["eslint","prettier","typescript","frontend","tooling"],"license":"MIT","_id":"@alexandrebenkendorf/frontend-tooling@1.4.1","maintainers":[{"name":"alexandrebenkendorf","email":"alexandre.alemao@gmail.com"}],"homepage":"https://github.com/alexandrebenkendorf/frontend-tooling#readme","bugs":{"url":"https://github.com/alexandrebenkendorf/frontend-tooling/issues"},"bin":{"frontend-tooling-init":"scripts/init.mjs"},"dist":{"shasum":"63972e598db59d4301542c5e62af495c2ed73be3","tarball":"https://registry.npmjs.org/@alexandrebenkendorf/frontend-tooling/-/frontend-tooling-1.4.1.tgz","fileCount":36,"integrity":"sha512-L31O9V514+GMRVUYs61X5a+9rP7eMuOdgSouiVXmHO1tSuXk/Iyk2eocq++UlSJE0X7+HJrB7e5kIjRZK2qpvg==","signatures":[{"sig":"MEYCIQDevwq3N4+7jF9VX/doRlG739/p4lqiK8EBp6vb93KpjQIhALVdNkI7ilV8ObkwnUza5xVwJx6uj2UWX9n1w1vWHcoN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexandrebenkendorf%2ffrontend-tooling@1.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":56733},"type":"module","engines":{"node":">=22.0.0"},"exports":{"./eslint":{"types":"./eslint/createEslintConfig.d.mts","default":"./eslint/createEslintConfig.mjs"},"./prettier":{"types":"./prettier/index.d.mts","default":"./prettier/index.mjs"},"./lint-staged":{"types":"./lint-staged/index.d.mts","default":"./lint-staged/index.mjs"},"./tsconfig/base.json":"./tsconfig/base.json","./tsconfig/node.json":"./tsconfig/node.json","./tsconfig/eslint.json":"./tsconfig/eslint.json"},"gitHead":"17c66eabd017cca79be9af6a98ac798f5f24bef4","private":false,"scripts":{"lint":"eslint .","test":"vitest run","format":"prettier . --write","prepare":"husky","lint:fix":"eslint . --fix","lint-staged":"lint-staged","format:check":"prettier . --check"},"_npmUser":{"name":"alexandrebenkendorf","email":"alexandre.alemao@gmail.com"},"repository":{"url":"git+https://github.com/alexandrebenkendorf/frontend-tooling.git","type":"git"},"_npmVersion":"10.9.7","description":"Shared frontend tooling configs","directories":{},"_nodeVersion":"22.22.2","dependencies":{"globals":"^17.5.0","@eslint/js":"^9.39.4","@clack/prompts":"^0.7.0","typescript-eslint":"^8.58.2","eslint-plugin-import":"^2.32.0","eslint-config-prettier":"^10.1.8","eslint-plugin-no-only-tests":"^3.3.0","eslint-import-resolver-alias":"^1.1.2","eslint-import-resolver-typescript":"^3.10.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","eslint":"^9.39.4","vitest":"^4.1.4","prettier":"^3.8.3","typescript":"^6.0.3","lint-staged":"^16.4.0","eslint-plugin-jest":"^29.15.2","eslint-plugin-react":"^7.37.5","prettier-plugin-ejs":"^1.0.3","@vitest/eslint-plugin":"^1.6.16","eslint-plugin-jsx-a11y":"^6.10.2","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-refresh":"^0.5.2","@trivago/prettier-plugin-sort-imports":"^6.0.2"},"peerDependencies":{"eslint":"^9.0.0","prettier":"^3.0.0","typescript":"^5.0.0 || ^6.0.0","eslint-plugin-jest":"^29.15.2","eslint-plugin-react":"^7.37.5","prettier-plugin-ejs":"^1.0.3","@vitest/eslint-plugin":"^1.6.16","eslint-plugin-jsx-a11y":"^6.10.2","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-refresh":"^0.5.2","@trivago/prettier-plugin-sort-imports":"^6.0.2"},"peerDependenciesMeta":{"eslint-plugin-jest":{"optional":true},"eslint-plugin-react":{"optional":true},"prettier-plugin-ejs":{"optional":true},"@vitest/eslint-plugin":{"optional":true},"eslint-plugin-jsx-a11y":{"optional":true},"eslint-plugin-react-hooks":{"optional":true},"eslint-plugin-react-refresh":{"optional":true},"@trivago/prettier-plugin-sort-imports":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/frontend-tooling_1.4.1_1776764715713_0.5075329807286275","host":"s3://npm-registry-packages-npm-production"}},"1.4.2":{"name":"@alexandrebenkendorf/frontend-tooling","version":"1.4.2","keywords":["eslint","prettier","typescript","frontend","tooling"],"license":"MIT","_id":"@alexandrebenkendorf/frontend-tooling@1.4.2","maintainers":[{"name":"alexandrebenkendorf","email":"alexandre.alemao@gmail.com"}],"homepage":"https://github.com/alexandrebenkendorf/frontend-tooling#readme","bugs":{"url":"https://github.com/alexandrebenkendorf/frontend-tooling/issues"},"bin":{"frontend-tooling-init":"scripts/init.mjs"},"dist":{"shasum":"288f663bbc9b87befc84d0414d6e1cd6c22a2918","tarball":"https://registry.npmjs.org/@alexandrebenkendorf/frontend-tooling/-/frontend-tooling-1.4.2.tgz","fileCount":36,"integrity":"sha512-HqkJD53PG/HaO5kIuIAVInhrroDDt/KH4IFN3QPao+UrOZ3yRjyrsCBsFXfXv+Y0Yn6hsgO+aR4+yicHLDEvnA==","signatures":[{"sig":"MEUCIFcJdmWsNWQOvFXyUy99gNNEdeIzlXIknz1Gaug8JosrAiEA50szzgXlxtA0zJxUOgPKMXng2oNlUugtiYdyc4hEh+s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexandrebenkendorf%2ffrontend-tooling@1.4.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":57470},"type":"module","engines":{"node":">=22.0.0"},"exports":{"./eslint":{"types":"./eslint/createEslintConfig.d.mts","default":"./eslint/createEslintConfig.mjs"},"./prettier":{"types":"./prettier/index.d.mts","default":"./prettier/index.mjs"},"./lint-staged":{"types":"./lint-staged/index.d.mts","default":"./lint-staged/index.mjs"},"./tsconfig/base.json":"./tsconfig/base.json","./tsconfig/node.json":"./tsconfig/node.json","./tsconfig/eslint.json":"./tsconfig/eslint.json"},"gitHead":"d52cd4b582a091a921b1b8c07ca89f2d593f84b2","private":false,"scripts":{"lint":"eslint .","test":"vitest run","format":"prettier . --write","prepare":"husky","lint:fix":"eslint . --fix","lint-staged":"lint-staged","format:check":"prettier . --check"},"_npmUser":{"name":"alexandrebenkendorf","email":"alexandre.alemao@gmail.com"},"repository":{"url":"git+https://github.com/alexandrebenkendorf/frontend-tooling.git","type":"git"},"_npmVersion":"10.9.7","description":"Shared frontend tooling configs","directories":{},"_nodeVersion":"22.22.2","dependencies":{"globals":"^17.5.0","@eslint/js":"^9.39.4","@clack/prompts":"^0.7.0","eslint-plugin-import":"^2.32.0","eslint-config-prettier":"^10.1.8","eslint-plugin-no-only-tests":"^3.3.0","eslint-import-resolver-alias":"^1.1.2","eslint-import-resolver-typescript":"^3.10.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","eslint":"^9.39.4","vitest":"^4.1.4","prettier":"^3.8.3","typescript":"^6.0.3","lint-staged":"^16.4.0","eslint-plugin-jest":"^29.15.2","eslint-plugin-react":"^7.37.5","prettier-plugin-ejs":"^1.0.3","@vitest/eslint-plugin":"^1.6.16","eslint-plugin-jsx-a11y":"^6.10.2","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-refresh":"^0.5.2","@trivago/prettier-plugin-sort-imports":"^6.0.2"},"peerDependencies":{"eslint":"^9.0.0","prettier":"^3.0.0","typescript":"^5.0.0 || ^6.0.0","typescript-eslint":"^8.0.0","eslint-plugin-jest":"^29.15.2","eslint-plugin-react":"^7.37.5","prettier-plugin-ejs":"^1.0.3","@vitest/eslint-plugin":"^1.6.16","eslint-plugin-jsx-a11y":"^6.10.2","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-refresh":"^0.5.2","@trivago/prettier-plugin-sort-imports":"^6.0.2"},"peerDependenciesMeta":{"eslint-plugin-jest":{"optional":true},"eslint-plugin-react":{"optional":true},"prettier-plugin-ejs":{"optional":true},"@vitest/eslint-plugin":{"optional":true},"eslint-plugin-jsx-a11y":{"optional":true},"eslint-plugin-react-hooks":{"optional":true},"eslint-plugin-react-refresh":{"optional":true},"@trivago/prettier-plugin-sort-imports":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/frontend-tooling_1.4.2_1776778870655_0.13860714250078487","host":"s3://npm-registry-packages-npm-production"}},"1.4.3":{"name":"@alexandrebenkendorf/frontend-tooling","version":"1.4.3","keywords":["eslint","prettier","typescript","frontend","tooling"],"license":"MIT","_id":"@alexandrebenkendorf/frontend-tooling@1.4.3","maintainers":[{"name":"alexandrebenkendorf","email":"alexandre.alemao@gmail.com"}],"homepage":"https://github.com/alexandrebenkendorf/frontend-tooling#readme","bugs":{"url":"https://github.com/alexandrebenkendorf/frontend-tooling/issues"},"bin":{"frontend-tooling-init":"scripts/init.mjs"},"dist":{"shasum":"1efde06209d9b123d81bc19dc91dbfc2df46ff88","tarball":"https://registry.npmjs.org/@alexandrebenkendorf/frontend-tooling/-/frontend-tooling-1.4.3.tgz","fileCount":36,"integrity":"sha512-UqFiXVyoEIWgwVk/bzflVxs2/zmH1EshrvvY4AJEf7xV2nMolQtsKKvSJpnSa5QBk6W/ZmmQBvZ/aET/wCKhEQ==","signatures":[{"sig":"MEUCIFHpVjuV+qHFhExoupEbJC66E6aCcm7g4jnPIQU//IHUAiEA0isD15WlpKw8s76YV1QxyvvQWmnl7xiN7Yh3fcq4UjM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexandrebenkendorf%2ffrontend-tooling@1.4.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":57722},"type":"module","engines":{"node":">=22.0.0"},"exports":{"./eslint":{"types":"./eslint/createEslintConfig.d.mts","default":"./eslint/createEslintConfig.mjs"},"./prettier":{"types":"./prettier/index.d.mts","default":"./prettier/index.mjs"},"./lint-staged":{"types":"./lint-staged/index.d.mts","default":"./lint-staged/index.mjs"},"./tsconfig/base.json":"./tsconfig/base.json","./tsconfig/node.json":"./tsconfig/node.json","./tsconfig/eslint.json":"./tsconfig/eslint.json"},"gitHead":"cf4769b0168a34a0db4e3e74634b58ba5f7c72fd","private":false,"scripts":{"lint":"eslint .","test":"vitest run","format":"prettier . --write","prepare":"husky","lint:fix":"eslint . --fix","lint-staged":"lint-staged","format:check":"prettier . --check"},"_npmUser":{"name":"alexandrebenkendorf","email":"alexandre.alemao@gmail.com"},"repository":{"url":"git+https://github.com/alexandrebenkendorf/frontend-tooling.git","type":"git"},"_npmVersion":"10.9.7","description":"Shared frontend tooling configs","directories":{},"_nodeVersion":"22.22.2","dependencies":{"globals":"^17.5.0","@eslint/js":"^9.39.4","@clack/prompts":"^0.7.0","eslint-plugin-import":"^2.32.0","eslint-config-prettier":"^10.1.8","eslint-plugin-no-only-tests":"^3.3.0","eslint-import-resolver-alias":"^1.1.2","eslint-import-resolver-typescript":"^3.10.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","eslint":"^9.39.4","vitest":"^4.1.4","prettier":"^3.8.3","typescript":"^6.0.3","lint-staged":"^16.4.0","eslint-plugin-jest":"^29.15.2","eslint-plugin-react":"^7.37.5","prettier-plugin-ejs":"^1.0.3","@vitest/eslint-plugin":"^1.6.16","eslint-plugin-jsx-a11y":"^6.10.2","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-refresh":"^0.5.2","@trivago/prettier-plugin-sort-imports":"^6.0.2"},"peerDependencies":{"eslint":"^9.0.0","prettier":"^3.0.0","typescript":"^5.0.0 || ^6.0.0","typescript-eslint":"^8.0.0","eslint-plugin-jest":"^29.15.2","eslint-plugin-react":"^7.37.5","prettier-plugin-ejs":"^1.0.3","@vitest/eslint-plugin":"^1.6.16","eslint-plugin-jsx-a11y":"^6.10.2","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-refresh":"^0.5.2","@trivago/prettier-plugin-sort-imports":"^6.0.2"},"peerDependenciesMeta":{"eslint-plugin-jest":{"optional":true},"eslint-plugin-react":{"optional":true},"prettier-plugin-ejs":{"optional":true},"@vitest/eslint-plugin":{"optional":true},"eslint-plugin-jsx-a11y":{"optional":true},"eslint-plugin-react-hooks":{"optional":true},"eslint-plugin-react-refresh":{"optional":true},"@trivago/prettier-plugin-sort-imports":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/frontend-tooling_1.4.3_1776783297032_0.906077033229403","host":"s3://npm-registry-packages-npm-production"}},"1.4.4":{"name":"@alexandrebenkendorf/frontend-tooling","version":"1.4.4","keywords":["eslint","prettier","typescript","frontend","tooling"],"license":"MIT","_id":"@alexandrebenkendorf/frontend-tooling@1.4.4","maintainers":[{"name":"alexandrebenkendorf","email":"alexandre.alemao@gmail.com"}],"homepage":"https://github.com/alexandrebenkendorf/frontend-tooling#readme","bugs":{"url":"https://github.com/alexandrebenkendorf/frontend-tooling/issues"},"bin":{"frontend-tooling-init":"scripts/init.mjs"},"dist":{"shasum":"d9eecf34f3be0a1955f0ee8190196fa359fea3b5","tarball":"https://registry.npmjs.org/@alexandrebenkendorf/frontend-tooling/-/frontend-tooling-1.4.4.tgz","fileCount":36,"integrity":"sha512-DRCuMSNsh+Gk3EazA0RzthUPMzRPoV1+xkmg0olYDy2R7WeeQE09CID1rLCil978BYihC2YBxJEthT0nv4u4Sg==","signatures":[{"sig":"MEUCIQDSB6Y82SmieFFlqYlttDhtwqjE0CXkVu7c8gaOxrBg6gIgNmNo+VlDuWZBxwFW4RUJ0/KDW3RyuIPT7RuQqvdvBfA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexandrebenkendorf%2ffrontend-tooling@1.4.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":57932},"type":"module","engines":{"node":">=22.0.0"},"exports":{"./eslint":{"types":"./eslint/createEslintConfig.d.mts","default":"./eslint/createEslintConfig.mjs"},"./prettier":{"types":"./prettier/index.d.mts","default":"./prettier/index.mjs"},"./lint-staged":{"types":"./lint-staged/index.d.mts","default":"./lint-staged/index.mjs"},"./tsconfig/base.json":"./tsconfig/base.json","./tsconfig/node.json":"./tsconfig/node.json","./tsconfig/eslint.json":"./tsconfig/eslint.json"},"gitHead":"7872b82a2c63d38bf6d54f496273b99de3d6cd69","private":false,"scripts":{"lint":"eslint .","test":"vitest run","format":"prettier . --write","prepare":"husky","lint:fix":"eslint . --fix","lint-staged":"lint-staged","format:check":"prettier . --check"},"_npmUser":{"name":"alexandrebenkendorf","email":"alexandre.alemao@gmail.com"},"repository":{"url":"git+https://github.com/alexandrebenkendorf/frontend-tooling.git","type":"git"},"_npmVersion":"10.9.7","description":"Shared frontend tooling configs","directories":{},"_nodeVersion":"22.22.2","dependencies":{"globals":"^17.5.0","@eslint/js":"^9.39.4","@clack/prompts":"^0.7.0","eslint-plugin-import":"^2.32.0","eslint-config-prettier":"^10.1.8","eslint-plugin-no-only-tests":"^3.3.0","eslint-import-resolver-alias":"^1.1.2","eslint-import-resolver-typescript":"^3.10.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","eslint":"^9.39.4","vitest":"^4.1.4","prettier":"^3.8.3","typescript":"^6.0.3","lint-staged":"^16.4.0","eslint-plugin-jest":"^29.15.2","eslint-plugin-react":"^7.37.5","prettier-plugin-ejs":"^1.0.3","@vitest/eslint-plugin":"^1.6.16","eslint-plugin-jsx-a11y":"^6.10.2","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-refresh":"^0.5.2","@trivago/prettier-plugin-sort-imports":"^6.0.2"},"peerDependencies":{"eslint":"^9.0.0","prettier":"^3.0.0","typescript":"^5.0.0 || ^6.0.0","typescript-eslint":"^8.0.0","eslint-plugin-jest":"^29.15.2","eslint-plugin-react":"^7.37.5","prettier-plugin-ejs":"^1.0.3","@vitest/eslint-plugin":"^1.6.16","eslint-plugin-jsx-a11y":"^6.10.2","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-refresh":"^0.5.2","@trivago/prettier-plugin-sort-imports":"^6.0.2"},"peerDependenciesMeta":{"eslint-plugin-jest":{"optional":true},"eslint-plugin-react":{"optional":true},"prettier-plugin-ejs":{"optional":true},"@vitest/eslint-plugin":{"optional":true},"eslint-plugin-jsx-a11y":{"optional":true},"eslint-plugin-react-hooks":{"optional":true},"eslint-plugin-react-refresh":{"optional":true},"@trivago/prettier-plugin-sort-imports":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/frontend-tooling_1.4.4_1776869354148_0.6213583963804956","host":"s3://npm-registry-packages-npm-production"}},"2.0.0-rc.0":{"name":"@alexandrebenkendorf/frontend-tooling","version":"2.0.0-rc.0","keywords":["eslint","prettier","typescript","frontend","tooling"],"license":"MIT","_id":"@alexandrebenkendorf/frontend-tooling@2.0.0-rc.0","maintainers":[{"name":"alexandrebenkendorf","email":"alexandre.alemao@gmail.com"}],"homepage":"https://github.com/alexandrebenkendorf/frontend-tooling#readme","bugs":{"url":"https://github.com/alexandrebenkendorf/frontend-tooling/issues"},"bin":{"frontend-tooling-init":"scripts/init.mjs"},"dist":{"shasum":"a1f31eb9824ec10021010fb10d470dcf33cfeb7d","tarball":"https://registry.npmjs.org/@alexandrebenkendorf/frontend-tooling/-/frontend-tooling-2.0.0-rc.0.tgz","fileCount":42,"integrity":"sha512-71gc1kqe96zVLuZrVP0IZghvQ1xDEEa1wfGfw7/tNfTc0YMEh08r1jx9NDOSO5VOsTzKKuHKtpwQYP6o7FROwA==","signatures":[{"sig":"MEQCIDylr/2rhQJqhv+vGsKCh7KyOOoUos5EUeR8n4wv+4i9AiBYBvwKVECz1JQ8GOWUO3pYn0/gc/uwLpfTJ5ioJBZgGw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexandrebenkendorf%2ffrontend-tooling@2.0.0-rc.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":70156},"type":"module","engines":{"node":">=22.0.0"},"exports":{"./eslint":{"types":"./eslint/index.d.mts","default":"./eslint/index.mjs"},"./prettier":{"types":"./prettier/index.d.mts","default":"./prettier/index.mjs"},"./lint-staged":{"types":"./lint-staged/index.d.mts","default":"./lint-staged/index.mjs"},"./tsconfig/base.json":"./tsconfig/base.json","./tsconfig/node.json":"./tsconfig/node.json","./tsconfig/eslint.json":"./tsconfig/eslint.json"},"gitHead":"5a9f50c0cf5c4dec4f42c4de84137f2cf8525679","private":false,"scripts":{"lint":"eslint .","test":"vitest run","format":"prettier . --write","prepare":"husky","lint:fix":"eslint . --fix","lint-staged":"lint-staged","format:check":"prettier . --check"},"_npmUser":{"name":"alexandrebenkendorf","email":"alexandre.alemao@gmail.com"},"repository":{"url":"git+https://github.com/alexandrebenkendorf/frontend-tooling.git","type":"git"},"_npmVersion":"10.9.7","description":"Shared frontend tooling configs","directories":{},"_nodeVersion":"22.22.2","dependencies":{"globals":"^17.5.0","@eslint/js":"^9.39.4","@clack/prompts":"^0.7.0","eslint-plugin-import":"^2.32.0","eslint-config-prettier":"^10.1.8","eslint-plugin-no-only-tests":"^3.3.0","eslint-import-resolver-alias":"^1.1.2","eslint-import-resolver-typescript":"^3.10.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"husky":"^9.1.7","eslint":"^9.39.4","vitest":"^4.1.4","prettier":"^3.8.3","typescript":"^6.0.3","lint-staged":"^16.4.0","eslint-plugin-jest":"^29.15.2","eslint-plugin-react":"^7.37.5","prettier-plugin-ejs":"^1.0.3","@vitest/eslint-plugin":"^1.6.16","eslint-plugin-jsx-a11y":"^6.10.2","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-refresh":"^0.5.2","@trivago/prettier-plugin-sort-imports":"^6.0.2"},"peerDependencies":{"eslint":"^9.0.0","prettier":"^3.0.0","typescript":"^5.0.0 || ^6.0.0","typescript-eslint":"^8.0.0","eslint-plugin-jest":"^29.15.2","eslint-plugin-react":"^7.37.5","prettier-plugin-ejs":"^1.0.3","@vitest/eslint-plugin":"^1.6.16","eslint-plugin-jsx-a11y":"^6.10.2","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-refresh":"^0.5.2","@trivago/prettier-plugin-sort-imports":"^6.0.2"},"peerDependenciesMeta":{"eslint-plugin-jest":{"optional":true},"eslint-plugin-react":{"optional":true},"prettier-plugin-ejs":{"optional":true},"@vitest/eslint-plugin":{"optional":true},"eslint-plugin-jsx-a11y":{"optional":true},"eslint-plugin-react-hooks":{"optional":true},"eslint-plugin-react-refresh":{"optional":true},"@trivago/prettier-plugin-sort-imports":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/frontend-tooling_2.0.0-rc.0_1776959847370_0.09263821709324871","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@alexandrebenkendorf/frontend-tooling","version":"2.0.0","keywords":["eslint","prettier","typescript","frontend","tooling"],"license":"MIT","_id":"@alexandrebenkendorf/frontend-tooling@2.0.0","maintainers":[{"name":"alexandrebenkendorf","email":"alexandre.alemao@gmail.com"}],"homepage":"https://github.com/alexandrebenkendorf/frontend-tooling#readme","bugs":{"url":"https://github.com/alexandrebenkendorf/frontend-tooling/issues"},"bin":{"frontend-tooling-init":"scripts/init.mjs"},"dist":{"shasum":"1ffecc79bd583b9c56947929557ef02b38faf97e","tarball":"https://registry.npmjs.org/@alexandrebenkendorf/frontend-tooling/-/frontend-tooling-2.0.0.tgz","fileCount":42,"integrity":"sha512-FmmyM895jGFFvktM8ZQ1/tqsbpXK5u04cY5LN+a3BfvXvsqSYRc1/x6sGHCaODevQBzC3cloISRc8Ke3Ke2eWQ==","signatures":[{"sig":"MEUCIHJnJ4O28AA+FScYqAchr/gYnAn3IdBpLtQC6uakYIf5AiEAhgXp9yDYy0kZhhBP0L2UbumH+Fw2H2NRJayOlZSkw8Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexandrebenkendorf%2ffrontend-tooling@2.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":70146},"type":"module","engines":{"node":">=22.0.0"},"exports":{"./eslint":{"types":"./eslint/index.d.mts","default":"./eslint/index.mjs"},"./prettier":{"types":"./prettier/index.d.mts","default":"./prettier/index.mjs"},"./lint-staged":{"types":"./lint-staged/index.d.mts","default":"./lint-staged/index.mjs"},"./tsconfig/base.json":"./tsconfig/base.json","./tsconfig/node.json":"./tsconfig/node.json","./tsconfig/eslint.json":"./tsconfig/eslint.json"},"gitHead":"1c296c315cf88b49faafdf60ef04fc5989b3aef2","private":false,"scripts":{"lint":"eslint .","test":"vitest run","format":"prettier . --write","prepare":"husky","lint:fix":"eslint . --fix","lint-staged":"lint-staged","format:check":"prettier . --check"},"_npmUser":{"name":"alexandrebenkendorf","email":"alexandre.alemao@gmail.com"},"repository":{"url":"git+https://github.com/alexandrebenkendorf/frontend-tooling.git","type":"git"},"_npmVersion":"10.9.7","description":"Shared frontend tooling configs","directories":{},"_nodeVersion":"22.22.2","dependencies":{"globals":"^17.5.0","@eslint/js":"^9.39.4","@clack/prompts":"^0.7.0","eslint-plugin-import":"^2.32.0","eslint-config-prettier":"^10.1.8","eslint-plugin-no-only-tests":"^3.3.0","eslint-import-resolver-alias":"^1.1.2","eslint-import-resolver-typescript":"^3.10.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","eslint":"^9.39.4","vitest":"^4.1.4","prettier":"^3.8.3","typescript":"^6.0.3","lint-staged":"^16.4.0","eslint-plugin-jest":"^29.15.2","eslint-plugin-react":"^7.37.5","prettier-plugin-ejs":"^1.0.3","@vitest/eslint-plugin":"^1.6.16","eslint-plugin-jsx-a11y":"^6.10.2","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-refresh":"^0.5.2","@trivago/prettier-plugin-sort-imports":"^6.0.2"},"peerDependencies":{"eslint":"^9.0.0","prettier":"^3.0.0","typescript":"^5.0.0 || ^6.0.0","typescript-eslint":"^8.0.0","eslint-plugin-jest":"^29.15.2","eslint-plugin-react":"^7.37.5","prettier-plugin-ejs":"^1.0.3","@vitest/eslint-plugin":"^1.6.16","eslint-plugin-jsx-a11y":"^6.10.2","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-refresh":"^0.5.2","@trivago/prettier-plugin-sort-imports":"^6.0.2"},"peerDependenciesMeta":{"eslint-plugin-jest":{"optional":true},"eslint-plugin-react":{"optional":true},"prettier-plugin-ejs":{"optional":true},"@vitest/eslint-plugin":{"optional":true},"eslint-plugin-jsx-a11y":{"optional":true},"eslint-plugin-react-hooks":{"optional":true},"eslint-plugin-react-refresh":{"optional":true},"@trivago/prettier-plugin-sort-imports":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/frontend-tooling_2.0.0_1776962963021_0.8360765487119293","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@alexandrebenkendorf/frontend-tooling","version":"2.1.0","description":"Shared frontend tooling configs","license":"MIT","type":"module","private":false,"bin":{"frontend-tooling-init":"scripts/init.mjs"},"scripts":{"format":"prettier . --write","format:check":"prettier . --check","lint":"eslint .","lint:fix":"eslint . --fix","lint-staged":"lint-staged","test":"vitest run","prepare":"husky"},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/alexandrebenkendorf/frontend-tooling.git"},"keywords":["eslint","prettier","typescript","frontend","tooling"],"engines":{"node":">=22.0.0"},"exports":{"./eslint":{"types":"./eslint/index.d.mts","default":"./eslint/index.mjs"},"./lint-staged":{"types":"./lint-staged/index.d.mts","default":"./lint-staged/index.mjs"},"./prettier":{"types":"./prettier/index.d.mts","default":"./prettier/index.mjs"},"./tsconfig/base.json":"./tsconfig/base.json","./tsconfig/react.json":"./tsconfig/react.json","./tsconfig/node.json":"./tsconfig/node.json","./tsconfig/eslint.json":"./tsconfig/eslint.json"},"dependencies":{"@clack/prompts":"^0.7.0","@eslint/js":"^9.39.4","eslint-config-prettier":"^10.1.8","eslint-import-resolver-alias":"^1.1.2","eslint-import-resolver-typescript":"^3.10.1","eslint-plugin-import":"^2.32.0","eslint-plugin-no-only-tests":"^3.3.0","globals":"^17.5.0"},"peerDependencies":{"@trivago/prettier-plugin-sort-imports":"^6.0.2","@vitest/eslint-plugin":"^1.6.16","eslint":"^9.0.0","prettier-plugin-ejs":"^1.0.3","eslint-plugin-jest":"^29.15.2","eslint-plugin-jsx-a11y":"^6.10.2","eslint-plugin-react":"^7.37.5","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-refresh":"^0.5.2","prettier":"^3.0.0","typescript":"^5.0.0 || ^6.0.0","typescript-eslint":"^8.0.0"},"peerDependenciesMeta":{"@trivago/prettier-plugin-sort-imports":{"optional":true},"prettier-plugin-ejs":{"optional":true},"@vitest/eslint-plugin":{"optional":true},"eslint-plugin-jest":{"optional":true},"eslint-plugin-jsx-a11y":{"optional":true},"eslint-plugin-react":{"optional":true},"eslint-plugin-react-hooks":{"optional":true},"eslint-plugin-react-refresh":{"optional":true}},"devDependencies":{"@trivago/prettier-plugin-sort-imports":"^6.0.2","@vitest/eslint-plugin":"^1.6.16","eslint":"^9.39.4","prettier-plugin-ejs":"^1.0.3","eslint-plugin-jest":"^29.15.2","eslint-plugin-jsx-a11y":"^6.10.2","eslint-plugin-react":"^7.37.5","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-refresh":"^0.5.2","husky":"^9.1.7","lint-staged":"^16.4.0","prettier":"^3.8.3","typescript":"^6.0.3","typescript-eslint":"^8.0.0","vitest":"^4.1.4"},"_id":"@alexandrebenkendorf/frontend-tooling@2.1.0","gitHead":"e8c865afeb82d24e2773cc9efb1e9e417f46b2ef","bugs":{"url":"https://github.com/alexandrebenkendorf/frontend-tooling/issues"},"homepage":"https://github.com/alexandrebenkendorf/frontend-tooling#readme","_nodeVersion":"22.22.2","_npmVersion":"10.9.7","dist":{"integrity":"sha512-UlzCElW2KhMS+dLZMd/0yQnEE117d+om/WrysXJLP3UIOFEYpJzrdR6MSFitYCNwW1p2mclikGKxOsSrVMgkiw==","shasum":"5bc654a3bd9f273a00664f6a501119e0d2d8fd7c","tarball":"https://registry.npmjs.org/@alexandrebenkendorf/frontend-tooling/-/frontend-tooling-2.1.0.tgz","fileCount":43,"unpackedSize":73710,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexandrebenkendorf%2ffrontend-tooling@2.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIA8rPTbpsCeMfeqvlrCz+2lKwHPFthhe0RuqQateAEVKAiBnIEKJX4r3tuiDRSGxjOZ5KpkI4f2wS5IEiWQ9/fFE2A=="}]},"_npmUser":{"name":"alexandrebenkendorf","email":"alexandre.alemao@gmail.com"},"directories":{},"maintainers":[{"name":"alexandrebenkendorf","email":"alexandre.alemao@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/frontend-tooling_2.1.0_1777395188906_0.4842454774865299"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-17T10:27:45.818Z","modified":"2026-04-28T16:53:09.370Z","1.0.0":"2026-04-17T10:27:46.109Z","1.1.0":"2026-04-17T14:54:45.908Z","1.2.0":"2026-04-17T23:44:25.911Z","1.3.0":"2026-04-18T16:43:12.410Z","1.3.1":"2026-04-18T22:14:59.740Z","1.4.0":"2026-04-21T08:25:20.825Z","1.4.1":"2026-04-21T09:45:15.837Z","1.4.2":"2026-04-21T13:41:10.797Z","1.4.3":"2026-04-21T14:54:57.169Z","1.4.4":"2026-04-22T14:49:14.288Z","2.0.0-rc.0":"2026-04-23T15:57:27.509Z","2.0.0":"2026-04-23T16:49:23.164Z","2.1.0":"2026-04-28T16:53:09.080Z"},"bugs":{"url":"https://github.com/alexandrebenkendorf/frontend-tooling/issues"},"license":"MIT","homepage":"https://github.com/alexandrebenkendorf/frontend-tooling#readme","keywords":["eslint","prettier","typescript","frontend","tooling"],"repository":{"type":"git","url":"git+https://github.com/alexandrebenkendorf/frontend-tooling.git"},"description":"Shared frontend tooling configs","maintainers":[{"name":"alexandrebenkendorf","email":"alexandre.alemao@gmail.com"}],"readme":"# `@alexandrebenkendorf/frontend-tooling`\n\nShared frontend tooling configs for ESLint, Prettier, and TypeScript.\n\n## Quick start\n\n```sh\nnpm install -D @alexandrebenkendorf/frontend-tooling eslint prettier typescript typescript-eslint\nnpx frontend-tooling-init\n```\n\nThe init command patches the project interactively and in a reviewable way. It does not silently rewrite files on install. See [docs/init.md](docs/init.md) for all flags, defaults, and the legacy migration flow.\n\nInstall only the peer dependencies your config actually uses:\n\n```sh\n# React projects\nnpm install -D eslint-plugin-react eslint-plugin-react-hooks eslint-plugin-react-refresh eslint-plugin-jsx-a11y\n\n# Vitest projects\nnpm install -D @vitest/eslint-plugin\n\n# Jest projects\nnpm install -D eslint-plugin-jest\n\n# Import sorting in Prettier (opt-in)\nnpm install -D @trivago/prettier-plugin-sort-imports\n\n# EJS formatting (opt-in)\nnpm install -D prettier-plugin-ejs\n```\n\n## Exports\n\n| Export                                                       | Purpose                                               |\n| ------------------------------------------------------------ | ----------------------------------------------------- |\n| `@alexandrebenkendorf/frontend-tooling/eslint`               | Async ESLint flat config builder                      |\n| `@alexandrebenkendorf/frontend-tooling/prettier`             | `definePrettierConfig` builder with opt-in plugins    |\n| `@alexandrebenkendorf/frontend-tooling/lint-staged`          | Shared lint-staged config                             |\n| `@alexandrebenkendorf/frontend-tooling/tsconfig/base.json`   | Base TypeScript config (strict, generic, no jsx/DOM)  |\n| `@alexandrebenkendorf/frontend-tooling/tsconfig/react.json`  | TypeScript config for React projects (jsx + DOM)      |\n| `@alexandrebenkendorf/frontend-tooling/tsconfig/node.json`   | TypeScript config for Node.js projects                |\n| `@alexandrebenkendorf/frontend-tooling/tsconfig/eslint.json` | TypeScript config scoped to ESLint type-checks        |\n| `.editorconfig`                                              | Copied to consumer project by `frontend-tooling-init` |\n\n## Documentation\n\n- [Initializer — flags, defaults, legacy migration](docs/init.md)\n- [ESLint — `defineEslintConfig` full reference](docs/eslint.md)\n- [Prettier — `definePrettierConfig` builder](docs/prettier.md)\n- [TypeScript — tsconfig usage and overrides](docs/typescript.md)\n- [lint-staged — setup and override patterns](docs/lint-staged.md)\n- [Design — why the key decisions were made](DESIGN.md)\n\n## Usage examples\n\n### TypeScript\n\nReact project (`tsconfig.json`):\n\n```json\n{\n  \"extends\": \"@alexandrebenkendorf/frontend-tooling/tsconfig/react.json\",\n  \"include\": [\"**/*.ts\", \"**/*.tsx\", \"**/*.js\", \"**/*.jsx\", \"**/*.mjs\", \"**/*.cjs\"]\n}\n```\n\nTooling files (`tsconfig.node.json`):\n\n```json\n{\n  \"extends\": \"@alexandrebenkendorf/frontend-tooling/tsconfig/node.json\",\n  \"include\": [\"vite.config.ts\", \"*.config.ts\", \"scripts/**/*\"]\n}\n```\n\nESLint type-checking (`tsconfig.eslint.json`):\n\n```json\n{\n  \"files\": [],\n  \"references\": [{ \"path\": \"./tsconfig.json\" }, { \"path\": \"./tsconfig.node.json\" }]\n}\n```\n\nNon-React project uses `tsconfig/base.json` instead of `tsconfig/react.json`. See [docs/typescript.md](docs/typescript.md) for overrides.\n\n### ESLint\n\n```js\n// eslint.config.mjs\nimport defineEslintConfig from '@alexandrebenkendorf/frontend-tooling/eslint';\n\nexport default await defineEslintConfig({ includeReact: true, testFramework: 'vitest' });\n```\n\n### Prettier\n\n```js\n// prettier.config.mjs\nimport definePrettierConfig from '@alexandrebenkendorf/frontend-tooling/prettier';\n\nexport default definePrettierConfig({ sortImports: true });\n```\n\n### lint-staged\n\n```js\n// lint-staged.config.mjs\nexport { default } from '@alexandrebenkendorf/frontend-tooling/lint-staged';\n```\n","readmeFilename":"README.md"}