{"versions":{"0.0.0":{"name":"@ota-meshi/ast-token-store","version":"0.0.0","keywords":["eslint","token-store"],"author":{"name":"Yosuke Ota"},"license":"MIT","_id":"@ota-meshi/ast-token-store@0.0.0","maintainers":[{"name":"anonymous","email":"otameshiyo23@gmail.com"}],"homepage":"https://github.com/ota-meshi/ast-token-store/","bugs":{"url":"https://github.com/ota-meshi/ast-token-store/issues"},"dist":{"shasum":"6f6e41ccde8911e44912f69adadc866851cafeef","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@ota-meshi/ast-token-store/-/ast-token-store-0.0.0.tgz","fileCount":5,"integrity":"sha512-zPo3qsBG5R0bTiRcMlOxgfCPBF3LHXqAY3bckVfnXrRS4uSoBZPWTr3VUpAsFtnOkQe7vu7ToqmH/u0TBM59sw==","signatures":[{"sig":"MEUCIQDEu659FJ8XkVKYM39Wo6zhFs9yrS3wJlsKp4b2yorQPQIgEoHSFnsbNQ0SdiMiKMtAzf4o9NAUB11GDuyhMtnUalM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":36003,"size":6308},"type":"module","engines":{"node":"^20.19.0 || ^22.13.0 || >=24"},"exports":{".":{"import":"./lib/index.mjs","default":"./lib/index.mjs"},"./package.json":"./package.json"},"funding":"https://github.com/sponsors/ota-meshi","gitHead":"09969e5b3abf9fd553171bbb4067f509e3c6a781","scripts":{"ts":"node --import=tsx","tsc":"tsc --project tsconfig.build.json","lint":"npm run lint:js && npm run lint:ts","test":"npm run mocha -- \"tests/src/**/*.ts\" --reporter=dot --timeout=60000","build":"npm run build:tsdown","mocha":"npm run ts -- ./node_modules/mocha/bin/mocha.js","lint:js":"eslint .","lint:ts":"npm run tsc","eslint-fix":"eslint . --fix","test:cover":"c8 --reporter=lcov --reporter=text npm run test:debug","test:debug":"node --experimental-strip-types --experimental-transform-types ./node_modules/mocha/bin/mocha.js \"tests/src/**/*.ts\" --reporter=dot --timeout=60000","build:tsdown":"tsdown","generate:version":"env-cmd -e version -- npm run update && npm run lint -- --fix","changeset:publish":"npm run build && changeset publish","changeset:version":"env-cmd -e version -- changeset version && npm run generate:version && git add --all"},"_npmUser":{"name":"anonymous","email":"otameshiyo23@gmail.com"},"repository":{"url":"git+https://github.com/ota-meshi/ast-token-store.git","type":"git"},"_npmVersion":"11.6.2","description":"A class library that provides an API similar to ESLint's token store","directories":{},"_nodeVersion":"24.13.0","dependencies":{"eslint-plugin-markdown-preferences":"^0.40.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","tsx":"^4.19.3","mocha":"^11.1.0","assert":"^2.1.0","eslint":"^9.34.0","espree":"^11.0.0","events":"^3.3.0","semver":"^7.7.1","tsdown":"^0.19.0","env-cmd":"^11.0.0","globals":"^17.0.0","prettier":"^3.5.3","vitepress":"^1.6.3","typescript":"~5.9.0","@types/node":"^24.0.0","@eslint/core":"^1.0.0","@types/mdast":"^4.0.4","@types/mocha":"^10.0.10","@types/eslint":"^9.6.1","@types/estree":"^1.0.6","@types/semver":"^7.5.8","eslint-typegen":"^2.0.0","@changesets/cli":"^2.28.1","eslint-plugin-n":"^17.16.2","@eslint/markdown":"^7.4.0","eslint-plugin-vue":"^10.0.0","eslint-plugin-yml":"^3.0.0","typescript-eslint":"^8.26.1","vue-eslint-parser":"^10.0.0","@types/json-schema":"^7.0.15","toml-eslint-parser":"^1.0.3","@types/eslint-scope":"^8.0.0","@types/eslint-utils":"^3.0.5","eslint-compat-utils":"^0.6.4","eslint-plugin-jsdoc":"^55.0.0","eslint-plugin-jsonc":"^2.19.1","eslint-plugin-regexp":"^3.0.0","eslint-config-prettier":"^10.1.1","eslint-plugin-markdown":"^5.1.0","eslint-plugin-prettier":"^5.2.3","@ota-meshi/eslint-plugin":"^0.19.0","@shikijs/vitepress-twoslash":"^3.0.0","eslint-plugin-eslint-plugin":"^7.0.0","eslint-snapshot-rule-tester":"^0.1.0","@changesets/changelog-github":"^0.5.1","eslint-plugin-markdown-links":"^0.7.0","eslint-plugin-eslint-comments":"^3.2.0","eslint-plugin-node-dependencies":"^1.0.0","eslint-plugin-json-schema-validator":"^6.0.0"},"peerDependencies":{"eslint":">=9.0.0","@eslint/markdown":"^7.4.0"},"_npmOperationalInternal":{"tmp":"tmp/ast-token-store_0.0.0_1771320760753_0.015490146624522305","host":"s3://npm-registry-packages-npm-production"},"_cnpmcore_publish_time":"2026-02-17T09:32:40.908Z","publish_time":1771320760908,"_source_registry_name":"default","contributors":[]},"0.1.0":{"name":"@ota-meshi/ast-token-store","version":"0.1.0","description":"A class library that provides an API similar to ESLint's token store","type":"module","exports":{".":{"import":"./lib/index.mjs","default":"./lib/index.mjs"},"./package.json":"./package.json"},"engines":{"node":"^20.19.0 || ^22.13.0 || >=24"},"scripts":{"build":"npm run build:tsdown","build:tsdown":"tsdown","lint":"npm run lint:js && npm run lint:ts","lint:js":"eslint .","lint:ts":"npm run tsc","tsc":"tsc","eslint-fix":"eslint . --fix","test":"npm run mocha -- \"tests/src/**/*.ts\" --reporter=dot --timeout=60000","test:debug":"node --experimental-strip-types --experimental-transform-types ./node_modules/mocha/bin/mocha.js \"tests/src/**/*.ts\" --reporter=dot --timeout=60000","test:cover":"c8 --reporter=lcov --reporter=text npm run test:debug","ts":"node --import=tsx","mocha":"npm run ts -- ./node_modules/mocha/bin/mocha.js","update":"node --experimental-strip-types --experimental-transform-types ./tools/update.ts","generate:version":"npm run update && npm run lint -- --fix","changeset:version":"changeset version && npm run generate:version && git add --all","changeset:publish":"npm run build && changeset publish"},"repository":{"type":"git","url":"git+https://github.com/ota-meshi/ast-token-store.git"},"keywords":["eslint","token-store"],"author":{"name":"Yosuke Ota"},"funding":"https://github.com/sponsors/ota-meshi","license":"MIT","bugs":{"url":"https://github.com/ota-meshi/ast-token-store/issues"},"homepage":"https://github.com/ota-meshi/ast-token-store/","peerDependencies":{"@eslint/markdown":"^7.4.0","eslint":">=9.0.0"},"dependencies":{"eslint-plugin-markdown-preferences":"^0.40.2"},"devDependencies":{"@changesets/changelog-github":"^0.5.1","@changesets/cli":"^2.28.1","@eslint/core":"^1.0.0","@eslint/markdown":"^7.4.0","@ota-meshi/eslint-plugin":"^0.19.0","@shikijs/vitepress-twoslash":"^3.0.0","@types/eslint":"^9.6.1","@types/eslint-scope":"^8.0.0","@types/eslint-utils":"^3.0.5","@types/estree":"^1.0.6","@types/json-schema":"^7.0.15","@types/mdast":"^4.0.4","@types/mocha":"^10.0.10","@types/node":"^24.0.0","@types/semver":"^7.5.8","assert":"^2.1.0","c8":"^10.1.3","eslint":"^9.34.0","eslint-compat-utils":"^0.6.4","eslint-config-prettier":"^10.1.1","eslint-plugin-eslint-comments":"^3.2.0","eslint-plugin-eslint-plugin":"^7.0.0","eslint-plugin-jsdoc":"^55.0.0","eslint-plugin-json-schema-validator":"^6.0.0","eslint-plugin-jsonc":"^2.19.1","eslint-plugin-markdown":"^5.1.0","eslint-plugin-markdown-links":"^0.7.0","eslint-plugin-n":"^17.16.2","eslint-plugin-node-dependencies":"^1.0.0","eslint-plugin-prettier":"^5.2.3","eslint-plugin-regexp":"^3.0.0","eslint-plugin-vue":"^10.0.0","eslint-plugin-yml":"^3.0.0","eslint-snapshot-rule-tester":"^0.1.0","eslint-typegen":"^2.0.0","espree":"^11.0.0","events":"^3.3.0","globals":"^17.0.0","mocha":"^11.1.0","prettier":"^3.5.3","semver":"^7.7.1","toml-eslint-parser":"^1.0.3","tsdown":"^0.19.0","tsx":"^4.19.3","typescript":"~5.9.0","typescript-eslint":"^8.26.1","vitepress":"^1.6.3","vue-eslint-parser":"^10.0.0"},"publishConfig":{"access":"public"},"gitHead":"fb0821239a87ae949650a851bc63c7e5707ec38b","_id":"@ota-meshi/ast-token-store@0.1.0","_nodeVersion":"24.13.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-u4IbFIE/4NWf6rAdQNa5I2RHx5p23uk9cHq17JoPAPkSvC5SOl3FQztd5w3yXGl0oJ2WAksQfIXfmFuSZVr0kA==","shasum":"c376a93badc2f7e8d1fd7f2048d189b77681a9ff","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@ota-meshi/ast-token-store/-/ast-token-store-0.1.0.tgz","fileCount":5,"unpackedSize":36001,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIGZC//WGFBW5TrdZO0aPqLd6T+FxPwpOiW0yQbvFZoPkAiAHUQgaLX08rY9C6wZFISBtD4CHeOPkBclCNgdblAywGQ=="}],"size":6287},"_npmUser":{"name":"anonymous","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2b6b53fc-1239-4b10-b1d9-0e1a3fc1d13d"}},"directories":{},"maintainers":[{"name":"anonymous","email":"otameshiyo23@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ast-token-store_0.1.0_1771322162438_0.5937841535180592"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2026-02-17T09:56:02.594Z","publish_time":1771322162594,"_source_registry_name":"default","contributors":[]},"0.2.0":{"name":"@ota-meshi/ast-token-store","version":"0.2.0","description":"A class library that provides an API similar to ESLint's token store","type":"module","exports":{".":{"import":"./lib/index.mjs","default":"./lib/index.mjs"},"./package.json":"./package.json"},"engines":{"node":"^20.19.0 || ^22.13.0 || >=24"},"scripts":{"build":"npm run build:tsdown","build:tsdown":"tsdown","lint":"npm run lint:js && npm run lint:ts","lint:js":"eslint .","lint:ts":"npm run tsc","tsc":"tsc","eslint-fix":"eslint . --fix","test":"npm run mocha -- \"tests/src/**/*.ts\" --reporter=dot --timeout=60000","test:debug":"node --experimental-strip-types --experimental-transform-types ./node_modules/mocha/bin/mocha.js \"tests/src/**/*.ts\" --reporter=dot --timeout=60000","test:cover":"c8 --reporter=lcov --reporter=text npm run test:debug","ts":"node --import=tsx","mocha":"npm run ts -- ./node_modules/mocha/bin/mocha.js","update":"node --experimental-strip-types --experimental-transform-types ./tools/update.ts","generate:version":"npm run update && npm run lint -- --fix","changeset:version":"changeset version && npm run generate:version && git add --all","changeset:publish":"npm run build && changeset publish"},"repository":{"type":"git","url":"git+https://github.com/ota-meshi/ast-token-store.git"},"keywords":["eslint","token-store"],"author":{"name":"Yosuke Ota"},"funding":"https://github.com/sponsors/ota-meshi","license":"MIT","bugs":{"url":"https://github.com/ota-meshi/ast-token-store/issues"},"homepage":"https://github.com/ota-meshi/ast-token-store/","peerDependencies":{"@eslint/markdown":"^7.4.0","eslint":">=9.0.0"},"dependencies":{"eslint-plugin-markdown-preferences":"^0.40.2"},"devDependencies":{"@changesets/changelog-github":"^0.5.1","@changesets/cli":"^2.28.1","@eslint/core":"^1.0.0","@eslint/markdown":"^7.4.0","@ota-meshi/eslint-plugin":"^0.19.0","@shikijs/vitepress-twoslash":"^3.0.0","@types/eslint":"^9.6.1","@types/eslint-scope":"^8.0.0","@types/eslint-utils":"^3.0.5","@types/estree":"^1.0.6","@types/json-schema":"^7.0.15","@types/mdast":"^4.0.4","@types/mocha":"^10.0.10","@types/node":"^24.0.0","@types/semver":"^7.5.8","assert":"^2.1.0","c8":"^10.1.3","eslint":"^9.34.0","eslint-compat-utils":"^0.6.4","eslint-config-prettier":"^10.1.1","eslint-plugin-eslint-comments":"^3.2.0","eslint-plugin-eslint-plugin":"^7.0.0","eslint-plugin-jsdoc":"^55.0.0","eslint-plugin-json-schema-validator":"^6.0.0","eslint-plugin-jsonc":"^2.19.1","eslint-plugin-markdown":"^5.1.0","eslint-plugin-markdown-links":"^0.7.0","eslint-plugin-n":"^17.16.2","eslint-plugin-node-dependencies":"^1.0.0","eslint-plugin-prettier":"^5.2.3","eslint-plugin-regexp":"^3.0.0","eslint-plugin-vue":"^10.0.0","eslint-plugin-yml":"^3.0.0","eslint-snapshot-rule-tester":"^0.1.0","eslint-typegen":"^2.0.0","espree":"^11.0.0","events":"^3.3.0","globals":"^17.0.0","mocha":"^11.1.0","prettier":"^3.5.3","semver":"^7.7.1","toml-eslint-parser":"^1.0.3","tsdown":"^0.19.0","tsx":"^4.19.3","typescript":"~5.9.0","typescript-eslint":"^8.26.1","vitepress":"^1.6.3","vue-eslint-parser":"^10.0.0"},"publishConfig":{"access":"public"},"gitHead":"de1287bda32c905672e1fd8c2f37379ae86b2140","_id":"@ota-meshi/ast-token-store@0.2.0","_nodeVersion":"24.13.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-VQNg9OyqbvjMb+/EoFl1t5mp5qU53AHd6VLIKvj0nfnBiLnom2OSm+heyXD3++GePoVNf1D/KKU8fOIHi4y0xw==","shasum":"fa7fb0e19e39cdff2af71f495181e9bb3215f9e1","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@ota-meshi/ast-token-store/-/ast-token-store-0.2.0.tgz","fileCount":5,"unpackedSize":38418,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ota-meshi%2fast-token-store@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDfDpKh3HYBnnNVF1JTvFdCl4gEp7p5HF6BjqzldHbiVAIhALgKS4+pZEwnc4HDPb62UpOkN4nwBRIb3JXwZ46jocX+"}],"size":6538},"_npmUser":{"name":"anonymous","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2b6b53fc-1239-4b10-b1d9-0e1a3fc1d13d"}},"directories":{},"maintainers":[{"name":"anonymous","email":"otameshiyo23@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ast-token-store_0.2.0_1771328525094_0.06533487460277732"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2026-02-17T11:42:05.222Z","publish_time":1771328525222,"_source_registry_name":"default","contributors":[]},"0.2.1":{"name":"@ota-meshi/ast-token-store","version":"0.2.1","description":"A class library that provides an API similar to ESLint's token store","type":"module","exports":{".":{"import":"./lib/index.mjs","default":"./lib/index.mjs"},"./package.json":"./package.json"},"engines":{"node":"^20.19.0 || ^22.13.0 || >=24"},"scripts":{"build":"npm run build:tsdown","build:tsdown":"tsdown","lint":"npm run lint:js && npm run lint:ts","lint:js":"eslint .","lint:ts":"npm run tsc","tsc":"tsc","eslint-fix":"eslint . --fix","test":"npm run mocha -- \"tests/src/**/*.ts\" --reporter=dot --timeout=60000","test:debug":"node --experimental-strip-types --experimental-transform-types ./node_modules/mocha/bin/mocha.js \"tests/src/**/*.ts\" --reporter=dot --timeout=60000","test:cover":"c8 --reporter=lcov --reporter=text npm run test:debug","ts":"node --import=tsx","mocha":"npm run ts -- ./node_modules/mocha/bin/mocha.js","update":"node --experimental-strip-types --experimental-transform-types ./tools/update.ts","generate:version":"npm run update && npm run lint -- --fix","changeset:version":"changeset version && npm run generate:version && git add --all","changeset:publish":"npm run build && changeset publish"},"repository":{"type":"git","url":"git+https://github.com/ota-meshi/ast-token-store.git"},"keywords":["eslint","token-store"],"author":{"name":"Yosuke Ota"},"funding":"https://github.com/sponsors/ota-meshi","license":"MIT","bugs":{"url":"https://github.com/ota-meshi/ast-token-store/issues"},"homepage":"https://github.com/ota-meshi/ast-token-store/","peerDependencies":{"@eslint/markdown":"^7.4.0","eslint":">=9.0.0"},"devDependencies":{"@changesets/changelog-github":"^0.5.1","@changesets/cli":"^2.28.1","@eslint/core":"^1.0.0","@eslint/markdown":"^7.4.0","@ota-meshi/eslint-plugin":"^0.19.0","@shikijs/vitepress-twoslash":"^3.0.0","@types/eslint":"^9.6.1","@types/eslint-scope":"^8.0.0","@types/eslint-utils":"^3.0.5","@types/estree":"^1.0.6","@types/json-schema":"^7.0.15","@types/mdast":"^4.0.4","@types/mocha":"^10.0.10","@types/node":"^24.0.0","@types/semver":"^7.5.8","assert":"^2.1.0","c8":"^10.1.3","eslint":"^9.34.0","eslint-compat-utils":"^0.6.4","eslint-config-prettier":"^10.1.1","eslint-plugin-eslint-comments":"^3.2.0","eslint-plugin-eslint-plugin":"^7.0.0","eslint-plugin-jsdoc":"^55.0.0","eslint-plugin-json-schema-validator":"^6.0.0","eslint-plugin-jsonc":"^2.19.1","eslint-plugin-markdown":"^5.1.0","eslint-plugin-markdown-links":"^0.7.0","eslint-plugin-markdown-preferences":"^0.40.2","eslint-plugin-n":"^17.16.2","eslint-plugin-node-dependencies":"^1.0.0","eslint-plugin-prettier":"^5.2.3","eslint-plugin-regexp":"^3.0.0","eslint-plugin-vue":"^10.0.0","eslint-plugin-yml":"^3.0.0","eslint-snapshot-rule-tester":"^0.1.0","eslint-typegen":"^2.0.0","espree":"^11.0.0","events":"^3.3.0","globals":"^17.0.0","mocha":"^11.1.0","prettier":"^3.5.3","semver":"^7.7.1","toml-eslint-parser":"^1.0.3","tsdown":"^0.19.0","tsx":"^4.19.3","typescript":"~5.9.0","typescript-eslint":"^8.26.1","vitepress":"^1.6.3","vue-eslint-parser":"^10.0.0"},"publishConfig":{"access":"public"},"gitHead":"1eec1ab6d6edfe1b344a89bed563c61a83336c38","_id":"@ota-meshi/ast-token-store@0.2.1","_nodeVersion":"24.13.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-+8oB1wcOSWJCR6vAm2ioSLas7SoPwp+8tZ1Tcy8DSVEHMip6jxxlGu6EsRzJLAYVCyzKQ38B5pAqSbon1l1rmA==","shasum":"cc4a45518fd3029f286f4f90f4a5a3920cab0ec5","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@ota-meshi/ast-token-store/-/ast-token-store-0.2.1.tgz","fileCount":5,"unpackedSize":38394,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ota-meshi%2fast-token-store@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDphf4m3wlPXQqqhbwXN29VZ5oF/w1cBGTLdOOQ/HM9oQIgP9xc2N9b1bE6vVuwBr7+VSgNrXZl5iUg3F/932GfseU="}],"size":6529},"_npmUser":{"name":"anonymous","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2b6b53fc-1239-4b10-b1d9-0e1a3fc1d13d"}},"directories":{},"maintainers":[{"name":"anonymous","email":"otameshiyo23@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ast-token-store_0.2.1_1771398495766_0.6633889962918769"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2026-02-18T07:08:15.901Z","publish_time":1771398495901,"_source_registry_name":"default","contributors":[]},"0.2.2":{"name":"@ota-meshi/ast-token-store","version":"0.2.2","description":"A class library that provides an API similar to ESLint's token store","type":"module","exports":{".":{"import":"./lib/index.mjs","default":"./lib/index.mjs"},"./package.json":"./package.json"},"engines":{"node":"^20.19.0 || ^22.13.0 || >=24"},"scripts":{"build":"npm run build:tsdown","build:tsdown":"tsdown","lint":"npm run lint:js && npm run lint:ts","lint:js":"eslint .","lint:ts":"npm run tsc","tsc":"tsc","eslint-fix":"eslint . --fix","test":"npm run mocha -- \"tests/src/**/*.ts\" --reporter=dot --timeout=60000","test:debug":"node --experimental-strip-types --experimental-transform-types ./node_modules/mocha/bin/mocha.js \"tests/src/**/*.ts\" --reporter=dot --timeout=60000","test:cover":"c8 --reporter=lcov --reporter=text npm run test:debug","ts":"node --import=tsx","mocha":"npm run ts -- ./node_modules/mocha/bin/mocha.js","update":"node --experimental-strip-types --experimental-transform-types ./tools/update.ts","generate:version":"npm run update && npm run lint -- --fix","changeset:version":"changeset version && npm run generate:version && git add --all","changeset:publish":"npm run build && changeset publish"},"repository":{"type":"git","url":"git+https://github.com/ota-meshi/ast-token-store.git"},"keywords":["eslint","token-store"],"author":{"name":"Yosuke Ota"},"funding":"https://github.com/sponsors/ota-meshi","license":"MIT","bugs":{"url":"https://github.com/ota-meshi/ast-token-store/issues"},"homepage":"https://github.com/ota-meshi/ast-token-store/","peerDependencies":{"eslint":">=9.0.0"},"devDependencies":{"@changesets/changelog-github":"^0.5.1","@changesets/cli":"^2.28.1","@eslint/core":"^1.0.0","@eslint/markdown":"^7.4.0","@ota-meshi/eslint-plugin":"^0.19.0","@shikijs/vitepress-twoslash":"^3.0.0","@types/eslint":"^9.6.1","@types/eslint-scope":"^8.0.0","@types/eslint-utils":"^3.0.5","@types/estree":"^1.0.6","@types/json-schema":"^7.0.15","@types/mdast":"^4.0.4","@types/mocha":"^10.0.10","@types/node":"^24.0.0","@types/semver":"^7.5.8","assert":"^2.1.0","c8":"^10.1.3","eslint":"^9.34.0","eslint-compat-utils":"^0.6.4","eslint-config-prettier":"^10.1.1","eslint-plugin-eslint-comments":"^3.2.0","eslint-plugin-eslint-plugin":"^7.0.0","eslint-plugin-jsdoc":"^55.0.0","eslint-plugin-json-schema-validator":"^6.0.0","eslint-plugin-jsonc":"^2.19.1","eslint-plugin-markdown":"^5.1.0","eslint-plugin-markdown-links":"^0.7.0","eslint-plugin-markdown-preferences":"^0.40.2","eslint-plugin-n":"^17.16.2","eslint-plugin-node-dependencies":"^1.0.0","eslint-plugin-prettier":"^5.2.3","eslint-plugin-regexp":"^3.0.0","eslint-plugin-vue":"^10.0.0","eslint-plugin-yml":"^3.0.0","eslint-snapshot-rule-tester":"^0.1.0","eslint-typegen":"^2.0.0","espree":"^11.0.0","events":"^3.3.0","globals":"^17.0.0","mocha":"^11.1.0","prettier":"^3.5.3","semver":"^7.7.1","toml-eslint-parser":"^1.0.3","tsdown":"^0.19.0","tsx":"^4.19.3","typescript":"~5.9.0","typescript-eslint":"^8.26.1","vitepress":"^1.6.3","vue-eslint-parser":"^10.0.0"},"publishConfig":{"access":"public"},"gitHead":"af200f734f7b6c4d1c387f50ea9458d374a8374e","_id":"@ota-meshi/ast-token-store@0.2.2","_nodeVersion":"24.13.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-IA8BYEFAJU/NNJu0aa3q0Sj5Q69KqhydguXhM/bn8gVRSWaYUMtYjZ1Q0rk6+iHa0ch8UpPXFJQ0I6vmsAy+LA==","shasum":"a6831dfdd7bbf4b7e561a5dca70fc620ef828148","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@ota-meshi/ast-token-store/-/ast-token-store-0.2.2.tgz","fileCount":5,"unpackedSize":38360,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ota-meshi%2fast-token-store@0.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIEPwIpm6zgK6TgC+YO919mEIEomNruu3x1i7gQ0Wk6DbAiEAsk+9eCxTe3QBO2Qe/eiSUavo/JdZIBoc2KZCSg5u0kE="}],"size":6528},"_npmUser":{"name":"anonymous","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2b6b53fc-1239-4b10-b1d9-0e1a3fc1d13d"}},"directories":{},"maintainers":[{"name":"anonymous","email":"otameshiyo23@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ast-token-store_0.2.2_1771797093288_0.19152772337666435"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2026-02-22T21:51:33.448Z","publish_time":1771797093448,"_source_registry_name":"default","contributors":[]},"0.2.3":{"name":"@ota-meshi/ast-token-store","version":"0.2.3","description":"A class library that provides an API similar to ESLint's token store","type":"module","exports":{".":{"import":"./lib/index.mjs","default":"./lib/index.mjs"},"./package.json":"./package.json"},"engines":{"node":"^20.19.0 || ^22.13.0 || >=24"},"scripts":{"build":"npm run build:tsdown","build:tsdown":"tsdown","lint":"npm run lint:js && npm run lint:ts","lint:js":"eslint .","lint:ts":"npm run tsc","tsc":"tsc","eslint-fix":"eslint . --fix","test":"npm run mocha -- \"tests/src/**/*.ts\" --reporter=dot --timeout=60000","test:debug":"node --experimental-strip-types --experimental-transform-types ./node_modules/mocha/bin/mocha.js \"tests/src/**/*.ts\" --reporter=dot --timeout=60000","test:cover":"c8 --reporter=lcov --reporter=text npm run test:debug","ts":"node --import=tsx","mocha":"npm run ts -- ./node_modules/mocha/bin/mocha.js","update":"node --experimental-strip-types --experimental-transform-types ./tools/update.ts","generate:version":"npm run update && npm run lint -- --fix","changeset:version":"changeset version && npm i && npm run generate:version && git add --all","changeset:publish":"npm run build && changeset publish"},"repository":{"type":"git","url":"git+https://github.com/ota-meshi/ast-token-store.git"},"keywords":["eslint","token-store"],"author":{"name":"Yosuke Ota"},"funding":"https://github.com/sponsors/ota-meshi","license":"MIT","bugs":{"url":"https://github.com/ota-meshi/ast-token-store/issues"},"homepage":"https://github.com/ota-meshi/ast-token-store/","devDependencies":{"@changesets/changelog-github":"^0.5.1","@changesets/cli":"^2.28.1","@eslint/core":"^1.0.0","@eslint/markdown":"^7.4.0","@ota-meshi/eslint-plugin":"^0.20.0","@shikijs/vitepress-twoslash":"^3.0.0","@types/eslint":"^9.6.1","@types/eslint-scope":"^8.0.0","@types/eslint-utils":"^3.0.5","@types/estree":"^1.0.6","@types/json-schema":"^7.0.15","@types/mdast":"^4.0.4","@types/mocha":"^10.0.10","@types/node":"^24.0.0","@types/semver":"^7.5.8","assert":"^2.1.0","c8":"^10.1.3","eslint":"^10.0.1","eslint-compat-utils":"^0.6.4","eslint-config-prettier":"^10.1.1","eslint-plugin-eslint-comments":"^3.2.0","eslint-plugin-eslint-plugin":"^7.0.0","eslint-plugin-jsdoc":"^62.7.0","eslint-plugin-json-schema-validator":"^6.0.0","eslint-plugin-jsonc":"^2.19.1","eslint-plugin-markdown":"^5.1.0","eslint-plugin-markdown-links":"^0.7.0","eslint-plugin-markdown-preferences":"^0.40.2","eslint-plugin-n":"^17.16.2","eslint-plugin-node-dependencies":"^1.0.0","eslint-plugin-prettier":"^5.2.3","eslint-plugin-regexp":"^3.0.0","eslint-plugin-vue":"^10.0.0","eslint-plugin-yml":"^3.0.0","eslint-snapshot-rule-tester":"^0.1.0","eslint-typegen":"^2.0.0","espree":"^11.0.0","events":"^3.3.0","globals":"^17.0.0","mocha":"^11.1.0","prettier":"^3.5.3","semver":"^7.7.1","toml-eslint-parser":"^1.0.3","tsdown":"^0.19.0","tsx":"^4.19.3","typescript":"~5.9.0","typescript-eslint":"^8.56.0","vitepress":"^1.6.3","vue-eslint-parser":"^10.0.0"},"publishConfig":{"access":"public"},"gitHead":"ff582d6dc23ba2273603b2ed549955ad6f531970","_id":"@ota-meshi/ast-token-store@0.2.3","_nodeVersion":"24.13.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-Jgp8rBprSMIDY0IuokbESFozd5SSa/LZsQ9/xiNooDdiy+WK2LlA51f+GjgBKq8CE4YpfK5kdBjNtbwlThApoQ==","shasum":"e8a360b50e3a7f5bc60bea30031651a06cb0a96f","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@ota-meshi/ast-token-store/-/ast-token-store-0.2.3.tgz","fileCount":5,"unpackedSize":38316,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ota-meshi%2fast-token-store@0.2.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIBQqIYmffFljBUIBYztf/BQb6MsnW2TDAFGIoe+OHeRNAiEAoPt5S1NLJcRXWUUHN+G/Q7RVhbGlfIO4NQkNP5PO+Oo="}],"size":6512},"_npmUser":{"name":"anonymous","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2b6b53fc-1239-4b10-b1d9-0e1a3fc1d13d"}},"directories":{},"maintainers":[{"name":"anonymous","email":"otameshiyo23@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ast-token-store_0.2.3_1771802972647_0.34375484613024887"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2026-02-22T23:29:32.805Z","publish_time":1771802972805,"_source_registry_name":"default","contributors":[]},"0.3.0":{"name":"@ota-meshi/ast-token-store","version":"0.3.0","description":"A class library that provides an API similar to ESLint's token store","type":"module","exports":{".":{"import":"./lib/index.mjs","default":"./lib/index.mjs"},"./package.json":"./package.json"},"engines":{"node":"^20.19.0 || ^22.13.0 || >=24"},"scripts":{"build":"npm run build:tsdown","build:tsdown":"tsdown","lint":"npm run lint:js && npm run lint:ts","lint:js":"eslint .","lint:ts":"npm run tsc","tsc":"tsc","eslint-fix":"eslint . --fix","test":"npm run mocha -- \"tests/src/**/*.ts\" --reporter=dot --timeout=60000","test:debug":"node --experimental-strip-types --experimental-transform-types ./node_modules/mocha/bin/mocha.js \"tests/src/**/*.ts\" --reporter=dot --timeout=60000","test:cover":"c8 --reporter=lcov --reporter=text npm run test:debug","ts":"node --import=tsx","mocha":"npm run ts -- ./node_modules/mocha/bin/mocha.js","update":"node --experimental-strip-types --experimental-transform-types ./tools/update.ts","generate:version":"npm run update && npm run lint -- --fix","changeset:version":"changeset version && npm i && npm run generate:version && git add --all","changeset:publish":"npm run build && changeset publish"},"repository":{"type":"git","url":"git+https://github.com/ota-meshi/ast-token-store.git"},"keywords":["eslint","token-store"],"author":{"name":"Yosuke Ota"},"funding":"https://github.com/sponsors/ota-meshi","license":"MIT","bugs":{"url":"https://github.com/ota-meshi/ast-token-store/issues"},"homepage":"https://github.com/ota-meshi/ast-token-store/","devDependencies":{"@changesets/changelog-github":"^0.5.1","@changesets/cli":"^2.28.1","@eslint/core":"^1.0.0","@eslint/markdown":"^7.4.0","@ota-meshi/eslint-plugin":"^0.20.0","@shikijs/vitepress-twoslash":"^3.0.0","@types/eslint":"^9.6.1","@types/eslint-scope":"^8.0.0","@types/eslint-utils":"^3.0.5","@types/estree":"^1.0.6","@types/json-schema":"^7.0.15","@types/mdast":"^4.0.4","@types/mocha":"^10.0.10","@types/node":"^24.0.0","@types/semver":"^7.5.8","assert":"^2.1.0","c8":"^10.1.3","eslint":"^10.0.1","eslint-compat-utils":"^0.6.4","eslint-config-prettier":"^10.1.1","eslint-plugin-eslint-comments":"^3.2.0","eslint-plugin-eslint-plugin":"^7.0.0","eslint-plugin-jsdoc":"^62.7.0","eslint-plugin-json-schema-validator":"^6.0.0","eslint-plugin-jsonc":"^2.19.1","eslint-plugin-markdown":"^5.1.0","eslint-plugin-markdown-links":"^0.7.0","eslint-plugin-markdown-preferences":"^0.40.2","eslint-plugin-n":"^17.16.2","eslint-plugin-node-dependencies":"^1.0.0","eslint-plugin-prettier":"^5.2.3","eslint-plugin-regexp":"^3.0.0","eslint-plugin-vue":"^10.0.0","eslint-plugin-yml":"^3.0.0","eslint-snapshot-rule-tester":"^0.1.0","eslint-typegen":"^2.0.0","espree":"^11.0.0","events":"^3.3.0","globals":"^17.0.0","mocha":"^11.1.0","prettier":"^3.5.3","semver":"^7.7.1","toml-eslint-parser":"^1.0.3","tsdown":"^0.19.0","tsx":"^4.19.3","typescript":"~5.9.0","typescript-eslint":"^8.56.0","vitepress":"^1.6.3","vue-eslint-parser":"^10.0.0"},"publishConfig":{"access":"public"},"gitHead":"64004ffe2e0dc3626ff2da22e81e7b22b2495bbc","_id":"@ota-meshi/ast-token-store@0.3.0","_nodeVersion":"24.13.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-XRO0zi2NIUKq2lUk3T1ecFSld1fMWRKE6naRFGkgkdeosx7IslyUKNv5Dcb5PJTja9tHJoFu0v/7yEpAkrkrTg==","shasum":"c4112dabb53c8bd0c298d94d858849c30f1d3283","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@ota-meshi/ast-token-store/-/ast-token-store-0.3.0.tgz","fileCount":5,"unpackedSize":43048,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ota-meshi%2fast-token-store@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIB1/GXH6EN/2KrjO65BwfyjeXACCqNZTh5GlEyEEIPXsAiEA+btiXc+T0U1sGVPfXtXehhHePTywVUUrlPQ4EoGi5+4="}],"size":6699},"_npmUser":{"name":"anonymous","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2b6b53fc-1239-4b10-b1d9-0e1a3fc1d13d"}},"directories":{},"maintainers":[{"name":"anonymous","email":"otameshiyo23@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ast-token-store_0.3.0_1771804221409_0.032407671919645775"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2026-02-22T23:50:21.554Z","publish_time":1771804221554,"_source_registry_name":"default","contributors":[]}},"dist-tags":{"latest":"0.3.0"},"name":"@ota-meshi/ast-token-store","time":{"created":"2026-02-17T09:56:14.137Z","modified":"2026-02-22T23:50:36.156Z","0.0.0":"2026-02-17T09:32:40.908Z","0.1.0":"2026-02-17T09:56:02.594Z","0.2.0":"2026-02-17T11:42:05.222Z","0.2.1":"2026-02-18T07:08:15.901Z","0.2.2":"2026-02-22T21:51:33.448Z","0.2.3":"2026-02-22T23:29:32.805Z","0.3.0":"2026-02-22T23:50:21.554Z"},"readme":"# @ota-meshi/ast-token-store\n\n[![NPM version](https://img.shields.io/npm/v/@ota-meshi/ast-token-store.svg)](https://www.npmjs.com/package/@ota-meshi/ast-token-store)\n[![NPM license](https://img.shields.io/npm/l/@ota-meshi/ast-token-store.svg)](https://github.com/ota-meshi/ast-token-store/blob/main/LICENSE)\n\nA class library that provides an API similar to [ESLint's SourceCode#getFirstToken and related methods](https://eslint.org/docs/latest/extend/custom-rules#accessing-the-source-code) for any AST.\n\n## Installation\n\n```bash\nnpm install @ota-meshi/ast-token-store\n```\n\n## Requirements\n\n- Node.js `^20.19.0 || ^22.13.0 || >=24`\n\n## Usage\n\n### Basic Example\n\nThe `TokenStore` class provides a way to query tokens from any AST that uses `range: [number, number]` to represent source locations.\n\n```ts\nimport { TokenStore } from \"@ota-meshi/ast-token-store\";\n\n// Define your TokenStore subclass (or use it directly)\nconst store = new TokenStore({\n  // Provide all tokens and comments, sorted or unsorted\n  tokens: [...ast.tokens, ...ast.comments],\n  // A type guard to distinguish comments from regular tokens\n  isComment: (token): token is Comment => token.type === \"Comment\",\n});\n```\n\n### Constructor\n\n```ts\nnew TokenStore<Node, Token, Comment>({\n  tokens: (Token | Comment)[],\n  isComment: (token: Token | Comment) => token is Comment,\n})\n```\n\n- **`tokens`** — An array of all tokens and comments.\n- **`isComment`** — A type guard function that returns `true` if a given token is a comment.\n\nThe class has three generic type parameters:\n\n| Parameter | Description                                             |\n| --------- | ------------------------------------------------------- |\n| `Node`    | The AST node type (must have `range: [number, number]`) |\n| `Token`   | The token type (must have `range: [number, number]`)    |\n| `Comment` | The comment type (must have `range: [number, number]`)  |\n\n### Methods\n\nAll methods accept options for filtering, skipping, counting, and including comments.\n\n#### Single Token Methods\n\n| Method                                        | Description                                            |\n| --------------------------------------------- | ------------------------------------------------------ |\n| `getFirstToken(node, options?)`               | Gets the first token of the given node                 |\n| `getLastToken(node, options?)`                | Gets the last token of the given node                  |\n| `getTokenAfter(node, options?)`               | Gets the token that follows the given node             |\n| `getTokenBefore(node, options?)`              | Gets the token that precedes the given node            |\n| `getFirstTokenBetween(left, right, options?)` | Gets the first token between two non-overlapping nodes |\n| `getLastTokenBetween(left, right, options?)`  | Gets the last token between two non-overlapping nodes  |\n\n#### Multiple Token Methods\n\n| Method                                         | Description                                         |\n| ---------------------------------------------- | --------------------------------------------------- |\n| `getFirstTokens(node, options?)`               | Gets the first `count` tokens of the given node     |\n| `getLastTokens(node, options?)`                | Gets the last `count` tokens of the given node      |\n| `getTokensAfter(node, options?)`               | Gets the `count` tokens that follow the given node  |\n| `getTokensBefore(node, options?)`              | Gets the `count` tokens that precede the given node |\n| `getFirstTokensBetween(left, right, options?)` | Gets the first `count` tokens between two nodes     |\n| `getLastTokensBetween(left, right, options?)`  | Gets the last `count` tokens between two nodes      |\n| `getTokens(node, options?)`                    | Gets all tokens within the given node               |\n| `getTokensBetween(left, right, options?)`      | Gets all tokens between two nodes                   |\n| `getAllTokens()`                               | Gets all tokens including comments                  |\n\n#### Comment Methods\n\n| Method                              | Description                                                  |\n| ----------------------------------- | ------------------------------------------------------------ |\n| `getAllComments()`                  | Gets all comment tokens                                      |\n| `getCommentsInside(nodeOrToken)`    | Gets all comment tokens inside the given node/token          |\n| `getCommentsBefore(nodeOrToken)`    | Gets all comment tokens directly before the given node/token |\n| `getCommentsAfter(nodeOrToken)`     | Gets all comment tokens directly after the given node/token  |\n| `commentsExistBetween(left, right)` | Checks if any comments exist between two nodes               |\n\n#### Spacing Methods\n\n| Method                        | Description                                                     |\n| ----------------------------- | --------------------------------------------------------------- |\n| `isSpaceBetween(left, right)` | Checks if there is whitespace between two non-overlapping nodes |\n\n### Options\n\nSingle token methods (`getFirstToken`, `getLastToken`, etc.) accept skip options:\n\n```ts\n// Skip N tokens\nstore.getFirstToken(node, { skip: 1 });\n// Shorthand: pass a number directly\nstore.getFirstToken(node, 1);\n\n// Filter tokens\nstore.getFirstToken(node, {\n  filter: (token) => token.type === \"Punctuator\",\n});\n\n// Include comments in the search\nstore.getFirstToken(node, { includeComments: true });\n```\n\nMultiple token methods (`getFirstTokens`, `getTokensAfter`, etc.) accept count options:\n\n```ts\n// Get up to N tokens\nstore.getFirstTokens(node, { count: 3 });\n// Shorthand: pass a number directly\nstore.getFirstTokens(node, 3);\n\n// Filter and count\nstore.getTokensAfter(node, {\n  filter: (token) => token.type === \"Punctuator\",\n  count: 2,\n});\n\n// Include comments\nstore.getTokens(node, { includeComments: true });\n```\n\n## Attribution\n\nThis library aims for compatibility with ESLint's `SourceCode` token API and its method surface. The method design follows ideas described by ESLint, which is licensed under MIT. The implementation here is original and does not reuse ESLint code.\n\nESLint is distributed under the MIT License. See the ESLint repository for details: <https://github.com/eslint/eslint/blob/main/LICENSE>\n\n## License\n\n[MIT](./LICENSE)","users":{}}