{"_id":"@eslint/plugin-kit","_rev":"4539107","name":"@eslint/plugin-kit","description":"Utilities for building ESLint plugins.","dist-tags":{"latest":"0.7.1"},"maintainers":[{"name":"eslintbot","email":""},{"name":"openjsfoundation","email":""}],"time":{"modified":"2026-04-09T15:07:39.000Z","created":"2024-08-27T13:59:04.231Z","0.7.1":"2026-04-08T09:22:43.810Z","0.7.0":"2026-04-03T20:03:09.265Z","0.6.1":"2026-03-06T22:25:43.256Z","0.6.0":"2026-01-30T17:17:23.847Z","0.5.1":"2026-01-09T15:05:12.033Z","0.5.0":"2025-11-14T16:30:33.099Z","0.4.1":"2025-10-29T14:21:48.301Z","0.4.0":"2025-09-22T17:53:04.595Z","0.3.5":"2025-08-08T10:21:35.983Z","0.3.4":"2025-07-21T15:31:41.111Z","0.3.3":"2025-06-25T14:04:35.909Z","0.3.2":"2025-06-11T20:36:46.062Z","0.3.1":"2025-05-01T15:02:41.535Z","0.2.8":"2025-04-01T18:30:49.339Z","0.2.7":"2025-02-21T12:20:13.607Z","0.2.6":"2025-02-18T17:35:17.707Z","0.2.5":"2025-01-10T18:35:08.352Z","0.2.4":"2024-12-04T21:23:53.346Z","0.2.3":"2024-11-14T16:46:48.594Z","0.2.2":"2024-10-28T17:24:23.634Z","0.2.1":"2024-10-18T20:11:54.868Z","0.2.0":"2024-08-30T14:46:18.085Z","0.1.0":"2024-08-27T13:59:04.231Z"},"users":{},"author":{"name":"Nicholas C. Zakas"},"repository":{"type":"git","url":"git+https://github.com/eslint/rewrite.git","directory":"packages/plugin-kit"},"versions":{"0.7.1":{"name":"@eslint/plugin-kit","version":"0.7.1","description":"Utilities for building ESLint plugins.","author":{"name":"Nicholas C. Zakas"},"type":"module","main":"dist/esm/index.js","types":"dist/esm/index.d.ts","exports":{"require":{"types":"./dist/cjs/index.d.cts","default":"./dist/cjs/index.cjs"},"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"}},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/eslint/rewrite.git","directory":"packages/plugin-kit"},"bugs":{"url":"https://github.com/eslint/rewrite/issues"},"homepage":"https://github.com/eslint/rewrite/tree/main/packages/plugin-kit#readme","scripts":{"build:dedupe-types":"node ../../tools/dedupe-types.js dist/cjs/index.cjs dist/esm/index.js","build:cts":"node ../../tools/build-cts.js dist/esm/index.d.ts dist/cjs/index.d.cts","build":"rollup -c && npm run build:dedupe-types && tsc -p tsconfig.esm.json && npm run build:cts","lint:types":"attw --pack","pretest":"npm run build","test":"npm run test:types && npm run test:unit","test:coverage":"npm run build && c8 npm run test:unit","test:jsr":"npx -y jsr@latest publish --dry-run","test:types":"tsc -p tests/types/tsconfig.json","test:unit":"mocha \"tests/**/*.test.js\""},"keywords":["eslint","eslintplugin","eslint-plugin"],"license":"Apache-2.0","dependencies":{"@eslint/core":"^1.2.1","levn":"^0.4.1"},"devDependencies":{"@types/levn":"^0.4.0","rollup-plugin-copy":"^3.5.0"},"engines":{"node":"^20.19.0 || ^22.13.0 || >=24"},"gitHead":"d2dbf7b73d01505da89a69b7465e486d8a88aa8f","_id":"@eslint/plugin-kit@0.7.1","_nodeVersion":"24.14.1","_npmVersion":"11.12.1","dist":{"shasum":"c4125fd015eceeb09b793109fdbcd4dd0a02d346","size":23855,"noattachment":false,"key":"/@eslint/plugin-kit/-/@eslint/plugin-kit-0.7.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/@eslint/plugin-kit/download/@eslint/plugin-kit-0.7.1.tgz"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:139e2445-c888-434b-b72e-d7348028a67b"}},"directories":{},"maintainers":[{"name":"eslintbot","email":""},{"name":"openjsfoundation","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/plugin-kit_0.7.1_1775640163642_0.46034165842994734"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2026-04-08T09:22:43.810Z","publish_time":1775640163810,"_source_registry_name":"default","_cnpm_publish_time":1775640163810},"0.7.0":{"name":"@eslint/plugin-kit","version":"0.7.0","description":"Utilities for building ESLint plugins.","author":{"name":"Nicholas C. Zakas"},"type":"module","main":"dist/esm/index.js","types":"dist/esm/index.d.ts","exports":{"require":{"types":"./dist/cjs/index.d.cts","default":"./dist/cjs/index.cjs"},"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"}},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/eslint/rewrite.git","directory":"packages/plugin-kit"},"bugs":{"url":"https://github.com/eslint/rewrite/issues"},"homepage":"https://github.com/eslint/rewrite/tree/main/packages/plugin-kit#readme","scripts":{"build:dedupe-types":"node ../../tools/dedupe-types.js dist/cjs/index.cjs dist/esm/index.js","build:cts":"node ../../tools/build-cts.js dist/esm/index.d.ts dist/cjs/index.d.cts","build":"rollup -c && npm run build:dedupe-types && tsc -p tsconfig.esm.json && npm run build:cts","lint:types":"attw --pack","pretest":"npm run build","test":"npm run test:types && npm run test:unit","test:coverage":"npm run build && c8 npm run test:unit","test:jsr":"npx -y jsr@latest publish --dry-run","test:types":"tsc -p tests/types/tsconfig.json","test:unit":"mocha \"tests/**/*.test.js\""},"keywords":["eslint","eslintplugin","eslint-plugin"],"license":"Apache-2.0","dependencies":{"@eslint/core":"^1.2.0","levn":"^0.4.1"},"devDependencies":{"@types/levn":"^0.4.0","rollup-plugin-copy":"^3.5.0"},"engines":{"node":"^20.19.0 || ^22.13.0 || >=24"},"gitHead":"fe114eed69c5d59d0dd05cda8071a5b98c4daec2","_id":"@eslint/plugin-kit@0.7.0","_nodeVersion":"24.14.1","_npmVersion":"11.12.1","dist":{"shasum":"7442f663da4d61091d2af0b30c8a6b50949fb26d","size":17546,"noattachment":false,"key":"/@eslint/plugin-kit/-/@eslint/plugin-kit-0.7.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/@eslint/plugin-kit/download/@eslint/plugin-kit-0.7.0.tgz"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:139e2445-c888-434b-b72e-d7348028a67b"}},"directories":{},"maintainers":[{"name":"eslintbot","email":""},{"name":"openjsfoundation","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/plugin-kit_0.7.0_1775246589123_0.9033058436251957"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2026-04-03T20:03:09.265Z","publish_time":1775246589265,"_source_registry_name":"default","_cnpm_publish_time":1775246589265},"0.6.1":{"name":"@eslint/plugin-kit","version":"0.6.1","description":"Utilities for building ESLint plugins.","author":{"name":"Nicholas C. Zakas"},"type":"module","main":"dist/esm/index.js","types":"dist/esm/index.d.ts","exports":{"require":{"types":"./dist/cjs/index.d.cts","default":"./dist/cjs/index.cjs"},"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"}},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/eslint/rewrite.git","directory":"packages/plugin-kit"},"bugs":{"url":"https://github.com/eslint/rewrite/issues"},"homepage":"https://github.com/eslint/rewrite/tree/main/packages/plugin-kit#readme","scripts":{"build:dedupe-types":"node ../../tools/dedupe-types.js dist/cjs/index.cjs dist/esm/index.js","build:cts":"node ../../tools/build-cts.js dist/esm/index.d.ts dist/cjs/index.d.cts","build":"rollup -c && npm run build:dedupe-types && tsc -p tsconfig.esm.json && npm run build:cts","lint:types":"attw --pack","pretest":"npm run build","test":"npm run test:types && npm run test:unit","test:coverage":"npm run build && c8 npm run test:unit","test:jsr":"npx -y jsr@latest publish --dry-run","test:types":"tsc -p tests/types/tsconfig.json","test:unit":"mocha \"tests/**/*.test.js\""},"keywords":["eslint","eslintplugin","eslint-plugin"],"license":"Apache-2.0","dependencies":{"@eslint/core":"^1.1.1","levn":"^0.4.1"},"devDependencies":{"@types/levn":"^0.4.0","rollup-plugin-copy":"^3.5.0"},"engines":{"node":"^20.19.0 || ^22.13.0 || >=24"},"gitHead":"41eb19fbdd81a778a2feb362f11172278063f785","_id":"@eslint/plugin-kit@0.6.1","_nodeVersion":"24.14.0","_npmVersion":"11.11.0","dist":{"shasum":"eb9e6689b56ce8bc1855bb33090e63f3fc115e8e","size":23855,"noattachment":false,"key":"/@eslint/plugin-kit/-/@eslint/plugin-kit-0.6.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/@eslint/plugin-kit/download/@eslint/plugin-kit-0.6.1.tgz"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:139e2445-c888-434b-b72e-d7348028a67b"}},"directories":{},"maintainers":[{"name":"eslintbot","email":""},{"name":"openjsfoundation","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/plugin-kit_0.6.1_1772835943096_0.04247900947790195"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2026-03-06T22:25:43.256Z","publish_time":1772835943256,"_source_registry_name":"default","_cnpm_publish_time":1772835943256},"0.6.0":{"name":"@eslint/plugin-kit","version":"0.6.0","description":"Utilities for building ESLint plugins.","author":{"name":"Nicholas C. Zakas"},"type":"module","main":"dist/esm/index.js","types":"dist/esm/index.d.ts","exports":{"require":{"types":"./dist/cjs/index.d.cts","default":"./dist/cjs/index.cjs"},"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"}},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/eslint/rewrite.git","directory":"packages/plugin-kit"},"bugs":{"url":"https://github.com/eslint/rewrite/issues"},"homepage":"https://github.com/eslint/rewrite/tree/main/packages/plugin-kit#readme","scripts":{"build:dedupe-types":"node ../../tools/dedupe-types.js dist/cjs/index.cjs dist/esm/index.js","build:cts":"node ../../tools/build-cts.js dist/esm/index.d.ts dist/cjs/index.d.cts","build":"rollup -c && npm run build:dedupe-types && tsc -p tsconfig.esm.json && npm run build:cts","lint:types":"attw --pack","pretest":"npm run build","test":"mocha \"tests/**/*.test.js\"","test:coverage":"c8 npm test","test:jsr":"npx -y jsr@latest publish --dry-run","test:types":"tsc -p tests/types/tsconfig.json"},"keywords":["eslint","eslintplugin","eslint-plugin"],"license":"Apache-2.0","dependencies":{"@eslint/core":"^1.1.0","levn":"^0.4.1"},"devDependencies":{"@types/levn":"^0.4.0","rollup-plugin-copy":"^3.5.0"},"engines":{"node":"^20.19.0 || ^22.13.0 || >=24"},"gitHead":"7960653fe678b563051e2fbb99caf9fd3c07528c","_id":"@eslint/plugin-kit@0.6.0","_nodeVersion":"24.13.0","_npmVersion":"11.8.0","dist":{"shasum":"e0cb12ec66719cb2211ad36499fb516f2a63899d","size":23887,"noattachment":false,"key":"/@eslint/plugin-kit/-/@eslint/plugin-kit-0.6.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/@eslint/plugin-kit/download/@eslint/plugin-kit-0.6.0.tgz"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:139e2445-c888-434b-b72e-d7348028a67b"}},"directories":{},"maintainers":[{"name":"eslintbot","email":""},{"name":"openjsfoundation","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/plugin-kit_0.6.0_1769793443698_0.3791284793309473"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2026-01-30T17:17:23.847Z","publish_time":1769793443847,"_source_registry_name":"default","_cnpm_publish_time":1769793443847},"0.5.1":{"name":"@eslint/plugin-kit","version":"0.5.1","description":"Utilities for building ESLint plugins.","author":{"name":"Nicholas C. Zakas"},"type":"module","main":"dist/esm/index.js","types":"dist/esm/index.d.ts","exports":{"require":{"types":"./dist/cjs/index.d.cts","default":"./dist/cjs/index.cjs"},"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"}},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/eslint/rewrite.git","directory":"packages/plugin-kit"},"bugs":{"url":"https://github.com/eslint/rewrite/issues"},"homepage":"https://github.com/eslint/rewrite/tree/main/packages/plugin-kit#readme","scripts":{"build:dedupe-types":"node ../../tools/dedupe-types.js dist/cjs/index.cjs dist/esm/index.js","build:cts":"node ../../tools/build-cts.js dist/esm/index.d.ts dist/cjs/index.d.cts","build":"rollup -c && npm run build:dedupe-types && tsc -p tsconfig.esm.json && npm run build:cts","lint:types":"attw --pack","pretest":"npm run build","test":"mocha \"tests/**/*.test.js\"","test:coverage":"c8 npm test","test:jsr":"npx -y jsr@latest publish --dry-run","test:types":"tsc -p tests/types/tsconfig.json"},"keywords":["eslint","eslintplugin","eslint-plugin"],"license":"Apache-2.0","dependencies":{"@eslint/core":"^1.0.1","levn":"^0.4.1"},"devDependencies":{"@types/levn":"^0.4.0","rollup-plugin-copy":"^3.5.0"},"engines":{"node":"^20.19.0 || ^22.13.0 || >=24"},"gitHead":"7abc05147e2b6d29cb5170867c2172d25c563454","_id":"@eslint/plugin-kit@0.5.1","_nodeVersion":"24.12.0","_npmVersion":"11.7.0","dist":{"shasum":"35b0ccf9a2f654501fbe4bfe2e798f2d1adacaeb","size":22389,"noattachment":false,"key":"/@eslint/plugin-kit/-/@eslint/plugin-kit-0.5.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/@eslint/plugin-kit/download/@eslint/plugin-kit-0.5.1.tgz"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:139e2445-c888-434b-b72e-d7348028a67b"}},"directories":{},"maintainers":[{"name":"eslintbot","email":""},{"name":"openjsfoundation","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/plugin-kit_0.5.1_1767971111888_0.5042559976834964"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2026-01-09T15:05:12.033Z","publish_time":1767971112033,"_source_registry_name":"default","_cnpm_publish_time":1767971112033},"0.5.0":{"name":"@eslint/plugin-kit","version":"0.5.0","description":"Utilities for building ESLint plugins.","author":{"name":"Nicholas C. Zakas"},"type":"module","main":"dist/esm/index.js","types":"dist/esm/index.d.ts","exports":{"require":{"types":"./dist/cjs/index.d.cts","default":"./dist/cjs/index.cjs"},"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"}},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/eslint/rewrite.git","directory":"packages/plugin-kit"},"bugs":{"url":"https://github.com/eslint/rewrite/issues"},"homepage":"https://github.com/eslint/rewrite/tree/main/packages/plugin-kit#readme","scripts":{"build:dedupe-types":"node ../../tools/dedupe-types.js dist/cjs/index.cjs dist/esm/index.js","build:cts":"node ../../tools/build-cts.js dist/esm/index.d.ts dist/cjs/index.d.cts","build":"rollup -c && npm run build:dedupe-types && tsc -p tsconfig.esm.json && npm run build:cts","pretest":"npm run build","test":"mocha \"tests/**/*.test.js\"","test:coverage":"c8 npm test","test:jsr":"npx jsr@latest publish --dry-run","test:types":"tsc -p tests/types/tsconfig.json"},"keywords":["eslint","eslintplugin","eslint-plugin"],"license":"Apache-2.0","dependencies":{"@eslint/core":"^1.0.0","levn":"^0.4.1"},"devDependencies":{"@types/levn":"^0.4.0","rollup-plugin-copy":"^3.5.0"},"engines":{"node":"^20.19.0 || ^22.13.0 || >=24"},"gitHead":"c368656dbba4d927344905f24b3993a378a59a88","_id":"@eslint/plugin-kit@0.5.0","_nodeVersion":"24.11.1","_npmVersion":"11.6.2","dist":{"shasum":"49ce0f961e34d67179676335f4da1f02ecb3b995","size":22367,"noattachment":false,"key":"/@eslint/plugin-kit/-/@eslint/plugin-kit-0.5.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/@eslint/plugin-kit/download/@eslint/plugin-kit-0.5.0.tgz"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:139e2445-c888-434b-b72e-d7348028a67b"}},"directories":{},"maintainers":[{"name":"eslintbot","email":""},{"name":"openjsfoundation","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/plugin-kit_0.5.0_1763137832843_0.9929771597499386"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-11-14T16:30:33.099Z","publish_time":1763137833099,"_source_registry_name":"default","_cnpm_publish_time":1763137833099},"0.4.1":{"name":"@eslint/plugin-kit","version":"0.4.1","description":"Utilities for building ESLint plugins.","author":{"name":"Nicholas C. Zakas"},"type":"module","main":"dist/esm/index.js","types":"dist/esm/index.d.ts","exports":{"require":{"types":"./dist/cjs/index.d.cts","default":"./dist/cjs/index.cjs"},"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"}},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/eslint/rewrite.git","directory":"packages/plugin-kit"},"bugs":{"url":"https://github.com/eslint/rewrite/issues"},"homepage":"https://github.com/eslint/rewrite/tree/main/packages/plugin-kit#readme","scripts":{"build:dedupe-types":"node ../../tools/dedupe-types.js dist/cjs/index.cjs dist/esm/index.js","build:cts":"node ../../tools/build-cts.js dist/esm/index.d.ts dist/cjs/index.d.cts","build":"rollup -c && npm run build:dedupe-types && tsc -p tsconfig.esm.json && npm run build:cts","pretest":"npm run build","test":"mocha \"tests/**/*.test.js\"","test:coverage":"c8 npm test","test:jsr":"npx jsr@latest publish --dry-run","test:types":"tsc -p tests/types/tsconfig.json"},"keywords":["eslint","eslintplugin","eslint-plugin"],"license":"Apache-2.0","dependencies":{"@eslint/core":"^0.17.0","levn":"^0.4.1"},"devDependencies":{"@types/levn":"^0.4.0","rollup-plugin-copy":"^3.5.0"},"engines":{"node":"^18.18.0 || ^20.9.0 || >=21.1.0"},"gitHead":"f5ecc7e945634a173af677d2d597d583bd2704e6","_id":"@eslint/plugin-kit@0.4.1","_nodeVersion":"24.11.0","_npmVersion":"11.6.2","dist":{"shasum":"9779e3fd9b7ee33571a57435cf4335a1794a6cb2","size":22477,"noattachment":false,"key":"/@eslint/plugin-kit/-/@eslint/plugin-kit-0.4.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/@eslint/plugin-kit/download/@eslint/plugin-kit-0.4.1.tgz"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:139e2445-c888-434b-b72e-d7348028a67b"}},"directories":{},"maintainers":[{"name":"eslintbot","email":""},{"name":"openjsfoundation","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/plugin-kit_0.4.1_1761747708089_0.506590859512787"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-10-29T14:21:48.301Z","publish_time":1761747708301,"_source_registry_name":"default","_cnpm_publish_time":1761747708301},"0.4.0":{"name":"@eslint/plugin-kit","version":"0.4.0","description":"Utilities for building ESLint plugins.","author":{"name":"Nicholas C. Zakas"},"type":"module","main":"dist/esm/index.js","types":"dist/esm/index.d.ts","exports":{"require":{"types":"./dist/cjs/index.d.cts","default":"./dist/cjs/index.cjs"},"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"}},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/eslint/rewrite.git","directory":"packages/plugin-kit"},"bugs":{"url":"https://github.com/eslint/rewrite/issues"},"homepage":"https://github.com/eslint/rewrite/tree/main/packages/plugin-kit#readme","scripts":{"build:dedupe-types":"node ../../tools/dedupe-types.js dist/cjs/index.cjs dist/esm/index.js","build:cts":"node ../../tools/build-cts.js dist/esm/index.d.ts dist/cjs/index.d.cts","build":"rollup -c && npm run build:dedupe-types && tsc -p tsconfig.esm.json && npm run build:cts","pretest":"npm run build","test":"mocha \"tests/**/*.test.js\"","test:coverage":"c8 npm test","test:jsr":"npx jsr@latest publish --dry-run","test:types":"tsc -p tests/types/tsconfig.json"},"keywords":["eslint","eslintplugin","eslint-plugin"],"license":"Apache-2.0","dependencies":{"@eslint/core":"^0.16.0","levn":"^0.4.1"},"devDependencies":{"@types/levn":"^0.4.0","rollup-plugin-copy":"^3.5.0"},"engines":{"node":"^18.18.0 || ^20.9.0 || >=21.1.0"},"_id":"@eslint/plugin-kit@0.4.0","gitHead":"7f592e3b60dd0a3b38d891a80aeeb92cf78d8e86","_nodeVersion":"22.19.0","_npmVersion":"10.9.3","dist":{"shasum":"f6a245b42886abf6fc9c7ab7744a932250335ab2","size":22285,"noattachment":false,"key":"/@eslint/plugin-kit/-/@eslint/plugin-kit-0.4.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/@eslint/plugin-kit/download/@eslint/plugin-kit-0.4.0.tgz"},"_npmUser":{"name":"eslintbot","email":"contact@eslint.org"},"directories":{},"maintainers":[{"name":"eslintbot","email":""},{"name":"openjsfoundation","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/plugin-kit_0.4.0_1758563584395_0.7155046344584395"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-09-22T17:53:04.595Z","publish_time":1758563584595,"_source_registry_name":"default","_cnpm_publish_time":1758563584595},"0.3.5":{"name":"@eslint/plugin-kit","version":"0.3.5","description":"Utilities for building ESLint plugins.","author":{"name":"Nicholas C. Zakas"},"type":"module","main":"dist/esm/index.js","types":"dist/esm/index.d.ts","exports":{"require":{"types":"./dist/cjs/index.d.cts","default":"./dist/cjs/index.cjs"},"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"}},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/eslint/rewrite.git","directory":"packages/plugin-kit"},"bugs":{"url":"https://github.com/eslint/rewrite/issues"},"homepage":"https://github.com/eslint/rewrite/tree/main/packages/plugin-kit#readme","scripts":{"build:dedupe-types":"node ../../tools/dedupe-types.js dist/cjs/index.cjs dist/esm/index.js","build:cts":"node ../../tools/build-cts.js dist/esm/index.d.ts dist/cjs/index.d.cts","build":"rollup -c && npm run build:dedupe-types && tsc -p tsconfig.esm.json && npm run build:cts","pretest":"npm run build","test":"mocha tests/","test:coverage":"c8 npm test","test:jsr":"npx jsr@latest publish --dry-run","test:types":"tsc -p tests/types/tsconfig.json"},"keywords":["eslint","eslintplugin","eslint-plugin"],"license":"Apache-2.0","dependencies":{"@eslint/core":"^0.15.2","levn":"^0.4.1"},"devDependencies":{"@types/levn":"^0.4.0","rollup-plugin-copy":"^3.5.0"},"engines":{"node":"^18.18.0 || ^20.9.0 || >=21.1.0"},"_id":"@eslint/plugin-kit@0.3.5","gitHead":"9e68ab61df9c4ebc082b603fb5e3dfe2dcf98666","_nodeVersion":"22.17.1","_npmVersion":"10.9.2","dist":{"shasum":"fd8764f0ee79c8ddab4da65460c641cefee017c5","size":15145,"noattachment":false,"key":"/@eslint/plugin-kit/-/@eslint/plugin-kit-0.3.5.tgz","tarball":"http://registry.cnpm.dingdandao.com/@eslint/plugin-kit/download/@eslint/plugin-kit-0.3.5.tgz"},"_npmUser":{"name":"eslintbot","email":"contact@eslint.org"},"directories":{},"maintainers":[{"name":"eslintbot","email":""},{"name":"openjsfoundation","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/plugin-kit_0.3.5_1754648495759_0.9969323616891603"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-08-08T10:21:35.983Z","publish_time":1754648495983,"_source_registry_name":"default","_cnpm_publish_time":1754648495983},"0.3.4":{"name":"@eslint/plugin-kit","version":"0.3.4","description":"Utilities for building ESLint plugins.","author":{"name":"Nicholas C. Zakas"},"type":"module","main":"dist/esm/index.js","types":"dist/esm/index.d.ts","exports":{"require":{"types":"./dist/cjs/index.d.cts","default":"./dist/cjs/index.cjs"},"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"}},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/eslint/rewrite.git","directory":"packages/plugin-kit"},"bugs":{"url":"https://github.com/eslint/rewrite/issues"},"homepage":"https://github.com/eslint/rewrite/tree/main/packages/plugin-kit#readme","scripts":{"build:dedupe-types":"node ../../tools/dedupe-types.js dist/cjs/index.cjs dist/esm/index.js","build:cts":"node ../../tools/build-cts.js dist/esm/index.d.ts dist/cjs/index.d.cts","build":"rollup -c && npm run build:dedupe-types && tsc -p tsconfig.esm.json && npm run build:cts","pretest":"npm run build","test":"mocha tests/","test:coverage":"c8 npm test","test:jsr":"npx jsr@latest publish --dry-run","test:types":"tsc -p tests/types/tsconfig.json"},"keywords":["eslint","eslintplugin","eslint-plugin"],"license":"Apache-2.0","dependencies":{"@eslint/core":"^0.15.1","levn":"^0.4.1"},"devDependencies":{"@types/levn":"^0.4.0","rollup-plugin-copy":"^3.5.0"},"engines":{"node":"^18.18.0 || ^20.9.0 || >=21.1.0"},"_id":"@eslint/plugin-kit@0.3.4","gitHead":"380c2248711f5277e56c2977b6b440577b210023","_nodeVersion":"22.17.0","_npmVersion":"10.9.2","dist":{"shasum":"c6b9f165e94bf4d9fdd493f1c028a94aaf5fc1cc","size":15263,"noattachment":false,"key":"/@eslint/plugin-kit/-/@eslint/plugin-kit-0.3.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/@eslint/plugin-kit/download/@eslint/plugin-kit-0.3.4.tgz"},"_npmUser":{"name":"eslintbot","email":"contact@eslint.org"},"directories":{},"maintainers":[{"name":"eslintbot","email":""},{"name":"openjsfoundation","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/plugin-kit_0.3.4_1753111900887_0.9629303005081538"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-07-21T15:31:41.111Z","publish_time":1753111901111,"_source_registry_name":"default","_cnpm_publish_time":1753111901111},"0.3.3":{"name":"@eslint/plugin-kit","version":"0.3.3","description":"Utilities for building ESLint plugins.","author":{"name":"Nicholas C. Zakas"},"type":"module","main":"dist/esm/index.js","types":"dist/esm/index.d.ts","exports":{"require":{"types":"./dist/cjs/index.d.cts","default":"./dist/cjs/index.cjs"},"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"}},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/eslint/rewrite.git","directory":"packages/plugin-kit"},"bugs":{"url":"https://github.com/eslint/rewrite/issues"},"homepage":"https://github.com/eslint/rewrite/tree/main/packages/plugin-kit#readme","scripts":{"build:dedupe-types":"node ../../tools/dedupe-types.js dist/cjs/index.cjs dist/esm/index.js","build:cts":"node ../../tools/build-cts.js dist/esm/index.d.ts dist/cjs/index.d.cts","build":"rollup -c && npm run build:dedupe-types && tsc -p tsconfig.esm.json && npm run build:cts","pretest":"npm run build","test":"mocha tests/","test:coverage":"c8 npm test","test:jsr":"npx jsr@latest publish --dry-run","test:types":"tsc -p tests/types/tsconfig.json"},"keywords":["eslint","eslintplugin","eslint-plugin"],"license":"Apache-2.0","dependencies":{"@eslint/core":"^0.15.1","levn":"^0.4.1"},"devDependencies":{"@types/levn":"^0.4.0","rollup-plugin-copy":"^3.5.0"},"engines":{"node":"^18.18.0 || ^20.9.0 || >=21.1.0"},"_id":"@eslint/plugin-kit@0.3.3","gitHead":"0496201974aad87fdcf3aa2a63ec74e91b54825e","_nodeVersion":"22.16.0","_npmVersion":"10.9.2","dist":{"shasum":"32926b59bd407d58d817941e48b2a7049359b1fd","size":15326,"noattachment":false,"key":"/@eslint/plugin-kit/-/@eslint/plugin-kit-0.3.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/@eslint/plugin-kit/download/@eslint/plugin-kit-0.3.3.tgz"},"_npmUser":{"name":"eslintbot","email":"contact@eslint.org","actor":{"name":"eslintbot","email":"contact@eslint.org","type":"user"}},"directories":{},"maintainers":[{"name":"eslintbot","email":""},{"name":"openjsfoundation","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/plugin-kit_0.3.3_1750860275716_0.2177414636584878"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-06-25T14:04:35.909Z","publish_time":1750860275909,"_source_registry_name":"default","_cnpm_publish_time":1750860275909},"0.3.2":{"name":"@eslint/plugin-kit","version":"0.3.2","description":"Utilities for building ESLint plugins.","author":{"name":"Nicholas C. Zakas"},"type":"module","main":"dist/esm/index.js","types":"dist/esm/index.d.ts","exports":{"require":{"types":"./dist/cjs/index.d.cts","default":"./dist/cjs/index.cjs"},"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"}},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/eslint/rewrite.git","directory":"packages/plugin-kit"},"bugs":{"url":"https://github.com/eslint/rewrite/issues"},"homepage":"https://github.com/eslint/rewrite/tree/main/packages/plugin-kit#readme","scripts":{"build:dedupe-types":"node ../../tools/dedupe-types.js dist/cjs/index.cjs dist/esm/index.js","build:cts":"node ../../tools/build-cts.js dist/esm/index.d.ts dist/cjs/index.d.cts","build":"rollup -c && npm run build:dedupe-types && tsc -p tsconfig.esm.json && npm run build:cts","pretest":"npm run build","test":"mocha tests/","test:coverage":"c8 npm test","test:jsr":"npx jsr@latest publish --dry-run","test:types":"tsc -p tests/types/tsconfig.json"},"keywords":["eslint","eslintplugin","eslint-plugin"],"license":"Apache-2.0","dependencies":{"@eslint/core":"^0.15.0","levn":"^0.4.1"},"devDependencies":{"@types/levn":"^0.4.0","c8":"^9.1.0","mocha":"^10.4.0","rollup":"^4.16.2","rollup-plugin-copy":"^3.5.0","typescript":"^5.4.5"},"engines":{"node":"^18.18.0 || ^20.9.0 || >=21.1.0"},"_id":"@eslint/plugin-kit@0.3.2","gitHead":"48b1f849476582257e1b6a110c4af55adbbec2e8","_nodeVersion":"22.16.0","_npmVersion":"10.9.2","dist":{"shasum":"0cad96b134d23a653348e3342f485636b5ef4732","size":15362,"noattachment":false,"key":"/@eslint/plugin-kit/-/@eslint/plugin-kit-0.3.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/@eslint/plugin-kit/download/@eslint/plugin-kit-0.3.2.tgz"},"_npmUser":{"name":"eslintbot","email":"contact@eslint.org"},"directories":{},"maintainers":[{"name":"eslintbot","email":""},{"name":"openjsfoundation","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/plugin-kit_0.3.2_1749674205789_0.23135541243083457"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-06-11T20:36:46.062Z","publish_time":1749674206062,"_source_registry_name":"default","_cnpm_publish_time":1749674206062},"0.3.1":{"name":"@eslint/plugin-kit","version":"0.3.1","description":"Utilities for building ESLint plugins.","author":{"name":"Nicholas C. Zakas"},"type":"module","main":"dist/esm/index.js","types":"dist/esm/index.d.ts","exports":{"require":{"types":"./dist/cjs/index.d.cts","default":"./dist/cjs/index.cjs"},"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"}},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/eslint/rewrite.git"},"bugs":{"url":"https://github.com/eslint/rewrite/issues"},"homepage":"https://github.com/eslint/rewrite#readme","scripts":{"build:dedupe-types":"node ../../tools/dedupe-types.js dist/cjs/index.cjs dist/esm/index.js","build:cts":"node ../../tools/build-cts.js dist/esm/index.d.ts dist/cjs/index.d.cts","build":"rollup -c && npm run build:dedupe-types && tsc -p tsconfig.esm.json && npm run build:cts","pretest":"npm run build","test":"mocha tests/","test:coverage":"c8 npm test","test:jsr":"npx jsr@latest publish --dry-run","test:types":"tsc -p tests/types/tsconfig.json"},"keywords":["eslint","eslintplugin","eslint-plugin"],"license":"Apache-2.0","dependencies":{"@eslint/core":"^0.14.0","levn":"^0.4.1"},"devDependencies":{"@types/levn":"^0.4.0","c8":"^9.1.0","mocha":"^10.4.0","rollup":"^4.16.2","rollup-plugin-copy":"^3.5.0","typescript":"^5.4.5"},"engines":{"node":"^18.18.0 || ^20.9.0 || >=21.1.0"},"_id":"@eslint/plugin-kit@0.3.1","gitHead":"daa19551d7a52673ccaf7656c726dca6679ebd24","_nodeVersion":"22.15.0","_npmVersion":"10.9.2","dist":{"shasum":"b71b037b2d4d68396df04a8c35a49481e5593067","size":15072,"noattachment":false,"key":"/@eslint/plugin-kit/-/@eslint/plugin-kit-0.3.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/@eslint/plugin-kit/download/@eslint/plugin-kit-0.3.1.tgz"},"_npmUser":{"name":"eslintbot","email":"contact@eslint.org"},"directories":{},"maintainers":[{"name":"eslintbot","email":""},{"name":"openjsfoundation","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/plugin-kit_0.3.1_1746111761327_0.30130700348861783"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-05-01T15:02:41.535Z","publish_time":1746111761535,"_source_registry_name":"default","_cnpm_publish_time":1746111761535},"0.2.8":{"name":"@eslint/plugin-kit","version":"0.2.8","description":"Utilities for building ESLint plugins.","author":{"name":"Nicholas C. Zakas"},"type":"module","main":"dist/esm/index.js","types":"dist/esm/index.d.ts","exports":{"require":{"types":"./dist/cjs/index.d.cts","default":"./dist/cjs/index.cjs"},"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"}},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/eslint/rewrite.git"},"bugs":{"url":"https://github.com/eslint/rewrite/issues"},"homepage":"https://github.com/eslint/rewrite#readme","scripts":{"build:dedupe-types":"node ../../tools/dedupe-types.js dist/cjs/index.cjs dist/esm/index.js","build:cts":"node ../../tools/build-cts.js dist/esm/index.d.ts dist/cjs/index.d.cts","build":"rollup -c && npm run build:dedupe-types && tsc -p tsconfig.esm.json && npm run build:cts","pretest":"npm run build","test":"mocha tests/","test:coverage":"c8 npm test","test:jsr":"npx jsr@latest publish --dry-run","test:types":"tsc -p tests/types/tsconfig.json"},"keywords":["eslint","eslintplugin","eslint-plugin"],"license":"Apache-2.0","dependencies":{"@eslint/core":"^0.13.0","levn":"^0.4.1"},"devDependencies":{"@types/levn":"^0.4.0","c8":"^9.1.0","mocha":"^10.4.0","rollup":"^4.16.2","rollup-plugin-copy":"^3.5.0","typescript":"^5.4.5"},"engines":{"node":"^18.18.0 || ^20.9.0 || >=21.1.0"},"_id":"@eslint/plugin-kit@0.2.8","gitHead":"1615a01d9e5c637dfb4d19bb53968185462fadb3","_nodeVersion":"22.14.0","_npmVersion":"10.9.2","dist":{"shasum":"47488d8f8171b5d4613e833313f3ce708e3525f8","size":14715,"noattachment":false,"key":"/@eslint/plugin-kit/-/@eslint/plugin-kit-0.2.8.tgz","tarball":"http://registry.cnpm.dingdandao.com/@eslint/plugin-kit/download/@eslint/plugin-kit-0.2.8.tgz"},"_npmUser":{"name":"eslintbot","email":"contact@eslint.org"},"directories":{},"maintainers":[{"name":"eslintbot","email":""},{"name":"openjsfoundation","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/plugin-kit_0.2.8_1743532249161_0.11164043315306715"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-04-01T18:30:49.339Z","publish_time":1743532249339,"_source_registry_name":"default","_cnpm_publish_time":1743532249339},"0.2.7":{"name":"@eslint/plugin-kit","version":"0.2.7","description":"Utilities for building ESLint plugins.","author":{"name":"Nicholas C. Zakas"},"type":"module","main":"dist/esm/index.js","types":"dist/esm/index.d.ts","exports":{"require":{"types":"./dist/cjs/index.d.cts","default":"./dist/cjs/index.cjs"},"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"}},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/eslint/rewrite.git"},"bugs":{"url":"https://github.com/eslint/rewrite/issues"},"homepage":"https://github.com/eslint/rewrite#readme","scripts":{"build:dedupe-types":"node ../../tools/dedupe-types.js dist/cjs/index.cjs dist/esm/index.js","build:cts":"node ../../tools/build-cts.js dist/esm/index.d.ts dist/cjs/index.d.cts","build":"rollup -c && npm run build:dedupe-types && tsc -p tsconfig.esm.json && npm run build:cts","pretest":"npm run build","test":"mocha tests/","test:coverage":"c8 npm test","test:jsr":"npx jsr@latest publish --dry-run","test:types":"tsc -p tests/types/tsconfig.json"},"keywords":["eslint","eslintplugin","eslint-plugin"],"license":"Apache-2.0","dependencies":{"@eslint/core":"^0.12.0","levn":"^0.4.1"},"devDependencies":{"@types/levn":"^0.4.0","c8":"^9.1.0","mocha":"^10.4.0","rollup":"^4.16.2","rollup-plugin-copy":"^3.5.0","typescript":"^5.4.5"},"engines":{"node":"^18.18.0 || ^20.9.0 || >=21.1.0"},"_id":"@eslint/plugin-kit@0.2.7","gitHead":"3e9b0eb2b87b46842f157421001cc58ba007be56","_nodeVersion":"22.13.1","_npmVersion":"10.9.2","dist":{"shasum":"9901d52c136fb8f375906a73dcc382646c3b6a27","size":14822,"noattachment":false,"key":"/@eslint/plugin-kit/-/@eslint/plugin-kit-0.2.7.tgz","tarball":"http://registry.cnpm.dingdandao.com/@eslint/plugin-kit/download/@eslint/plugin-kit-0.2.7.tgz"},"_npmUser":{"name":"eslintbot","email":"nicholas@eslint.org"},"directories":{},"maintainers":[{"name":"eslintbot","email":""},{"name":"openjsfoundation","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/plugin-kit_0.2.7_1740140413435_0.9895175799504181"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-02-21T12:20:13.607Z","publish_time":1740140413607,"_source_registry_name":"default","_cnpm_publish_time":1740140413607},"0.2.6":{"name":"@eslint/plugin-kit","version":"0.2.6","description":"Utilities for building ESLint plugins.","author":{"name":"Nicholas C. Zakas"},"type":"module","main":"dist/esm/index.js","types":"dist/esm/index.d.ts","exports":{"require":{"types":"./dist/cjs/index.d.cts","default":"./dist/cjs/index.cjs"},"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"}},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/eslint/rewrite.git"},"bugs":{"url":"https://github.com/eslint/rewrite/issues"},"homepage":"https://github.com/eslint/rewrite#readme","scripts":{"build:dedupe-types":"node ../../tools/dedupe-types.js dist/cjs/index.cjs dist/esm/index.js","build:cts":"node ../../tools/build-cts.js dist/esm/index.d.ts dist/cjs/index.d.cts","build":"rollup -c && npm run build:dedupe-types && tsc -p tsconfig.esm.json && npm run build:cts","pretest":"npm run build","test":"mocha tests/","test:coverage":"c8 npm test","test:jsr":"npx jsr@latest publish --dry-run","test:types":"tsc -p tests/types/tsconfig.json"},"keywords":["eslint","eslintplugin","eslint-plugin"],"license":"Apache-2.0","dependencies":{"@eslint/core":"^0.11.0","levn":"^0.4.1"},"devDependencies":{"@types/levn":"^0.4.0","c8":"^9.1.0","mocha":"^10.4.0","rollup":"^4.16.2","rollup-plugin-copy":"^3.5.0","typescript":"^5.4.5"},"engines":{"node":"^18.18.0 || ^20.9.0 || >=21.1.0"},"_id":"@eslint/plugin-kit@0.2.6","gitHead":"0c293bc60a86245cb68da7e7f2a54a17b4bd839f","_nodeVersion":"22.13.1","_npmVersion":"10.9.2","dist":{"shasum":"a30084164a4ced1efb6ec31d3d04f581cb8929c0","size":14784,"noattachment":false,"key":"/@eslint/plugin-kit/-/@eslint/plugin-kit-0.2.6.tgz","tarball":"http://registry.cnpm.dingdandao.com/@eslint/plugin-kit/download/@eslint/plugin-kit-0.2.6.tgz"},"_npmUser":{"name":"eslintbot","email":"nicholas@eslint.org"},"directories":{},"maintainers":[{"name":"eslintbot","email":""},{"name":"openjsfoundation","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/plugin-kit_0.2.6_1739900117500_0.004577534617633772"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-02-18T17:35:17.707Z","publish_time":1739900117707,"_source_registry_name":"default","_cnpm_publish_time":1739900117707},"0.2.5":{"name":"@eslint/plugin-kit","version":"0.2.5","description":"Utilities for building ESLint plugins.","author":{"name":"Nicholas C. Zakas"},"type":"module","main":"dist/esm/index.js","types":"dist/esm/index.d.ts","exports":{"require":{"types":"./dist/cjs/index.d.cts","default":"./dist/cjs/index.cjs"},"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"}},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/eslint/rewrite.git"},"bugs":{"url":"https://github.com/eslint/rewrite/issues"},"homepage":"https://github.com/eslint/rewrite#readme","scripts":{"build:dedupe-types":"node ../../tools/dedupe-types.js dist/cjs/index.cjs dist/esm/index.js","build:cts":"node ./build-cts.js","build":"rollup -c && npm run build:dedupe-types && tsc -p tsconfig.esm.json && npm run build:cts","pretest":"npm run build","test":"mocha tests/","test:coverage":"c8 npm test","test:jsr":"npx jsr@latest publish --dry-run","test:types":"tsc -p tests/types/tsconfig.json"},"keywords":["eslint","eslintplugin","eslint-plugin"],"license":"Apache-2.0","dependencies":{"@eslint/core":"^0.10.0","levn":"^0.4.1"},"devDependencies":{"@types/levn":"^0.4.0","c8":"^9.1.0","mocha":"^10.4.0","rollup":"^4.16.2","rollup-plugin-copy":"^3.5.0","typescript":"^5.4.5"},"engines":{"node":"^18.18.0 || ^20.9.0 || >=21.1.0"},"_id":"@eslint/plugin-kit@0.2.5","gitHead":"7f291c70eafb050420d86092f7cd03f9c6a96207","_nodeVersion":"22.13.0","_npmVersion":"10.9.2","dist":{"shasum":"ee07372035539e7847ef834e3f5e7b79f09e3a81","size":14702,"noattachment":false,"key":"/@eslint/plugin-kit/-/@eslint/plugin-kit-0.2.5.tgz","tarball":"http://registry.cnpm.dingdandao.com/@eslint/plugin-kit/download/@eslint/plugin-kit-0.2.5.tgz"},"_npmUser":{"name":"eslintbot","email":"nicholas@eslint.org"},"directories":{},"maintainers":[{"name":"eslintbot","email":""},{"name":"openjsfoundation","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/plugin-kit_0.2.5_1736534108125_0.2531063877538928"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-01-10T18:35:08.352Z","publish_time":1736534108352,"_source_registry_name":"default","_cnpm_publish_time":1736534108352},"0.2.4":{"name":"@eslint/plugin-kit","version":"0.2.4","description":"Utilities for building ESLint plugins.","author":{"name":"Nicholas C. Zakas"},"type":"module","main":"dist/esm/index.js","types":"dist/esm/index.d.ts","exports":{"require":{"types":"./dist/cjs/index.d.cts","default":"./dist/cjs/index.cjs"},"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"}},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/eslint/rewrite.git"},"bugs":{"url":"https://github.com/eslint/rewrite/issues"},"homepage":"https://github.com/eslint/rewrite#readme","scripts":{"build:dedupe-types":"node ../../tools/dedupe-types.js dist/cjs/index.cjs dist/esm/index.js","build:cts":"node -e \"fs.copyFileSync('dist/esm/index.d.ts', 'dist/cjs/index.d.cts')\"","build":"rollup -c && npm run build:dedupe-types && tsc -p tsconfig.esm.json && npm run build:cts","test:jsr":"npx jsr@latest publish --dry-run","pretest":"npm run build","test":"mocha tests/","test:coverage":"c8 npm test"},"keywords":["eslint","eslintplugin","eslint-plugin"],"license":"Apache-2.0","devDependencies":{"@eslint/core":"^0.9.1","@types/levn":"^0.4.0","c8":"^9.1.0","mocha":"^10.4.0","rollup":"^4.16.2","rollup-plugin-copy":"^3.5.0","typescript":"^5.4.5"},"engines":{"node":"^18.18.0 || ^20.9.0 || >=21.1.0"},"dependencies":{"levn":"^0.4.1"},"_id":"@eslint/plugin-kit@0.2.4","gitHead":"dd8d161c635450f3e37109f833737bf69f54db55","_nodeVersion":"22.11.0","_npmVersion":"10.9.0","dist":{"shasum":"2b78e7bb3755784bb13faa8932a1d994d6537792","size":14767,"noattachment":false,"key":"/@eslint/plugin-kit/-/@eslint/plugin-kit-0.2.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/@eslint/plugin-kit/download/@eslint/plugin-kit-0.2.4.tgz"},"_npmUser":{"name":"eslintbot","email":"nicholas@eslint.org"},"directories":{},"maintainers":[{"name":"eslintbot","email":""},{"name":"openjsfoundation","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/plugin-kit_0.2.4_1733347433183_0.03545568386227438"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2024-12-04T21:23:53.346Z","publish_time":1733347433346,"_source_registry_name":"default","_cnpm_publish_time":1733347433346},"0.2.3":{"name":"@eslint/plugin-kit","version":"0.2.3","description":"Utilities for building ESLint plugins.","author":{"name":"Nicholas C. Zakas"},"type":"module","main":"dist/esm/index.js","types":"dist/esm/index.d.ts","exports":{"require":{"types":"./dist/cjs/index.d.cts","default":"./dist/cjs/index.cjs"},"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"}},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/eslint/rewrite.git"},"bugs":{"url":"https://github.com/eslint/rewrite/issues"},"homepage":"https://github.com/eslint/rewrite#readme","scripts":{"build:dedupe-types":"node ../../tools/dedupe-types.js dist/cjs/index.cjs dist/esm/index.js","build:cts":"node -e \"fs.copyFileSync('dist/esm/index.d.ts', 'dist/cjs/index.d.cts')\"","build":"rollup -c && npm run build:dedupe-types && tsc -p tsconfig.esm.json && npm run build:cts","test:jsr":"npx jsr@latest publish --dry-run","pretest":"npm run build","test":"mocha tests/","test:coverage":"c8 npm test"},"keywords":["eslint","eslintplugin","eslint-plugin"],"license":"Apache-2.0","devDependencies":{"@eslint/core":"^0.9.0","c8":"^9.1.0","mocha":"^10.4.0","rollup":"^4.16.2","rollup-plugin-copy":"^3.5.0","typescript":"^5.4.5"},"engines":{"node":"^18.18.0 || ^20.9.0 || >=21.1.0"},"dependencies":{"levn":"^0.4.1"},"_id":"@eslint/plugin-kit@0.2.3","gitHead":"a957ee351c27ac1bf22966768cf8aac8c12ce0d2","_nodeVersion":"22.10.0","_npmVersion":"10.9.0","dist":{"shasum":"812980a6a41ecf3a8341719f92a6d1e784a2e0e8","size":14726,"noattachment":false,"key":"/@eslint/plugin-kit/-/@eslint/plugin-kit-0.2.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/@eslint/plugin-kit/download/@eslint/plugin-kit-0.2.3.tgz"},"_npmUser":{"name":"eslintbot","email":"nicholas@eslint.org"},"directories":{},"maintainers":[{"name":"eslintbot","email":""},{"name":"openjsfoundation","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/plugin-kit_0.2.3_1731602808364_0.23076903229568413"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2024-11-14T16:46:48.594Z","publish_time":1731602808594,"_source_registry_name":"default","_cnpm_publish_time":1731602808594},"0.2.2":{"name":"@eslint/plugin-kit","version":"0.2.2","description":"Utilities for building ESLint plugins.","author":{"name":"Nicholas C. Zakas"},"type":"module","main":"dist/esm/index.js","types":"dist/esm/index.d.ts","exports":{"require":{"types":"./dist/cjs/index.d.cts","default":"./dist/cjs/index.cjs"},"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"}},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/eslint/rewrite.git"},"bugs":{"url":"https://github.com/eslint/rewrite/issues"},"homepage":"https://github.com/eslint/rewrite#readme","scripts":{"build:dedupe-types":"node ../../tools/dedupe-types.js dist/cjs/index.cjs dist/esm/index.js","build:cts":"node -e \"fs.copyFileSync('dist/esm/index.d.ts', 'dist/cjs/index.d.cts')\"","build":"rollup -c && npm run build:dedupe-types && tsc -p tsconfig.esm.json && npm run build:cts","test:jsr":"npx jsr@latest publish --dry-run","pretest":"npm run build","test":"mocha tests/","test:coverage":"c8 npm test"},"keywords":["eslint","eslintplugin","eslint-plugin"],"license":"Apache-2.0","devDependencies":{"@eslint/core":"^0.8.0","c8":"^9.1.0","mocha":"^10.4.0","rollup":"^4.16.2","rollup-plugin-copy":"^3.5.0","typescript":"^5.4.5"},"engines":{"node":"^18.18.0 || ^20.9.0 || >=21.1.0"},"dependencies":{"levn":"^0.4.1"},"_id":"@eslint/plugin-kit@0.2.2","gitHead":"0dc78d335a98ef680b579851026438473147750e","_nodeVersion":"20.18.0","_npmVersion":"10.8.2","dist":{"shasum":"5eff371953bc13e3f4d88150e2c53959f64f74f6","size":14634,"noattachment":false,"key":"/@eslint/plugin-kit/-/@eslint/plugin-kit-0.2.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/@eslint/plugin-kit/download/@eslint/plugin-kit-0.2.2.tgz"},"_npmUser":{"name":"eslintbot","email":"nicholas@eslint.org"},"directories":{},"maintainers":[{"name":"eslintbot","email":""},{"name":"openjsfoundation","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/plugin-kit_0.2.2_1730136263419_0.37028872291303006"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2024-10-28T17:24:23.634Z","publish_time":1730136263634,"_source_registry_name":"default","_cnpm_publish_time":1730136263634},"0.2.1":{"name":"@eslint/plugin-kit","version":"0.2.1","description":"Utilities for building ESLint plugins.","author":{"name":"Nicholas C. Zakas"},"type":"module","main":"dist/esm/index.js","types":"dist/esm/index.d.ts","exports":{"require":{"types":"./dist/cjs/index.d.cts","default":"./dist/cjs/index.cjs"},"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"}},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/eslint/rewrite.git"},"bugs":{"url":"https://github.com/eslint/rewrite/issues"},"homepage":"https://github.com/eslint/rewrite#readme","scripts":{"build:dedupe-types":"node ../../tools/dedupe-types.js dist/cjs/index.cjs dist/esm/index.js","build:cts":"node -e \"fs.copyFileSync('dist/esm/index.d.ts', 'dist/cjs/index.d.cts')\"","build":"rollup -c && npm run build:dedupe-types && tsc -p tsconfig.esm.json && npm run build:cts","test:jsr":"npx jsr@latest publish --dry-run","pretest":"npm run build","test":"mocha tests/","test:coverage":"c8 npm test"},"keywords":["eslint","eslintplugin","eslint-plugin"],"license":"Apache-2.0","devDependencies":{"@eslint/core":"^0.7.0","c8":"^9.1.0","mocha":"^10.4.0","rollup":"^4.16.2","rollup-plugin-copy":"^3.5.0","typescript":"^5.4.5"},"engines":{"node":"^18.18.0 || ^20.9.0 || >=21.1.0"},"dependencies":{"levn":"^0.4.1"},"_id":"@eslint/plugin-kit@0.2.1","gitHead":"80eb5455aa5e021fc8c514a11d67c59c583ae2a1","_nodeVersion":"20.18.0","_npmVersion":"10.8.2","dist":{"shasum":"cd14fe2db79fa639839dfef4105e83bad1814482","size":14669,"noattachment":false,"key":"/@eslint/plugin-kit/-/@eslint/plugin-kit-0.2.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/@eslint/plugin-kit/download/@eslint/plugin-kit-0.2.1.tgz"},"_npmUser":{"name":"eslintbot","email":"nicholas@eslint.org"},"directories":{},"maintainers":[{"name":"eslintbot","email":""},{"name":"openjsfoundation","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/plugin-kit_0.2.1_1729282314540_0.9960957729052182"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2024-10-18T20:11:54.868Z","publish_time":1729282314868,"_source_registry_name":"default","_cnpm_publish_time":1729282314868},"0.2.0":{"name":"@eslint/plugin-kit","version":"0.2.0","description":"Utilities for building ESLint plugins.","author":{"name":"Nicholas C. Zakas"},"type":"module","main":"dist/esm/index.js","types":"dist/esm/index.d.ts","exports":{"require":{"types":"./dist/cjs/index.d.cts","default":"./dist/cjs/index.cjs"},"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"}},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/eslint/rewrite.git"},"bugs":{"url":"https://github.com/eslint/rewrite/issues"},"homepage":"https://github.com/eslint/rewrite#readme","scripts":{"build:dedupe-types":"node ../../tools/dedupe-types.js dist/cjs/index.cjs dist/esm/index.js","build:cts":"node -e \"fs.copyFileSync('dist/esm/index.d.ts', 'dist/cjs/index.d.cts')\"","build":"rollup -c && npm run build:dedupe-types && tsc -p tsconfig.esm.json && npm run build:cts","test:jsr":"npx jsr@latest publish --dry-run","pretest":"npm run build","test":"mocha tests/","test:coverage":"c8 npm test"},"keywords":["eslint","eslintplugin","eslint-plugin"],"license":"Apache-2.0","devDependencies":{"@eslint/core":"^0.6.0","c8":"^9.1.0","mocha":"^10.4.0","rollup":"^4.16.2","rollup-plugin-copy":"^3.5.0","typescript":"^5.4.5"},"engines":{"node":"^18.18.0 || ^20.9.0 || >=21.1.0"},"dependencies":{"levn":"^0.4.1"},"_id":"@eslint/plugin-kit@0.2.0","gitHead":"8743a5b0f176f548d6f5abd9fdaee9269a06df8b","_nodeVersion":"20.17.0","_npmVersion":"10.8.2","dist":{"shasum":"8712dccae365d24e9eeecb7b346f85e750ba343d","size":14609,"noattachment":false,"key":"/@eslint/plugin-kit/-/@eslint/plugin-kit-0.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/@eslint/plugin-kit/download/@eslint/plugin-kit-0.2.0.tgz"},"_npmUser":{"name":"eslintbot","email":"nicholas@eslint.org"},"directories":{},"maintainers":[{"name":"eslintbot","email":""},{"name":"openjsfoundation","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/plugin-kit_0.2.0_1725029177947_0.4214359719661631"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2024-08-30T14:46:18.085Z","publish_time":1725029178085,"_source_registry_name":"default","_cnpm_publish_time":1725029178085},"0.1.0":{"name":"@eslint/plugin-kit","version":"0.1.0","description":"Utilities for building ESLint plugins.","author":{"name":"Nicholas C. Zakas"},"type":"module","main":"dist/esm/index.js","types":"dist/esm/index.d.ts","exports":{"require":{"types":"./dist/cjs/index.d.cts","default":"./dist/cjs/index.cjs"},"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"}},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/eslint/rewrite.git"},"bugs":{"url":"https://github.com/eslint/rewrite/issues"},"homepage":"https://github.com/eslint/rewrite#readme","scripts":{"build:dedupe-types":"node ../../tools/dedupe-types.js dist/cjs/index.cjs dist/esm/index.js","build:cts":"node -e \"fs.copyFileSync('dist/esm/index.d.ts', 'dist/cjs/index.d.cts')\"","build":"rollup -c && npm run build:dedupe-types && tsc -p tsconfig.esm.json && npm run build:cts","test:jsr":"npx jsr@latest publish --dry-run","pretest":"npm run build","test":"mocha tests/","test:coverage":"c8 npm test"},"keywords":["eslint","eslintplugin","eslint-plugin"],"license":"Apache-2.0","devDependencies":{"@eslint/core":"^0.5.0","c8":"^9.1.0","mocha":"^10.4.0","rollup":"^4.16.2","rollup-plugin-copy":"^3.5.0","typescript":"^5.4.5"},"engines":{"node":"^18.18.0 || ^20.9.0 || >=21.1.0"},"dependencies":{"levn":"^0.4.1"},"_id":"@eslint/plugin-kit@0.1.0","gitHead":"3c54b2b01476ff533811d7745e5a81b4aa72326e","_nodeVersion":"20.16.0","_npmVersion":"10.8.1","dist":{"shasum":"809b95a0227ee79c3195adfb562eb94352e77974","size":13638,"noattachment":false,"key":"/@eslint/plugin-kit/-/@eslint/plugin-kit-0.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/@eslint/plugin-kit/download/@eslint/plugin-kit-0.1.0.tgz"},"_npmUser":{"name":"eslintbot","email":"nicholas@eslint.org"},"directories":{},"maintainers":[{"name":"eslintbot","email":""},{"name":"openjsfoundation","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/plugin-kit_0.1.0_1724767144057_0.2155951958615836"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2024-08-27T13:59:04.231Z","publish_time":1724767144231,"_source_registry_name":"default","_cnpm_publish_time":1724767144231}},"readme":"# ESLint Plugin Kit\n\n## Description\n\nA collection of utilities to help build ESLint plugins.\n\n## Installation\n\nFor Node.js and compatible runtimes:\n\n```shell\nnpm install @eslint/plugin-kit\n# or\nyarn add @eslint/plugin-kit\n# or\npnpm install @eslint/plugin-kit\n# or\nbun add @eslint/plugin-kit\n```\n\nFor Deno:\n\n```shell\ndeno add @eslint/plugin-kit\n```\n\n## Usage\n\nThis package exports the following utilities:\n\n- [`ConfigCommentParser`](#configcommentparser) - used to parse ESLint configuration comments (i.e., `/* eslint-disable rule */`)\n- [`VisitNodeStep` and `CallMethodStep`](#visitnodestep-and-callmethodstep) - used to help implement `SourceCode#traverse()`\n- [`Directive`](#directive) - used to help implement `SourceCode#getDisableDirectives()`\n- [`TextSourceCodeBase`](#textsourcecodebase) - base class to help implement the `SourceCode` interface\n\n### `ConfigCommentParser`\n\nTo use the `ConfigCommentParser` class, import it from the package and create a new instance, such as:\n\n```js\nimport { ConfigCommentParser } from \"@eslint/plugin-kit\";\n\n// create a new instance\nconst commentParser = new ConfigCommentParser();\n\n// pass in a comment string without the comment delimiters\nconst directive = commentParser.parseDirective(\n\t\"eslint-disable prefer-const, no-var -- I don't want to use these.\",\n);\n\n// will be undefined when a directive can't be parsed\nif (directive) {\n\tconsole.log(directive.label); // \"eslint-disable\"\n\tconsole.log(directive.value); // \"prefer-const, no-var\"\n\tconsole.log(directive.justification); // \"I don't want to use these.\"\n}\n```\n\nThere are different styles of directive values that you'll need to parse separately to get the correct format:\n\n```js\nimport { ConfigCommentParser } from \"@eslint/plugin-kit\";\n\n// create a new instance\nconst commentParser = new ConfigCommentParser();\n\n// list format\nconst list = commentParser.parseListConfig(\"prefer-const, no-var\");\nconsole.log(Object.entries(list)); // [[\"prefer-const\", true], [\"no-var\", true]]\n\n// string format\nconst strings = commentParser.parseStringConfig(\"foo:off, bar\");\nconsole.log(Object.entries(strings)); // [[\"foo\", \"off\"], [\"bar\", null]]\n\n// JSON-like config format\nconst jsonLike = commentParser.parseJSONLikeConfig(\n\t\"radix:[error, always], prefer-const: warn\",\n);\nconsole.log(Object.entries(jsonLike.config)); // [[\"radix\", [\"error\", \"always\"]], [\"prefer-const\", \"warn\"]]\n```\n\n### `VisitNodeStep` and `CallMethodStep`\n\nThe `VisitNodeStep` and `CallMethodStep` classes represent steps in the traversal of source code. They implement the correct interfaces to return from the `SourceCode#traverse()` method.\n\nThe `VisitNodeStep` class is the more common of the two, where you are describing a visit to a particular node during the traversal. The constructor accepts three arguments:\n\n- `target` - the node being visited. This is used to determine the method to call inside of a rule. For instance, if the node's type is `Literal` then ESLint will call a method named `Literal()` on the rule (if present).\n- `phase` - either 1 for enter or 2 for exit.\n- `args` - an array of arguments to pass into the visitor method of a rule.\n\nFor example:\n\n```js\nimport { VisitNodeStep } from \"@eslint/plugin-kit\";\n\nclass MySourceCode {\n\ttraverse() {\n\t\tconst steps = [];\n\n\t\tfor (const { node, parent, phase } of iterator(this.ast)) {\n\t\t\tsteps.push(\n\t\t\t\tnew VisitNodeStep({\n\t\t\t\t\ttarget: node,\n\t\t\t\t\tphase: phase === \"enter\" ? 1 : 2,\n\t\t\t\t\targs: [node, parent],\n\t\t\t\t}),\n\t\t\t);\n\t\t}\n\n\t\treturn steps;\n\t}\n}\n```\n\nThe `CallMethodStep` class is less common and is used to tell ESLint to call a specific method on the rule. The constructor accepts two arguments:\n\n- `target` - the name of the method to call, frequently beginning with `\"on\"` such as `\"onCodePathStart\"`.\n- `args` - an array of arguments to pass to the method.\n\nFor example:\n\n```js\nimport { VisitNodeStep, CallMethodStep } from \"@eslint/plugin-kit\";\n\nclass MySourceCode {\n    traverse() {\n        const steps = [];\n\n        for (const { node, parent, phase } of iterator(this.ast)) {\n            steps.push(\n                new VisitNodeStep({\n                    target: node,\n                    phase: phase === \"enter\" ? 1 : 2,\n                    args: [node, parent],\n                }),\n            );\n\n            // call a method indicating how many times we've been through the loop\n            steps.push(\n                new CallMethodStep({\n                    target: \"onIteration\",\n                    args: [steps.length]\n                });\n            )\n        }\n\n        return steps;\n    }\n}\n```\n\n### `Directive`\n\nThe `Directive` class represents a disable directive in the source code and implements the `Directive` interface from `@eslint/core`. You can tell ESLint about disable directives using the `SourceCode#getDisableDirectives()` method, where part of the return value is an array of `Directive` objects. Here's an example:\n\n```js\nimport { Directive, ConfigCommentParser } from \"@eslint/plugin-kit\";\n\nclass MySourceCode {\n\tgetDisableDirectives() {\n\t\tconst directives = [];\n\t\tconst problems = [];\n\t\tconst commentParser = new ConfigCommentParser();\n\n\t\t// read in the inline config nodes to check each one\n\t\tthis.getInlineConfigNodes().forEach(comment => {\n\t\t\t// Step 1: Parse the directive\n\t\t\tconst { label, value, justification } =\n\t\t\t\tcommentParser.parseDirective(comment.value);\n\n\t\t\t// Step 2: Extract the directive value and create the `Directive` object\n\t\t\tswitch (label) {\n\t\t\t\tcase \"eslint-disable\":\n\t\t\t\tcase \"eslint-enable\":\n\t\t\t\tcase \"eslint-disable-next-line\":\n\t\t\t\tcase \"eslint-disable-line\": {\n\t\t\t\t\tconst directiveType = label.slice(\"eslint-\".length);\n\n\t\t\t\t\tdirectives.push(\n\t\t\t\t\t\tnew Directive({\n\t\t\t\t\t\t\ttype: directiveType,\n\t\t\t\t\t\t\tnode: comment,\n\t\t\t\t\t\t\tvalue,\n\t\t\t\t\t\t\tjustification,\n\t\t\t\t\t\t}),\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t// ignore any comments that don't begin with known labels\n\t\t\t}\n\t\t});\n\n\t\treturn {\n\t\t\tdirectives,\n\t\t\tproblems,\n\t\t};\n\t}\n}\n```\n\n### `TextSourceCodeBase`\n\nThe `TextSourceCodeBase` class is intended to be a base class that has several of the common members found in `SourceCode` objects already implemented. Those members are:\n\n- `lines` - an array of text lines that is created automatically when the constructor is called.\n- `getLoc(nodeOrToken)` - gets the location of a node or token. Works for nodes that have the ESLint-style `loc` property and nodes that have the Unist-style [`position` property](https://github.com/syntax-tree/unist?tab=readme-ov-file#position). If you're using an AST with a different location format, you'll still need to implement this method yourself.\n- `getLocFromIndex(index)` - Converts a source text index into a `{ line: number, column: number }` pair. (For this method to work, the root node should always cover the entire source code text, and the `getLoc()` method needs to be implemented correctly.)\n- `getIndexFromLoc(loc)` - Converts a `{ line: number, column: number }` pair into a source text index. (For this method to work, the root node should always cover the entire source code text, and the `getLoc()` method needs to be implemented correctly.)\n- `getRange(nodeOrToken)` - gets the range of a node or token within the source text. Works for nodes that have the ESLint-style `range` property and nodes that have the Unist-style [`position` property](https://github.com/syntax-tree/unist?tab=readme-ov-file#position). If you're using an AST with a different range format, you'll still need to implement this method yourself.\n- `getText(node, beforeCount, afterCount)` - gets the source text for the given node that has range information attached. Optionally, can return additional characters before and after the given node. As long as `getRange()` is properly implemented, this method will just work.\n- `getAncestors(node)` - returns the ancestry of the node. In order for this to work, you must implement the `getParent()` method yourself.\n\nHere's an example:\n\n```js\nimport { TextSourceCodeBase } from \"@eslint/plugin-kit\";\n\nexport class MySourceCode extends TextSourceCodeBase {\n\t#parents = new Map();\n\n\tconstructor({ ast, text }) {\n\t\tsuper({ ast, text });\n\t}\n\n\tgetParent(node) {\n\t\treturn this.#parents.get(node);\n\t}\n\n\ttraverse() {\n\t\tconst steps = [];\n\n\t\tfor (const { node, parent, phase } of iterator(this.ast)) {\n\t\t\t//save the parent information\n\t\t\tthis.#parent.set(node, parent);\n\n\t\t\tsteps.push(\n\t\t\t\tnew VisitNodeStep({\n\t\t\t\t\ttarget: node,\n\t\t\t\t\tphase: phase === \"enter\" ? 1 : 2,\n\t\t\t\t\targs: [node, parent],\n\t\t\t\t}),\n\t\t\t);\n\t\t}\n\n\t\treturn steps;\n\t}\n}\n```\n\nIn general, it's safe to collect the parent information during the `traverse()` method as `getParent()` and `getAncestor()` will only be called from rules once the AST has been traversed at least once.\n\n## License\n\nApache 2.0\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></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></p><h3>Silver Sponsors</h3>\n<p><a href=\"https://vite.dev/\"><img src=\"https://images.opencollective.com/vite/d472863/logo.png\" alt=\"Vite\" height=\"64\"></a> <a href=\"https://liftoff.io/\"><img src=\"https://images.opencollective.com/liftoff/2d6c3b6/logo.png\" alt=\"Liftoff\" 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://opensource.sap.com\"><img src=\"https://avatars.githubusercontent.com/u/2531208\" alt=\"SAP\" height=\"32\"></a> <a href=\"https://www.crawljobs.com/\"><img src=\"https://images.opencollective.com/crawljobs-poland/fa43a17/logo.png\" alt=\"CrawlJobs\" height=\"32\"></a> <a href=\"#\"><img src=\"https://images.opencollective.com/aeriusventilations-org/avatar.png\" alt=\"aeriusventilation's Org\" height=\"32\"></a> <a href=\"https://depot.dev\"><img src=\"https://images.opencollective.com/depot/39125a1/logo.png\" alt=\"Depot\" 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://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=\"TestMu AI Open Source Office (Formerly 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","_attachments":{},"homepage":"https://github.com/eslint/rewrite/tree/main/packages/plugin-kit#readme","bugs":{"url":"https://github.com/eslint/rewrite/issues"},"license":"Apache-2.0"}