{"_id":"@aurelienbbn/eslint-plugin-gadget","name":"@aurelienbbn/eslint-plugin-gadget","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@aurelienbbn/eslint-plugin-gadget","version":"0.1.0","description":"ESLint rules for Gadget action files. Validates options, params, and timeoutMS constraints.","keywords":["eslint","eslint-plugin","gadget","gadget.dev"],"homepage":"https://github.com/aurelienbobenrieth/gadget/tree/main/packages/eslint-plugin-gadget","bugs":{"url":"https://github.com/aurelienbobenrieth/gadget/issues"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/aurelienbobenrieth/gadget.git","directory":"packages/eslint-plugin-gadget"},"type":"module","sideEffects":false,"main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./package.json":"./package.json"},"dependencies":{"@typescript-eslint/utils":"^8.56.0","minimatch":"^10.2.1"},"devDependencies":{"@vitest/coverage-istanbul":"^4.0.18"},"peerDependencies":{"eslint":">=9.0.0"},"engines":{"node":">=18.18"},"scripts":{"build":"tsup","test":"vitest run","test:build":"publint --strict && attw --pack . --ignore-rules missing-export-equals","typecheck":"tsc --noEmit"},"_id":"@aurelienbbn/eslint-plugin-gadget@0.1.0","_integrity":"sha512-+fydfXXjf7aceE2elPfy/h0LLtQOdX+TJJeDdkt4+o10EI80YEqryIOTYtQp8KFTmRMr9YNE+SO5RwCWTQMefw==","_resolved":"C:\\Users\\aurel\\AppData\\Local\\Temp\\60f63337d5ebed628bdc3d94c2cfd30f\\aurelienbbn-eslint-plugin-gadget-0.1.0.tgz","_from":"file:aurelienbbn-eslint-plugin-gadget-0.1.0.tgz","_nodeVersion":"24.14.0","_npmVersion":"11.9.0","dist":{"integrity":"sha512-+fydfXXjf7aceE2elPfy/h0LLtQOdX+TJJeDdkt4+o10EI80YEqryIOTYtQp8KFTmRMr9YNE+SO5RwCWTQMefw==","shasum":"8b7881cea96752535363f6f2700a9e1a30459c7f","tarball":"https://registry.npmjs.org/@aurelienbbn/eslint-plugin-gadget/-/eslint-plugin-gadget-0.1.0.tgz","fileCount":9,"unpackedSize":336221,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIGWo8amvhV/QZ8Ov8Kmf/zIpWfXpc/sP0GoND1kx2Ev1AiEA2nv0Z+cdb6CHW5Bi/dHpMW5kW/EmA8UlHDrctUUgtz0="}]},"_npmUser":{"name":"aurelienbbn","email":"aurelien.bobenrieth@gmail.com"},"directories":{},"maintainers":[{"name":"aurelienbbn","email":"aurelien.bobenrieth@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/eslint-plugin-gadget_0.1.0_1773160815790_0.7134625812423387"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-10T16:40:15.723Z","0.1.0":"2026-03-10T16:40:15.935Z","modified":"2026-03-10T16:40:16.102Z"},"maintainers":[{"name":"aurelienbbn","email":"aurelien.bobenrieth@gmail.com"}],"description":"ESLint rules for Gadget action files. Validates options, params, and timeoutMS constraints.","homepage":"https://github.com/aurelienbobenrieth/gadget/tree/main/packages/eslint-plugin-gadget","keywords":["eslint","eslint-plugin","gadget","gadget.dev"],"repository":{"type":"git","url":"git+https://github.com/aurelienbobenrieth/gadget.git","directory":"packages/eslint-plugin-gadget"},"bugs":{"url":"https://github.com/aurelienbobenrieth/gadget/issues"},"license":"MIT","readme":"# @aurelienbbn/eslint-plugin-gadget\n\n[![npm version](https://img.shields.io/npm/v/@aurelienbbn/eslint-plugin-gadget.svg)](https://www.npmjs.com/package/@aurelienbbn/eslint-plugin-gadget)\n[![npm downloads](https://img.shields.io/npm/dm/@aurelienbbn/eslint-plugin-gadget.svg)](https://www.npmjs.com/package/@aurelienbbn/eslint-plugin-gadget)\n[![CI](https://github.com/aurelienbobenrieth/gadget/actions/workflows/ci.yml/badge.svg)](https://github.com/aurelienbobenrieth/gadget/actions/workflows/ci.yml)\n[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/aurelienbobenrieth/gadget/blob/main/LICENSE)\n\n16 ESLint rules for [Gadget](https://gadget.dev) action files. Validates options, params, timeout configuration, enqueue calls, and runtime patterns before they reach production.\n\n> This is a **community package**, not published or endorsed by Gadget. It complements Gadget's own [framework linter](https://docs.gadget.dev/guides/development-tools/framework-linter) with additional static checks.\n\n## Install\n\n```bash\npnpm add -D @aurelienbbn/eslint-plugin-gadget eslint\n```\n\nRequires Node `>=18.18`, ESLint `>=9`, and flat config (`eslint.config.js`).\n\n## Quick start\n\n```js\n// eslint.config.js\nimport gadget from \"@aurelienbbn/eslint-plugin-gadget\";\n\nexport default [gadget.configs.recommended];\n```\n\nTwo presets are available:\n\n- **`recommended`** - three critical rules at `error`, the rest at `warn`.\n- **`strict`** - every rule at `error`.\n\n## Rules\n\n| Category           | Rules   | What they catch                                                                       |\n| ------------------ | ------- | ------------------------------------------------------------------------------------- |\n| Options and params | 9 rules | Invalid options values, unsupported param types, timeout limits, missing return types |\n| Runtime safety     | 5 rules | Empty handlers, missing type annotations, transaction timeout patterns                |\n| Enqueue safety     | 2 rules | Concurrency limits, implicit retry defaults                                           |\n\n8 rules provide auto-fixes.\n\n## Documentation\n\nFull documentation with code examples, severity matrices, and configuration guides:\n\n**[gadget.aurelienbbn.com](https://gadget.aurelienbbn.com)**\n\n- [Installation](https://gadget.aurelienbbn.com/eslint-plugin/getting-started/installation)\n- [Quick start](https://gadget.aurelienbbn.com/eslint-plugin/getting-started/configuration)\n- [How rules apply](https://gadget.aurelienbbn.com/eslint-plugin/guides/how-rules-apply)\n- [Configurations reference](https://gadget.aurelienbbn.com/eslint-plugin/reference/configurations)\n- [All rules](https://gadget.aurelienbbn.com/eslint-plugin/reference/rules)\n\n## Contributing\n\n- [Open an issue](https://github.com/aurelienbobenrieth/gadget/issues) to report bugs or request rules.\n- [Start a discussion](https://github.com/aurelienbobenrieth/gadget/discussions) for broader ideas.\n\n## License\n\n[MIT](https://github.com/aurelienbobenrieth/gadget/blob/main/LICENSE)\n","readmeFilename":"README.md","_rev":"1-185caf552b32da804e5782b34c93c754"}