{"_id":"@blaze-money/eslint-plugin-spark","_rev":"6-3655aa04dfd1f4b1ff9f47f3795b958d","name":"@blaze-money/eslint-plugin-spark","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.0":{"name":"@blaze-money/eslint-plugin-spark","version":"1.0.0","keywords":["eslint","eslintplugin","eslint-plugin","spark","blaze"],"author":{"name":"Blaze"},"license":"MIT","_id":"@blaze-money/eslint-plugin-spark@1.0.0","maintainers":[{"name":"luis.sanchez.blaze","email":"luis@blaze.money"},{"name":"kikeloco","email":"kike@blaze.money"},{"name":"robertkozik","email":"robert.kozik@swmansion.com"},{"name":"faiyam_blaze","email":"faiyam@blaze.money"},{"name":"l2succes","email":"l2succes@gmail.com"}],"homepage":"https://github.com/blaze-xyz/spark#readme","bugs":{"url":"https://github.com/blaze-xyz/spark/issues"},"dist":{"shasum":"938dd3c9daf5e318426a92800bbf62dcd25e61df","tarball":"https://registry.npmjs.org/@blaze-money/eslint-plugin-spark/-/eslint-plugin-spark-1.0.0.tgz","fileCount":6,"integrity":"sha512-sMU8m0WYPB3NJtBtFcmZ55XL9N+PZANYXQ8anBOYe38qAhWXndIijuOkjRuz4CajtCxJrCVYb08K+qWhn7Dniw==","signatures":[{"sig":"MEQCIFRHa/QeX700YUYFcpWA1UikdmxEY/rs97dem6FIeGhbAiBUDAILNMpiBx2lidmJtkDIp87eUTMCvlODqIXaV3S+Lg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25457},"main":"index.js","engines":{"node":"^18 || ^20"},"gitHead":"6099729f62079dec9575c5bdec61669f80d71f24","_npmUser":{"name":"l2succes","actor":{"name":"l2succes","type":"user","email":"l2succes@gmail.com"},"email":"l2succes@gmail.com"},"repository":{"url":"git+https://github.com/blaze-xyz/spark.git","type":"git","directory":"eslint/plugins/spark"},"_npmVersion":"10.9.0","description":"ESLint plugin for Spark project with custom rules","directories":{},"_nodeVersion":"20.17.0","_hasShrinkwrap":false,"peerDependencies":{"eslint":">=8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin-spark_1.0.0_1750786872216_0.15223876317288987","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@blaze-money/eslint-plugin-spark","version":"1.0.1","keywords":["eslint","eslintplugin","eslint-plugin","spark","blaze"],"author":{"name":"Blaze"},"license":"MIT","_id":"@blaze-money/eslint-plugin-spark@1.0.1","maintainers":[{"name":"luis.sanchez.blaze","email":"luis@blaze.money"},{"name":"kikeloco","email":"kike@blaze.money"},{"name":"robertkozik","email":"robert.kozik@swmansion.com"},{"name":"faiyam_blaze","email":"faiyam@blaze.money"},{"name":"l2succes","email":"l2succes@gmail.com"}],"homepage":"https://github.com/blaze-xyz/spark#readme","bugs":{"url":"https://github.com/blaze-xyz/spark/issues"},"dist":{"shasum":"6ea8b8894561f3dd1a6464d10973c351d6e765d2","tarball":"https://registry.npmjs.org/@blaze-money/eslint-plugin-spark/-/eslint-plugin-spark-1.0.1.tgz","fileCount":6,"integrity":"sha512-h+VFl6W1iU0ZYGTiEmIhxdNkxf6NTiANnSkMJSQbFn1YUFff/DyZbBGoo/hGKcfh2mh7ZNhyLc+N/lWikcoU9w==","signatures":[{"sig":"MEYCIQC7OKcDRf4eOicyDxdmEofpisSwEdsZcOPLTuefBv7Z2wIhAMY7qqntFlQ8M/IubykDaXZWLb0gdCFYtm/1BVVtja9y","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25509},"main":"index.js","engines":{"node":"^18 || ^20"},"gitHead":"6099729f62079dec9575c5bdec61669f80d71f24","_npmUser":{"name":"l2succes","actor":{"name":"l2succes","type":"user","email":"l2succes@gmail.com"},"email":"l2succes@gmail.com"},"repository":{"url":"git+https://github.com/blaze-xyz/spark.git","type":"git","directory":"eslint/plugins/spark"},"_npmVersion":"10.9.0","description":"ESLint plugin for Spark project with custom rules","directories":{},"_nodeVersion":"20.17.0","_hasShrinkwrap":false,"peerDependencies":{"eslint":">=8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin-spark_1.0.1_1750787000526_0.9657814304103347","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2025-06-24T17:41:12.106Z","modified":"2026-07-19T23:08:57.810Z","1.0.0":"2025-06-24T17:41:12.380Z","1.0.1":"2025-06-24T17:43:20.703Z"},"bugs":{"url":"https://github.com/blaze-xyz/spark/issues"},"author":{"name":"Blaze"},"license":"MIT","homepage":"https://github.com/blaze-xyz/spark#readme","keywords":["eslint","eslintplugin","eslint-plugin","spark","blaze"],"repository":{"url":"git+https://github.com/blaze-xyz/spark.git","type":"git","directory":"eslint/plugins/spark"},"description":"ESLint plugin for Spark project with custom rules","maintainers":[{"email":"dylanokeks@yahoo.com","name":"emmanuelokeks"},{"email":"faiyam@blaze.money","name":"faiyam_blaze"},{"email":"l2succes@gmail.com","name":"l2succes"}],"readme":"# @blaze-money/eslint-plugin-spark\n\nESLint plugin for the Spark project with custom rules to enforce coding standards.\n\n## Rules\n\n### matching-email-translation-structure\n\nThis rule ensures that all email translation files have the same structure as the English translation file (`en.messages.ts`). It checks for missing keys and extra keys in non-English translation files.\n\n#### Usage\n\nThe rule is automatically enabled in the Spark ESLint configuration. It will run when you run `yarn lint` or when you commit changes (via the pre-commit hook).\n\nYou can also run the rule manually with:\n\n```bash\nyarn email:check-translations\n```\n\n#### How it works\n\nThe rule:\n\n1. Identifies all `.messages.ts` files in the email translation directories\n2. Skips the English translation file (`en.messages.ts`) as it's the reference\n3. Compares each non-English translation file with the English one\n4. Reports any missing keys or extra keys\n\n#### Fixing issues\n\nWhen the rule reports missing keys, you should add those keys to the translation file with appropriate translations. When it reports extra keys, you should either:\n\n1. Add those keys to the English translation file if they should be there\n2. Remove them from the non-English translation file if they're no longer needed\n\n## Adding new translations\n\nWhen adding new email templates or messages:\n\n1. Add the new keys to `en.messages.ts` first\n2. Run `yarn email:check-translations` to identify which translation files need to be updated\n3. Add the missing keys to all non-English translation files\n\n## Development\n\nTo add new rules to this plugin:\n\n1. Create a new rule file in the `rules` directory\n2. Add the rule to the `index.js` file\n3. Update the ESLint configuration to enable the rule\n","readmeFilename":"README.md"}