{"_id":"@claylevering/eslint-config","_rev":"53-993d4c28b54e71ae9d56326751795901","name":"@claylevering/eslint-config","dist-tags":{"latest":"2.0.23"},"versions":{"2.0.11":{"name":"@claylevering/eslint-config","version":"2.0.11","keywords":["eslint-config","eslint-plugin","eslint","eslintplugin","flat-config","node","typescript","vue"],"author":{"name":"Clay Levering"},"license":"MIT","_id":"@claylevering/eslint-config@2.0.11","maintainers":[{"name":"claylevering","email":"claylevering@gmail.com"}],"homepage":"https://github.com/claylevering/claxxon-lint#readme","bugs":{"url":"https://github.com/claylevering/claxxon-lint/issues"},"dist":{"shasum":"911a2248e7ce0f6d11b27e75fe547394285ec32c","tarball":"https://registry.npmjs.org/@claylevering/eslint-config/-/eslint-config-2.0.11.tgz","fileCount":16,"integrity":"sha512-H7CmJmXGgHHddQW7/akrDIpDF7nmrvrYK3B4wlpNHR2jWuUigo0i5E4AZ76/+wfCO+hy1HZGNlFU+FrPCpU/vA==","signatures":[{"sig":"MEMCIACnyWP9VyUpgRbhVAN52gzRWZ3U2ngzE3/jtL9B0jW1Ah89XovvdtWWtYsxhAS/q9XDVKXgFbWNoaB0U86dt+8r","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":53763},"main":"index.js","type":"module","_from":"file:claylevering-eslint-config-2.0.11.tgz","exports":{".":"./index.js","./configs/vue":"./configs/vue.js","./configs/node":"./configs/node.js","./configs/nuxt":"./configs/nuxt.js","./configs/typescript":"./configs/typescript.js"},"scripts":{"lint":"pnpm run eslint && pnpm run prettier","test":"pnpm run lint","eslint":"eslint .","lint:fix":"pnpm run eslint:fix && pnpm run prettier:fix","prettier":"prettier .","eslint:fix":"eslint . --fix","prettier:fix":"prettier . --write","publish:github":"pnpm publish"},"_npmUser":{"name":"claylevering","email":"claylevering@gmail.com"},"_resolved":"/tmp/66c214185777f60e7267f44663abd897/claylevering-eslint-config-2.0.11.tgz","_integrity":"sha512-H7CmJmXGgHHddQW7/akrDIpDF7nmrvrYK3B4wlpNHR2jWuUigo0i5E4AZ76/+wfCO+hy1HZGNlFU+FrPCpU/vA==","repository":{"url":"git+https://github.com/claylevering/claxxon-lint.git","type":"git"},"_npmVersion":"11.6.2","description":"A set of ESLint configurations supporting flat config format with Vue (and with TypeScript), Node, and TypeScript rules","directories":{},"_nodeVersion":"24.11.1","dependencies":{"globals":"^16.5.0","@eslint/js":"^9.15.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.25","nuxt":"^4.2.2","eslint":"^9.15.0","prettier":"3.6.2","typescript":"^5.9.3","eslint-config-prettier":"^10.1.8"},"peerDependencies":{"eslint":">=9.0.0","@nuxt/eslint":">=1.0.0","eslint-plugin-vue":">=10.0.0","typescript-eslint":">=8.0.0","vue-eslint-parser":">=10.0.0"},"peerDependenciesMeta":{"@nuxt/eslint":{"optional":true},"eslint-plugin-vue":{"optional":true},"typescript-eslint":{"optional":true},"vue-eslint-parser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-config_2.0.11_1765392492532_0.14287369016718987","host":"s3://npm-registry-packages-npm-production"}},"2.0.14":{"name":"@claylevering/eslint-config","version":"2.0.14","keywords":["eslint-config","eslint-plugin","eslint","eslintplugin","flat-config","node","typescript","vue"],"author":{"name":"Clay Levering"},"license":"MIT","_id":"@claylevering/eslint-config@2.0.14","maintainers":[{"name":"claylevering","email":"claylevering@gmail.com"}],"homepage":"https://github.com/claylevering/claxxon-lint#readme","bugs":{"url":"https://github.com/claylevering/claxxon-lint/issues"},"dist":{"shasum":"68bb345cd19a9353400ec28fedbe314b95594dfd","tarball":"https://registry.npmjs.org/@claylevering/eslint-config/-/eslint-config-2.0.14.tgz","fileCount":17,"integrity":"sha512-XbrCCJRV4Oy+4ZbEesFMgo8BwY3j6K6ocfFJCvpXGod9eeG/nOQcgtZL1l21QFxEz3iSQJj2q0XRx7khTMXyYQ==","signatures":[{"sig":"MEYCIQCODBIVWEfWWiDmSNvTeV+Bjlq11ODxsozCAJmyHp947QIhAPC+NVZZs4IwpDo+XOSxewuDx92KlB6gowgd41/0fyhp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":54139},"main":"index.js","type":"module","_from":"file:claylevering-eslint-config-2.0.14.tgz","engines":{"node":">=18.0.0"},"exports":{".":"./index.js","./configs/vue":"./configs/vue.js","./configs/node":"./configs/node.js","./configs/nuxt":"./configs/nuxt.js","./configs/typescript":"./configs/typescript.js"},"scripts":{"lint":"pnpm run eslint && pnpm run prettier","test":"pnpm run lint","eslint":"eslint .","lint:fix":"pnpm run eslint:fix && pnpm run prettier:fix","prettier":"prettier .","eslint:fix":"eslint . --fix","prettier:fix":"prettier . --write","publish:github":"pnpm publish"},"_npmUser":{"name":"claylevering","email":"claylevering@gmail.com"},"_resolved":"/tmp/a00cae0f093b2c5359b1bc5f99c0e318/claylevering-eslint-config-2.0.14.tgz","_integrity":"sha512-XbrCCJRV4Oy+4ZbEesFMgo8BwY3j6K6ocfFJCvpXGod9eeG/nOQcgtZL1l21QFxEz3iSQJj2q0XRx7khTMXyYQ==","repository":{"url":"git+https://github.com/claylevering/claxxon-lint.git","type":"git"},"_npmVersion":"11.6.2","description":"A set of ESLint configurations supporting flat config format with Vue (and with TypeScript), Node, and TypeScript rules","directories":{},"_nodeVersion":"24.11.1","dependencies":{"globals":"^16.5.0","@eslint/js":"^9.15.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.25","nuxt":"^4.2.2","eslint":"^9.15.0","prettier":"3.6.2","typescript":"^5.9.3","eslint-plugin-vue":"^10.0.0","typescript-eslint":"^8.0.0","vue-eslint-parser":"^10.0.0","eslint-config-prettier":"^10.1.8"},"peerDependencies":{"eslint":">=9.0.0","@nuxt/eslint":">=1.0.0","eslint-plugin-vue":">=10.0.0","typescript-eslint":">=8.0.0","vue-eslint-parser":">=10.0.0"},"peerDependenciesMeta":{"@nuxt/eslint":{"optional":true},"eslint-plugin-vue":{"optional":true},"typescript-eslint":{"optional":true},"vue-eslint-parser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-config_2.0.14_1765817317102_0.9709521486335095","host":"s3://npm-registry-packages-npm-production"}},"2.0.15":{"name":"@claylevering/eslint-config","version":"2.0.15","keywords":["eslint-config","eslint-plugin","eslint","eslintplugin","flat-config","node","typescript","vue"],"author":{"name":"Clay Levering"},"license":"MIT","_id":"@claylevering/eslint-config@2.0.15","maintainers":[{"name":"claylevering","email":"claylevering@gmail.com"}],"homepage":"https://github.com/claylevering/claxxon-lint#readme","bugs":{"url":"https://github.com/claylevering/claxxon-lint/issues"},"dist":{"shasum":"08f2e70a41a0bd85723b7e5a50d4fcfdb16fc37f","tarball":"https://registry.npmjs.org/@claylevering/eslint-config/-/eslint-config-2.0.15.tgz","fileCount":17,"integrity":"sha512-02TcS+OuvMsiew1G3W7p5+b4WgKPhLd+Xk/5G6/WGbq4FiLuuFxHYqz2zWRzSPE5VKUr9/WYTTv5VrAj4nvW/Q==","signatures":[{"sig":"MEUCIDLA4JvKjNj1BFxnFPTNRBMz078J1NDJY2oPNedcSnsTAiEAruPt3UpT3MzrSvsEb0+LZLifeRakglEcYaMoGr/zeIs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":54997},"main":"index.js","type":"module","_from":"file:claylevering-eslint-config-2.0.15.tgz","engines":{"node":">=18.0.0"},"exports":{".":"./index.js","./configs/vue":"./configs/vue.js","./configs/node":"./configs/node.js","./configs/nuxt":"./configs/nuxt.js","./configs/typescript":"./configs/typescript.js"},"scripts":{"lint":"pnpm run eslint && pnpm run prettier","test":"pnpm run lint && pnpm run test:unit","eslint":"eslint .","lint:fix":"pnpm run eslint:fix && pnpm run prettier:fix","prettier":"prettier .","test:unit":"vitest run","eslint:fix":"eslint . --fix","test:watch":"vitest","prettier:fix":"prettier . --write","publish:github":"pnpm publish"},"_npmUser":{"name":"claylevering","email":"claylevering@gmail.com"},"_resolved":"/tmp/66e04cc669f4516f5ea1281e17029ed6/claylevering-eslint-config-2.0.15.tgz","_integrity":"sha512-02TcS+OuvMsiew1G3W7p5+b4WgKPhLd+Xk/5G6/WGbq4FiLuuFxHYqz2zWRzSPE5VKUr9/WYTTv5VrAj4nvW/Q==","repository":{"url":"git+https://github.com/claylevering/claxxon-lint.git","type":"git"},"_npmVersion":"11.6.2","description":"A set of ESLint configurations supporting flat config format with Vue (and with TypeScript), Node, and TypeScript rules","directories":{},"_nodeVersion":"24.11.1","dependencies":{"globals":"^16.5.0","@eslint/js":"^9.15.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.25","nuxt":"^4.2.2","eslint":"^9.15.0","vitest":"^4.0.15","prettier":"3.6.2","typescript":"^5.9.3","eslint-plugin-vue":"^10.0.0","typescript-eslint":"^8.0.0","vue-eslint-parser":"^10.0.0","eslint-config-prettier":"^10.1.8"},"peerDependencies":{"eslint":">=9.0.0","@nuxt/eslint":">=1.0.0","eslint-plugin-vue":">=10.0.0","typescript-eslint":">=8.0.0","vue-eslint-parser":">=10.0.0"},"peerDependenciesMeta":{"@nuxt/eslint":{"optional":true},"eslint-plugin-vue":{"optional":true},"typescript-eslint":{"optional":true},"vue-eslint-parser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-config_2.0.15_1765818469249_0.3663744800147877","host":"s3://npm-registry-packages-npm-production"}},"2.0.16":{"name":"@claylevering/eslint-config","version":"2.0.16","keywords":["eslint-config","eslint-plugin","eslint","eslintplugin","flat-config","node","typescript","vue"],"author":{"name":"Clay Levering"},"license":"MIT","_id":"@claylevering/eslint-config@2.0.16","maintainers":[{"name":"claylevering","email":"claylevering@gmail.com"}],"homepage":"https://github.com/claylevering/claxxon-lint#readme","bugs":{"url":"https://github.com/claylevering/claxxon-lint/issues"},"dist":{"shasum":"71f0132345b97546b2bb16e991a2cf16acbc470e","tarball":"https://registry.npmjs.org/@claylevering/eslint-config/-/eslint-config-2.0.16.tgz","fileCount":17,"integrity":"sha512-eqNAarfKMlWsMthnEGB86G/qbbkF51CzNS3E3x5u/pe4afkjaXpiqUQCmnjm0I3CI7Gc/Uvmur1mSUfmYIKiwQ==","signatures":[{"sig":"MEUCICbD1vfUX6RpPTo0uLvUjyalEz2Uxayw/vOMWoJV46K1AiEAvaEeS90CKTPsf+Hym9LknxG9e9DRcZuWFpV+STmmlng=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":55168},"main":"index.js","type":"module","_from":"file:claylevering-eslint-config-2.0.16.tgz","engines":{"node":">=18.0.0"},"exports":{".":"./index.js","./configs/vue":"./configs/vue.js","./configs/node":"./configs/node.js","./configs/nuxt":"./configs/nuxt.js","./configs/typescript":"./configs/typescript.js"},"scripts":{"lint":"pnpm run eslint && pnpm run prettier","test":"pnpm run lint && pnpm run test:unit","eslint":"eslint .","lint:fix":"pnpm run eslint:fix && pnpm run prettier:fix","prettier":"prettier .","test:unit":"vitest run","eslint:fix":"eslint . --fix","test:watch":"vitest","prettier:fix":"prettier . --write","publish:github":"pnpm publish"},"_npmUser":{"name":"claylevering","email":"claylevering@gmail.com"},"_resolved":"/tmp/f6cc468f53a48e891d5438a7bb202c36/claylevering-eslint-config-2.0.16.tgz","_integrity":"sha512-eqNAarfKMlWsMthnEGB86G/qbbkF51CzNS3E3x5u/pe4afkjaXpiqUQCmnjm0I3CI7Gc/Uvmur1mSUfmYIKiwQ==","repository":{"url":"git+https://github.com/claylevering/claxxon-lint.git","type":"git"},"_npmVersion":"11.6.2","description":"A set of ESLint configurations supporting flat config format with Vue (and with TypeScript), Node, and TypeScript rules","directories":{},"_nodeVersion":"24.11.1","dependencies":{"globals":"^16.5.0","@eslint/js":"^9.39.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.25","nuxt":"^4.2.2","eslint":"^9.39.2","vitest":"^4.0.15","prettier":"3.7.4","typescript":"^5.9.3","eslint-plugin-vue":"^10.0.0","typescript-eslint":"^8.50.0","vue-eslint-parser":"^10.0.0","eslint-config-prettier":"^10.1.8"},"peerDependencies":{"eslint":">=9.0.0","@nuxt/eslint":">=1.0.0","eslint-plugin-vue":">=10.0.0","typescript-eslint":">=8.0.0","vue-eslint-parser":">=10.0.0"},"peerDependenciesMeta":{"@nuxt/eslint":{"optional":true},"eslint-plugin-vue":{"optional":true},"typescript-eslint":{"optional":true},"vue-eslint-parser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-config_2.0.16_1765818981850_0.2386182456149306","host":"s3://npm-registry-packages-npm-production"}},"2.0.17":{"name":"@claylevering/eslint-config","version":"2.0.17","keywords":["eslint-config","eslint-plugin","eslint","eslintplugin","flat-config","node","typescript","vue"],"author":{"name":"Clay Levering"},"license":"MIT","_id":"@claylevering/eslint-config@2.0.17","maintainers":[{"name":"claylevering","email":"claylevering@gmail.com"}],"homepage":"https://github.com/claylevering/claxxon-lint#readme","bugs":{"url":"https://github.com/claylevering/claxxon-lint/issues"},"dist":{"shasum":"0ed90f503d0c50ad86fb4fcbbb048b92239bcd82","tarball":"https://registry.npmjs.org/@claylevering/eslint-config/-/eslint-config-2.0.17.tgz","fileCount":17,"integrity":"sha512-L9SlD8iZx7Z23CAHHeHzFHjyuQaMt7LKnv/gWhM6/hvNv/S69XP3ziOCYNQXyBQ0Y/AN+9V1bqJ0fGq1ZyKkOQ==","signatures":[{"sig":"MEQCIGaYPe+Wumq4BQYpLf9IXUXaSMe0xdaenVty2rXZ/h4eAiB4uKKkP5AmdD+djbnfxr3m5DF6lbjsPnD2zrGtIy480w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":55133},"main":"index.js","type":"module","_from":"file:claylevering-eslint-config-2.0.17.tgz","engines":{"node":">=18.0.0"},"exports":{".":"./index.js","./configs/vue":"./configs/vue.js","./configs/node":"./configs/node.js","./configs/nuxt":"./configs/nuxt.js","./configs/typescript":"./configs/typescript.js"},"scripts":{"lint":"pnpm run eslint && pnpm run prettier","test":"pnpm run lint && pnpm run test:unit","eslint":"eslint .","lint:fix":"pnpm run eslint:fix && pnpm run prettier:fix","prettier":"prettier .","test:unit":"vitest run","eslint:fix":"eslint . --fix","test:watch":"vitest","prettier:fix":"prettier . --write","publish:github":"pnpm publish"},"_npmUser":{"name":"claylevering","email":"claylevering@gmail.com"},"_resolved":"/tmp/afd15e2ce41ff0cb5a12269b0be77de5/claylevering-eslint-config-2.0.17.tgz","_integrity":"sha512-L9SlD8iZx7Z23CAHHeHzFHjyuQaMt7LKnv/gWhM6/hvNv/S69XP3ziOCYNQXyBQ0Y/AN+9V1bqJ0fGq1ZyKkOQ==","repository":{"url":"git+https://github.com/claylevering/claxxon-lint.git","type":"git"},"_npmVersion":"11.6.2","description":"A set of ESLint configurations supporting flat config format with Vue (and with TypeScript), Node, and TypeScript rules","directories":{},"_nodeVersion":"24.11.1","dependencies":{"globals":"^16.5.0","@eslint/js":"^9.39.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.25","nuxt":"^4.2.2","eslint":"^9.39.2","vitest":"^4.0.15","prettier":"3.7.4","typescript":"^5.9.3","eslint-plugin-vue":"^10.0.0","typescript-eslint":"^8.50.0","vue-eslint-parser":"^10.0.0","eslint-config-prettier":"^10.1.8"},"peerDependencies":{"eslint":">=9.0.0","@nuxt/eslint":">=1.0.0","eslint-plugin-vue":">=10.0.0","typescript-eslint":">=8.0.0","vue-eslint-parser":">=10.0.0"},"peerDependenciesMeta":{"@nuxt/eslint":{"optional":true},"eslint-plugin-vue":{"optional":true},"typescript-eslint":{"optional":true},"vue-eslint-parser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-config_2.0.17_1765819151252_0.3402638699289049","host":"s3://npm-registry-packages-npm-production"}},"2.0.18":{"name":"@claylevering/eslint-config","version":"2.0.18","keywords":["eslint-config","eslint-plugin","eslint","eslintplugin","flat-config","node","typescript","vue"],"author":{"name":"Clay Levering"},"license":"MIT","_id":"@claylevering/eslint-config@2.0.18","maintainers":[{"name":"claylevering","email":"claylevering@gmail.com"}],"homepage":"https://github.com/claylevering/claxxon-lint#readme","bugs":{"url":"https://github.com/claylevering/claxxon-lint/issues"},"dist":{"shasum":"ec75c8846dcf47108fbc1900b449af7fb007d4ff","tarball":"https://registry.npmjs.org/@claylevering/eslint-config/-/eslint-config-2.0.18.tgz","fileCount":17,"integrity":"sha512-JJT4dcdpTgQ8zMdT/KVTa6I53cbsqsVNst/e2xYsaIB58INr2mlW+2QYbrJYjQGE+p7HU0Phdn9Ol1NI9th0Cw==","signatures":[{"sig":"MEUCIQDJYokp6WbV8v70gsx8KM3ZsnxYvEhEjs+/XU4WMAhUSAIgWVtvv4/YZxx/SUZUHWVo2fzmaIVq/3qn2f5HGgbvpXg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":55137},"main":"index.js","type":"module","_from":"file:claylevering-eslint-config-2.0.18.tgz","engines":{"node":">=18.0.0"},"exports":{".":"./index.js","./configs/vue":"./configs/vue.js","./configs/node":"./configs/node.js","./configs/nuxt":"./configs/nuxt.js","./configs/typescript":"./configs/typescript.js"},"scripts":{"lint":"pnpm run eslint && pnpm run prettier","test":"pnpm run lint && pnpm run test:unit","eslint":"eslint .","lint:fix":"pnpm run eslint:fix && pnpm run prettier:fix","prettier":"prettier .","test:unit":"vitest run","eslint:fix":"eslint . --fix","test:watch":"vitest","prettier:fix":"prettier . --write","publish:github":"pnpm publish"},"_npmUser":{"name":"claylevering","email":"claylevering@gmail.com"},"_resolved":"/tmp/28fc7e4c757703dc8401ddc963458586/claylevering-eslint-config-2.0.18.tgz","_integrity":"sha512-JJT4dcdpTgQ8zMdT/KVTa6I53cbsqsVNst/e2xYsaIB58INr2mlW+2QYbrJYjQGE+p7HU0Phdn9Ol1NI9th0Cw==","repository":{"url":"git+https://github.com/claylevering/claxxon-lint.git","type":"git"},"_npmVersion":"11.6.2","description":"A set of ESLint configurations supporting flat config format with Vue (and with TypeScript), Node, and TypeScript rules","directories":{},"_nodeVersion":"24.11.1","dependencies":{"globals":"^16.5.0","@eslint/js":"^9.39.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.25","nuxt":"^4.2.2","eslint":"^9.39.2","vitest":"^4.0.15","prettier":"3.7.4","typescript":"^5.9.3","eslint-plugin-vue":"^10.0.0","typescript-eslint":"^8.50.0","vue-eslint-parser":"^10.0.0","eslint-config-prettier":"^10.1.8"},"peerDependencies":{"eslint":">=9.0.0","@nuxt/eslint":">=1.0.0","eslint-plugin-vue":">=10.0.0","typescript-eslint":">=8.0.0","vue-eslint-parser":">=10.0.0"},"peerDependenciesMeta":{"@nuxt/eslint":{"optional":true},"eslint-plugin-vue":{"optional":true},"typescript-eslint":{"optional":true},"vue-eslint-parser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-config_2.0.18_1765819358760_0.07660075108012099","host":"s3://npm-registry-packages-npm-production"}},"2.0.19":{"name":"@claylevering/eslint-config","version":"2.0.19","keywords":["eslint-config","eslint-plugin","eslint","eslintplugin","flat-config","node","typescript","vue"],"author":{"name":"Clay Levering"},"license":"MIT","_id":"@claylevering/eslint-config@2.0.19","maintainers":[{"name":"claylevering","email":"claylevering@gmail.com"}],"homepage":"https://github.com/claylevering/claxxon-lint#readme","bugs":{"url":"https://github.com/claylevering/claxxon-lint/issues"},"dist":{"shasum":"a8ebce86dd1a4a42d7437e9730810c846543d4b6","tarball":"https://registry.npmjs.org/@claylevering/eslint-config/-/eslint-config-2.0.19.tgz","fileCount":17,"integrity":"sha512-nkTVAR3bLEW7gpuBdIto2U9H1gqiotH/y1IWHPxxwgyEFcSMxdvxcO4ONxNRWJ17OoAnIL/jstUAkXV9udl5qA==","signatures":[{"sig":"MEYCIQDuk376NsnJTvoAJcLRsMGqGnSrY8yJ1TZoSAfkwJuBAQIhAJZ5dtDo7Rec7/sn1L08ljFQ+IN0MprJeK7Jm+2VxxCF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":55160},"main":"index.js","type":"module","_from":"file:claylevering-eslint-config-2.0.19.tgz","engines":{"node":">=18.0.0"},"exports":{".":"./index.js","./configs/vue":"./configs/vue.js","./configs/node":"./configs/node.js","./configs/nuxt":"./configs/nuxt.js","./configs/typescript":"./configs/typescript.js"},"scripts":{"lint":"pnpm run eslint && pnpm run prettier","test":"pnpm run lint && pnpm run test:unit","eslint":"eslint .","lint:fix":"pnpm run eslint:fix && pnpm run prettier:fix","prettier":"prettier .","test:unit":"vitest run","eslint:fix":"eslint . --fix","test:watch":"vitest","prettier:fix":"prettier . --write","publish:github":"pnpm publish"},"_npmUser":{"name":"claylevering","email":"claylevering@gmail.com"},"_resolved":"/tmp/cf15816c9bc63022dc85cfd2c5096abb/claylevering-eslint-config-2.0.19.tgz","_integrity":"sha512-nkTVAR3bLEW7gpuBdIto2U9H1gqiotH/y1IWHPxxwgyEFcSMxdvxcO4ONxNRWJ17OoAnIL/jstUAkXV9udl5qA==","repository":{"url":"git+https://github.com/claylevering/claxxon-lint.git","type":"git"},"_npmVersion":"11.6.2","description":"A set of ESLint configurations supporting flat config format with Vue (and with TypeScript), Node, and TypeScript rules","directories":{},"_nodeVersion":"24.11.1","dependencies":{"globals":"^16.5.0","@eslint/js":"^9.39.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.25","nuxt":"^4.2.2","eslint":"^9.39.2","vitest":"^4.0.15","prettier":"3.7.4","typescript":"^5.9.3","eslint-plugin-vue":"^10.0.0","typescript-eslint":"^8.50.0","vue-eslint-parser":"^10.0.0","eslint-config-prettier":"^10.1.8"},"peerDependencies":{"eslint":">=9.0.0","@nuxt/eslint":">=1.0.0","eslint-plugin-vue":">=10.0.0","typescript-eslint":">=8.0.0","vue-eslint-parser":">=10.0.0"},"peerDependenciesMeta":{"@nuxt/eslint":{"optional":true},"eslint-plugin-vue":{"optional":true},"typescript-eslint":{"optional":true},"vue-eslint-parser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-config_2.0.19_1765822853511_0.20023362884694107","host":"s3://npm-registry-packages-npm-production"}},"2.0.20":{"name":"@claylevering/eslint-config","version":"2.0.20","keywords":["eslint-config","eslint-plugin","eslint","eslintplugin","flat-config","node","typescript","vue"],"author":{"name":"Clay Levering"},"license":"MIT","_id":"@claylevering/eslint-config@2.0.20","maintainers":[{"name":"claylevering","email":"claylevering@gmail.com"}],"homepage":"https://github.com/claylevering/claxxon-lint#readme","bugs":{"url":"https://github.com/claylevering/claxxon-lint/issues"},"dist":{"shasum":"b035ed4fd26b7ff85678c90064a2ba62809a91fc","tarball":"https://registry.npmjs.org/@claylevering/eslint-config/-/eslint-config-2.0.20.tgz","fileCount":17,"integrity":"sha512-0TXN+xoxhXYVCujNJb1vUdt9ofLlUfdOudpN3iLVf8ibZaPhFgPizM5D50A69gVf+Oc9RCBOa8r5urwhfYMSTQ==","signatures":[{"sig":"MEQCIBLA8zRWnrq8WzWcV5TZaMsIRto1ghreto1bUPpDUAoYAiBjgeDbm/uFKXiOLVfqrYzEpB3Bw2UDrEVduLPI1latrw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":58111},"main":"index.js","type":"module","_from":"file:claylevering-eslint-config-2.0.20.tgz","engines":{"node":">=18.0.0"},"exports":{".":"./index.js","./configs/vue":"./configs/vue.js","./configs/node":"./configs/node.js","./configs/nuxt":"./configs/nuxt.js","./configs/typescript":"./configs/typescript.js"},"scripts":{"lint":"pnpm run eslint && pnpm run prettier","test":"pnpm run lint && pnpm run test:unit","eslint":"eslint .","lint:fix":"pnpm run eslint:fix && pnpm run prettier:fix","prettier":"prettier .","test:unit":"vitest run","eslint:fix":"eslint . --fix","test:watch":"vitest","prettier:fix":"prettier . --write","publish:github":"pnpm publish"},"_npmUser":{"name":"claylevering","email":"claylevering@gmail.com"},"_resolved":"/tmp/b8de4805b6c5c67955d206df08509f2c/claylevering-eslint-config-2.0.20.tgz","_integrity":"sha512-0TXN+xoxhXYVCujNJb1vUdt9ofLlUfdOudpN3iLVf8ibZaPhFgPizM5D50A69gVf+Oc9RCBOa8r5urwhfYMSTQ==","repository":{"url":"git+https://github.com/claylevering/claxxon-lint.git","type":"git"},"_npmVersion":"11.6.2","description":"A set of ESLint configurations supporting flat config format with Vue (and with TypeScript), Node, and TypeScript rules","directories":{},"_nodeVersion":"24.11.1","dependencies":{"globals":"^16.5.0","@eslint/js":"^9.39.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.25","nuxt":"^4.2.2","eslint":"^9.39.2","vitest":"^4.0.15","prettier":"3.7.4","typescript":"^5.9.3","eslint-plugin-vue":"^10.0.0","typescript-eslint":"^8.50.0","vue-eslint-parser":"^10.0.0","eslint-config-prettier":"^10.1.8"},"peerDependencies":{"eslint":">=9.0.0","@nuxt/eslint":">=1.0.0","eslint-plugin-vue":">=10.0.0","typescript-eslint":">=8.0.0","vue-eslint-parser":">=10.0.0"},"peerDependenciesMeta":{"@nuxt/eslint":{"optional":true},"eslint-plugin-vue":{"optional":true},"typescript-eslint":{"optional":true},"vue-eslint-parser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-config_2.0.20_1765824117646_0.37828267753834144","host":"s3://npm-registry-packages-npm-production"}},"2.0.21":{"name":"@claylevering/eslint-config","version":"2.0.21","keywords":["eslint-config","eslint-plugin","eslint","eslintplugin","flat-config","node","typescript","vue"],"author":{"name":"Clay Levering"},"license":"MIT","_id":"@claylevering/eslint-config@2.0.21","maintainers":[{"name":"claylevering","email":"claylevering@gmail.com"}],"homepage":"https://github.com/claylevering/claxxon-lint#readme","bugs":{"url":"https://github.com/claylevering/claxxon-lint/issues"},"dist":{"shasum":"d78629200f9dc2cc9a60b3b7c0a5d0aca11819f4","tarball":"https://registry.npmjs.org/@claylevering/eslint-config/-/eslint-config-2.0.21.tgz","fileCount":17,"integrity":"sha512-XL6Fo+FiiGyHX2wplLRpRffOBpoBzhO+4frRGKQ8KlAcd5+41misNnzUFuMvRmeoKpvYtN/uwfROUZcpcxW6LA==","signatures":[{"sig":"MEYCIQD3ot2mO9UR65f6Ih7+MOn4i3RTlWNdQBtOXFwh6uv3tgIhAJ3mznvtODovPUkpICIB19P1FX4WufG0tOwZKMQNylue","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":58146},"main":"index.js","type":"module","_from":"file:claylevering-eslint-config-2.0.21.tgz","engines":{"node":">=18.0.0"},"exports":{".":"./index.js","./configs/vue":"./configs/vue.js","./configs/node":"./configs/node.js","./configs/nuxt":"./configs/nuxt.js","./configs/typescript":"./configs/typescript.js"},"scripts":{"lint":"pnpm run eslint && pnpm run prettier","test":"pnpm run lint && pnpm run test:unit","eslint":"eslint .","lint:fix":"pnpm run eslint:fix && pnpm run prettier:fix","prettier":"prettier .","test:unit":"vitest run","eslint:fix":"eslint . --fix","test:watch":"vitest","prettier:fix":"prettier . --write","publish:github":"pnpm publish"},"_npmUser":{"name":"claylevering","email":"claylevering@gmail.com"},"_resolved":"/tmp/7e95f3cbeddfbf490dd3e0f8148fb31f/claylevering-eslint-config-2.0.21.tgz","_integrity":"sha512-XL6Fo+FiiGyHX2wplLRpRffOBpoBzhO+4frRGKQ8KlAcd5+41misNnzUFuMvRmeoKpvYtN/uwfROUZcpcxW6LA==","repository":{"url":"git+https://github.com/claylevering/claxxon-lint.git","type":"git"},"_npmVersion":"11.6.2","description":"A set of ESLint configurations supporting flat config format with Vue (and with TypeScript), Node, and TypeScript rules","directories":{},"_nodeVersion":"24.11.1","dependencies":{"globals":"^16.5.0","@eslint/js":"^9.39.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.25","nuxt":"^4.2.2","eslint":"^9.39.2","vitest":"^4.0.15","prettier":"3.7.4","typescript":"^5.9.3","eslint-plugin-vue":"^10.0.0","typescript-eslint":"^8.50.0","vue-eslint-parser":"^10.0.0","eslint-config-prettier":"^10.1.8"},"peerDependencies":{"eslint":">=9.0.0","@nuxt/eslint":">=1.0.0","eslint-plugin-vue":">=10.0.0","typescript-eslint":">=8.0.0","vue-eslint-parser":">=10.0.0"},"peerDependenciesMeta":{"@nuxt/eslint":{"optional":true},"eslint-plugin-vue":{"optional":true},"typescript-eslint":{"optional":true},"vue-eslint-parser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-config_2.0.21_1765849728183_0.8111336555178472","host":"s3://npm-registry-packages-npm-production"}},"2.0.22":{"name":"@claylevering/eslint-config","version":"2.0.22","keywords":["eslint-config","eslint-plugin","eslint","eslintplugin","flat-config","node","typescript","vue"],"author":{"name":"Clay Levering"},"license":"MIT","_id":"@claylevering/eslint-config@2.0.22","maintainers":[{"name":"claylevering","email":"claylevering@gmail.com"}],"homepage":"https://github.com/claylevering/claxxon-lint#readme","bugs":{"url":"https://github.com/claylevering/claxxon-lint/issues"},"dist":{"shasum":"feca916ea43dba00f980c739d35e957def6963e9","tarball":"https://registry.npmjs.org/@claylevering/eslint-config/-/eslint-config-2.0.22.tgz","fileCount":17,"integrity":"sha512-5kBWSXD2xQZgAKVL7xnLmsq0ZlX9X6GyQgyp6A39Qp7Tm774sv/hGMv5R8x1hhgUoASYkldOYCvigK4WVq7rbQ==","signatures":[{"sig":"MEYCIQCDVKroHZ4tzkBNyi1ZYmek2GEOMimAZEqJfy9Y6YY/rAIhAJXK9s2RqiYKzoT7igP8wUC/mWFCW9Vn5G2v+bOMfCap","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":58387},"main":"index.js","type":"module","_from":"file:claylevering-eslint-config-2.0.22.tgz","engines":{"node":">=18.0.0"},"exports":{".":"./index.js","./configs/vue":"./configs/vue.js","./configs/node":"./configs/node.js","./configs/nuxt":"./configs/nuxt.js","./configs/typescript":"./configs/typescript.js"},"scripts":{"lint":"pnpm run eslint && pnpm run prettier","test":"pnpm run lint && pnpm run test:unit","eslint":"eslint .","lint:fix":"pnpm run eslint:fix && pnpm run prettier:fix","prettier":"prettier .","test:unit":"vitest run","eslint:fix":"eslint . --fix","test:watch":"vitest","prettier:fix":"prettier . --write","publish:github":"pnpm publish"},"_npmUser":{"name":"claylevering","email":"claylevering@gmail.com"},"_resolved":"/tmp/047cd54dd1f284447db33c989212c2c9/claylevering-eslint-config-2.0.22.tgz","_integrity":"sha512-5kBWSXD2xQZgAKVL7xnLmsq0ZlX9X6GyQgyp6A39Qp7Tm774sv/hGMv5R8x1hhgUoASYkldOYCvigK4WVq7rbQ==","repository":{"url":"git+https://github.com/claylevering/claxxon-lint.git","type":"git"},"_npmVersion":"11.6.2","description":"A set of ESLint configurations supporting flat config format with Vue (and with TypeScript), Node, and TypeScript rules","directories":{},"_nodeVersion":"24.12.0","dependencies":{"globals":"^16.5.0","@eslint/js":"^9.39.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.25","nuxt":"^4.2.2","eslint":"^9.39.2","vitest":"^4.0.15","prettier":"3.7.4","typescript":"^5.9.3","eslint-plugin-vue":"^10.0.0","typescript-eslint":"^8.50.0","vue-eslint-parser":"^10.0.0","eslint-config-prettier":"^10.1.8"},"peerDependencies":{"eslint":">=9.0.0","@nuxt/eslint":">=1.0.0","eslint-plugin-vue":">=10.0.0","typescript-eslint":">=8.0.0","vue-eslint-parser":">=10.0.0"},"peerDependenciesMeta":{"@nuxt/eslint":{"optional":true},"eslint-plugin-vue":{"optional":true},"typescript-eslint":{"optional":true},"vue-eslint-parser":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-config_2.0.22_1767204473590_0.07401396220066747","host":"s3://npm-registry-packages-npm-production"}},"2.0.23":{"name":"@claylevering/eslint-config","author":{"name":"Clay Levering"},"version":"2.0.23","description":"A set of ESLint configurations supporting flat config format with Vue (and with TypeScript), Node, and TypeScript rules","license":"MIT","main":"index.js","type":"module","exports":{".":"./index.js","./configs/node":"./configs/node.js","./configs/typescript":"./configs/typescript.js","./configs/vue":"./configs/vue.js","./configs/nuxt":"./configs/nuxt.js"},"repository":{"type":"git","url":"git+https://github.com/claylevering/claxxon-lint.git"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"scripts":{"eslint":"eslint .","eslint:fix":"eslint . --fix","prettier":"prettier . --check","prettier:fix":"prettier . --write","lint":"pnpm run eslint && pnpm run prettier","lint:fix":"pnpm run eslint:fix && pnpm run prettier:fix","test":"pnpm run lint && pnpm run test:unit","test:unit":"vitest run","test:watch":"vitest","publish:github":"pnpm publish"},"keywords":["eslint-config","eslint-plugin","eslint","eslintplugin","flat-config","node","typescript","vue"],"dependencies":{"@eslint/js":"^9.39.2","globals":"^16.5.0"},"engines":{"node":">=20.19.0"},"devDependencies":{"eslint":"^9.39.2","eslint-config-prettier":"^10.1.8","eslint-plugin-vue":"^10.0.0","nuxt":"^4.2.2","prettier":"3.7.4","typescript":"^5.9.3","typescript-eslint":"^8.51.0","vitest":"^4.0.16","vue":"^3.5.26","vue-eslint-parser":"^10.0.0"},"peerDependencies":{"@nuxt/eslint":">=1.0.0","eslint":">=9.0.0","eslint-plugin-vue":">=10.0.0","typescript-eslint":">=8.0.0","vue-eslint-parser":">=10.0.0"},"peerDependenciesMeta":{"@nuxt/eslint":{"optional":true},"eslint-plugin-vue":{"optional":true},"typescript-eslint":{"optional":true},"vue-eslint-parser":{"optional":true}},"gitHead":"5c7d67353807e9bb5905749b942499c435a4c716","_id":"@claylevering/eslint-config@2.0.23","bugs":{"url":"https://github.com/claylevering/claxxon-lint/issues"},"homepage":"https://github.com/claylevering/claxxon-lint#readme","_nodeVersion":"24.11.1","_npmVersion":"11.6.2","dist":{"integrity":"sha512-/3rRLnpFlLYC05I8iXHaK0OFb6WUeFANOYv1Wq1gHUF1/ILskswH2Jsnos3rXOUsOcWph06sKygiy671OZNycg==","shasum":"c5260d335c1b5b9cbecee3fa00950a87a193156c","tarball":"https://registry.npmjs.org/@claylevering/eslint-config/-/eslint-config-2.0.23.tgz","fileCount":17,"unpackedSize":58257,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDWPh1iDx8+WWIfxnIRAxS4NlsZfkkPPC59pgSUvP9c2QIgRKSOz0D92VGeYNzS8NI1L3KJB8u8uXERbpE3VfJRdaw="}]},"_npmUser":{"name":"claylevering","email":"claylevering@gmail.com"},"directories":{},"maintainers":[{"name":"claylevering","email":"claylevering@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/eslint-config_2.0.23_1772662765867_0.9803811567853669"},"_hasShrinkwrap":false}},"time":{"created":"2025-11-13T22:18:36.116Z","modified":"2026-03-04T22:19:26.150Z","1.0.2":"2025-11-13T22:18:36.714Z","1.0.3":"2025-11-13T22:21:57.525Z","1.0.4":"2025-11-13T22:26:44.618Z","1.0.5":"2025-11-13T22:53:16.672Z","1.0.6":"2025-11-13T23:25:28.210Z","1.0.7":"2025-11-13T23:31:20.838Z","1.0.8":"2025-11-13T23:54:27.804Z","1.0.10":"2025-11-20T01:54:10.846Z","1.0.11":"2025-11-20T01:58:54.983Z","1.0.13":"2025-11-20T16:14:24.592Z","1.0.14":"2025-11-20T16:29:51.730Z","1.0.15":"2025-11-20T16:38:16.382Z","1.0.22":"2025-12-09T16:19:49.628Z","1.0.23":"2025-12-09T16:45:10.154Z","1.0.24":"2025-12-09T20:09:36.681Z","1.0.26":"2025-12-09T20:44:09.094Z","2.0.5":"2025-12-09T23:47:20.644Z","2.0.6":"2025-12-10T01:09:48.427Z","2.0.7":"2025-12-10T16:33:05.759Z","2.0.8":"2025-12-10T17:09:29.677Z","2.0.9":"2025-12-10T18:05:23.190Z","2.0.11":"2025-12-10T18:48:12.710Z","2.0.14":"2025-12-15T16:48:37.241Z","2.0.15":"2025-12-15T17:07:49.413Z","2.0.16":"2025-12-15T17:16:22.006Z","2.0.17":"2025-12-15T17:19:11.393Z","2.0.18":"2025-12-15T17:22:38.920Z","2.0.19":"2025-12-15T18:20:53.675Z","2.0.20":"2025-12-15T18:41:57.884Z","2.0.21":"2025-12-16T01:48:48.334Z","2.0.22":"2025-12-31T18:07:53.751Z","2.0.23":"2026-03-04T22:19:26.022Z"},"bugs":{"url":"https://github.com/claylevering/claxxon-lint/issues"},"author":{"name":"Clay Levering"},"license":"MIT","homepage":"https://github.com/claylevering/claxxon-lint#readme","keywords":["eslint-config","eslint-plugin","eslint","eslintplugin","flat-config","node","typescript","vue"],"repository":{"type":"git","url":"git+https://github.com/claylevering/claxxon-lint.git"},"description":"A set of ESLint configurations supporting flat config format with Vue (and with TypeScript), Node, and TypeScript rules","maintainers":[{"name":"claylevering","email":"claylevering@gmail.com"}],"readme":"# @claylevering/claxxon-lint\n\n[![Publish Package to npm](https://github.com/claylevering/claxxon-lint/actions/workflows/publish.yaml/badge.svg)](https://github.com/claylevering/claxxon-lint/actions/workflows/publish.yaml)\n\nA comprehensive ESLint plugin providing shareable configurations in ESLint flat config format (ESLint 9+) with support for Vue, Node.js, and TypeScript projects. Includes custom rules for Vue/Pinia development patterns.\n\n## TOC\n\n- [@claylevering/claxxon-lint](#clayleveringclaxxon-lint)\n    - [TOC](#toc)\n    - [Features](#features)\n    - [Installation](#installation)\n        - [Base Installation](#base-installation)\n        - [Framework-Specific Dependencies](#framework-specific-dependencies)\n            - [For Node.js/JavaScript Only](#for-nodejsjavascript-only)\n            - [For TypeScript Projects](#for-typescript-projects)\n            - [For Vue 3 Projects](#for-vue-3-projects)\n            - [For Nuxt Projects](#for-nuxt-projects)\n    - [Usage](#usage)\n        - [Node.js/JavaScript Projects](#nodejsjavascript-projects)\n        - [TypeScript Projects](#typescript-projects)\n        - [Vue 3 Projects](#vue-3-projects)\n    - [Framework configurations](#framework-configurations)\n        - [Nuxt projects](#nuxt-projects)\n            - [Nuxt Configuration](#nuxt-configuration)\n        - [Using Custom Rules](#using-custom-rules)\n        - [Prettier note](#prettier-note)\n            - [Vue w/Prettier](#vue-wprettier)\n            - [Nuxt + Prettier](#nuxt--prettier)\n    - [Custom Rule Definitions](#custom-rule-definitions)\n        - [`pinia-store-top-level`](#pinia-store-top-level)\n        - [`no-switch-statements`](#no-switch-statements)\n        - [`no-vue-global-imports`](#no-vue-global-imports)\n        - [`pinia-store-pattern`](#pinia-store-pattern)\n    - [Built-in Rule Configurations](#built-in-rule-configurations)\n        - [`padding-line-between-statements` (warn, auto-fixable)](#padding-line-between-statements-warn-auto-fixable)\n    - [Requirements](#requirements)\n    - [License](#license)\n    - [Repository](#repository)\n\n## Features\n\n- **ESLint 9+ Flat Config Format** - Modern array-based configuration\n- **Multiple Presets** - Choose configurations for your stack:\n    - Node.js/JavaScript\n    - TypeScript\n    - Vue 3\n    - Vue 3 + TypeScript\n    - Nuxt 4\n    - Nuxt 4 + TypeScript\n- **Custom Rules** - Specialized rules for Vue and Pinia development\n- **Opinionated Defaults** - Battle-tested rules for production applications\n\n## Installation\n\n### Base Installation\n\nAll projects require the base package and ESLint:\n\n```bash\npnpm add -D @claylevering/eslint-config eslint\n```\n\n### Framework-Specific Dependencies\n\nDepending on which configuration you're using, install the appropriate peer dependencies:\n\n#### For Node.js/JavaScript Only\n\nNo additional dependencies needed! The base installation is sufficient.\n\n#### For TypeScript Projects\n\n```bash\npnpm add -D typescript-eslint\n```\n\n#### For Vue 3 Projects\n\n```bash\npnpm add -D eslint-plugin-vue vue-eslint-parser typescript-eslint\n```\n\n**Note:** `typescript-eslint` is required even for pure JavaScript Vue projects to support the hybrid parser that allows mixing JS and TS components.\n\n#### For Nuxt Projects\n\n```bash\npnpm add -D @nuxt/eslint eslint-plugin-vue vue-eslint-parser typescript-eslint\n```\n\n## Usage\n\nAll examples use the `defineConfig()` helper from the [ESLint package](https://eslint.org/docs/latest/use/configure/configuration-files#configuration-file) to create flat config arrays.\n\n### Node.js/JavaScript Projects\n\nCreate `eslint.config.js` in your project root:\n\n```javascript\nimport { defineConfig } from 'eslint/config';\nimport claxxonLint from '@claylevering/eslint-config';\n\nexport default defineConfig([\n    ...claxxonLint.configs['node'],\n\n    {\n        // Your custom configurations here\n    }\n]);\n```\n\n### TypeScript Projects\n\n```javascript\nimport { defineConfig } from 'eslint/config';\nimport claxxonLint from '@claylevering/eslint-config';\n\nexport default defineConfig([\n    ...claxxonLint.configs['typescript'], // Includes Node config + TypeScript rules\n\n    {\n        // Your custom configurations here\n    }\n]);\n```\n\n### Vue 3 Projects\n\nThe `vue` config supports hybrid JavaScript and TypeScript Vue components in the same project:\n\n```javascript\nimport { defineConfig } from 'eslint/config';\nimport claxxonLint from '@claylevering/eslint-config';\n\nexport default defineConfig([\n    ...claxxonLint.configs['vue'], // Supports both JS and TS Vue components + standalone .ts files\n\n    {\n        // Your custom configurations here\n    }\n]);\n```\n\n## Framework configurations\n\nWhen you're dealing with specific frameworks (e.g. `Nuxt`) simply spreading the configurations may not always work.\n\n### Nuxt projects\n\nThe [eslint Nuxt plugin](https://eslint.nuxt.com/) loads the [eslint-plugin-vue](https://eslint.vuejs.org/)\nplugin during their `withNuxt()` method and eslint likes to barf if differing / conflicting plugins exist from\nwithin the same configuration. I suppose you could leverage the `FlatConfigComposer` / etc. from the\n[Nuxt plugin itself](https://eslint.nuxt.com/packages/module#config-customizations) but the whole intention of\nthis particular library is to make this as dead-ass simple as possible for config. So here you go:\n\n#### Nuxt Configuration\n\n```javascript\nimport claxxonLint from '@claylevering/eslint-config';\nimport withNuxt from './.nuxt/eslint.config.mjs';\n\nconst claxxonNuxtConfig = claxxonLint.configs['nuxt'];\n\nexport default withNuxt({\n    // Your custom config options / objects\n}).prepend([\n    /**\n     * Prepend the custom Claxxon configurations. This includes Node and Vue\n     * configurations but WITHOUT the Vue plugin itself so Nuxt/ESLint don't conflict.\n     * Supports both JavaScript and TypeScript Vue components.\n     */\n    ...claxxonNuxtConfig\n]);\n```\n\n### Using Custom Rules\n\nAll configurations include custom rules automatically. To use individual custom rules:\n\n```javascript\nimport claxxonLint from '@claylevering/eslint-config';\n\nexport default [\n    {\n        plugins: {\n            claxxon: claxxonLint\n        },\n\n        rules: {\n            'claxxon/pinia-store-top-level': 'error',\n            'claxxon/no-switch-statements': 'warn',\n            'claxxon/no-vue-global-imports': 'error',\n            'claxxon/pinia-store-pattern': 'error'\n        }\n    }\n];\n```\n\n### Prettier note\n\nWhile these rules are already opinionated-AF, I recognize that some folks don't love [Prettier](https://prettier.io/)\nand just want some established rules for safety (which is totally fine). That being said - if you wanted to add\nthe [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier) to your config so that those two\nplace nicely with each other, just have it be the last thing in your config. Here's how:\n\n#### Vue w/Prettier\n\n```javascript\nimport claxxonLint from '@claylevering/eslint-config';\nimport eslintConfigPrettier from 'eslint-config-prettier/flat';\n\nexport default defineConfig([\n    ...claxxonLint.configs['vue'], // For Vue SFC files\n\n    {\n        // Your custom configurations here\n    },\n\n    eslintConfigPrettier // Prettier goes last to disable conflicting rules\n]);\n```\n\n#### Nuxt + Prettier\n\n```javascript\nimport claxxonLint from '@claylevering/eslint-config';\nimport withNuxt from './.nuxt/eslint.config.mjs';\nimport eslintConfigPrettier from 'eslint-config-prettier/flat';\n\nconst claxxonNuxtConfig = claxxonLint.configs['nuxt'];\n\nexport default withNuxt({\n    // Your custom config options / objects\n})\n    .prepend([\n        /**\n         * Prepend the custom Claxxon configurations. This includes Node and Vue\n         * configurations but WITHOUT the Vue plugin itself so Nuxt/ESLint don't conflict.\n         * Supports both JavaScript and TypeScript Vue components.\n         */\n        ...claxxonNuxtConfig\n    ])\n    .append([\n        // Prettier goes last to disable conflicting rules\n        eslintConfigPrettier\n    ]);\n```\n\n## Custom Rule Definitions\n\n### `pinia-store-top-level`\n\nEnforces Pinia store definitions only at top-level scope to prevent stores being created in loops or conditionals.\n\n**Valid:**\n\n```javascript\n// Top-level in script setup\nconst myPiniaStore = useMyPiniaStore();\n\n// In setup function\nexport default {\n    setup() {\n        const myPiniaStore = useMyPiniaStore();\n    }\n};\n```\n\n**Invalid:**\n\n```javascript\n// Inside conditional\nif (condition) {\n    const myPiniaStore = useMyPiniaStore(); // ❌ Error\n}\n\n// Inside loop\nfor (let i = 0; i < 10; i += 1) {\n    const store = useMyStore(); // ❌ Error\n}\n```\n\n### `no-switch-statements`\n\nDisallows switch statements to prevent fallthrough bugs and improve readability.\n\n**Invalid:**\n\n```javascript\nswitch (\n    value // ❌ Error\n) {\n    case 1:\n        return 'one';\n    default:\n        return 'other';\n}\n```\n\n**Valid:**\n\n```javascript\nif (value === 1) {\n    return 'one';\n} else {\n    return 'other';\n}\n```\n\n### `no-vue-global-imports`\n\nPrevents importing Vue 3 compiler macros (`defineProps`, `defineEmits`, `defineExpose`, `defineOptions`, `defineSlots`, `defineModel`, `withDefaults`) that are automatically available in `<script setup>`. This is a complementary rule to [`vue/no-import-compiler-macros`](https://eslint.vuejs.org/rules/no-import-compiler-macros).\n\nNote: `defineComponent` and `defineAsyncComponent` are **not** flagged as they are runtime functions that must be imported.\n\n**Invalid:**\n\n```javascript\nimport { defineProps, defineEmits } from 'vue'; // ❌ Error\n```\n\n**Valid:**\n\n```javascript\n// Compiler macros: just use them directly in <script setup>\nconst props = defineProps({...});\nconst emit = defineEmits(['update']);\n\n// Runtime functions: these must be imported\nimport { defineComponent, defineAsyncComponent } from 'vue'; // ✅ OK\n```\n\n### `pinia-store-pattern`\n\nEnforces defining stores as variables before accessing properties.\n\n**Invalid:**\n\n```javascript\nconst userId = useMyPiniaStore().id; // ❌ Error\n```\n\n**Valid:**\n\n```javascript\nconst myPiniaStore = useMyPiniaStore();\nconst userId = userStore.id;\n```\n\n## Built-in Rule Configurations\n\n### `padding-line-between-statements` (warn, auto-fixable)\n\nRequires blank lines around block statements (if, for, while, switch, try) for improved readability. This prevents code from being too compressed and makes control flow easier to scan.\n\n**Before (triggers warning):**\n\n```javascript\nconst onClickEvent = () => {\n    if (!myMovieRef.value) {\n        return;\n    }\n    if (myMovieRef.value?.title_id) {\n        const title = myMovieRef.value?.title;\n        if (title) {\n            modalStore.openModal({ ... });\n        }\n    }\n};\n```\n\n**After (auto-fixed):**\n\n```javascript\nconst onClickEvent = () => {\n    if (!myMovieRef.value) {\n        return;\n    }\n\n    if (myMovieRef.value?.title_id) {\n        const title = myMovieRef.value?.title;\n\n        if (title) {\n            modalStore.openModal({ ... });\n        }\n    }\n};\n```\n\n## Requirements\n\n- **ESLint** 9.0.0 or higher (peer dependency, always required)\n- **Node.js** 18 or higher (recommended)\n- **Framework-specific packages** (optional peer dependencies):\n    - `typescript-eslint` >= 8.0.0 for TypeScript support\n    - `eslint-plugin-vue` >= 10.0.0 for Vue support\n    - `vue-eslint-parser` >= 10.0.0 for Vue support\n    - `@nuxt/eslint` >= 1.0.0 for Nuxt support\n\nInstall only the packages you need for your project type (see Installation section above).\n\n## License\n\nMIT © Clay Levering\n\n## Repository\n\n[https://github.com/claylevering/claxxon-lint](https://github.com/claylevering/claxxon-lint)\n","readmeFilename":"README.md"}