{"_id":"@the-i18n-kit/eslint-plugin-vue","_rev":"5-8be44e36c4a3c718116e713c5e2fc294","name":"@the-i18n-kit/eslint-plugin-vue","dist-tags":{"latest":"0.2.2"},"versions":{"0.1.1":{"name":"@the-i18n-kit/eslint-plugin-vue","version":"0.1.1","keywords":["eslint","eslint-plugin","i18n","vue-i18n","nuxt","layers","internationalization","developer-tools"],"author":{"name":"Fabian Kirchhoff"},"license":"MIT","_id":"@the-i18n-kit/eslint-plugin-vue@0.1.1","maintainers":[{"name":"fabian-kho","email":"fabian@fabkho.dev"}],"homepage":"https://github.com/fabkho/the-i18n-kit#readme","bugs":{"url":"https://github.com/fabkho/the-i18n-kit/issues"},"dist":{"shasum":"37dd966b813147708635246e400706d283ad1bdb","tarball":"https://registry.npmjs.org/@the-i18n-kit/eslint-plugin-vue/-/eslint-plugin-vue-0.1.1.tgz","fileCount":5,"integrity":"sha512-bAu9W9zILG92thHcStagPCEO7SKy5kI9uJ3D6SpTlWhc9n2YKdowrHttaNqrSBXu/wLDMWjj8/aoBbDSKsIuQw==","signatures":[{"sig":"MEUCIC5HxesuwZfE4UoGHChxyIh3YoZWUB9gc+KnS41l1DKxAiEAvAoV1GSRz3nz8IFGMt2Yhpr/XwA91pb3WZhDFEzB2mY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22321},"main":"./dist/index.js","type":"module","_from":"file:the-i18n-kit-eslint-plugin-vue-0.1.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest run","build":"tsdown","typecheck":"tsc --noEmit"},"_npmUser":{"name":"fabian-kho","email":"fabian@fabkho.dev"},"_resolved":"/tmp/87b1fc0cd946264982c4bfcadb4b9712/the-i18n-kit-eslint-plugin-vue-0.1.1.tgz","_integrity":"sha512-bAu9W9zILG92thHcStagPCEO7SKy5kI9uJ3D6SpTlWhc9n2YKdowrHttaNqrSBXu/wLDMWjj8/aoBbDSKsIuQw==","repository":{"url":"git+https://github.com/fabkho/the-i18n-kit.git","type":"git","directory":"packages/eslint-plugin-vue"},"_npmVersion":"10.9.8","description":"Authoring rules that keep the i18n kit's scanner sound, and a layer-aware preset over @intlify/eslint-plugin-vue-i18n","directories":{},"_nodeVersion":"22.23.2","dependencies":{"jiti":"^2.7.0","the-i18n-cli":"^5.0.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.0.0","tsdown":"^0.12.0","vitest":"^3.2.0","@types/node":"^22.0.0","@types/estree":"^1.0.9","vue-eslint-parser":"^10.0.0","@intlify/eslint-plugin-vue-i18n":"^4.5.1"},"peerDependencies":{"eslint":"^9.10.0","@intlify/eslint-plugin-vue-i18n":"^3.0.0 || ^4.0.0"},"peerDependenciesMeta":{"@intlify/eslint-plugin-vue-i18n":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin-vue_0.1.1_1787603573330_0.06316730308690555","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@the-i18n-kit/eslint-plugin-vue","version":"0.1.2","keywords":["eslint","eslint-plugin","i18n","vue-i18n","nuxt","layers","internationalization","developer-tools"],"author":{"name":"Fabian Kirchhoff"},"license":"MIT","_id":"@the-i18n-kit/eslint-plugin-vue@0.1.2","maintainers":[{"name":"fabian-kho","email":"fabian@fabkho.dev"}],"homepage":"https://github.com/fabkho/the-i18n-kit#readme","bugs":{"url":"https://github.com/fabkho/the-i18n-kit/issues"},"dist":{"shasum":"5d2f73924866456808b57918ca0f49e0b806e108","tarball":"https://registry.npmjs.org/@the-i18n-kit/eslint-plugin-vue/-/eslint-plugin-vue-0.1.2.tgz","fileCount":5,"integrity":"sha512-NxMMrJmJ2BTEO2874oI8/TBeWbhn8Zw9ixqiLlBJKB4QOvRZaRD+FVySg0pYljaeIwFRcvX1rQ0kSDKKgrD02A==","signatures":[{"sig":"MEUCIQDbYJbFcPeY39odbajacETaEdyjwcW1RwXci3HvlI82OQIgaAKwoR8/UrHX46er77eUS0WvDgMBmvQUTgpoR0qyEmw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24230},"main":"./dist/index.js","type":"module","_from":"file:the-i18n-kit-eslint-plugin-vue-0.1.2.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest run","build":"tsdown","typecheck":"tsc --noEmit"},"_npmUser":{"name":"fabian-kho","email":"fabian@fabkho.dev"},"_resolved":"/tmp/4542e3618c6a76d299c9009a6bdf697c/the-i18n-kit-eslint-plugin-vue-0.1.2.tgz","_integrity":"sha512-NxMMrJmJ2BTEO2874oI8/TBeWbhn8Zw9ixqiLlBJKB4QOvRZaRD+FVySg0pYljaeIwFRcvX1rQ0kSDKKgrD02A==","repository":{"url":"git+https://github.com/fabkho/the-i18n-kit.git","type":"git","directory":"packages/eslint-plugin-vue"},"_npmVersion":"10.9.8","description":"Authoring rules that keep the i18n kit's scanner sound, and a layer-aware preset over @intlify/eslint-plugin-vue-i18n","directories":{},"_nodeVersion":"22.23.2","dependencies":{"jiti":"^2.7.0","the-i18n-cli":"^5.0.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.0.0","tsdown":"^0.12.0","vitest":"^3.2.0","@types/node":"^22.0.0","@types/estree":"^1.0.9","vue-eslint-parser":"^10.0.0","@intlify/eslint-plugin-vue-i18n":"^4.5.1"},"peerDependencies":{"eslint":"^9.10.0","@intlify/eslint-plugin-vue-i18n":"^3.0.0 || ^4.0.0"},"peerDependenciesMeta":{"@intlify/eslint-plugin-vue-i18n":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin-vue_0.1.2_1787604623081_0.40039264036871125","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@the-i18n-kit/eslint-plugin-vue","version":"0.2.0","keywords":["eslint","eslint-plugin","i18n","vue-i18n","nuxt","layers","internationalization","developer-tools"],"author":{"name":"Fabian Kirchhoff"},"license":"MIT","_id":"@the-i18n-kit/eslint-plugin-vue@0.2.0","maintainers":[{"name":"fabian-kho","email":"fabian@fabkho.dev"}],"homepage":"https://github.com/fabkho/the-i18n-kit#readme","bugs":{"url":"https://github.com/fabkho/the-i18n-kit/issues"},"dist":{"shasum":"38ff5571d59db59286b85fb35daa949c146158f3","tarball":"https://registry.npmjs.org/@the-i18n-kit/eslint-plugin-vue/-/eslint-plugin-vue-0.2.0.tgz","fileCount":5,"integrity":"sha512-atYuh/JIZblgBwOEBApiIiOl1jrjf2ckXDShxRQTcZAjQ7IhbOy1aqxuOqDrqiuIc5dGm5XW+Ll2Cpaucvvcyg==","signatures":[{"sig":"MEUCIQC0LdjNmRhK/DOf5v2z08JD9mvXWyqL42tVHvFa8oMMWwIgfEm/InEuxBF6RhPioAj9bJZF8lWbn7BWJhElAYnTpEY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24250},"main":"./dist/index.js","type":"module","_from":"file:the-i18n-kit-eslint-plugin-vue-0.2.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest run","build":"tsdown","typecheck":"tsc --noEmit"},"_npmUser":{"name":"fabian-kho","email":"fabian@fabkho.dev"},"_resolved":"/tmp/a058e46f53a525c4a6ae2798f458ebb2/the-i18n-kit-eslint-plugin-vue-0.2.0.tgz","_integrity":"sha512-atYuh/JIZblgBwOEBApiIiOl1jrjf2ckXDShxRQTcZAjQ7IhbOy1aqxuOqDrqiuIc5dGm5XW+Ll2Cpaucvvcyg==","repository":{"url":"git+https://github.com/fabkho/the-i18n-kit.git","type":"git","directory":"packages/eslint-plugin-vue"},"_npmVersion":"10.9.8","description":"Authoring rules that keep the i18n kit's scanner sound, and a layer-aware preset over @intlify/eslint-plugin-vue-i18n","directories":{},"_nodeVersion":"22.23.2","dependencies":{"jiti":"^2.7.0","@the-i18n-kit/cli":"^6.0.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.0.0","tsdown":"^0.12.0","vitest":"^3.2.0","@types/node":"^22.0.0","@types/estree":"^1.0.9","vue-eslint-parser":"^10.0.0","@intlify/eslint-plugin-vue-i18n":"^4.5.1"},"peerDependencies":{"eslint":"^9.10.0","@intlify/eslint-plugin-vue-i18n":"^3.0.0 || ^4.0.0"},"peerDependenciesMeta":{"@intlify/eslint-plugin-vue-i18n":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin-vue_0.2.0_1788698289426_0.9658807486147769","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@the-i18n-kit/eslint-plugin-vue","version":"0.2.1","keywords":["eslint","eslint-plugin","i18n","vue-i18n","nuxt","layers","internationalization","developer-tools"],"author":{"name":"Fabian Kirchhoff"},"license":"MIT","_id":"@the-i18n-kit/eslint-plugin-vue@0.2.1","maintainers":[{"name":"fabian-kho","email":"fabian@fabkho.dev"}],"homepage":"https://github.com/fabkho/the-i18n-kit#readme","bugs":{"url":"https://github.com/fabkho/the-i18n-kit/issues"},"dist":{"shasum":"c0e62779a7e3adfedeecd0345d6511d60824f4f1","tarball":"https://registry.npmjs.org/@the-i18n-kit/eslint-plugin-vue/-/eslint-plugin-vue-0.2.1.tgz","fileCount":9,"integrity":"sha512-AfRSPneN+DvlAS+Z7bAcdbUYC0wrxVr3l0MLTSaYhzUgitIS4kDhu5Cs2mTGYZV8jiuDJCvppmq6dqOZM+OI8A==","signatures":[{"sig":"MEQCIGIGKyduG+IPQ7LZxfNUQBeRpNgJKjCUUmp5TB5yDHczAiAIHtxN/newAh/Niy2C5j8hJCMbqbTZmKhvO8uVPqhhKA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29651},"main":"./dist/index.js","type":"module","_from":"file:the-i18n-kit-eslint-plugin-vue-0.2.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./nuxt":{"types":"./dist/nuxt.d.ts","import":"./dist/nuxt.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest run","build":"tsdown","typecheck":"tsc --noEmit"},"_npmUser":{"name":"fabian-kho","email":"fabian@fabkho.dev"},"_resolved":"/tmp/b7a585d610c9e6721897e18ce4525b15/the-i18n-kit-eslint-plugin-vue-0.2.1.tgz","_integrity":"sha512-AfRSPneN+DvlAS+Z7bAcdbUYC0wrxVr3l0MLTSaYhzUgitIS4kDhu5Cs2mTGYZV8jiuDJCvppmq6dqOZM+OI8A==","repository":{"url":"git+https://github.com/fabkho/the-i18n-kit.git","type":"git","directory":"packages/eslint-plugin-vue"},"_npmVersion":"10.9.8","description":"Authoring rules that keep the i18n kit's scanner sound, and a layer-aware preset over @intlify/eslint-plugin-vue-i18n","directories":{},"_nodeVersion":"22.23.2","dependencies":{"jiti":"^2.7.0","@the-i18n-kit/cli":"^7.0.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.0.0","tsdown":"^0.12.0","vitest":"^3.2.0","@types/node":"^22.0.0","@types/estree":"^1.0.9","vue-eslint-parser":"^10.0.0","@intlify/eslint-plugin-vue-i18n":"^4.5.1"},"peerDependencies":{"eslint":"^9.10.0","@intlify/eslint-plugin-vue-i18n":"^3.0.0 || ^4.0.0"},"peerDependenciesMeta":{"@intlify/eslint-plugin-vue-i18n":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin-vue_0.2.1_1788718649897_0.7504443455086542","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@the-i18n-kit/eslint-plugin-vue","version":"0.2.2","description":"Authoring rules that keep the i18n kit's scanner sound, and a layer-aware preset over @intlify/eslint-plugin-vue-i18n","keywords":["eslint","eslint-plugin","i18n","vue-i18n","nuxt","layers","internationalization","developer-tools"],"author":{"name":"Fabian Kirchhoff"},"license":"MIT","type":"module","repository":{"type":"git","url":"git+https://github.com/fabkho/the-i18n-kit.git","directory":"packages/eslint-plugin-vue"},"main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./nuxt":{"types":"./dist/nuxt.d.ts","import":"./dist/nuxt.js"},"./package.json":"./package.json"},"dependencies":{"jiti":"^2.7.0","@the-i18n-kit/cli":"^8.0.1"},"peerDependencies":{"@intlify/eslint-plugin-vue-i18n":"^3.0.0 || ^4.0.0","eslint":"^9.10.0"},"peerDependenciesMeta":{"@intlify/eslint-plugin-vue-i18n":{"optional":true}},"devDependencies":{"@intlify/eslint-plugin-vue-i18n":"^4.5.1","@types/estree":"^1.0.9","@types/node":"^22.0.0","eslint":"^9.0.0","tsdown":"^0.12.0","vitest":"^3.2.0","vue-eslint-parser":"^10.0.0"},"engines":{"node":">=18.0.0"},"scripts":{"build":"tsdown","test":"vitest run","typecheck":"tsc --noEmit"},"_id":"@the-i18n-kit/eslint-plugin-vue@0.2.2","bugs":{"url":"https://github.com/fabkho/the-i18n-kit/issues"},"homepage":"https://github.com/fabkho/the-i18n-kit#readme","_integrity":"sha512-mNZ3kZsZ2TZFEvwf0IhVOIuK55u6lCsnnN7nUmWuA/SrKO4O7H5kg+TdRB6jfEN2Bjaek4kkcA7+pDaRxOxSvA==","_resolved":"/tmp/eccdbaa68768de7d8c3fc19365591655/the-i18n-kit-eslint-plugin-vue-0.2.2.tgz","_from":"file:the-i18n-kit-eslint-plugin-vue-0.2.2.tgz","_nodeVersion":"22.23.2","_npmVersion":"10.9.8","dist":{"integrity":"sha512-mNZ3kZsZ2TZFEvwf0IhVOIuK55u6lCsnnN7nUmWuA/SrKO4O7H5kg+TdRB6jfEN2Bjaek4kkcA7+pDaRxOxSvA==","shasum":"0d5f8d239c377643bfd3da7d0a7a8fc63950d2bb","tarball":"https://registry.npmjs.org/@the-i18n-kit/eslint-plugin-vue/-/eslint-plugin-vue-0.2.2.tgz","fileCount":9,"unpackedSize":29897,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIGPQPYkPkWOcOKmYignqv+ZhengbzbkhvQtT/kesksSSAiAOPumm83XL6cQJpQoHDwprLP5yBmF0oV0WhxXus90uOw=="}]},"_npmUser":{"name":"fabian-kho","email":"fabian@fabkho.dev"},"directories":{},"maintainers":[{"name":"fabian-kho","email":"fabian@fabkho.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/eslint-plugin-vue_0.2.2_1788766214482_0.8182409849711421"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-24T20:32:53.163Z","modified":"2026-09-07T07:30:14.805Z","0.1.1":"2026-08-24T20:32:53.468Z","0.1.2":"2026-08-24T20:50:23.245Z","0.2.0":"2026-09-06T12:38:09.564Z","0.2.1":"2026-09-06T18:17:30.048Z","0.2.2":"2026-09-07T07:30:14.624Z"},"bugs":{"url":"https://github.com/fabkho/the-i18n-kit/issues"},"author":{"name":"Fabian Kirchhoff"},"license":"MIT","homepage":"https://github.com/fabkho/the-i18n-kit#readme","keywords":["eslint","eslint-plugin","i18n","vue-i18n","nuxt","layers","internationalization","developer-tools"],"repository":{"type":"git","url":"git+https://github.com/fabkho/the-i18n-kit.git","directory":"packages/eslint-plugin-vue"},"description":"Authoring rules that keep the i18n kit's scanner sound, and a layer-aware preset over @intlify/eslint-plugin-vue-i18n","maintainers":[{"name":"fabian-kho","email":"fabian@fabkho.dev"}],"readme":"# @the-i18n-kit/eslint-plugin-vue\n\nESLint rules for [the i18n kit](https://github.com/fabkho/the-i18n-kit): two\nauthoring rules that keep the orphan scanner sound, and a layer-aware preset that\nchecks key existence per app against the layers it consumes. Lints `.vue`, `.ts`,\n`.js`, `.mjs` (and `.tsx`/`.jsx` through `layerAware()`).\n\n### 📖 [Documentation](https://fabkho.github.io/the-i18n-kit/eslint-plugin/install-and-rules)\n\n## Install\n\n```bash\npnpm add -D @the-i18n-kit/eslint-plugin-vue\n```\n\n```js\n// eslint.config.mjs\nimport i18nKit, { layerAware } from '@the-i18n-kit/eslint-plugin-vue'\n\nexport default [\n  ...i18nKit.configs.recommended,\n  ...await layerAware(), // needs @intlify/eslint-plugin-vue-i18n and @the-i18n-kit/cli\n]\n```\n\nWith `@nuxt/eslint`, register the addon instead of spreading the blocks:\n\n```ts\n// nuxt.config.ts\nimport { i18nKitEslintAddon } from '@the-i18n-kit/eslint-plugin-vue/nuxt'\n\nexport default defineNuxtConfig({\n  modules: ['@nuxt/eslint'],\n  hooks: { 'eslint:config:addons': addons => addons.push(i18nKitEslintAddon()) },\n})\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md"}