{"_id":"@blouflashdb/eslint-plugin-pinia","_rev":"2-c34b0e847f9a91c8dd461a9c08c879b6","name":"@blouflashdb/eslint-plugin-pinia","dist-tags":{"latest":"0.0.2"},"versions":{"0.0.1":{"name":"@blouflashdb/eslint-plugin-pinia","version":"0.0.1","keywords":["eslint","eslint-plugin","eslint-config","vue","vuejs","pinia","piniajs","rules"],"author":{"url":"https://github.com/blouflashdb","name":"Daniel Schmitz"},"license":"MIT","_id":"@blouflashdb/eslint-plugin-pinia@0.0.1","maintainers":[{"name":"blouflashdb","email":"daniel.bugaew@outlook.com"}],"homepage":"https://github.com/blouflashdb/eslint-plugin-pinia#readme","bugs":{"url":"https://github.com/blouflashdb/eslint-plugin-pinia/issues"},"dist":{"shasum":"63555eaaa283f10fe3607794c802b63cc1889b89","tarball":"https://registry.npmjs.org/@blouflashdb/eslint-plugin-pinia/-/eslint-plugin-pinia-0.0.1.tgz","fileCount":8,"integrity":"sha512-foh/caJEgNRmVbk9afrH4s2I2g9HQ9TQIk68FDs8Vz1XIXNiMBxTzBNc1y1659NX7Bp0ZRXpQRLokicYqyfZ4A==","signatures":[{"sig":"MEYCIQDy5D4eBIYhQn4IGBH276kFD9PHw8BdjIA1Z1LiLxbJzAIhAKT8Gg3UGMvVK5CpCmNPJ1PVyhd6IUiZmAfOnpuGrQcd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4261913},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">= 22"},"exports":{".":"./dist/index.js"},"gitHead":"c0ddababd9c4463e2e92706b399d2138d21db971","release":{"branches":["main"]},"scripts":{"bump":"npm run build && bumpp package.json --commit --push --tag","lint":"eslint","stub":"obuild --stub","build":"tsdown --clean --dts","update":"tsx scripts/update","release":"npm run bump && npm publish","lint:fix":"eslint --fix","typecheck":"tsc --noEmit"},"_npmUser":{"name":"blouflashdb","email":"daniel.bugaew@outlook.com"},"repository":{"url":"git+https://github.com/blouflashdb/eslint-plugin-pinia.git","type":"git"},"_npmVersion":"11.6.2","description":"ESLint plugin for Pinia best practices","directories":{},"_nodeVersion":"25.0.0","_hasShrinkwrap":false,"devDependencies":{"bumpp":"^10.3.1","pinia":"^3.0.3","eslint":"^9.38.0","tsdown":"^0.15.12","prettier":"^3.6.2","typescript":"^5.9.3","@types/node":"^24.9.2","@tsconfig/node22":"^22.0.2","@tsconfig/node-ts":"^23.6.1","@antfu/eslint-config":"^6.1.0","eslint-plugin-format":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin-pinia_0.0.1_1761820219629_0.6070712117840267","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@blouflashdb/eslint-plugin-pinia","type":"module","version":"0.0.2","description":"ESLint plugin for Pinia best practices","author":{"name":"Daniel Schmitz","url":"https://github.com/blouflashdb"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/blouflashdb/eslint-plugin-pinia.git"},"keywords":["eslint","eslint-plugin","eslint-config","eslint-flat-config","antfu","vue","vuejs","pinia","piniajs","rules"],"exports":{".":"./dist/index.js"},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">= 22"},"scripts":{"build":"tsdown --clean --dts","lint":"eslint","lint:fix":"eslint --fix","release":"npm run bump && npm publish","bump":"npm run build && bumpp package.json --commit --push --tag","typecheck":"tsc --noEmit"},"devDependencies":{"@antfu/eslint-config":"^6.1.0","@tsconfig/node-ts":"^23.6.1","@tsconfig/node22":"^22.0.2","@types/node":"^24.9.2","bumpp":"^10.3.1","eslint":"^9.38.0","eslint-plugin-format":"^1.0.2","pinia":"^3.0.3","prettier":"^3.6.2","tsdown":"^0.15.12","typescript":"^5.9.3"},"release":{"branches":["main"]},"gitHead":"cda366f4538c14fa33cb2a8ad53380cf95096866","_id":"@blouflashdb/eslint-plugin-pinia@0.0.2","bugs":{"url":"https://github.com/blouflashdb/eslint-plugin-pinia/issues"},"homepage":"https://github.com/blouflashdb/eslint-plugin-pinia#readme","_nodeVersion":"25.0.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-PL1ABXzXaW4/CrHywvXwTese887PqoKpvQduYwMql3pD5eKx00iQ4VAU7f5B1FlbUDPimXCuo1oMBAAXTQjKLg==","shasum":"438a2362e009169aa9b7063cc3bf618e2d31ffd1","tarball":"https://registry.npmjs.org/@blouflashdb/eslint-plugin-pinia/-/eslint-plugin-pinia-0.0.2.tgz","fileCount":8,"unpackedSize":4258774,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDWkdmDazSaBuf3+ocsJMmmqJ5grN3E5Axv2AwLnRG+KwIgS8iljYTe5EKNRu50/q1TKV9/MlE91vdAiQMS8tSB+bw="}]},"_npmUser":{"name":"blouflashdb","email":"daniel.bugaew@outlook.com"},"directories":{},"maintainers":[{"name":"blouflashdb","email":"daniel.bugaew@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/eslint-plugin-pinia_0.0.2_1761825673639_0.3285565590902988"},"_hasShrinkwrap":false}},"time":{"created":"2025-10-30T10:30:19.540Z","modified":"2025-10-30T12:01:14.090Z","0.0.1":"2025-10-30T10:30:19.874Z","0.0.2":"2025-10-30T12:01:13.867Z"},"bugs":{"url":"https://github.com/blouflashdb/eslint-plugin-pinia/issues"},"author":{"name":"Daniel Schmitz","url":"https://github.com/blouflashdb"},"license":"MIT","homepage":"https://github.com/blouflashdb/eslint-plugin-pinia#readme","keywords":["eslint","eslint-plugin","eslint-config","eslint-flat-config","antfu","vue","vuejs","pinia","piniajs","rules"],"repository":{"type":"git","url":"git+https://github.com/blouflashdb/eslint-plugin-pinia.git"},"description":"ESLint plugin for Pinia best practices","maintainers":[{"name":"blouflashdb","email":"daniel.bugaew@outlook.com"}],"readme":"# eslint-plugin-pinia\n\nEslint plugin that enforces some best practices for writing pinia stores\n\n## Installation\n\nYou'll first need to install [ESLint](https://eslint.org/):\n\n```sh\nnpm i eslint --save-dev\n```\n\nNext, install `@blouflashdb/eslint-plugin-pinia`:\n\n```sh\nnpm install @blouflashdb/eslint-plugin-pinia --save-dev\n```\n\n## Usage\n\n### With @antfu/eslint-config\n\nThis plugin is designed to work seamlessly with [@antfu/eslint-config](https://github.com/antfu/eslint-config):\n\n```js\n// eslint.config.mjs\nimport antfu from '@antfu/eslint-config'\nimport pinia from '@blouflashdb/eslint-plugin-pinia'\n\nexport default antfu(\n  {\n    vue: true,\n  },\n  {\n    plugins: {\n      pinia,\n    },\n    rules: {\n      'pinia/never-export-initialized-store': 'error',\n      'pinia/no-duplicate-store-ids': 'error',\n      'pinia/no-return-global-properties': 'error',\n      'pinia/no-store-to-refs-in-store': 'error',\n      'pinia/prefer-use-store-naming-convention': 'warn',\n      'pinia/require-setup-store-properties-export': 'error',\n    },\n  },\n)\n```\n\n### Flat Config (eslint.config.js)\n\nAdd `pinia` to the plugins section and configure the rules you want to use:\n\n```js\n// eslint.config.mjs\nimport pinia from '@blouflashdb/eslint-plugin-pinia'\n\nexport default [\n  {\n    plugins: {\n      pinia,\n    },\n    rules: {\n      'pinia/never-export-initialized-store': 'error',\n      'pinia/no-duplicate-store-ids': 'error',\n      'pinia/no-return-global-properties': 'error',\n      'pinia/no-store-to-refs-in-store': 'error',\n      'pinia/prefer-use-store-naming-convention': 'warn',\n      'pinia/require-setup-store-properties-export': 'error',\n    },\n  },\n]\n```\n\n## Rules\n\n| Name                                                                                         | Description                                                                                |\n| :------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------- |\n| [never-export-initialized-store](docs/rules/never-export-initialized-store.md)               | Never export an initialized named or default store.                                        |\n| [no-duplicate-store-ids](docs/rules/no-duplicate-store-ids.md)                               | Disallow duplicate store ids.                                                              |\n| [no-return-global-properties](docs/rules/no-return-global-properties.md)                     | Disallows returning globally provided properties from Pinia stores.                        |\n| [no-store-to-refs-in-store](docs/rules/no-store-to-refs-in-store.md)                         | Disallow use of storeToRefs inside defineStore                                             |\n| [prefer-single-store-per-file](docs/rules/prefer-single-store-per-file.md)                   | Encourages defining each store in a separate file.                                         |\n| [prefer-use-store-naming-convention](docs/rules/prefer-use-store-naming-convention.md)       | Enforces the convention of naming stores with the prefix `use` followed by the store name. |\n| [require-setup-store-properties-export](docs/rules/require-setup-store-properties-export.md) | In setup stores all state properties must be exported.                                     |\n\n## Licence\n\n[MIT](https://github.com/blouflashdb/eslint-plugin-pinia/blob/main/LICENSE)\n","readmeFilename":"README.md"}