{"_id":"modern-ahocorasick","_rev":"15-395a7a7a5e5c2396d6c63a93e89c6cfa","name":"modern-ahocorasick","dist-tags":{"alpha":"2.0.0-alpha.1","next":"1.1.0","latest":"3.3.0"},"versions":{"1.0.0":{"name":"modern-ahocorasick","version":"1.0.0","keywords":[],"author":{"name":"SonOfMagic","email":"qq1324318532@gmail.com"},"license":"MIT","_id":"modern-ahocorasick@1.0.0","maintainers":[{"name":"icebreaker","email":"1324318532@qq.com"}],"homepage":"https://github.com/sonofmagic/modern-ahocorasick#readme","bugs":{"url":"https://github.com/sonofmagic/modern-ahocorasick/issues"},"dist":{"shasum":"257e5a47c651fa5a6ae6649de0fef77011b16075","tarball":"https://registry.npmjs.org/modern-ahocorasick/-/modern-ahocorasick-1.0.0.tgz","fileCount":6,"integrity":"sha512-vg0ZzTD3tmcIPUMpuJKfcCpoxzsQu9ka/jAAGQLdrq2yLu/jUUMq/IWw9578q8QE0bNrQHonaFHmvqrhTGpk4g==","signatures":[{"sig":"MEUCIFR4QWwnFvHgEyvqCk/D97UMqsmbe1RO5QgyXgG9a4ERAiEAzFOOTfxHpo5XXDao0iGvn2xsmXhtZRXHKcGZvFq7pgk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":10985},"main":"dist/index.js","types":"types/index.d.ts","module":"dist/index.mjs","gitHead":"1e329a54f9a4403e9c492236a785db3eeb50afcd","scripts":{"dev":"pnpm clean && pnpm dts && cross-env NODE_ENV=development rollup --config rollup.config.ts --configPlugin typescript -w","dts":"tsc --emitDeclarationOnly -p tsconfig.dts.json","sync":"cnpm sync modern-ahocorasick","test":"vitest run","build":"pnpm clean && pnpm dts && cross-env NODE_ENV=production rollup --config rollup.config.ts --configPlugin typescript","clean":"node scripts/clean.js","format":"pnpm prettier --check \"src/**/*.{ts,js}\" -w","ls:pack":"npm pack --dry-run","prepare":"ts-patch install -s","init:bin":"node scripts/init/bin.js","test:dev":"vitest","build:tsc":"cross-env NODE_ENV=development tsc --build tsconfig.json","preinstall":"npx only-allow pnpm","init:rename":"node scripts/init/rename.js","semantic-release":"semantic-release"},"_npmUser":{"name":"icebreaker","email":"1324318532@qq.com"},"repository":{"url":"git+https://github.com/sonofmagic/modern-ahocorasick.git","type":"git"},"_npmVersion":"9.6.7","description":"modern-ahocorasick","directories":{},"_nodeVersion":"18.17.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@8.6.9","devDependencies":{"del":"^7.0.0","defu":"^6.1.2","klaw":"^4.1.0","tslib":"^2.6.1","eslint":"8.47.0","lodash":"^4.17.21","rollup":"^3.28.0","vitest":"^0.34.1","ts-node":"^10.9.1","prettier":"^3.0.1","ts-patch":"^3.0.2","cross-env":"^7.0.3","fast-sort":"^3.4.0","lodash-es":"^4.17.21","only-allow":"^1.1.1","typescript":"^5.1.6","@types/klaw":"^3.0.3","@types/node":"^20.4.9","@types/lodash":"^4.14.197","tsconfig-paths":"^4.2.0","@types/lodash-es":"^4.17.8","semantic-release":"^21.0.7","@rollup/plugin-json":"^6.0.0","@vitest/coverage-v8":"^0.34.1","@rollup/plugin-alias":"^5.0.0","@rollup/plugin-terser":"^0.4.3","@tsconfig/recommended":"^1.0.2","@rollup/plugin-replace":"^5.0.2","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@rollup/plugin-commonjs":"^25.0.3","@types/semantic-release":"^20.0.1","eslint-config-icebreaker":"^1.2.2","rollup-plugin-visualizer":"^5.9.2","@rollup/plugin-typescript":"^11.1.2","typescript-transform-paths":"^3.4.6","@rollup/plugin-node-resolve":"^15.1.0"},"_npmOperationalInternal":{"tmp":"tmp/modern-ahocorasick_1.0.0_1691776837689_0.6937117205522108","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"modern-ahocorasick","version":"1.0.1","keywords":[],"author":{"name":"SonOfMagic","email":"qq1324318532@gmail.com"},"license":"MIT","_id":"modern-ahocorasick@1.0.1","maintainers":[{"name":"icebreaker","email":"1324318532@qq.com"}],"homepage":"https://github.com/sonofmagic/modern-ahocorasick#readme","bugs":{"url":"https://github.com/sonofmagic/modern-ahocorasick/issues"},"dist":{"shasum":"dec373444f51b5458ac05216a8ec376e126dd283","tarball":"https://registry.npmjs.org/modern-ahocorasick/-/modern-ahocorasick-1.0.1.tgz","fileCount":6,"integrity":"sha512-yoe+JbhTClckZ67b2itRtistFKf8yPYelHLc7e5xAwtNAXxM6wJTUx2C7QeVSJFDzKT7bCIFyBVybPMKvmB9AA==","signatures":[{"sig":"MEYCIQCuwe5ILscYr7TdA0sSOKdwyZdJN48jEHdFcxX+70ZSAAIhAIOjz6sOWeCMpAgh3fDoIWdfDHpYt8oRW46dDI4k4Xh8","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":10944},"main":"dist/index.js","types":"types/index.d.ts","module":"dist/index.mjs","gitHead":"2a9ec2bf6bec44d20ffa65c60c2d3897e536c715","scripts":{"dev":"pnpm clean && pnpm dts && cross-env NODE_ENV=development rollup --config rollup.config.ts --configPlugin typescript -w","dts":"tsc --emitDeclarationOnly -p tsconfig.dts.json","sync":"cnpm sync modern-ahocorasick","test":"vitest run","build":"pnpm clean && pnpm dts && cross-env NODE_ENV=production rollup --config rollup.config.ts --configPlugin typescript","clean":"node scripts/clean.js","format":"pnpm prettier --check \"src/**/*.{ts,js}\" -w","ls:pack":"npm pack --dry-run","prepare":"ts-patch install -s","init:bin":"node scripts/init/bin.js","test:dev":"vitest","build:tsc":"cross-env NODE_ENV=development tsc --build tsconfig.json","init:rename":"node scripts/init/rename.js","semantic-release":"semantic-release"},"_npmUser":{"name":"icebreaker","email":"1324318532@qq.com"},"repository":{"url":"git+https://github.com/sonofmagic/modern-ahocorasick.git","type":"git"},"_npmVersion":"9.8.1","description":"modern-ahocorasick","directories":{},"_nodeVersion":"18.18.2","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"pnpm@8.6.9","devDependencies":{"del":"^7.0.0","defu":"^6.1.2","klaw":"^4.1.0","tslib":"^2.6.1","eslint":"8.47.0","lodash":"^4.17.21","rollup":"^3.28.0","vitest":"^0.34.1","ts-node":"^10.9.1","prettier":"^3.0.1","ts-patch":"^3.0.2","cross-env":"^7.0.3","fast-sort":"^3.4.0","lodash-es":"^4.17.21","only-allow":"^1.1.1","typescript":"^5.1.6","@types/klaw":"^3.0.3","@types/node":"^20.4.9","@types/lodash":"^4.14.197","tsconfig-paths":"^4.2.0","@types/lodash-es":"^4.17.8","semantic-release":"^21.0.7","@rollup/plugin-json":"^6.0.0","@vitest/coverage-v8":"^0.34.1","@rollup/plugin-alias":"^5.0.0","@rollup/plugin-terser":"^0.4.3","@tsconfig/recommended":"^1.0.2","@rollup/plugin-replace":"^5.0.2","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@rollup/plugin-commonjs":"^25.0.3","@types/semantic-release":"^20.0.1","eslint-config-icebreaker":"^1.2.2","rollup-plugin-visualizer":"^5.9.2","@rollup/plugin-typescript":"^11.1.2","typescript-transform-paths":"^3.4.6","@rollup/plugin-node-resolve":"^15.1.0"},"_npmOperationalInternal":{"tmp":"tmp/modern-ahocorasick_1.0.1_1699795110094_0.3164071525312342","host":"s3://npm-registry-packages"}},"1.0.2-alpha.1":{"name":"modern-ahocorasick","version":"1.0.2-alpha.1","keywords":[],"author":{"name":"SonOfMagic","email":"qq1324318532@gmail.com"},"license":"MIT","_id":"modern-ahocorasick@1.0.2-alpha.1","maintainers":[{"name":"icebreaker","email":"1324318532@qq.com"}],"homepage":"https://github.com/sonofmagic/modern-ahocorasick#readme","bugs":{"url":"https://github.com/sonofmagic/modern-ahocorasick/issues"},"dist":{"shasum":"659e8314733f345578437c234940bcdc55d6fb7b","tarball":"https://registry.npmjs.org/modern-ahocorasick/-/modern-ahocorasick-1.0.2-alpha.1.tgz","fileCount":7,"integrity":"sha512-r/XqTqjmnTLzYqmCt2FRq/2R3JDiIrO919gj8FOEQLoDaTCTFgfyW3rzuukME28FypU6VeiBezbD5JMeIoSCTg==","signatures":[{"sig":"MEQCIE2d9KSpqibmXJ2UPDFcZWNV/ad2VV2fKElUU5pyjaLxAiAC/G4cehH+SgS+uxMCjX+alHc0FlzNBlSSNITc/pAeOg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":9987},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./*":"./*","./package.json":"./package.json"},"gitHead":"20db5d943d8fe45c615e4e888b516240f69aedfa","scripts":{"dev":"tsup --watch --sourcemap","sync":"cnpm sync modern-ahocorasick","test":"vitest run","build":"tsup","clean":"node scripts/clean.js","format":"pnpm prettier --check \"src/**/*.{ts,js}\" -w","ls:pack":"npm pack --dry-run","init:bin":"node scripts/init/bin.js","test:dev":"vitest","build:dev":"tsup --sourcemap","init:rename":"node scripts/init/rename.js","semantic-release":"semantic-release"},"_npmUser":{"name":"icebreaker","email":"1324318532@qq.com"},"repository":{"url":"git+https://github.com/sonofmagic/modern-ahocorasick.git","type":"git"},"_npmVersion":"10.5.2","description":"modern-ahocorasick","directories":{},"_nodeVersion":"20.13.1","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"typesVersions":{"*":{"*":["./dist/*","./dist/index.d.ts"]}},"_hasShrinkwrap":false,"packageManager":"pnpm@9.1.0","readmeFilename":"README.md","devDependencies":{"del":"^7.1.0","defu":"^6.1.4","klaw":"^4.1.0","tsup":"^8.0.2","eslint":"9.2.0","lodash":"^4.17.21","vitest":"^1.6.0","cross-env":"^7.0.3","lodash-es":"^4.17.21","typescript":"^5.4.5","@types/klaw":"^3.0.6","@types/node":"^20.12.12","@types/lodash":"^4.17.1","@types/lodash-es":"^4.17.12","semantic-release":"^23.1.1","@vitest/coverage-v8":"^1.6.0","@tsconfig/recommended":"^1.0.6","@icebreakers/eslint-config":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/modern-ahocorasick_1.0.2-alpha.1_1715873455909_0.3650264793400868","host":"s3://npm-registry-packages"}},"2.0.0-alpha.1":{"name":"modern-ahocorasick","version":"2.0.0-alpha.1","keywords":[],"author":{"name":"SonOfMagic","email":"qq1324318532@gmail.com"},"license":"MIT","_id":"modern-ahocorasick@2.0.0-alpha.1","maintainers":[{"name":"icebreaker","email":"1324318532@qq.com"}],"homepage":"https://github.com/sonofmagic/modern-ahocorasick#readme","bugs":{"url":"https://github.com/sonofmagic/modern-ahocorasick/issues"},"dist":{"shasum":"31bbf61e2767ab4a540d273f3a00f61240a970fc","tarball":"https://registry.npmjs.org/modern-ahocorasick/-/modern-ahocorasick-2.0.0-alpha.1.tgz","fileCount":7,"integrity":"sha512-xPxIfQiAyASETCtd04o3SJnx0LyVCTpn3aEIn2CEvoxDKdEQ9h0Jm0PyvBA63zXTW6E4gdv/vcs9obLga4eRdg==","signatures":[{"sig":"MEYCIQC5o9IfMthm+Wu8MydmkGiJCH2FyQWUCyQvfku6C5ouCQIhAJpK1Fop2xv6VuSIV1DFej0VyvkpBoX6HukmgxjO6nBJ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":9984},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./*":"./*","./package.json":"./package.json"},"gitHead":"0f3bb55f7697d997f1a0fed23e7047ec59e651bd","scripts":{"dev":"tsup --watch --sourcemap","sync":"cnpm sync modern-ahocorasick","test":"vitest run","build":"tsup","clean":"node scripts/clean.js","format":"pnpm prettier --check \"src/**/*.{ts,js}\" -w","ls:pack":"npm pack --dry-run","init:bin":"node scripts/init/bin.js","test:dev":"vitest","build:dev":"tsup --sourcemap","init:rename":"node scripts/init/rename.js","semantic-release":"semantic-release"},"_npmUser":{"name":"icebreaker","email":"1324318532@qq.com"},"repository":{"url":"git+https://github.com/sonofmagic/modern-ahocorasick.git","type":"git"},"_npmVersion":"10.5.2","description":"modern-ahocorasick","directories":{},"_nodeVersion":"20.13.1","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"typesVersions":{"*":{"*":["./dist/*","./dist/index.d.ts"]}},"_hasShrinkwrap":false,"packageManager":"pnpm@9.1.1","readmeFilename":"README.md","devDependencies":{"del":"^7.1.0","defu":"^6.1.4","klaw":"^4.1.0","tsup":"^8.0.2","eslint":"9.3.0","lodash":"^4.17.21","vitest":"^1.6.0","cross-env":"^7.0.3","lodash-es":"^4.17.21","typescript":"^5.4.5","@types/klaw":"^3.0.6","@types/node":"^20.12.12","@types/lodash":"^4.17.4","@types/lodash-es":"^4.17.12","semantic-release":"^23.1.1","@vitest/coverage-v8":"^1.6.0","@tsconfig/recommended":"^1.0.6","@icebreakers/eslint-config":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/modern-ahocorasick_2.0.0-alpha.1_1716050936042_0.7381823060524089","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"modern-ahocorasick","version":"1.1.0","keywords":[],"author":{"name":"SonOfMagic","email":"qq1324318532@gmail.com"},"license":"MIT","_id":"modern-ahocorasick@1.1.0","maintainers":[{"name":"icebreaker","email":"1324318532@qq.com"}],"homepage":"https://github.com/sonofmagic/modern-ahocorasick#readme","bugs":{"url":"https://github.com/sonofmagic/modern-ahocorasick/issues"},"dist":{"shasum":"9b1fa15d4f654be20a2ad7ecc44ec9d7645bb420","tarball":"https://registry.npmjs.org/modern-ahocorasick/-/modern-ahocorasick-1.1.0.tgz","fileCount":7,"integrity":"sha512-sEKPVl2rM+MNVkGQt3ChdmD8YsigmXdn5NifZn6jiwn9LRJpWm8F3guhaqrJT/JOat6pwpbXEk6kv+b9DMIjsQ==","signatures":[{"sig":"MEYCIQD8b/Ih49EORXv0c1uyRcV0F7CcNfaii7o2DqvUCYgWKAIhAIK8Ijau4TiUxwt3vZ2cU/C8hhcNGxt7zl9kA+fI/3EH","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":10897},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./*":"./*","./package.json":"./package.json"},"gitHead":"b49b3480af2618e72bc70af6cb0aee66c08610d5","scripts":{"dev":"tsup --watch --sourcemap","sync":"cnpm sync modern-ahocorasick","test":"vitest run","build":"tsup","clean":"node scripts/clean.js","format":"pnpm prettier --check \"src/**/*.{ts,js}\" -w","ls:pack":"npm pack --dry-run","init:bin":"node scripts/init/bin.js","test:dev":"vitest","build:dev":"tsup --sourcemap","init:rename":"node scripts/init/rename.js","semantic-release":"semantic-release"},"_npmUser":{"name":"icebreaker","email":"1324318532@qq.com"},"repository":{"url":"git+https://github.com/sonofmagic/modern-ahocorasick.git","type":"git"},"_npmVersion":"10.8.2","description":"modern-ahocorasick","directories":{},"_nodeVersion":"20.18.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"typesVersions":{"*":{"*":["./dist/*","./dist/index.d.ts"]}},"_hasShrinkwrap":false,"packageManager":"pnpm@9.1.0","readmeFilename":"README.md","devDependencies":{"del":"^7.1.0","defu":"^6.1.4","klaw":"^4.1.0","tsup":"^8.0.2","eslint":"9.2.0","lodash":"^4.17.21","vitest":"^1.6.0","cross-env":"^7.0.3","lodash-es":"^4.17.21","typescript":"^5.4.5","@types/klaw":"^3.0.6","@types/node":"^20.12.12","@types/lodash":"^4.17.1","@types/lodash-es":"^4.17.12","semantic-release":"^23.1.1","@vitest/coverage-v8":"^1.6.0","@tsconfig/recommended":"^1.0.6","@types/semantic-release":"^20.0.6","@icebreakers/eslint-config":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/modern-ahocorasick_1.1.0_1732542945648_0.04869991316069244","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"modern-ahocorasick","version":"2.0.0","keywords":["ahocorasick","modern","cjs","js"],"author":{"name":"SonOfMagic","email":"qq1324318532@gmail.com"},"license":"MIT","_id":"modern-ahocorasick@2.0.0","maintainers":[{"name":"icebreaker","email":"1324318532@qq.com"}],"homepage":"https://github.com/sonofmagic/modern-ahocorasick#readme","bugs":{"url":"https://github.com/sonofmagic/modern-ahocorasick/issues"},"dist":{"shasum":"7cdcbb62587d1e1c7c49ae725345663638c3ec1b","tarball":"https://registry.npmjs.org/modern-ahocorasick/-/modern-ahocorasick-2.0.0.tgz","fileCount":7,"integrity":"sha512-9dJtiP929+N58iEfF5kw6E6Yz9W91eS0akbippUJrVN0ca1w/qGlQPRGPfjwqeLgR6tvNNsMqA1uPIeB/15jEA==","signatures":[{"sig":"MEUCIHf22c2pPjc1EOZU4hFncafDAxRmBIIjByVJV1Zyhi7eAiEA/cq5dED/BfZ3H3v/vzk16K5UbXIeIuilkYfNbnOgjOw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":10940},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./*":"./*","./package.json":"./package.json"},"gitHead":"fe77102564833830867586685ddc2f59414504c3","scripts":{"dev":"tsup --watch --sourcemap","sync":"cnpm sync modern-ahocorasick","test":"vitest run","build":"tsup","clean":"node scripts/clean.js","format":"pnpm prettier --check \"src/**/*.{ts,js}\" -w","ls:pack":"npm pack --dry-run","init:bin":"node scripts/init/bin.js","test:dev":"vitest","build:dev":"tsup --sourcemap","init:rename":"node scripts/init/rename.js","semantic-release":"semantic-release"},"_npmUser":{"name":"icebreaker","email":"1324318532@qq.com"},"repository":{"url":"git+https://github.com/sonofmagic/modern-ahocorasick.git","type":"git"},"_npmVersion":"10.8.2","description":"modern-ahocorasick","directories":{},"_nodeVersion":"20.18.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"typesVersions":{"*":{"*":["./dist/*","./dist/index.d.ts"]}},"_hasShrinkwrap":false,"packageManager":"pnpm@9.1.0","devDependencies":{"del":"^8.0.0","defu":"^6.1.4","klaw":"^4.1.0","tsup":"^8.3.5","eslint":"9.15.0","lodash":"^4.17.21","vitest":"^2.1.5","cross-env":"^7.0.3","lodash-es":"^4.17.21","typescript":"^5.7.2","@types/klaw":"^3.0.6","@types/node":"^22.9.3","@types/lodash":"^4.17.13","@types/lodash-es":"^4.17.12","semantic-release":"^24.2.0","@vitest/coverage-v8":"^2.1.5","@tsconfig/recommended":"^1.0.8","@types/semantic-release":"^20.0.6","@icebreakers/eslint-config":"^0.7.3"},"_npmOperationalInternal":{"tmp":"tmp/modern-ahocorasick_2.0.0_1732543554052_0.2516350792869886","host":"s3://npm-registry-packages"}},"2.0.1":{"name":"modern-ahocorasick","version":"2.0.1","keywords":["ahocorasick","modern","cjs","js"],"author":{"name":"SonOfMagic","email":"qq1324318532@gmail.com"},"license":"MIT","_id":"modern-ahocorasick@2.0.1","maintainers":[{"name":"icebreaker","email":"1324318532@qq.com"}],"homepage":"https://github.com/sonofmagic/modern-ahocorasick#readme","bugs":{"url":"https://github.com/sonofmagic/modern-ahocorasick/issues"},"dist":{"shasum":"8c0d93c50d0c47aed6a5c964e9c2ba7282196e4d","tarball":"https://registry.npmjs.org/modern-ahocorasick/-/modern-ahocorasick-2.0.1.tgz","fileCount":7,"integrity":"sha512-Z/7AU4ceonxL/tkQqg2LJIIlHQNGddcGNg2E28cf6jowoRawl/5t577NpdKd2bKV/kT3lcctgrSAf8pjnFMR5Q==","signatures":[{"sig":"MEUCIFvxowY9fID5jGGVuKC9WqPK6MKr2FeAuyiRLikoJXoRAiEA9acjWBIXlcD1ZycFa0qIVkHoh98U6HmmoGx7IQERg2E=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":10145},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./*":"./*","./package.json":"./package.json"},"gitHead":"f44813e8df1912c73c0e7e9af067ce801b82a3f0","scripts":{"dev":"tsup --watch --sourcemap","sync":"cnpm sync modern-ahocorasick","test":"vitest run","build":"tsup","clean":"node scripts/clean.js","format":"pnpm prettier --check \"src/**/*.{ts,js}\" -w","ls:pack":"npm pack --dry-run","init:bin":"node scripts/init/bin.js","test:dev":"vitest","build:dev":"tsup --sourcemap","init:rename":"node scripts/init/rename.js","semantic-release":"semantic-release"},"_npmUser":{"name":"icebreaker","email":"1324318532@qq.com"},"repository":{"url":"git+https://github.com/sonofmagic/modern-ahocorasick.git","type":"git"},"_npmVersion":"10.8.2","description":"modern-ahocorasick","directories":{},"_nodeVersion":"20.18.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"typesVersions":{"*":{"*":["./dist/*","./dist/index.d.ts"]}},"_hasShrinkwrap":false,"packageManager":"pnpm@9.1.0","devDependencies":{"del":"^8.0.0","defu":"^6.1.4","klaw":"^4.1.0","tsup":"^8.3.5","eslint":"9.15.0","lodash":"^4.17.21","vitest":"^2.1.5","cross-env":"^7.0.3","lodash-es":"^4.17.21","typescript":"^5.7.2","@types/klaw":"^3.0.6","@types/node":"^22.9.3","@types/lodash":"^4.17.13","@types/lodash-es":"^4.17.12","semantic-release":"^24.2.0","@vitest/coverage-v8":"^2.1.5","@tsconfig/recommended":"^1.0.8","@types/semantic-release":"^20.0.6","@icebreakers/eslint-config":"^0.7.3"},"_npmOperationalInternal":{"tmp":"tmp/modern-ahocorasick_2.0.1_1732544067272_0.535494421292168","host":"s3://npm-registry-packages"}},"2.0.2":{"name":"modern-ahocorasick","version":"2.0.2","keywords":["ahocorasick","modern","cjs","js"],"author":{"name":"SonOfMagic","email":"qq1324318532@gmail.com"},"license":"MIT","_id":"modern-ahocorasick@2.0.2","maintainers":[{"name":"icebreaker","email":"1324318532@qq.com"}],"homepage":"https://github.com/sonofmagic/modern-ahocorasick#readme","bugs":{"url":"https://github.com/sonofmagic/modern-ahocorasick/issues"},"dist":{"shasum":"408fac08c4048f273ed5335ea0b269ee873c4a74","tarball":"https://registry.npmjs.org/modern-ahocorasick/-/modern-ahocorasick-2.0.2.tgz","fileCount":7,"integrity":"sha512-qMPR7bQNCcQ258O1yNFvk6f9CQMT6AFIz0Sg6GbRIRcPFNsKYe1XTKGG8O/6oQu9yJiu7tFMqUiQ5c0B/zc5lQ==","signatures":[{"sig":"MEQCIDgycECCx/DMmrW0qswcg9aNOhg0xh6x6mt2hdZ2uHPRAiBJzbi7kDpQQMMstHCzaPUMaHNaCo7RbLbZxEYWenjlyg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":12663},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./*":"./*","./package.json":"./package.json"},"gitHead":"3e77daedcd4664c963fd7b019630a533904cc551","scripts":{"dev":"tsup --watch --sourcemap","sync":"cnpm sync modern-ahocorasick","test":"vitest run","build":"tsup","clean":"node scripts/clean.js","format":"pnpm prettier --check \"src/**/*.{ts,js}\" -w","ls:pack":"npm pack --dry-run","init:bin":"node scripts/init/bin.js","test:dev":"vitest","build:dev":"tsup --sourcemap","init:rename":"node scripts/init/rename.js","semantic-release":"semantic-release"},"_npmUser":{"name":"icebreaker","email":"1324318532@qq.com"},"repository":{"url":"git+https://github.com/sonofmagic/modern-ahocorasick.git","type":"git"},"_npmVersion":"10.8.2","description":"modern-ahocorasick","directories":{},"_nodeVersion":"20.18.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"typesVersions":{"*":{"*":["./dist/*","./dist/index.d.ts"]}},"_hasShrinkwrap":false,"packageManager":"pnpm@9.1.0","devDependencies":{"del":"^8.0.0","defu":"^6.1.4","klaw":"^4.1.0","tsup":"^8.3.5","eslint":"9.15.0","lodash":"^4.17.21","vitest":"^2.1.5","cross-env":"^7.0.3","lodash-es":"^4.17.21","typescript":"^5.7.2","@types/klaw":"^3.0.6","@types/node":"^22.9.3","@types/lodash":"^4.17.13","@types/lodash-es":"^4.17.12","semantic-release":"^24.2.0","@vitest/coverage-v8":"^2.1.5","@tsconfig/recommended":"^1.0.8","@types/semantic-release":"^20.0.6","@icebreakers/eslint-config":"^0.7.3"},"_npmOperationalInternal":{"tmp":"tmp/modern-ahocorasick_2.0.2_1732546098840_0.44033089317771346","host":"s3://npm-registry-packages"}},"2.0.3":{"name":"modern-ahocorasick","version":"2.0.3","keywords":["ahocorasick","modern","cjs","js"],"author":{"name":"SonOfMagic","email":"qq1324318532@gmail.com"},"license":"MIT","_id":"modern-ahocorasick@2.0.3","maintainers":[{"name":"icebreaker","email":"1324318532@qq.com"}],"homepage":"https://github.com/sonofmagic/modern-ahocorasick#readme","bugs":{"url":"https://github.com/sonofmagic/modern-ahocorasick/issues"},"dist":{"shasum":"173c8a64cbc92e1f4c7a625686c1b6c0b967c732","tarball":"https://registry.npmjs.org/modern-ahocorasick/-/modern-ahocorasick-2.0.3.tgz","fileCount":7,"integrity":"sha512-3vsbnf5DmpsaE8Ye892HecJU7kaT2svsIBXNhne1J080WlU9RKjTtE5PgX+OCc2huqGqGYO+rVEsJlJJuQj+Qw==","signatures":[{"sig":"MEYCIQDJoSnRvQk1oVlPkEzyDYLqnSfxO/IHJJYmF9R2OoS4wAIhANsCDq1DpUyySFRm55zPtpLOLEDdWBA+kuAI1eZKsdVH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13830},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./*":"./*","./package.json":"./package.json"},"gitHead":"1a55a9ed6c057a4d8694f7f9a8d5a414f7099073","scripts":{"dev":"tsup --watch --sourcemap","sync":"cnpm sync modern-ahocorasick","test":"vitest run","build":"tsup","clean":"node scripts/clean.js","format":"pnpm prettier --check \"src/**/*.{ts,js}\" -w","ls:pack":"npm pack --dry-run","init:bin":"node scripts/init/bin.js","test:dev":"vitest","build:dev":"tsup --sourcemap","init:rename":"node scripts/init/rename.js","semantic-release":"semantic-release"},"_npmUser":{"name":"icebreaker","email":"1324318532@qq.com"},"repository":{"url":"git+https://github.com/sonofmagic/modern-ahocorasick.git","type":"git"},"_npmVersion":"10.8.2","description":"modern-ahocorasick","directories":{},"_nodeVersion":"20.18.2","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"typesVersions":{"*":{"*":["./dist/*","./dist/index.d.ts"]}},"_hasShrinkwrap":false,"packageManager":"pnpm@9.15.5","devDependencies":{"del":"^8.0.0","defu":"^6.1.4","klaw":"^4.1.0","tsup":"^8.3.6","eslint":"9.19.0","lodash":"^4.17.21","vitest":"^3.0.5","cross-env":"^7.0.3","lodash-es":"^4.17.21","typescript":"^5.7.3","@types/klaw":"^3.0.6","@types/node":"^22.13.1","@types/lodash":"^4.17.15","@types/lodash-es":"^4.17.12","semantic-release":"^24.2.1","@vitest/coverage-v8":"^3.0.5","@tsconfig/recommended":"^1.0.8","@types/semantic-release":"^20.0.6","@icebreakers/eslint-config":"^0.7.13"},"_npmOperationalInternal":{"tmp":"tmp/modern-ahocorasick_2.0.3_1738942975745_0.5290637357676917","host":"s3://npm-registry-packages-npm-production"}},"2.0.4":{"name":"modern-ahocorasick","version":"2.0.4","keywords":["ahocorasick","modern","cjs","js"],"author":{"name":"SonOfMagic","email":"qq1324318532@gmail.com"},"license":"MIT","_id":"modern-ahocorasick@2.0.4","maintainers":[{"name":"icebreaker","email":"1324318532@qq.com"}],"homepage":"https://github.com/sonofmagic/modern-ahocorasick#readme","bugs":{"url":"https://github.com/sonofmagic/modern-ahocorasick/issues"},"dist":{"shasum":"84e112ff7739c0384f336b88ccaca208323e0382","tarball":"https://registry.npmjs.org/modern-ahocorasick/-/modern-ahocorasick-2.0.4.tgz","fileCount":7,"integrity":"sha512-EFe312CXjDE8/nXOJk/LpzPUTNXzFTZCWazQ6rntodIByicqKg9wSqjBSQt1alcTdzwEbMyeTPXnvw9BIxyiRg==","signatures":[{"sig":"MEUCIQDYSzpiTiQ59FFqB/SwqM/ZG4YCoPkqa+RnPqps1mNuyAIgQGbGwiOVPaT+iqP9MJqZAQ4l4wFANdPC0wHQdst9KP8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13830},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./*":"./*","./package.json":"./package.json"},"gitHead":"fa30f5fabea6fc72ad1121c78445bb0e55876ac3","scripts":{"dev":"tsup --watch --sourcemap","sync":"cnpm sync modern-ahocorasick","test":"vitest run","build":"tsup","clean":"node scripts/clean.js","format":"pnpm prettier --check \"src/**/*.{ts,js}\" -w","ls:pack":"npm pack --dry-run","init:bin":"node scripts/init/bin.js","test:dev":"vitest","build:dev":"tsup --sourcemap","init:rename":"node scripts/init/rename.js","semantic-release":"semantic-release"},"_npmUser":{"name":"icebreaker","email":"1324318532@qq.com"},"repository":{"url":"git+https://github.com/sonofmagic/modern-ahocorasick.git","type":"git"},"_npmVersion":"10.8.2","description":"modern-ahocorasick","directories":{},"_nodeVersion":"20.18.2","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"typesVersions":{"*":{"*":["./dist/*","./dist/index.d.ts"]}},"_hasShrinkwrap":false,"packageManager":"pnpm@9.15.5","devDependencies":{"del":"^8.0.0","defu":"^6.1.4","klaw":"^4.1.0","tsup":"^8.3.6","eslint":"9.19.0","lodash":"^4.17.21","vitest":"^3.0.5","cross-env":"^7.0.3","lodash-es":"^4.17.21","typescript":"^5.7.3","@types/klaw":"^3.0.6","@types/node":"^22.13.1","@types/lodash":"^4.17.15","@types/lodash-es":"^4.17.12","semantic-release":"^24.2.1","@vitest/coverage-v8":"^3.0.5","@tsconfig/recommended":"^1.0.8","@types/semantic-release":"^20.0.6","@icebreakers/eslint-config":"^0.7.13"},"_npmOperationalInternal":{"tmp":"tmp/modern-ahocorasick_2.0.4_1738981543495_0.47781071197114966","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"modern-ahocorasick","version":"3.0.0","keywords":["ahocorasick","modern","cjs","js"],"author":"SonOfMagic <qq1324318532@gmail.com>","license":"MIT","_id":"modern-ahocorasick@3.0.0","maintainers":[{"name":"icebreaker","email":"1324318532@qq.com"}],"homepage":"https://github.com/icelib/modern-ahocorasick#readme","bugs":{"url":"https://github.com/icelib/modern-ahocorasick/issues"},"dist":{"shasum":"76273a61d3d814cc904b262256741be3a40c4f2c","tarball":"https://registry.npmjs.org/modern-ahocorasick/-/modern-ahocorasick-3.0.0.tgz","fileCount":9,"integrity":"sha512-NLjURxJSMa5Yb80vN5RfvRnfvg+xTx6jmVFmd8+txUy5H234e3+zvm9+GJFxCUYqqUDK0+ygeY5t6uOnLutfDg==","signatures":[{"sig":"MEQCICh0x+eSJPwBqepwyeezVXsZtzS3FrxrjWd17kNcYPwLAiACVkLQAefkrs0EKr1I/gMqX5RF0FTlKo2uoXjWVTNwJg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIFSUUeW6fjCEtDmpCCgqvCe4ySvtfXzcbi52TaDdWgEyAiAaVNz41Cxd2povGKj6XQR0bneZyYg/ObzMq7nSMKDAYw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/modern-ahocorasick@3.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":40905},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./*":"./*","./package.json":"./package.json"},"scripts":{"dev":"tsdown --watch","tsd":"tsd --files test-d/**/*.test-d.ts","lint":"eslint .","test":"vitest run","build":"tsdown","test:dev":"vitest","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9fc1f7b8-3113-482d-929c-9eb03c87db8f"}},"repository":{"url":"git+https://github.com/icelib/modern-ahocorasick.git","type":"git","directory":"packages/modern-ahocorasick"},"description":"modern-ahocorasick","directories":{},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"typesVersions":{"*":{"*":["./dist/*","./dist/index.d.ts"]}},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/modern-ahocorasick_3.0.0_1790003789748_0.7551293805600447","host":"s3://npm-registry-packages-npm-production"}},"3.1.0":{"name":"modern-ahocorasick","version":"3.1.0","keywords":["ahocorasick","aho-corasick","multi-pattern-matching","string-matching","text-search","unicode","grapheme","typescript"],"author":"SonOfMagic <qq1324318532@gmail.com>","license":"MIT","_id":"modern-ahocorasick@3.1.0","maintainers":[{"name":"icebreaker","email":"1324318532@qq.com"}],"homepage":"https://aho.icebreaker.top/","bugs":{"url":"https://github.com/icelib/modern-ahocorasick/issues"},"dist":{"shasum":"739a363b3c994fa78b2ac90d5305f82742c88a69","tarball":"https://registry.npmjs.org/modern-ahocorasick/-/modern-ahocorasick-3.1.0.tgz","fileCount":15,"integrity":"sha512-DjtLkKBnRd7gyDC7GvUXhUaUBmrYprAADtRWZAxxlpD8RbdLD5oG5qKSfZBYCZXJJFFXlxp1Qv4XfWrDanretA==","signatures":[{"sig":"MEUCIQCDn44+wB3cYD+IZ67qmLVesCsbBZMf40+mCunupg3ogwIgfw3u/ZpAs4Hjskdl/o7Ys7VO2hM1NhZZk6lcqWD9Imo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDSV2rEOrCMN9fTm7YHvDP8JOy1Y3atkMchKkieL/oRzwIgQlM+sY31IH4Z2QdK6AABwBAjaalDYwSgDE8VsPNh8sY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/modern-ahocorasick@3.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":200821},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./*":"./*","./text":{"import":{"types":"./dist/text.d.ts","default":"./dist/text.js"},"require":{"types":"./dist/text.d.cts","default":"./dist/text.cjs"}},"./package.json":"./package.json"},"scripts":{"dev":"tsdown --watch","tsd":"tsd --files test-d/**/*.test-d.ts","lint":"eslint .","test":"vitest run","build":"tsdown","test:dev":"vitest","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9fc1f7b8-3113-482d-929c-9eb03c87db8f"}},"repository":{"url":"git+https://github.com/icelib/modern-ahocorasick.git","type":"git","directory":"packages/modern-ahocorasick"},"description":"Unicode-aware Aho–Corasick multi-pattern matching with UTF-16 ranges, counting, lazy iteration, and replacement.","directories":{},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"typesVersions":{"*":{"*":["./dist/*","./dist/index.d.ts"]}},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/modern-ahocorasick_3.1.0_1790040504552_0.8607503387416295","host":"s3://npm-registry-packages-npm-production"}},"3.2.0":{"name":"modern-ahocorasick","version":"3.2.0","keywords":["ahocorasick","aho-corasick","multi-pattern-matching","string-matching","text-search","unicode","grapheme","typescript"],"author":"SonOfMagic <qq1324318532@gmail.com>","license":"MIT","_id":"modern-ahocorasick@3.2.0","maintainers":[{"name":"icebreaker","email":"1324318532@qq.com"}],"homepage":"https://aho.icebreaker.top/","bugs":{"url":"https://github.com/icelib/modern-ahocorasick/issues"},"dist":{"shasum":"035e78efd74a67b13dc645610c54e1d9e2c9f70a","tarball":"https://registry.npmjs.org/modern-ahocorasick/-/modern-ahocorasick-3.2.0.tgz","fileCount":62,"integrity":"sha512-mi3Jo++xNkn9yIigeE3Ylmr0AT7ReekfeDmM7eScvYSEqv2uw4ODsDIu52utM7r4Ms1HippuN39sH+RTD3l7+w==","signatures":[{"sig":"MEUCIQCaQMTGkxN2C4YqVW+qPIJD85l9n35lVW1EZF/PYeV10gIgeMdeTzTaWMwV2XYeZmzNQIYs5m6yXjZigoxWx4/xnJk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIH4drzHYLW4DDknQww5mLZw2bTPrS1/60rqSB/WvoiPoAiEAhY822Ujq3iLoMdn/8d9v/W9LIRHlV0vHo0OTWaVokUE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/modern-ahocorasick@3.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":274709},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./*":"./*","./fast":{"import":{"types":"./dist/fast.d.ts","default":"./dist/fast.js"},"require":{"types":"./dist/fast.d.cts","default":"./dist/fast.cjs"}},"./text":{"import":{"types":"./dist/text.d.ts","default":"./dist/text.js"},"require":{"types":"./dist/text.d.cts","default":"./dist/text.cjs"}},"./stream":{"import":{"types":"./dist/stream.d.ts","default":"./dist/stream.js"},"require":{"types":"./dist/stream.d.cts","default":"./dist/stream.cjs"}},"./dynamic":{"import":{"types":"./dist/dynamic.d.ts","default":"./dist/dynamic.js"},"require":{"types":"./dist/dynamic.d.cts","default":"./dist/dynamic.cjs"}},"./replace":{"import":{"types":"./dist/replace.d.ts","default":"./dist/replace.js"},"require":{"types":"./dist/replace.d.cts","default":"./dist/replace.cjs"}},"./unicode":{"import":{"types":"./dist/unicode.d.ts","default":"./dist/unicode.js"},"require":{"types":"./dist/unicode.d.cts","default":"./dist/unicode.cjs"}},"./stream/web":{"import":{"types":"./dist/stream/web.d.ts","default":"./dist/stream/web.js"},"require":{"types":"./dist/stream/web.d.cts","default":"./dist/stream/web.cjs"}},"./stream/node":{"import":{"types":"./dist/stream/node.d.ts","default":"./dist/stream/node.js"},"require":{"types":"./dist/stream/node.d.cts","default":"./dist/stream/node.cjs"}},"./package.json":"./package.json","./unicode-fast":{"import":{"types":"./dist/unicode-fast.d.ts","default":"./dist/unicode-fast.js"},"require":{"types":"./dist/unicode-fast.d.cts","default":"./dist/unicode-fast.cjs"}},"./stream/filters":{"import":{"types":"./dist/stream/filters.d.ts","default":"./dist/stream/filters.js"},"require":{"types":"./dist/stream/filters.d.cts","default":"./dist/stream/filters.cjs"}},"./dist/_private/*":null},"scripts":{"dev":"tsdown --watch","tsd":"tsd --files test-d/**/*.test-d.ts","lint":"eslint .","test":"vitest run","build":"tsdown","test:dev":"vitest","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9fc1f7b8-3113-482d-929c-9eb03c87db8f"}},"repository":{"url":"git+https://github.com/icelib/modern-ahocorasick.git","type":"git","directory":"packages/modern-ahocorasick"},"description":"Unicode-aware Aho–Corasick multi-pattern matching with UTF-16 ranges, counting, lazy iteration, and replacement.","directories":{},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"typesVersions":{"*":{"*":["./dist/*","./dist/index.d.ts"]}},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/modern-ahocorasick_3.2.0_1790078345193_0.09206158268522113","host":"s3://npm-registry-packages-npm-production"}},"3.3.0":{"_id":"modern-ahocorasick@3.3.0","bugs":{"url":"https://github.com/icelib/modern-ahocorasick/issues"},"dist":{"shasum":"14e5dd448f437943e60bf24a0f98a78eeaf596d6","tarball":"https://registry.npmjs.org/modern-ahocorasick/-/modern-ahocorasick-3.3.0.tgz","fileCount":62,"integrity":"sha512-OEuPxzKD4fG8Zx2dUX8jDP7ArNhRdlHhjLA00k+ZmtXe49Qb6+E/M/ViDYnXOZ9A3uRbRIb1eTKPesQGKd0USA==","signatures":[{"sig":"MEUCIARD6aCEPqI2eJo5PtpyajAyuqOhWanhbh/o0L2GnrKsAiEAiWxW1tF9j+RsYRUQACSv6qb9r9W2aGzkniJmNAHrGYw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIBOmzzFTRbAvFInXozlwJn+Ejlqqvy8SNeYsTMFP3uUhAiEA+eveNsLC7IA80fzKaH/RT7s56rRFUww6Oxm+CgZnHPo="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/modern-ahocorasick@3.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":328114},"main":"dist/index.cjs","name":"modern-ahocorasick","type":"module","types":"dist/index.d.ts","author":"SonOfMagic <qq1324318532@gmail.com>","module":"dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./*":"./*","./fast":{"import":{"types":"./dist/fast.d.ts","default":"./dist/fast.js"},"require":{"types":"./dist/fast.d.cts","default":"./dist/fast.cjs"}},"./text":{"import":{"types":"./dist/text.d.ts","default":"./dist/text.js"},"require":{"types":"./dist/text.d.cts","default":"./dist/text.cjs"}},"./stream":{"import":{"types":"./dist/stream.d.ts","default":"./dist/stream.js"},"require":{"types":"./dist/stream.d.cts","default":"./dist/stream.cjs"}},"./dynamic":{"import":{"types":"./dist/dynamic.d.ts","default":"./dist/dynamic.js"},"require":{"types":"./dist/dynamic.d.cts","default":"./dist/dynamic.cjs"}},"./replace":{"import":{"types":"./dist/replace.d.ts","default":"./dist/replace.js"},"require":{"types":"./dist/replace.d.cts","default":"./dist/replace.cjs"}},"./unicode":{"import":{"types":"./dist/unicode.d.ts","default":"./dist/unicode.js"},"require":{"types":"./dist/unicode.d.cts","default":"./dist/unicode.cjs"}},"./stream/web":{"import":{"types":"./dist/stream/web.d.ts","default":"./dist/stream/web.js"},"require":{"types":"./dist/stream/web.d.cts","default":"./dist/stream/web.cjs"}},"./stream/node":{"import":{"types":"./dist/stream/node.d.ts","default":"./dist/stream/node.js"},"require":{"types":"./dist/stream/node.d.cts","default":"./dist/stream/node.cjs"}},"./package.json":"./package.json","./unicode-fast":{"import":{"types":"./dist/unicode-fast.d.ts","default":"./dist/unicode-fast.js"},"require":{"types":"./dist/unicode-fast.d.cts","default":"./dist/unicode-fast.cjs"}},"./stream/filters":{"import":{"types":"./dist/stream/filters.d.ts","default":"./dist/stream/filters.js"},"require":{"types":"./dist/stream/filters.d.cts","default":"./dist/stream/filters.cjs"}},"./dist/_private/*":null},"license":"MIT","scripts":{"dev":"tsdown --watch","tsd":"tsd --files test-d/**/*.test-d.ts","lint":"eslint .","test":"vitest run","build":"tsdown","test:dev":"vitest","typecheck":"tsc --noEmit"},"version":"3.3.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9fc1f7b8-3113-482d-929c-9eb03c87db8f"}},"homepage":"https://aho.icebreaker.top/","keywords":["ahocorasick","aho-corasick","multi-pattern-matching","string-matching","text-search","unicode","grapheme","typescript"],"repository":{"url":"git+https://github.com/icelib/modern-ahocorasick.git","type":"git","directory":"packages/modern-ahocorasick"},"description":"Unicode-aware Aho–Corasick multi-pattern matching with UTF-16 ranges, counting, lazy iteration, and replacement.","directories":{},"maintainers":[{"name":"icebreaker","email":"1324318532@qq.com"}],"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"typesVersions":{"*":{"*":["./dist/*","./dist/index.d.ts"]}},"_hasShrinkwrap":false,"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/modern-ahocorasick_3.3.0_1790154675075_0.7235986689669724"}}},"time":{"created":"2023-08-11T18:00:37.613Z","modified":"2026-09-23T09:11:15.591Z","1.0.0":"2023-08-11T18:00:37.868Z","1.0.1":"2023-11-12T13:18:30.282Z","1.0.2-alpha.1":"2024-05-16T15:30:56.147Z","2.0.0-alpha.1":"2024-05-18T16:48:56.192Z","1.1.0":"2024-11-25T13:55:45.833Z","2.0.0":"2024-11-25T14:05:54.240Z","2.0.1":"2024-11-25T14:14:27.469Z","2.0.2":"2024-11-25T14:48:19.032Z","2.0.3":"2025-02-07T15:42:55.921Z","2.0.4":"2025-02-08T02:25:43.696Z","3.0.0":"2026-09-21T15:16:29.844Z","3.1.0":"2026-09-22T01:28:24.660Z","3.2.0":"2026-09-22T11:59:05.313Z","3.3.0":"2026-09-23T09:11:15.156Z"},"bugs":{"url":"https://github.com/icelib/modern-ahocorasick/issues"},"author":"SonOfMagic <qq1324318532@gmail.com>","license":"MIT","homepage":"https://aho.icebreaker.top/","keywords":["ahocorasick","aho-corasick","multi-pattern-matching","string-matching","text-search","unicode","grapheme","typescript"],"repository":{"url":"git+https://github.com/icelib/modern-ahocorasick.git","type":"git","directory":"packages/modern-ahocorasick"},"description":"Unicode-aware Aho–Corasick multi-pattern matching with UTF-16 ranges, counting, lazy iteration, and replacement.","maintainers":[{"name":"icebreaker","email":"1324318532@qq.com"}],"readme":"# modern-ahocorasick\n\nNative extensions add dynamic dictionaries, Unicode folding streams, character boundaries, tokenization/replacement streams, Node/Web adapters, filters, previews and a double-array backend. See the [extension guide](https://aho.icebreaker.top/extensions). No runtime dependencies are added.\n\nMatch many keywords in Unicode text with Aho–Corasick. Compile a dictionary once,\nthen find, count or replace matches using ranges that work with JavaScript's `slice()`.\n\n[![npm](https://img.shields.io/npm/v/modern-ahocorasick)](https://www.npmjs.com/package/modern-ahocorasick)\n[![CI](https://github.com/icelib/modern-ahocorasick/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/icelib/modern-ahocorasick/actions/workflows/test.yml)\n[![MIT license](https://img.shields.io/npm/l/modern-ahocorasick)](https://github.com/icelib/modern-ahocorasick/blob/main/LICENSE)\n\n**English** · [简体中文](https://github.com/icelib/modern-ahocorasick/blob/main/README.zh-CN.md)\n\n[Documentation](https://aho.icebreaker.top/) · [Interactive workbench](https://aho.icebreaker.top/visualization) · [API reference](https://aho.icebreaker.top/api)\n\n## Install and find matches\n\n```sh\nnpm install modern-ahocorasick\n# or: pnpm add modern-ahocorasick\n```\n\n```js\nimport AhoCorasick from 'modern-ahocorasick'\n\nconst matcher = new AhoCorasick(['cat', '猫'])\nconst text = '😀cat和猫'\n\nconst matches = matcher.search(text)\n// [\n//   { pattern: 'cat', patternIndex: 0, start: 2, end: 5, data: undefined },\n//   { pattern: '猫', patternIndex: 1, start: 6, end: 7, data: undefined },\n// ]\n\nmatches.map(({ start, end }) => text.slice(start, end))\n// ['cat', '猫']\n```\n\nMatching respects complete Unicode grapheme clusters, including emoji and combining\ncharacters. Results use original-text **UTF-16 offsets**: `start` is inclusive and\n`end` is exclusive. Reuse the matcher across texts; construct a new one to change\nits dictionary.\n\n## Choose a method\n\n| You need                            | Method                                          | Result                                                |\n| ----------------------------------- | ----------------------------------------------- | ----------------------------------------------------- |\n| Check whether any keyword occurs    | `match(text)`                                   | Boolean; stops at the first hit                       |\n| Count every occurrence              | `count(text)`                                   | Number; includes overlaps and duplicate entries       |\n| Count each dictionary entry         | `countByPattern(text)`                          | Counts in input order; includes zeroes and duplicates |\n| Match incoming chunks               | `createStream(options?)`                        | Stateful writes, EOF flush and cancellation           |\n| Return one match without collecting | `findFirst()` / `findAt()`                      | Low-allocation first-hit queries                      |\n| Save or load a dictionary           | `serialize()` / `AhoCorasick.deserialize()`     | Versioned, validated compiled data                    |\n| Distribute a compiled artifact      | `serializeArtifact()` / `deserializeArtifact()` | Profile-validated Worker/Serverless payload           |\n| Collect matched ranges              | `search(text, options?)`                        | Array of independent match objects                    |\n| Read matches as needed              | `iterate(text, options?)`                       | Lazy iterator over match objects                      |\n| Replace non-overlapping matches     | `replace(text, replacement, options?)`          | New string                                            |\n\n`count()` avoids creating match objects. `iterate()` avoids collecting a result\narray and stops scanning when you stop consuming it. It accepts a complete string,\nnot a stream of chunks; the iterator retains the text and dictionary.\n\n```js\nimport AhoCorasick from 'modern-ahocorasick'\n\nconst matcher = new AhoCorasick(['he', 'she', 'hers'])\n\nmatcher.match('ushers') // true\nmatcher.count('ushers') // 3 — 'she', 'he' and 'hers' overlap\nmatcher.countByPattern('ushers') // [1, 1, 1]\n\nfor (const hit of matcher.iterate('ushers')) {\n  console.log(hit.pattern) // 'she'\n  if (hit.pattern === 'she') {\n    break\n  }\n}\n```\n\nFor full signatures and validation behavior, see the [API reference](https://aho.icebreaker.top/api).\n\n## Additional matching tools\n\n`countByPattern()`, whole-word options, streams, compiled persistence and the\noptional text adapter require v3.1.0 or later.\n\n```ts\nmatcher.countByPattern('ushers') // [1, 1, 1]\nnew AhoCorasick(['cat']).match('concatenate', { wholeWord: true, locale: 'en' }) // false\nconst restored = AhoCorasick.deserialize(matcher.serialize())\nconst stream = restored.createStream()\nconst hits = [...stream.write('ush'), ...stream.write('ers'), ...stream.finish()]\n```\n\nFor normalization or full Unicode case folding, import the separate\n`TextMatcher` constructor from `modern-ahocorasick/text`. It maps results back to\noriginal UTF-16 ranges, including expansions such as `ß` → `ss`. It also provides\ntransformed createStream(), createTokenStream(), createReplaceStream(),\nserialize() and deserialize(). The default entry keeps exact matching and does\nnot load the folding table.\n\nSee the [API guide](https://aho.icebreaker.top/api#whole-word-matching) for word\nboundary rules, metadata codecs, stream buffering/cancellation and conversion\ncosts. Stream tails are bounded explicitly and never silently truncated.\n\n## Select overlaps deliberately\n\n`search()` and `iterate()` default to `all`. Use a leftmost strategy when ranges\nmust not overlap, for example before highlighting text.\n\n| Strategy           | Selection                                                              | Order                                                           |\n| ------------------ | ---------------------------------------------------------------------- | --------------------------------------------------------------- |\n| `all`              | Every occurrence, including overlaps and duplicate entries             | End ascending; then pattern length descending; then input order |\n| `leftmost-first`   | Earliest start; input order breaks same-start ties                     | Start ascending, non-overlapping                                |\n| `leftmost-longest` | Earliest start; longest pattern wins same-start ties, then input order | Start ascending, non-overlapping                                |\n\n```js\nimport AhoCorasick from 'modern-ahocorasick'\n\nconst matcher = new AhoCorasick(['a', 'ab', 'bc'])\n\nmatcher.search('abc', { strategy: 'leftmost-first' }).map(hit => hit.pattern)\n// ['a', 'bc']\nmatcher.search('abc', { strategy: 'leftmost-longest' }).map(hit => hit.pattern)\n// ['ab']\n```\n\n“Longest” breaks ties at the same start; it does not choose the longest match\nanywhere in the text. Adjacent matches are retained. With `all`, the first result\nis the earliest-ending match, which is not necessarily the leftmost one.\nNon-overlapping iteration may look ahead by the longest keyword's grapheme length.\n\n## Attach metadata and replace text\n\nDictionary entries can be strings or `{ pattern, data }` records. Each input entry\nkeeps its `patternIndex`, so duplicate keywords remain distinct. Metadata is\ncaller-owned and retained by reference, not deep-cloned. Changing input records or\nreturned match objects does not reconfigure the matcher.\n\n```js\nimport AhoCorasick from 'modern-ahocorasick'\n\nconst matcher = new AhoCorasick([\n  { pattern: 'cat', data: { replacement: '猫' } },\n  { pattern: 'dog', data: { replacement: '狗' } },\n])\n\nmatcher.replace('cat and dog', hit => hit.data.replacement)\n// '猫 and 狗'\nmatcher.replace('cat', '$&') // '$&' — string replacements are literal\n```\n\n`replace()` defaults to `leftmost-longest` and also accepts `leftmost-first`.\nIt rejects `all`. A callback receives `(match, originalSubstring)` and must return\na string. Replacement runs once over the original ranges; inserted text is not\nsearched again. The library produces strings and ranges, not HTML; escape text\naccording to your rendering framework when highlighting.\n\n## Unicode and compatibility\n\nMatching is case-sensitive and does not normalize Unicode. `é` and `e\\u0301` are\ndifferent patterns, and `e` does not match inside `e\\u0301`. Grapheme boundaries\nfollow the runtime's ICU/Unicode version. Read [Unicode and indices](https://aho.icebreaker.top/unicode)\nfor examples and coordinate conventions.\n\n| Environment        | Requirement                                              |\n| ------------------ | -------------------------------------------------------- |\n| JavaScript runtime | ES2022 support and `Intl.Segmenter`; no bundled polyfill |\n| Modules            | ESM default import or direct CommonJS `require()`        |\n| TypeScript         | 5.3+ for the bundled declarations                        |\n\n```js\nconst AhoCorasick = require('modern-ahocorasick')\n\nconst matcher = new AhoCorasick(['cat'])\nmatcher.match('cat') // true\n```\n\n```ts\nimport type { Match, PatternInput } from 'modern-ahocorasick'\nimport AhoCorasick from 'modern-ahocorasick'\n\nconst patterns: PatternInput<{ id: string }>[] = [\n  { pattern: 'cat', data: { id: 'animal-cat' } },\n]\nconst matcher = new AhoCorasick(patterns)\nconst matches: Match<{ id: string }>[] = matcher.search('cat')\n```\n\nAn empty dictionary is valid. Empty keywords throw `RangeError`; invalid runtime\narguments throw `TypeError`. Counts above `Number.MAX_SAFE_INTEGER` throw\n`RangeError`. Development Node.js requirements are separate from consumer runtime\nrequirements.\n\n## Upgrade from v2\n\nv3 is available on npm. `search()` now returns individual match objects with UTF-16\nranges instead of grouped tuples. The default constructor export, direct\nCommonJS `require()` and `match(text): boolean` remain supported.\n\nFollow the [v2 → v3 migration guide](https://github.com/icelib/modern-ahocorasick/blob/main/packages/modern-ahocorasick/MIGRATION.md)\nand consult the [changelog](https://github.com/icelib/modern-ahocorasick/blob/main/packages/modern-ahocorasick/CHANGELOG.md).\n\n## Performance\n\nAho–Corasick compiles a reusable dictionary. For `g` input graphemes and `z`\noccurrences, all-match search takes O(g log(d + 1) + z) time, excluding runtime segmentation\ncosts; d is the maximum transition degree. `count()` uses aggregate counts in O(g log(d + 1)) scan time; `match()` can stop early.\nSearch retains its result array, while non-overlapping selection uses a candidate\nwindow bounded by the longest keyword. Replacement still allocates output text.\n\nPerformance depends on the dictionary, input, output density and runtime. See the\n[reproducible benchmarks](https://github.com/icelib/modern-ahocorasick/blob/main/docs/benchmarks-ascii.md)\nfor workload-specific results, memory measurements and comparison limitations.\n\n## Contribute\n\nSee the [contributing guide](https://github.com/icelib/modern-ahocorasick/blob/main/CONTRIBUTING.md)\nfor local development, validation, releases and documentation deployment.\n[Report a bug](https://github.com/icelib/modern-ahocorasick/issues) with a small\nreproduction and your runtime version.\n\n## License and credits\n\n[MIT](https://github.com/icelib/modern-ahocorasick/blob/main/LICENSE).\nOriginally forked from [BrunoRB/ahocorasick](https://github.com/BrunoRB/ahocorasick),\nbased on Aho and Corasick's “Efficient string matching: an aid to bibliographic search”.\nModern library maintained by [SonOfMagic](https://github.com/sonofmagic).\n\nThe optional text adapter includes Unicode 17 case-folding data under the\n[Unicode License V3](https://github.com/icelib/modern-ahocorasick/blob/main/packages/modern-ahocorasick/UNICODE-LICENSE.txt).\n\n## Ranges, anchoring and compile statistics\n\nEvery whole-text query accepts `start`, `end` and `anchored`. Offsets are original UTF-16 positions in a half-open range; defaults are `0`, `text.length` and `false`. Coordinates must be safe integers within the input, ordered and at original grapheme boundaries, otherwise a `RangeError` is thrown. A non-boolean `anchored` throws `TypeError`. An empty range has no matches. Anchoring accepts only hits beginning exactly at `start`.\n\n```ts\nimport AhoCorasick from 'modern-ahocorasick'\n\nconst matcher = new AhoCorasick(['abc', 'bc'])\nmatcher.search('!abc!', { start: 2, end: 4, anchored: true })\n// [{ pattern: 'bc', patternIndex: 1, start: 2, end: 4, data: undefined }]\nmatcher.replace('!abc!', 'X', { start: 2, end: 4 }) // '!aX!'\nmatcher.getStats() // frozen, cached scalar diagnostics\n```\n\n`search`, `iterate`, `match`, `count`, `countByPattern`, `replace` and `tokenize` share the contract, including `/unicode`, `/fast`, `/unicode-fast` and `/text`. Range filtering happens before overlap selection; whole-word and constructor boundary rules still inspect the complete input. Replacement and tokens retain text outside the range. Folding/normalization never changes the coordinate system. This is a semantic range filter; it does not promise work proportional only to the selected span. Streams reject these offline options (even `anchored: false`).\n\n`getStats()` on the default and derived compiled constructors returns `backend` (`compact` or `double-array`), `patternCount` (duplicates included), `stateCount` (root included, unused DAT slots excluded), `transitionCount` (trie edges), `alphabetSize`, `maxPatternUnits`, `unit` (`grapheme` or `folded-codepoint`) and `typedArrayBytes`. Folded units are codepoints after Unicode folding, so `ß` has two units there. Byte counts include retained typed scan/auxiliary arrays, including unused allocated slots; they exclude strings, Maps, JS objects, temporary build allocations, and native ICU. They are **not total heap usage**. Values are compiled once; reads do not traverse tables. Compact deserialization recreates identical statistics; serializing `/fast` uses the existing portable compact format, so restored backend/storage statistics describe compact storage. `/text` is a mapping adapter, not a compiled-constructor subclass, and does not expose `getStats()`.\n\nThe cross-language source assessment and measurements live in the repository's `docs/research/` directory. This batch borrows range/diagnostic and contiguous-output design ideas; the default backend remains compact and no native runtime dependency is added.\n","readmeFilename":""}