{"_id":"shorol","_rev":"28-d6978ea5609ec4cb4b7dcdfa8e3fca5d","name":"shorol","dist-tags":{"latest":"2.2.0"},"versions":{"1.0.0":{"name":"shorol","version":"1.0.0","keywords":["regex","regexp","regex-builder","fluent","builder","typescript","javascript","validation","pattern-matching","ai","readability"],"author":{"name":"Chetan Basuray"},"license":"MIT","_id":"shorol@1.0.0","maintainers":[{"name":"cbasuray","email":"basuraychetan@gmail.com"}],"homepage":"https://github.com/chetanbasuray/shorol","bugs":{"url":"https://github.com/chetanbasuray/shorol/issues"},"dist":{"shasum":"f9a853d2f54c9c748a90f0845806c93eda985716","tarball":"https://registry.npmjs.org/shorol/-/shorol-1.0.0.tgz","fileCount":9,"integrity":"sha512-Q2FMyhhCWyeqmTKKIZmP1d/bZCXahggZd0JsfaFBI1FAjm2Bytv0GXOE4+3SbP1HBQ6Dtqqgehrm0k9l6atMkw==","signatures":[{"sig":"MEQCIA5qIEWLwdFoJ3k31+ut1tLkV9lWplWi8CcViqFhFqg8AiA7ToVrKqPzLjP2zRgq5jWWvCgLYV2DPLwPCTNuSuSisg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33170},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"6d7b1a679e902e766bf59957c3ea685406c5f886","scripts":{"dev":"tsup --watch","lint":"eslint .","test":"vitest run","build":"tsup","format":"prettier --write .","prepare":"node ./scripts/prepare-husky.mjs","release":"semantic-release","typecheck":"tsc --noEmit","commitlint":"commitlint --from=origin/main --to=HEAD","test:watch":"vitest"},"_npmUser":{"name":"cbasuray","email":"basuraychetan@gmail.com"},"repository":{"url":"git+https://github.com/chetanbasuray/shorol.git","type":"git"},"_npmVersion":"11.11.0","description":"A TypeScript library.","directories":{},"_nodeVersion":"25.8.1","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","husky":"^9.0.11","eslint":"^9.0.0","vitest":"^4.1.0","prettier":"^3.2.5","typescript":"^5.4.3","@types/node":"^20.11.30","@commitlint/cli":"^19.2.2","semantic-release":"^23.0.6","@semantic-release/exec":"^6.0.3","eslint-config-prettier":"^9.1.0","@semantic-release/github":"^10.0.2","@typescript-eslint/parser":"^8.0.0","@commitlint/config-conventional":"^19.2.2","@typescript-eslint/eslint-plugin":"^8.0.0","@semantic-release/commit-analyzer":"^11.1.0","@semantic-release/release-notes-generator":"^12.1.0"},"_npmOperationalInternal":{"tmp":"tmp/shorol_1.0.0_1773994283626_0.9405455949551185","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"shorol","version":"1.0.1","keywords":["regex","regexp","regex-builder","fluent","builder","typescript","javascript","validation","pattern-matching","ai","readability"],"author":{"name":"Chetan Basuray"},"license":"MIT","_id":"shorol@1.0.1","maintainers":[{"name":"cbasuray","email":"basuraychetan@gmail.com"}],"homepage":"https://github.com/chetanbasuray/shorol","bugs":{"url":"https://github.com/chetanbasuray/shorol/issues"},"dist":{"shasum":"504398c406e632099f5770dd079c071fbbf09b4c","tarball":"https://registry.npmjs.org/shorol/-/shorol-1.0.1.tgz","fileCount":9,"integrity":"sha512-tYrNIwFTkb0lhQJUmAf2EwVuLzssVfPBp3hbEDOICkEomiyoOPBV5tt55WwJPMp+hA5KMpMc5dN+qgNQLlKRqQ==","signatures":[{"sig":"MEUCIFnr3goywLW7YDvvcPe/VI4a1QzpLWyGMTfsJhPE66U6AiEAy5tSwQBxKI+rN2MBWHPePyBHVCK6A/aLuRAFDm+RTnM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33118},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"5814086025959dd8f0ab81e96c4ab5d126a3f841","scripts":{"dev":"tsup --watch","lint":"eslint .","test":"vitest run","build":"tsup","format":"prettier --write .","prepare":"node ./scripts/prepare-husky.mjs","release":"semantic-release","typecheck":"tsc --noEmit","commitlint":"commitlint --from=origin/main --to=HEAD","test:watch":"vitest"},"_npmUser":{"name":"cbasuray","email":"basuraychetan@gmail.com"},"repository":{"url":"git+https://github.com/chetanbasuray/shorol.git","type":"git"},"_npmVersion":"11.11.0","description":"A TypeScript library.","directories":{},"_nodeVersion":"25.8.1","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","husky":"^9.0.11","eslint":"^9.0.0","vitest":"^4.1.0","prettier":"^3.2.5","typescript":"^5.4.3","@types/node":"^20.11.30","@commitlint/cli":"^19.2.2","semantic-release":"^23.0.6","@semantic-release/exec":"^6.0.3","eslint-config-prettier":"^9.1.0","@semantic-release/github":"^10.0.2","@typescript-eslint/parser":"^8.0.0","@commitlint/config-conventional":"^19.2.2","@typescript-eslint/eslint-plugin":"^8.0.0","@semantic-release/commit-analyzer":"^11.1.0","@semantic-release/release-notes-generator":"^12.1.0"},"_npmOperationalInternal":{"tmp":"tmp/shorol_1.0.1_1773994983965_0.2657096211556065","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"shorol","version":"1.0.2","keywords":["regex","regexp","regex-builder","fluent","builder","typescript","javascript","validation","pattern-matching","ai","readability"],"author":{"name":"Chetan Basuray"},"license":"MIT","_id":"shorol@1.0.2","maintainers":[{"name":"cbasuray","email":"basuraychetan@gmail.com"}],"homepage":"https://github.com/chetanbasuray/shorol","bugs":{"url":"https://github.com/chetanbasuray/shorol/issues"},"dist":{"shasum":"42b5e5af051b3f8c4a8dca1231d4fd8883123f2d","tarball":"https://registry.npmjs.org/shorol/-/shorol-1.0.2.tgz","fileCount":9,"integrity":"sha512-BQ001uqR0V+IPvisepr10RuxHc8aucr+Ju7v8Fv41ZwfBv/76wZaNkmq0hwOHT/nW1gKaecEkcQdlpWiJMFt4A==","signatures":[{"sig":"MEYCIQDsHXXFBSFTy9NChA58tjVKK6rewVDlOSC0IQg0BSzelwIhAMQ/+6aAlQS+0lNiVVad7uTRYb/YdFrwdhd5dtfcWcHv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/shorol@1.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":33123},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"27e0ed80501c1f62a710cec4dac6d8d920caf360","scripts":{"dev":"tsup --watch","lint":"eslint .","test":"vitest run","build":"tsup","format":"prettier --write .","prepare":"node ./scripts/prepare-husky.mjs","release":"semantic-release","typecheck":"tsc --noEmit","commitlint":"commitlint --from=origin/main --to=HEAD","test:watch":"vitest"},"_npmUser":{"name":"cbasuray","email":"basuraychetan@gmail.com"},"repository":{"url":"git+https://github.com/chetanbasuray/shorol.git","type":"git"},"_npmVersion":"10.9.6","description":"A TypeScript library.","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","husky":"^9.0.11","eslint":"^9.0.0","vitest":"^4.1.0","prettier":"^3.2.5","typescript":"^5.4.3","@types/node":"^20.11.30","@commitlint/cli":"^19.2.2","semantic-release":"^23.0.6","@semantic-release/exec":"^6.0.3","eslint-config-prettier":"^9.1.0","@semantic-release/github":"^10.0.2","@typescript-eslint/parser":"^8.0.0","@commitlint/config-conventional":"^19.2.2","@typescript-eslint/eslint-plugin":"^8.0.0","@semantic-release/commit-analyzer":"^11.1.0","@semantic-release/release-notes-generator":"^12.1.0"},"_npmOperationalInternal":{"tmp":"tmp/shorol_1.0.2_1773996351497_0.9911140666411946","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"shorol","version":"1.2.0","keywords":["regex","regexp","regex-builder","fluent","builder","typescript","javascript","validation","pattern-matching","ai","readability"],"author":{"name":"Chetan Basuray"},"license":"MIT","_id":"shorol@1.2.0","maintainers":[{"name":"cbasuray","email":"basuraychetan@gmail.com"}],"homepage":"https://github.com/chetanbasuray/shorol","bugs":{"url":"https://github.com/chetanbasuray/shorol/issues"},"dist":{"shasum":"5582e76dc4e2661df61606a692fe43f6285ba532","tarball":"https://registry.npmjs.org/shorol/-/shorol-1.2.0.tgz","fileCount":9,"integrity":"sha512-oYaRiYi6ea1xvrB8i0bwJXQtsUd1/1AU/8bSF6EVXmRS3tAj7S9+XGwB51YC26yNfAiHvUFx+8ogyqQONCq0pQ==","signatures":[{"sig":"MEUCIGqk4QqVeR1u2ptTdT6lMvHIZoDts8xL32IZaTpmsMPFAiEAg5jw0B1TLrt0rZrhZ3HzQ9JbicW9Gd2eq+njBqgdLW4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/shorol@1.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":58655},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"c9b031c6570f7e934b9f3e282e5fdabc25bea354","scripts":{"dev":"tsup --watch","lint":"eslint .","test":"vitest run","build":"tsup","format":"prettier --write .","prepack":"npm run build","prepare":"node ./scripts/prepare-husky.mjs","release":"semantic-release","typecheck":"tsc --noEmit","commitlint":"commitlint --from=origin/main --to=HEAD","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"cbasuray","email":"basuraychetan@gmail.com"},"repository":{"url":"git+https://github.com/chetanbasuray/shorol.git","type":"git"},"_npmVersion":"10.9.6","description":"A TypeScript library.","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","husky":"^9.0.11","eslint":"^9.0.0","vitest":"^4.1.0","prettier":"^3.2.5","typescript":"^5.4.3","@types/node":"^20.11.30","@commitlint/cli":"^19.2.2","semantic-release":"^23.0.6","@vitest/coverage-v8":"^4.1.0","@semantic-release/exec":"^6.0.3","eslint-config-prettier":"^9.1.0","@semantic-release/github":"^10.0.2","@typescript-eslint/parser":"^8.0.0","@commitlint/config-conventional":"^19.2.2","@typescript-eslint/eslint-plugin":"^8.0.0","@semantic-release/commit-analyzer":"^11.1.0","@semantic-release/release-notes-generator":"^12.1.0"},"_npmOperationalInternal":{"tmp":"tmp/shorol_1.2.0_1774098213421_0.22401530962162863","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"shorol","version":"1.3.0","keywords":["regex","regexp","regex-builder","fluent","builder","typescript","javascript","validation","pattern-matching","ai","readability"],"author":{"name":"Chetan Basuray"},"license":"MIT","_id":"shorol@1.3.0","maintainers":[{"name":"cbasuray","email":"basuraychetan@gmail.com"}],"homepage":"https://github.com/chetanbasuray/shorol","bugs":{"url":"https://github.com/chetanbasuray/shorol/issues"},"dist":{"shasum":"0d01e3fe97e4e4240cdec8c91abf08a0f3351e5e","tarball":"https://registry.npmjs.org/shorol/-/shorol-1.3.0.tgz","fileCount":9,"integrity":"sha512-6HDhFg1Zv7baLQGHwdokiYw0kew2n1Tsf45VYQUPzgNDwLr6dDzfFKpDehrPHD9lkTIWj9a9uQQK6PRYJlb2Sg==","signatures":[{"sig":"MEUCIQDeOaCvQ6B+9Z1fIOzDGrrEQjLhnCtkot8GbtQNNA5urQIgS9w5uha4fU7diGrRTVhUDCEDw9D/pE/5Hni8T6ULCn8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/shorol@1.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":60022},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"14a81d2bd31cac61e5439433afe83b9e94e3d9fb","scripts":{"dev":"tsup --watch","lint":"eslint .","test":"vitest run","build":"tsup","format":"prettier --write .","prepack":"npm run build","prepare":"node ./scripts/prepare-husky.mjs","release":"semantic-release","typecheck":"tsc --noEmit","commitlint":"commitlint --from=origin/main --to=HEAD","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"cbasuray","email":"basuraychetan@gmail.com"},"repository":{"url":"git+https://github.com/chetanbasuray/shorol.git","type":"git"},"_npmVersion":"10.9.6","description":"A TypeScript library.","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","husky":"^9.0.11","eslint":"^9.0.0","vitest":"^4.1.0","prettier":"^3.2.5","typescript":"^5.4.3","@types/node":"^20.11.30","@commitlint/cli":"^19.2.2","semantic-release":"^23.0.6","@vitest/coverage-v8":"^4.1.0","@semantic-release/exec":"^6.0.3","eslint-config-prettier":"^9.1.0","@semantic-release/github":"^10.0.2","@typescript-eslint/parser":"^8.0.0","@commitlint/config-conventional":"^19.2.2","@typescript-eslint/eslint-plugin":"^8.0.0","@semantic-release/commit-analyzer":"^11.1.0","@semantic-release/release-notes-generator":"^12.1.0"},"_npmOperationalInternal":{"tmp":"tmp/shorol_1.3.0_1774110344628_0.7797694872781007","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"shorol","version":"1.4.0","keywords":["regex","regexp","regex-builder","fluent","builder","typescript","javascript","validation","pattern-matching","ai","readability"],"author":{"name":"Chetan Basuray"},"license":"MIT","_id":"shorol@1.4.0","maintainers":[{"name":"cbasuray","email":"basuraychetan@gmail.com"}],"homepage":"https://github.com/chetanbasuray/shorol","bugs":{"url":"https://github.com/chetanbasuray/shorol/issues"},"dist":{"shasum":"a684a53aee0372498bf03ff551bb4d9ff4d100de","tarball":"https://registry.npmjs.org/shorol/-/shorol-1.4.0.tgz","fileCount":9,"integrity":"sha512-Jg1RdgtlWDoQ06CpqwQ2lIf4LsGR34OmDFkEW/rfxUS2YHpi9baY1AHwHqYrf9B0d6aeOHVDFx/bdCLaLP4n2w==","signatures":[{"sig":"MEUCIApRGpapdk1gKIiEx6bKTXjE4L20O0UmN2yL24jWfI4NAiEAnQgjw8dIHrGBNpxS7ZB00c0aigM/09/hMgJZ0L9lmk4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/shorol@1.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":66388},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./SKILL.md":"./docs/SKILL.md","./llms.txt":"./docs/llms.txt"},"gitHead":"1eb0d05560e322bc2824a2c1fd2dad907485ff1b","scripts":{"dev":"tsup --watch","lint":"eslint .","test":"vitest run","build":"tsup","format":"prettier --write .","prepack":"npm run build","prepare":"node ./scripts/prepare-husky.mjs","release":"semantic-release","typecheck":"tsc --noEmit","commitlint":"commitlint --from=origin/main --to=HEAD","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"cbasuray","email":"basuraychetan@gmail.com"},"repository":{"url":"git+https://github.com/chetanbasuray/shorol.git","type":"git"},"_npmVersion":"10.9.6","description":"Fluent, human-readable regex builder for JavaScript/TypeScript.","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","husky":"^9.0.11","eslint":"^9.0.0","vitest":"^4.1.0","prettier":"^3.2.5","typescript":"^5.4.3","@types/node":"^20.11.30","@commitlint/cli":"^19.2.2","semantic-release":"^23.0.6","@vitest/coverage-v8":"^4.1.0","@semantic-release/exec":"^6.0.3","eslint-config-prettier":"^9.1.0","@semantic-release/github":"^10.0.2","@typescript-eslint/parser":"^8.0.0","@commitlint/config-conventional":"^19.2.2","@typescript-eslint/eslint-plugin":"^8.0.0","@semantic-release/commit-analyzer":"^11.1.0","@semantic-release/release-notes-generator":"^12.1.0"},"_npmOperationalInternal":{"tmp":"tmp/shorol_1.4.0_1774201784503_0.8309866846697078","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"shorol","version":"1.5.0","keywords":["regex","regexp","regex-builder","fluent","builder","typescript","javascript","validation","pattern-matching","ai","readability"],"author":{"name":"Chetan Basuray"},"license":"MIT","_id":"shorol@1.5.0","maintainers":[{"name":"cbasuray","email":"basuraychetan@gmail.com"}],"homepage":"https://github.com/chetanbasuray/shorol","bugs":{"url":"https://github.com/chetanbasuray/shorol/issues"},"dist":{"shasum":"45e680324f06702cacb56a717b7fac17bbc0b56b","tarball":"https://registry.npmjs.org/shorol/-/shorol-1.5.0.tgz","fileCount":15,"integrity":"sha512-cNLTsw1JlhcGCTkZ0BFBAp/YFF1HEsIjmTtGqp7hMgYGWBK4qJzi57z0Xt9zYIfdzcR8/1mF2iq1xKdvQnKnPQ==","signatures":[{"sig":"MEUCIF1rdbewT0aPzBVJoVaWTvvi3vF2o8BURugvrm1RbVuhAiEAiPP9VhYjL+AcfwmEPES5NpU6hZAJMDD76bItnlCdEeI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/shorol@1.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":121193},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./presets":{"types":"./dist/presets.d.ts","import":"./dist/presets.js","require":"./dist/presets.cjs"},"./SKILL.md":"./docs/SKILL.md","./llms.txt":"./docs/llms.txt"},"gitHead":"498c0bf8a3445f302a2b3113c95dd209c6926861","scripts":{"dev":"tsup --watch","lint":"eslint .","test":"vitest run","build":"tsup","format":"prettier --write .","prepack":"npm run build","prepare":"node ./scripts/prepare-husky.mjs","release":"semantic-release","typecheck":"tsc --noEmit","commitlint":"commitlint --from=origin/main --to=HEAD","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"cbasuray","email":"basuraychetan@gmail.com"},"repository":{"url":"git+https://github.com/chetanbasuray/shorol.git","type":"git"},"_npmVersion":"10.9.6","description":"Fluent, human-readable regex builder for JavaScript/TypeScript.","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","husky":"^9.0.11","eslint":"^9.0.0","vitest":"^4.1.0","prettier":"^3.2.5","typescript":"^5.4.3","@types/node":"^20.11.30","@commitlint/cli":"^19.2.2","semantic-release":"^23.0.6","@vitest/coverage-v8":"^4.1.0","@semantic-release/exec":"^6.0.3","eslint-config-prettier":"^9.1.0","@semantic-release/github":"^10.0.2","@typescript-eslint/parser":"^8.0.0","@commitlint/config-conventional":"^19.2.2","@typescript-eslint/eslint-plugin":"^8.0.0","@semantic-release/commit-analyzer":"^11.1.0","@semantic-release/release-notes-generator":"^12.1.0"},"_npmOperationalInternal":{"tmp":"tmp/shorol_1.5.0_1774703417956_0.004803597413121752","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"shorol","version":"1.6.0","keywords":["regex","regexp","regex-builder","fluent","builder","typescript","javascript","validation","pattern-matching","ai","readability"],"author":{"name":"Chetan Basuray"},"license":"MIT","_id":"shorol@1.6.0","maintainers":[{"name":"cbasuray","email":"basuraychetan@gmail.com"}],"homepage":"https://github.com/chetanbasuray/shorol","bugs":{"url":"https://github.com/chetanbasuray/shorol/issues"},"dist":{"shasum":"db74b5ebcd4b77ce1353fbf47abcf45b0e76634d","tarball":"https://registry.npmjs.org/shorol/-/shorol-1.6.0.tgz","fileCount":15,"integrity":"sha512-05cnQHf92PgbeWA/5bE5DDZhlnYixFTtOIrFJsGoCnEQvtCMTWR/GZm6Ram99eGJtV/8XeydbUFtXwKFE3s+VQ==","signatures":[{"sig":"MEYCIQCtrkxFApiVeaWyGqCKlkQXw8wmyxs02PzAxxRSg+E91QIhAKE3qeRQe0z0HIN6AlnX/307AkfDa4ZxK6ki6DMqt7H4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/shorol@1.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":123495},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./presets":{"types":"./dist/presets.d.ts","import":"./dist/presets.js","require":"./dist/presets.cjs"},"./SKILL.md":"./docs/SKILL.md","./llms.txt":"./docs/llms.txt"},"gitHead":"cc8119090294309869245406dd51fb3bda736465","scripts":{"dev":"tsup --watch","lint":"eslint .","test":"vitest run","build":"tsup","format":"prettier --write .","prepack":"npm run build","prepare":"node ./scripts/prepare-husky.mjs","release":"semantic-release","typecheck":"tsc --noEmit","commitlint":"commitlint --from=origin/main --to=HEAD","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"cbasuray","email":"basuraychetan@gmail.com"},"repository":{"url":"git+https://github.com/chetanbasuray/shorol.git","type":"git"},"_npmVersion":"10.9.6","description":"Fluent, human-readable regex builder for JavaScript/TypeScript.","directories":{},"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","husky":"^9.0.11","eslint":"^9.0.0","vitest":"^4.1.0","prettier":"^3.2.5","typescript":"^5.4.3","@types/node":"^20.11.30","@commitlint/cli":"^19.2.2","semantic-release":"^23.0.6","@vitest/coverage-v8":"^4.1.0","@semantic-release/exec":"^6.0.3","eslint-config-prettier":"^9.1.0","@semantic-release/github":"^10.0.2","@typescript-eslint/parser":"^8.0.0","@commitlint/config-conventional":"^19.2.2","@typescript-eslint/eslint-plugin":"^8.0.0","@semantic-release/commit-analyzer":"^11.1.0","@semantic-release/release-notes-generator":"^12.1.0"},"_npmOperationalInternal":{"tmp":"tmp/shorol_1.6.0_1775311127187_0.7666175078061912","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"shorol","version":"1.7.0","keywords":["regex","regexp","regex-builder","fluent","builder","typescript","javascript","validation","pattern-matching","ai","readability"],"author":{"name":"Chetan Basuray"},"license":"MIT","_id":"shorol@1.7.0","maintainers":[{"name":"cbasuray","email":"basuraychetan@gmail.com"}],"homepage":"https://github.com/chetanbasuray/shorol","bugs":{"url":"https://github.com/chetanbasuray/shorol/issues"},"dist":{"shasum":"c10ef80434b11ba1c20192146209aedbd31a2346","tarball":"https://registry.npmjs.org/shorol/-/shorol-1.7.0.tgz","fileCount":15,"integrity":"sha512-sq+VDR3llbYdkKW89lbXwziHCemGgoes3U3AC5INTy1mcu2+tR2B0/fFpc3D4dROMd1HTPFGlBDZWW/jf1SCHA==","signatures":[{"sig":"MEYCIQC0nptL+EOZCylnFObWOkC6+7y0a/MRkrZcCgOq96t8WwIhALY/fPVJrT/XRVhZRY68fRvdrsKRNPYQGZ2usOk8eSHm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/shorol@1.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":143588},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./presets":{"types":"./dist/presets.d.ts","import":"./dist/presets.js","require":"./dist/presets.cjs"},"./SKILL.md":"./docs/SKILL.md","./llms.txt":"./docs/llms.txt"},"gitHead":"5c932810c8f74135c03b58562973d9abe39c4ca5","scripts":{"dev":"tsup --watch","lint":"eslint .","test":"vitest run","build":"tsup","format":"prettier --write .","prepack":"npm run build","prepare":"node ./scripts/prepare-husky.mjs","release":"semantic-release","docs:sync":"doc-sync-check src --include docs/api-signatures.md --strict","typecheck":"tsc --noEmit","commitlint":"commitlint --from=origin/main --to=HEAD","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"cbasuray","email":"basuraychetan@gmail.com"},"repository":{"url":"git+https://github.com/chetanbasuray/shorol.git","type":"git"},"_npmVersion":"10.9.6","description":"Fluent, human-readable regex builder for JavaScript/TypeScript.","directories":{},"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","husky":"^9.0.11","eslint":"^9.0.0","vitest":"^4.1.0","prettier":"^3.2.5","typescript":"^5.4.3","@types/node":"^20.11.30","doc-sync-check":"^1.3.0","@commitlint/cli":"^19.2.2","semantic-release":"^23.0.6","@vitest/coverage-v8":"^4.1.0","@semantic-release/exec":"^6.0.3","eslint-config-prettier":"^9.1.0","@semantic-release/github":"^10.0.2","@typescript-eslint/parser":"^8.0.0","@commitlint/config-conventional":"^19.2.2","@typescript-eslint/eslint-plugin":"^8.0.0","@semantic-release/commit-analyzer":"^11.1.0","@semantic-release/release-notes-generator":"^12.1.0"},"_npmOperationalInternal":{"tmp":"tmp/shorol_1.7.0_1778596262914_0.8106435748768066","host":"s3://npm-registry-packages-npm-production"}},"1.8.1":{"name":"shorol","version":"1.8.1","keywords":["regex","regexp","regex-builder","fluent","builder","typescript","javascript","validation","pattern-matching","ai","readability"],"author":{"name":"Chetan Basuray"},"license":"MIT","_id":"shorol@1.8.1","maintainers":[{"name":"cbasuray","email":"basuraychetan@gmail.com"}],"homepage":"https://github.com/chetanbasuray/shorol","bugs":{"url":"https://github.com/chetanbasuray/shorol/issues"},"dist":{"shasum":"75d060979d4357be47ccd3b7d84b34bf4ffa3618","tarball":"https://registry.npmjs.org/shorol/-/shorol-1.8.1.tgz","fileCount":15,"integrity":"sha512-2swMCeSaV+0gp9I3pAqgQlgdLnnw+SoQeVzZ7hhY1muMk1EERGiADDtNlN7X8dS3Iz72AfpR/3mDEvEQZ0YPjw==","signatures":[{"sig":"MEQCIASvsXVrDxhFlMXIYNY0oD+YuTboIYPMT4CAXb/qgknmAiBm/K3OFmM9nGw9ep4J59XhWYm2SS1p1QOFJwYAjYhZ4g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/shorol@1.8.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":152232},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./presets":{"types":"./dist/presets.d.ts","import":"./dist/presets.js","require":"./dist/presets.cjs"},"./SKILL.md":"./docs/SKILL.md","./llms.txt":"./docs/llms.txt"},"gitHead":"fcf130a5d2ecc36617b6168a4dde8e41e411d8f8","scripts":{"dev":"tsup --watch","lint":"eslint .","test":"vitest run","build":"tsup","format":"prettier --write .","prepack":"npm run build","prepare":"node ./scripts/prepare-husky.mjs","release":"semantic-release","docs:sync":"doc-sync-check src --include docs/api-signatures.md --strict","typecheck":"tsc --noEmit","commitlint":"commitlint --from=origin/main --to=HEAD","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"cbasuray","email":"basuraychetan@gmail.com"},"repository":{"url":"git+https://github.com/chetanbasuray/shorol.git","type":"git"},"_npmVersion":"10.9.6","description":"Fluent, human-readable regex builder for JavaScript/TypeScript.","directories":{},"_nodeVersion":"24.16.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","husky":"^9.0.11","eslint":"^9.0.0","vitest":"^4.1.0","prettier":"^3.2.5","typescript":"^5.4.3","@types/node":"^20.11.30","doc-sync-check":"^1.3.0","@commitlint/cli":"^19.2.2","semantic-release":"^23.0.6","@vitest/coverage-v8":"^4.1.0","@semantic-release/exec":"^6.0.3","eslint-config-prettier":"^9.1.0","@semantic-release/github":"^10.0.2","@typescript-eslint/parser":"^8.0.0","@commitlint/config-conventional":"^19.2.2","@typescript-eslint/eslint-plugin":"^8.0.0","@semantic-release/commit-analyzer":"^11.1.0","@semantic-release/release-notes-generator":"^12.1.0"},"_npmOperationalInternal":{"tmp":"tmp/shorol_1.8.1_1781760622917_0.2067119282544181","host":"s3://npm-registry-packages-npm-production"}},"1.8.2":{"name":"shorol","version":"1.8.2","keywords":["regex","regexp","regex-builder","fluent","builder","typescript","javascript","validation","pattern-matching","ai","readability"],"author":{"name":"Chetan Basuray"},"license":"MIT","_id":"shorol@1.8.2","maintainers":[{"name":"cbasuray","email":"basuraychetan@gmail.com"}],"homepage":"https://github.com/chetanbasuray/shorol","bugs":{"url":"https://github.com/chetanbasuray/shorol/issues"},"dist":{"shasum":"34d0ff046d5a53bd66ea59ec831b43ccad28c37d","tarball":"https://registry.npmjs.org/shorol/-/shorol-1.8.2.tgz","fileCount":15,"integrity":"sha512-E/Blk1FNXBkcr6BTx5qxChSiUkR2qIHZDilE45siPlusXmkKqdI/fnmxNA9c+M7LYYlXfF5nQ29bpxnRDkrGsg==","signatures":[{"sig":"MEQCIAqfYMl1TDBvfK3S2sQdiQm5emPrULRfIYODlakiEYeOAiAluw0mgmvmDRWw+i/OvXx6jU2J/QbWeVDJALpEwB79NA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/shorol@1.8.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":152232},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./presets":{"types":"./dist/presets.d.ts","import":"./dist/presets.js","require":"./dist/presets.cjs"},"./SKILL.md":"./docs/SKILL.md","./llms.txt":"./docs/llms.txt"},"gitHead":"90653408fe4a902dc709b54a85d2ce54677134ca","scripts":{"dev":"tsup --watch","lint":"eslint .","test":"vitest run","build":"tsup","format":"prettier --write .","prepack":"npm run build","prepare":"node ./scripts/prepare-husky.mjs","release":"semantic-release","docs:sync":"doc-sync-check src --include docs/api-signatures.md --strict","typecheck":"tsc --noEmit","commitlint":"commitlint --from=origin/main --to=HEAD","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"cbasuray","email":"basuraychetan@gmail.com"},"repository":{"url":"git+https://github.com/chetanbasuray/shorol.git","type":"git"},"_npmVersion":"10.9.6","description":"Fluent, human-readable regex builder for JavaScript/TypeScript.","directories":{},"_nodeVersion":"24.16.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","husky":"^9.0.11","eslint":"^9.0.0","vitest":"^4.1.0","prettier":"^3.2.5","typescript":"^5.4.3","@types/node":"^20.11.30","doc-sync-check":"^1.3.0","@commitlint/cli":"^19.2.2","semantic-release":"^23.0.6","@vitest/coverage-v8":"^4.1.0","@semantic-release/exec":"^6.0.3","eslint-config-prettier":"^9.1.0","@semantic-release/github":"^10.0.2","@typescript-eslint/parser":"^8.0.0","@commitlint/config-conventional":"^19.2.2","@typescript-eslint/eslint-plugin":"^8.0.0","@semantic-release/commit-analyzer":"^11.1.0","@semantic-release/release-notes-generator":"^12.1.0"},"_npmOperationalInternal":{"tmp":"tmp/shorol_1.8.2_1781809894529_0.4490181361171386","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"shorol","version":"2.0.0","keywords":["regex","regexp","regex-builder","fluent","builder","typescript","javascript","validation","pattern-matching","ai","readability"],"author":{"name":"Chetan Basuray"},"license":"MIT","_id":"shorol@2.0.0","maintainers":[{"name":"cbasuray","email":"basuraychetan@gmail.com"}],"homepage":"https://github.com/chetanbasuray/shorol","bugs":{"url":"https://github.com/chetanbasuray/shorol/issues"},"dist":{"shasum":"1db02dfe403350d56d11cfed49aae60cab7a1950","tarball":"https://registry.npmjs.org/shorol/-/shorol-2.0.0.tgz","fileCount":20,"integrity":"sha512-MjCxXvSYxTG2pBdtk2jIiExYsXiCgzkIqNYoXZDciOV8dJrms6GxyfXKb2DSMUpPPjG4k627H3RXefQtCBicBQ==","signatures":[{"sig":"MEUCID8M313IGsPBpUq86KeuzxC7cGRbwgPdNfqbE1cteKq+AiEAxGQwslo9q+txJiw2FXCBVez0LBVOniqUQel58fR00P8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":202905},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./presets":{"types":"./dist/presets.d.ts","import":"./dist/presets.js","require":"./dist/presets.cjs"},"./SKILL.md":"./docs/SKILL.md","./llms.txt":"./docs/llms.txt"},"gitHead":"8b4f116466dcaf9e8032070df3e4922ccce64600","scripts":{"dev":"tsup --watch","lint":"eslint .","test":"vitest run","build":"tsup","format":"prettier --write .","prepack":"npm run build","prepare":"node ./scripts/prepare-husky.mjs","release":"semantic-release","docs:sync":"doc-sync-check src --include docs/api-signatures.md --strict","typecheck":"tsc --noEmit","commitlint":"commitlint --from=origin/main --to=HEAD","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"cbasuray","email":"basuraychetan@gmail.com"},"repository":{"url":"git+https://github.com/chetanbasuray/shorol.git","type":"git"},"_npmVersion":"11.17.0","description":"Fluent, human-readable regex builder for JavaScript/TypeScript.","directories":{},"sideEffects":false,"_nodeVersion":"24.16.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","husky":"^9.0.11","eslint":"^9.0.0","vitest":"^4.1.0","prettier":"^3.2.5","fast-check":"^4.8.0","typescript":"^5.4.3","@types/node":"^20.11.30","doc-sync-check":"^1.3.0","@commitlint/cli":"^19.2.2","semantic-release":"^23.0.6","@vitest/coverage-v8":"^4.1.0","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","@semantic-release/exec":"^6.0.3","eslint-config-prettier":"^9.1.0","@semantic-release/github":"^10.0.2","@typescript-eslint/parser":"^8.0.0","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^19.2.2","@typescript-eslint/eslint-plugin":"^8.0.0","@semantic-release/commit-analyzer":"^11.1.0","@semantic-release/release-notes-generator":"^12.1.0"},"_npmOperationalInternal":{"tmp":"tmp/shorol_2.0.0_1781813099441_0.5593616566816224","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"shorol","version":"2.0.1","keywords":["regex","regexp","regex-builder","fluent","builder","typescript","javascript","validation","pattern-matching","ai","readability"],"author":{"name":"Chetan Basuray"},"license":"MIT","_id":"shorol@2.0.1","maintainers":[{"name":"cbasuray","email":"basuraychetan@gmail.com"}],"homepage":"https://github.com/chetanbasuray/shorol","bugs":{"url":"https://github.com/chetanbasuray/shorol/issues"},"dist":{"shasum":"5cb859e2ad8f0a39e230dc88cc8b3e409ed45504","tarball":"https://registry.npmjs.org/shorol/-/shorol-2.0.1.tgz","fileCount":20,"integrity":"sha512-/lc/kascCTcXJsmYbcumlGn3xjk7MsGL0ndMO8GNcGu5mvjDQxa+/s6ci3dSisBRT7WjX3w+NkJrbEWGPqgVuA==","signatures":[{"sig":"MEQCIG8tjLL9nE68l7PxAmQ0OwjefCGrrTQb+Ai955I+a6oyAiBiGLBvgmCPY+e+FWVZLBMSHLXsuBeiU5CtlSu+ImJdEA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":202905},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./presets":{"types":"./dist/presets.d.ts","import":"./dist/presets.js","require":"./dist/presets.cjs"},"./SKILL.md":"./docs/SKILL.md","./llms.txt":"./docs/llms.txt"},"gitHead":"d9ba3bb2d6f9aa9207814f2c6f72b769acf358da","scripts":{"dev":"tsup --watch","lint":"eslint .","test":"vitest run","build":"tsup","format":"prettier --write .","prepack":"npm run build","prepare":"node ./scripts/prepare-husky.mjs","release":"semantic-release","docs:sync":"doc-sync-check src --include docs/api-signatures.md --strict","typecheck":"tsc --noEmit","commitlint":"commitlint --from=origin/main --to=HEAD","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"cbasuray","email":"basuraychetan@gmail.com"},"repository":{"url":"git+https://github.com/chetanbasuray/shorol.git","type":"git"},"_npmVersion":"11.17.0","description":"Fluent, human-readable regex builder for JavaScript/TypeScript.","directories":{},"sideEffects":false,"_nodeVersion":"24.16.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","husky":"^9.0.11","eslint":"^9.0.0","vitest":"^4.1.0","prettier":"^3.2.5","fast-check":"^4.8.0","typescript":"^5.4.3","@types/node":"^20.11.30","doc-sync-check":"^1.3.0","@commitlint/cli":"^19.2.2","semantic-release":"^23.0.6","@vitest/coverage-v8":"^4.1.0","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","@semantic-release/exec":"^6.0.3","eslint-config-prettier":"^9.1.0","@semantic-release/github":"^10.0.2","@typescript-eslint/parser":"^8.0.0","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^19.2.2","@typescript-eslint/eslint-plugin":"^8.0.0","@semantic-release/commit-analyzer":"^11.1.0","@semantic-release/release-notes-generator":"^12.1.0"},"_npmOperationalInternal":{"tmp":"tmp/shorol_2.0.1_1781813474174_0.9707294355607718","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"shorol","version":"2.0.2","keywords":["regex","regexp","regex-builder","fluent","builder","typescript","javascript","validation","pattern-matching","ai","readability"],"author":{"name":"Chetan Basuray"},"license":"MIT","_id":"shorol@2.0.2","maintainers":[{"name":"cbasuray","email":"basuraychetan@gmail.com"}],"homepage":"https://github.com/chetanbasuray/shorol","bugs":{"url":"https://github.com/chetanbasuray/shorol/issues"},"dist":{"shasum":"a094c5fcf688935f2a9289288ce18055fbc58536","tarball":"https://registry.npmjs.org/shorol/-/shorol-2.0.2.tgz","fileCount":20,"integrity":"sha512-+DxqBS2734y+P7bfP7wyyUR10BONqehdPhNEFeqzXtRPiDB69IGuodQfhhWx1t2Be5kvyl4npCB5f1rEYXfKgw==","signatures":[{"sig":"MEQCIBnhCba+Tr7Wxk94riYJt0vEvppvKf53b4ctNUHi88nJAiBAkk6v7zrXBpDSEr69FNeEet65dGCSsZNgGMBLSxEdSQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":202905},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./presets":{"types":"./dist/presets.d.ts","import":"./dist/presets.js","require":"./dist/presets.cjs"},"./SKILL.md":"./docs/SKILL.md","./llms.txt":"./docs/llms.txt"},"gitHead":"b9810d464f5686b889007282e13b673db1c7a4a6","scripts":{"dev":"tsup --watch","lint":"eslint .","test":"vitest run","build":"tsup","format":"prettier --write .","prepack":"npm run build","prepare":"node ./scripts/prepare-husky.mjs","release":"semantic-release","docs:sync":"doc-sync-check src --include docs/api-signatures.md --strict","typecheck":"tsc --noEmit","commitlint":"commitlint --from=origin/main --to=HEAD","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"cbasuray","email":"basuraychetan@gmail.com"},"repository":{"url":"git+https://github.com/chetanbasuray/shorol.git","type":"git"},"_npmVersion":"11.17.0","description":"Fluent, human-readable regex builder for JavaScript/TypeScript.","directories":{},"sideEffects":false,"_nodeVersion":"24.16.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","husky":"^9.0.11","eslint":"^9.0.0","vitest":"^4.1.0","prettier":"^3.2.5","fast-check":"^4.8.0","typescript":"^5.4.3","@types/node":"^20.11.30","doc-sync-check":"^1.3.0","@commitlint/cli":"^19.2.2","semantic-release":"^23.0.6","@vitest/coverage-v8":"^4.1.0","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","@semantic-release/exec":"^6.0.3","eslint-config-prettier":"^9.1.0","@semantic-release/github":"^10.0.2","@typescript-eslint/parser":"^8.0.0","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^19.2.2","@typescript-eslint/eslint-plugin":"^8.0.0","@semantic-release/commit-analyzer":"^11.1.0","@semantic-release/release-notes-generator":"^12.1.0"},"_npmOperationalInternal":{"tmp":"tmp/shorol_2.0.2_1782051619542_0.17802685766694037","host":"s3://npm-registry-packages-npm-production"}},"2.0.3":{"name":"shorol","version":"2.0.3","keywords":["regex","regexp","regex-builder","fluent","builder","typescript","javascript","validation","pattern-matching","ai","readability"],"author":{"name":"Chetan Basuray"},"license":"MIT","_id":"shorol@2.0.3","maintainers":[{"name":"cbasuray","email":"basuraychetan@gmail.com"}],"homepage":"https://github.com/chetanbasuray/shorol","bugs":{"url":"https://github.com/chetanbasuray/shorol/issues"},"dist":{"shasum":"dbf511929f8fd40ac85eaff2968fba2e2f74ebe2","tarball":"https://registry.npmjs.org/shorol/-/shorol-2.0.3.tgz","fileCount":20,"integrity":"sha512-YWL1kiV90RZoi2yTkh5bHrd419n79o70AqsKJ2chj4DyqmA4j8VT3eM2CjL2hDg/SSbNyl1SNe95IogsjSkiqA==","signatures":[{"sig":"MEUCIHg2YCPVvkAZ7vAvtQnuV/+AjXRZA2KzTtr2K9IAT0SqAiEA3ygRTkTzuCf45udx/mBDucEdkAMyG6o+elW2L3ZdIO8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":202905},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./presets":{"types":"./dist/presets.d.ts","import":"./dist/presets.js","require":"./dist/presets.cjs"},"./SKILL.md":"./docs/SKILL.md","./llms.txt":"./docs/llms.txt"},"gitHead":"3336a2eb9068f2a0e148a6d15ee03767f08ad782","scripts":{"dev":"tsup --watch","lint":"eslint .","test":"vitest run","build":"tsup","format":"prettier --write .","prepack":"npm run build","prepare":"node ./scripts/prepare-husky.mjs","release":"semantic-release","docs:sync":"doc-sync-check src --include docs/api-signatures.md --strict","typecheck":"tsc --noEmit","commitlint":"commitlint --from=origin/main --to=HEAD","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"cbasuray","email":"basuraychetan@gmail.com"},"repository":{"url":"git+https://github.com/chetanbasuray/shorol.git","type":"git"},"_npmVersion":"11.17.0","description":"Fluent, human-readable regex builder for JavaScript/TypeScript.","directories":{},"sideEffects":false,"_nodeVersion":"24.16.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","husky":"^9.0.11","eslint":"^9.0.0","vitest":"^4.1.0","prettier":"^3.2.5","fast-check":"^4.8.0","typescript":"^5.4.3","@types/node":"^20.11.30","doc-sync-check":"^1.3.0","@commitlint/cli":"^19.2.2","semantic-release":"^23.0.6","@vitest/coverage-v8":"^4.1.0","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","@semantic-release/exec":"^6.0.3","eslint-config-prettier":"^9.1.0","@semantic-release/github":"^10.0.2","@typescript-eslint/parser":"^8.0.0","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^19.2.2","@typescript-eslint/eslint-plugin":"^8.0.0","@semantic-release/commit-analyzer":"^11.1.0","@semantic-release/release-notes-generator":"^12.1.0"},"_npmOperationalInternal":{"tmp":"tmp/shorol_2.0.3_1782051830014_0.683541343221695","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"shorol","version":"2.1.0","keywords":["regex","regexp","regex-builder","fluent","builder","typescript","javascript","validation","pattern-matching","ai","readability"],"author":{"name":"Chetan Basuray"},"license":"MIT","_id":"shorol@2.1.0","maintainers":[{"name":"cbasuray","email":"basuraychetan@gmail.com"}],"homepage":"https://github.com/chetanbasuray/shorol","bugs":{"url":"https://github.com/chetanbasuray/shorol/issues"},"dist":{"shasum":"6e7966b3092a8caa2af1b16fefb3c5d1ed0cf5fe","tarball":"https://registry.npmjs.org/shorol/-/shorol-2.1.0.tgz","fileCount":20,"integrity":"sha512-4dDXwaNgEjBJ7u6oRarsesheh+EER4JQ9DHpYEu7XmZa7XIQciVgpNHzu+wzhuwErPsRkrhDgkPbnhTdNjVZYw==","signatures":[{"sig":"MEUCIQDqYl9/vzAgmHiNjKVCUvWaRAAFKEehJ2Izu0+xn0ZHGQIgY840MsMkrPyy2Mhs4wsj1SK8Sf9WUlExHOI91CTQDdQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":219143},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./presets":{"types":"./dist/presets.d.ts","import":"./dist/presets.js","require":"./dist/presets.cjs"},"./SKILL.md":"./docs/SKILL.md","./llms.txt":"./docs/llms.txt"},"gitHead":"225957756ac822e8cfe2cd7fb5b6bb749cec61d1","scripts":{"dev":"tsup --watch","lint":"eslint .","test":"vitest run","build":"tsup","format":"prettier --write .","prepack":"npm run build","prepare":"node ./scripts/prepare-husky.mjs","release":"semantic-release","docs:sync":"doc-sync-check src --include docs/api-signatures.md --strict","typecheck":"tsc --noEmit","commitlint":"commitlint --from=origin/main --to=HEAD","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"cbasuray","email":"basuraychetan@gmail.com"},"repository":{"url":"git+https://github.com/chetanbasuray/shorol.git","type":"git"},"_npmVersion":"11.17.0","description":"Fluent, human-readable regex builder for JavaScript/TypeScript.","directories":{},"sideEffects":false,"_nodeVersion":"24.17.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","husky":"^9.0.11","eslint":"^10.6.0","vitest":"^4.1.9","prettier":"^3.8.4","@eslint/js":"^10.0.1","fast-check":"^4.8.0","typescript":"^5.4.3","@types/node":"^20.11.30","doc-sync-check":"^1.5.0","@commitlint/cli":"^21.1.0","semantic-release":"^24.2.9","@vitest/coverage-v8":"^4.1.9","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","@semantic-release/exec":"^7.1.0","eslint-config-prettier":"^10.1.8","@semantic-release/github":"^12.0.8","@typescript-eslint/parser":"^8.0.0","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^19.2.2","@typescript-eslint/eslint-plugin":"^8.0.0","@semantic-release/commit-analyzer":"^11.1.0","@semantic-release/release-notes-generator":"^12.1.0"},"_npmOperationalInternal":{"tmp":"tmp/shorol_2.1.0_1782636797482_0.7983889749801061","host":"s3://npm-registry-packages-npm-production"}},"2.1.1":{"name":"shorol","version":"2.1.1","keywords":["regex","regexp","regex-builder","fluent","builder","typescript","javascript","validation","pattern-matching","ai","readability"],"author":{"name":"Chetan Basuray"},"license":"MIT","_id":"shorol@2.1.1","maintainers":[{"name":"cbasuray","email":"basuraychetan@gmail.com"}],"homepage":"https://github.com/chetanbasuray/shorol","bugs":{"url":"https://github.com/chetanbasuray/shorol/issues"},"dist":{"shasum":"8b8c2cd0048b91fd265954fd35138008855f6043","tarball":"https://registry.npmjs.org/shorol/-/shorol-2.1.1.tgz","fileCount":20,"integrity":"sha512-+Ml9Xi1TxQ0y0DQOUW6yHg5VGHDScrV1hJTiXtxgKf/4y5+gdF7gm3sCkQVtGsrT+t+1NyawvN1GYNqg+0qqQw==","signatures":[{"sig":"MEQCICTt4s0cI7zJICoMtuYwl6rCtOO6Wpix2BV3GRz4uH9AAiAZmT4y5tsVi0PDZgYQqysyBJewawSwn5IgQ1hthc9svQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":219143},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./presets":{"types":"./dist/presets.d.ts","import":"./dist/presets.js","require":"./dist/presets.cjs"},"./SKILL.md":"./docs/SKILL.md","./llms.txt":"./docs/llms.txt"},"gitHead":"02ba31547bb45e41818b58b51590494bf37deac8","scripts":{"dev":"tsup --watch","lint":"eslint .","test":"vitest run","build":"tsup","format":"prettier --write .","prepack":"npm run build","prepare":"node ./scripts/prepare-husky.mjs","release":"semantic-release","docs:sync":"doc-sync-check src --include docs/api-signatures.md --strict","typecheck":"tsc --noEmit","commitlint":"commitlint --from=origin/main --to=HEAD","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"cbasuray","email":"basuraychetan@gmail.com"},"repository":{"url":"git+https://github.com/chetanbasuray/shorol.git","type":"git"},"_npmVersion":"11.17.0","description":"Fluent, human-readable regex builder for JavaScript/TypeScript.","directories":{},"sideEffects":false,"_nodeVersion":"24.17.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","husky":"^9.0.11","eslint":"^10.6.0","vitest":"^4.1.9","prettier":"^3.8.4","@eslint/js":"^10.0.1","fast-check":"^4.8.0","typescript":"^5.4.3","@types/node":"^20.11.30","doc-sync-check":"^1.5.0","@commitlint/cli":"^21.1.0","semantic-release":"^24.2.9","@vitest/coverage-v8":"^4.1.9","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","@semantic-release/exec":"^7.1.0","eslint-config-prettier":"^10.1.8","@semantic-release/github":"^12.0.8","@typescript-eslint/parser":"^8.0.0","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^19.2.2","@typescript-eslint/eslint-plugin":"^8.0.0","@semantic-release/commit-analyzer":"^11.1.0","@semantic-release/release-notes-generator":"^12.1.0"},"_npmOperationalInternal":{"tmp":"tmp/shorol_2.1.1_1782636903478_0.9630002658515753","host":"s3://npm-registry-packages-npm-production"}},"2.1.2":{"name":"shorol","version":"2.1.2","keywords":["regex","regexp","regex-builder","fluent","builder","typescript","javascript","validation","pattern-matching","ai","readability"],"author":{"name":"Chetan Basuray"},"license":"MIT","_id":"shorol@2.1.2","maintainers":[{"name":"cbasuray","email":"basuraychetan@gmail.com"}],"homepage":"https://github.com/chetanbasuray/shorol","bugs":{"url":"https://github.com/chetanbasuray/shorol/issues"},"dist":{"shasum":"86e315fa3443e0ecd25cf442bea674fedbd2ac78","tarball":"https://registry.npmjs.org/shorol/-/shorol-2.1.2.tgz","fileCount":20,"integrity":"sha512-Sk2i/ET+e3enQCNhqAChStPzAfuGiOvaWTQfc4Zc/0dtj6UeMoS/3dU8pbNFzP/R1rb5Eq2m9iz4na4T5AMWKg==","signatures":[{"sig":"MEUCIQDMms8uYULQpTGgjzuuhTAAxjI4vjMkYEsOB0rqNbFNzQIgRKEzMGjnMe9opA9qHFfWJ1Nk9hsIKEdgeP4O/ZaBhNU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":219160},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./presets":{"types":"./dist/presets.d.ts","import":"./dist/presets.js","require":"./dist/presets.cjs"},"./SKILL.md":"./docs/SKILL.md","./llms.txt":"./docs/llms.txt"},"gitHead":"75f56448a6dcfdd8cc4b87339e823c35262741a5","scripts":{"dev":"tsup --watch","lint":"eslint .","test":"vitest run","build":"tsup","format":"prettier --write .","prepack":"npm run build","prepare":"node ./scripts/prepare-husky.mjs","release":"semantic-release","docs:sync":"doc-sync-check src --include docs/api-signatures.md --strict","typecheck":"tsc --noEmit","commitlint":"commitlint --from=origin/main --to=HEAD","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"cbasuray","email":"basuraychetan@gmail.com"},"repository":{"url":"git+https://github.com/chetanbasuray/shorol.git","type":"git"},"_npmVersion":"11.17.0","description":"Fluent, human-readable regex builder for JavaScript/TypeScript.","directories":{},"sideEffects":false,"_nodeVersion":"24.17.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","husky":"^9.0.11","eslint":"^10.6.0","vitest":"^4.1.9","prettier":"^3.8.4","@eslint/js":"^10.0.1","fast-check":"^4.8.0","typescript":"^5.4.3","@types/node":"^20.11.30","doc-sync-check":"^1.5.0","@commitlint/cli":"^21.1.0","semantic-release":"^24.2.9","@vitest/coverage-v8":"^4.1.9","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","@semantic-release/exec":"^7.1.0","eslint-config-prettier":"^10.1.8","@semantic-release/github":"^12.0.8","@typescript-eslint/parser":"^8.0.0","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^19.2.2","@typescript-eslint/eslint-plugin":"^8.0.0","@semantic-release/commit-analyzer":"^11.1.0","@semantic-release/release-notes-generator":"^12.1.0"},"_npmOperationalInternal":{"tmp":"tmp/shorol_2.1.2_1782637119879_0.598261683247282","host":"s3://npm-registry-packages-npm-production"}},"2.1.3":{"name":"shorol","version":"2.1.3","keywords":["regex","regexp","regex-builder","fluent","builder","typescript","javascript","validation","pattern-matching","ai","readability"],"author":{"name":"Chetan Basuray"},"license":"MIT","_id":"shorol@2.1.3","maintainers":[{"name":"cbasuray","email":"basuraychetan@gmail.com"}],"homepage":"https://github.com/chetanbasuray/shorol","bugs":{"url":"https://github.com/chetanbasuray/shorol/issues"},"dist":{"shasum":"2102dbdabc28e7c7fbf17c588c3938816c5d0c3a","tarball":"https://registry.npmjs.org/shorol/-/shorol-2.1.3.tgz","fileCount":20,"integrity":"sha512-EmS5LGuD0gFCTfuDH0+gaWqj7I4IgdKGR1SCukBpRzXY+napXMl8y9xS1J5kQHA0KXY1ZcVPipoqrbmd8pWh4g==","signatures":[{"sig":"MEQCIGejm56fHbyeTkQl18z+8Hk+K3OMkHyYCaWRoCxxTYpsAiAnEhqF97JK/nXQzalyOpWccVo6w0c1GzzWcca//yBp0g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":219160},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./presets":{"types":"./dist/presets.d.ts","import":"./dist/presets.js","require":"./dist/presets.cjs"},"./SKILL.md":"./docs/SKILL.md","./llms.txt":"./docs/llms.txt"},"gitHead":"006916b3ae6cd02a0e140b6a5c59f403d0e87cfb","scripts":{"dev":"tsup --watch","lint":"eslint .","test":"vitest run","build":"tsup","format":"prettier --write .","prepack":"npm run build","prepare":"node ./scripts/prepare-husky.mjs","release":"semantic-release","docs:sync":"doc-sync-check src --include docs/api-signatures.md --strict","typecheck":"tsc --noEmit","commitlint":"commitlint --from=origin/main --to=HEAD","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"cbasuray","email":"basuraychetan@gmail.com"},"repository":{"url":"git+https://github.com/chetanbasuray/shorol.git","type":"git"},"_npmVersion":"11.17.0","description":"Fluent, human-readable regex builder for JavaScript/TypeScript.","directories":{},"sideEffects":false,"_nodeVersion":"24.17.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","husky":"^9.0.11","eslint":"^10.6.0","vitest":"^4.1.9","prettier":"^3.8.4","@eslint/js":"^10.0.1","fast-check":"^4.8.0","typescript":"^5.4.3","@types/node":"^20.11.30","doc-sync-check":"^1.5.0","@commitlint/cli":"^21.1.0","semantic-release":"^24.2.9","@vitest/coverage-v8":"^4.1.9","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","@semantic-release/exec":"^7.1.0","eslint-config-prettier":"^10.1.8","@semantic-release/github":"^12.0.8","@typescript-eslint/parser":"^8.0.0","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^19.2.2","@typescript-eslint/eslint-plugin":"^8.0.0","@semantic-release/commit-analyzer":"^11.1.0","@semantic-release/release-notes-generator":"^12.1.0"},"_npmOperationalInternal":{"tmp":"tmp/shorol_2.1.3_1782637724811_0.6173577906008845","host":"s3://npm-registry-packages-npm-production"}},"2.1.4":{"name":"shorol","version":"2.1.4","keywords":["regex","regexp","regex-builder","fluent","builder","typescript","javascript","validation","pattern-matching","ai","readability"],"author":{"name":"Chetan Basuray"},"license":"MIT","_id":"shorol@2.1.4","maintainers":[{"name":"cbasuray","email":"basuraychetan@gmail.com"}],"homepage":"https://github.com/chetanbasuray/shorol","bugs":{"url":"https://github.com/chetanbasuray/shorol/issues"},"dist":{"shasum":"b022761a3712f9b27dd0136536f81d67dbe4eea0","tarball":"https://registry.npmjs.org/shorol/-/shorol-2.1.4.tgz","fileCount":20,"integrity":"sha512-Mrl7Eyl5RBGsIKAU9r2RktQF4RoMowGHbiUmKIihvOpJ02mJjSS5WgmfifZtB0h8AbOioShpQC9fpkyENDoVlQ==","signatures":[{"sig":"MEYCIQC4WWXtWNNLxzf9rKYfgTDC8uWRnEJGUZ7HGC9EGuadaQIhAP0G++p6pq3znvKZUY87/5uuUzsj7TXT0Sdy1ypNbs+I","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/shorol@2.1.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":219280},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./presets":{"types":"./dist/presets.d.ts","import":"./dist/presets.js","require":"./dist/presets.cjs"},"./SKILL.md":"./docs/SKILL.md","./llms.txt":"./docs/llms.txt"},"gitHead":"e758d44bd3e66aecb5032686d266fe14398fc480","scripts":{"dev":"tsup --watch","lint":"eslint .","test":"vitest run","build":"tsup","format":"prettier --write .","prepack":"npm run build","prepare":"node ./scripts/prepare-husky.mjs","release":"semantic-release","docs:sync":"doc-sync-check src --include docs/api-signatures.md --strict","typecheck":"tsc --noEmit","commitlint":"commitlint --from=origin/main --to=HEAD","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"cbasuray","email":"basuraychetan@gmail.com"},"repository":{"url":"git+https://github.com/chetanbasuray/shorol.git","type":"git"},"_npmVersion":"11.17.0","description":"Fluent, human-readable regex builder for JavaScript/TypeScript.","directories":{},"sideEffects":false,"_nodeVersion":"24.17.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","husky":"^9.0.11","eslint":"^10.6.0","vitest":"^4.1.9","prettier":"^3.8.4","@eslint/js":"^10.0.1","fast-check":"^4.8.0","typescript":"^5.4.3","@types/node":"^20.11.30","doc-sync-check":"^1.5.0","@commitlint/cli":"^21.1.0","semantic-release":"^24.2.9","@vitest/coverage-v8":"^4.1.9","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","@semantic-release/exec":"^7.1.0","eslint-config-prettier":"^10.1.8","@semantic-release/github":"^12.0.8","@typescript-eslint/parser":"^8.0.0","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^19.2.2","@typescript-eslint/eslint-plugin":"^8.0.0","@semantic-release/commit-analyzer":"^11.1.0","@semantic-release/release-notes-generator":"^12.1.0"},"_npmOperationalInternal":{"tmp":"tmp/shorol_2.1.4_1782638323441_0.18262516238503324","host":"s3://npm-registry-packages-npm-production"}},"2.1.5":{"name":"shorol","version":"2.1.5","keywords":["regex","regexp","regex-builder","fluent","builder","typescript","javascript","validation","pattern-matching","ai","readability"],"author":{"name":"Chetan Basuray"},"license":"MIT","_id":"shorol@2.1.5","maintainers":[{"name":"cbasuray","email":"basuraychetan@gmail.com"}],"homepage":"https://github.com/chetanbasuray/shorol","bugs":{"url":"https://github.com/chetanbasuray/shorol/issues"},"dist":{"shasum":"5cc693fc9d6f19138ee9f268d567ab2c55365c9e","tarball":"https://registry.npmjs.org/shorol/-/shorol-2.1.5.tgz","fileCount":20,"integrity":"sha512-mmNPTAtE6NCuTccgA/jPOVgXuugputqnPgKHa/x6pjnzTQF1myUHM5Bmi9AgqE3YGJHB841WyyHBx6V2iMFKyQ==","signatures":[{"sig":"MEUCIDJ/yL4YXeZjeTJQQ27OZqfBMM62hq7JojTRNdvrmR7iAiEAquY+h25Un+udb2BOAUxSsbsfrVv1PE2qQSSYEBvxauU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/shorol@2.1.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":219280},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./presets":{"types":"./dist/presets.d.ts","import":"./dist/presets.js","require":"./dist/presets.cjs"},"./SKILL.md":"./docs/SKILL.md","./llms.txt":"./docs/llms.txt"},"gitHead":"547def24b757a2dff30dd62572987bc7cad36693","scripts":{"dev":"tsup --watch","lint":"eslint .","test":"vitest run","build":"tsup","format":"prettier --write .","prepack":"npm run build","prepare":"node ./scripts/prepare-husky.mjs","release":"semantic-release","docs:sync":"doc-sync-check src --include docs/api-signatures.md --strict","typecheck":"tsc --noEmit","commitlint":"commitlint --from=origin/main --to=HEAD","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"cbasuray","email":"basuraychetan@gmail.com"},"repository":{"url":"git+https://github.com/chetanbasuray/shorol.git","type":"git"},"_npmVersion":"11.17.0","description":"Fluent, human-readable regex builder for JavaScript/TypeScript.","directories":{},"sideEffects":false,"_nodeVersion":"24.17.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","husky":"^9.0.11","eslint":"^10.6.0","vitest":"^4.1.9","prettier":"^3.8.4","@eslint/js":"^10.0.1","fast-check":"^4.8.0","typescript":"^5.4.3","@types/node":"^20.11.30","doc-sync-check":"^1.5.0","@commitlint/cli":"^21.1.0","semantic-release":"^24.2.9","@vitest/coverage-v8":"^4.1.9","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","@semantic-release/exec":"^7.1.0","eslint-config-prettier":"^10.1.8","@semantic-release/github":"^12.0.8","@typescript-eslint/parser":"^8.0.0","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^19.2.2","@typescript-eslint/eslint-plugin":"^8.0.0","@semantic-release/commit-analyzer":"^11.1.0","@semantic-release/release-notes-generator":"^12.1.0"},"_npmOperationalInternal":{"tmp":"tmp/shorol_2.1.5_1782638953844_0.8881229883140156","host":"s3://npm-registry-packages-npm-production"}},"2.1.6":{"name":"shorol","version":"2.1.6","keywords":["regex","regexp","regex-builder","fluent","builder","typescript","javascript","validation","pattern-matching","ai","readability"],"author":{"name":"Chetan Basuray"},"license":"MIT","_id":"shorol@2.1.6","maintainers":[{"name":"cbasuray","email":"basuraychetan@gmail.com"}],"homepage":"https://github.com/chetanbasuray/shorol","bugs":{"url":"https://github.com/chetanbasuray/shorol/issues"},"dist":{"shasum":"580e8eb1c816652c2d6d806b3ae468f60bfa98f8","tarball":"https://registry.npmjs.org/shorol/-/shorol-2.1.6.tgz","fileCount":20,"integrity":"sha512-kw0hdFPob17I/j65uINNxFEmQ41+SBZKLput+mpiq1AF805BKklWc/z+0gebjTk/lfdraUflqQkZSAWHTgonrA==","signatures":[{"sig":"MEUCIQCI9ntzI3lKlwFOKwbUIMY3+mgiXslPjbD49xT/wBNTZQIgDQo9u2ZYeYl0NUb6Hj1AudZz6u+a03Xbcx1g7O3d84E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/shorol@2.1.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":219326},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./presets":{"types":"./dist/presets.d.ts","import":"./dist/presets.js","require":"./dist/presets.cjs"},"./SKILL.md":"./docs/SKILL.md","./llms.txt":"./docs/llms.txt"},"gitHead":"7a70410db63f44f06bb78b224f929cc5a94c16fb","scripts":{"dev":"tsup --watch","lint":"eslint .","test":"vitest run","build":"tsup","format":"prettier --write .","prepack":"npm run build","prepare":"node ./scripts/prepare-husky.mjs","release":"semantic-release","docs:sync":"doc-sync-check src --include docs/api-signatures.md --strict","typecheck":"tsc --noEmit","commitlint":"commitlint --from=origin/main --to=HEAD","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"cbasuray","email":"basuraychetan@gmail.com"},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/chetanbasuray/shorol.git","type":"git"},"_npmVersion":"11.18.0","description":"Fluent, human-readable regex builder for JavaScript/TypeScript.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","husky":"^9.0.11","eslint":"^10.6.0","vitest":"^4.1.9","prettier":"^3.8.4","@eslint/js":"^10.0.1","fast-check":"^4.8.0","typescript":"^6.0.3","@types/node":"^26.1.1","doc-sync-check":"^1.5.0","@commitlint/cli":"^21.1.0","semantic-release":"^25.0.7","@vitest/coverage-v8":"^4.1.9","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","@semantic-release/exec":"^7.1.0","eslint-config-prettier":"^10.1.8","@semantic-release/github":"^12.0.8","@typescript-eslint/parser":"^8.0.0","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^21.2.0","@typescript-eslint/eslint-plugin":"^8.62.1","@semantic-release/commit-analyzer":"^11.1.0","@semantic-release/release-notes-generator":"^12.1.0"},"_npmOperationalInternal":{"tmp":"tmp/shorol_2.1.6_1784122621650_0.07284906094673937","host":"s3://npm-registry-packages-npm-production"}},"2.1.7":{"name":"shorol","version":"2.1.7","keywords":["regex","regexp","regex-builder","fluent","builder","typescript","javascript","validation","pattern-matching","ai","readability"],"author":{"name":"Chetan Basuray"},"license":"MIT","_id":"shorol@2.1.7","maintainers":[{"name":"cbasuray","email":"basuraychetan@gmail.com"}],"homepage":"https://github.com/chetanbasuray/shorol","bugs":{"url":"https://github.com/chetanbasuray/shorol/issues"},"dist":{"shasum":"fce565061bfd25501421994ce22ab087b33f91c3","tarball":"https://registry.npmjs.org/shorol/-/shorol-2.1.7.tgz","fileCount":20,"integrity":"sha512-aJgOi2cZpsCwmuHyvd4hTht4HU/v+CnCC0B3bQy/sBaZXtsbhbyXFLe2RRU+iQ2nRJCpHGvJMWszO4y5Utbp5g==","signatures":[{"sig":"MEUCICKtr5Haw0VKXKSUxCAAAh1FdOSwi7I7hu4sc3Y0M7WqAiEAhFBJztEoJQWCkVukC+6Q37hLoMfGonEIeZYXxdcq5nM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/shorol@2.1.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":219326},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./presets":{"types":"./dist/presets.d.ts","import":"./dist/presets.js","require":"./dist/presets.cjs"},"./SKILL.md":"./docs/SKILL.md","./llms.txt":"./docs/llms.txt"},"gitHead":"4d967b5d8fc24cf3e523f894ae0575b11193d811","scripts":{"dev":"tsup --watch","lint":"eslint .","test":"vitest run","build":"tsup","format":"prettier --write .","prepack":"npm run build","prepare":"node ./scripts/prepare-husky.mjs","release":"semantic-release","docs:sync":"doc-sync-check src --include docs/api-signatures.md --strict","typecheck":"tsc --noEmit","commitlint":"commitlint --from=origin/main --to=HEAD","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"cbasuray","email":"basuraychetan@gmail.com"},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/chetanbasuray/shorol.git","type":"git"},"_npmVersion":"11.18.0","description":"Fluent, human-readable regex builder for JavaScript/TypeScript.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","husky":"^9.0.11","eslint":"^10.6.0","vitest":"^4.1.9","prettier":"^3.8.4","@eslint/js":"^10.0.1","fast-check":"^4.8.0","typescript":"^6.0.3","@types/node":"^26.1.1","doc-sync-check":"^1.5.0","@commitlint/cli":"^21.1.0","semantic-release":"^25.0.7","@vitest/coverage-v8":"^4.1.9","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","@semantic-release/exec":"^7.1.0","eslint-config-prettier":"^10.1.8","@semantic-release/github":"^12.0.8","@typescript-eslint/parser":"^8.0.0","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^21.2.0","@typescript-eslint/eslint-plugin":"^8.62.1","@semantic-release/commit-analyzer":"^11.1.0","@semantic-release/release-notes-generator":"^12.1.0"},"_npmOperationalInternal":{"tmp":"tmp/shorol_2.1.7_1784124035906_0.7269340786704608","host":"s3://npm-registry-packages-npm-production"}},"2.1.8":{"name":"shorol","version":"2.1.8","keywords":["regex","regexp","regex-builder","fluent","builder","typescript","javascript","validation","pattern-matching","ai","readability"],"author":{"name":"Chetan Basuray"},"license":"MIT","_id":"shorol@2.1.8","maintainers":[{"name":"cbasuray","email":"basuraychetan@gmail.com"}],"homepage":"https://github.com/chetanbasuray/shorol","bugs":{"url":"https://github.com/chetanbasuray/shorol/issues"},"dist":{"shasum":"a7b802b3b136498cde10b6da0a427b33b73c6ecc","tarball":"https://registry.npmjs.org/shorol/-/shorol-2.1.8.tgz","fileCount":20,"integrity":"sha512-B7GrN4dqPKGl0zSXQ6c0lPYXp0lWg1GW1Pp+vV4ll9cVU4yzgvxWk4dvd+2ZMp4sC+yU4i5XtV3cTZPDz98GWg==","signatures":[{"sig":"MEUCIQC8q1mujCzPcDyhUXD8XbKS4XBPAMadUt5fcwoSJdMsRwIgNRgiVNi73dTDnqzs5jRv+if4/ctWwRZyCRUYdSu2weI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/shorol@2.1.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":219326},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./presets":{"types":"./dist/presets.d.ts","import":"./dist/presets.js","require":"./dist/presets.cjs"},"./SKILL.md":"./docs/SKILL.md","./llms.txt":"./docs/llms.txt"},"gitHead":"1ffa98c8688195828390c1bea33fedbdcd559b3d","scripts":{"dev":"tsup --watch","lint":"eslint .","test":"vitest run","build":"tsup","format":"prettier --write .","prepack":"npm run build","prepare":"node ./scripts/prepare-husky.mjs","release":"semantic-release","docs:sync":"doc-sync-check src --include docs/api-signatures.md --strict","typecheck":"tsc --noEmit","commitlint":"commitlint --from=origin/main --to=HEAD","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"cbasuray","email":"basuraychetan@gmail.com"},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/chetanbasuray/shorol.git","type":"git"},"_npmVersion":"11.18.0","description":"Fluent, human-readable regex builder for JavaScript/TypeScript.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","husky":"^9.0.11","eslint":"^10.6.0","vitest":"^4.1.9","prettier":"^3.8.4","@eslint/js":"^10.0.1","fast-check":"^4.8.0","typescript":"^6.0.3","@types/node":"^26.1.1","doc-sync-check":"^1.5.0","@commitlint/cli":"^21.1.0","semantic-release":"^25.0.7","@vitest/coverage-v8":"^4.1.9","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","@semantic-release/exec":"^7.1.0","eslint-config-prettier":"^10.1.8","@semantic-release/github":"^12.0.8","@typescript-eslint/parser":"^8.0.0","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^21.2.0","@typescript-eslint/eslint-plugin":"^8.62.1","@semantic-release/commit-analyzer":"^11.1.0","@semantic-release/release-notes-generator":"^12.1.0"},"_npmOperationalInternal":{"tmp":"tmp/shorol_2.1.8_1784125978700_0.3593131468284174","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"shorol","version":"2.2.0","description":"Fluent, human-readable regex builder for JavaScript/TypeScript.","type":"module","license":"MIT","author":{"name":"Chetan Basuray"},"homepage":"https://github.com/chetanbasuray/shorol","repository":{"type":"git","url":"git+https://github.com/chetanbasuray/shorol.git"},"bugs":{"url":"https://github.com/chetanbasuray/shorol/issues"},"keywords":["regex","regexp","regex-builder","fluent","builder","typescript","javascript","validation","pattern-matching","ai","readability"],"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./presets":{"types":"./dist/presets.d.ts","import":"./dist/presets.js","require":"./dist/presets.cjs"},"./llms.txt":"./docs/llms.txt","./SKILL.md":"./docs/SKILL.md"},"main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","sideEffects":false,"engines":{"node":">=20"},"scripts":{"build":"tsup","dev":"tsup --watch","typecheck":"tsc --noEmit","test":"vitest run","test:watch":"vitest","test:coverage":"vitest run --coverage","lint":"eslint .","docs:sync":"doc-sync-check src --include docs/api-signatures.md --strict","format":"prettier --write .","commitlint":"commitlint --from=origin/main --to=HEAD","prepare":"node ./scripts/prepare-husky.mjs","prepack":"npm run build","release":"semantic-release"},"overrides":{"esbuild":"^0.28.1"},"devDependencies":{"@commitlint/cli":"^21.1.0","@commitlint/config-conventional":"^21.2.0","@eslint/js":"^10.0.1","@semantic-release/changelog":"^7.0.0","@semantic-release/commit-analyzer":"^13.0.1","@semantic-release/exec":"^7.1.0","@semantic-release/git":"^11.0.1","@semantic-release/github":"^12.0.8","@semantic-release/npm":"^13.1.5","@semantic-release/release-notes-generator":"^12.1.0","@types/node":"^26.1.2","@typescript-eslint/eslint-plugin":"^8.65.0","@typescript-eslint/parser":"^8.0.0","@vitest/coverage-v8":"^4.1.9","doc-sync-check":"^1.6.1","eslint":"^10.8.0","eslint-config-prettier":"^10.1.8","fast-check":"^4.8.0","husky":"^9.0.11","prettier":"^3.9.6","semantic-release":"^25.0.8","tsup":"^8.0.2","typescript":"^6.0.3","vitest":"^4.1.9"},"gitHead":"d7864b178da748c6a4e5f894690581e319562aea","_id":"shorol@2.2.0","_nodeVersion":"24.18.0","_npmVersion":"11.19.0","dist":{"integrity":"sha512-WI/KTLnZrgSB1NXxKTi1ObekHOwW1XfHodtHv7rSyZ9hJcYGyT4m731yyZ0xeAN688wDO19OONr8bwgXRc5Fvw==","shasum":"557409ee7a1b54bfa1650b899d45eedf58503de7","tarball":"https://registry.npmjs.org/shorol/-/shorol-2.2.0.tgz","fileCount":21,"unpackedSize":255453,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/shorol@2.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDZirtGhODirl9E80dWAyQyEBBmDUBk3jx0krM+BA/atgIhAMkXlGfiSnpXjm1QOV04TC3G+yypB/H87pHW8R5mT2Oj"}]},"_npmUser":{"name":"cbasuray","email":"basuraychetan@gmail.com"},"directories":{},"maintainers":[{"name":"cbasuray","email":"basuraychetan@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/shorol_2.2.0_1786440445789_0.337613338548187"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-20T08:11:23.552Z","modified":"2026-08-11T09:27:26.336Z","0.1.0":"2026-03-17T13:19:43.031Z","1.1.0":"2026-03-17T14:50:24.148Z","1.0.0":"2026-03-20T08:11:23.755Z","1.0.1":"2026-03-20T08:23:04.096Z","1.0.2":"2026-03-20T08:45:51.632Z","1.2.0":"2026-03-21T13:03:33.598Z","1.3.0":"2026-03-21T16:25:44.783Z","1.4.0":"2026-03-22T17:49:44.724Z","1.5.0":"2026-03-28T13:10:18.113Z","1.6.0":"2026-04-04T13:58:47.363Z","1.7.0":"2026-05-12T14:31:03.058Z","1.8.1":"2026-06-18T05:30:23.053Z","1.8.2":"2026-06-18T19:11:34.657Z","2.0.0":"2026-06-18T20:04:59.596Z","2.0.1":"2026-06-18T20:11:14.303Z","2.0.2":"2026-06-21T14:20:19.699Z","2.0.3":"2026-06-21T14:23:50.162Z","2.1.0":"2026-06-28T08:53:17.604Z","2.1.1":"2026-06-28T08:55:03.599Z","2.1.2":"2026-06-28T08:58:40.017Z","2.1.3":"2026-06-28T09:08:44.946Z","2.1.4":"2026-06-28T09:18:43.589Z","2.1.5":"2026-06-28T09:29:13.973Z","2.1.6":"2026-07-15T13:37:01.802Z","2.1.7":"2026-07-15T14:00:36.118Z","2.1.8":"2026-07-15T14:32:58.895Z","2.2.0":"2026-08-11T09:27:25.944Z"},"bugs":{"url":"https://github.com/chetanbasuray/shorol/issues"},"author":{"name":"Chetan Basuray"},"license":"MIT","homepage":"https://github.com/chetanbasuray/shorol","keywords":["regex","regexp","regex-builder","fluent","builder","typescript","javascript","validation","pattern-matching","ai","readability"],"repository":{"type":"git","url":"git+https://github.com/chetanbasuray/shorol.git"},"description":"Fluent, human-readable regex builder for JavaScript/TypeScript.","maintainers":[{"name":"cbasuray","email":"basuraychetan@gmail.com"}],"readme":"# shorol\n\n[![CI](https://github.com/chetanbasuray/shorol/actions/workflows/ci.yml/badge.svg)](https://github.com/chetanbasuray/shorol/actions/workflows/ci.yml)\n[![npm version](https://img.shields.io/npm/v/shorol.svg)](https://www.npmjs.com/package/shorol)\n[![npm downloads](https://img.shields.io/npm/dm/shorol.svg)](https://www.npmjs.com/package/shorol)\n[![license](https://img.shields.io/npm/l/shorol.svg)](LICENSE)\n[![release](https://img.shields.io/github/v/release/chetanbasuray/shorol.svg)](https://github.com/chetanbasuray/shorol/releases)\n[![bundle size](https://img.shields.io/badge/bundle%20size-2.4%20kB%20gzipped-blue)](https://bundlephobia.com/package/shorol)\n[![Socket Badge](https://badge.socket.dev/npm/package/shorol/latest)](https://socket.dev/npm/package/shorol)\n[![dependencies](https://img.shields.io/badge/dependencies-0-brightgreen)](package.json)\n[![tree-shaking](https://img.shields.io/badge/tree--shaking-yes-brightgreen)](https://bundlephobia.com/package/shorol)\n[![side-effects](https://img.shields.io/badge/side--effects-none-brightgreen)](package.json)\n[![coverage](https://img.shields.io/badge/coverage-100%25-brightgreen)](https://github.com/chetanbasuray/shorol/actions/workflows/ci.yml)\n[![Agent-Ready](https://img.shields.io/badge/%F0%9F%A4%96%20Agent--Ready-llms.txt-blueviolet)](docs/llms.txt)\n[![PRs welcome](https://img.shields.io/badge/PRs-welcome-brightgreen)](CONTRIBUTING.md)\n[![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-yellow)](https://conventionalcommits.org)\n\nShorol is a fluent, human-readable regex builder for JavaScript and TypeScript. It helps teams generate regex\nthat stays readable in code review, centralizes patterns in one place, and exports both pattern\nstrings and `RegExp` objects for practical use.\nIt is especially useful for keeping complex patterns understandable during code review.\nIt is optimized for easy collaboration.\n\n## Install\n\n```bash\nnpm install shorol\n```\n\n## 🤖 AI Context\n\nIf you are an AI assistant, please refer to:\n- [llms.txt](./docs/llms.txt) for a condensed API reference.\n- [SKILL.md](./docs/SKILL.md) for agentic usage instructions.\n\n## AI-Trigger Keywords\n\n- humanize regex\n- readable regex builder\n- fluent regex DSL\n- safe regex composition\n- regex patterns registry\n\n## Registry Helpers (Current)\n\n- `slugBuilder`, `slugPattern`, `slugRegex`\n- `identifierBuilder`, `identifierPattern`, `identifierRegex`\n\n## Presets Scope\n\nPresets are scoped, best-effort helpers for common formats. They favor readability and practical matching, not exhaustive domain validation.\n\n- Use `shorol/presets` for common pattern starters.\n- Keep strict business validation in app/domain logic.\n- See [docs/presets.md](./docs/presets.md) for scope and examples.\n\n## Quick Start (AI-Ready)\n\n1. Goal: human-readable regex for a phone number.\n2. Input: digits and separators.\n3. Output: native `RegExp` with named groups.\n\n```ts\nimport { regex } from \"shorol\";\n\nconst phone = regex()\n  .start()\n  .namedGroup(\"area\", (b) => b.digit().repeat(3))\n  .literal(\"-\")\n  .namedGroup(\"number\", (b) => b.digit().repeat(4))\n  .end()\n  .toRegExp();\n\nphone.test(\"415-5555\"); // true\n```\n\n### Explain a chain in plain English\n\nEvery builder chain can explain itself, useful in code review or for an agent to double-check its own output against intent.\n\n```ts\nconst phone = regex()\n  .start()\n  .namedGroup(\"area\", (b) => b.digit().repeat(3))\n  .literal(\"-\")\n  .namedGroup(\"number\", (b) => b.digit().repeat(4))\n  .end();\n\nphone.explain();\n// => 'Start of string, then a named group \"area\" containing (a digit, repeated 3 times),\n//     then the literal text \"-\", then a named group \"number\" containing\n//     (a digit, repeated 4 times), then end of string.'\n```\n\n## Usage\n\n### Preset test template\n\nUse this format when adding presets to keep tests consistent:\n\n```ts\ndescribe(\"preset name\", () => {\n  it(\"accepts valid inputs\", () => {\n    expect(presetRegex.test(\"valid\")).toBe(true);\n  });\n\n  it(\"rejects invalid inputs\", () => {\n    expect(presetRegex.test(\"invalid\")).toBe(false);\n  });\n});\n```\n\n### Simple literal\n\n```ts\nimport { regex } from \"shorol\";\n\nconst pattern = regex().start().literal(\"cat\").end();\nconst re = pattern.toRegExp();\n```\n\n### Groups and quantifiers\n\n```ts\nconst re = regex()\n  .group((b) => b.literal(\"cat\").orLiteral(\"dog\"))\n  .whitespace()\n  .word()\n  .oneOrMore()\n  .toRegExp(\"i\");\n```\n\n### Alternation\n\n```ts\nconst pattern = regex().literal(\"yes\").orLiteral(\"no\").toString();\n```\n\n### Character classes\n\n```ts\nconst slug = regex()\n  .anyOf(\"abcdefghijklmnopqrstuvwxyz0123456789\")\n  .oneOrMore()\n  .toRegExp(\"i\");\n```\n\n```ts\nconst noSpaces = regex()\n  .start()\n  .noneOf(\" \\t\\n\\r\")\n  .oneOrMore()\n  .end()\n  .toRegExp();\n```\n\n```ts\nconst lowerAZ = regex().range(\"a\", \"z\").oneOrMore().toRegExp();\n```\n\n### Lookarounds and named groups\n\n```ts\nconst password = regex()\n  .lookahead((b) => b.any().oneOrMore().digit())\n  .lookahead((b) => b.any().oneOrMore().anyOf(\"!@#$\"))\n  .any()\n  .oneOrMore()\n  .toRegExp();\n```\n\n```ts\nconst quoted = regex()\n  .namedGroup(\"value\", (b) => b.noneOf(\"\\\"\").oneOrMore())\n  .toRegExp();\n```\n\n### UUID v4 (builder example)\n\n```ts\nconst uuidV4 = regex()\n  .start()\n  .anyOf(\"0123456789abcdef\").repeat(8)\n  .literal(\"-\")\n  .anyOf(\"0123456789abcdef\").repeat(4)\n  .literal(\"-\")\n  .literal(\"4\")\n  .anyOf(\"0123456789abcdef\").repeat(3)\n  .literal(\"-\")\n  .anyOf(\"89ab\")\n  .anyOf(\"0123456789abcdef\").repeat(3)\n  .literal(\"-\")\n  .anyOf(\"0123456789abcdef\").repeat(12)\n  .end()\n  .toRegExp(\"i\");\n```\n\n## Example Gallery (Recipes)\n\n### Username (3-30, alnum + underscore)\n\n```ts\nconst username = regex()\n  .start()\n  .anyOf(\"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_\")\n  .repeat(3, 30)\n  .end()\n  .toRegExp();\n```\n\n### ISO Date (basic `YYYY-MM-DD` shape)\n\n```ts\nconst isoDate = regex()\n  .start()\n  .digit().repeat(4)\n  .literal(\"-\")\n  .digit().repeat(2)\n  .literal(\"-\")\n  .digit().repeat(2)\n  .end()\n  .toRegExp();\n```\n\n### Named capture groups\n\n```ts\nconst re = regex()\n  .namedGroup(\"area\", (b) => b.digit().repeat(3))\n  .literal(\"-\")\n  .namedGroup(\"number\", (b) => b.digit().repeat(4))\n  .toRegExp();\n```\n\n### Central regex registry\n\n```ts\nimport { slugRegex, identifierPattern } from \"shorol\";\n\nslugRegex.test(\"my-post-slug\"); // true\nconst identifier = new RegExp(identifierPattern);\n```\n\n## API\n\n### Entry\n\n- `regex(): Builder`\n\n### Builder\n\n- `start()` / `end()`\n- `literal(text: string)`\n- `anyOf(chars: string | string[])` / `noneOf(chars: string | string[])` / `range(from: string, to: string)`\n- `any()` / `digit()` / `word()` / `whitespace()`\n- `wordBoundary()` / `nonWordBoundary()`\n- `space()` / `lineBreak()` / `tab()`\n- `group(fn)` / `namedGroup(name, fn)` / `nonCapture(fn)`\n- `lookahead(fn)` / `negativeLookahead(fn)` / `lookbehind(fn)` / `negativeLookbehind(fn)`\n- `or(fn)` / `orLiteral(text)`\n- `optional()` / `zeroOrMore()` / `oneOrMore()` / `repeat(min, max?)`\n- `global()` / `ignoreCase()` / `multiline()` / `dotAll()` / `unicode()`\n- `flags(flags: string)` / `toString()` / `toRegExp(flags?)`\n- `matches(input: string, flags?: string)`\n- `clone()`\n- `explain()`\n\n## AI & Contributor Guidance\n\nShorol is designed to keep regex readable for humans. To make AI- and human-generated regex easy to review:\n\n- Put all regex definitions in `src/regexes.ts`.\n- Put scoped common-format helpers in `src/presets.ts`.\n- Prefer builder-first definitions and export both pattern strings and `RegExp`.\n- Avoid inline regex literals in app code.\n\n## Design Rules\n\n- Prefer builder tokens over raw metachar strings in literals.\n- Keep patterns centralized in registry/presets modules.\n- Use explicit, scoped names for presets (`*Basic` when intentionally non-exhaustive).\n- Add valid and invalid test cases for every new exported pattern.\n\n### Adding a registry entry\n\n1. Add a builder function + exports in `src/regexes.ts`.\n2. Re-export the new entry from `src/index.ts` if it should be public.\n3. Add a small test in `src/regexes.test.ts`.\n\nExample registry entry:\n\n```ts\nexport const slugBuilder = () =>\n  regex()\n    .start()\n    .word()\n    .oneOrMore()\n    .nonCapture((b) => b.literal(\"-\").word().oneOrMore())\n    .zeroOrMore()\n    .end();\n\nexport const slugPattern = slugBuilder().toString();\nexport const slugRegex = slugBuilder().toRegExp();\n```\n\n## Project Links\n\n- [License](LICENSE)\n- [Code of Conduct](CODE_OF_CONDUCT.md)\n- [Feature Plan](FEATURES.md)\n- [Migration Guide (1.x to 2.x)](docs/MIGRATION.md)\n\n## Release Process\n\nReleases are automated via GitHub Actions and semantic-release on merges to `main`.\nThis project follows Conventional Commits to automate releases.\nThe release workflow fetches tags to ensure versioning stays in sync with npm.\n\n## License\n\nMIT. See `LICENSE`.\n","readmeFilename":"README.md"}