{"_id":"@10up/eslint-plugin","_rev":"19-529c556783b7434b0680abd31a76d9ce","name":"@10up/eslint-plugin","dist-tags":{"next":"1.0.3-next.1","latest":"2.0.0"},"versions":{"1.0.0":{"name":"@10up/eslint-plugin","version":"1.0.0","keywords":["wordpress","gutenberg","eslint","plugin"],"author":{"name":"10up"},"license":"GPL-2.0-or-later","_id":"@10up/eslint-plugin@1.0.0","maintainers":[{"name":"fabiankaegy","email":"mail@fabian-kaegy.de"},{"name":"brandwaffle","email":"vhauri@gmail.com"},{"name":"eugene-manuilov","email":"eugene.manuilov@gmail.com"},{"name":"christianc1","email":"christian.m.chung@gmail.com"},{"name":"nicholasio","email":"nicholasio.oliveira@gmail.com"},{"name":"joesnellpdx","email":"joesnellpdx@gmail.com"},{"name":"tlovett1","email":"tlovett88@gmail.com"},{"name":"devinle","email":"devin.leggett@gmail.com"}],"homepage":"https://github.com/10up/10up-toolkit","bugs":{"url":"https://github.com/10up/10up-toolkit/issues"},"dist":{"shasum":"57db52f956bc1d4ad4251827a2eb8393cc1b6fd8","tarball":"https://registry.npmjs.org/@10up/eslint-plugin/-/eslint-plugin-1.0.0.tgz","fileCount":55,"integrity":"sha512-GQq11sPIA5RHlss1qg63LGTigncbENf599MjpCE3KFySRyw+IC6n6Dyo9wR035CPQySfAYIkajapyF/DcIxeZQ==","signatures":[{"sig":"MEUCICof1jyrH+M+oBmpsSwgVSSQTWM0Uaa5goC3rmojQAHvAiEAvPig99iPiKixYJ+yjQDUK3Wjh5UDbnnFOa1dEFcMDro=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":113306,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiHUPDACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp/KA//SPNCXzYsQucNJy+rm3Nonfy2y4CgDHKS4qc93rL6nPItAwlS\r\nsnnjpQNhOyCjsj8iJCv71q78lfQvEvmEf1Q0Sp11Pty8HU+Cn90FFfxDcmK/\r\nfJix406kT3JWdvTT8V2IRxpjfrOUlOLgp+UetHfWOHj7Pwr/4Ll3D6m4//8L\r\nYP0fi8MsSUyCOFhQhpg4XTjTNRffzwtimvu2FzN2T6AIDLW2+Ow4uZGx+KO7\r\n0Np4AY1hs6XWu09bgdB27LxRGzi+Oglr2IH2Jkss8KI4NTcEPh+f3ZrZO8r7\r\nM3ofmdXDHie/Jprqtl8FRzPOxRymPIhuKKMFucZlVTNr+df+Ff4gSl2h78QL\r\nZtUV28+TqwlkYQAyIEMr0E5eiVBUtbky0hm+mTS/I88TsjX0cw2OZqg1PNDC\r\nzped+j/CpUieIo6ZaiwqcfuUDahenYudWPjx2PMnjgWja89NipYomCy2m5KH\r\nKOu6l/oTWNgIUGOJxuGNhZNA5Nv0WLGxAY0IWuFOU3V1zQvbkB1OBoKwNoMm\r\n/78qCWMtBJ8iGqj/fDhBngJKAgWKOBObhLFPhQ++iWwUxXToEJlHJgRhFCkn\r\n8X5R964whWVh4eiTx4TjrMvA/ljPbSp+Og34zvOenAKzgJh573niORMVvkYX\r\ns1EPgEoI9nwOUPIlwkKguSC+pLbfowSmKDE=\r\n=2y9F\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","engines":{"npm":">=6.9","node":">=12"},"gitHead":"99a9d66797de06efb48776ec90b77e122065f547","scripts":{"test":"jest","test:watch":"jest --watch"},"_npmUser":{"name":"nicholasio","email":"nicholasio.oliveira@gmail.com"},"repository":{"url":"git+https://github.com/10up/10up-toolkit.git","type":"git","directory":"packages/eslint-plugin"},"_npmVersion":"8.5.2","description":"ESLint plugin for WordPress development.","directories":{},"_nodeVersion":"16.11.1","dependencies":{"globals":"^13.12.0","requireindex":"^1.2.0","eslint-plugin-jest":"^25.2.3","eslint-plugin-jsdoc":"^37.0.3","eslint-plugin-react":"^7.27.0","@babel/eslint-parser":"^7.16.0","eslint-plugin-import":"^2.25.2","eslint-plugin-jsx-a11y":"^6.5.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@10up/babel-preset-default":"^2.0.0"},"peerDependencies":{"eslint":">=8","@babel/core":">=7"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_1.0.0_1646085059090_0.9293848931977458","host":"s3://npm-registry-packages"}},"1.1.0-next.0":{"name":"@10up/eslint-plugin","version":"1.1.0-next.0","keywords":["wordpress","gutenberg","eslint","plugin"],"author":{"name":"10up"},"license":"GPL-2.0-or-later","_id":"@10up/eslint-plugin@1.1.0-next.0","maintainers":[{"name":"fabiankaegy","email":"mail@fabian-kaegy.de"},{"name":"brandwaffle","email":"vhauri@gmail.com"},{"name":"eugene-manuilov","email":"eugene.manuilov@gmail.com"},{"name":"christianc1","email":"christian.m.chung@gmail.com"},{"name":"nicholasio","email":"nicholasio.oliveira@gmail.com"},{"name":"joesnellpdx","email":"joesnellpdx@gmail.com"},{"name":"tlovett1","email":"tlovett88@gmail.com"},{"name":"devinle","email":"devin.leggett@gmail.com"}],"homepage":"https://github.com/10up/10up-toolkit","bugs":{"url":"https://github.com/10up/10up-toolkit/issues"},"dist":{"shasum":"103a7c24f4110e0f17a2b098757022be1184cea2","tarball":"https://registry.npmjs.org/@10up/eslint-plugin/-/eslint-plugin-1.1.0-next.0.tgz","fileCount":55,"integrity":"sha512-USTzhYn2NUR818yHjjenMXiyH3amUW84pqZ4kUDSWTHZYU2AWh+zoIGznXl+xr4BYbNAAAiLjhrbb2ktKVLTEg==","signatures":[{"sig":"MEQCIF2IJR2QSDQm2bEcCd7kpDbI4eY+O7XBgGcqGprn7N8DAiBni3l+oBp6obRpXxDX0REGUEm6FxKwYtcXKcrbuCbENA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":113392,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiOybNACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr7Zg//WP2QfOy8JFSJjBaH74lpUQpnvoj40+lcpttmD3KeTkef1K0+\r\nqkqd16QdUa93XLqwKUr98dXNj+YvLaCoyHlo3vrEUfWO4rdjacMGyRPatfwf\r\nKYKpXQHfezhQBrGeMF4QnUaOaWPjV6Dffm5eshGUtM9HG2NNB466UAdx3EYs\r\nZlQfr+98hq1+jKKdiW0uoteYeTYfvQpuDvkpDSjWHbe2byEh24K3/cteajFh\r\nkrOdG6CQ+AYfKCItI5KnHqVm2IhElXGL3KkGkWvhoAHrjcrEhwLrlCYJIbFk\r\n9tCcECHbVzBebejKhwvjZnFUBJdSREdhtfbcZrcvBgwPKEdZQxfLCTkCk1vn\r\nJnwdgnNVky9ThiFKHgUaaWWbFQ+OctKIF+f5absDzl8w5WF5E/iXDR0VBpRz\r\ny7sL4xL5GvBSYL4bH581ddCs9ZkQBsAngveUhpN1COj+PpMYkbXgsOEIEBIN\r\nngkCZsEv7GDJKhykQ9N9ajr7DdAJADkEp2qzlLycSE/J/eKJR67EwRY8RcQu\r\nApOQ3yLlH93ElDL5YNK2rMmjo8TBCQtu/KqcKNaQmdCGUWDllNpN7OUhetw3\r\n6WI4bME3+CNCiaexW56un+9EF92u8bLYSDC/Agnmef7Ju5MfqqbCSbqTo0mj\r\nSXX6UuoWT2FCmMiAIhInZyA1p04X3rHDnNo=\r\n=wOvc\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","readme":"# ESLint Plugin\n\n[ESLint](https://eslint.org/) plugin including configurations and custom rules for WordPress development.\n\n## Installation\n\nInstall the module\n\n```bash\nnpm install @wordpress/eslint-plugin --save-dev\n```\n\n**Note**: This package requires `node` 12.0.0 or later, and `npm` 6.9.0 or later. It is not compatible with older versions.\n\n## Usage\n\nTo opt-in to the default configuration, extend your own project's `.eslintrc` file:\n\n```json\n{\n\t\"extends\": [ \"plugin:@wordpress/eslint-plugin/recommended\" ]\n}\n```\n\nRefer to the [ESLint documentation on Shareable Configs](http://eslint.org/docs/developer-guide/shareable-configs) for more information.\n\nThe `recommended` preset will include rules governing an ES2015+ environment, and includes rules from the [`eslint-plugin-jsx-a11y`](https://github.com/evcohen/eslint-plugin-jsx-a11y), [`eslint-plugin-react`](https://github.com/yannickcr/eslint-plugin-react), and [`eslint-plugin-prettier`](https://github.com/prettier/eslint-plugin-prettier) projects. It also includes an optional integration with [`@typescript-eslint/eslint-plugin`](https://github.com/typescript-eslint/typescript-eslint) that gets activated when the [`typescript`](https://www.npmjs.com/package/typescript) package is installed in the project.\n\nThere is also `recommended-with-formatting` ruleset for projects that want to opt out from [Prettier](https://prettier.io). It has the native ESLint code formatting rules enabled instead.\n\n### Rulesets\n\nAlternatively, you can opt-in to only the more granular rulesets offered by the plugin. These include:\n\n-   `custom`\n-   `es5`\n-   `esnext`\n-   `jsdoc`\n-   `jsx-a11y`\n-   `react`\n-   `i18n`\n-   `test-e2e`\n-   `test-unit`\n\nFor example, if your project does not use React, you could consider extending including only the ESNext rules in your project using the following `extends` definition:\n\n```json\n{\n\t\"extends\": [ \"plugin:@wordpress/eslint-plugin/esnext\" ]\n}\n```\n\nThese rules can be used additively, so you could extend both `esnext` and `custom` rulesets, but omit the `react` and `jsx-a11y` configurations.\n\nThe granular rulesets will not define any environment globals. As such, if they are required for your project, you will need to define them yourself.\n\n### Rules\n\n| Rule                                                                                                                                                                 | Description                                                                                    | Recommended |\n| -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ----------- |\n| [data-no-store-string-literals](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/data-no-store-string-literals.md)                 | Discourage passing string literals to reference data stores                                    |             |\n| [dependency-group](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/dependency-group.md)                                           | Enforce dependencies docblocks formatting                                                      | ✓           |\n| [is-gutenberg-plugin](docs/rules/is-gutenberg-plugin.md)                                                                                                             | Governs the use of the `process.env.IS_GUTENBERG_PLUGIN` constant                              | ✓           |\n| [no-base-control-with-label-without-id](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/no-base-control-with-label-without-id.md) | Disallow the usage of BaseControl component with a label prop set but omitting the id property | ✓           |\n| [no-unguarded-get-range-at](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/no-unguarded-get-range-at.md)                         | Disallow the usage of unguarded `getRangeAt` calls                                             | ✓           |\n| [no-unsafe-wp-apis](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/no-unsafe-wp-apis.md)                                         | Disallow the usage of unsafe APIs from `@wordpress/*` packages                                 | ✓           |\n| [no-unused-vars-before-return](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/no-unused-vars-before-return.md)                   | Disallow assigning variable values if unused before a return                                   | ✓           |\n| [react-no-unsafe-timeout](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/react-no-unsafe-timeout.md)                             | Disallow unsafe `setTimeout` in component                                                      |             |\n| [valid-sprintf](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/valid-sprintf.md)                                                 | Enforce valid sprintf usage                                                                    | ✓           |\n| [i18n-ellipsis](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-ellipsis.md)                                                 | Disallow using three dots in translatable strings                                              | ✓           |\n| [i18n-no-collapsible-whitespace](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-no-collapsible-whitespace.md)               | Disallow collapsible whitespace in translatable strings                                        | ✓           |\n| [i18n-no-placeholders-only](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-no-placeholders-only.md)                         | Prevent using only placeholders in translatable strings                                        | ✓           |\n| [i18n-no-variables](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-no-variables.md)                                         | Enforce string literals as translation function arguments                                      | ✓           |\n| [i18n-text-domain](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-text-domain.md)                                           | Enforce passing valid text domains                                                             | ✓           |\n| [i18n-translator-comments](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-translator-comments.md)                           | Enforce adding translator comments                                                             | ✓           |\n| [i18n-no-flanking-whitespace](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-no-flanking-whitespace.md)                     | Disallow leading or trailing whitespace in translatable strings                                |             |\n| [i18n-hyphenated-range](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-hyphenated-range.md)                                 | Disallow hyphenated numerical ranges in translatable strings                                   |             |\n\n### Legacy\n\nIf you are using WordPress' `.jshintrc` JSHint configuration and you would like to take the first step to migrate to an ESLint equivalent it is also possible to define your own project's `.eslintrc` file as:\n\n```json\n{\n\t\"extends\": [ \"plugin:@wordpress/eslint-plugin/jshint\" ]\n}\n```\n\n## Contributing to this package\n\nThis is an individual package that's part of the Gutenberg project. The project is organized as a monorepo. It's made up of multiple self-contained software packages, each with a specific purpose. The packages in this monorepo are published to [npm](https://www.npmjs.com/) and used by [WordPress](https://make.wordpress.org/core/) as well as other software projects.\n\nTo find out more about contributing to this package or Gutenberg as a whole, please read the project's main [contributor guide](https://github.com/WordPress/gutenberg/tree/HEAD/CONTRIBUTING.md).\n\n<br /><br /><p align=\"center\"><img src=\"https://s.w.org/style/images/codeispoetry.png?1\" alt=\"Code is Poetry.\" /></p>\n","engines":{"npm":">=6.9","node":">=12"},"gitHead":"1a1070bef21c4a81f2d662c78e5d34280338f2e2","scripts":{"test":"jest","test:watch":"jest --watch"},"_npmUser":{"name":"nicholasio","email":"nicholasio.oliveira@gmail.com"},"repository":{"url":"git+https://github.com/10up/10up-toolkit.git","type":"git","directory":"packages/eslint-plugin"},"_npmVersion":"lerna/4.0.0/node@v16.14.0+x64 (linux)","description":"ESLint plugin for WordPress development.","directories":{},"_nodeVersion":"16.14.0","dependencies":{"globals":"^13.12.0","requireindex":"^1.2.0","eslint-plugin-jest":"^25.2.3","eslint-plugin-jsdoc":"^37.0.3","eslint-plugin-react":"^7.27.0","@babel/eslint-parser":"^7.16.0","eslint-plugin-import":"^2.25.2","eslint-plugin-jsx-a11y":"^6.5.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"@10up/babel-preset-default":"^2.1.0-next.0+1a1070b"},"peerDependencies":{"eslint":">=8","@babel/core":">=7"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_1.1.0-next.0_1648043724885_0.7740088585637435","host":"s3://npm-registry-packages"}},"1.0.1-next.0":{"name":"@10up/eslint-plugin","version":"1.0.1-next.0","keywords":["wordpress","gutenberg","eslint","plugin"],"author":{"name":"10up"},"license":"GPL-2.0-or-later","_id":"@10up/eslint-plugin@1.0.1-next.0","maintainers":[{"name":"fabiankaegy","email":"mail@fabian-kaegy.de"},{"name":"brandwaffle","email":"vhauri@gmail.com"},{"name":"eugene-manuilov","email":"eugene.manuilov@gmail.com"},{"name":"christianc1","email":"christian.m.chung@gmail.com"},{"name":"nicholasio","email":"nicholasio.oliveira@gmail.com"},{"name":"joesnellpdx","email":"joesnellpdx@gmail.com"},{"name":"tlovett1","email":"tlovett88@gmail.com"},{"name":"devinle","email":"devin.leggett@gmail.com"}],"homepage":"https://github.com/10up/10up-toolkit","bugs":{"url":"https://github.com/10up/10up-toolkit/issues"},"dist":{"shasum":"2e6823a6fb181a7838728d05092add34e7d3a22a","tarball":"https://registry.npmjs.org/@10up/eslint-plugin/-/eslint-plugin-1.0.1-next.0.tgz","fileCount":55,"integrity":"sha512-h8IbCkmJ5w69n+RkCFZjGvRW6hfYKQdurxs1/fPFMEhtJPp9X6M0lBHvPe6MDG0t1o8D6TueAnbaLuC+lLd/7g==","signatures":[{"sig":"MEQCIDexto4wuEnUM6CE0RfVxLMzJExtl0jQq+cQhsJieYHIAiAwTv1MhApZCQymiBeVBafpOFngqawDwjm+1w9xi4nQEQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":113376,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiQgn3ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq3gw/+KWij9uy6dk2oDwV9A1AP60K5waXA3g5hiTc1kDM2j5qkG7H7\r\nGJdEeQZLcF1TzphvDD1dPGhkKdiTVpr9EQCwK/y+iJyyt1xOinNl46aIbNSq\r\nmkO4bcjc0WwYtXzK2nxQQqqBwUF41SEZ6uRxsBnhcjI/pMIZhKAr48EWVmKI\r\nUFiVJOb7IFdnBKXKH7mq8p4pUt1cPGAKBO1lhWlQLAdoxLF7ygYIlWH2lein\r\nda2R0aZi+GcrU7l1ArzbkMsQtg+6MIgnme+5mvBqzS/7jVE3DXdelrYIFkOd\r\n36OQzgO/LEW+0MgvBrEwi9KRnLOQ6iARREReAdcKu05IrOmMed6I8DW8gL+w\r\n6GY5VcW/KytBVjbR82NM6RioLsOqydK1XKWa9Y3Eaa1UtjlBKkuovvrL3eUx\r\nZr9Fjab9zTNjzDZqFQF/Gm2ocW/dMhzgtxeOwtPSqPuFHKsfXVI47Dr9sXYS\r\nsEXWeN1dIXBp+T32V7OuMyc+xY5azX7dbrmjGWXP52WjxF3JdHjOuoaXKls2\r\nEid9g5emkXM+1cOsdGBsZiqRHOKOKHmf3CCCLYauZq4xB7wLkqnsYw0xQ7m1\r\nDAmCIjb3F3ubsgEwkZt8eaiEHcgr2EPQMLeUfhdFu8Vatx/qnr51pYcZKIxu\r\nff0vzWzBmLmP9AVd2JpDeYeUp60TdbzA0ic=\r\n=oFRp\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","readme":"# ESLint Plugin\n\n[ESLint](https://eslint.org/) plugin including configurations and custom rules for WordPress development.\n\n## Installation\n\nInstall the module\n\n```bash\nnpm install @wordpress/eslint-plugin --save-dev\n```\n\n**Note**: This package requires `node` 12.0.0 or later, and `npm` 6.9.0 or later. It is not compatible with older versions.\n\n## Usage\n\nTo opt-in to the default configuration, extend your own project's `.eslintrc` file:\n\n```json\n{\n\t\"extends\": [ \"plugin:@wordpress/eslint-plugin/recommended\" ]\n}\n```\n\nRefer to the [ESLint documentation on Shareable Configs](http://eslint.org/docs/developer-guide/shareable-configs) for more information.\n\nThe `recommended` preset will include rules governing an ES2015+ environment, and includes rules from the [`eslint-plugin-jsx-a11y`](https://github.com/evcohen/eslint-plugin-jsx-a11y), [`eslint-plugin-react`](https://github.com/yannickcr/eslint-plugin-react), and [`eslint-plugin-prettier`](https://github.com/prettier/eslint-plugin-prettier) projects. It also includes an optional integration with [`@typescript-eslint/eslint-plugin`](https://github.com/typescript-eslint/typescript-eslint) that gets activated when the [`typescript`](https://www.npmjs.com/package/typescript) package is installed in the project.\n\nThere is also `recommended-with-formatting` ruleset for projects that want to opt out from [Prettier](https://prettier.io). It has the native ESLint code formatting rules enabled instead.\n\n### Rulesets\n\nAlternatively, you can opt-in to only the more granular rulesets offered by the plugin. These include:\n\n-   `custom`\n-   `es5`\n-   `esnext`\n-   `jsdoc`\n-   `jsx-a11y`\n-   `react`\n-   `i18n`\n-   `test-e2e`\n-   `test-unit`\n\nFor example, if your project does not use React, you could consider extending including only the ESNext rules in your project using the following `extends` definition:\n\n```json\n{\n\t\"extends\": [ \"plugin:@wordpress/eslint-plugin/esnext\" ]\n}\n```\n\nThese rules can be used additively, so you could extend both `esnext` and `custom` rulesets, but omit the `react` and `jsx-a11y` configurations.\n\nThe granular rulesets will not define any environment globals. As such, if they are required for your project, you will need to define them yourself.\n\n### Rules\n\n| Rule                                                                                                                                                                 | Description                                                                                    | Recommended |\n| -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ----------- |\n| [data-no-store-string-literals](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/data-no-store-string-literals.md)                 | Discourage passing string literals to reference data stores                                    |             |\n| [dependency-group](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/dependency-group.md)                                           | Enforce dependencies docblocks formatting                                                      | ✓           |\n| [is-gutenberg-plugin](docs/rules/is-gutenberg-plugin.md)                                                                                                             | Governs the use of the `process.env.IS_GUTENBERG_PLUGIN` constant                              | ✓           |\n| [no-base-control-with-label-without-id](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/no-base-control-with-label-without-id.md) | Disallow the usage of BaseControl component with a label prop set but omitting the id property | ✓           |\n| [no-unguarded-get-range-at](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/no-unguarded-get-range-at.md)                         | Disallow the usage of unguarded `getRangeAt` calls                                             | ✓           |\n| [no-unsafe-wp-apis](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/no-unsafe-wp-apis.md)                                         | Disallow the usage of unsafe APIs from `@wordpress/*` packages                                 | ✓           |\n| [no-unused-vars-before-return](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/no-unused-vars-before-return.md)                   | Disallow assigning variable values if unused before a return                                   | ✓           |\n| [react-no-unsafe-timeout](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/react-no-unsafe-timeout.md)                             | Disallow unsafe `setTimeout` in component                                                      |             |\n| [valid-sprintf](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/valid-sprintf.md)                                                 | Enforce valid sprintf usage                                                                    | ✓           |\n| [i18n-ellipsis](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-ellipsis.md)                                                 | Disallow using three dots in translatable strings                                              | ✓           |\n| [i18n-no-collapsible-whitespace](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-no-collapsible-whitespace.md)               | Disallow collapsible whitespace in translatable strings                                        | ✓           |\n| [i18n-no-placeholders-only](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-no-placeholders-only.md)                         | Prevent using only placeholders in translatable strings                                        | ✓           |\n| [i18n-no-variables](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-no-variables.md)                                         | Enforce string literals as translation function arguments                                      | ✓           |\n| [i18n-text-domain](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-text-domain.md)                                           | Enforce passing valid text domains                                                             | ✓           |\n| [i18n-translator-comments](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-translator-comments.md)                           | Enforce adding translator comments                                                             | ✓           |\n| [i18n-no-flanking-whitespace](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-no-flanking-whitespace.md)                     | Disallow leading or trailing whitespace in translatable strings                                |             |\n| [i18n-hyphenated-range](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-hyphenated-range.md)                                 | Disallow hyphenated numerical ranges in translatable strings                                   |             |\n\n### Legacy\n\nIf you are using WordPress' `.jshintrc` JSHint configuration and you would like to take the first step to migrate to an ESLint equivalent it is also possible to define your own project's `.eslintrc` file as:\n\n```json\n{\n\t\"extends\": [ \"plugin:@wordpress/eslint-plugin/jshint\" ]\n}\n```\n\n## Contributing to this package\n\nThis is an individual package that's part of the Gutenberg project. The project is organized as a monorepo. It's made up of multiple self-contained software packages, each with a specific purpose. The packages in this monorepo are published to [npm](https://www.npmjs.com/) and used by [WordPress](https://make.wordpress.org/core/) as well as other software projects.\n\nTo find out more about contributing to this package or Gutenberg as a whole, please read the project's main [contributor guide](https://github.com/WordPress/gutenberg/tree/HEAD/CONTRIBUTING.md).\n\n<br /><br /><p align=\"center\"><img src=\"https://s.w.org/style/images/codeispoetry.png?1\" alt=\"Code is Poetry.\" /></p>\n","engines":{"npm":">=6.9","node":">=12"},"gitHead":"7ae83fa573078342bd20a3e59cb4f699c705082a","scripts":{"test":"jest","test:watch":"jest --watch"},"_npmUser":{"name":"nicholasio","email":"nicholasio.oliveira@gmail.com"},"repository":{"url":"git+https://github.com/10up/10up-toolkit.git","type":"git","directory":"packages/eslint-plugin"},"_npmVersion":"lerna/4.0.0/node@v16.14.0+x64 (linux)","description":"ESLint plugin for WordPress development.","directories":{},"_nodeVersion":"16.14.0","dependencies":{"globals":"^13.12.0","requireindex":"^1.2.0","eslint-plugin-jest":"^25.2.3","eslint-plugin-jsdoc":"^37.0.3","eslint-plugin-react":"^7.27.0","@babel/eslint-parser":"^7.16.0","eslint-plugin-import":"^2.25.2","eslint-plugin-jsx-a11y":"^6.5.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"@10up/babel-preset-default":"^2.0.1-next.0"},"peerDependencies":{"eslint":">=8","@babel/core":">=7"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_1.0.1-next.0_1648495094938_0.9722052033240431","host":"s3://npm-registry-packages"}},"1.0.1-next.1":{"name":"@10up/eslint-plugin","version":"1.0.1-next.1","keywords":["wordpress","gutenberg","eslint","plugin"],"author":{"name":"10up"},"license":"GPL-2.0-or-later","_id":"@10up/eslint-plugin@1.0.1-next.1","maintainers":[{"name":"fabiankaegy","email":"mail@fabian-kaegy.de"},{"name":"brandwaffle","email":"vhauri@gmail.com"},{"name":"eugene-manuilov","email":"eugene.manuilov@gmail.com"},{"name":"christianc1","email":"christian.m.chung@gmail.com"},{"name":"nicholasio","email":"nicholasio.oliveira@gmail.com"},{"name":"joesnellpdx","email":"joesnellpdx@gmail.com"},{"name":"tlovett1","email":"tlovett88@gmail.com"},{"name":"devinle","email":"devin.leggett@gmail.com"}],"homepage":"https://github.com/10up/10up-toolkit","bugs":{"url":"https://github.com/10up/10up-toolkit/issues"},"dist":{"shasum":"0a4b3861b142cf5d78aa9a20f71c3d893772d57f","tarball":"https://registry.npmjs.org/@10up/eslint-plugin/-/eslint-plugin-1.0.1-next.1.tgz","fileCount":55,"integrity":"sha512-sUdi1LyY7qDMtkla+080XsDvel+c51yYNSl/0/dy+zvx5VcuGP5tJuNou4PY9eZ3kK0zDVfqEuLioeFHmoxxgg==","signatures":[{"sig":"MEUCICE8hUKaD9NjYxVlFcDpyL/sWzgNRdgXw3qRz3+8WeuOAiEAqBn3YZhoXUPPJnOFBdLWBw3UMY9q/5xyliD8fBWSMuE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":113376,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiQlExACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmoriw/+MrKoxqVSYd2kmE0fwVuh5a2DnFXltHoWKvHIleL1sQ6W4gEO\r\n8hOdtJZ7X42krFwv0nWFrJZTwYct8dWt0TdX14hT8CDM3eVbJprBMtRBAPcy\r\nWzj3p2v5l8SfrU4jb9bHRjNUAWPUQUNun0l/6zMtCayjKwwmNEePh38RnFFT\r\nS6wY2y8r7erVKAHXRowGwqOToX/ZaVVpdTMRTIAR5o1dBdM7k4/hzaSYFSdr\r\nkxuk+6ImBJOnEF4/shMeJOwEBsiCsGxun9UsBMPe6ejf4ERIbTI17YMfqHvx\r\nLsalLqQaCewepeNARgVbbCHJD8i9gpkfXQAD7w1iRGW9SZvYlrSBsjfScFQm\r\nfBHHlL6Er6azVg8Jb/6gdQnodF6RjyABA7rLL6kEzuP7gqLZtOlqasL4UsRm\r\n7i6cIG2aFwjXsjGFSOkNPnNARNo8c4AgAgdpnPt2/+IDC/IAf1tuvwCTTQXX\r\nUnpCvHYkske43LOrTJX4SkmwRIoyyOaQ3vKS/85djDHzCfrN1V+0JuStfHcT\r\nvbs65WB2F60jWbiTgxWx0crCRBK+svjRD8NofkGrBef7DelZEfKVUjznHYd/\r\nvM9rl6SSf/Ru4Vph1LTj4a8iyaasonBeA1o6GNlcs4o0fyVrsz3FVoqcT8ge\r\n5gobvpNIGvAQhzmcp1FFSN443X+AHasIL4E=\r\n=RY8L\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","readme":"# ESLint Plugin\n\n[ESLint](https://eslint.org/) plugin including configurations and custom rules for WordPress development.\n\n## Installation\n\nInstall the module\n\n```bash\nnpm install @wordpress/eslint-plugin --save-dev\n```\n\n**Note**: This package requires `node` 12.0.0 or later, and `npm` 6.9.0 or later. It is not compatible with older versions.\n\n## Usage\n\nTo opt-in to the default configuration, extend your own project's `.eslintrc` file:\n\n```json\n{\n\t\"extends\": [ \"plugin:@wordpress/eslint-plugin/recommended\" ]\n}\n```\n\nRefer to the [ESLint documentation on Shareable Configs](http://eslint.org/docs/developer-guide/shareable-configs) for more information.\n\nThe `recommended` preset will include rules governing an ES2015+ environment, and includes rules from the [`eslint-plugin-jsx-a11y`](https://github.com/evcohen/eslint-plugin-jsx-a11y), [`eslint-plugin-react`](https://github.com/yannickcr/eslint-plugin-react), and [`eslint-plugin-prettier`](https://github.com/prettier/eslint-plugin-prettier) projects. It also includes an optional integration with [`@typescript-eslint/eslint-plugin`](https://github.com/typescript-eslint/typescript-eslint) that gets activated when the [`typescript`](https://www.npmjs.com/package/typescript) package is installed in the project.\n\nThere is also `recommended-with-formatting` ruleset for projects that want to opt out from [Prettier](https://prettier.io). It has the native ESLint code formatting rules enabled instead.\n\n### Rulesets\n\nAlternatively, you can opt-in to only the more granular rulesets offered by the plugin. These include:\n\n-   `custom`\n-   `es5`\n-   `esnext`\n-   `jsdoc`\n-   `jsx-a11y`\n-   `react`\n-   `i18n`\n-   `test-e2e`\n-   `test-unit`\n\nFor example, if your project does not use React, you could consider extending including only the ESNext rules in your project using the following `extends` definition:\n\n```json\n{\n\t\"extends\": [ \"plugin:@wordpress/eslint-plugin/esnext\" ]\n}\n```\n\nThese rules can be used additively, so you could extend both `esnext` and `custom` rulesets, but omit the `react` and `jsx-a11y` configurations.\n\nThe granular rulesets will not define any environment globals. As such, if they are required for your project, you will need to define them yourself.\n\n### Rules\n\n| Rule                                                                                                                                                                 | Description                                                                                    | Recommended |\n| -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ----------- |\n| [data-no-store-string-literals](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/data-no-store-string-literals.md)                 | Discourage passing string literals to reference data stores                                    |             |\n| [dependency-group](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/dependency-group.md)                                           | Enforce dependencies docblocks formatting                                                      | ✓           |\n| [is-gutenberg-plugin](docs/rules/is-gutenberg-plugin.md)                                                                                                             | Governs the use of the `process.env.IS_GUTENBERG_PLUGIN` constant                              | ✓           |\n| [no-base-control-with-label-without-id](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/no-base-control-with-label-without-id.md) | Disallow the usage of BaseControl component with a label prop set but omitting the id property | ✓           |\n| [no-unguarded-get-range-at](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/no-unguarded-get-range-at.md)                         | Disallow the usage of unguarded `getRangeAt` calls                                             | ✓           |\n| [no-unsafe-wp-apis](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/no-unsafe-wp-apis.md)                                         | Disallow the usage of unsafe APIs from `@wordpress/*` packages                                 | ✓           |\n| [no-unused-vars-before-return](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/no-unused-vars-before-return.md)                   | Disallow assigning variable values if unused before a return                                   | ✓           |\n| [react-no-unsafe-timeout](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/react-no-unsafe-timeout.md)                             | Disallow unsafe `setTimeout` in component                                                      |             |\n| [valid-sprintf](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/valid-sprintf.md)                                                 | Enforce valid sprintf usage                                                                    | ✓           |\n| [i18n-ellipsis](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-ellipsis.md)                                                 | Disallow using three dots in translatable strings                                              | ✓           |\n| [i18n-no-collapsible-whitespace](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-no-collapsible-whitespace.md)               | Disallow collapsible whitespace in translatable strings                                        | ✓           |\n| [i18n-no-placeholders-only](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-no-placeholders-only.md)                         | Prevent using only placeholders in translatable strings                                        | ✓           |\n| [i18n-no-variables](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-no-variables.md)                                         | Enforce string literals as translation function arguments                                      | ✓           |\n| [i18n-text-domain](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-text-domain.md)                                           | Enforce passing valid text domains                                                             | ✓           |\n| [i18n-translator-comments](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-translator-comments.md)                           | Enforce adding translator comments                                                             | ✓           |\n| [i18n-no-flanking-whitespace](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-no-flanking-whitespace.md)                     | Disallow leading or trailing whitespace in translatable strings                                |             |\n| [i18n-hyphenated-range](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-hyphenated-range.md)                                 | Disallow hyphenated numerical ranges in translatable strings                                   |             |\n\n### Legacy\n\nIf you are using WordPress' `.jshintrc` JSHint configuration and you would like to take the first step to migrate to an ESLint equivalent it is also possible to define your own project's `.eslintrc` file as:\n\n```json\n{\n\t\"extends\": [ \"plugin:@wordpress/eslint-plugin/jshint\" ]\n}\n```\n\n## Contributing to this package\n\nThis is an individual package that's part of the Gutenberg project. The project is organized as a monorepo. It's made up of multiple self-contained software packages, each with a specific purpose. The packages in this monorepo are published to [npm](https://www.npmjs.com/) and used by [WordPress](https://make.wordpress.org/core/) as well as other software projects.\n\nTo find out more about contributing to this package or Gutenberg as a whole, please read the project's main [contributor guide](https://github.com/WordPress/gutenberg/tree/HEAD/CONTRIBUTING.md).\n\n<br /><br /><p align=\"center\"><img src=\"https://s.w.org/style/images/codeispoetry.png?1\" alt=\"Code is Poetry.\" /></p>\n","engines":{"npm":">=6.9","node":">=12"},"gitHead":"d032f9e4f2ca23c02565991a170641afe1ea13f1","scripts":{"test":"jest","test:watch":"jest --watch"},"_npmUser":{"name":"nicholasio","email":"nicholasio.oliveira@gmail.com"},"repository":{"url":"git+https://github.com/10up/10up-toolkit.git","type":"git","directory":"packages/eslint-plugin"},"_npmVersion":"lerna/4.0.0/node@v16.14.0+x64 (linux)","description":"ESLint plugin for WordPress development.","directories":{},"_nodeVersion":"16.14.0","dependencies":{"globals":"^13.12.0","requireindex":"^1.2.0","eslint-plugin-jest":"^25.2.3","eslint-plugin-jsdoc":"^37.0.3","eslint-plugin-react":"^7.27.0","@babel/eslint-parser":"^7.16.0","eslint-plugin-import":"^2.25.2","eslint-plugin-jsx-a11y":"^6.5.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"@10up/babel-preset-default":"^2.0.1-next.1"},"peerDependencies":{"eslint":">=8","@babel/core":">=7"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_1.0.1-next.1_1648513329338_0.5751302024290701","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"@10up/eslint-plugin","version":"1.0.1","keywords":["wordpress","gutenberg","eslint","plugin"],"author":{"name":"10up"},"license":"GPL-2.0-or-later","_id":"@10up/eslint-plugin@1.0.1","maintainers":[{"name":"fabiankaegy","email":"mail@fabian-kaegy.de"},{"name":"brandwaffle","email":"vhauri@gmail.com"},{"name":"eugene-manuilov","email":"eugene.manuilov@gmail.com"},{"name":"christianc1","email":"christian.m.chung@gmail.com"},{"name":"nicholasio","email":"nicholasio.oliveira@gmail.com"},{"name":"joesnellpdx","email":"joesnellpdx@gmail.com"},{"name":"tlovett1","email":"tlovett88@gmail.com"},{"name":"devinle","email":"devin.leggett@gmail.com"}],"homepage":"https://github.com/10up/10up-toolkit","bugs":{"url":"https://github.com/10up/10up-toolkit/issues"},"dist":{"shasum":"f2675e832e3c61e5dbef314723551e894dfccc75","tarball":"https://registry.npmjs.org/@10up/eslint-plugin/-/eslint-plugin-1.0.1.tgz","fileCount":56,"integrity":"sha512-7/c3e60sQ+Y4eF6LOqEG1jYQ6PoAo4mAUuRwD5Mk5YuNUg9pKZ/75rwSYXhrjlMZ1WvOUUh/UdDwtPkStdt1xw==","signatures":[{"sig":"MEUCIAI9vOIuwmHmJIpDkq5JVMuYyQ9VxZxX4QwR1gR88MDsAiEAwZTRkK2T2JXgYJ8MNq60qA3lnFHBZdFwZiXC8PmWXDw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":113553,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiRNP4ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo35xAApD6YsNcMs9lUf1rjxmkGE+FoX4/NB+MI8BqaN0rq0u3BKk4a\r\n8oJPZQApgr0yaxAU9Og6rH7Zp8W7g+UMwSYxnSUNYHv+ojZRCWPURLdRHL+s\r\nh1W9/0GIUFgqDHL/J3MLQcXQSI4oo1NQC+J6wvBQJz7iHFm+8368SscJmc/Z\r\ns2kWxLGcn7ihy2CXv0dPxkiDEaTOJixCYqRmXuLsnqJnkORtXImG6DQZ9WiK\r\nlo/KblTYppPcVbGlA/TnZg2w4wDZmSk0S8IXtcQzzRD22whOtQQ9tu6nwqOZ\r\n+dxBTGU2G2vD9g74Qw+1oB4Oi6bz3+hUOM+may0jaGlDJAjZimDtBzLrQMLW\r\n33P2E3GGk8HxhkVDh743/ca+xVBL+CCKNfR44GaRli+AODQ/CIMEJjlzRW0U\r\nVQ4hFTduyqG/MCJ5FYR/K5sFWyfRXMPYdBN+cPqVOy4U95YEepPZl2CTDV1e\r\nT5Y7u5w1DcXXfjuUan3KfySIUkSfW/2szbF1NPoxujuA3KlRkm0WtCNPhY4i\r\nS4mHGUZDwsO6dA2+zBXDKSAvGH8+nGz52PAtDoRKNFzt6USAsvYVliwbk0Dg\r\nK4El8NZa6AFrtSXu3vsukFnbl0ua5HpOzmnxOQN3ZD1NfX9qyEkiHU1d9xK4\r\n1Z0DD3r2V6JPP+Y8+4zMzv2M0FvvXTdpsMA=\r\n=YfsB\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","engines":{"npm":">=6.9","node":">=12"},"gitHead":"6c5c670bea07ff50a5edab36e88dc31a1bce2ef4","scripts":{"test":"jest","test:watch":"jest --watch"},"_npmUser":{"name":"nicholasio","email":"nicholasio.oliveira@gmail.com"},"repository":{"url":"git+https://github.com/10up/10up-toolkit.git","type":"git","directory":"packages/eslint-plugin"},"_npmVersion":"lerna/3.22.1/node@v16.14.2+x64 (linux)","description":"ESLint plugin for WordPress development.","directories":{},"_nodeVersion":"16.14.2","dependencies":{"globals":"^13.12.0","requireindex":"^1.2.0","eslint-plugin-jest":"^25.2.3","eslint-plugin-jsdoc":"^37.0.3","eslint-plugin-react":"^7.27.0","@babel/eslint-parser":"^7.16.0","eslint-plugin-import":"^2.25.2","eslint-plugin-jsx-a11y":"^6.5.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@10up/babel-preset-default":"^2.0.1"},"peerDependencies":{"eslint":">=8","@babel/core":">=7"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_1.0.1_1648677879707_0.4722306082830179","host":"s3://npm-registry-packages"}},"1.0.2-next.0":{"name":"@10up/eslint-plugin","version":"1.0.2-next.0","keywords":["wordpress","gutenberg","eslint","plugin"],"author":{"name":"10up"},"license":"GPL-2.0-or-later","_id":"@10up/eslint-plugin@1.0.2-next.0","maintainers":[{"name":"fabiankaegy","email":"mail@fabian-kaegy.de"},{"name":"brandwaffle","email":"vhauri@gmail.com"},{"name":"eugene-manuilov","email":"eugene.manuilov@gmail.com"},{"name":"christianc1","email":"christian.m.chung@gmail.com"},{"name":"nicholasio","email":"nicholasio.oliveira@gmail.com"},{"name":"joesnellpdx","email":"joesnellpdx@gmail.com"},{"name":"tlovett1","email":"tlovett88@gmail.com"},{"name":"devinle","email":"devin.leggett@gmail.com"}],"homepage":"https://github.com/10up/10up-toolkit","bugs":{"url":"https://github.com/10up/10up-toolkit/issues"},"dist":{"shasum":"c697a6f47309ac709ecb295aba4e52a20cd38864","tarball":"https://registry.npmjs.org/@10up/eslint-plugin/-/eslint-plugin-1.0.2-next.0.tgz","fileCount":55,"integrity":"sha512-VuVgC6Wh02WjeZ/ETWA3FTbAvFheXN6C0cCQq0INzLC4L9k//i++afpObFrhPL9a9TYKbrdrxTl++Ly2BeOMkg==","signatures":[{"sig":"MEQCIDcweZax01/6el/DnztHDYNXvGGRuCN/NQpU8jwx9x7vAiA2BePRC8+vR2H7u3CY2Sc/RtOWK3a5vB+Km5UFyGrwNQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":113376,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiRd9hACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpIKg/+IuJQihF/0iYhWhA1tSKuo2DvrHKZj2zLFtPdHvY4OrUtO6fv\r\nGj1ITvphvm63nqElfhQqVRSeQv+8mvB580fSz/62c6RgM595+soty4PGPbYL\r\n2gvECp2GsEdmspAdjGAa2KZu3gr4FnrHgLA2UIMMJPOPtkW28YRJVwGOwCKy\r\n6jJN+r7IiKtzskwh2QHcn0MJ+uiRnNIQhp3RTA1DAQW508Q8A25AHiecFyuy\r\nD47j0j6JNrs5U1FGgrV+ik5+vXuzNlVJomYoJ0qugMA+3UHO9jGa59u6w/tY\r\ncNjR750Ym5dkPcs/Nbn2YMQpVYIlHm7mRSTReCxWEJNZOy7VzOSoIrQg7c5T\r\nTzYagWTOqsPQcnLzPlEowqUmUj7ICR1RLqr9WkLBvLEQBJDPM+N9nd8REPpu\r\nmnC1D2eA/79YCw9AhEuU+atnOEhJVoCWChcne+NNrX46XaCbnGAb8EemxCkF\r\nh1xsuTGuoqcHPjtdMvFIh0ldDVTfqTPlZ8bwHEdsclT7d1TDBzSOVeYosEKI\r\nvScaXyfsX7LpeZPW3pGSHG8SxoStO7i0l5iMQqJEkio7K6vApyxnDRnER3gi\r\nWbVHZfRIwcW2Lr3vUD5VoLYO7knIhvlHVv+GUOa5EysyhV5y1I3wMUOcl6ED\r\neLhvjagoaiXwEbY2lCUMZRy8gSwbYDy2cYk=\r\n=VepI\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","readme":"# ESLint Plugin\n\n[ESLint](https://eslint.org/) plugin including configurations and custom rules for WordPress development.\n\n## Installation\n\nInstall the module\n\n```bash\nnpm install @wordpress/eslint-plugin --save-dev\n```\n\n**Note**: This package requires `node` 12.0.0 or later, and `npm` 6.9.0 or later. It is not compatible with older versions.\n\n## Usage\n\nTo opt-in to the default configuration, extend your own project's `.eslintrc` file:\n\n```json\n{\n\t\"extends\": [ \"plugin:@wordpress/eslint-plugin/recommended\" ]\n}\n```\n\nRefer to the [ESLint documentation on Shareable Configs](http://eslint.org/docs/developer-guide/shareable-configs) for more information.\n\nThe `recommended` preset will include rules governing an ES2015+ environment, and includes rules from the [`eslint-plugin-jsx-a11y`](https://github.com/evcohen/eslint-plugin-jsx-a11y), [`eslint-plugin-react`](https://github.com/yannickcr/eslint-plugin-react), and [`eslint-plugin-prettier`](https://github.com/prettier/eslint-plugin-prettier) projects. It also includes an optional integration with [`@typescript-eslint/eslint-plugin`](https://github.com/typescript-eslint/typescript-eslint) that gets activated when the [`typescript`](https://www.npmjs.com/package/typescript) package is installed in the project.\n\nThere is also `recommended-with-formatting` ruleset for projects that want to opt out from [Prettier](https://prettier.io). It has the native ESLint code formatting rules enabled instead.\n\n### Rulesets\n\nAlternatively, you can opt-in to only the more granular rulesets offered by the plugin. These include:\n\n-   `custom`\n-   `es5`\n-   `esnext`\n-   `jsdoc`\n-   `jsx-a11y`\n-   `react`\n-   `i18n`\n-   `test-e2e`\n-   `test-unit`\n\nFor example, if your project does not use React, you could consider extending including only the ESNext rules in your project using the following `extends` definition:\n\n```json\n{\n\t\"extends\": [ \"plugin:@wordpress/eslint-plugin/esnext\" ]\n}\n```\n\nThese rules can be used additively, so you could extend both `esnext` and `custom` rulesets, but omit the `react` and `jsx-a11y` configurations.\n\nThe granular rulesets will not define any environment globals. As such, if they are required for your project, you will need to define them yourself.\n\n### Rules\n\n| Rule                                                                                                                                                                 | Description                                                                                    | Recommended |\n| -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ----------- |\n| [data-no-store-string-literals](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/data-no-store-string-literals.md)                 | Discourage passing string literals to reference data stores                                    |             |\n| [dependency-group](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/dependency-group.md)                                           | Enforce dependencies docblocks formatting                                                      | ✓           |\n| [is-gutenberg-plugin](docs/rules/is-gutenberg-plugin.md)                                                                                                             | Governs the use of the `process.env.IS_GUTENBERG_PLUGIN` constant                              | ✓           |\n| [no-base-control-with-label-without-id](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/no-base-control-with-label-without-id.md) | Disallow the usage of BaseControl component with a label prop set but omitting the id property | ✓           |\n| [no-unguarded-get-range-at](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/no-unguarded-get-range-at.md)                         | Disallow the usage of unguarded `getRangeAt` calls                                             | ✓           |\n| [no-unsafe-wp-apis](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/no-unsafe-wp-apis.md)                                         | Disallow the usage of unsafe APIs from `@wordpress/*` packages                                 | ✓           |\n| [no-unused-vars-before-return](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/no-unused-vars-before-return.md)                   | Disallow assigning variable values if unused before a return                                   | ✓           |\n| [react-no-unsafe-timeout](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/react-no-unsafe-timeout.md)                             | Disallow unsafe `setTimeout` in component                                                      |             |\n| [valid-sprintf](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/valid-sprintf.md)                                                 | Enforce valid sprintf usage                                                                    | ✓           |\n| [i18n-ellipsis](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-ellipsis.md)                                                 | Disallow using three dots in translatable strings                                              | ✓           |\n| [i18n-no-collapsible-whitespace](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-no-collapsible-whitespace.md)               | Disallow collapsible whitespace in translatable strings                                        | ✓           |\n| [i18n-no-placeholders-only](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-no-placeholders-only.md)                         | Prevent using only placeholders in translatable strings                                        | ✓           |\n| [i18n-no-variables](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-no-variables.md)                                         | Enforce string literals as translation function arguments                                      | ✓           |\n| [i18n-text-domain](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-text-domain.md)                                           | Enforce passing valid text domains                                                             | ✓           |\n| [i18n-translator-comments](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-translator-comments.md)                           | Enforce adding translator comments                                                             | ✓           |\n| [i18n-no-flanking-whitespace](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-no-flanking-whitespace.md)                     | Disallow leading or trailing whitespace in translatable strings                                |             |\n| [i18n-hyphenated-range](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-hyphenated-range.md)                                 | Disallow hyphenated numerical ranges in translatable strings                                   |             |\n\n### Legacy\n\nIf you are using WordPress' `.jshintrc` JSHint configuration and you would like to take the first step to migrate to an ESLint equivalent it is also possible to define your own project's `.eslintrc` file as:\n\n```json\n{\n\t\"extends\": [ \"plugin:@wordpress/eslint-plugin/jshint\" ]\n}\n```\n\n## Contributing to this package\n\nThis is an individual package that's part of the Gutenberg project. The project is organized as a monorepo. It's made up of multiple self-contained software packages, each with a specific purpose. The packages in this monorepo are published to [npm](https://www.npmjs.com/) and used by [WordPress](https://make.wordpress.org/core/) as well as other software projects.\n\nTo find out more about contributing to this package or Gutenberg as a whole, please read the project's main [contributor guide](https://github.com/WordPress/gutenberg/tree/HEAD/CONTRIBUTING.md).\n\n<br /><br /><p align=\"center\"><img src=\"https://s.w.org/style/images/codeispoetry.png?1\" alt=\"Code is Poetry.\" /></p>\n","engines":{"npm":">=6.9","node":">=12"},"gitHead":"b8c85cbf42ebdcb43c5eabc2e626bb3a2f4443dc","scripts":{"test":"jest","test:watch":"jest --watch"},"_npmUser":{"name":"nicholasio","email":"nicholasio.oliveira@gmail.com"},"repository":{"url":"git+https://github.com/10up/10up-toolkit.git","type":"git","directory":"packages/eslint-plugin"},"_npmVersion":"lerna/4.0.0/node@v16.14.0+x64 (linux)","description":"ESLint plugin for WordPress development.","directories":{},"_nodeVersion":"16.14.0","dependencies":{"globals":"^13.12.0","requireindex":"^1.2.0","eslint-plugin-jest":"^25.2.3","eslint-plugin-jsdoc":"^37.0.3","eslint-plugin-react":"^7.27.0","@babel/eslint-parser":"^7.16.0","eslint-plugin-import":"^2.25.2","eslint-plugin-jsx-a11y":"^6.5.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"@10up/babel-preset-default":"^2.0.2-next.0"},"peerDependencies":{"eslint":">=8","@babel/core":">=7"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_1.0.2-next.0_1648746337241_0.4820946704149218","host":"s3://npm-registry-packages"}},"1.0.2-next.1":{"name":"@10up/eslint-plugin","version":"1.0.2-next.1","keywords":["wordpress","gutenberg","eslint","plugin"],"author":{"name":"10up"},"license":"GPL-2.0-or-later","_id":"@10up/eslint-plugin@1.0.2-next.1","maintainers":[{"name":"fabiankaegy","email":"mail@fabian-kaegy.de"},{"name":"brandwaffle","email":"vhauri@gmail.com"},{"name":"eugene-manuilov","email":"eugene.manuilov@gmail.com"},{"name":"christianc1","email":"christian.m.chung@gmail.com"},{"name":"nicholasio","email":"nicholasio.oliveira@gmail.com"},{"name":"joesnellpdx","email":"joesnellpdx@gmail.com"},{"name":"tlovett1","email":"tlovett88@gmail.com"},{"name":"devinle","email":"devin.leggett@gmail.com"}],"homepage":"https://github.com/10up/10up-toolkit","bugs":{"url":"https://github.com/10up/10up-toolkit/issues"},"dist":{"shasum":"25357768c5ad755564997c4b7463dc21d1d7c5a4","tarball":"https://registry.npmjs.org/@10up/eslint-plugin/-/eslint-plugin-1.0.2-next.1.tgz","fileCount":55,"integrity":"sha512-ZFk84C5e1x6ugRUjuo9JyZB+gihuZj8uBz/Nwc/BNIMn9fJQz7AP4+ePMpQ18GLfxUb6GgMQw9FsgL9QSiHqLw==","signatures":[{"sig":"MEUCIQD1tJ6IalGbvHeOIoJMd0igEBDZNnX7C8Anmhsls98RsgIgcR8n1fL5G0GI1+Zyhb0HhuTPr1+hWtFsTNzgF4WFYeQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":113376,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiVHSsACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr4wQ/+P6ig9bUzAgmbYpm1t+apd5iVbUWxzV9xlQuWzuLPeZBewHJe\r\nCORUO1nsyKsBqjc9nsqDm01OhIhzEv2rZ0FFyTJkKVTxv3eqx+zrOWJl/jTv\r\nx4CijyF/BFTYEvTOn3DQdYIT47MZOy8Prc6yDNQH5DMAWVLk/JIOVlvpvu6Y\r\nkoDUntumBtztCK3HFosBtK9hGdVkuMLwaySJgzXS4lbOlE3uOoO/2967n9Q2\r\nXT3V8lFTdSfgOiHEqBYsw9VKI8zpG7lLjul2Xkoxk+AQGjz2CzgTyXGEdJvs\r\ncptSvuUJiomrIVkpBrlwu7ALT36FY5zlYyCjT2qrtZLNW9Bft4rXvgB7vfHs\r\nUFPtj+qswyszyMNdcbP/Rg1LEProrY5cDKqPuuw5OhydzVGVrG8vEqsVi9Ov\r\nJH1ASxgqjclNedw0RJc5Gd8v0ZycrZ8a6gT14i33Uq1PWyMAFZbslqEeLJBu\r\n5BnEXO/YxWr/tmDAxPkZHHeUNHoL17aWQ38ZwLV3+BIQ4QwYPIOaiHZUUK2G\r\n+TBup/ndIpPH80wAj2oRGGwCRICRsEIUVk80rULDPXwJ1tAu0ibVyfhvlCGG\r\n9sNODL8g8FecDqKRqSlMSSFt1POhjL+oC/fAtjQkzo0lMxomFGBHLmijWmpw\r\nwH6G52rAeLOVCnqK+A8xUkDXz197/XApEgk=\r\n=Ws4x\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","readme":"# ESLint Plugin\n\n[ESLint](https://eslint.org/) plugin including configurations and custom rules for WordPress development.\n\n## Installation\n\nInstall the module\n\n```bash\nnpm install @wordpress/eslint-plugin --save-dev\n```\n\n**Note**: This package requires `node` 12.0.0 or later, and `npm` 6.9.0 or later. It is not compatible with older versions.\n\n## Usage\n\nTo opt-in to the default configuration, extend your own project's `.eslintrc` file:\n\n```json\n{\n\t\"extends\": [ \"plugin:@wordpress/eslint-plugin/recommended\" ]\n}\n```\n\nRefer to the [ESLint documentation on Shareable Configs](http://eslint.org/docs/developer-guide/shareable-configs) for more information.\n\nThe `recommended` preset will include rules governing an ES2015+ environment, and includes rules from the [`eslint-plugin-jsx-a11y`](https://github.com/evcohen/eslint-plugin-jsx-a11y), [`eslint-plugin-react`](https://github.com/yannickcr/eslint-plugin-react), and [`eslint-plugin-prettier`](https://github.com/prettier/eslint-plugin-prettier) projects. It also includes an optional integration with [`@typescript-eslint/eslint-plugin`](https://github.com/typescript-eslint/typescript-eslint) that gets activated when the [`typescript`](https://www.npmjs.com/package/typescript) package is installed in the project.\n\nThere is also `recommended-with-formatting` ruleset for projects that want to opt out from [Prettier](https://prettier.io). It has the native ESLint code formatting rules enabled instead.\n\n### Rulesets\n\nAlternatively, you can opt-in to only the more granular rulesets offered by the plugin. These include:\n\n-   `custom`\n-   `es5`\n-   `esnext`\n-   `jsdoc`\n-   `jsx-a11y`\n-   `react`\n-   `i18n`\n-   `test-e2e`\n-   `test-unit`\n\nFor example, if your project does not use React, you could consider extending including only the ESNext rules in your project using the following `extends` definition:\n\n```json\n{\n\t\"extends\": [ \"plugin:@wordpress/eslint-plugin/esnext\" ]\n}\n```\n\nThese rules can be used additively, so you could extend both `esnext` and `custom` rulesets, but omit the `react` and `jsx-a11y` configurations.\n\nThe granular rulesets will not define any environment globals. As such, if they are required for your project, you will need to define them yourself.\n\n### Rules\n\n| Rule                                                                                                                                                                 | Description                                                                                    | Recommended |\n| -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ----------- |\n| [data-no-store-string-literals](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/data-no-store-string-literals.md)                 | Discourage passing string literals to reference data stores                                    |             |\n| [dependency-group](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/dependency-group.md)                                           | Enforce dependencies docblocks formatting                                                      | ✓           |\n| [is-gutenberg-plugin](docs/rules/is-gutenberg-plugin.md)                                                                                                             | Governs the use of the `process.env.IS_GUTENBERG_PLUGIN` constant                              | ✓           |\n| [no-base-control-with-label-without-id](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/no-base-control-with-label-without-id.md) | Disallow the usage of BaseControl component with a label prop set but omitting the id property | ✓           |\n| [no-unguarded-get-range-at](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/no-unguarded-get-range-at.md)                         | Disallow the usage of unguarded `getRangeAt` calls                                             | ✓           |\n| [no-unsafe-wp-apis](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/no-unsafe-wp-apis.md)                                         | Disallow the usage of unsafe APIs from `@wordpress/*` packages                                 | ✓           |\n| [no-unused-vars-before-return](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/no-unused-vars-before-return.md)                   | Disallow assigning variable values if unused before a return                                   | ✓           |\n| [react-no-unsafe-timeout](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/react-no-unsafe-timeout.md)                             | Disallow unsafe `setTimeout` in component                                                      |             |\n| [valid-sprintf](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/valid-sprintf.md)                                                 | Enforce valid sprintf usage                                                                    | ✓           |\n| [i18n-ellipsis](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-ellipsis.md)                                                 | Disallow using three dots in translatable strings                                              | ✓           |\n| [i18n-no-collapsible-whitespace](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-no-collapsible-whitespace.md)               | Disallow collapsible whitespace in translatable strings                                        | ✓           |\n| [i18n-no-placeholders-only](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-no-placeholders-only.md)                         | Prevent using only placeholders in translatable strings                                        | ✓           |\n| [i18n-no-variables](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-no-variables.md)                                         | Enforce string literals as translation function arguments                                      | ✓           |\n| [i18n-text-domain](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-text-domain.md)                                           | Enforce passing valid text domains                                                             | ✓           |\n| [i18n-translator-comments](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-translator-comments.md)                           | Enforce adding translator comments                                                             | ✓           |\n| [i18n-no-flanking-whitespace](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-no-flanking-whitespace.md)                     | Disallow leading or trailing whitespace in translatable strings                                |             |\n| [i18n-hyphenated-range](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-hyphenated-range.md)                                 | Disallow hyphenated numerical ranges in translatable strings                                   |             |\n\n### Legacy\n\nIf you are using WordPress' `.jshintrc` JSHint configuration and you would like to take the first step to migrate to an ESLint equivalent it is also possible to define your own project's `.eslintrc` file as:\n\n```json\n{\n\t\"extends\": [ \"plugin:@wordpress/eslint-plugin/jshint\" ]\n}\n```\n\n## Contributing to this package\n\nThis is an individual package that's part of the Gutenberg project. The project is organized as a monorepo. It's made up of multiple self-contained software packages, each with a specific purpose. The packages in this monorepo are published to [npm](https://www.npmjs.com/) and used by [WordPress](https://make.wordpress.org/core/) as well as other software projects.\n\nTo find out more about contributing to this package or Gutenberg as a whole, please read the project's main [contributor guide](https://github.com/WordPress/gutenberg/tree/HEAD/CONTRIBUTING.md).\n\n<br /><br /><p align=\"center\"><img src=\"https://s.w.org/style/images/codeispoetry.png?1\" alt=\"Code is Poetry.\" /></p>\n","engines":{"npm":">=6.9","node":">=12"},"gitHead":"e9c821181e1953eb483416d45f0719da08f9d4ea","scripts":{"test":"jest","test:watch":"jest --watch"},"_npmUser":{"name":"nicholasio","email":"nicholasio.oliveira@gmail.com"},"repository":{"url":"git+https://github.com/10up/10up-toolkit.git","type":"git","directory":"packages/eslint-plugin"},"_npmVersion":"lerna/4.0.0/node@v16.14.2+x64 (linux)","description":"ESLint plugin for WordPress development.","directories":{},"_nodeVersion":"16.14.2","dependencies":{"globals":"^13.12.0","requireindex":"^1.2.0","eslint-plugin-jest":"^25.2.3","eslint-plugin-jsdoc":"^37.0.3","eslint-plugin-react":"^7.27.0","@babel/eslint-parser":"^7.16.0","eslint-plugin-import":"^2.25.2","eslint-plugin-jsx-a11y":"^6.5.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"@10up/babel-preset-default":"^2.0.2-next.1"},"peerDependencies":{"eslint":">=8","@babel/core":">=7"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_1.0.2-next.1_1649702060253_0.4598613002608791","host":"s3://npm-registry-packages"}},"1.0.2-next.2":{"name":"@10up/eslint-plugin","version":"1.0.2-next.2","keywords":["wordpress","gutenberg","eslint","plugin"],"author":{"name":"10up"},"license":"GPL-2.0-or-later","_id":"@10up/eslint-plugin@1.0.2-next.2","maintainers":[{"name":"fabiankaegy","email":"mail@fabian-kaegy.de"},{"name":"brandwaffle","email":"vhauri@gmail.com"},{"name":"eugene-manuilov","email":"eugene.manuilov@gmail.com"},{"name":"christianc1","email":"christian.m.chung@gmail.com"},{"name":"nicholasio","email":"nicholasio.oliveira@gmail.com"},{"name":"joesnellpdx","email":"joesnellpdx@gmail.com"},{"name":"tlovett1","email":"tlovett88@gmail.com"},{"name":"devinle","email":"devin.leggett@gmail.com"}],"homepage":"https://github.com/10up/10up-toolkit","bugs":{"url":"https://github.com/10up/10up-toolkit/issues"},"dist":{"shasum":"3be68a01b120ccfcd756d8ce2f717567cd10fd8f","tarball":"https://registry.npmjs.org/@10up/eslint-plugin/-/eslint-plugin-1.0.2-next.2.tgz","fileCount":55,"integrity":"sha512-/W6+stS1+3RRjfel/+1oufatdSNTBhychZUoHHiD6WXfykNdyXtmNoYjSYvoeG3/eFSWCA+F/eCChOkrZa0aHQ==","signatures":[{"sig":"MEQCIGgnPeMBMRGYOrLFr/LQLqWcF6h72zo8bYCKVG9YOTt+AiA2Vzm0AdCj2i/EVQ7xHOupr2VgH1AT3WYPohDGgEzEeA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":113376,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiZoEtACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpsEA/8DtLigN4rbb1Cfz/cncynm6W5V5W1rXzQQk3yHcj8yFXAMuNQ\r\nbaZa9WB/wUc/8zZiJGi/EDUcjjv/WaBq8CVruBnS4myyncXBaOlxlP/AXIxv\r\n0nref+jo7/eESapjagg/y++vYf1r3KXK22v2yplwBTYj52v+8uNCqztTygA6\r\n25gwP9MhMREiYrM1Ahz2SmkjXQhTM2CHYGhpHeOLuq9yg3ob4QmfVeoP3HYU\r\nHfbE3zZfycduMarojonIRtrRgr3IDY3skSEzqA8fLFWbFiheVVDQZyH5Lkfs\r\nBHY+tLqctcXJKu1AQGrC6sWlgJUf2TthTWQFdqsfXpGB7oipABWa1yKZOxH8\r\nPieUJmIxpEJ2tG44wDU/Ecf8bZc92C76KL1UExdTvtJuchLeyZjlpng1t7LF\r\nYFCRbjXGbHpLH/CSVy0NCAfKKUx61DnHHNTGYh6vYVe3Z9S3S2E8bfw0/lFV\r\nj6iG5BfDY7clzKowRwEUhd9tDRCRzAIj6EyOmojgiV1K4mkaX2wZugiXwQXG\r\n8I19Vc9b3cZBtb4Eotk+tyGU7EwmUUoBoc5ux5w5orng/yw1AcOSTseBLOTl\r\n3ujRhlvurNOQy3QwBtJ17xFBab13QoqIWKQ9K1FWB51ajt1BEKA4IwHqei6u\r\npETWgoZ1f9olSjDH+XJKPqDbg+0ipist+0o=\r\n=fA1l\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","readme":"# ESLint Plugin\n\n[ESLint](https://eslint.org/) plugin including configurations and custom rules for WordPress development.\n\n## Installation\n\nInstall the module\n\n```bash\nnpm install @wordpress/eslint-plugin --save-dev\n```\n\n**Note**: This package requires `node` 12.0.0 or later, and `npm` 6.9.0 or later. It is not compatible with older versions.\n\n## Usage\n\nTo opt-in to the default configuration, extend your own project's `.eslintrc` file:\n\n```json\n{\n\t\"extends\": [ \"plugin:@wordpress/eslint-plugin/recommended\" ]\n}\n```\n\nRefer to the [ESLint documentation on Shareable Configs](http://eslint.org/docs/developer-guide/shareable-configs) for more information.\n\nThe `recommended` preset will include rules governing an ES2015+ environment, and includes rules from the [`eslint-plugin-jsx-a11y`](https://github.com/evcohen/eslint-plugin-jsx-a11y), [`eslint-plugin-react`](https://github.com/yannickcr/eslint-plugin-react), and [`eslint-plugin-prettier`](https://github.com/prettier/eslint-plugin-prettier) projects. It also includes an optional integration with [`@typescript-eslint/eslint-plugin`](https://github.com/typescript-eslint/typescript-eslint) that gets activated when the [`typescript`](https://www.npmjs.com/package/typescript) package is installed in the project.\n\nThere is also `recommended-with-formatting` ruleset for projects that want to opt out from [Prettier](https://prettier.io). It has the native ESLint code formatting rules enabled instead.\n\n### Rulesets\n\nAlternatively, you can opt-in to only the more granular rulesets offered by the plugin. These include:\n\n-   `custom`\n-   `es5`\n-   `esnext`\n-   `jsdoc`\n-   `jsx-a11y`\n-   `react`\n-   `i18n`\n-   `test-e2e`\n-   `test-unit`\n\nFor example, if your project does not use React, you could consider extending including only the ESNext rules in your project using the following `extends` definition:\n\n```json\n{\n\t\"extends\": [ \"plugin:@wordpress/eslint-plugin/esnext\" ]\n}\n```\n\nThese rules can be used additively, so you could extend both `esnext` and `custom` rulesets, but omit the `react` and `jsx-a11y` configurations.\n\nThe granular rulesets will not define any environment globals. As such, if they are required for your project, you will need to define them yourself.\n\n### Rules\n\n| Rule                                                                                                                                                                 | Description                                                                                    | Recommended |\n| -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ----------- |\n| [data-no-store-string-literals](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/data-no-store-string-literals.md)                 | Discourage passing string literals to reference data stores                                    |             |\n| [dependency-group](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/dependency-group.md)                                           | Enforce dependencies docblocks formatting                                                      | ✓           |\n| [is-gutenberg-plugin](docs/rules/is-gutenberg-plugin.md)                                                                                                             | Governs the use of the `process.env.IS_GUTENBERG_PLUGIN` constant                              | ✓           |\n| [no-base-control-with-label-without-id](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/no-base-control-with-label-without-id.md) | Disallow the usage of BaseControl component with a label prop set but omitting the id property | ✓           |\n| [no-unguarded-get-range-at](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/no-unguarded-get-range-at.md)                         | Disallow the usage of unguarded `getRangeAt` calls                                             | ✓           |\n| [no-unsafe-wp-apis](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/no-unsafe-wp-apis.md)                                         | Disallow the usage of unsafe APIs from `@wordpress/*` packages                                 | ✓           |\n| [no-unused-vars-before-return](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/no-unused-vars-before-return.md)                   | Disallow assigning variable values if unused before a return                                   | ✓           |\n| [react-no-unsafe-timeout](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/react-no-unsafe-timeout.md)                             | Disallow unsafe `setTimeout` in component                                                      |             |\n| [valid-sprintf](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/valid-sprintf.md)                                                 | Enforce valid sprintf usage                                                                    | ✓           |\n| [i18n-ellipsis](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-ellipsis.md)                                                 | Disallow using three dots in translatable strings                                              | ✓           |\n| [i18n-no-collapsible-whitespace](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-no-collapsible-whitespace.md)               | Disallow collapsible whitespace in translatable strings                                        | ✓           |\n| [i18n-no-placeholders-only](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-no-placeholders-only.md)                         | Prevent using only placeholders in translatable strings                                        | ✓           |\n| [i18n-no-variables](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-no-variables.md)                                         | Enforce string literals as translation function arguments                                      | ✓           |\n| [i18n-text-domain](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-text-domain.md)                                           | Enforce passing valid text domains                                                             | ✓           |\n| [i18n-translator-comments](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-translator-comments.md)                           | Enforce adding translator comments                                                             | ✓           |\n| [i18n-no-flanking-whitespace](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-no-flanking-whitespace.md)                     | Disallow leading or trailing whitespace in translatable strings                                |             |\n| [i18n-hyphenated-range](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-hyphenated-range.md)                                 | Disallow hyphenated numerical ranges in translatable strings                                   |             |\n\n### Legacy\n\nIf you are using WordPress' `.jshintrc` JSHint configuration and you would like to take the first step to migrate to an ESLint equivalent it is also possible to define your own project's `.eslintrc` file as:\n\n```json\n{\n\t\"extends\": [ \"plugin:@wordpress/eslint-plugin/jshint\" ]\n}\n```\n\n## Contributing to this package\n\nThis is an individual package that's part of the Gutenberg project. The project is organized as a monorepo. It's made up of multiple self-contained software packages, each with a specific purpose. The packages in this monorepo are published to [npm](https://www.npmjs.com/) and used by [WordPress](https://make.wordpress.org/core/) as well as other software projects.\n\nTo find out more about contributing to this package or Gutenberg as a whole, please read the project's main [contributor guide](https://github.com/WordPress/gutenberg/tree/HEAD/CONTRIBUTING.md).\n\n<br /><br /><p align=\"center\"><img src=\"https://s.w.org/style/images/codeispoetry.png?1\" alt=\"Code is Poetry.\" /></p>\n","engines":{"npm":">=6.9","node":">=12"},"gitHead":"0c011c9a9138f0de7644984fd64356cb2965f41d","scripts":{"test":"jest","test:watch":"jest --watch"},"_npmUser":{"name":"nicholasio","email":"nicholasio.oliveira@gmail.com"},"repository":{"url":"git+https://github.com/10up/10up-toolkit.git","type":"git","directory":"packages/eslint-plugin"},"_npmVersion":"lerna/4.0.0/node@v16.14.2+x64 (linux)","description":"ESLint plugin for WordPress development.","directories":{},"_nodeVersion":"16.14.2","dependencies":{"globals":"^13.12.0","requireindex":"^1.2.0","eslint-plugin-jest":"^25.2.3","eslint-plugin-jsdoc":"^37.0.3","eslint-plugin-react":"^7.27.0","@babel/eslint-parser":"^7.16.0","eslint-plugin-import":"^2.25.2","eslint-plugin-jsx-a11y":"^6.5.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"@10up/babel-preset-default":"^2.0.2-next.2"},"peerDependencies":{"eslint":">=8","@babel/core":">=7"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_1.0.2-next.2_1650884908919_0.8373276520561193","host":"s3://npm-registry-packages"}},"1.0.2-next.3":{"name":"@10up/eslint-plugin","version":"1.0.2-next.3","keywords":["wordpress","gutenberg","eslint","plugin"],"author":{"name":"10up"},"license":"GPL-2.0-or-later","_id":"@10up/eslint-plugin@1.0.2-next.3","maintainers":[{"name":"fabiankaegy","email":"mail@fabian-kaegy.de"},{"name":"brandwaffle","email":"vhauri@gmail.com"},{"name":"eugene-manuilov","email":"eugene.manuilov@gmail.com"},{"name":"christianc1","email":"christian.m.chung@gmail.com"},{"name":"nicholasio","email":"nicholasio.oliveira@gmail.com"},{"name":"joesnellpdx","email":"joesnellpdx@gmail.com"},{"name":"tlovett1","email":"tlovett88@gmail.com"},{"name":"devinle","email":"devin.leggett@gmail.com"}],"homepage":"https://github.com/10up/10up-toolkit","bugs":{"url":"https://github.com/10up/10up-toolkit/issues"},"dist":{"shasum":"80df34a2c5f5433e6b0b0258f89b3ec2cc5be681","tarball":"https://registry.npmjs.org/@10up/eslint-plugin/-/eslint-plugin-1.0.2-next.3.tgz","fileCount":55,"integrity":"sha512-JofLUMpfb8O1hOZGbGeq149EWZ+uh3LQuEZvuy47fOFUCdtgTk5yVAAhEQ/jlKU0L/yXR/PbSp/YDu4a74FouA==","signatures":[{"sig":"MEUCIHsRFlAH98OMmbgtleG1nUTSOqexaTraxBevf9BCctY9AiEA1lWy+6QwjIoZvkF/65mMTugd8Eoexe9G3UdFjAUNfYE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":113376,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiZ9mOACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp6bg/8Dn6F6GYC9/Iq/zdkGoJeKiybNT4geq/AKQ7TQt3GmsPHOolB\r\n2WDuGhQh5Vwec2lm5C0HWqlxwXnKVKZRcSQ5Dvh1tdokQDnO2A+GtXZUTGk8\r\nvqLTEppKpjNOKGkERPoirUpfPrZRya8G632fzpaJz89fmJ5vlSU0i5T2lkBO\r\nptOQv4lJ54H7jfw/deBZqjfixsw3wgkxaf7LjJosJvCkLCQmJhsPdgekGmOz\r\nmkh7PNsT4O6i27raMAjriDPjfLDemW46tMj7PS1ZVCyG99t1hBQS46qh91c7\r\nw7nImb5NDfcFpmQmm8WYbVEYOaHnYhX4KSzPvNjG+UqEe3OSlyyvUwqZksmj\r\n3mIUKb9gb0Pt9RetCgWmdbNG1PjFOolhDPaGyIbkdZNPkRzN2/76+DXx0FlJ\r\n9G+GegNCq2N4ruB7XlIRfJ3h+qMswKFZhLH0IZn5uud4HJUITEpllwJAfE55\r\nSgC0gIjn68NEwZ61169s4KuoxCvXFRUYHnWc/IrWcpU6jvu9dJMbUy7l59DR\r\nJViikxa1h/J7ITWm3s1JwuSha+GEA0BUVBHRuMdZDpBAPXkXIcEeYK6wlgqO\r\n6Fqe5Y98NIWSN/9LM4ceExhpBtSqzi6j1jstoHyYqaECrY1V4PaHx8hihB+7\r\n/eSkxojiyN6DP5uQFYB7r29n/mxZEz6N0Pc=\r\n=uSM4\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","readme":"# ESLint Plugin\n\n[ESLint](https://eslint.org/) plugin including configurations and custom rules for WordPress development.\n\n## Installation\n\nInstall the module\n\n```bash\nnpm install @wordpress/eslint-plugin --save-dev\n```\n\n**Note**: This package requires `node` 12.0.0 or later, and `npm` 6.9.0 or later. It is not compatible with older versions.\n\n## Usage\n\nTo opt-in to the default configuration, extend your own project's `.eslintrc` file:\n\n```json\n{\n\t\"extends\": [ \"plugin:@wordpress/eslint-plugin/recommended\" ]\n}\n```\n\nRefer to the [ESLint documentation on Shareable Configs](http://eslint.org/docs/developer-guide/shareable-configs) for more information.\n\nThe `recommended` preset will include rules governing an ES2015+ environment, and includes rules from the [`eslint-plugin-jsx-a11y`](https://github.com/evcohen/eslint-plugin-jsx-a11y), [`eslint-plugin-react`](https://github.com/yannickcr/eslint-plugin-react), and [`eslint-plugin-prettier`](https://github.com/prettier/eslint-plugin-prettier) projects. It also includes an optional integration with [`@typescript-eslint/eslint-plugin`](https://github.com/typescript-eslint/typescript-eslint) that gets activated when the [`typescript`](https://www.npmjs.com/package/typescript) package is installed in the project.\n\nThere is also `recommended-with-formatting` ruleset for projects that want to opt out from [Prettier](https://prettier.io). It has the native ESLint code formatting rules enabled instead.\n\n### Rulesets\n\nAlternatively, you can opt-in to only the more granular rulesets offered by the plugin. These include:\n\n-   `custom`\n-   `es5`\n-   `esnext`\n-   `jsdoc`\n-   `jsx-a11y`\n-   `react`\n-   `i18n`\n-   `test-e2e`\n-   `test-unit`\n\nFor example, if your project does not use React, you could consider extending including only the ESNext rules in your project using the following `extends` definition:\n\n```json\n{\n\t\"extends\": [ \"plugin:@wordpress/eslint-plugin/esnext\" ]\n}\n```\n\nThese rules can be used additively, so you could extend both `esnext` and `custom` rulesets, but omit the `react` and `jsx-a11y` configurations.\n\nThe granular rulesets will not define any environment globals. As such, if they are required for your project, you will need to define them yourself.\n\n### Rules\n\n| Rule                                                                                                                                                                 | Description                                                                                    | Recommended |\n| -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ----------- |\n| [data-no-store-string-literals](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/data-no-store-string-literals.md)                 | Discourage passing string literals to reference data stores                                    |             |\n| [dependency-group](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/dependency-group.md)                                           | Enforce dependencies docblocks formatting                                                      | ✓           |\n| [is-gutenberg-plugin](docs/rules/is-gutenberg-plugin.md)                                                                                                             | Governs the use of the `process.env.IS_GUTENBERG_PLUGIN` constant                              | ✓           |\n| [no-base-control-with-label-without-id](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/no-base-control-with-label-without-id.md) | Disallow the usage of BaseControl component with a label prop set but omitting the id property | ✓           |\n| [no-unguarded-get-range-at](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/no-unguarded-get-range-at.md)                         | Disallow the usage of unguarded `getRangeAt` calls                                             | ✓           |\n| [no-unsafe-wp-apis](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/no-unsafe-wp-apis.md)                                         | Disallow the usage of unsafe APIs from `@wordpress/*` packages                                 | ✓           |\n| [no-unused-vars-before-return](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/no-unused-vars-before-return.md)                   | Disallow assigning variable values if unused before a return                                   | ✓           |\n| [react-no-unsafe-timeout](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/react-no-unsafe-timeout.md)                             | Disallow unsafe `setTimeout` in component                                                      |             |\n| [valid-sprintf](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/valid-sprintf.md)                                                 | Enforce valid sprintf usage                                                                    | ✓           |\n| [i18n-ellipsis](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-ellipsis.md)                                                 | Disallow using three dots in translatable strings                                              | ✓           |\n| [i18n-no-collapsible-whitespace](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-no-collapsible-whitespace.md)               | Disallow collapsible whitespace in translatable strings                                        | ✓           |\n| [i18n-no-placeholders-only](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-no-placeholders-only.md)                         | Prevent using only placeholders in translatable strings                                        | ✓           |\n| [i18n-no-variables](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-no-variables.md)                                         | Enforce string literals as translation function arguments                                      | ✓           |\n| [i18n-text-domain](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-text-domain.md)                                           | Enforce passing valid text domains                                                             | ✓           |\n| [i18n-translator-comments](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-translator-comments.md)                           | Enforce adding translator comments                                                             | ✓           |\n| [i18n-no-flanking-whitespace](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-no-flanking-whitespace.md)                     | Disallow leading or trailing whitespace in translatable strings                                |             |\n| [i18n-hyphenated-range](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-hyphenated-range.md)                                 | Disallow hyphenated numerical ranges in translatable strings                                   |             |\n\n### Legacy\n\nIf you are using WordPress' `.jshintrc` JSHint configuration and you would like to take the first step to migrate to an ESLint equivalent it is also possible to define your own project's `.eslintrc` file as:\n\n```json\n{\n\t\"extends\": [ \"plugin:@wordpress/eslint-plugin/jshint\" ]\n}\n```\n\n## Contributing to this package\n\nThis is an individual package that's part of the Gutenberg project. The project is organized as a monorepo. It's made up of multiple self-contained software packages, each with a specific purpose. The packages in this monorepo are published to [npm](https://www.npmjs.com/) and used by [WordPress](https://make.wordpress.org/core/) as well as other software projects.\n\nTo find out more about contributing to this package or Gutenberg as a whole, please read the project's main [contributor guide](https://github.com/WordPress/gutenberg/tree/HEAD/CONTRIBUTING.md).\n\n<br /><br /><p align=\"center\"><img src=\"https://s.w.org/style/images/codeispoetry.png?1\" alt=\"Code is Poetry.\" /></p>\n","engines":{"npm":">=6.9","node":">=12"},"gitHead":"abf5dbc992b1cee874aa772efc0f3fc1c2303ccd","scripts":{"test":"jest","test:watch":"jest --watch"},"_npmUser":{"name":"nicholasio","email":"nicholasio.oliveira@gmail.com"},"repository":{"url":"git+https://github.com/10up/10up-toolkit.git","type":"git","directory":"packages/eslint-plugin"},"_npmVersion":"lerna/4.0.0/node@v16.14.2+x64 (linux)","description":"ESLint plugin for WordPress development.","directories":{},"_nodeVersion":"16.14.2","dependencies":{"globals":"^13.12.0","requireindex":"^1.2.0","eslint-plugin-jest":"^25.2.3","eslint-plugin-jsdoc":"^37.0.3","eslint-plugin-react":"^7.27.0","@babel/eslint-parser":"^7.16.0","eslint-plugin-import":"^2.25.2","eslint-plugin-jsx-a11y":"^6.5.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"@10up/babel-preset-default":"^2.0.2-next.3"},"peerDependencies":{"eslint":">=8","@babel/core":">=7"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_1.0.2-next.3_1650973069681_0.9672005302594124","host":"s3://npm-registry-packages"}},"1.0.2-next.4":{"name":"@10up/eslint-plugin","version":"1.0.2-next.4","keywords":["wordpress","gutenberg","eslint","plugin"],"author":{"name":"10up"},"license":"GPL-2.0-or-later","_id":"@10up/eslint-plugin@1.0.2-next.4","maintainers":[{"name":"fabiankaegy","email":"mail@fabian-kaegy.de"},{"name":"brandwaffle","email":"vhauri@gmail.com"},{"name":"eugene-manuilov","email":"eugene.manuilov@gmail.com"},{"name":"christianc1","email":"christian.m.chung@gmail.com"},{"name":"nicholasio","email":"nicholasio.oliveira@gmail.com"},{"name":"joesnellpdx","email":"joesnellpdx@gmail.com"},{"name":"tlovett1","email":"tlovett88@gmail.com"},{"name":"devinle","email":"devin.leggett@gmail.com"}],"homepage":"https://github.com/10up/10up-toolkit","bugs":{"url":"https://github.com/10up/10up-toolkit/issues"},"dist":{"shasum":"8eb2b38635b75bbe6288a7bda4a4931d370a3ae6","tarball":"https://registry.npmjs.org/@10up/eslint-plugin/-/eslint-plugin-1.0.2-next.4.tgz","fileCount":55,"integrity":"sha512-id2vjJXkEeeWbUZQ2zxQfozxYaEfKtxkg+FrJhsdtLUamROw9cH2tZp4ZtNS4Mn3d0D7Poj32D4rbxgZZ3I78Q==","signatures":[{"sig":"MEUCIBKBOGlzAs1/wv0I8O8+EF2xEZVOds9zaQnfVMlWokHYAiEA0myd3sFtxTLxc2Etx9He4ZgbyFvt8JrhTKuSm95rBXQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":113376,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiaB/9ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrhRQ/+NTH1YdWFrcBFBjAVF9g1I+/d58AKI8LBXHmbJaZtmeM4+Ovd\r\nHcnLsgc0QV7TTjniu5iEf0dE3ejwA1VzHXjVWEkC8sv/k5mvIJ9dvOOtef7j\r\ny8EfeizLHbck/Y0C7vQl9LWLwgo0YKVikDb268OEZcTOXA6cUbhd+h5T4GqJ\r\nL6PZWH7YzAvKV7sxuCJgts6vRqw+2+gU7ZTqAIEyWam7uCnvgrZJBpl//oYo\r\nf7WjMz+GGrEZrVvKgIgtrO/2YHaVIrnHO+kxMwwxLqF6KLoyozoG4KMJleYy\r\nluNNaLgLW3/D3Wg40zSiXzEpl7a1vhhOlczMewFPh79ACSBsoeM36rkNBAbg\r\nY24uThyMzc95zov0dLPV1TVvjLvE70O38/JdD/bHfKaKkaChlYm9kYR5JSZ/\r\nAmxoipbfyYzx7aF8mfxGnuVxPnlj7vRYTha4pNiUfmrosDjP7CMtbv4Cv1US\r\nJ5SZRbLLGW3X9EJCEKLxy45ovrpXmwn3lF75bDpCxYTl5j3bUKh2Vnsmp3NC\r\nnx3fD/9Ovd5+HOiZmtukccrkk/sQ8mLj1v7vPY1gfekdSqX6pvXYUPSeirFX\r\nrZhfKODb7lYmBJntk27L5+Ay2yZGuSb2ifv9yfpNnxhol28N0HU5pZsOvBJ9\r\nUQlhyLl8gV9GCWG8dBonJWK86xvE/W9qEYY=\r\n=9OAn\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","readme":"# ESLint Plugin\n\n[ESLint](https://eslint.org/) plugin including configurations and custom rules for WordPress development.\n\n## Installation\n\nInstall the module\n\n```bash\nnpm install @wordpress/eslint-plugin --save-dev\n```\n\n**Note**: This package requires `node` 12.0.0 or later, and `npm` 6.9.0 or later. It is not compatible with older versions.\n\n## Usage\n\nTo opt-in to the default configuration, extend your own project's `.eslintrc` file:\n\n```json\n{\n\t\"extends\": [ \"plugin:@wordpress/eslint-plugin/recommended\" ]\n}\n```\n\nRefer to the [ESLint documentation on Shareable Configs](http://eslint.org/docs/developer-guide/shareable-configs) for more information.\n\nThe `recommended` preset will include rules governing an ES2015+ environment, and includes rules from the [`eslint-plugin-jsx-a11y`](https://github.com/evcohen/eslint-plugin-jsx-a11y), [`eslint-plugin-react`](https://github.com/yannickcr/eslint-plugin-react), and [`eslint-plugin-prettier`](https://github.com/prettier/eslint-plugin-prettier) projects. It also includes an optional integration with [`@typescript-eslint/eslint-plugin`](https://github.com/typescript-eslint/typescript-eslint) that gets activated when the [`typescript`](https://www.npmjs.com/package/typescript) package is installed in the project.\n\nThere is also `recommended-with-formatting` ruleset for projects that want to opt out from [Prettier](https://prettier.io). It has the native ESLint code formatting rules enabled instead.\n\n### Rulesets\n\nAlternatively, you can opt-in to only the more granular rulesets offered by the plugin. These include:\n\n-   `custom`\n-   `es5`\n-   `esnext`\n-   `jsdoc`\n-   `jsx-a11y`\n-   `react`\n-   `i18n`\n-   `test-e2e`\n-   `test-unit`\n\nFor example, if your project does not use React, you could consider extending including only the ESNext rules in your project using the following `extends` definition:\n\n```json\n{\n\t\"extends\": [ \"plugin:@wordpress/eslint-plugin/esnext\" ]\n}\n```\n\nThese rules can be used additively, so you could extend both `esnext` and `custom` rulesets, but omit the `react` and `jsx-a11y` configurations.\n\nThe granular rulesets will not define any environment globals. As such, if they are required for your project, you will need to define them yourself.\n\n### Rules\n\n| Rule                                                                                                                                                                 | Description                                                                                    | Recommended |\n| -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ----------- |\n| [data-no-store-string-literals](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/data-no-store-string-literals.md)                 | Discourage passing string literals to reference data stores                                    |             |\n| [dependency-group](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/dependency-group.md)                                           | Enforce dependencies docblocks formatting                                                      | ✓           |\n| [is-gutenberg-plugin](docs/rules/is-gutenberg-plugin.md)                                                                                                             | Governs the use of the `process.env.IS_GUTENBERG_PLUGIN` constant                              | ✓           |\n| [no-base-control-with-label-without-id](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/no-base-control-with-label-without-id.md) | Disallow the usage of BaseControl component with a label prop set but omitting the id property | ✓           |\n| [no-unguarded-get-range-at](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/no-unguarded-get-range-at.md)                         | Disallow the usage of unguarded `getRangeAt` calls                                             | ✓           |\n| [no-unsafe-wp-apis](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/no-unsafe-wp-apis.md)                                         | Disallow the usage of unsafe APIs from `@wordpress/*` packages                                 | ✓           |\n| [no-unused-vars-before-return](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/no-unused-vars-before-return.md)                   | Disallow assigning variable values if unused before a return                                   | ✓           |\n| [react-no-unsafe-timeout](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/react-no-unsafe-timeout.md)                             | Disallow unsafe `setTimeout` in component                                                      |             |\n| [valid-sprintf](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/valid-sprintf.md)                                                 | Enforce valid sprintf usage                                                                    | ✓           |\n| [i18n-ellipsis](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-ellipsis.md)                                                 | Disallow using three dots in translatable strings                                              | ✓           |\n| [i18n-no-collapsible-whitespace](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-no-collapsible-whitespace.md)               | Disallow collapsible whitespace in translatable strings                                        | ✓           |\n| [i18n-no-placeholders-only](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-no-placeholders-only.md)                         | Prevent using only placeholders in translatable strings                                        | ✓           |\n| [i18n-no-variables](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-no-variables.md)                                         | Enforce string literals as translation function arguments                                      | ✓           |\n| [i18n-text-domain](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-text-domain.md)                                           | Enforce passing valid text domains                                                             | ✓           |\n| [i18n-translator-comments](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-translator-comments.md)                           | Enforce adding translator comments                                                             | ✓           |\n| [i18n-no-flanking-whitespace](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-no-flanking-whitespace.md)                     | Disallow leading or trailing whitespace in translatable strings                                |             |\n| [i18n-hyphenated-range](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-hyphenated-range.md)                                 | Disallow hyphenated numerical ranges in translatable strings                                   |             |\n\n### Legacy\n\nIf you are using WordPress' `.jshintrc` JSHint configuration and you would like to take the first step to migrate to an ESLint equivalent it is also possible to define your own project's `.eslintrc` file as:\n\n```json\n{\n\t\"extends\": [ \"plugin:@wordpress/eslint-plugin/jshint\" ]\n}\n```\n\n## Contributing to this package\n\nThis is an individual package that's part of the Gutenberg project. The project is organized as a monorepo. It's made up of multiple self-contained software packages, each with a specific purpose. The packages in this monorepo are published to [npm](https://www.npmjs.com/) and used by [WordPress](https://make.wordpress.org/core/) as well as other software projects.\n\nTo find out more about contributing to this package or Gutenberg as a whole, please read the project's main [contributor guide](https://github.com/WordPress/gutenberg/tree/HEAD/CONTRIBUTING.md).\n\n<br /><br /><p align=\"center\"><img src=\"https://s.w.org/style/images/codeispoetry.png?1\" alt=\"Code is Poetry.\" /></p>\n","engines":{"npm":">=6.9","node":">=12"},"gitHead":"27cf75f8bd6f26ce07f37a6fdd8cd8832e732947","scripts":{"test":"jest","test:watch":"jest --watch"},"_npmUser":{"name":"nicholasio","email":"nicholasio.oliveira@gmail.com"},"repository":{"url":"git+https://github.com/10up/10up-toolkit.git","type":"git","directory":"packages/eslint-plugin"},"_npmVersion":"lerna/4.0.0/node@v16.14.2+x64 (linux)","description":"ESLint plugin for WordPress development.","directories":{},"_nodeVersion":"16.14.2","dependencies":{"globals":"^13.12.0","requireindex":"^1.2.0","eslint-plugin-jest":"^25.2.3","eslint-plugin-jsdoc":"^37.0.3","eslint-plugin-react":"^7.27.0","@babel/eslint-parser":"^7.16.0","eslint-plugin-import":"^2.25.2","eslint-plugin-jsx-a11y":"^6.5.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"@10up/babel-preset-default":"^2.0.2-next.4"},"peerDependencies":{"eslint":">=8","@babel/core":">=7"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_1.0.2-next.4_1650991101148_0.660879808834608","host":"s3://npm-registry-packages"}},"1.0.2-next.5":{"name":"@10up/eslint-plugin","version":"1.0.2-next.5","keywords":["wordpress","gutenberg","eslint","plugin"],"author":{"name":"10up"},"license":"GPL-2.0-or-later","_id":"@10up/eslint-plugin@1.0.2-next.5","maintainers":[{"name":"fabiankaegy","email":"mail@fabian-kaegy.de"},{"name":"brandwaffle","email":"vhauri@gmail.com"},{"name":"eugene-manuilov","email":"eugene.manuilov@gmail.com"},{"name":"christianc1","email":"christian.m.chung@gmail.com"},{"name":"nicholasio","email":"nicholasio.oliveira@gmail.com"},{"name":"joesnellpdx","email":"joesnellpdx@gmail.com"},{"name":"tlovett1","email":"tlovett88@gmail.com"},{"name":"devinle","email":"devin.leggett@gmail.com"}],"homepage":"https://github.com/10up/10up-toolkit","bugs":{"url":"https://github.com/10up/10up-toolkit/issues"},"dist":{"shasum":"b71fd6a5114591e79671c310aef8f4a745656b38","tarball":"https://registry.npmjs.org/@10up/eslint-plugin/-/eslint-plugin-1.0.2-next.5.tgz","fileCount":55,"integrity":"sha512-YAyAI3QE+kahPsD3GzNd/V0rR9ss7+dQyTRu6+bxPK8Fen0oK9DOMOGkrA+fwhokydgt9YDTQf4Xn0tUZEtCIg==","signatures":[{"sig":"MEUCIHzI4No58uHuQJkoZGdYOYgIBrX3mTlFz1HNU2YxuPtXAiEAuHSa+6WK+5F9Z3xDKbnSAWQTlTdlN5eBvgu558+Wm8k=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":113376,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiaUr5ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrAGA/9GPdI1b8n7jBU6y1X01RBN+jbyPcrztLwLbTIENlaNcZCB+8W\r\nc5cVkJD366wImSdVGMsf/dl6R4zphXvIFFOa6D/z10cNEPnnOnV4NaV7n93y\r\nCefcXz+6g8+qQWUDwF3IypW0rdOI+7ESxfU8fZCxh1YW2L5MEkuSD4iRpWa7\r\nEurww5N21OeQ0IYJsFWI5TdkHkvOVg08FpfrxVUx6KJg4smDI8vgp4Tcz4zw\r\nZ6cHvmlF0EHkELUUHJxodLQygzEERbClRQhrEQEOMPcupDpSSsjSxuaFRBq2\r\nTbhx2jps1Dgtcn9d3MlBGJxMBWRFcj7FeqsKqQNRw9pS/G3UeAEyZlN2vsss\r\ngVxdhvJXCwM0gedgeza+UMLuArwIgfPBO57XlmCYhv7u8+mQyWU5fFlM1vQd\r\nNabguWYaakeDMSUvfIZp2t46atiTsxXigXqqVoTSvW5KCNchmy0qKcJaw9No\r\ntLjw02SiHuxZUrSCmIGt9ZOle9awQw2512s+bq+BMwu1qMCUieAO46UITB/g\r\nsay14k4QHXHRUVC2q2Y2o7YZlnRMb6BciL8V8PYRXcYsTGzxCNRO5jKdzcyE\r\ngvuq+0xLN7GRQM9ZMWESFWU1hKRkr9zyBP6gmuFOEjs3cULwAlOdWCHw2GHD\r\ntwdvjZeBeLaw/YYfysKgk8wqqrHv6hPFQPE=\r\n=qVYm\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","readme":"# ESLint Plugin\n\n[ESLint](https://eslint.org/) plugin including configurations and custom rules for WordPress development.\n\n## Installation\n\nInstall the module\n\n```bash\nnpm install @wordpress/eslint-plugin --save-dev\n```\n\n**Note**: This package requires `node` 12.0.0 or later, and `npm` 6.9.0 or later. It is not compatible with older versions.\n\n## Usage\n\nTo opt-in to the default configuration, extend your own project's `.eslintrc` file:\n\n```json\n{\n\t\"extends\": [ \"plugin:@wordpress/eslint-plugin/recommended\" ]\n}\n```\n\nRefer to the [ESLint documentation on Shareable Configs](http://eslint.org/docs/developer-guide/shareable-configs) for more information.\n\nThe `recommended` preset will include rules governing an ES2015+ environment, and includes rules from the [`eslint-plugin-jsx-a11y`](https://github.com/evcohen/eslint-plugin-jsx-a11y), [`eslint-plugin-react`](https://github.com/yannickcr/eslint-plugin-react), and [`eslint-plugin-prettier`](https://github.com/prettier/eslint-plugin-prettier) projects. It also includes an optional integration with [`@typescript-eslint/eslint-plugin`](https://github.com/typescript-eslint/typescript-eslint) that gets activated when the [`typescript`](https://www.npmjs.com/package/typescript) package is installed in the project.\n\nThere is also `recommended-with-formatting` ruleset for projects that want to opt out from [Prettier](https://prettier.io). It has the native ESLint code formatting rules enabled instead.\n\n### Rulesets\n\nAlternatively, you can opt-in to only the more granular rulesets offered by the plugin. These include:\n\n-   `custom`\n-   `es5`\n-   `esnext`\n-   `jsdoc`\n-   `jsx-a11y`\n-   `react`\n-   `i18n`\n-   `test-e2e`\n-   `test-unit`\n\nFor example, if your project does not use React, you could consider extending including only the ESNext rules in your project using the following `extends` definition:\n\n```json\n{\n\t\"extends\": [ \"plugin:@wordpress/eslint-plugin/esnext\" ]\n}\n```\n\nThese rules can be used additively, so you could extend both `esnext` and `custom` rulesets, but omit the `react` and `jsx-a11y` configurations.\n\nThe granular rulesets will not define any environment globals. As such, if they are required for your project, you will need to define them yourself.\n\n### Rules\n\n| Rule                                                                                                                                                                 | Description                                                                                    | Recommended |\n| -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ----------- |\n| [data-no-store-string-literals](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/data-no-store-string-literals.md)                 | Discourage passing string literals to reference data stores                                    |             |\n| [dependency-group](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/dependency-group.md)                                           | Enforce dependencies docblocks formatting                                                      | ✓           |\n| [is-gutenberg-plugin](docs/rules/is-gutenberg-plugin.md)                                                                                                             | Governs the use of the `process.env.IS_GUTENBERG_PLUGIN` constant                              | ✓           |\n| [no-base-control-with-label-without-id](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/no-base-control-with-label-without-id.md) | Disallow the usage of BaseControl component with a label prop set but omitting the id property | ✓           |\n| [no-unguarded-get-range-at](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/no-unguarded-get-range-at.md)                         | Disallow the usage of unguarded `getRangeAt` calls                                             | ✓           |\n| [no-unsafe-wp-apis](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/no-unsafe-wp-apis.md)                                         | Disallow the usage of unsafe APIs from `@wordpress/*` packages                                 | ✓           |\n| [no-unused-vars-before-return](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/no-unused-vars-before-return.md)                   | Disallow assigning variable values if unused before a return                                   | ✓           |\n| [react-no-unsafe-timeout](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/react-no-unsafe-timeout.md)                             | Disallow unsafe `setTimeout` in component                                                      |             |\n| [valid-sprintf](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/valid-sprintf.md)                                                 | Enforce valid sprintf usage                                                                    | ✓           |\n| [i18n-ellipsis](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-ellipsis.md)                                                 | Disallow using three dots in translatable strings                                              | ✓           |\n| [i18n-no-collapsible-whitespace](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-no-collapsible-whitespace.md)               | Disallow collapsible whitespace in translatable strings                                        | ✓           |\n| [i18n-no-placeholders-only](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-no-placeholders-only.md)                         | Prevent using only placeholders in translatable strings                                        | ✓           |\n| [i18n-no-variables](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-no-variables.md)                                         | Enforce string literals as translation function arguments                                      | ✓           |\n| [i18n-text-domain](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-text-domain.md)                                           | Enforce passing valid text domains                                                             | ✓           |\n| [i18n-translator-comments](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-translator-comments.md)                           | Enforce adding translator comments                                                             | ✓           |\n| [i18n-no-flanking-whitespace](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-no-flanking-whitespace.md)                     | Disallow leading or trailing whitespace in translatable strings                                |             |\n| [i18n-hyphenated-range](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-hyphenated-range.md)                                 | Disallow hyphenated numerical ranges in translatable strings                                   |             |\n\n### Legacy\n\nIf you are using WordPress' `.jshintrc` JSHint configuration and you would like to take the first step to migrate to an ESLint equivalent it is also possible to define your own project's `.eslintrc` file as:\n\n```json\n{\n\t\"extends\": [ \"plugin:@wordpress/eslint-plugin/jshint\" ]\n}\n```\n\n## Contributing to this package\n\nThis is an individual package that's part of the Gutenberg project. The project is organized as a monorepo. It's made up of multiple self-contained software packages, each with a specific purpose. The packages in this monorepo are published to [npm](https://www.npmjs.com/) and used by [WordPress](https://make.wordpress.org/core/) as well as other software projects.\n\nTo find out more about contributing to this package or Gutenberg as a whole, please read the project's main [contributor guide](https://github.com/WordPress/gutenberg/tree/HEAD/CONTRIBUTING.md).\n\n<br /><br /><p align=\"center\"><img src=\"https://s.w.org/style/images/codeispoetry.png?1\" alt=\"Code is Poetry.\" /></p>\n","engines":{"npm":">=6.9","node":">=12"},"gitHead":"df850e9f673054a5c4e6fc077b7596d27a486386","scripts":{"test":"jest","test:watch":"jest --watch"},"_npmUser":{"name":"nicholasio","email":"nicholasio.oliveira@gmail.com"},"repository":{"url":"git+https://github.com/10up/10up-toolkit.git","type":"git","directory":"packages/eslint-plugin"},"_npmVersion":"lerna/4.0.0/node@v16.14.2+x64 (linux)","description":"ESLint plugin for WordPress development.","directories":{},"_nodeVersion":"16.14.2","dependencies":{"globals":"^13.12.0","requireindex":"^1.2.0","eslint-plugin-jest":"^25.2.3","eslint-plugin-jsdoc":"^37.0.3","eslint-plugin-react":"^7.27.0","@babel/eslint-parser":"^7.16.0","eslint-plugin-import":"^2.25.2","eslint-plugin-jsx-a11y":"^6.5.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"@10up/babel-preset-default":"^2.0.2-next.5"},"peerDependencies":{"eslint":">=8","@babel/core":">=7"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_1.0.2-next.5_1651067641699_0.42968565066981834","host":"s3://npm-registry-packages"}},"1.0.3-next.0":{"name":"@10up/eslint-plugin","version":"1.0.3-next.0","keywords":["wordpress","gutenberg","eslint","plugin"],"author":{"name":"10up"},"license":"GPL-2.0-or-later","_id":"@10up/eslint-plugin@1.0.3-next.0","maintainers":[{"name":"fabiankaegy","email":"mail@fabian-kaegy.de"},{"name":"brandwaffle","email":"vhauri@gmail.com"},{"name":"eugene-manuilov","email":"eugene.manuilov@gmail.com"},{"name":"christianc1","email":"christian.m.chung@gmail.com"},{"name":"nicholasio","email":"nicholasio.oliveira@gmail.com"},{"name":"joesnellpdx","email":"joesnellpdx@gmail.com"},{"name":"tlovett1","email":"tlovett88@gmail.com"},{"name":"devinle","email":"devin.leggett@gmail.com"}],"homepage":"https://github.com/10up/10up-toolkit","bugs":{"url":"https://github.com/10up/10up-toolkit/issues"},"dist":{"shasum":"f95debc4273ad11dd63152f1388f2459665ea3cc","tarball":"https://registry.npmjs.org/@10up/eslint-plugin/-/eslint-plugin-1.0.3-next.0.tgz","fileCount":55,"integrity":"sha512-SJMy8FuTUYgcEXbOrA48N0ByyxXqHTHrZHieJSf88CiPVeiWMHJYDtTHSNYMNVflBCQRNVzMV39TLQADBI0gyQ==","signatures":[{"sig":"MEUCIQDsEJa8ukxdoUt8M2mp/qQ81sp+XOQJdqyHx2GMs1mwdgIgYqh2bqlCXlrVwbZlse/eMSa3DaSED0CwwzipJCpDwfc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":113376,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJigj/XACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqq4g//Wdb1ZEauxnKbueNMnOxdHz7ZVKHvt0Ky+erjrRvFXVu+tNTI\r\ntVg4nl7ZiNlPeFzpwhFYYm3tDP0/ffr1kyUM/8pdQaJ4UBHdqTqOtxCKBlqC\r\nEbxj7mMN1IUNkZpqVyqkELzQYsI+8HqArgQ8O35YyjrvzUH2ZITK0SgHsj+x\r\nrn3JROQy2jlF7Ki5uBxga/3eKmdfKfVHqhG7iwByObmfBbLBAOEKBXy7zAwB\r\nK2ksEkIseBVZPdi0aQtGCF+MXO/aTZlCDCJZQQzux5NZIRFMLyQaZVNyMEt9\r\nw/A0/kQEy5tIfybCfYbrFCzRCKSpNcpwe3zOvnbzojhwVMRjw9BZsvgqmID7\r\nmAxbxP/r5maRSmDryFoLf9m5lcIYGpHz7nS+ahB65cYA4j6AYvQoIAtB7QZo\r\nriQFBLBx2ZRJwEEX/RKsWj3/ztYF3/F+LLt0G1HEEsiNw0ZIEca++wV4YUB6\r\nB7JTMMWccCuab8+LXPY7m2/kh3s8SB50vib/bhgh+MeD5glzCr+hhbGRbruR\r\nHg0Ro6LKpljNhPas6Lsbe+rh64i9RZu+4VyvN9o0rt8FANrc+ycHNHnCRiCN\r\n4MmbdArLItm6d9Qp0wUICd+kLMPCYCPn0tUaykXnTPVzsJ7Wc9TQx/pDA/aG\r\nENPgMmqokS54tesj25v1PB+9HQJgyKPXYh4=\r\n=TRTT\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","readme":"# ESLint Plugin\n\n[ESLint](https://eslint.org/) plugin including configurations and custom rules for WordPress development.\n\n## Installation\n\nInstall the module\n\n```bash\nnpm install @wordpress/eslint-plugin --save-dev\n```\n\n**Note**: This package requires `node` 12.0.0 or later, and `npm` 6.9.0 or later. It is not compatible with older versions.\n\n## Usage\n\nTo opt-in to the default configuration, extend your own project's `.eslintrc` file:\n\n```json\n{\n\t\"extends\": [ \"plugin:@wordpress/eslint-plugin/recommended\" ]\n}\n```\n\nRefer to the [ESLint documentation on Shareable Configs](http://eslint.org/docs/developer-guide/shareable-configs) for more information.\n\nThe `recommended` preset will include rules governing an ES2015+ environment, and includes rules from the [`eslint-plugin-jsx-a11y`](https://github.com/evcohen/eslint-plugin-jsx-a11y), [`eslint-plugin-react`](https://github.com/yannickcr/eslint-plugin-react), and [`eslint-plugin-prettier`](https://github.com/prettier/eslint-plugin-prettier) projects. It also includes an optional integration with [`@typescript-eslint/eslint-plugin`](https://github.com/typescript-eslint/typescript-eslint) that gets activated when the [`typescript`](https://www.npmjs.com/package/typescript) package is installed in the project.\n\nThere is also `recommended-with-formatting` ruleset for projects that want to opt out from [Prettier](https://prettier.io). It has the native ESLint code formatting rules enabled instead.\n\n### Rulesets\n\nAlternatively, you can opt-in to only the more granular rulesets offered by the plugin. These include:\n\n-   `custom`\n-   `es5`\n-   `esnext`\n-   `jsdoc`\n-   `jsx-a11y`\n-   `react`\n-   `i18n`\n-   `test-e2e`\n-   `test-unit`\n\nFor example, if your project does not use React, you could consider extending including only the ESNext rules in your project using the following `extends` definition:\n\n```json\n{\n\t\"extends\": [ \"plugin:@wordpress/eslint-plugin/esnext\" ]\n}\n```\n\nThese rules can be used additively, so you could extend both `esnext` and `custom` rulesets, but omit the `react` and `jsx-a11y` configurations.\n\nThe granular rulesets will not define any environment globals. As such, if they are required for your project, you will need to define them yourself.\n\n### Rules\n\n| Rule                                                                                                                                                                 | Description                                                                                    | Recommended |\n| -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ----------- |\n| [data-no-store-string-literals](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/data-no-store-string-literals.md)                 | Discourage passing string literals to reference data stores                                    |             |\n| [dependency-group](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/dependency-group.md)                                           | Enforce dependencies docblocks formatting                                                      | ✓           |\n| [is-gutenberg-plugin](docs/rules/is-gutenberg-plugin.md)                                                                                                             | Governs the use of the `process.env.IS_GUTENBERG_PLUGIN` constant                              | ✓           |\n| [no-base-control-with-label-without-id](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/no-base-control-with-label-without-id.md) | Disallow the usage of BaseControl component with a label prop set but omitting the id property | ✓           |\n| [no-unguarded-get-range-at](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/no-unguarded-get-range-at.md)                         | Disallow the usage of unguarded `getRangeAt` calls                                             | ✓           |\n| [no-unsafe-wp-apis](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/no-unsafe-wp-apis.md)                                         | Disallow the usage of unsafe APIs from `@wordpress/*` packages                                 | ✓           |\n| [no-unused-vars-before-return](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/no-unused-vars-before-return.md)                   | Disallow assigning variable values if unused before a return                                   | ✓           |\n| [react-no-unsafe-timeout](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/react-no-unsafe-timeout.md)                             | Disallow unsafe `setTimeout` in component                                                      |             |\n| [valid-sprintf](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/valid-sprintf.md)                                                 | Enforce valid sprintf usage                                                                    | ✓           |\n| [i18n-ellipsis](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-ellipsis.md)                                                 | Disallow using three dots in translatable strings                                              | ✓           |\n| [i18n-no-collapsible-whitespace](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-no-collapsible-whitespace.md)               | Disallow collapsible whitespace in translatable strings                                        | ✓           |\n| [i18n-no-placeholders-only](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-no-placeholders-only.md)                         | Prevent using only placeholders in translatable strings                                        | ✓           |\n| [i18n-no-variables](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-no-variables.md)                                         | Enforce string literals as translation function arguments                                      | ✓           |\n| [i18n-text-domain](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-text-domain.md)                                           | Enforce passing valid text domains                                                             | ✓           |\n| [i18n-translator-comments](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-translator-comments.md)                           | Enforce adding translator comments                                                             | ✓           |\n| [i18n-no-flanking-whitespace](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-no-flanking-whitespace.md)                     | Disallow leading or trailing whitespace in translatable strings                                |             |\n| [i18n-hyphenated-range](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-hyphenated-range.md)                                 | Disallow hyphenated numerical ranges in translatable strings                                   |             |\n\n### Legacy\n\nIf you are using WordPress' `.jshintrc` JSHint configuration and you would like to take the first step to migrate to an ESLint equivalent it is also possible to define your own project's `.eslintrc` file as:\n\n```json\n{\n\t\"extends\": [ \"plugin:@wordpress/eslint-plugin/jshint\" ]\n}\n```\n\n## Contributing to this package\n\nThis is an individual package that's part of the Gutenberg project. The project is organized as a monorepo. It's made up of multiple self-contained software packages, each with a specific purpose. The packages in this monorepo are published to [npm](https://www.npmjs.com/) and used by [WordPress](https://make.wordpress.org/core/) as well as other software projects.\n\nTo find out more about contributing to this package or Gutenberg as a whole, please read the project's main [contributor guide](https://github.com/WordPress/gutenberg/tree/HEAD/CONTRIBUTING.md).\n\n<br /><br /><p align=\"center\"><img src=\"https://s.w.org/style/images/codeispoetry.png?1\" alt=\"Code is Poetry.\" /></p>\n","engines":{"npm":">=6.9","node":">=12"},"gitHead":"ace85b1c29c10c1fdad2c42da789d1ef3628af7c","scripts":{"test":"jest","test:watch":"jest --watch"},"_npmUser":{"name":"nicholasio","email":"nicholasio.oliveira@gmail.com"},"repository":{"url":"git+https://github.com/10up/10up-toolkit.git","type":"git","directory":"packages/eslint-plugin"},"_npmVersion":"lerna/4.0.0/node@v16.15.0+x64 (linux)","description":"ESLint plugin for WordPress development.","directories":{},"_nodeVersion":"16.15.0","dependencies":{"globals":"^13.12.0","requireindex":"^1.2.0","eslint-plugin-jest":"^25.2.3","eslint-plugin-jsdoc":"^37.0.3","eslint-plugin-react":"^7.27.0","@babel/eslint-parser":"^7.16.0","eslint-plugin-import":"^2.25.2","eslint-plugin-jsx-a11y":"^6.5.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"@10up/babel-preset-default":"^2.0.3-next.0"},"peerDependencies":{"eslint":">=8","@babel/core":">=7"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_1.0.3-next.0_1652703191261_0.9145814841156561","host":"s3://npm-registry-packages"}},"1.0.3-next.1":{"name":"@10up/eslint-plugin","version":"1.0.3-next.1","keywords":["wordpress","gutenberg","eslint","plugin"],"author":{"name":"10up"},"license":"GPL-2.0-or-later","_id":"@10up/eslint-plugin@1.0.3-next.1","maintainers":[{"name":"fabiankaegy","email":"mail@fabian-kaegy.de"},{"name":"brandwaffle","email":"vhauri@gmail.com"},{"name":"eugene-manuilov","email":"eugene.manuilov@gmail.com"},{"name":"christianc1","email":"christian.m.chung@gmail.com"},{"name":"nicholasio","email":"nicholasio.oliveira@gmail.com"},{"name":"joesnellpdx","email":"joesnellpdx@gmail.com"},{"name":"tlovett1","email":"tlovett88@gmail.com"},{"name":"devinle","email":"devin.leggett@gmail.com"}],"homepage":"https://github.com/10up/10up-toolkit","bugs":{"url":"https://github.com/10up/10up-toolkit/issues"},"dist":{"shasum":"f41fd440e3cdf30c8f69d5b3a9e8410b9f9073c0","tarball":"https://registry.npmjs.org/@10up/eslint-plugin/-/eslint-plugin-1.0.3-next.1.tgz","fileCount":55,"integrity":"sha512-ztUK6CPT4AvquYF+6VL/rQ8Sg/ERuYgqBd7pI1ATaLHDG0UfqohRWajB5ujvmU7HDq2BrwJscv1in1nwZ18dtw==","signatures":[{"sig":"MEQCIGuxQsyiwyNozIgBRhBN/7eOL15ldF4g6zzTmEaOPRlIAiBvpOlpsvWmSOWhCKCP9/DS9Z4FiIXGqlc7hK2o6oiLBw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":113376,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJimL7DACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqFvQ//R7RtPDDA4K4jK3g/mLmcUSuZOa/CWtfKS1WOMzkkV6mCMiet\r\npZ8GyDlzwLeUlo9pQ3f/d7IQ/ZoVMiMztOHcUlByRPiEenOGV9USYtnfEoTG\r\nUXSRgYDYu5iQKDwCoHjeGFkncMHaqdKaFxssXgXUJJ4ftEhtMLTjh3VDXuis\r\neOnPrx72iVpYZc0198w0fJiAZAu28UeDgjg38YNtIlaJ6q6mlGcHe0UhCqMs\r\ncYHs7YcVufLoNKKh3kZbv31oY69BV9z6C2I2J9hRvxQdE6Kmxm/zhqN3mIZm\r\n8hcAvu3bsgWGmox2nsvxlB+lZyGUwiV1sb7FBjokG5+mbwIHt/t/Nf4yu/fX\r\nivWmmGVfArY7aoAKHCT4SRLGI+DWDJ9DiwBNUhaRRdfa6NN3prxtDpiKLv72\r\nhnOkaxfyG57s1kVuruABxx41beSDiscA4yoOzmkwqYgZs1dPcUe0IJawW48q\r\nFOUxmXLXqzRe8qfiC7RPOwq//H2bR8Rlo/7laVI2rhPC8GsaOONbK3D18Ia0\r\nWu/B3auX9rBuLnwxy3/8deJXMmBXTUk6fPbF4sd7OmxOllW6ExWVSGJn0YY5\r\nbf8fB1q5imbXlQ9E8cdss9dKh7jpBsZwQwSJLuSY9XKf8d3wxPW2zOPj1Wpf\r\nkPnNU6fK/HKOIBPjpbskWUNl/Fl/HlEetBA=\r\n=UgGH\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","readme":"# ESLint Plugin\n\n[ESLint](https://eslint.org/) plugin including configurations and custom rules for WordPress development.\n\n## Installation\n\nInstall the module\n\n```bash\nnpm install @wordpress/eslint-plugin --save-dev\n```\n\n**Note**: This package requires `node` 12.0.0 or later, and `npm` 6.9.0 or later. It is not compatible with older versions.\n\n## Usage\n\nTo opt-in to the default configuration, extend your own project's `.eslintrc` file:\n\n```json\n{\n\t\"extends\": [ \"plugin:@wordpress/eslint-plugin/recommended\" ]\n}\n```\n\nRefer to the [ESLint documentation on Shareable Configs](http://eslint.org/docs/developer-guide/shareable-configs) for more information.\n\nThe `recommended` preset will include rules governing an ES2015+ environment, and includes rules from the [`eslint-plugin-jsx-a11y`](https://github.com/evcohen/eslint-plugin-jsx-a11y), [`eslint-plugin-react`](https://github.com/yannickcr/eslint-plugin-react), and [`eslint-plugin-prettier`](https://github.com/prettier/eslint-plugin-prettier) projects. It also includes an optional integration with [`@typescript-eslint/eslint-plugin`](https://github.com/typescript-eslint/typescript-eslint) that gets activated when the [`typescript`](https://www.npmjs.com/package/typescript) package is installed in the project.\n\nThere is also `recommended-with-formatting` ruleset for projects that want to opt out from [Prettier](https://prettier.io). It has the native ESLint code formatting rules enabled instead.\n\n### Rulesets\n\nAlternatively, you can opt-in to only the more granular rulesets offered by the plugin. These include:\n\n-   `custom`\n-   `es5`\n-   `esnext`\n-   `jsdoc`\n-   `jsx-a11y`\n-   `react`\n-   `i18n`\n-   `test-e2e`\n-   `test-unit`\n\nFor example, if your project does not use React, you could consider extending including only the ESNext rules in your project using the following `extends` definition:\n\n```json\n{\n\t\"extends\": [ \"plugin:@wordpress/eslint-plugin/esnext\" ]\n}\n```\n\nThese rules can be used additively, so you could extend both `esnext` and `custom` rulesets, but omit the `react` and `jsx-a11y` configurations.\n\nThe granular rulesets will not define any environment globals. As such, if they are required for your project, you will need to define them yourself.\n\n### Rules\n\n| Rule                                                                                                                                                                 | Description                                                                                    | Recommended |\n| -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ----------- |\n| [data-no-store-string-literals](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/data-no-store-string-literals.md)                 | Discourage passing string literals to reference data stores                                    |             |\n| [dependency-group](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/dependency-group.md)                                           | Enforce dependencies docblocks formatting                                                      | ✓           |\n| [is-gutenberg-plugin](docs/rules/is-gutenberg-plugin.md)                                                                                                             | Governs the use of the `process.env.IS_GUTENBERG_PLUGIN` constant                              | ✓           |\n| [no-base-control-with-label-without-id](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/no-base-control-with-label-without-id.md) | Disallow the usage of BaseControl component with a label prop set but omitting the id property | ✓           |\n| [no-unguarded-get-range-at](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/no-unguarded-get-range-at.md)                         | Disallow the usage of unguarded `getRangeAt` calls                                             | ✓           |\n| [no-unsafe-wp-apis](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/no-unsafe-wp-apis.md)                                         | Disallow the usage of unsafe APIs from `@wordpress/*` packages                                 | ✓           |\n| [no-unused-vars-before-return](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/no-unused-vars-before-return.md)                   | Disallow assigning variable values if unused before a return                                   | ✓           |\n| [react-no-unsafe-timeout](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/react-no-unsafe-timeout.md)                             | Disallow unsafe `setTimeout` in component                                                      |             |\n| [valid-sprintf](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/valid-sprintf.md)                                                 | Enforce valid sprintf usage                                                                    | ✓           |\n| [i18n-ellipsis](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-ellipsis.md)                                                 | Disallow using three dots in translatable strings                                              | ✓           |\n| [i18n-no-collapsible-whitespace](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-no-collapsible-whitespace.md)               | Disallow collapsible whitespace in translatable strings                                        | ✓           |\n| [i18n-no-placeholders-only](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-no-placeholders-only.md)                         | Prevent using only placeholders in translatable strings                                        | ✓           |\n| [i18n-no-variables](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-no-variables.md)                                         | Enforce string literals as translation function arguments                                      | ✓           |\n| [i18n-text-domain](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-text-domain.md)                                           | Enforce passing valid text domains                                                             | ✓           |\n| [i18n-translator-comments](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-translator-comments.md)                           | Enforce adding translator comments                                                             | ✓           |\n| [i18n-no-flanking-whitespace](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-no-flanking-whitespace.md)                     | Disallow leading or trailing whitespace in translatable strings                                |             |\n| [i18n-hyphenated-range](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-hyphenated-range.md)                                 | Disallow hyphenated numerical ranges in translatable strings                                   |             |\n\n### Legacy\n\nIf you are using WordPress' `.jshintrc` JSHint configuration and you would like to take the first step to migrate to an ESLint equivalent it is also possible to define your own project's `.eslintrc` file as:\n\n```json\n{\n\t\"extends\": [ \"plugin:@wordpress/eslint-plugin/jshint\" ]\n}\n```\n\n## Contributing to this package\n\nThis is an individual package that's part of the Gutenberg project. The project is organized as a monorepo. It's made up of multiple self-contained software packages, each with a specific purpose. The packages in this monorepo are published to [npm](https://www.npmjs.com/) and used by [WordPress](https://make.wordpress.org/core/) as well as other software projects.\n\nTo find out more about contributing to this package or Gutenberg as a whole, please read the project's main [contributor guide](https://github.com/WordPress/gutenberg/tree/HEAD/CONTRIBUTING.md).\n\n<br /><br /><p align=\"center\"><img src=\"https://s.w.org/style/images/codeispoetry.png?1\" alt=\"Code is Poetry.\" /></p>\n","engines":{"npm":">=6.9","node":">=12"},"gitHead":"ce56e2b13b1c48ee391cb7008462de6581c3934f","scripts":{"test":"jest","test:watch":"jest --watch"},"_npmUser":{"name":"nicholasio","email":"nicholasio.oliveira@gmail.com"},"repository":{"url":"git+https://github.com/10up/10up-toolkit.git","type":"git","directory":"packages/eslint-plugin"},"_npmVersion":"lerna/5.0.0/node@v16.15.0+x64 (linux)","description":"ESLint plugin for WordPress development.","directories":{},"_nodeVersion":"16.15.0","dependencies":{"globals":"^13.12.0","requireindex":"^1.2.0","eslint-plugin-jest":"^25.2.3","eslint-plugin-jsdoc":"^37.0.3","eslint-plugin-react":"^7.27.0","@babel/eslint-parser":"^7.16.0","eslint-plugin-import":"^2.25.2","eslint-plugin-jsx-a11y":"^6.5.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"@10up/babel-preset-default":"^2.0.3-next.1"},"peerDependencies":{"eslint":">=8","@babel/core":">=7"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_1.0.3-next.1_1654177475617_0.9922548373560116","host":"s3://npm-registry-packages"}},"1.0.3":{"name":"@10up/eslint-plugin","version":"1.0.3","keywords":["wordpress","gutenberg","eslint","plugin"],"author":{"name":"10up"},"license":"GPL-2.0-or-later","_id":"@10up/eslint-plugin@1.0.3","maintainers":[{"name":"fabiankaegy","email":"mail@fabian-kaegy.de"},{"name":"brandwaffle","email":"vhauri@gmail.com"},{"name":"eugene-manuilov","email":"eugene.manuilov@gmail.com"},{"name":"christianc1","email":"christian.m.chung@gmail.com"},{"name":"nicholasio","email":"nicholasio.oliveira@gmail.com"},{"name":"joesnellpdx","email":"joesnellpdx@gmail.com"},{"name":"tlovett1","email":"tlovett88@gmail.com"},{"name":"devinle","email":"devin.leggett@gmail.com"}],"homepage":"https://github.com/10up/10up-toolkit","bugs":{"url":"https://github.com/10up/10up-toolkit/issues"},"dist":{"shasum":"fc33d56df0f42e4aa3ab6ed51d8a171cd0a0a1bd","tarball":"https://registry.npmjs.org/@10up/eslint-plugin/-/eslint-plugin-1.0.3.tgz","fileCount":55,"integrity":"sha512-ntfd9IBdTD6hkYHHc7BVYocXJEAaa2i3eV5gGiUj3KHf9nI27vbLrosNDZKVK2aMrzjo246aemf0whe/pkl7aw==","signatures":[{"sig":"MEUCIQCHvhGKuf/ITcBwOuH8U8Bmipg7obGjsUxXwddSlSU35gIgaGoPFLqSxgyYNWWvxbYkQB3ICw5spXJ3Si2miGjpCVc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":113306,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJinkouACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoMog//RIlFFD5xjYCQDAK0Qnn9toslbSqegtLp8HGeADhF57qE5q2j\r\n6Hv9Hr40e20jZ/q9kLwzk1k3lj8UOR9/kEx4szJUK2ZE7/PxB5svL4QBL2JY\r\nWVAkOv21HNGMbHIzG+EhrM1HnhywMm6+A43BukMljHBoT4DKyi9yGdIltHb/\r\nSaJI4c0fylq+Msi0mzsVsMRbrOqjo3gnlT//pw0o/KfBQzqQJSNw+JJsNKgN\r\nB+pg6mjGRQBZ+kk4PszjEk9pseSJUHQKSGT1iu85IQcP0IDPdSd2CdapAk7E\r\nSV5lJraZ/hrzggIG6JOqNlVFpl084UMOsfOEdI4pKkiekYDwr4j9v61NLtPx\r\n9ucXZvC+uZXNf9iDYxDS31rL8lH42VidJkjEWA9wkmmOmggW0A6GvkbvH84j\r\n/G2StUreWia8u4OPRb2MtVkoMYvo+BGuykozpDMKBS/NIltrVefTnTv5p+fS\r\nrV9I15FR16+QUJUp4zeQerBf77uq223ynT1SSIPf8/5MYLEFOl4ijg9vrVhy\r\n5ESoFKFUzgmqvh3KyUFTyvXFNFDByL6IZY4Ise45DdvIfb8ykF9enIk3Wg/a\r\ng3LYEkk9UG6f+raG4l6Y73e3vU19tLtKOg92IYe8gCHHiCXTKupX0tHh7Lvn\r\njHdzf2AxmI3Dd0Ivy9cJm1CyxPhaF8JHyw0=\r\n=Se32\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","engines":{"npm":">=6.9","node":">=12"},"gitHead":"bb93c3b78c31bc92128695d6759bc535e0db2f32","scripts":{"test":"jest","test:watch":"jest --watch"},"_npmUser":{"name":"nicholasio","email":"nicholasio.oliveira@gmail.com"},"repository":{"url":"git+https://github.com/10up/10up-toolkit.git","type":"git","directory":"packages/eslint-plugin"},"_npmVersion":"8.5.5","description":"ESLint plugin for WordPress development.","directories":{},"_nodeVersion":"16.15.0","dependencies":{"globals":"^13.12.0","requireindex":"^1.2.0","eslint-plugin-jest":"^25.2.3","eslint-plugin-jsdoc":"^37.0.3","eslint-plugin-react":"^7.27.0","@babel/eslint-parser":"^7.16.0","eslint-plugin-import":"^2.25.2","eslint-plugin-jsx-a11y":"^6.5.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@10up/babel-preset-default":"^2.0.3"},"peerDependencies":{"eslint":">=8","@babel/core":">=7"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_1.0.3_1654540846746_0.3793266299314655","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"@10up/eslint-plugin","version":"2.0.0","keywords":["wordpress","gutenberg","eslint","plugin"],"author":{"name":"10up"},"license":"GPL-2.0-or-later","_id":"@10up/eslint-plugin@2.0.0","maintainers":[{"name":"fabiankaegy","email":"mail@fabian-kaegy.de"},{"name":"brandwaffle","email":"vhauri@gmail.com"},{"name":"eugene-manuilov","email":"eugene.manuilov@gmail.com"},{"name":"christianc1","email":"christian.m.chung@gmail.com"},{"name":"nicholasio","email":"nicholasio.oliveira@gmail.com"},{"name":"joesnellpdx","email":"joesnellpdx@gmail.com"},{"name":"tlovett1","email":"tlovett88@gmail.com"},{"name":"devinle","email":"devin.leggett@gmail.com"}],"homepage":"https://github.com/10up/10up-toolkit","bugs":{"url":"https://github.com/10up/10up-toolkit/issues"},"dist":{"shasum":"c5002e7e4924570cf7df93a10a81fc3bb6115923","tarball":"https://registry.npmjs.org/@10up/eslint-plugin/-/eslint-plugin-2.0.0.tgz","fileCount":55,"integrity":"sha512-UxN3RvqXfTEUcvEC2vjLKkXxZ0+Y6ebFbDH44L/EjsRxnh5Yb7XKHQeUs0mTIFdGXgnN7jdqvbqcovAcDxmACg==","signatures":[{"sig":"MEUCIEkLmCjlQZRF6DXmdpvwpuM0nOBz0ljvhIR8Biwvyg8dAiEA8mO2w5nB7uKFXh65MK1y6DBPmfadxrPJkuhfQXyyHfw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":113741,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj5Ub1ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrNkw//STxoFCvpMct3OemNDxTZ8p67EyprBGtZsMvGS5ITUpHHxbQ3\r\nt+wX2zC8eNhzHxiXT5WRFK87l5obXwMtCMU/BWjvOVlZN9oLLETBsY2ILBBG\r\nPnahuldQeFfCEpG45MSnL9uSRAL8spGwmoFk7W3f+f32mFWzyT478t9Lw0n0\r\nmZ0qCFW8YKe0sb1TRqSm8XQmLrU9NvurJRPdDh755e1V2Cl5jCz2YiazQagi\r\nJozXFNpkr6Ud/AILIcmV85qMT3shfGaMyyRz9GWzNa/qjEqgo9hmTqaKC0Jp\r\nM/W7npfi6VNGPLvGTP+ICvjkKOxeurW4hhOX98jOXM0NtVhTZ8YYg6dYSTQm\r\nkkwSwLFZrbyLwTVgvJzZJ/BPyx8v7KEACIbNyzStJVdI6KAVScTRHWd6Y8vA\r\nfWtSqB7aBlXwc9H8KBwPLz4rnXhR8IhgwQjzG5rXqYHCMSJmovzJZpn5/k+P\r\njPb5wHzzimy2dGmivNeHPxPMAJpfzdI3d3Q1fGM+vQ3OebS+pK9JjOJLSACR\r\nx1zmqv9WE+U4A+Dze/KCnNkWYNWQvxUmKIFz5ClNqL2hDpXYUZYIKv3H1N3k\r\njnbmLC5gdnrt3Ga1THEGWJv39y4UJrqdcPdnYhhha54QOE+NfQe7rREF7J/Y\r\n05p7xsW6MOJYw3MXMPk07PQB+4FynHTN6Ms=\r\n=wKW5\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","engines":{"node":"^16 || >=18"},"gitHead":"de05c084c63ca10d3a9f1480e168ba5eb0f40d8f","scripts":{"lint":"eslint .","test":"jest","test:watch":"jest --watch"},"_npmUser":{"name":"nicholasio","email":"nicholasio.oliveira@gmail.com"},"repository":{"url":"git+https://github.com/10up/10up-toolkit.git","type":"git","directory":"packages/eslint-plugin"},"_npmVersion":"8.19.3","description":"ESLint plugin for WordPress development.","directories":{},"_nodeVersion":"16.19.0","dependencies":{"globals":"^13.20.0","requireindex":"^1.2.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-jsdoc":"^39.8.0","eslint-plugin-react":"^7.32.2","@babel/eslint-parser":"^7.19.1","eslint-plugin-import":"^2.27.5","eslint-plugin-jsx-a11y":"^6.7.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@10up/eslint-config":"^3.0.0","@10up/babel-preset-default":"^2.0.4"},"peerDependencies":{"eslint":">=8","@babel/core":">=7"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_2.0.0_1675970293763_0.6591072882139635","host":"s3://npm-registry-packages"}}},"time":{"created":"2022-02-28T21:50:59.028Z","modified":"2026-08-21T19:38:54.258Z","1.0.0":"2022-02-28T21:50:59.239Z","1.1.0-next.0":"2022-03-23T13:55:25.069Z","1.0.1-next.0":"2022-03-28T19:18:15.158Z","1.0.1-next.1":"2022-03-29T00:22:09.449Z","1.0.1":"2022-03-30T22:04:40.088Z","1.0.2-next.0":"2022-03-31T17:05:37.614Z","1.0.2-next.1":"2022-04-11T18:34:20.455Z","1.0.2-next.2":"2022-04-25T11:08:29.071Z","1.0.2-next.3":"2022-04-26T11:37:49.902Z","1.0.2-next.4":"2022-04-26T16:38:21.364Z","1.0.2-next.5":"2022-04-27T13:54:01.915Z","1.0.3-next.0":"2022-05-16T12:13:11.388Z","1.0.3-next.1":"2022-06-02T13:44:35.833Z","1.0.3":"2022-06-06T18:40:46.948Z","2.0.0":"2023-02-09T19:18:13.911Z"},"bugs":{"url":"https://github.com/10up/10up-toolkit/issues"},"author":{"name":"10up"},"license":"GPL-2.0-or-later","homepage":"https://github.com/10up/10up-toolkit","keywords":["wordpress","gutenberg","eslint","plugin"],"repository":{"url":"git+https://github.com/10up/10up-toolkit.git","type":"git","directory":"packages/eslint-plugin"},"description":"ESLint plugin for WordPress development.","maintainers":[{"email":"mail@fabian-kaegy.de","name":"fabiankaegy"},{"email":"eugene.manuilov@gmail.com","name":"eugene-manuilov"},{"email":"christian.m.chung@gmail.com","name":"christianc1"},{"email":"nicholasio.oliveira@gmail.com","name":"nicholasio"},{"email":"joesnellpdx@gmail.com","name":"joesnellpdx"},{"email":"devin.leggett@gmail.com","name":"devinle"},{"email":"daryll.doyle@10up.com","name":"darylldoyle"},{"email":"jeffpaul@hotmail.com","name":"jeffpaul"}],"readme":"# ESLint Plugin\n\n[ESLint](https://eslint.org/) plugin including configurations and custom rules for WordPress development.\n\n## Installation\n\nInstall the module\n\n```bash\nnpm install @wordpress/eslint-plugin --save-dev\n```\n\n**Note**: This package requires `node` 12.0.0 or later, and `npm` 6.9.0 or later. It is not compatible with older versions.\n\n## Usage\n\nTo opt-in to the default configuration, extend your own project's `.eslintrc` file:\n\n```json\n{\n\t\"extends\": [ \"plugin:@wordpress/eslint-plugin/recommended\" ]\n}\n```\n\nRefer to the [ESLint documentation on Shareable Configs](http://eslint.org/docs/developer-guide/shareable-configs) for more information.\n\nThe `recommended` preset will include rules governing an ES2015+ environment, and includes rules from the [`eslint-plugin-jsx-a11y`](https://github.com/evcohen/eslint-plugin-jsx-a11y), [`eslint-plugin-react`](https://github.com/yannickcr/eslint-plugin-react), and [`eslint-plugin-prettier`](https://github.com/prettier/eslint-plugin-prettier) projects. It also includes an optional integration with [`@typescript-eslint/eslint-plugin`](https://github.com/typescript-eslint/typescript-eslint) that gets activated when the [`typescript`](https://www.npmjs.com/package/typescript) package is installed in the project.\n\nThere is also `recommended-with-formatting` ruleset for projects that want to opt out from [Prettier](https://prettier.io). It has the native ESLint code formatting rules enabled instead.\n\n### Rulesets\n\nAlternatively, you can opt-in to only the more granular rulesets offered by the plugin. These include:\n\n-   `custom`\n-   `es5`\n-   `esnext`\n-   `jsdoc`\n-   `jsx-a11y`\n-   `react`\n-   `i18n`\n-   `test-e2e`\n-   `test-unit`\n\nFor example, if your project does not use React, you could consider extending including only the ESNext rules in your project using the following `extends` definition:\n\n```json\n{\n\t\"extends\": [ \"plugin:@wordpress/eslint-plugin/esnext\" ]\n}\n```\n\nThese rules can be used additively, so you could extend both `esnext` and `custom` rulesets, but omit the `react` and `jsx-a11y` configurations.\n\nThe granular rulesets will not define any environment globals. As such, if they are required for your project, you will need to define them yourself.\n\n### Rules\n\n| Rule                                                                                                                                                                 | Description                                                                                    | Recommended |\n| -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ----------- |\n| [data-no-store-string-literals](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/data-no-store-string-literals.md)                 | Discourage passing string literals to reference data stores                                    |             |\n| [dependency-group](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/dependency-group.md)                                           | Enforce dependencies docblocks formatting                                                      | ✓           |\n| [is-gutenberg-plugin](docs/rules/is-gutenberg-plugin.md)                                                                                                             | Governs the use of the `process.env.IS_GUTENBERG_PLUGIN` constant                              | ✓           |\n| [no-base-control-with-label-without-id](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/no-base-control-with-label-without-id.md) | Disallow the usage of BaseControl component with a label prop set but omitting the id property | ✓           |\n| [no-unguarded-get-range-at](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/no-unguarded-get-range-at.md)                         | Disallow the usage of unguarded `getRangeAt` calls                                             | ✓           |\n| [no-unsafe-wp-apis](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/no-unsafe-wp-apis.md)                                         | Disallow the usage of unsafe APIs from `@wordpress/*` packages                                 | ✓           |\n| [no-unused-vars-before-return](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/no-unused-vars-before-return.md)                   | Disallow assigning variable values if unused before a return                                   | ✓           |\n| [react-no-unsafe-timeout](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/react-no-unsafe-timeout.md)                             | Disallow unsafe `setTimeout` in component                                                      |             |\n| [valid-sprintf](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/valid-sprintf.md)                                                 | Enforce valid sprintf usage                                                                    | ✓           |\n| [i18n-ellipsis](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-ellipsis.md)                                                 | Disallow using three dots in translatable strings                                              | ✓           |\n| [i18n-no-collapsible-whitespace](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-no-collapsible-whitespace.md)               | Disallow collapsible whitespace in translatable strings                                        | ✓           |\n| [i18n-no-placeholders-only](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-no-placeholders-only.md)                         | Prevent using only placeholders in translatable strings                                        | ✓           |\n| [i18n-no-variables](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-no-variables.md)                                         | Enforce string literals as translation function arguments                                      | ✓           |\n| [i18n-text-domain](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-text-domain.md)                                           | Enforce passing valid text domains                                                             | ✓           |\n| [i18n-translator-comments](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-translator-comments.md)                           | Enforce adding translator comments                                                             | ✓           |\n| [i18n-no-flanking-whitespace](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-no-flanking-whitespace.md)                     | Disallow leading or trailing whitespace in translatable strings                                |             |\n| [i18n-hyphenated-range](https://github.com/WordPress/gutenberg/tree/HEAD/packages/eslint-plugin/docs/rules/i18n-hyphenated-range.md)                                 | Disallow hyphenated numerical ranges in translatable strings                                   |             |\n\n### Legacy\n\nIf you are using WordPress' `.jshintrc` JSHint configuration and you would like to take the first step to migrate to an ESLint equivalent it is also possible to define your own project's `.eslintrc` file as:\n\n```json\n{\n\t\"extends\": [ \"plugin:@wordpress/eslint-plugin/jshint\" ]\n}\n```\n\n## Contributing to this package\n\nThis is an individual package that's part of the Gutenberg project. The project is organized as a monorepo. It's made up of multiple self-contained software packages, each with a specific purpose. The packages in this monorepo are published to [npm](https://www.npmjs.com/) and used by [WordPress](https://make.wordpress.org/core/) as well as other software projects.\n\nTo find out more about contributing to this package or Gutenberg as a whole, please read the project's main [contributor guide](https://github.com/WordPress/gutenberg/tree/HEAD/CONTRIBUTING.md).\n\n<br /><br /><p align=\"center\"><img src=\"https://s.w.org/style/images/codeispoetry.png?1\" alt=\"Code is Poetry.\" /></p>\n","readmeFilename":"README.md"}