{"_id":"@a16njs/glob-hook","_rev":"10-7689e0c2649984068bb26dff821ac708","name":"@a16njs/glob-hook","dist-tags":{"latest":"1.0.1"},"versions":{"0.0.1":{"name":"@a16njs/glob-hook","version":"0.0.1","keywords":["a16n","glob","hook","claude","cli"],"author":{"name":"Texarkanine"},"license":"AGPL-3.0","_id":"@a16njs/glob-hook@0.0.1","maintainers":[{"name":"texarkanine","email":"texarkanine@protonmail.com"}],"homepage":"https://github.com/Texarkanine/a16n#readme","bugs":{"url":"https://github.com/Texarkanine/a16n/issues"},"bin":{"glob-hook":"dist/index.js"},"dist":{"shasum":"cc87d646d9c996b981a121710d99064866875df9","tarball":"https://registry.npmjs.org/@a16njs/glob-hook/-/glob-hook-0.0.1.tgz","fileCount":18,"integrity":"sha512-a/MPgWUpUn8oARTL8GG5s5aXeoWeB1uPf7CDNeUknq53v5lzupurPRQ8CnpR61c6kRpL4vTqHxyB+DVnaDPRjw==","signatures":[{"sig":"MEUCIQD8U8cz+p762Zx/EuSwQToq47yN7O71HLDCQjOw9obqQwIgJRyUE5Tg//HQohxki+XGm5l6xBHkrc+FVtTcFH0bQiM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":17534},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"8d14148a6988b24173bdd9a62c3f0a1702f17458","scripts":{"test":"vitest run","build":"tsc","clean":"rimraf dist *.tsbuildinfo","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"texarkanine","email":"texarkanine@protonmail.com"},"repository":{"url":"git+https://github.com/Texarkanine/a16n.git","type":"git","directory":"packages/glob-hook"},"_npmVersion":"10.9.2","description":"CLI tool for glob-based file path matching in Claude Code hooks","directories":{},"_nodeVersion":"22.15.0","dependencies":{"micromatch":"^4.0.8"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","typescript":"^5.4.0","@types/node":"^20.0.0","@types/micromatch":"^4.0.9"},"_npmOperationalInternal":{"tmp":"tmp/glob-hook_0.0.1_1769377896139_0.953122404780318","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@a16njs/glob-hook","version":"0.1.0","keywords":["a16n","glob","hook","claude","cli"],"author":{"name":"Texarkanine"},"license":"AGPL-3.0","_id":"@a16njs/glob-hook@0.1.0","maintainers":[{"name":"texarkanine","email":"texarkanine@protonmail.com"}],"homepage":"https://github.com/Texarkanine/a16n#readme","bugs":{"url":"https://github.com/Texarkanine/a16n/issues"},"bin":{"glob-hook":"dist/index.js"},"dist":{"shasum":"faf414f4506ea0f5cb8239fd3bd94f371b26a07c","tarball":"https://registry.npmjs.org/@a16njs/glob-hook/-/glob-hook-0.1.0.tgz","fileCount":19,"integrity":"sha512-C0lPupn2XnM8TowLfjlY1q+Q0RB20l8dEO4ZMEOMXJ/I76AuQGllegy5xltmPjx+e+1dNvVdvFPiTsNrCpy9fA==","signatures":[{"sig":"MEYCIQCTrrduzMyIWFJ0TQJpnOli3XMkxWY5NJ/+eanVhC6wCgIhANr48FLezDh4g7l6qnS8/2/1PLa+F/FZrfmpK8PmqWUd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@a16njs%2fglob-hook@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":52047},"main":"./dist/index.js","type":"module","_from":"file:a16njs-glob-hook-0.1.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc","clean":"rimraf dist *.tsbuildinfo","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3837a9cc-1601-4a1f-9ca0-d4311191c5a9"}},"_resolved":"/tmp/e5d864bdf99fbb6370b003f5550c632e/a16njs-glob-hook-0.1.0.tgz","_integrity":"sha512-C0lPupn2XnM8TowLfjlY1q+Q0RB20l8dEO4ZMEOMXJ/I76AuQGllegy5xltmPjx+e+1dNvVdvFPiTsNrCpy9fA==","repository":{"url":"git+https://github.com/Texarkanine/a16n.git","type":"git","directory":"packages/glob-hook"},"_npmVersion":"11.8.0","description":"CLI tool for glob-based file path matching in Claude Code hooks","directories":{},"_nodeVersion":"24.13.0","dependencies":{"micromatch":"^4.0.8"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","typescript":"^5.4.0","@types/node":"^20.0.0","@types/micromatch":"^4.0.9"},"_npmOperationalInternal":{"tmp":"tmp/glob-hook_0.1.0_1769635727494_0.328988267206916","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@a16njs/glob-hook","version":"0.2.0","keywords":["a16n","glob","hook","claude","cli"],"author":{"name":"Texarkanine"},"license":"AGPL-3.0","_id":"@a16njs/glob-hook@0.2.0","maintainers":[{"name":"texarkanine","email":"texarkanine@protonmail.com"}],"homepage":"https://github.com/Texarkanine/a16n#readme","bugs":{"url":"https://github.com/Texarkanine/a16n/issues"},"bin":{"glob-hook":"dist/index.js"},"dist":{"shasum":"9fa9f21cf7054df6065771342d5fbc82750abced","tarball":"https://registry.npmjs.org/@a16njs/glob-hook/-/glob-hook-0.2.0.tgz","fileCount":19,"integrity":"sha512-WQLVC2glH7Q9Eh+pz9EUxL489aD8OdqEr5TKAtgQTYBHh8aGcXbR4Acn8xCj643uZe+OBrpBOoiA78x8YnCXEg==","signatures":[{"sig":"MEYCIQCPW+N9NQ62klDR0vnxFy3UTRXlqNbzysDsNkSt9/fZ3AIhAPw0IBppGVQ/JmdUiI+qiuRVgD6VK5Ez3cw3bi74gQOm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@a16njs%2fglob-hook@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":52069},"main":"./dist/index.js","type":"module","_from":"file:a16njs-glob-hook-0.2.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc","clean":"rimraf dist *.tsbuildinfo","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3837a9cc-1601-4a1f-9ca0-d4311191c5a9"}},"_resolved":"/tmp/1b7c6b964e07e5de3076f47943a661d4/a16njs-glob-hook-0.2.0.tgz","_integrity":"sha512-WQLVC2glH7Q9Eh+pz9EUxL489aD8OdqEr5TKAtgQTYBHh8aGcXbR4Acn8xCj643uZe+OBrpBOoiA78x8YnCXEg==","repository":{"url":"git+https://github.com/Texarkanine/a16n.git","type":"git","directory":"packages/glob-hook"},"_npmVersion":"11.8.0","description":"CLI tool for glob-based file path matching in Claude Code hooks","directories":{},"_nodeVersion":"24.13.0","dependencies":{"micromatch":"^4.0.8"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^2.0.0","typescript":"^5.4.0","@types/node":"^20.0.0","@types/micromatch":"^4.0.9"},"_npmOperationalInternal":{"tmp":"tmp/glob-hook_0.2.0_1769743513494_0.9292704477324885","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@a16njs/glob-hook","version":"0.3.0","keywords":["a16n","glob","hook","claude","cli"],"author":{"name":"Texarkanine"},"license":"AGPL-3.0","_id":"@a16njs/glob-hook@0.3.0","maintainers":[{"name":"texarkanine","email":"texarkanine@protonmail.com"}],"homepage":"https://github.com/Texarkanine/a16n#readme","bugs":{"url":"https://github.com/Texarkanine/a16n/issues"},"bin":{"glob-hook":"dist/index.js"},"dist":{"shasum":"2b05333fe8e348e43e8cdd7c078424ccc1c06621","tarball":"https://registry.npmjs.org/@a16njs/glob-hook/-/glob-hook-0.3.0.tgz","fileCount":19,"integrity":"sha512-mbBJjVy5HmN8YtXkGmPqVmZs9jp93nbay0sfKb8y2rQnLrY3kmq5YKtVw3LEligAHlzewFe7EvSL7Uja7U+8Jw==","signatures":[{"sig":"MEUCIQDZI00SsA0rr3UjEvXFEaiAVaKqebhDU9ielwqwHyU80QIgBz2RPaxJ8NZtIFEu4Az0BwTe+sDZjYXpI5j547MCj2c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@a16njs%2fglob-hook@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":51774},"main":"./dist/index.js","type":"module","_from":"file:a16njs-glob-hook-0.3.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc","clean":"rimraf dist *.tsbuildinfo","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3837a9cc-1601-4a1f-9ca0-d4311191c5a9"}},"_resolved":"/tmp/e575bedb24421b64a3f1f8f85de77e38/a16njs-glob-hook-0.3.0.tgz","_integrity":"sha512-mbBJjVy5HmN8YtXkGmPqVmZs9jp93nbay0sfKb8y2rQnLrY3kmq5YKtVw3LEligAHlzewFe7EvSL7Uja7U+8Jw==","repository":{"url":"git+https://github.com/Texarkanine/a16n.git","type":"git","directory":"packages/glob-hook"},"_npmVersion":"11.8.0","description":"CLI tool for glob-based file path matching in Claude Code hooks","directories":{},"_nodeVersion":"24.13.0","dependencies":{"micromatch":"^4.0.8"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^2.0.0","typescript":"^5.4.0","@types/node":"^20.0.0","@types/micromatch":"^4.0.9"},"_npmOperationalInternal":{"tmp":"tmp/glob-hook_0.3.0_1769910527465_0.04523013215189531","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@a16njs/glob-hook","version":"0.4.0","keywords":["a16n","glob","hook","claude","cli"],"author":{"name":"Texarkanine"},"license":"AGPL-3.0","_id":"@a16njs/glob-hook@0.4.0","maintainers":[{"name":"texarkanine","email":"texarkanine@protonmail.com"}],"homepage":"https://texarkanine.github.io/a16n/glob-hook","bugs":{"url":"https://github.com/Texarkanine/a16n/issues"},"bin":{"glob-hook":"dist/index.js"},"dist":{"shasum":"01d7864f045af863e598cfbca35008211576ac7a","tarball":"https://registry.npmjs.org/@a16njs/glob-hook/-/glob-hook-0.4.0.tgz","fileCount":19,"integrity":"sha512-yAVoh8SxMRqQ8OLu1Jw5hElNL76rQWtpjgAMc2GcNkd+xK1yIAZMaZmHV4i6wrHm2wo/5s5HzCHnnGjeZv94Bw==","signatures":[{"sig":"MEUCIQDjV+rruEuoJIE6gBFVXuW7eVhSNRCPXK28PvvubvnsJAIgVMdu2aGKmCf/sgjW5yN7qsWhVDUQ6GfjIqz3+cOgcRg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@a16njs%2fglob-hook@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":51946},"main":"./dist/index.js","type":"module","_from":"file:a16njs-glob-hook-0.4.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc","clean":"rimraf dist *.tsbuildinfo","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3837a9cc-1601-4a1f-9ca0-d4311191c5a9"}},"_resolved":"/tmp/49eb1d8611c61b4067856a9219390506/a16njs-glob-hook-0.4.0.tgz","_integrity":"sha512-yAVoh8SxMRqQ8OLu1Jw5hElNL76rQWtpjgAMc2GcNkd+xK1yIAZMaZmHV4i6wrHm2wo/5s5HzCHnnGjeZv94Bw==","repository":{"url":"git+https://github.com/Texarkanine/a16n.git","type":"git","directory":"packages/glob-hook"},"_npmVersion":"11.8.0","description":"CLI tool for glob-based file path matching in Claude Code hooks","directories":{},"_nodeVersion":"24.13.0","dependencies":{"micromatch":"^4.0.8"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^2.0.0","typescript":"^5.4.0","@types/node":"^20.0.0","@types/micromatch":"^4.0.9"},"_npmOperationalInternal":{"tmp":"tmp/glob-hook_0.4.0_1770166657391_0.39735072574141683","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@a16njs/glob-hook","version":"0.5.0","keywords":["a16n","glob","hook","claude","cli"],"author":{"name":"Texarkanine"},"license":"AGPL-3.0","_id":"@a16njs/glob-hook@0.5.0","maintainers":[{"name":"texarkanine","email":"texarkanine@protonmail.com"}],"homepage":"https://texarkanine.github.io/a16n/glob-hook","bugs":{"url":"https://github.com/Texarkanine/a16n/issues"},"bin":{"glob-hook":"dist/index.js"},"dist":{"shasum":"1b596db4c2582451f67311f9322e3a4c5f5bb65c","tarball":"https://registry.npmjs.org/@a16njs/glob-hook/-/glob-hook-0.5.0.tgz","fileCount":19,"integrity":"sha512-ohQTKxeomCKP+RcoVqpCzKUJI3e9kTWh492P1Ff8Zt4OXvqCVTUJtB0a2x3IFX/W/44xhLQ9MCpoPZizipS77A==","signatures":[{"sig":"MEQCIFGQbrBEFDFvpewga8S0W/TY2Sf29Ps2b98w27mU3blHAiBWy/2DW1yqwuH0l1lNxaKYMLTtPtSFqzbwJP1HmlE/4w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@a16njs%2fglob-hook@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":51946},"main":"./dist/index.js","type":"module","_from":"file:a16njs-glob-hook-0.5.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc","clean":"rimraf dist *.tsbuildinfo","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3837a9cc-1601-4a1f-9ca0-d4311191c5a9"}},"_resolved":"/tmp/ec7354741e980c6e9a46407dbff7bef6/a16njs-glob-hook-0.5.0.tgz","_integrity":"sha512-ohQTKxeomCKP+RcoVqpCzKUJI3e9kTWh492P1Ff8Zt4OXvqCVTUJtB0a2x3IFX/W/44xhLQ9MCpoPZizipS77A==","repository":{"url":"git+https://github.com/Texarkanine/a16n.git","type":"git","directory":"packages/glob-hook"},"_npmVersion":"11.11.0","description":"CLI tool for glob-based file path matching in Claude Code hooks","directories":{},"_nodeVersion":"22.22.0","dependencies":{"micromatch":"^4.0.8"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^2.0.0","typescript":"^5.4.0","@types/node":"^20.0.0","@types/micromatch":"^4.0.9"},"_npmOperationalInternal":{"tmp":"tmp/glob-hook_0.5.0_1772834907164_0.6847525907597338","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@a16njs/glob-hook","version":"0.5.1","keywords":["a16n","glob","hook","claude","cli"],"author":{"name":"Texarkanine"},"license":"AGPL-3.0","_id":"@a16njs/glob-hook@0.5.1","maintainers":[{"name":"texarkanine","email":"texarkanine@protonmail.com"}],"homepage":"https://texarkanine.github.io/a16n/glob-hook","bugs":{"url":"https://github.com/Texarkanine/a16n/issues"},"bin":{"glob-hook":"dist/index.js"},"dist":{"shasum":"919a37fc7032004db89bc3a11b37a18c12bc1d15","tarball":"https://registry.npmjs.org/@a16njs/glob-hook/-/glob-hook-0.5.1.tgz","fileCount":19,"integrity":"sha512-bnQsk4O45A1gRIR2g737Ouv5uHfcSCXgV7UT7ke/INuPdnAtu/YF/Q4V6P2emaos73/PExolNtspJh7p9jk2Cg==","signatures":[{"sig":"MEQCIBBW28eFGNOwziiPJCcZ9m5e63ZbknNVa5QuS97tffT4AiASfVMkPJwlSpStlCNbNGSFsOguuOjfHRLo1z16yu0+sQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@a16njs%2fglob-hook@0.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":51946},"main":"./dist/index.js","type":"module","_from":"file:a16njs-glob-hook-0.5.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc","clean":"rimraf dist *.tsbuildinfo","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3837a9cc-1601-4a1f-9ca0-d4311191c5a9"}},"_resolved":"/tmp/ee1b6a0021b6d88fc68137211701423e/a16njs-glob-hook-0.5.1.tgz","_integrity":"sha512-bnQsk4O45A1gRIR2g737Ouv5uHfcSCXgV7UT7ke/INuPdnAtu/YF/Q4V6P2emaos73/PExolNtspJh7p9jk2Cg==","repository":{"url":"git+https://github.com/Texarkanine/a16n.git","type":"git","directory":"packages/glob-hook"},"_npmVersion":"11.5.1","description":"CLI tool for glob-based file path matching in Claude Code hooks","directories":{},"_nodeVersion":"22.22.1","dependencies":{"micromatch":"^4.0.8"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^2.0.0","typescript":"^5.4.0","@types/node":"^20.0.0","@types/micromatch":"^4.0.9"},"_npmOperationalInternal":{"tmp":"tmp/glob-hook_0.5.1_1781292111060_0.1905923687837563","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"@a16njs/glob-hook","version":"0.5.2","keywords":["a16n","glob","hook","claude","cli"],"author":{"name":"Texarkanine"},"license":"AGPL-3.0","_id":"@a16njs/glob-hook@0.5.2","maintainers":[{"name":"texarkanine","email":"texarkanine@protonmail.com"}],"homepage":"https://texarkanine.github.io/a16n/glob-hook","bugs":{"url":"https://github.com/Texarkanine/a16n/issues"},"bin":{"glob-hook":"dist/index.js"},"dist":{"shasum":"8ac5c32d38942d229924d269b56c2379ee94497f","tarball":"https://registry.npmjs.org/@a16njs/glob-hook/-/glob-hook-0.5.2.tgz","fileCount":19,"integrity":"sha512-1giESmMZLxuXX7tt8nYuMXAlOcPgx+1cjyUXEFep8jegTOBW2LSv9dL2hPdeq2lg7R5EFD6gLxy//GizSZMxTw==","signatures":[{"sig":"MEUCIQCmwnBgWimo4RdDJ7AaGqEc0jCXhMAzKq+bE6ekzGy2CwIgGffosUQVVJwbSqyR21UOyUUGgvEpCLvk7qx9ZDq712k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@a16njs%2fglob-hook@0.5.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":51946},"main":"./dist/index.js","type":"module","_from":"file:a16njs-glob-hook-0.5.2.tgz","types":"./dist/index.d.ts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc","clean":"rimraf dist *.tsbuildinfo","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3837a9cc-1601-4a1f-9ca0-d4311191c5a9"}},"_resolved":"/tmp/c88be27abc88e1cff4cc813658839390/a16njs-glob-hook-0.5.2.tgz","_integrity":"sha512-1giESmMZLxuXX7tt8nYuMXAlOcPgx+1cjyUXEFep8jegTOBW2LSv9dL2hPdeq2lg7R5EFD6gLxy//GizSZMxTw==","repository":{"url":"git+https://github.com/Texarkanine/a16n.git","type":"git","directory":"packages/glob-hook"},"_npmVersion":"11.5.1","description":"CLI tool for glob-based file path matching in Claude Code hooks","directories":{},"_nodeVersion":"22.22.1","dependencies":{"micromatch":"^4.0.8"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","vitest":"^3.2.6","typescript":"^6.0.3","@types/node":"^25.9.3","@types/micromatch":"^4.0.9"},"_npmOperationalInternal":{"tmp":"tmp/glob-hook_0.5.2_1781372646508_0.9876488953809632","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@a16njs/glob-hook","version":"1.0.0","keywords":["a16n","glob","hook","claude","cli"],"author":{"name":"Texarkanine"},"license":"AGPL-3.0","_id":"@a16njs/glob-hook@1.0.0","maintainers":[{"name":"texarkanine","email":"texarkanine@protonmail.com"}],"homepage":"https://texarkanine.github.io/a16n/glob-hook","bugs":{"url":"https://github.com/Texarkanine/a16n/issues"},"bin":{"glob-hook":"dist/index.js"},"dist":{"shasum":"dfa98f5ef42168008f7227af1773c92421805b82","tarball":"https://registry.npmjs.org/@a16njs/glob-hook/-/glob-hook-1.0.0.tgz","fileCount":19,"integrity":"sha512-p68qv3STiGg/jNZU3SJOz4HjvvSdDLEN6xMM0R0MgokNP2dUdYBSB2Uc8X2XGxXcq0hcbkhcFY1YSoPArGVH4w==","signatures":[{"sig":"MEUCIQC7Vsc0J93l4d1gDuicI8mRgBY5fX7TSxFuFQViNwrWMQIgNDCqzHg5W/1PxOLLsOiNtZuh56+ccDDnZSJh0unzkoI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@a16njs%2fglob-hook@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":52091},"main":"./dist/index.js","type":"module","_from":"file:a16njs-glob-hook-1.0.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc","clean":"rimraf dist *.tsbuildinfo","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3837a9cc-1601-4a1f-9ca0-d4311191c5a9"}},"_resolved":"/tmp/288c35da30678a4b252334fb9a10c117/a16njs-glob-hook-1.0.0.tgz","_integrity":"sha512-p68qv3STiGg/jNZU3SJOz4HjvvSdDLEN6xMM0R0MgokNP2dUdYBSB2Uc8X2XGxXcq0hcbkhcFY1YSoPArGVH4w==","repository":{"url":"git+https://github.com/Texarkanine/a16n.git","type":"git","directory":"packages/glob-hook"},"_npmVersion":"11.5.1","description":"CLI tool for glob-based file path matching in Claude Code hooks","directories":{},"_nodeVersion":"22.22.1","dependencies":{"micromatch":"^4.0.8"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","vitest":"^3.2.6","typescript":"^6.0.3","@types/node":"^25.9.3","@types/micromatch":"^4.0.9"},"_npmOperationalInternal":{"tmp":"tmp/glob-hook_1.0.0_1781389445693_0.6228700969713112","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@a16njs/glob-hook","version":"1.0.1","description":"CLI tool for glob-based file path matching in Claude Code hooks","license":"AGPL-3.0","author":{"name":"Texarkanine"},"repository":{"type":"git","url":"git+https://github.com/Texarkanine/a16n.git","directory":"packages/glob-hook"},"homepage":"https://texarkanine.github.io/a16n/glob-hook","bugs":{"url":"https://github.com/Texarkanine/a16n/issues"},"keywords":["a16n","glob","hook","claude","cli"],"type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","bin":{"glob-hook":"dist/index.js"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"dependencies":{"micromatch":"^4.0.8"},"devDependencies":{"@types/micromatch":"^4.0.9","@types/node":"^25.9.3","tsx":"^4.22.4","typescript":"^6.0.3","vitest":"^3.2.6"},"engines":{"node":">=22.0.0"},"scripts":{"build":"tsc","clean":"rimraf dist *.tsbuildinfo","typecheck":"tsc --noEmit","test":"vitest run","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_id":"@a16njs/glob-hook@1.0.1","_integrity":"sha512-qrsjOhM77+6RSD9iSW8QfhzVwqjr6lDWGvdqbo16UPG+6pDCtIOSsJEk88f2oRDR2cs9tzfoZuguNLFBbD8ubA==","_resolved":"/tmp/aee954a9f7657e78bc39427baa95f33d/a16njs-glob-hook-1.0.1.tgz","_from":"file:a16njs-glob-hook-1.0.1.tgz","_nodeVersion":"22.22.1","_npmVersion":"11.5.1","dist":{"integrity":"sha512-qrsjOhM77+6RSD9iSW8QfhzVwqjr6lDWGvdqbo16UPG+6pDCtIOSsJEk88f2oRDR2cs9tzfoZuguNLFBbD8ubA==","shasum":"1b8db8012a0657efb9d8042bfc297e10610ee9bc","tarball":"https://registry.npmjs.org/@a16njs/glob-hook/-/glob-hook-1.0.1.tgz","fileCount":18,"unpackedSize":17568,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@a16njs%2fglob-hook@1.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIBrH6jNwiWRX/KGkMvh2krEWIfDupj64y6FTMJ9GUM4EAiA/5PGQocpSUmdA/4jc9/mDS/JCDVVeuWwIMKnYomJj1A=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3837a9cc-1601-4a1f-9ca0-d4311191c5a9"}},"directories":{},"maintainers":[{"name":"texarkanine","email":"texarkanine@protonmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/glob-hook_1.0.1_1787259525493_0.5637729109089982"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-25T21:51:35.981Z","modified":"2026-08-20T20:58:46.058Z","0.0.1":"2026-01-25T21:51:36.279Z","0.1.0":"2026-01-28T21:28:47.639Z","0.2.0":"2026-01-30T03:25:13.659Z","0.3.0":"2026-02-01T01:48:47.616Z","0.4.0":"2026-02-04T00:57:37.543Z","0.5.0":"2026-03-06T22:08:27.378Z","0.5.1":"2026-06-12T19:21:51.202Z","0.5.2":"2026-06-13T17:44:06.665Z","1.0.0":"2026-06-13T22:24:05.822Z","1.0.1":"2026-08-20T20:58:45.637Z"},"bugs":{"url":"https://github.com/Texarkanine/a16n/issues"},"author":{"name":"Texarkanine"},"license":"AGPL-3.0","homepage":"https://texarkanine.github.io/a16n/glob-hook","keywords":["a16n","glob","hook","claude","cli"],"repository":{"type":"git","url":"git+https://github.com/Texarkanine/a16n.git","directory":"packages/glob-hook"},"description":"CLI tool for glob-based file path matching in Claude Code hooks","maintainers":[{"name":"texarkanine","email":"texarkanine@protonmail.com"}],"readme":"# @a16njs/glob-hook\n\n[![npm version](https://img.shields.io/npm/v/@a16njs/glob-hook.svg)](https://www.npmjs.com/package/@a16njs/glob-hook)\n[![codecov](https://codecov.io/gh/Texarkanine/a16n/graph/badge.svg?flag=glob-hook)](https://codecov.io/gh/Texarkanine/a16n)\n\nCLI tool for glob-based file path matching in Claude Code hooks. Part of the [a16n](https://github.com/texarkanine/a16n) project.\n\n## Stability\n\nAs of `1.0.0`, the CLI interface (`--globs`, `--context-file`) and the output contract are stable and follow semantic versioning.\n\n## Why This Package?\n\nClaude Code hooks use a `matcher` field that matches **tool names** (Read, Write), not file paths. To apply rules to specific file patterns (like `**/*.tsx` for React files), you need external tooling.\n\n**glob-hook** bridges this gap:\n- Reads hook input from stdin (JSON with `tool_input.file_path`)\n- Matches the file path against glob patterns using [micromatch](https://github.com/micromatch/micromatch)\n- Outputs `additionalContext` if matched, enabling pattern-based rule injection\n\n## Installation\n\n```bash\n# Via npx (recommended for hooks)\nnpx @a16njs/glob-hook --globs \"**/*.tsx\" --context-file \"rules.txt\"\n\n# Or install globally\nnpm install -g @a16njs/glob-hook\n```\n\n## Usage\n\n### Basic Usage\n\n```bash\n# Pipe hook JSON to glob-hook\necho '{\"tool_input\":{\"file_path\":\"src/Button.tsx\"}}' | \\\n  npx @a16njs/glob-hook \\\n    --globs \"**/*.tsx\" \\\n    --context-file \".a16n/rules/react.txt\"\n```\n\n### In Claude Code Hooks\n\nConfigure in `.claude/settings.local.json`:\n\n```json\n{\n  \"hooks\": {\n    \"PreToolUse\": [\n      {\n        \"matcher\": \"Write|Edit|MultiEdit\",\n        \"hooks\": [\n          {\n            \"type\": \"command\",\n            \"command\": \"npx @a16njs/glob-hook --globs '**/*.tsx,**/*.ts' --context-file '.a16n/rules/typescript.txt'\"\n          }\n        ]\n      }\n    ]\n  }\n}\n```\n\n## Options\n\n| Option | Required | Description |\n|--------|----------|-------------|\n| `--globs` | Yes | Comma-separated glob patterns (e.g., `\"**/*.ts,**/*.tsx\"`) |\n| `--context-file` | Yes | Path to file containing context to inject when matched |\n\n## Output Format\n\n### When Pattern Matches\n\n```json\n{\n  \"hookSpecificOutput\": {\n    \"additionalContext\": \"<contents of context file>\"\n  }\n}\n```\n\n### When Pattern Doesn't Match\n\n```json\n{}\n```\n\n### On Error\n\nAlways outputs `{}` (empty object) and logs errors to stderr. This ensures hook failures don't break Claude Code.\n\n## Glob Pattern Examples\n\n| Pattern | Matches |\n|---------|---------|\n| `**/*.tsx` | All `.tsx` files in any directory |\n| `**/*.ts,**/*.tsx` | All TypeScript files |\n| `src/components/**` | All files under `src/components/` |\n| `*.config.js` | Config files in root |\n| `**/*.test.ts` | All test files |\n\nPatterns use [micromatch](https://github.com/micromatch/micromatch) syntax with `dot: true` (matches dotfiles).\n\n## Requirements\n\n- Node.js >= 18.0.0\n\n## Documentation\n\nFull documentation available at <https://texarkanine.github.io/a16n/glob-hook>.\n","readmeFilename":"README.md"}