{"_id":"eslint-no-restricted","_rev":"10-aa87907e7254c4c201768e5639d07f5d","name":"eslint-no-restricted","dist-tags":{"latest":"0.1.2"},"versions":{"0.0.4":{"name":"eslint-no-restricted","version":"0.0.4","keywords":["eslint"],"license":"MIT","_id":"eslint-no-restricted@0.0.4","maintainers":[{"name":"bradzacher","email":"brad.zacher@gmail.com"}],"contributors":[{"name":"Brad Zacher","email":"brad.zacher@gmail.com"}],"homepage":"https://github.com/bradzacher/eslint-no-restricted","bugs":{"url":"https://github.com/bradzacher/eslint-no-restricted/issues"},"dist":{"shasum":"18d39eda21e93915f499325bf844a99f5098429d","tarball":"https://registry.npmjs.org/eslint-no-restricted/-/eslint-no-restricted-0.0.4.tgz","fileCount":18,"integrity":"sha512-6e4dSifAd3PPqGs1wxuBJzaLTfwYmR+8D04d0OhDWpWBbSZ75wUPop9f4n+/42bdkniqXUo/kCFKnVStHPGpkA==","signatures":[{"sig":"MEUCIQDOWxuVioyclCwK740ttwfM0zx79ZMdG6t2u419M9UVBAIgaG2Ixrro+kvg9y2MwRbmRbsY/B0HC8ZDCvuKPEgydRU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31360},"type":"commonjs","types":"./dist/index.d.ts","engines":{"node":"^20.18.0 || >=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./syntax":{"types":"./dist/syntax.d.ts","default":"./dist/syntax.js"},"./globals":{"types":"./dist/globals.d.ts","default":"./dist/globals.js"},"./properties":{"types":"./dist/properties.d.ts","default":"./dist/properties.js"},"./package.json":"./package.json"},"funding":{"url":"https://github.com/sponsors/bradzacher/","type":"individual"},"scripts":{"ci":"pnpm run build && pnpm run typecheck && pnpm run lint && pnpm run lint:knip && pnpm run lint:format && pnpm run lint:spelling","lint":"eslint .","test":"vitest","build":"rimraf dist .build.tsbuildinfo && tsc --project tsconfig.build.json","format":"prettier --write .","lint:attw":"attw","lint:knip":"knip","typecheck":"tsc --project tsconfig.build.json --noEmit && tsc --project tsconfig.tools.json --noEmit && tsc --project tsconfig.test.json --noEmit","lint:format":"prettier --check .","lint:spelling":"cspell --config=.cspell.json \"**/*.{md,mdx,ts,mts,cts,js,cjs,mjs,tsx,jsx}\" --no-progress --show-context --show-suggestions"},"_npmUser":{"name":"bradzacher","email":"brad.zacher@gmail.com"},"repository":{"url":"git+https://github.com/bradzacher/eslint-no-restricted.git","type":"git"},"_npmVersion":"10.8.2","description":"An eslint utility for quickly and easily creating no-restricted-syntax rules.","directories":{},"_nodeVersion":"20.18.0","dependencies":{"@arethetypeswrong/cli":"^0.16.4","@typescript-eslint/utils":"^8.13.0"},"_hasShrinkwrap":false,"devDependencies":{"knip":"^5.36.2","cspell":"^8.15.7","eslint":"^9.14.0","rimraf":"^6.0.1","vitest":"^2.1.4","prettier":"^3.3.3","@eslint/js":"^9.14.0","typescript":"^5.6.3","@types/node":"^20","eslint-plugin-n":"^17.12.0","@tsconfig/node20":"^20","eslint-plugin-yml":"^1.15.0","typescript-eslint":"^8.13.0","prettier-plugin-sh":"^0.14.0","eslint-plugin-jsonc":"^2.16.0","eslint-plugin-regexp":"^2.6.0","prettier-plugin-curly":"^0.3.1","eslint-config-prettier":"^9.1.0","eslint-plugin-markdown":"^5.1.0","eslint-plugin-package-json":"^0.15.4","eslint-plugin-perfectionist":"^3.9.1","prettier-plugin-packagejson":"^2.5.3","@eslint-community/eslint-plugin-eslint-comments":"^4.4.1"},"peerDependencies":{"eslint":"^8.57.0 || ^9"},"_npmOperationalInternal":{"tmp":"tmp/eslint-no-restricted_0.0.4_1730811238878_0.4130098302415455","host":"s3://npm-registry-packages"}},"0.0.5":{"name":"eslint-no-restricted","version":"0.0.5","keywords":["eslint"],"license":"MIT","_id":"eslint-no-restricted@0.0.5","maintainers":[{"name":"bradzacher","email":"brad.zacher@gmail.com"}],"contributors":[{"name":"Brad Zacher","email":"brad.zacher@gmail.com"}],"homepage":"https://github.com/bradzacher/eslint-no-restricted","bugs":{"url":"https://github.com/bradzacher/eslint-no-restricted/issues"},"dist":{"shasum":"ae4358988f38c3e7c7d9255be60ca9ee63700259","tarball":"https://registry.npmjs.org/eslint-no-restricted/-/eslint-no-restricted-0.0.5.tgz","fileCount":18,"integrity":"sha512-nrzaOrCwYuIzUKwKhtOejgPZ8JFwHHjdi0zR67c4ScisynVp/MMr/b/QFuiUGwuywezOeahXcMiGgN/41ONrRw==","signatures":[{"sig":"MEQCIHC+Px2KcEXgHVBYvEjcCoZLS4RkbW06H1Ptcnc5ROYTAiBAcfkasVIgxkwsWEpUlCGsXAd06Lt4TPOnkjPzyXsoUA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31360},"type":"commonjs","types":"./dist/index.d.ts","engines":{"node":"^20.18.0 || >=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./syntax":{"types":"./dist/syntax.d.ts","default":"./dist/syntax.js"},"./globals":{"types":"./dist/globals.d.ts","default":"./dist/globals.js"},"./properties":{"types":"./dist/properties.d.ts","default":"./dist/properties.js"},"./package.json":"./package.json"},"funding":{"url":"https://github.com/sponsors/bradzacher/","type":"individual"},"scripts":{"ci":"pnpm run build && pnpm run typecheck && pnpm run lint && pnpm run lint:knip && pnpm run lint:format && pnpm run lint:spelling","lint":"eslint .","test":"vitest","build":"rimraf dist .build.tsbuildinfo && tsc --project tsconfig.build.json","format":"prettier --write .","lint:attw":"attw","lint:knip":"knip","typecheck":"tsc --project tsconfig.build.json --noEmit && tsc --project tsconfig.tools.json --noEmit && tsc --project tsconfig.test.json --noEmit","lint:format":"prettier --check .","lint:spelling":"cspell --config=.cspell.json \"**/*.{md,mdx,ts,mts,cts,js,cjs,mjs,tsx,jsx}\" --no-progress --show-context --show-suggestions"},"_npmUser":{"name":"bradzacher","email":"brad.zacher@gmail.com"},"repository":{"url":"git+https://github.com/bradzacher/eslint-no-restricted.git","type":"git"},"_npmVersion":"10.8.2","description":"An eslint utility for quickly and easily creating no-restricted-syntax rules.","directories":{},"_nodeVersion":"20.18.0","dependencies":{"@typescript-eslint/utils":"^8.13.0"},"_hasShrinkwrap":false,"devDependencies":{"knip":"^5.36.2","cspell":"^8.15.7","eslint":"^9.14.0","rimraf":"^6.0.1","vitest":"^2.1.4","prettier":"^3.3.3","@eslint/js":"^9.14.0","typescript":"^5.6.3","@types/node":"^20","eslint-plugin-n":"^17.12.0","@tsconfig/node20":"^20","eslint-plugin-yml":"^1.15.0","typescript-eslint":"^8.13.0","prettier-plugin-sh":"^0.14.0","eslint-plugin-jsonc":"^2.16.0","eslint-plugin-regexp":"^2.6.0","@arethetypeswrong/cli":"^0.16.4","prettier-plugin-curly":"^0.3.1","eslint-config-prettier":"^9.1.0","eslint-plugin-markdown":"^5.1.0","eslint-plugin-package-json":"^0.15.4","eslint-plugin-perfectionist":"^3.9.1","prettier-plugin-packagejson":"^2.5.3","@eslint-community/eslint-plugin-eslint-comments":"^4.4.1"},"peerDependencies":{"eslint":"^8.57.0 || ^9"},"_npmOperationalInternal":{"tmp":"tmp/eslint-no-restricted_0.0.5_1730812083006_0.9343784659911982","host":"s3://npm-registry-packages"}},"0.0.6":{"name":"eslint-no-restricted","version":"0.0.6","keywords":["eslint"],"license":"MIT","_id":"eslint-no-restricted@0.0.6","maintainers":[{"name":"bradzacher","email":"brad.zacher@gmail.com"}],"contributors":[{"name":"Brad Zacher","email":"brad.zacher@gmail.com"}],"homepage":"https://github.com/bradzacher/eslint-no-restricted","bugs":{"url":"https://github.com/bradzacher/eslint-no-restricted/issues"},"dist":{"shasum":"0cefe410fd4ff863badd9338c0e4458eaf9d19f6","tarball":"https://registry.npmjs.org/eslint-no-restricted/-/eslint-no-restricted-0.0.6.tgz","fileCount":18,"integrity":"sha512-tGyVTPDXuHUzytXE1Y+y5mrQgvtImEiPyoH943+5jc05yA8jynSSgCLzDISDSO3s+WyElqai1dMZ8aG3cXBTSA==","signatures":[{"sig":"MEUCIQCUCyJC2Aw69Md7LwhoPjVs7ooXgkq9k/lpvienKi6RjAIgRKkhEbj4ZIT71uL8tGcfM2LYuqSZQ9JKtT54IpeQIq0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31359},"type":"commonjs","types":"./dist/index.d.ts","engines":{"node":"^20.9.0 || >=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./syntax":{"types":"./dist/syntax.d.ts","default":"./dist/syntax.js"},"./globals":{"types":"./dist/globals.d.ts","default":"./dist/globals.js"},"./properties":{"types":"./dist/properties.d.ts","default":"./dist/properties.js"},"./package.json":"./package.json"},"funding":{"url":"https://github.com/sponsors/bradzacher/","type":"individual"},"scripts":{"ci":"pnpm run build && pnpm run typecheck && pnpm run lint && pnpm run lint:knip && pnpm run lint:format && pnpm run lint:spelling","lint":"eslint .","test":"vitest","build":"rimraf dist .build.tsbuildinfo && tsc --project tsconfig.build.json","format":"prettier --write .","lint:attw":"attw","lint:knip":"knip","typecheck":"tsc --project tsconfig.build.json --noEmit && tsc --project tsconfig.tools.json --noEmit && tsc --project tsconfig.test.json --noEmit","lint:format":"prettier --check .","lint:spelling":"cspell --config=.cspell.json \"**/*.{md,mdx,ts,mts,cts,js,cjs,mjs,tsx,jsx}\" --no-progress --show-context --show-suggestions"},"_npmUser":{"name":"bradzacher","email":"brad.zacher@gmail.com"},"repository":{"url":"git+https://github.com/bradzacher/eslint-no-restricted.git","type":"git"},"_npmVersion":"10.8.2","description":"An eslint utility for quickly and easily creating no-restricted-syntax rules.","directories":{},"_nodeVersion":"20.18.0","dependencies":{"@typescript-eslint/utils":"^8.13.0"},"_hasShrinkwrap":false,"devDependencies":{"knip":"^5.36.2","cspell":"^8.15.7","eslint":"^9.14.0","rimraf":"^6.0.1","vitest":"^2.1.4","prettier":"^3.3.3","@eslint/js":"^9.14.0","typescript":"^5.6.3","@types/node":"^20","eslint-plugin-n":"^17.12.0","@tsconfig/node20":"^20","eslint-plugin-yml":"^1.15.0","typescript-eslint":"^8.13.0","prettier-plugin-sh":"^0.14.0","eslint-plugin-jsonc":"^2.16.0","eslint-plugin-regexp":"^2.6.0","@arethetypeswrong/cli":"^0.16.4","prettier-plugin-curly":"^0.3.1","eslint-config-prettier":"^9.1.0","eslint-plugin-markdown":"^5.1.0","eslint-plugin-package-json":"^0.15.4","eslint-plugin-perfectionist":"^3.9.1","prettier-plugin-packagejson":"^2.5.3","@eslint-community/eslint-plugin-eslint-comments":"^4.4.1"},"peerDependencies":{"eslint":"^8.57.0 || ^9"},"_npmOperationalInternal":{"tmp":"tmp/eslint-no-restricted_0.0.6_1730812549046_0.20006849081437839","host":"s3://npm-registry-packages"}},"0.0.7":{"name":"eslint-no-restricted","version":"0.0.7","keywords":["eslint"],"license":"MIT","_id":"eslint-no-restricted@0.0.7","maintainers":[{"name":"bradzacher","email":"brad.zacher@gmail.com"}],"contributors":[{"name":"Brad Zacher","email":"brad.zacher@gmail.com"}],"homepage":"https://github.com/bradzacher/eslint-no-restricted","bugs":{"url":"https://github.com/bradzacher/eslint-no-restricted/issues"},"dist":{"shasum":"71bb9057ae832748f2478ea9c30e4338a076010f","tarball":"https://registry.npmjs.org/eslint-no-restricted/-/eslint-no-restricted-0.0.7.tgz","fileCount":18,"integrity":"sha512-FwWQ5GU2vq6i/lkpOWIxLbQkUMdQXFuHbvEDkIE9jYpVfq5sq1yHCkMRpypO37EHNENo6yhTaQOXOgojW5RINQ==","signatures":[{"sig":"MEYCIQDW4rgMcOWzKBNxq+Qnn6lTR6u6OqxeZ/b77B8qdImMcwIhAJXf1x7Bc6ziFoy/IPH6SesuUwCl7OXBiBxVit2G/+xJ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31362},"type":"commonjs","types":"./dist/index.d.ts","engines":{"node":"^20.9.0 || >=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./syntax":{"types":"./dist/syntax.d.ts","default":"./dist/syntax.js"},"./globals":{"types":"./dist/globals.d.ts","default":"./dist/globals.js"},"./properties":{"types":"./dist/properties.d.ts","default":"./dist/properties.js"},"./package.json":"./package.json"},"funding":{"url":"https://github.com/sponsors/bradzacher/","type":"individual"},"scripts":{"ci":"pnpm run build && pnpm run typecheck && pnpm run lint && pnpm run lint:knip && pnpm run lint:format && pnpm run lint:spelling","lint":"eslint .","test":"vitest","build":"rimraf dist .build.tsbuildinfo && tsc --project tsconfig.build.json","format":"prettier --write .","lint:attw":"attw","lint:knip":"knip","typecheck":"tsc --project tsconfig.build.json --noEmit && tsc --project tsconfig.tools.json --noEmit && tsc --project tsconfig.test.json --noEmit","lint:format":"prettier --check .","lint:spelling":"cspell --config=.cspell.json \"**/*.{md,mdx,ts,mts,cts,js,cjs,mjs,tsx,jsx}\" --no-progress --show-context --show-suggestions"},"_npmUser":{"name":"bradzacher","email":"brad.zacher@gmail.com"},"repository":{"url":"git+https://github.com/bradzacher/eslint-no-restricted.git","type":"git"},"_npmVersion":"10.8.2","description":"An eslint utility for quickly and easily creating no-restricted-syntax rules.","directories":{},"_nodeVersion":"20.18.0","dependencies":{"@typescript-eslint/utils":"^8.13.0"},"_hasShrinkwrap":false,"devDependencies":{"knip":"^5.36.2","cspell":"^8.15.7","eslint":"^9.14.0","rimraf":"^6.0.1","vitest":"^2.1.4","prettier":"^3.3.3","@eslint/js":"^9.14.0","typescript":"^5.6.3","@types/node":"^20","eslint-plugin-n":"^17.12.0","@tsconfig/node20":"^20","eslint-plugin-yml":"^1.15.0","typescript-eslint":"^8.13.0","prettier-plugin-sh":"^0.14.0","eslint-plugin-jsonc":"^2.16.0","eslint-plugin-regexp":"^2.6.0","@arethetypeswrong/cli":"^0.16.4","prettier-plugin-curly":"^0.3.1","eslint-config-prettier":"^9.1.0","eslint-plugin-markdown":"^5.1.0","eslint-plugin-package-json":"^0.15.4","eslint-plugin-perfectionist":"^3.9.1","prettier-plugin-packagejson":"^2.5.3","@eslint-community/eslint-plugin-eslint-comments":"^4.4.1"},"peerDependencies":{"eslint":"^8.57.0 || ^9"},"_npmOperationalInternal":{"tmp":"tmp/eslint-no-restricted_0.0.7_1731992389310_0.7024670029247815","host":"s3://npm-registry-packages"}},"0.0.8":{"name":"eslint-no-restricted","version":"0.0.8","keywords":["eslint"],"license":"MIT","_id":"eslint-no-restricted@0.0.8","maintainers":[{"name":"bradzacher","email":"brad.zacher@gmail.com"}],"contributors":[{"name":"Brad Zacher","email":"brad.zacher@gmail.com"}],"homepage":"https://github.com/bradzacher/eslint-no-restricted","bugs":{"url":"https://github.com/bradzacher/eslint-no-restricted/issues"},"dist":{"shasum":"c5a3a23e8960320ef167d0902a331428f102d6c4","tarball":"https://registry.npmjs.org/eslint-no-restricted/-/eslint-no-restricted-0.0.8.tgz","fileCount":18,"integrity":"sha512-5nir9XpG8141+9+DWBfn7CdgJmhxWiePDpNdqAVfheLA/nymi4Th90whcZdbmwOc1VWafqKVaDzY+pLCvtevTw==","signatures":[{"sig":"MEUCIQCaTIaJOIrWjNPlKT+w0o+Zi6u+qhnqx0WvcsJqaEDVawIgZ1Imd8FmGfIukgIfCFp0mI0CotBGN4o26aUqX9NvM68=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":32336},"type":"commonjs","types":"./dist/index.d.ts","engines":{"node":"^20.9.0 || >=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./syntax":{"types":"./dist/syntax.d.ts","default":"./dist/syntax.js"},"./globals":{"types":"./dist/globals.d.ts","default":"./dist/globals.js"},"./properties":{"types":"./dist/properties.d.ts","default":"./dist/properties.js"},"./package.json":"./package.json"},"funding":{"url":"https://github.com/sponsors/bradzacher/","type":"individual"},"scripts":{"ci":"pnpm run build && pnpm run typecheck && pnpm run lint && pnpm run lint:knip && pnpm run lint:format && pnpm run lint:spelling","lint":"eslint .","test":"vitest","build":"rimraf dist .build.tsbuildinfo && tsc --project tsconfig.build.json","format":"prettier --write .","lint:attw":"attw","lint:knip":"knip","typecheck":"tsc --project tsconfig.build.json --noEmit && tsc --project tsconfig.tools.json --noEmit && tsc --project tsconfig.test.json --noEmit","lint:format":"prettier --check .","lint:spelling":"cspell --config=.cspell.json \"**/*.{md,mdx,ts,mts,cts,js,cjs,mjs,tsx,jsx}\" --no-progress --show-context --show-suggestions"},"_npmUser":{"name":"bradzacher","email":"brad.zacher@gmail.com"},"repository":{"url":"git+https://github.com/bradzacher/eslint-no-restricted.git","type":"git"},"_npmVersion":"10.8.2","description":"An eslint utility for quickly and easily creating no-restricted-syntax rules.","directories":{},"_nodeVersion":"20.18.0","dependencies":{"@typescript-eslint/utils":"^8.13.0"},"_hasShrinkwrap":false,"devDependencies":{"knip":"^5.36.2","cspell":"^8.15.7","eslint":"^9.14.0","rimraf":"^6.0.1","vitest":"^2.1.4","prettier":"^3.3.3","@eslint/js":"^9.14.0","typescript":"^5.6.3","@types/node":"^20","eslint-plugin-n":"^17.12.0","@tsconfig/node20":"^20","eslint-plugin-yml":"^1.15.0","typescript-eslint":"^8.13.0","prettier-plugin-sh":"^0.14.0","eslint-plugin-jsonc":"^2.16.0","eslint-plugin-regexp":"^2.6.0","@arethetypeswrong/cli":"^0.16.4","prettier-plugin-curly":"^0.3.1","eslint-config-prettier":"^9.1.0","eslint-plugin-markdown":"^5.1.0","eslint-plugin-package-json":"^0.15.4","eslint-plugin-perfectionist":"^3.9.1","prettier-plugin-packagejson":"^2.5.3","@eslint-community/eslint-plugin-eslint-comments":"^4.4.1"},"peerDependencies":{"eslint":"^8.57.0 || ^9"},"_npmOperationalInternal":{"tmp":"tmp/eslint-no-restricted_0.0.8_1732059455534_0.020208692794799754","host":"s3://npm-registry-packages"}},"0.0.9":{"name":"eslint-no-restricted","version":"0.0.9","keywords":["eslint"],"license":"MIT","_id":"eslint-no-restricted@0.0.9","maintainers":[{"name":"bradzacher","email":"brad.zacher@gmail.com"}],"contributors":[{"name":"Brad Zacher","email":"brad.zacher@gmail.com"}],"homepage":"https://github.com/bradzacher/eslint-no-restricted","bugs":{"url":"https://github.com/bradzacher/eslint-no-restricted/issues"},"dist":{"shasum":"76fb6de6e98e5d9c0b6a7e9963112f6514c92045","tarball":"https://registry.npmjs.org/eslint-no-restricted/-/eslint-no-restricted-0.0.9.tgz","fileCount":18,"integrity":"sha512-d8G3y/6YuqFJ1RJFevi1ZQggdgOyZzL129BmpCmaEkvFZYl7xYneeOtOdsDQVDVZZDjTZeY4oIwZvdGOV5Ak0Q==","signatures":[{"sig":"MEYCIQC0pFL4y2BeQ3uf5b+Am05AasEgFFDcVSuGxYZ56ZVyNwIhAIZhYzHzI8jytJdyZN1HtOCC7rCUXRG7aX9xNeeFB9Xt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37314},"type":"commonjs","types":"./dist/index.d.ts","engines":{"node":"^20.9.0 || >=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./syntax":{"types":"./dist/syntax.d.ts","default":"./dist/syntax.js"},"./globals":{"types":"./dist/globals.d.ts","default":"./dist/globals.js"},"./properties":{"types":"./dist/properties.d.ts","default":"./dist/properties.js"},"./package.json":"./package.json"},"funding":{"url":"https://github.com/sponsors/bradzacher/","type":"individual"},"gitHead":"9d919e9419d702c71db2ac3b9cf281fe55a97ec6","scripts":{"ci":"pnpm run build && pnpm run typecheck && pnpm run lint && pnpm run lint:knip && pnpm run lint:format && pnpm run lint:spelling","lint":"eslint .","test":"vitest","build":"rimraf dist .build.tsbuildinfo && tsc --project tsconfig.build.json","format":"prettier --write .","lint:attw":"attw","lint:knip":"knip","typecheck":"tsc --project tsconfig.build.json --noEmit && tsc --project tsconfig.tools.json --noEmit && tsc --project tsconfig.test.json --noEmit","lint:format":"prettier --check .","lint:spelling":"cspell --config=.cspell.json \"**/*.{md,mdx,ts,mts,cts,js,cjs,mjs,tsx,jsx}\" --no-progress --show-context --show-suggestions"},"_npmUser":{"name":"bradzacher","email":"brad.zacher@gmail.com"},"repository":{"url":"git+https://github.com/bradzacher/eslint-no-restricted.git","type":"git"},"_npmVersion":"11.6.2","description":"An eslint utility for quickly and easily creating no-restricted-syntax rules.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"@typescript-eslint/utils":"^8.13.0"},"_hasShrinkwrap":false,"devDependencies":{"knip":"^5.36.2","cspell":"^8.15.7","eslint":"^9.14.0","rimraf":"^6.0.1","vitest":"^2.1.4","prettier":"^3.3.3","@eslint/js":"^9.14.0","typescript":"^5.6.3","@types/node":"^20","eslint-plugin-n":"^17.12.0","@tsconfig/node20":"^20","eslint-plugin-yml":"^1.15.0","typescript-eslint":"^8.13.0","prettier-plugin-sh":"^0.14.0","eslint-plugin-jsonc":"^2.16.0","eslint-plugin-regexp":"^2.6.0","@arethetypeswrong/cli":"^0.16.4","prettier-plugin-curly":"^0.3.1","eslint-config-prettier":"^9.1.0","eslint-plugin-markdown":"^5.1.0","eslint-plugin-package-json":"^0.15.4","eslint-plugin-perfectionist":"^3.9.1","prettier-plugin-packagejson":"^2.5.3","@eslint-community/eslint-plugin-eslint-comments":"^4.4.1"},"peerDependencies":{"eslint":"^8.57.0 || ^9"},"_npmOperationalInternal":{"tmp":"tmp/eslint-no-restricted_0.0.9_1766839953899_0.8028039302449399","host":"s3://npm-registry-packages-npm-production"}},"0.0.10":{"name":"eslint-no-restricted","version":"0.0.10","keywords":["eslint"],"license":"MIT","_id":"eslint-no-restricted@0.0.10","maintainers":[{"name":"bradzacher","email":"brad.zacher@gmail.com"}],"contributors":[{"name":"Brad Zacher","email":"brad.zacher@gmail.com"}],"homepage":"https://github.com/bradzacher/eslint-no-restricted","bugs":{"url":"https://github.com/bradzacher/eslint-no-restricted/issues"},"dist":{"shasum":"b4e0dc36b5a03d108af67b6281d35a71512ba2a6","tarball":"https://registry.npmjs.org/eslint-no-restricted/-/eslint-no-restricted-0.0.10.tgz","fileCount":18,"integrity":"sha512-e6Y1oOyF6xUriwzx2iCCYxCIvDEE0c7N9K3QtkjSJsORpLKyLAG1GYds0E0WdxGY78Mrn548jFV1ulRG03XwqQ==","signatures":[{"sig":"MEUCIQC5KS+A/GhQY/0WlkCsVdbPdYcHuzFYciXWywSLXiogDAIgcsag1+eGLSgm07gQQxqC63KQ9/UMqe8fGgPlvHz0UFw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37304},"type":"commonjs","types":"./dist/index.d.ts","engines":{"node":"^20.9.0 || >=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./syntax":{"types":"./dist/syntax.d.ts","default":"./dist/syntax.js"},"./globals":{"types":"./dist/globals.d.ts","default":"./dist/globals.js"},"./properties":{"types":"./dist/properties.d.ts","default":"./dist/properties.js"},"./package.json":"./package.json"},"funding":{"url":"https://github.com/sponsors/bradzacher/","type":"individual"},"gitHead":"0634d93284671484fe6b91c6b54df144352dc95b","scripts":{"ci":"pnpm run build && pnpm run typecheck && pnpm run lint && pnpm run lint:knip && pnpm run lint:format && pnpm run lint:spelling","lint":"eslint .","test":"vitest","build":"rimraf dist .build.tsbuildinfo && tsc --project tsconfig.build.json","format":"prettier --write .","lint:attw":"attw","lint:knip":"knip","typecheck":"tsc --project tsconfig.build.json --noEmit && tsc --project tsconfig.tools.json --noEmit && tsc --project tsconfig.test.json --noEmit","lint:format":"prettier --check .","lint:spelling":"cspell --config=.cspell.json \"**/*.{md,mdx,ts,mts,cts,js,cjs,mjs,tsx,jsx}\" --no-progress --show-context --show-suggestions"},"_npmUser":{"name":"bradzacher","email":"brad.zacher@gmail.com"},"repository":{"url":"git+https://github.com/bradzacher/eslint-no-restricted.git","type":"git"},"_npmVersion":"11.6.2","description":"An eslint utility for quickly and easily creating no-restricted-syntax rules.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"@typescript-eslint/utils":"^8.13.0"},"_hasShrinkwrap":false,"devDependencies":{"knip":"^5.36.2","cspell":"^8.15.7","eslint":"^9.14.0","rimraf":"^6.0.1","vitest":"^2.1.4","prettier":"^3.3.3","@eslint/js":"^9.14.0","typescript":"^5.6.3","@types/node":"^20","eslint-plugin-n":"^17.12.0","@tsconfig/node20":"^20","eslint-plugin-yml":"^1.15.0","typescript-eslint":"^8.13.0","prettier-plugin-sh":"^0.14.0","eslint-plugin-jsonc":"^2.16.0","eslint-plugin-regexp":"^2.6.0","@arethetypeswrong/cli":"^0.16.4","prettier-plugin-curly":"^0.3.1","eslint-config-prettier":"^9.1.0","eslint-plugin-markdown":"^5.1.0","eslint-plugin-package-json":"^0.15.4","eslint-plugin-perfectionist":"^3.9.1","prettier-plugin-packagejson":"^2.5.3","@eslint-community/eslint-plugin-eslint-comments":"^4.4.1"},"peerDependencies":{"eslint":"^8.57.0 || ^9"},"_npmOperationalInternal":{"tmp":"tmp/eslint-no-restricted_0.0.10_1767570059951_0.9014963198561177","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"eslint-no-restricted","version":"0.1.0","keywords":["eslint"],"license":"MIT","_id":"eslint-no-restricted@0.1.0","maintainers":[{"name":"bradzacher","email":"brad.zacher@gmail.com"}],"contributors":[{"name":"Brad Zacher","email":"brad.zacher@gmail.com"}],"homepage":"https://github.com/bradzacher/eslint-no-restricted","bugs":{"url":"https://github.com/bradzacher/eslint-no-restricted/issues"},"dist":{"shasum":"8e7902693ff2781f7c810c86f3996a2fa1e5caa4","tarball":"https://registry.npmjs.org/eslint-no-restricted/-/eslint-no-restricted-0.1.0.tgz","fileCount":3,"integrity":"sha512-d+MHL8H4lSoqvDj1ttsFAfpxtvMIDD0gkOb/gm1NQ4Zr/2kmwQZOBGSp2cwsAFl7uttMLAIAnApGJ92zMoVzfg==","signatures":[{"sig":"MEUCIQC68YQ0sjSKICpnRvzjZvkbZuY1uQCTBjGevHBTHbPQaAIgIgvw0kDgSfiak1DWzHZf61c1i/ZbGVln6bNCDssbNlI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10817},"type":"commonjs","types":"./dist/index.d.ts","engines":{"node":"^20.9.0 || >=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./syntax":{"types":"./dist/syntax.d.ts","default":"./dist/syntax.js"},"./globals":{"types":"./dist/globals.d.ts","default":"./dist/globals.js"},"./properties":{"types":"./dist/properties.d.ts","default":"./dist/properties.js"},"./package.json":"./package.json"},"funding":{"url":"https://github.com/sponsors/bradzacher/","type":"individual"},"gitHead":"0ab6d5f6dd13623c246e6521ee7bc494e2314bf2","scripts":{"ci":"pnpm run build && pnpm run typecheck && pnpm run lint && pnpm run lint:knip && pnpm run lint:format && pnpm run lint:spelling","lint":"eslint .","test":"vitest","build":"rimraf dist .build.tsbuildinfo && tsc --project tsconfig.build.json","format":"prettier --write .","lint:attw":"attw","lint:knip":"knip","typecheck":"tsc --project tsconfig.build.json --noEmit && tsc --project tsconfig.tools.json --noEmit && tsc --project tsconfig.test.json --noEmit","lint:format":"prettier --check .","lint:spelling":"cspell --config=.cspell.json \"**/*.{md,mdx,ts,mts,cts,js,cjs,mjs,tsx,jsx}\" --no-progress --show-context --show-suggestions"},"_npmUser":{"name":"bradzacher","email":"brad.zacher@gmail.com"},"repository":{"url":"git+https://github.com/bradzacher/eslint-no-restricted.git","type":"git"},"_npmVersion":"11.6.2","description":"An eslint utility for quickly and easily creating no-restricted-syntax rules.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"@typescript-eslint/utils":"^8.56.0"},"_hasShrinkwrap":false,"devDependencies":{"knip":"^5.36.2","cspell":"^8.15.7","eslint":"^10.0.1","rimraf":"^6.0.1","vitest":"^2.1.4","prettier":"^3.3.3","@eslint/js":"^10.0.1","typescript":"^5.6.3","@types/node":"^20","eslint-plugin-n":"^17.24.0","@tsconfig/node20":"^20","eslint-plugin-yml":"^1.19.1","typescript-eslint":"^8.56.0","prettier-plugin-sh":"^0.14.0","eslint-plugin-jsonc":"^2.21.1","eslint-plugin-regexp":"^2.10.0","@arethetypeswrong/cli":"^0.16.4","prettier-plugin-curly":"^0.3.1","eslint-config-prettier":"^9.1.2","eslint-plugin-markdown":"^5.1.0","eslint-plugin-package-json":"^0.15.6","eslint-plugin-perfectionist":"^3.9.1","prettier-plugin-packagejson":"^2.5.3","@eslint-community/eslint-plugin-eslint-comments":"^4.6.0"},"peerDependencies":{"eslint":"^8.57.0 || ^9 || ^10"},"_npmOperationalInternal":{"tmp":"tmp/eslint-no-restricted_0.1.0_1771845454413_0.5674393382102072","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"eslint-no-restricted","version":"0.1.1","keywords":["eslint"],"license":"MIT","_id":"eslint-no-restricted@0.1.1","maintainers":[{"name":"bradzacher","email":"brad.zacher@gmail.com"}],"contributors":[{"name":"Brad Zacher","email":"brad.zacher@gmail.com"}],"homepage":"https://github.com/bradzacher/eslint-no-restricted","bugs":{"url":"https://github.com/bradzacher/eslint-no-restricted/issues"},"dist":{"shasum":"f46cb00e22452728c6add1706da63f499de91c67","tarball":"https://registry.npmjs.org/eslint-no-restricted/-/eslint-no-restricted-0.1.1.tgz","fileCount":18,"integrity":"sha512-wm0bxiG2q3dG+JTGvAHjx/e+blO+K5vN9yDzITq75VLzXAjQd7/iPHfDP7OLXCr5VOB/8pZ+aVCgAx1b/rR1mw==","signatures":[{"sig":"MEQCIH/CRPaxa8apZsNkGxNyco0wG5CTTpx6ovJFPCM1ehPXAiBYdTJFh4uDcgBXJ9ah9W7byoAikUGxL22E7nBMwWRMIw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37697},"type":"commonjs","types":"./dist/index.d.ts","engines":{"node":"^20.9.0 || >=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./syntax":{"types":"./dist/syntax.d.ts","default":"./dist/syntax.js"},"./globals":{"types":"./dist/globals.d.ts","default":"./dist/globals.js"},"./properties":{"types":"./dist/properties.d.ts","default":"./dist/properties.js"},"./package.json":"./package.json"},"funding":{"url":"https://github.com/sponsors/bradzacher/","type":"individual"},"gitHead":"231a4f30ea8d8906239992299f12a5f7ab0cdc5d","scripts":{"ci":"pnpm run build && pnpm run typecheck && pnpm run lint && pnpm run lint:knip && pnpm run lint:format && pnpm run lint:spelling","lint":"eslint .","test":"vitest","build":"rimraf dist .build.tsbuildinfo && tsc --project tsconfig.build.json","format":"prettier --write .","lint:attw":"attw","lint:knip":"knip","typecheck":"tsc --project tsconfig.build.json --noEmit && tsc --project tsconfig.tools.json --noEmit && tsc --project tsconfig.test.json --noEmit","lint:format":"prettier --check .","lint:spelling":"cspell --config=.cspell.json \"**/*.{md,mdx,ts,mts,cts,js,cjs,mjs,tsx,jsx}\" --no-progress --show-context --show-suggestions"},"_npmUser":{"name":"bradzacher","email":"brad.zacher@gmail.com"},"repository":{"url":"git+https://github.com/bradzacher/eslint-no-restricted.git","type":"git"},"_npmVersion":"11.6.2","description":"An eslint utility for quickly and easily creating no-restricted-syntax rules.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"@typescript-eslint/utils":"^8.56.0"},"_hasShrinkwrap":false,"devDependencies":{"knip":"^5.36.2","cspell":"^8.15.7","eslint":"^10.0.1","rimraf":"^6.0.1","vitest":"^2.1.4","prettier":"^3.3.3","@eslint/js":"^10.0.1","typescript":"^5.6.3","@types/node":"^20","eslint-plugin-n":"^17.24.0","@tsconfig/node20":"^20","eslint-plugin-yml":"^1.19.1","typescript-eslint":"^8.56.0","prettier-plugin-sh":"^0.14.0","eslint-plugin-jsonc":"^2.21.1","eslint-plugin-regexp":"^2.10.0","@arethetypeswrong/cli":"^0.16.4","prettier-plugin-curly":"^0.3.1","eslint-config-prettier":"^9.1.2","eslint-plugin-markdown":"^5.1.0","eslint-plugin-package-json":"^0.15.6","eslint-plugin-perfectionist":"^3.9.1","prettier-plugin-packagejson":"^2.5.3","@eslint-community/eslint-plugin-eslint-comments":"^4.6.0"},"peerDependencies":{"eslint":"^8.57.0 || ^9 || ^10"},"_npmOperationalInternal":{"tmp":"tmp/eslint-no-restricted_0.1.1_1772262952371_0.2685845412637553","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"eslint-no-restricted","version":"0.1.2","keywords":["eslint"],"homepage":"https://github.com/bradzacher/eslint-no-restricted","bugs":{"url":"https://github.com/bradzacher/eslint-no-restricted/issues"},"repository":{"type":"git","url":"git+https://github.com/bradzacher/eslint-no-restricted.git"},"funding":{"type":"individual","url":"https://github.com/sponsors/bradzacher/"},"license":"MIT","contributors":[{"name":"Brad Zacher","email":"brad.zacher@gmail.com"}],"type":"commonjs","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./globals":{"types":"./dist/globals.d.ts","default":"./dist/globals.js"},"./package.json":"./package.json","./properties":{"types":"./dist/properties.d.ts","default":"./dist/properties.js"},"./syntax":{"types":"./dist/syntax.d.ts","default":"./dist/syntax.js"}},"types":"./dist/index.d.ts","scripts":{"build":"rimraf dist .build.tsbuildinfo && tsc --project tsconfig.build.json","ci":"pnpm run build && pnpm run typecheck && pnpm run lint && pnpm run lint:knip && pnpm run lint:format && pnpm run lint:spelling","format":"prettier --write .","lint":"eslint .","lint:attw":"attw","lint:format":"prettier --check .","lint:knip":"knip","lint:spelling":"cspell --config=.cspell.json \"**/*.{md,mdx,ts,mts,cts,js,cjs,mjs,tsx,jsx}\" --no-progress --show-context --show-suggestions","test":"vitest","typecheck":"tsc --project tsconfig.build.json --noEmit && tsc --project tsconfig.tools.json --noEmit && tsc --project tsconfig.test.json --noEmit"},"dependencies":{"@typescript-eslint/types":"^8.56.0","@typescript-eslint/utils":"^8.56.0"},"devDependencies":{"@arethetypeswrong/cli":"^0.16.4","@eslint-community/eslint-plugin-eslint-comments":"^4.6.0","@eslint/js":"^10.0.1","@tsconfig/node20":"^20","@types/node":"^20","cspell":"^8.15.7","eslint":"^10.0.1","eslint-config-prettier":"^9.1.2","eslint-plugin-jsonc":"^2.21.1","eslint-plugin-markdown":"^5.1.0","eslint-plugin-n":"^17.24.0","eslint-plugin-package-json":"^0.15.6","eslint-plugin-perfectionist":"^3.9.1","eslint-plugin-regexp":"^2.10.0","eslint-plugin-yml":"^1.19.1","knip":"^5.36.2","prettier":"^3.3.3","prettier-plugin-curly":"^0.3.1","prettier-plugin-packagejson":"^2.5.3","prettier-plugin-sh":"^0.14.0","rimraf":"^6.0.1","typescript":"^5.6.3","typescript-eslint":"^8.56.0","vitest":"^2.1.4"},"peerDependencies":{"eslint":"^8.57.0 || ^9 || ^10"},"engines":{"node":"^20.9.0 || >=22.0.0"},"gitHead":"0101de3e5c8025672a47b0b15739980468863ea0","_id":"eslint-no-restricted@0.1.2","description":"An eslint utility for quickly and easily creating no-restricted-syntax rules.","_nodeVersion":"24.12.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-d/gWe2OAzIKHnGxIWfPmKu9dm+gFQyWgMtxeQq7TmMoEKKSUkBGcJYDjAFyc7h74Fi0vmg/h8cFiIlG3v2zTKg==","shasum":"f3b9f9771ba9ed4bda220db38b6c621369924e75","tarball":"https://registry.npmjs.org/eslint-no-restricted/-/eslint-no-restricted-0.1.2.tgz","fileCount":18,"unpackedSize":38871,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQD+ec3LucSGAUcZu01jXKYez4Pbh4JCP2k1tj3GkHhaiAIgQ1vNyrwjyckFAzcqswquo94Zy5RDPbShNT4DfVVAXvY="}]},"_npmUser":{"name":"bradzacher","email":"brad.zacher@gmail.com"},"directories":{},"maintainers":[{"name":"bradzacher","email":"brad.zacher@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/eslint-no-restricted_0.1.2_1787885994862_0.39089930198655254"},"_hasShrinkwrap":false}},"time":{"created":"2024-11-05T12:53:58.877Z","modified":"2026-08-28T02:59:55.171Z","0.0.4":"2024-11-05T12:53:59.096Z","0.0.5":"2024-11-05T13:08:03.249Z","0.0.6":"2024-11-05T13:15:49.241Z","0.0.7":"2024-11-19T04:59:49.490Z","0.0.8":"2024-11-19T23:37:35.728Z","0.0.9":"2025-12-27T12:52:34.060Z","0.0.10":"2026-01-04T23:41:00.125Z","0.1.0":"2026-02-23T11:17:34.568Z","0.1.1":"2026-02-28T07:15:52.526Z","0.1.2":"2026-08-28T02:59:55.008Z"},"bugs":{"url":"https://github.com/bradzacher/eslint-no-restricted/issues"},"license":"MIT","homepage":"https://github.com/bradzacher/eslint-no-restricted","keywords":["eslint"],"repository":{"type":"git","url":"git+https://github.com/bradzacher/eslint-no-restricted.git"},"description":"An eslint utility for quickly and easily creating no-restricted-syntax rules.","contributors":[{"name":"Brad Zacher","email":"brad.zacher@gmail.com"}],"maintainers":[{"name":"bradzacher","email":"brad.zacher@gmail.com"}],"readme":"# eslint-no-restricted\n\nAn eslint utility for quickly and easily creating no-restricted-syntax rules.\n\nThis utility is a more powerful alternative to the core rules [`no-restricted-syntax`](https://eslint.org/docs/latest/rules/no-restricted-syntax), [`no-restricted-globals`](https://eslint.org/docs/latest/rules/no-restricted-globals), and [`no-restricted-properties`](https://eslint.org/docs/latest/rules/no-restricted-properties).\n\nThere are two major features you get with this utility over the core rules:\n\n(1) This utility creates one rule per selector/global/property, rather than having one rule for everything.\nHaving multiple rules is useful for many reasons! It allows you to:\n\n- Configure each selector/global/property with a different severity\n- Easily enable or disable specific selector/global/property on specific files/folders\n- Ensure that one disable comment does not suppress multiple selector/global/property\n\n(2) This utility allows you to create messages with placeholders.\nThis is powerful because it allows you to provide more targeted, less generic messages to provide a better and more understandable DevX.\n\n## Installation\n\n```sh\nnpm i eslint-no-restricted\n```\n\n## API\n\nAll plugins have the following shared options:\n\n```ts\nexport interface RuleBase<TNode> {\n  /**\n   * The level to use for the rule in the generated \"recommended\" config\n   * @default 'error'\n   */\n  defaultLevel?: 'error' | 'off' | 'warn';\n  /**\n   * A URL for more information (shown in IDEs)\n   */\n  docUrl?: string;\n  /**\n   * The message to display when reporting the error. You may define\n   * placeholders in the message and use `messageData` to fill in the data for\n   * the report.\n   */\n  message: string;\n  /**\n   * An optional function that can be used to generate message placeholders\n   * {@link https://eslint.org/docs/latest/extend/custom-rules#using-message-placeholders}\n   */\n  // NOTE -- intentionally use a method signature so we act bi-variant in the `node` argument\n  messageData?(\n    node: TNode,\n    sourceCode: TSESLint.SourceCode,\n  ): Record<string, number | string>;\n  /**\n   * The name of the rule -- must be a kebab-cased-name\n   */\n  name: string;\n}\n```\n\nEach plugin has its own additional properties which allow you to configure the constructs the rule targets (see below). Each plugin has the same create function as well:\n\n```ts\nfunction create(name: string, ...rules: Array<create.RuleConfig>): Plugin;\nfunction create(...rules: Array<create.RuleConfig>): Plugin;\n```\n\nYou can optionally supply a custom name for the plugin. By default it will use `no-restricted-(globals|properties|syntax)` and this should be fine for most use-cases. However in some use-cases you might like to distribute your new plugin and so you want to ensure your plugin name doesn't clash with other usages of this utility. In that case you can provide a custom `name` for the plugin to avoid clashes.\n\n### `/globals`\n\n```ts\nexport interface RuleConfig\n  extends shared.RuleBase<TSESTree.Identifier | TSESTree.JSXIdentifier> {\n  /**\n   * The global name to match\n   *\n   * You may pass multiple globals with an array for convenience rather than\n   * trying to merge multiple globals into one, or declaring the same message\n   * multiple times with different globals.\n   */\n  globalName: Array<string> | string;\n}\n```\n\n### `/properties`\n\n```ts\nexport interface RestrictedProperty {\n  /**\n   * The object name to ban from `object.property`. This is optional; if it is\n   * not provided then the `property` is disallowed for all objects.\n   */\n  object?: string;\n  /**\n   * The property name to ban from `object.property`.\n   * If `object` is not provided then this is disallowed for all objects.\n   */\n  property: string;\n}\nexport interface RuleConfig\n  extends shared.RuleBase<TSESTree.MemberExpression | TSESTree.ObjectPattern> {\n  /**\n   * The properties name to match\n   *\n   * You may pass multiple properties with an array for convenience rather\n   * than trying to merge multiple properties into one, or declaring the same\n   * message multiple times with different properties.\n   */\n  property: Array<RestrictedProperty> | RestrictedProperty;\n}\n```\n\n### `/syntax`\n\n```ts\nexport interface RuleConfig extends shared.RuleBase<unknown> {\n  /**\n   * The ESQuery selector to match\n   * {@link https://eslint.org/docs/latest/extend/selectors}\n   *\n   * You may pass multiple selectors with an array for convenience rather than\n   * trying to merge multiple selectors into one, or declaring the same message\n   * multiple times with slightly different selectors.\n   */\n  selector: Array<string> | string;\n}\n```\n\n### Defining a message\n\nYou can define both static and dynamic messages for reports. Static messages are shown above and are messages that have no placeholders.\n\nOn the other hand, dynamic messages use [placeholders](https://eslint.org/docs/latest/extend/custom-rules#using-message-placeholders) in conjunction with the `messageData` function to provide the relevant placeholder data. This allows you to dynamically customize the message based on some information from the code itself which can greatly improve the DevX by providing clearer error messages.\n\n```ts\ncreate(\n  // define one or more selectors with a placeholder derived from the matched node\n  {\n    message: 'this message has a placeholder ->{{placeholder}}<-',\n    messageData: (node, sourceCode) => {\n      if (node.parent?.type === 'VariableDeclarator') {\n        return {\n          placeholder: sourceCode.getText(node.parent.id),\n        };\n      }\n      return {\n        placeholder: 'wtf',\n      };\n    },\n    name: 'disallow-the-number-1',\n    selector: 'Literal[value = 1]',\n  },\n);\n```\n\n## Example Usage\n\nFor brevity following example shows usage of the `no-restricted-syntax` utility - but the same API (as described above) is available for the `globals` and `properties` variants too.\n\n```ts\n// eslint.config.mjs\n\nimport createNoRestrictedSyntax from 'eslint-no-restricted/syntax';\n\nconst noRestrictedSyntax = createNoRestrictedSyntax(\n  // define a single selector with a message\n  {\n    message: 'errors on identifiers named foo',\n    name: 'ban-the-name-foo',\n    selector: 'Identifier[name = \"foo\"]',\n  },\n\n  // define multiple selectors with the same message\n  {\n    message: 'errors on the string \"bar\"',\n    name: 'do-not-allow-the-string-bar',\n    selector: [\n      'Literal[value = \"bar\"]',\n      'TemplateLiteral[quasis.length = 1] > TemplateElement[value.cooked = \"bar\"]',\n    ],\n  },\n);\n\nexport default [\n  // turn on all of the rules using the auto-generated configuration\n  noRestrictedSyntax.configs.recommended,\n\n  // you can also manually configure the rules\n  {\n    files: ['**/some-glob/*.js'],\n    plugins: {\n      nrs: noRestrictedSyntax,\n    },\n    rules: {\n      'nrs/disallow-the-number-1': 'off',\n    },\n  },\n];\n```\n","readmeFilename":"README.md"}