{"_id":"@elgato/eslint-config","_rev":"8-d67a1937b744795ec909722f486f9d7f","name":"@elgato/eslint-config","dist-tags":{"latest":"0.3.2"},"versions":{"0.1.0":{"name":"@elgato/eslint-config","version":"0.1.0","keywords":["elgato","eslint","linting"],"author":{"url":"https://www.elgato.com","name":"Elgato"},"license":"MIT","_id":"@elgato/eslint-config@0.1.0","maintainers":[{"name":"elgato-bot","email":"richard.herman@corsair.com"}],"homepage":"https://github.com/elgatosf/eslint-config#readme","bugs":{"url":"https://github.com/elgatosf/eslint-config/issues"},"dist":{"shasum":"74c05876b522e2fe2ba0d33286f11d644dfa24fa","tarball":"https://registry.npmjs.org/@elgato/eslint-config/-/eslint-config-0.1.0.tgz","fileCount":5,"integrity":"sha512-BKLdQpJogXgz9NJ1UkoycUfa67Y8af/6Z0xQJ/gNTf3G6s78mUSyJWdZj5BakPyqxiFZkBMTlQxFAuaVIaniMQ==","signatures":[{"sig":"MEQCIAfKjxsMRqTuvOppk55vleaWHLNrpW8m1BUBWML5sLBhAiA5hrcYw1A1cjLAc+s4ynEsTqQiW1xuPfAA3R6qwp+ytg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@elgato%2feslint-config@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11172},"main":"src/index.js","type":"module","gitHead":"d22dac5b20cca2dc1e7323d212228d69163a0c59","scripts":{"lint":"eslint --max-warnings 0","test":"vitest run","lint:fix":"prettier \"./src/**/*.js\" --write","preversion":"npm run lint && npm test","test:watch":"vitest"},"_npmUser":{"name":"elgato-bot","email":"richard.herman@corsair.com"},"prettier":"@elgato/prettier-config","repository":{"url":"git+https://github.com/elgatosf/eslint-config.git","type":"git"},"_npmVersion":"10.8.2","description":"ESLint configuration used by Elgato projects.","directories":{},"_nodeVersion":"20.19.1","_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.1.3","typescript":"^5.8.3","@types/node":"^22.15.17","@tsconfig/node20":"^20.1.5","@elgato/prettier-config":"^0.2.6"},"peerDependencies":{"eslint":"^9.26.0","@eslint/js":"^9.26.0","typescript":"^5.8.3","typescript-eslint":"^8.32.0","eslint-plugin-jsdoc":"^50.6.14"},"_npmOperationalInternal":{"tmp":"tmp/eslint-config_0.1.0_1747232043394_0.8783179220820163","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@elgato/eslint-config","version":"0.2.0","keywords":["elgato","eslint","linting"],"author":{"url":"https://www.elgato.com","name":"Elgato"},"license":"MIT","_id":"@elgato/eslint-config@0.2.0","maintainers":[{"name":"elgato-bot","email":"richard.herman@corsair.com"}],"homepage":"https://github.com/elgatosf/eslint-config#readme","bugs":{"url":"https://github.com/elgatosf/eslint-config/issues"},"dist":{"shasum":"a426c9fb9a9d03b22a2fa8d62071155dbc1cf6da","tarball":"https://registry.npmjs.org/@elgato/eslint-config/-/eslint-config-0.2.0.tgz","fileCount":6,"integrity":"sha512-PJgGoDmKnli6/fn8yP0dSQLSbv6CdgTF8T0u3TflSHQdHuqm+vYmxIlRGWgrYuUt2nl7/PYt8jINmZ4U66ZCFQ==","signatures":[{"sig":"MEYCIQCsyVPvj5CY6VeoAVmWEFkYi0i+Wc4Yv86l5vBPo1/uXgIhAKShYZzNsMaI0GTi8wKAdNRcegU5tzoDB+Q18XP3PM8e","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@elgato%2feslint-config@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11056},"main":"src/index.js","type":"module","gitHead":"8ac4e0383feb5806acc9fbe1b9586b4e3852ca9f","scripts":{"lint":"eslint --max-warnings 0","test":"vitest run","lint:fix":"prettier \"./src/**/*.js\" --write","preversion":"npm run lint && npm test","test:watch":"vitest"},"_npmUser":{"name":"elgato-bot","email":"richard.herman@corsair.com"},"prettier":"@elgato/prettier-config","repository":{"url":"git+https://github.com/elgatosf/eslint-config.git","type":"git"},"_npmVersion":"10.8.2","description":"ESLint configuration used by Elgato projects.","directories":{},"_nodeVersion":"20.19.4","_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.1.3","typescript":"^5.8.3","@types/node":"^22.15.17","@tsconfig/node20":"^20.1.5","@elgato/prettier-config":"^0.2.6"},"peerDependencies":{"eslint":"^9.26.0","@eslint/js":"^9.26.0","typescript":"^5.8.3","typescript-eslint":"^8.32.0","eslint-plugin-jsdoc":"^54.1.1"},"_npmOperationalInternal":{"tmp":"tmp/eslint-config_0.2.0_1757076168208_0.12884549218888708","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@elgato/eslint-config","version":"0.3.0","keywords":["elgato","eslint","linting"],"author":{"url":"https://www.elgato.com","name":"Elgato"},"license":"MIT","_id":"@elgato/eslint-config@0.3.0","maintainers":[{"name":"elgato-bot","email":"richard.herman@corsair.com"}],"homepage":"https://github.com/elgatosf/eslint-config#readme","bugs":{"url":"https://github.com/elgatosf/eslint-config/issues"},"dist":{"shasum":"031df11086c47b8bd0dc6a6f7ad3147ba6c45fb2","tarball":"https://registry.npmjs.org/@elgato/eslint-config/-/eslint-config-0.3.0.tgz","fileCount":6,"integrity":"sha512-XLeRm46uLPTIZ0XUcCaPn4miuryv279Qpprg3l9W3otg2BnYN5SRsWTOCc2mNm7m5dgLAVOpTfR4JynojTR14w==","signatures":[{"sig":"MEQCIAKWkK1XiMx8UUxGH/k3H/dsBFaX8gqCvnN9wjlKUrqhAiB/fdOSNYt8skJm6fhyYYDoeZYbvgr9iGS9aMxeX7XD+w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@elgato%2feslint-config@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11028},"main":"src/index.js","type":"module","gitHead":"ae6893f695c388bbf7787c7cf8d9472df2178ee4","scripts":{"lint":"eslint --max-warnings 0","test":"vitest run","lint:fix":"prettier \"./src/**/*.js\" --write","preversion":"npm run lint && npm test","test:watch":"vitest"},"_npmUser":{"name":"elgato-bot","email":"richard.herman@corsair.com"},"prettier":"@elgato/prettier-config","repository":{"url":"git+https://github.com/elgatosf/eslint-config.git","type":"git"},"_npmVersion":"10.8.2","description":"ESLint configuration used by Elgato projects.","directories":{},"_nodeVersion":"20.19.5","_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.1.3","typescript":"^5.8.3","@types/node":"^22.15.17","@tsconfig/node20":"^20.1.5","@elgato/prettier-config":"^0.2.6"},"peerDependencies":{"eslint":"^9.26.0","@eslint/js":"^9.26.0","typescript":"^5.8.3","typescript-eslint":"^8.32.0","eslint-plugin-jsdoc":"^54.1.1"},"_npmOperationalInternal":{"tmp":"tmp/eslint-config_0.3.0_1758293767731_0.31439738995680844","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@elgato/eslint-config","version":"0.3.1","keywords":["elgato","eslint","linting"],"author":{"url":"https://www.elgato.com","name":"Elgato"},"license":"MIT","_id":"@elgato/eslint-config@0.3.1","maintainers":[{"name":"elgato-bot","email":"richard.herman@corsair.com"}],"homepage":"https://github.com/elgatosf/eslint-config#readme","bugs":{"url":"https://github.com/elgatosf/eslint-config/issues"},"dist":{"shasum":"8932deaaa17365209ede128b81cc97531c802729","tarball":"https://registry.npmjs.org/@elgato/eslint-config/-/eslint-config-0.3.1.tgz","fileCount":6,"integrity":"sha512-RNF1tbppD93ipwbKjLsTQPf2lp+oTiQbKaC6dlaS5yXgNzyrNedxVSl0O6+D6BW922ghy+gOsQv/x0PbniEgpw==","signatures":[{"sig":"MEQCIATV78S6W96oH1EpzZSUZQ4Ld8V2cs6KDdNnP+JC3In0AiAhn2cLeTnNMlh3RhktBnSb6150R+d7vCjbgn6VM4GL7A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@elgato%2feslint-config@0.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11028},"main":"src/index.js","type":"module","gitHead":"30a52aae75451a37d98ed0aff23908e4c82a3446","scripts":{"lint":"eslint --max-warnings 0","test":"vitest run","lint:fix":"prettier \"./src/**/*.js\" --write","preversion":"npm run lint && npm test","test:watch":"vitest"},"_npmUser":{"name":"elgato-bot","email":"richard.herman@corsair.com"},"prettier":"@elgato/prettier-config","repository":{"url":"git+https://github.com/elgatosf/eslint-config.git","type":"git"},"_npmVersion":"10.8.2","description":"ESLint configuration used by Elgato projects.","directories":{},"_nodeVersion":"20.19.5","_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.1.3","typescript":"^5.8.3","@types/node":"^22.15.17","@tsconfig/node20":"^20.1.5","@elgato/prettier-config":"^0.2.6"},"peerDependencies":{"eslint":"^9.26.0","@eslint/js":"^9.26.0","typescript":"^5.8.3","typescript-eslint":"^8.32.0","eslint-plugin-jsdoc":"^54.1.1"},"_npmOperationalInternal":{"tmp":"tmp/eslint-config_0.3.1_1758293893725_0.6939262710988872","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@elgato/eslint-config","version":"0.3.2","description":"ESLint configuration used by Elgato projects.","type":"module","main":"src/index.js","scripts":{"lint":"eslint --max-warnings 0","lint:fix":"prettier \"./src/**/*.js\" --write","preversion":"npm run lint && npm test","test":"vitest run","test:watch":"vitest"},"prettier":"@elgato/prettier-config","repository":{"type":"git","url":"git+https://github.com/elgatosf/eslint-config.git"},"keywords":["elgato","eslint","linting"],"author":{"name":"Elgato","url":"https://www.elgato.com"},"license":"MIT","bugs":{"url":"https://github.com/elgatosf/eslint-config/issues"},"homepage":"https://github.com/elgatosf/eslint-config#readme","devDependencies":{"@elgato/prettier-config":"^0.2.6","@tsconfig/node20":"^20.1.5","@types/node":"^22.15.17","typescript":"^5.8.3","vitest":"^3.1.3"},"peerDependencies":{"@eslint/js":"^9.26.0","eslint":"^9.26.0","eslint-plugin-jsdoc":"^54.1.1","typescript":"^5.8.3","typescript-eslint":"^8.32.0"},"gitHead":"68fb49431940009ca76067e403d873f11386e96b","_id":"@elgato/eslint-config@0.3.2","_nodeVersion":"24.13.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-onsTRVpVo/RzuGFuah3SDpNe3+geOafa6btDa9zoVp0y6WpAejJZWGyXxj9/QWQBL82z+liWrMhJvHXhyxOwag==","shasum":"e6e9d65015dd15ee1403a1f76ebfc0a16e498f0f","tarball":"https://registry.npmjs.org/@elgato/eslint-config/-/eslint-config-0.3.2.tgz","fileCount":6,"unpackedSize":11028,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@elgato%2feslint-config@0.3.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQC7gve1gpByTeoWZfYbzSaDqE93KxhPoIPwPntC8/0CIAIgeZ/dg/HhSANt0As7t5tjcIK6yT9ZBNI7ANB1KuNbutU="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:30f2de5f-ffb3-4b55-b61d-1c990ceac393"}},"directories":{},"maintainers":[{"name":"elgato-bot","email":"richard.herman@corsair.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/eslint-config_0.3.2_1770752997646_0.9897136356397371"},"_hasShrinkwrap":false}},"time":{"created":"2025-05-14T13:55:53.739Z","modified":"2026-02-10T19:49:58.083Z","0.0.0":"2025-05-14T13:55:53.933Z","0.1.0":"2025-05-14T14:14:03.662Z","0.2.0":"2025-09-05T12:42:48.384Z","0.3.0":"2025-09-19T14:56:07.908Z","0.3.1":"2025-09-19T14:58:13.937Z","0.3.2":"2026-02-10T19:49:57.785Z"},"bugs":{"url":"https://github.com/elgatosf/eslint-config/issues"},"author":{"name":"Elgato","url":"https://www.elgato.com"},"license":"MIT","homepage":"https://github.com/elgatosf/eslint-config#readme","keywords":["elgato","eslint","linting"],"repository":{"type":"git","url":"git+https://github.com/elgatosf/eslint-config.git"},"description":"ESLint configuration used by Elgato projects.","maintainers":[{"name":"elgato-bot","email":"richard.herman@corsair.com"}],"readme":"<div align=\"center\">\n\n# @elgato/eslint-config\n\n[ESLint](https://https://eslint.org/) configuration used by Elgato projects.\n\n[![@elgato/eslint-config npm package](https://img.shields.io/npm/v/%40elgato/eslint-config?logo=npm&logoColor=white)](https://www.npmjs.com/package/@elgato/eslint-config)\n[![Join the Marketplace Makers Discord](https://img.shields.io/badge/Marketplace%20Makers-5662f6?labelColor=grey&logo=discord&logoColor=white)](https://discord.gg/GehBUcu627)\n[![Elgato homepage](https://img.shields.io/badge/Elgato-3431cf?labelColor=grey&logo=elgato)](https://elgato.com)\n\n</div>\n\n## Installation\n\n```\nnpm install @elgato/eslint-config --save-dev\n```\n\n## Usage\n\nCreate an `eslint.config.js` file at the root of your project.\n\n```js\n// eslint.config.js\nimport { config } from \"@elgato/eslint-config\";\n\nexport default config.recommended;\n```\n\nThen add a linting script to your `package.json` file.\n\n```json\n{\n    \"scripts\": {\n        \"lint\": \"eslint --max-warnings 0\"\n    }\n}\n```\n\nFinally, to test everything is working run `npm run lint`.\n\n## Configuration\n\nThere are two configurations available:\n\n- Recommended — `config.recommended`\n- Strict — `config.strict` (stricter type enforcing)\n\nAll configurations are tailored for TypeScript, with the `strict` configuration enforcing stricter types through explicit return types. Additionally, all configurations emphasize the importance of well-documented code ([jsdocs](https://jsdoc.app/)) and encourages structured code in the form of member ordering.\n\n### Extends\n\n- JSDoc recommended\n- ESLint recommended\n- TypeScript ESLint recommended\n\n### Rules\n\n| Rule                                       | Recommended  | Strict       | Notes                                                                 |\n| ------------------------------------------ | ------------ | ------------ | --------------------------------------------------------------------- |\n| Indent: Tabs                               | ⚠️&nbsp;Warn | ⚠️&nbsp;Warn |                                                                       |\n| JSDoc: Check tag names                     | ⚠️&nbsp;Warn | ⚠️&nbsp;Warn | Additional tags: `csspart`, `cssproperty`, `jest-environment`, `slot` |\n| JSDoc: No undefined types                  | ⚠️&nbsp;Warn | ⚠️&nbsp;Warn |                                                                       |\n| JSDoc: Require JSDoc                       | ⚠️&nbsp;Warn | ⚠️&nbsp;Warn |                                                                       |\n| JSDoc: Require Returns                     | ⚠️&nbsp;Warn | ⚠️&nbsp;Warn | Disabled for getters.                                                 |\n| TypeScript: Explicit function return types | ✅ Off       | ⚠️&nbsp;Warn | Disabled for JavaScript, tests, and mock files.                       |\n| TypeScript: Explicit member accessibility  | ⚠️&nbsp;Warn | ⚠️&nbsp;Warn | No `public` required `constructor`.                                   |\n| TypeScript: Member ordering                | ⚠️&nbsp;Warn | ⚠️&nbsp;Warn | Grouped by type and then access, and ordered alphabetically.          |\n| TypeScript: Sort type constituents         | ⚠️&nbsp;Warn | ⚠️&nbsp;Warn |                                                                       |\n\nAdditionally, the following rules are disabled for test and mock files:\n\n- TypeScript: No explicit `any`\n- TypeScript: No `require` imports\n\n### Variants\n\n- Mocks and tests\n\n    - Allow `any` and `require`.\n    - Do not require explicit return types.\n\n### Ignored\n\n- `.github/`\n- `bin/`\n- `dist/`\n- `node_modules/`\n\n## Member Ordering\n\nMembers of a class should be grouped by type and then by access, and ordered alphabetically. The ordering is as follows:\n\n**Type Order**\n\n- Fields\n- Constructors\n- Signatures / call signatures\n- Properties (get / set)\n- Methods\n\n**Access Order**\n\n- Public (static / abstract / regular)\n- Protected (static / abstract / regular)\n- Private (static / abstract / regular)\n\n## Overrides\n\nConfiguration settings can be overriden using the `defineConfig` helper function from ESLint, extending `@elgato/eslint-config`, and then defining your preferred settings.\n\n```js\n// eslint.config.js\nimport { defineConfig } from \"eslint/config\";\nimport { config } from \"@elgato/eslint-config\";\n\nexport default defineConfig([\n\t{\n\t\textends: [export default config.recommended],\n\n\t\t// Anything from here will override @elgato/eslint-config\n\t\trules: {\n\t\t\t\"no-unused-vars\": \"warn\",\n\t\t},\n\t},\n]);\n```\n\n[Learn more](https://eslint.org/docs/latest/extend/shareable-configs#overriding-settings-from-shareable-configs) about overriding settings.\n","readmeFilename":"README.md"}