{"_id":"@elsikora/eslint-plugin-markdown","_rev":"2-ed42d13e4f2df11925bd9aeae56c9735","name":"@elsikora/eslint-plugin-markdown","dist-tags":{"latest":"6.2.3"},"versions":{"6.2.2":{"name":"@elsikora/eslint-plugin-markdown","version":"6.2.2","keywords":["eslint","eslintplugin","markdown","lint","linter"],"author":{"url":"https://github.com/btmills","name":"Brandon Mills"},"license":"MIT","_id":"@elsikora/eslint-plugin-markdown@6.2.2","maintainers":[{"name":"dmitryv_devops","email":"dmitry@elsikora.com"},{"name":"michail-elsikora","email":"michail.developer@elsikora.com"},{"name":"admin-elsikora","email":"admin@elsikora.com"},{"name":"dmitry-elsikora","email":"dmitry.developer@elsikora.com"},{"name":"aleksandr-elsikora","email":"alexander.frontend@elsikora.com"}],"homepage":"https://github.com/eslint/markdown#readme","bugs":{"url":"https://github.com/eslint/markdown/issues"},"dist":{"shasum":"686153ecafb51e2a9428dacf897e2bb9d65a4b43","tarball":"https://registry.npmjs.org/@elsikora/eslint-plugin-markdown/-/eslint-plugin-markdown-6.2.2.tgz","fileCount":7,"integrity":"sha512-jFaUNlMFE1wU91TwkaT+a9N/mIMVuYdK6Vi1nu4SMC98mH25kplqIRr3cEgU49W42E/e0MCVbYMb9BnCtCLoMA==","signatures":[{"sig":"MEQCIAWxAPzCcbLcyvpOhBsmqhEsCRoXJSRTizsocDHPURyDAiBz5Y/SnY+IIr6Ziq3Boe87DgLbEnmVDNudC/yDgtw7Zw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":69911},"main":"dist/esm/index.js","type":"module","types":"dist/esm/index.d.ts","engines":{"node":"^18.18.0 || ^20.9.0 || >=21.1.0"},"exports":{".":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"}},"gitHead":"7075f009d435e6d940deefe903ba9848964e001c","scripts":{"fmt":"prettier --write .","lint":"eslint . && eslint -c eslint.config-content.js .","test":"c8 mocha \"tests/**/*.test.js\" --timeout 30000","build":"npm run build:rules && rollup -c && npm run build:dedupe-types && tsc -p tsconfig.esm.json && npm run build:update-rules-docs","prepare":"node ./npm-prepare.cjs && npm run build","lint:fix":"eslint --fix . && eslint --fix -c eslint.config-content.js .","test:jsr":"npx jsr@latest publish --dry-run","fmt:check":"prettier --check .","test:types":"tsc -p tests/types/tsconfig.json","build:rules":"node tools/build-rules.js","build:readme":"node tools/update-readme.js","build:dedupe-types":"node tools/dedupe-types.js dist/esm/index.js","build:update-rules-docs":"node tools/update-rules-docs.js"},"_npmUser":{"name":"admin-elsikora","email":"admin@elsikora.com"},"gitHooks":{"pre-commit":"lint-staged"},"repository":{"url":"git+https://github.com/eslint/markdown.git","type":"git"},"_npmVersion":"10.9.2","description":"The official ESLint language plugin for Markdown","directories":{},"lint-staged":{"*.js":["eslint --fix","prettier --write"],"!(*.{js,md})":"prettier --write --ignore-unknown","{src/rules/*.js,tools/update-rules-docs.js,README.md}":"npm run build:update-rules-docs"},"_nodeVersion":"22.14.0","dependencies":{"@eslint/core":"^0.10.0","mdast-util-gfm":"^3.0.0","micromark-extension-gfm":"^3.0.0","mdast-util-from-markdown":"^2.0.2","@elsikora/eslint-plugin-kit":"^0.2.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.2","got":"^14.4.2","chai":"^5.1.1","mocha":"^10.6.0","dedent":"^1.5.3","eslint":"^9.15.0","rollup":"^4.19.0","yorkie":"^2.0.0","globals":"^15.1.0","prettier":"^3.3.3","@eslint/js":"^9.4.0","typescript":"^5.5.4","lint-staged":"^15.2.9","@types/eslint":"^9.6.0","rollup-plugin-copy":"^3.5.0","eslint-config-eslint":"^11.0.0","eslint-plugin-eslint-plugin":"^6.3.2"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin-markdown_6.2.2_1741120146879_0.7178283939978529","host":"s3://npm-registry-packages-npm-production"}},"6.2.1":{"name":"@elsikora/eslint-plugin-markdown","version":"6.2.1","keywords":["eslint","eslintplugin","markdown","lint","linter"],"author":{"url":"https://github.com/btmills","name":"Brandon Mills"},"license":"MIT","_id":"@elsikora/eslint-plugin-markdown@6.2.1","maintainers":[{"name":"dmitryv_devops","email":"dmitry@elsikora.com"},{"name":"michail-elsikora","email":"michail.developer@elsikora.com"},{"name":"admin-elsikora","email":"admin@elsikora.com"},{"name":"dmitry-elsikora","email":"dmitry.developer@elsikora.com"},{"name":"aleksandr-elsikora","email":"alexander.frontend@elsikora.com"}],"homepage":"https://github.com/eslint/markdown#readme","bugs":{"url":"https://github.com/eslint/markdown/issues"},"dist":{"shasum":"262b6b1787785fbb05ee72c3152d5973b478c1f7","tarball":"https://registry.npmjs.org/@elsikora/eslint-plugin-markdown/-/eslint-plugin-markdown-6.2.1.tgz","fileCount":7,"integrity":"sha512-sSs3veoEFUM6BROcBJU4XoAh1pE78XjRmdOF6CH5ThUW68IWsZyDLL9SNRljv2CRBxXOz0Hz441zHYysZuSBhQ==","signatures":[{"sig":"MEYCIQCctjs5KfcRAZ65Av0pRG/u+8N3f2np/FLIiyuoewe15wIhAKzSM+qdKCxfVjV93ZMIZ0d+T6ORouJQrbf9HghY2wKe","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":69688},"main":"dist/esm/index.js","type":"module","types":"dist/esm/index.d.ts","engines":{"node":"^18.18.0 || ^20.9.0 || >=21.1.0"},"exports":{".":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"}},"gitHead":"7075f009d435e6d940deefe903ba9848964e001c","scripts":{"fmt":"prettier --write .","lint":"eslint . && eslint -c eslint.config-content.js .","test":"c8 mocha \"tests/**/*.test.js\" --timeout 30000","build":"npm run build:rules && rollup -c && npm run build:dedupe-types && tsc -p tsconfig.esm.json && npm run build:update-rules-docs","prepare":"node ./npm-prepare.cjs && npm run build","lint:fix":"eslint --fix . && eslint --fix -c eslint.config-content.js .","test:jsr":"npx jsr@latest publish --dry-run","fmt:check":"prettier --check .","test:types":"tsc -p tests/types/tsconfig.json","build:rules":"node tools/build-rules.js","build:readme":"node tools/update-readme.js","build:dedupe-types":"node tools/dedupe-types.js dist/esm/index.js","build:update-rules-docs":"node tools/update-rules-docs.js"},"_npmUser":{"name":"admin-elsikora","email":"admin@elsikora.com"},"gitHooks":{"pre-commit":"lint-staged"},"repository":{"url":"git+https://github.com/eslint/markdown.git","type":"git"},"_npmVersion":"10.9.2","description":"The official ESLint language plugin for Markdown","directories":{},"lint-staged":{"*.js":["eslint --fix","prettier --write"],"!(*.{js,md})":"prettier --write --ignore-unknown","{src/rules/*.js,tools/update-rules-docs.js,README.md}":"npm run build:update-rules-docs"},"_nodeVersion":"22.14.0","dependencies":{"@eslint/core":"^0.10.0","mdast-util-gfm":"^3.0.0","micromark-extension-gfm":"^3.0.0","mdast-util-from-markdown":"^2.0.2","@elsikora/eslint-plugin-kit":"^0.2.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.2","got":"^14.4.2","chai":"^5.1.1","mocha":"^10.6.0","dedent":"^1.5.3","eslint":"^9.15.0","rollup":"^4.19.0","yorkie":"^2.0.0","globals":"^15.1.0","prettier":"^3.3.3","@eslint/js":"^9.4.0","typescript":"^5.5.4","lint-staged":"^15.2.9","@types/eslint":"^9.6.0","rollup-plugin-copy":"^3.5.0","eslint-config-eslint":"^11.0.0","eslint-plugin-eslint-plugin":"^6.3.2"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin-markdown_6.2.1_1741120768590_0.8514040258102298","host":"s3://npm-registry-packages-npm-production"}},"6.2.3":{"name":"@elsikora/eslint-plugin-markdown","version":"6.2.3","description":"The official ESLint language plugin for Markdown","license":"MIT","author":{"name":"Brandon Mills","url":"https://github.com/btmills"},"type":"module","main":"dist/esm/index.js","types":"dist/esm/index.d.ts","exports":{".":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"}},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/eslint/markdown.git"},"bugs":{"url":"https://github.com/eslint/markdown/issues"},"homepage":"https://github.com/eslint/markdown#readme","keywords":["eslint","eslintplugin","markdown","lint","linter"],"gitHooks":{"pre-commit":"lint-staged"},"lint-staged":{"*.js":["eslint --fix","prettier --write"],"!(*.{js,md})":"prettier --write --ignore-unknown","{src/rules/*.js,tools/update-rules-docs.js,README.md}":"npm run build:update-rules-docs"},"scripts":{"lint":"eslint . && eslint -c eslint.config-content.js .","lint:fix":"eslint --fix . && eslint --fix -c eslint.config-content.js .","fmt":"prettier --write .","fmt:check":"prettier --check .","build:dedupe-types":"node tools/dedupe-types.js dist/esm/index.js","build:rules":"node tools/build-rules.js","build:update-rules-docs":"node tools/update-rules-docs.js","build":"npm run build:rules && rollup -c && npm run build:dedupe-types && tsc -p tsconfig.esm.json && npm run build:update-rules-docs","build:readme":"node tools/update-readme.js","prepare":"node ./npm-prepare.cjs && npm run build","test":"c8 mocha \"tests/**/*.test.js\" --timeout 30000","test:jsr":"npx jsr@latest publish --dry-run","test:types":"tsc -p tests/types/tsconfig.json"},"devDependencies":{"@eslint/js":"^9.4.0","@types/eslint":"^9.6.0","c8":"^10.1.2","chai":"^5.1.1","dedent":"^1.5.3","eslint":"^9.15.0","eslint-config-eslint":"^11.0.0","eslint-plugin-eslint-plugin":"^6.3.2","globals":"^15.1.0","got":"^14.4.2","lint-staged":"^15.2.9","mocha":"^10.6.0","prettier":"^3.3.3","rollup":"^4.19.0","rollup-plugin-copy":"^3.5.0","typescript":"^5.5.4","yorkie":"^2.0.0"},"dependencies":{"@elsikora/eslint-plugin-kit":"^0.2.7","@eslint/core":"^0.10.0","mdast-util-from-markdown":"^2.0.2","mdast-util-gfm":"^3.0.0","micromark-extension-gfm":"^3.0.0"},"engines":{"node":"^18.18.0 || ^20.9.0 || >=21.1.0"},"_id":"@elsikora/eslint-plugin-markdown@6.2.3","gitHead":"7075f009d435e6d940deefe903ba9848964e001c","_nodeVersion":"22.14.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-8TcJIa4fhB1iK+iKWVV2XYKDmHDdJBnUFRTuahaJBbdb4DN5LCm+cOm+bUJ4BF2vfIeYBCu9wCw4uPCNRXzUQg==","shasum":"ee9d432c2704911efc4fa7ccb36d7396711cbdd4","tarball":"https://registry.npmjs.org/@elsikora/eslint-plugin-markdown/-/eslint-plugin-markdown-6.2.3.tgz","fileCount":7,"unpackedSize":69688,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIBUGaqe5IoJLGPnU+ptVleiouV5m8Xpi1qy6BVg4bd3dAiEA+Rc+VF21svqsC0hebKaxFpB0EgvBx3c/EUWZwJIwoIo="}]},"_npmUser":{"name":"admin-elsikora","email":"admin@elsikora.com"},"directories":{},"maintainers":[{"name":"dmitryv_devops","email":"dmitry@elsikora.com"},{"name":"michail-elsikora","email":"michail.developer@elsikora.com"},{"name":"admin-elsikora","email":"admin@elsikora.com"},{"name":"dmitry-elsikora","email":"dmitry.developer@elsikora.com"},{"name":"aleksandr-elsikora","email":"alexander.frontend@elsikora.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/eslint-plugin-markdown_6.2.3_1741120816258_0.7219929910614562"},"_hasShrinkwrap":false}},"time":{"created":"2025-03-04T20:29:06.766Z","modified":"2025-03-04T20:40:16.704Z","6.2.2":"2025-03-04T20:29:07.157Z","6.2.1":"2025-03-04T20:39:28.784Z","6.2.3":"2025-03-04T20:40:16.446Z"},"bugs":{"url":"https://github.com/eslint/markdown/issues"},"author":{"name":"Brandon Mills","url":"https://github.com/btmills"},"license":"MIT","homepage":"https://github.com/eslint/markdown#readme","keywords":["eslint","eslintplugin","markdown","lint","linter"],"repository":{"type":"git","url":"git+https://github.com/eslint/markdown.git"},"description":"The official ESLint language plugin for Markdown","maintainers":[{"name":"dmitryv_devops","email":"dmitry@elsikora.com"},{"name":"michail-elsikora","email":"michail.developer@elsikora.com"},{"name":"admin-elsikora","email":"admin@elsikora.com"},{"name":"dmitry-elsikora","email":"dmitry.developer@elsikora.com"},{"name":"aleksandr-elsikora","email":"alexander.frontend@elsikora.com"}],"readme":"# ESLint Markdown Language Plugin\n\n[![npm Version](https://img.shields.io/npm/v/@eslint/markdown.svg)](https://www.npmjs.com/package/@eslint/markdown)\n[![Downloads](https://img.shields.io/npm/dm/@eslint/markdown.svg)](https://www.npmjs.com/package/@eslint/markdown)\n[![Build Status](https://github.com/eslint/markdown/workflows/CI/badge.svg)](https://github.com/eslint/markdown/actions)\n\nLint JS, JSX, TypeScript, and more inside Markdown.\n\n<img\n    src=\"screenshot.png\"\n    height=\"142\"\n    width=\"432\"\n    alt=\"A JS code snippet in a Markdown editor has red squiggly underlines. A tooltip explains the problem.\"\n/>\n\n## Usage\n\n### Installing\n\nInstall the plugin alongside ESLint v9 or greater:\n\n```sh\nnpm install --save-dev eslint @eslint/markdown\n```\n\n### Configurations\n\n| **Configuration Name** | **Description** |\n|---------------|-----------------|\n| `recommended` | Lints all `.md` files with the recommended rules and assumes [CommonMark](https://commonmark.org/) format. |\n| `processor` | Enables extracting code blocks from all `.md` files so code blocks can be individually linted. |\n\nIn your `eslint.config.js` file, import `@eslint/markdown` and include the recommended config to enable the Markdown processor on all `.md` files:\n\n```js\n// eslint.config.js\nimport markdown from \"@eslint/markdown\";\n\nexport default [\n    ...markdown.configs.recommended\n\n    // your other configs here\n];\n```\n\n### Rules\n\n<!-- NOTE: The following table is autogenerated. Do not manually edit. -->\n\n<!-- Rule Table Start -->\n| **Rule Name** | **Description** | **Recommended** |\n| :- | :- | :-: |\n| [`fenced-code-language`](./docs/rules/fenced-code-language.md) | Require languages for fenced code blocks | yes |\n| [`heading-increment`](./docs/rules/heading-increment.md) | Enforce heading levels increment by one | yes |\n| [`no-duplicate-headings`](./docs/rules/no-duplicate-headings.md) | Disallow duplicate headings in the same document | no |\n| [`no-empty-links`](./docs/rules/no-empty-links.md) | Disallow empty links | yes |\n| [`no-html`](./docs/rules/no-html.md) | Disallow HTML tags | no |\n| [`no-invalid-label-refs`](./docs/rules/no-invalid-label-refs.md) | Disallow invalid label references | yes |\n| [`no-missing-label-refs`](./docs/rules/no-missing-label-refs.md) | Disallow missing label references | yes |\n<!-- Rule Table End -->\n\n**Note:** This plugin does not provide formatting rules. We recommend using a source code formatter such as [Prettier](https://prettier.io) for that purpose.\n\nIn order to individually configure a rule in your `eslint.config.js` file, import `@eslint/markdown` and configure each rule with a prefix:\n\n```js\n// eslint.config.js\nimport markdown from \"@eslint/markdown\";\n\nexport default [\n    {\n        files: [\"**/*.md\"],\n        plugins: {\n            markdown\n        },\n        language: \"markdown/commonmark\",\n        rules: {\n            \"markdown/no-html\": \"error\"\n        }\n    }\n];\n```\n\nYou can individually disable rules in Markdown using HTML comments, such as:\n\n```markdown\n<!-- eslint-disable-next-line markdown/no-html -- I want to allow HTML here -->\n<custom-element>Hello world!</custom-element>\n\n<!-- eslint-disable markdown/no-html -- here too -->\n<another-element>Goodbye world!</another-element>\n<!-- eslint-enable markdown/no-html -- safe to re-enable now -->\n\n[Object] <!-- eslint-disable-line markdown/no-missing-label-refs -- not meant to be a link ref -->\n```\n\n### Languages\n\n| **Language Name** | **Description** |\n|---------------|-----------------|\n| `commonmark` | Parse using [CommonMark](https://commonmark.org) Markdown format | \n| `gfm` | Parse using [GitHub-Flavored Markdown](https://github.github.com/gfm/) format | \n\nIn order to individually configure a language in your `eslint.config.js` file, import `@eslint/markdown` and configure a `language`:\n\n```js\n// eslint.config.js\nimport markdown from \"@eslint/markdown\";\n\nexport default [\n    {\n        files: [\"**/*.md\"],\n        plugins: {\n            markdown\n        },\n        language: \"markdown/gfm\",\n        rules: {\n            \"markdown/no-html\": \"error\"\n        }\n    }\n];\n```\n\n### Processors\n\n| **Processor Name** | **Description** |\n|---------------|-----------------|\n| [`markdown`](./docs/processors/markdown.md) | Extract fenced code blocks from the Markdown code so they can be linted separately. | \n\n## Editor Integrations\n\n### VSCode\n\n[`vscode-eslint`](https://github.com/microsoft/vscode-eslint) has built-in support for the Markdown processor.\n\n### Atom\n\nThe [`linter-eslint`](https://atom.io/packages/linter-eslint) package allows for linting within the [Atom IDE](https://atom.io/).\n\nIn order to see `@eslint/markdown` work its magic within Markdown code blocks in your Atom editor, you can go to `linter-eslint`'s settings and within \"List of scopes to run ESLint on...\", add the cursor scope \"source.gfm\".\n\nHowever, this reports a problem when viewing Markdown which does not have configuration, so you may wish to use the cursor scope \"source.embedded.js\", but note that `@eslint/markdown` configuration comments and skip directives won't work in this context.\n\n## File Name Details\n\nThis processor will use file names from blocks if a `filename` meta is present.\n\nFor example, the following block will result in a parsed file name of `src/index.js`:\n\n````md\n```js filename=\"src/index.js\"\nexport const value = \"Hello, world!\";\n```\n````\n\nThis can be useful for user configurations that include linting overrides for specific file paths. In this example, you could then target the specific code block in your configuration using `\"file-name.md/*src/index.js\"`.\n\n## Contributing\n\n```sh\n$ git clone https://github.com/eslint/markdown.git\n$ cd markdown\n$ npm install\n$ npm test\n```\n\nThis project follows the [ESLint contribution guidelines](https://eslint.org/docs/latest/contribute/).\n\n<!-- NOTE: This section is autogenerated. Do not manually edit.-->\n<!--sponsorsstart-->\n\n## Sponsors\n\nThe following companies, organizations, and individuals support ESLint's ongoing maintenance and development. [Become a Sponsor](https://eslint.org/donate)\nto get your logo on our READMEs and [website](https://eslint.org/sponsors).\n\n<h3>Platinum Sponsors</h3>\n<p><a href=\"https://automattic.com\"><img src=\"https://images.opencollective.com/automattic/d0ef3e1/logo.png\" alt=\"Automattic\" height=\"128\"></a> <a href=\"https://www.airbnb.com/\"><img src=\"https://images.opencollective.com/airbnb/d327d66/logo.png\" alt=\"Airbnb\" height=\"128\"></a></p><h3>Gold Sponsors</h3>\n<p><a href=\"https://qlty.sh/\"><img src=\"https://images.opencollective.com/qltysh/33d157d/logo.png\" alt=\"Qlty Software\" height=\"96\"></a> <a href=\"https://trunk.io/\"><img src=\"https://images.opencollective.com/trunkio/fb92d60/avatar.png\" alt=\"trunk.io\" height=\"96\"></a></p><h3>Silver Sponsors</h3>\n<p><a href=\"https://vite.dev/\"><img src=\"https://images.opencollective.com/vite/e6d15e1/logo.png\" alt=\"Vite\" height=\"64\"></a> <a href=\"https://www.jetbrains.com/\"><img src=\"https://images.opencollective.com/jetbrains/fe76f99/logo.png\" alt=\"JetBrains\" height=\"64\"></a> <a href=\"https://liftoff.io/\"><img src=\"https://images.opencollective.com/liftoff/5c4fa84/logo.png\" alt=\"Liftoff\" height=\"64\"></a> <a href=\"https://americanexpress.io\"><img src=\"https://avatars.githubusercontent.com/u/3853301\" alt=\"American Express\" height=\"64\"></a> <a href=\"https://stackblitz.com\"><img src=\"https://avatars.githubusercontent.com/u/28635252\" alt=\"StackBlitz\" height=\"64\"></a></p><h3>Bronze Sponsors</h3>\n<p><a href=\"https://cybozu.co.jp/\"><img src=\"https://images.opencollective.com/cybozu/933e46d/logo.png\" alt=\"Cybozu\" height=\"32\"></a> <a href=\"https://www.crosswordsolver.org/anagram-solver/\"><img src=\"https://images.opencollective.com/anagram-solver/2666271/logo.png\" alt=\"Anagram Solver\" height=\"32\"></a> <a href=\"https://icons8.com/\"><img src=\"https://images.opencollective.com/icons8/7fa1641/logo.png\" alt=\"Icons8\" height=\"32\"></a> <a href=\"https://discord.com\"><img src=\"https://images.opencollective.com/discordapp/f9645d9/logo.png\" alt=\"Discord\" height=\"32\"></a> <a href=\"https://www.gitbook.com\"><img src=\"https://avatars.githubusercontent.com/u/7111340\" alt=\"GitBook\" height=\"32\"></a> <a href=\"https://nolebase.ayaka.io\"><img src=\"https://avatars.githubusercontent.com/u/11081491\" alt=\"Neko\" height=\"32\"></a> <a href=\"https://nx.dev\"><img src=\"https://avatars.githubusercontent.com/u/23692104\" alt=\"Nx\" height=\"32\"></a> <a href=\"https://opensource.mercedes-benz.com/\"><img src=\"https://avatars.githubusercontent.com/u/34240465\" alt=\"Mercedes-Benz Group\" height=\"32\"></a> <a href=\"https://herocoders.com\"><img src=\"https://avatars.githubusercontent.com/u/37549774\" alt=\"HeroCoders\" height=\"32\"></a> <a href=\"https://www.lambdatest.com\"><img src=\"https://avatars.githubusercontent.com/u/171592363\" alt=\"LambdaTest\" height=\"32\"></a></p>\n<h3>Technology Sponsors</h3>\nTechnology sponsors allow us to use their products and services for free as part of a contribution to the open source ecosystem and our work.\n<p><a href=\"https://netlify.com\"><img src=\"https://raw.githubusercontent.com/eslint/eslint.org/main/src/assets/images/techsponsors/netlify-icon.svg\" alt=\"Netlify\" height=\"32\"></a> <a href=\"https://algolia.com\"><img src=\"https://raw.githubusercontent.com/eslint/eslint.org/main/src/assets/images/techsponsors/algolia-icon.svg\" alt=\"Algolia\" height=\"32\"></a> <a href=\"https://1password.com\"><img src=\"https://raw.githubusercontent.com/eslint/eslint.org/main/src/assets/images/techsponsors/1password-icon.svg\" alt=\"1Password\" height=\"32\"></a></p>\n<!--sponsorsend-->\n","readmeFilename":"README.md"}