{"_id":"hash-runner","_rev":"15-6e25077735bc0823c006194e91478439","name":"hash-runner","dist-tags":{"latest":"4.0.0"},"versions":{"1.0.0":{"name":"hash-runner","version":"1.0.0","keywords":[],"author":{"name":"Theo Gravity","email":"theo@suteki.nu"},"license":"MIT","_id":"hash-runner@1.0.0","maintainers":[{"name":"theo.gravity","email":"theo@suteki.nu"}],"homepage":"https://github.com/theogravity/hash-runner","bugs":{"url":"https://github.com/theogravity/hash-runner/issues"},"bin":{"hash-runner":"dist/cjs/bin/hash-runner.js"},"dist":{"shasum":"f1ffe77ff6343a3cee94c45c906d6a7b2a49b0fd","tarball":"https://registry.npmjs.org/hash-runner/-/hash-runner-1.0.0.tgz","fileCount":15,"integrity":"sha512-SqAf6HbCUYfvsiiI58rB2Y+8TfapfBKQ21z8EzjRiPnqiMsxwMW6UKxH0JN1fPxXO7KVeQ3/POYmg6DjfhSaGg==","signatures":[{"sig":"MEYCIQCpGbT3oDLZ0ZFZaw8IiNxWTpmjpRcUZFp+PuF0mWDURQIhAPKnI/WuVWuLtukedvx0GUCAu4yo/rFi7AKaZ8PBP2gf","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":25867},"main":"dist/cjs/index.js","types":"./dist/cjs/index.d.ts","engines":{"node":">=20"},"exports":{".":{"import":"./dist/esm/index.mjs","require":"./dist/cjs/index.js"}},"gitHead":"e5499232d800a1210012dade20a007b607652fb4","scripts":{"lint":"biome check --write --unsafe src && biome format src --write && biome lint src --fix","test":"vitest run","build":"rm -rf dist && tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json && ./post-build.sh","clean":"rm -rf node_modules dist","debug":"ts-node-dev --inspect -- src/index.ts","prepare":"husky","release":"changeset publish","changeset":"changeset","typecheck":"tsc --noEmit","test:watch":"vitest","debug:break":"ts-node-dev --inspect-brk -- src/index.ts","lint-staged":"lint-staged","syncpack:fix":"syncpack fix-mismatches","add-changeset":"changeset add","syncpack:lint":"syncpack lint","syncpack:format":"syncpack format","syncpack:update":"syncpack update","version-packages":"changeset version"},"_npmUser":{"name":"theo.gravity","email":"theo@suteki.nu"},"repository":{"url":"git+ssh://git@github.com/theogravity/hash-runner.git","type":"git"},"_npmVersion":"10.8.2","description":"[![NPM version](https://img.shields.io/npm/v/loglayer.svg?style=flat-square)](https://www.npmjs.com/package/hash-runner) ![NPM Downloads](https://img.shields.io/npm/dm/hash-runner) [![TypeScript](https://img.shields.io/badge/%3C%2F%3E-TypeScript-%230074c1","directories":{},"lint-staged":{"**/package.json":["pnpm run syncpack:format","pnpm run syncpack:lint"],"**/*.{js,jsx,ts,tsx,html,css,json}":["pnpm run lint"]},"_nodeVersion":"22.6.0","dependencies":{"glob":"11.0.0","commander":"12.1.0","cosmiconfig":"9.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.6.0","devDependencies":{"husky":"9.1.6","turbo":"2.1.2","vitest":"2.1.1","syncpack":"13.0.0","typescript":"5.6.2","@types/node":"22.5.5","lint-staged":"15.2.10","@biomejs/biome":"1.9.0","@changesets/cli":"2.27.8","@commitlint/cli":"19.5.0","@changesets/changelog-github":"0.5.0","@commitlint/config-conventional":"19.5.0"},"_npmOperationalInternal":{"tmp":"tmp/hash-runner_1.0.0_1726381136050_0.9657253994272355","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"hash-runner","version":"1.0.1","keywords":["build","hash","runner","watch","turbo","execute","run","command","change","detect"],"author":{"name":"Theo Gravity","email":"theo@suteki.nu"},"license":"MIT","_id":"hash-runner@1.0.1","maintainers":[{"name":"theo.gravity","email":"theo@suteki.nu"}],"homepage":"https://github.com/theogravity/hash-runner","bugs":{"url":"https://github.com/theogravity/hash-runner/issues"},"bin":{"hash-runner":"dist/cjs/bin/hash-runner.js"},"dist":{"shasum":"0f7e730748b40534512cff756116e3b3f82a6978","tarball":"https://registry.npmjs.org/hash-runner/-/hash-runner-1.0.1.tgz","fileCount":15,"integrity":"sha512-ot5HuUlZkuVBKo1X+f9HVBCyzInoXCjQMoY5KytHQ04IfogHk0D31rla4DpFCuKGbUTAkh5GVj1VEq4xK4PUhw==","signatures":[{"sig":"MEYCIQCa6seZV1MIk8Owkmpymtkg2rdF4y0Erv4LaA0ZYsxN7wIhAOAGC/Av7pZ3HMLWsvdD/2Agzby46iLWueh/EkegLGt/","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":25753},"main":"dist/cjs/index.js","_from":"file:hash-runner-1.0.1.tgz","types":"./dist/cjs/index.d.ts","engines":{"node":">=20"},"exports":{".":{"import":"./dist/esm/index.mjs","require":"./dist/cjs/index.js"}},"scripts":{"lint":"biome check --write --unsafe src && biome format src --write && biome lint src --fix","test":"IS_TEST=true vitest run","build":"rm -rf dist && tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json && ./post-build.sh","clean":"rm -rf node_modules dist","debug":"ts-node-dev --inspect -- src/index.ts","release":"changeset publish","changeset":"changeset","pre-build":"hash-runner","typecheck":"tsc --noEmit","test:watch":"IS_TEST=true vitest","debug:break":"ts-node-dev --inspect-brk -- src/index.ts","lint-staged":"lint-staged","syncpack:fix":"syncpack fix-mismatches","add-changeset":"changeset add","syncpack:lint":"syncpack lint","syncpack:format":"syncpack format","syncpack:update":"syncpack update","version-packages":"changeset version"},"_npmUser":{"name":"theo.gravity","email":"theo@suteki.nu"},"_resolved":"/tmp/58919b675ef4eb218e5a1af103e8199c/hash-runner-1.0.1.tgz","_integrity":"sha512-ot5HuUlZkuVBKo1X+f9HVBCyzInoXCjQMoY5KytHQ04IfogHk0D31rla4DpFCuKGbUTAkh5GVj1VEq4xK4PUhw==","repository":{"url":"git+ssh://git@github.com/theogravity/hash-runner.git","type":"git"},"_npmVersion":"10.8.2","description":"Executes a command when a change is detected in specified files. Not an active file watcher.","directories":{},"lint-staged":{"**/package.json":["pnpm run syncpack:format","pnpm run syncpack:lint"],"**/*.{js,jsx,ts,tsx,html,css,json}":["pnpm run lint"]},"_nodeVersion":"20.17.0","dependencies":{"glob":"11.0.0","commander":"12.1.0","lilconfig":"3.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"husky":"9.1.6","turbo":"2.1.2","vitest":"2.1.1","syncpack":"13.0.0","typescript":"5.6.2","@types/node":"22.5.5","lint-staged":"15.2.10","@biomejs/biome":"1.9.0","@changesets/cli":"2.27.8","@commitlint/cli":"19.5.0","@changesets/changelog-github":"0.5.0","@commitlint/config-conventional":"19.5.0"},"_npmOperationalInternal":{"tmp":"tmp/hash-runner_1.0.1_1726385255225_0.8085836762362715","host":"s3://npm-registry-packages"}},"1.0.2":{"name":"hash-runner","version":"1.0.2","keywords":["build","hash","runner","watch","turbo","execute","run","command","change","detect"],"author":{"name":"Theo Gravity","email":"theo@suteki.nu"},"license":"MIT","_id":"hash-runner@1.0.2","maintainers":[{"name":"theo.gravity","email":"theo@suteki.nu"}],"homepage":"https://github.com/theogravity/hash-runner","bugs":{"url":"https://github.com/theogravity/hash-runner/issues"},"bin":{"hash-runner":"dist/cjs/bin/hash-runner.js"},"dist":{"shasum":"e05e513ef787c7c0a2b1da3eb744ab5be591181a","tarball":"https://registry.npmjs.org/hash-runner/-/hash-runner-1.0.2.tgz","fileCount":15,"integrity":"sha512-33yUoDMM/2xs/ok9eEGGSsUR6ryKYJ8WmodOFe2Hrz+UsmKhwSVzxF/2Sy6VyEzL1excbz42SrQCsnvwputSgA==","signatures":[{"sig":"MEQCIDzF9DcUrGfmTMuWfllFl6p4g6rEYZ2g66uFwCFAXKNvAiBcGsy6XI+xNO6SkjoTzbBn+Gvxg/6QcFu+N6q5v0pwRA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":26490},"main":"dist/cjs/index.js","_from":"file:hash-runner-1.0.2.tgz","types":"./dist/cjs/index.d.ts","engines":{"node":">=20"},"exports":{".":{"import":"./dist/esm/index.mjs","require":"./dist/cjs/index.js"}},"scripts":{"lint":"biome check --write --unsafe src && biome format src --write && biome lint src --fix","test":"IS_TEST=true vitest run","build":"rm -rf dist && tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json && ./post-build.sh","clean":"rm -rf node_modules dist","debug":"ts-node-dev --inspect -- src/index.ts","release":"changeset publish","changeset":"changeset","pre-build":"hash-runner","typecheck":"tsc --noEmit","test:watch":"IS_TEST=true vitest","debug:break":"ts-node-dev --inspect-brk -- src/index.ts","lint-staged":"lint-staged","syncpack:fix":"syncpack fix-mismatches","add-changeset":"changeset add","syncpack:lint":"syncpack lint","syncpack:format":"syncpack format","syncpack:update":"syncpack update","version-packages":"changeset version"},"_npmUser":{"name":"theo.gravity","email":"theo@suteki.nu"},"_resolved":"/tmp/65d53368bb1cf0f53272b311aaf641d9/hash-runner-1.0.2.tgz","_integrity":"sha512-33yUoDMM/2xs/ok9eEGGSsUR6ryKYJ8WmodOFe2Hrz+UsmKhwSVzxF/2Sy6VyEzL1excbz42SrQCsnvwputSgA==","repository":{"url":"git+ssh://git@github.com/theogravity/hash-runner.git","type":"git"},"_npmVersion":"10.8.2","description":"Executes a command when a change is detected in specified files. Not an active file watcher.","directories":{},"lint-staged":{"**/package.json":["pnpm run syncpack:format","pnpm run syncpack:lint"],"**/*.{js,jsx,ts,tsx,html,css,json}":["pnpm run lint"]},"_nodeVersion":"20.17.0","dependencies":{"glob":"11.0.0","debug":"4.3.7","commander":"12.1.0","lilconfig":"3.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"husky":"9.1.6","turbo":"2.1.2","vitest":"2.1.1","syncpack":"13.0.0","typescript":"5.6.2","@types/node":"22.5.5","lint-staged":"15.2.10","@biomejs/biome":"1.9.0","@changesets/cli":"2.27.8","@commitlint/cli":"19.5.0","@changesets/changelog-github":"0.5.0","@commitlint/config-conventional":"19.5.0"},"_npmOperationalInternal":{"tmp":"tmp/hash-runner_1.0.2_1726386138520_0.37546261843381057","host":"s3://npm-registry-packages"}},"1.0.3":{"name":"hash-runner","version":"1.0.3","keywords":["build","hash","runner","watch","turbo","execute","run","command","change","detect"],"author":{"name":"Theo Gravity","email":"theo@suteki.nu"},"license":"MIT","_id":"hash-runner@1.0.3","maintainers":[{"name":"theo.gravity","email":"theo@suteki.nu"}],"homepage":"https://github.com/theogravity/hash-runner","bugs":{"url":"https://github.com/theogravity/hash-runner/issues"},"bin":{"hash-runner":"dist/cjs/bin/hash-runner.js"},"dist":{"shasum":"7746ab25ce072606046aff94a3ad1a8e2c25d490","tarball":"https://registry.npmjs.org/hash-runner/-/hash-runner-1.0.3.tgz","fileCount":15,"integrity":"sha512-gH4QZIsyeURW48nu8i7AJ0LN4Ioo96IAt67Q0qjZD7c7pC6z7GJ4ShGxq7HWZRChEQJZQ+xaUy9NKmwHlPKesw==","signatures":[{"sig":"MEQCIDRwq/c30RaX9/slJcyM64y/KFXbK7RbclvfXC7SP5BmAiAWYj+SXhz0h3uWunRENDX0yYzstQBfMZOYXseRg+gjug==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":26493},"main":"dist/cjs/index.js","_from":"file:hash-runner-1.0.3.tgz","types":"./dist/cjs/index.d.ts","engines":{"node":">=20"},"exports":{".":{"import":"./dist/esm/index.mjs","require":"./dist/cjs/index.js"}},"scripts":{"lint":"biome check --write --unsafe src && biome format src --write && biome lint src --fix","test":"IS_TEST=true vitest run","build":"rm -rf dist && tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json && ./post-build.sh","clean":"rm -rf node_modules dist","debug":"ts-node-dev --inspect -- src/index.ts","release":"changeset publish","changeset":"changeset","pre-build":"hash-runner","typecheck":"tsc --noEmit","test:watch":"IS_TEST=true vitest","debug:break":"ts-node-dev --inspect-brk -- src/index.ts","lint-staged":"lint-staged","syncpack:fix":"syncpack fix-mismatches","add-changeset":"changeset add","syncpack:lint":"syncpack lint","syncpack:format":"syncpack format","syncpack:update":"syncpack update","version-packages":"changeset version"},"_npmUser":{"name":"theo.gravity","email":"theo@suteki.nu"},"_resolved":"/tmp/114158f4c7c522b7249ffc34bd409a39/hash-runner-1.0.3.tgz","_integrity":"sha512-gH4QZIsyeURW48nu8i7AJ0LN4Ioo96IAt67Q0qjZD7c7pC6z7GJ4ShGxq7HWZRChEQJZQ+xaUy9NKmwHlPKesw==","repository":{"url":"git+ssh://git@github.com/theogravity/hash-runner.git","type":"git"},"_npmVersion":"10.8.2","description":"Executes a command when a change is detected in specified files. Not an active file watcher.","directories":{},"lint-staged":{"**/package.json":["pnpm run syncpack:format","pnpm run syncpack:lint"],"**/*.{js,jsx,ts,tsx,html,css,json}":["pnpm run lint"]},"_nodeVersion":"20.17.0","dependencies":{"glob":"11.0.0","debug":"4.3.7","commander":"12.1.0","lilconfig":"3.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"husky":"9.1.6","turbo":"2.1.2","vitest":"2.1.1","syncpack":"13.0.0","typescript":"5.6.2","@types/node":"22.5.5","lint-staged":"15.2.10","@biomejs/biome":"1.9.0","@changesets/cli":"2.27.8","@commitlint/cli":"19.5.0","@changesets/changelog-github":"0.5.0","@commitlint/config-conventional":"19.5.0"},"_npmOperationalInternal":{"tmp":"tmp/hash-runner_1.0.3_1726389205846_0.8790211968270476","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"hash-runner","version":"1.1.0","keywords":["build","hash","runner","watch","turbo","execute","run","command","change","detect"],"author":{"name":"Theo Gravity","email":"theo@suteki.nu"},"license":"MIT","_id":"hash-runner@1.1.0","maintainers":[{"name":"theo.gravity","email":"theo@suteki.nu"}],"homepage":"https://github.com/theogravity/hash-runner","bugs":{"url":"https://github.com/theogravity/hash-runner/issues"},"bin":{"hash-runner":"dist/cjs/bin/hash-runner.js"},"dist":{"shasum":"1b2e57c4169eda13f2c50a643f6301936cc749f8","tarball":"https://registry.npmjs.org/hash-runner/-/hash-runner-1.1.0.tgz","fileCount":15,"integrity":"sha512-5FUtgD+LlXEzMxF+8nzcjmm9HF3fGLjXGgxeCJ1janT1ooEVGaRn8Vv2ZOILfg3ctRLufbjpYrcs/dXn/gxK1w==","signatures":[{"sig":"MEQCIAVuN+Z9kAIDNYzfzWxVW4GPf7akw4PuRvYf9ybjwE+oAiAzuEjcJt2Flcu5Xr+RCw8elAcl53ZfW1KNqTchJpsAUg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":39007},"main":"dist/cjs/index.js","_from":"file:hash-runner-1.1.0.tgz","types":"./dist/cjs/index.d.ts","engines":{"node":">=20"},"exports":{".":{"import":"./dist/esm/index.mjs","require":"./dist/cjs/index.js"}},"scripts":{"lint":"biome check --write --unsafe src && biome format src --write && biome lint src --fix","test":"IS_TEST=true vitest run","build":"rm -rf dist && tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json && ./post-build.sh","clean":"rm -rf node_modules dist","debug":"ts-node-dev --inspect -- src/index.ts","release":"changeset publish","changeset":"changeset","pre-build":"hash-runner","typecheck":"tsc --noEmit","test:watch":"IS_TEST=true vitest","debug:break":"ts-node-dev --inspect-brk -- src/index.ts","lint-staged":"lint-staged","syncpack:fix":"syncpack fix-mismatches","add-changeset":"changeset add","syncpack:lint":"syncpack lint","syncpack:format":"syncpack format","syncpack:update":"syncpack update","version-packages":"changeset version"},"_npmUser":{"name":"theo.gravity","email":"theo@suteki.nu"},"_resolved":"/tmp/0dc6cb9d4efa5cfe90c18efd15174f45/hash-runner-1.1.0.tgz","_integrity":"sha512-5FUtgD+LlXEzMxF+8nzcjmm9HF3fGLjXGgxeCJ1janT1ooEVGaRn8Vv2ZOILfg3ctRLufbjpYrcs/dXn/gxK1w==","repository":{"url":"git+ssh://git@github.com/theogravity/hash-runner.git","type":"git"},"_npmVersion":"10.8.2","description":"Executes a command when a change is detected in specified files. Not an active file watcher.","directories":{},"lint-staged":{"**/package.json":["pnpm run syncpack:format","pnpm run syncpack:lint"],"**/*.{js,jsx,ts,tsx,html,css,json}":["pnpm run lint"]},"_nodeVersion":"20.17.0","dependencies":{"glob":"11.0.0","debug":"4.3.7","commander":"12.1.0","lilconfig":"3.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"husky":"9.1.6","turbo":"2.1.2","vitest":"2.1.1","syncpack":"13.0.0","typescript":"5.6.2","@types/node":"22.5.5","lint-staged":"15.2.10","@biomejs/biome":"1.9.0","@changesets/cli":"2.27.8","@commitlint/cli":"19.5.0","@changesets/changelog-github":"0.5.0","@commitlint/config-conventional":"19.5.0"},"_npmOperationalInternal":{"tmp":"tmp/hash-runner_1.1.0_1726430003049_0.7852027983630012","host":"s3://npm-registry-packages"}},"1.1.1":{"name":"hash-runner","version":"1.1.1","keywords":["build","hash","runner","watch","turbo","execute","run","command","change","detect"],"author":{"name":"Theo Gravity","email":"theo@suteki.nu"},"license":"MIT","_id":"hash-runner@1.1.1","maintainers":[{"name":"theo.gravity","email":"theo@suteki.nu"}],"homepage":"https://github.com/theogravity/hash-runner","bugs":{"url":"https://github.com/theogravity/hash-runner/issues"},"bin":{"hash-runner":"dist/cjs/bin/hash-runner.js"},"dist":{"shasum":"12a44ad9c2a8d07adc479e9d82b5ca320f24c15c","tarball":"https://registry.npmjs.org/hash-runner/-/hash-runner-1.1.1.tgz","fileCount":15,"integrity":"sha512-RQTLEhPJ5Ax4gW9fwd7LieImxYQ9R1vEyRNibz/dQarioa8BcBwWRQMXBD86oHsjoFKj66h0nIYsbv7p3jDlfg==","signatures":[{"sig":"MEYCIQD/h1ZSJNWlCF6h1n/L2o6o/KjwoE9oVBVb6WQdYfAywwIhAJ4f1gIBQxLqlYqf/iiXuA7kW0AqCxKg3L30mTH0DdvQ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":39089},"main":"dist/cjs/index.js","_from":"file:hash-runner-1.1.1.tgz","types":"./dist/cjs/index.d.ts","engines":{"node":">=20"},"exports":{".":{"import":"./dist/esm/index.mjs","require":"./dist/cjs/index.js"}},"scripts":{"lint":"biome check --write --unsafe src && biome format src --write && biome lint src --fix","test":"IS_TEST=true vitest run","build":"rm -rf dist && tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json && ./post-build.sh","clean":"rm -rf node_modules dist","debug":"ts-node-dev --inspect -- src/index.ts","release":"changeset publish","changeset":"changeset","pre-build":"hash-runner","typecheck":"tsc --noEmit","test:watch":"IS_TEST=true vitest","debug:break":"ts-node-dev --inspect-brk -- src/index.ts","lint-staged":"lint-staged","syncpack:fix":"syncpack fix-mismatches","add-changeset":"changeset add","syncpack:lint":"syncpack lint","syncpack:format":"syncpack format","syncpack:update":"syncpack update","version-packages":"changeset version"},"_npmUser":{"name":"theo.gravity","email":"theo@suteki.nu"},"_resolved":"/tmp/7fd68b339cf39200d2c410845c6a1667/hash-runner-1.1.1.tgz","_integrity":"sha512-RQTLEhPJ5Ax4gW9fwd7LieImxYQ9R1vEyRNibz/dQarioa8BcBwWRQMXBD86oHsjoFKj66h0nIYsbv7p3jDlfg==","repository":{"url":"git+ssh://git@github.com/theogravity/hash-runner.git","type":"git"},"_npmVersion":"10.8.2","description":"Executes a command when a change is detected in specified files. Not an active file watcher.","directories":{},"lint-staged":{"**/package.json":["pnpm run syncpack:format","pnpm run syncpack:lint"],"**/*.{js,jsx,ts,tsx,html,css,json}":["pnpm run lint"]},"_nodeVersion":"20.17.0","dependencies":{"glob":"11.0.0","debug":"4.3.7","commander":"12.1.0","lilconfig":"3.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"husky":"9.1.6","turbo":"2.1.2","vitest":"2.1.1","syncpack":"13.0.0","typescript":"5.6.2","@types/node":"22.5.5","lint-staged":"15.2.10","@biomejs/biome":"1.9.0","@changesets/cli":"2.27.8","@commitlint/cli":"19.5.0","@changesets/changelog-github":"0.5.0","@commitlint/config-conventional":"19.5.0"},"_npmOperationalInternal":{"tmp":"tmp/hash-runner_1.1.1_1726431107490_0.07397572377552852","host":"s3://npm-registry-packages"}},"1.1.2":{"name":"hash-runner","version":"1.1.2","keywords":["build","hash","runner","watch","turbo","execute","run","command","change","detect"],"author":{"name":"Theo Gravity","email":"theo@suteki.nu"},"license":"MIT","_id":"hash-runner@1.1.2","maintainers":[{"name":"theo.gravity","email":"theo@suteki.nu"}],"homepage":"https://github.com/theogravity/hash-runner","bugs":{"url":"https://github.com/theogravity/hash-runner/issues"},"bin":{"hash-runner":"dist/cjs/bin/hash-runner.js"},"dist":{"shasum":"7546a2242c0d0c7d6ca4d7c58470bba75802be70","tarball":"https://registry.npmjs.org/hash-runner/-/hash-runner-1.1.2.tgz","fileCount":15,"integrity":"sha512-i0j1/aLdbBdQqswZL2QqhFGeCne8SCP4en0gfZIdEJgl4Mx5GcIedb7s75GoqiNqgCCKp27RcvRzctwzG4BVUQ==","signatures":[{"sig":"MEUCIBGuqpBdw3IaSHsO8MgkZs9GvF9jGEaM0a3Yt3LVWZ5qAiEA8ZxqfuwJ5QHw+pqZzm4WXquO/NdWx6BJvEvMcVLxq1w=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":41834},"main":"dist/cjs/index.js","_from":"file:hash-runner-1.1.2.tgz","types":"./dist/cjs/index.d.ts","engines":{"node":">=20"},"exports":{".":{"import":"./dist/esm/index.mjs","require":"./dist/cjs/index.js"}},"scripts":{"lint":"biome check --write --unsafe src && biome format src --write && biome lint src --fix","test":"IS_TEST=true vitest run","build":"rm -rf dist && tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json && ./post-build.sh","clean":"rm -rf node_modules dist","debug":"ts-node-dev --inspect -- src/index.ts","release":"changeset publish","changeset":"changeset","pre-build":"hash-runner","typecheck":"tsc --noEmit","test:watch":"IS_TEST=true vitest","debug:break":"ts-node-dev --inspect-brk -- src/index.ts","lint-staged":"lint-staged","syncpack:fix":"syncpack fix-mismatches","add-changeset":"changeset add","syncpack:lint":"syncpack lint","syncpack:format":"syncpack format","syncpack:update":"syncpack update","version-packages":"changeset version"},"_npmUser":{"name":"theo.gravity","email":"theo@suteki.nu"},"_resolved":"/tmp/b90fc213dc397dfe17f216c36ffc3d51/hash-runner-1.1.2.tgz","_integrity":"sha512-i0j1/aLdbBdQqswZL2QqhFGeCne8SCP4en0gfZIdEJgl4Mx5GcIedb7s75GoqiNqgCCKp27RcvRzctwzG4BVUQ==","repository":{"url":"git+ssh://git@github.com/theogravity/hash-runner.git","type":"git"},"_npmVersion":"10.8.2","description":"Executes a command when a change is detected in specified files. Not an active file watcher.","directories":{},"lint-staged":{"**/package.json":["pnpm run syncpack:format","pnpm run syncpack:lint"],"**/*.{js,jsx,ts,tsx,html,css,json}":["pnpm run lint"]},"_nodeVersion":"20.17.0","dependencies":{"glob":"11.0.0","debug":"4.3.7","commander":"12.1.0","lilconfig":"3.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"husky":"9.1.6","turbo":"2.1.2","vitest":"2.1.1","syncpack":"13.0.0","typescript":"5.6.2","@types/node":"22.5.5","lint-staged":"15.2.10","@biomejs/biome":"1.9.0","@changesets/cli":"2.27.8","@commitlint/cli":"19.5.0","@changesets/changelog-github":"0.5.0","@commitlint/config-conventional":"19.5.0"},"_npmOperationalInternal":{"tmp":"tmp/hash-runner_1.1.2_1726456277698_0.8971767034076634","host":"s3://npm-registry-packages"}},"1.1.3":{"name":"hash-runner","version":"1.1.3","keywords":["build","hash","runner","watch","turbo","execute","run","command","change","detect"],"author":{"name":"Theo Gravity","email":"theo@suteki.nu"},"license":"MIT","_id":"hash-runner@1.1.3","maintainers":[{"name":"theo.gravity","email":"theo@suteki.nu"}],"homepage":"https://github.com/theogravity/hash-runner","bugs":{"url":"https://github.com/theogravity/hash-runner/issues"},"bin":{"hash-runner":"dist/cjs/bin/hash-runner.js"},"dist":{"shasum":"fa1ab1e701460e0816dedc0d7fa08279668f2a89","tarball":"https://registry.npmjs.org/hash-runner/-/hash-runner-1.1.3.tgz","fileCount":15,"integrity":"sha512-GjTXXCkIag8wzvEz5yBwyMRshzydmW3T9tBp0NVEmGsCaBgPgNwqoXOv+RBVIyPpRKQzVb4zdWTtK8SP2EWexA==","signatures":[{"sig":"MEUCIQDx9/TzG10DYLqtPgxGrkMvsoO7xYH9xR30ZgHBo6dLugIgWPg5QOpxFPLP/aDiwHyR3aA0r1ON0az52MdshNBDKFE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":43262},"main":"dist/cjs/index.js","_from":"file:hash-runner-1.1.3.tgz","types":"./dist/cjs/index.d.ts","engines":{"node":">=20"},"exports":{".":{"import":"./dist/esm/index.mjs","require":"./dist/cjs/index.js"}},"scripts":{"lint":"biome check --write --unsafe src && biome format src --write && biome lint src --fix","test":"IS_TEST=true vitest run","build":"rm -rf dist && tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json && ./post-build.sh","clean":"rm -rf node_modules dist","debug":"ts-node-dev --inspect -- src/index.ts","release":"changeset publish","changeset":"changeset","pre-build":"hash-runner","typecheck":"tsc --noEmit","test:watch":"IS_TEST=true vitest","debug:break":"ts-node-dev --inspect-brk -- src/index.ts","lint-staged":"lint-staged","syncpack:fix":"syncpack fix-mismatches","add-changeset":"changeset add","syncpack:lint":"syncpack lint","syncpack:format":"syncpack format","syncpack:update":"syncpack update","version-packages":"changeset version"},"_npmUser":{"name":"theo.gravity","email":"theo@suteki.nu"},"_resolved":"/tmp/fd92c456822f6dabafde3a875cb85fd2/hash-runner-1.1.3.tgz","_integrity":"sha512-GjTXXCkIag8wzvEz5yBwyMRshzydmW3T9tBp0NVEmGsCaBgPgNwqoXOv+RBVIyPpRKQzVb4zdWTtK8SP2EWexA==","repository":{"url":"git+ssh://git@github.com/theogravity/hash-runner.git","type":"git"},"_npmVersion":"10.8.2","description":"Executes a command when a change is detected in specified files. Not an active file watcher.","directories":{},"lint-staged":{"**/package.json":["pnpm run syncpack:format","pnpm run syncpack:lint"],"**/*.{js,jsx,ts,tsx,html,css,json}":["pnpm run lint"]},"_nodeVersion":"20.17.0","dependencies":{"glob":"11.0.0","debug":"4.3.7","commander":"12.1.0","lilconfig":"3.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"husky":"9.1.6","turbo":"2.1.2","vitest":"2.1.1","syncpack":"13.0.0","typescript":"5.6.2","@types/node":"22.5.5","lint-staged":"15.2.10","@biomejs/biome":"1.9.0","@changesets/cli":"2.27.8","@commitlint/cli":"19.5.0","@changesets/changelog-github":"0.5.0","@commitlint/config-conventional":"19.5.0"},"_npmOperationalInternal":{"tmp":"tmp/hash-runner_1.1.3_1726457317947_0.2858456315665079","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"hash-runner","version":"2.0.0","keywords":["build","hash","runner","watch","turbo","execute","run","command","change","detect"],"author":{"name":"Theo Gravity","email":"theo@suteki.nu"},"license":"MIT","_id":"hash-runner@2.0.0","maintainers":[{"name":"theo.gravity","email":"theo@suteki.nu"}],"homepage":"https://github.com/theogravity/hash-runner","bugs":{"url":"https://github.com/theogravity/hash-runner/issues"},"bin":{"hash-runner":"dist/cjs/bin/hash-runner.js"},"dist":{"shasum":"57f4efba0b0707f1fc9dc40370a68febf3a2e409","tarball":"https://registry.npmjs.org/hash-runner/-/hash-runner-2.0.0.tgz","fileCount":15,"integrity":"sha512-QyO99ZAGS7+dTSRbTtuws7LzD0oVmLfpBLFSl0eKrFMMqRVlHc1R35XUsT4kmUuTEOI5vfg6c6JhrKYrtt12qw==","signatures":[{"sig":"MEUCIQC16hEs+EuVqcxYzlnqP1WQNEy1+eqcz8SsE2f53xBHgwIgf4n6MU+g6Uuaajq5MT2HacMCpGmPNLprwYAp+8jEFA8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":52197},"main":"dist/cjs/index.js","_from":"file:hash-runner-2.0.0.tgz","types":"./dist/cjs/index.d.ts","engines":{"node":">=20"},"exports":{".":{"import":"./dist/esm/index.mjs","require":"./dist/cjs/index.js"}},"scripts":{"lint":"biome check --write --unsafe src && biome format src --write && biome lint src --fix","test":"IS_TEST=true vitest run","build":"rm -rf dist && tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json && ./post-build.sh","clean":"rm -rf node_modules dist","debug":"ts-node-dev --inspect -- src/index.ts","release":"changeset publish","changeset":"changeset","pre-build":"hash-runner","typecheck":"tsc --noEmit","test:watch":"IS_TEST=true vitest","debug:break":"ts-node-dev --inspect-brk -- src/index.ts","lint-staged":"lint-staged","syncpack:fix":"syncpack fix-mismatches","add-changeset":"changeset add","syncpack:lint":"syncpack lint","syncpack:format":"syncpack format","syncpack:update":"syncpack update","version-packages":"changeset version"},"_npmUser":{"name":"theo.gravity","email":"theo@suteki.nu"},"_resolved":"/tmp/f42f2b4a90cfa2788b41ecb36fb5f61a/hash-runner-2.0.0.tgz","_integrity":"sha512-QyO99ZAGS7+dTSRbTtuws7LzD0oVmLfpBLFSl0eKrFMMqRVlHc1R35XUsT4kmUuTEOI5vfg6c6JhrKYrtt12qw==","repository":{"url":"git+ssh://git@github.com/theogravity/hash-runner.git","type":"git"},"_npmVersion":"10.8.2","description":"Executes a command when a change is detected in specified files. Not an active file watcher.","directories":{},"lint-staged":{"**/package.json":["pnpm run syncpack:format","pnpm run syncpack:lint"],"**/*.{js,jsx,ts,tsx,html,css,json}":["pnpm run lint"]},"_nodeVersion":"20.17.0","dependencies":{"glob":"11.0.0","debug":"4.3.7","commander":"12.1.0","lilconfig":"3.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"husky":"9.1.6","turbo":"2.1.2","vitest":"2.1.1","syncpack":"13.0.0","typescript":"5.6.2","@types/node":"22.5.5","lint-staged":"15.2.10","@biomejs/biome":"1.9.0","@changesets/cli":"2.27.8","@commitlint/cli":"19.5.0","@changesets/changelog-github":"0.5.0","@commitlint/config-conventional":"19.5.0"},"_npmOperationalInternal":{"tmp":"tmp/hash-runner_2.0.0_1726618413198_0.14631278848534834","host":"s3://npm-registry-packages"}},"2.0.1":{"name":"hash-runner","version":"2.0.1","keywords":["build","hash","runner","watch","turbo","execute","run","command","change","detect"],"author":{"name":"Theo Gravity","email":"theo@suteki.nu"},"license":"MIT","_id":"hash-runner@2.0.1","maintainers":[{"name":"theo.gravity","email":"theo@suteki.nu"}],"homepage":"https://github.com/theogravity/hash-runner","bugs":{"url":"https://github.com/theogravity/hash-runner/issues"},"bin":{"hash-runner":"dist/cjs/bin/hash-runner.js"},"dist":{"shasum":"99c17f601c566c7726ad23b891e2450a1c0a6b34","tarball":"https://registry.npmjs.org/hash-runner/-/hash-runner-2.0.1.tgz","fileCount":15,"integrity":"sha512-S0jsW7JuFNDGv9lC7oV9SG+CmwFnMgUCnLuBcpMvakd3jzMfhHNPsysxQL5NrMLD4WNGKMXZZ3ATgoailfgwAw==","signatures":[{"sig":"MEUCIQCn4rVF3sflOPLVXbFMYfO9mDBCPVxSQJ7AES1b62kSlQIgVtpMhZW1HHxtGbt5j+ZjYqzNYgVX2i/S6Sx+I4pwNOk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":51989},"main":"dist/cjs/index.js","_from":"file:hash-runner-2.0.1.tgz","types":"./dist/cjs/index.d.ts","engines":{"node":">=20"},"exports":{".":{"import":"./dist/esm/index.mjs","require":"./dist/cjs/index.js"}},"scripts":{"lint":"biome check --write --unsafe src && biome format src --write && biome lint src --fix","test":"IS_TEST=true vitest run","build":"rm -rf dist && tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json && ./post-build.sh","clean":"rm -rf node_modules dist","debug":"ts-node-dev --inspect -- src/index.ts","release":"changeset publish","changeset":"changeset","pre-build":"hash-runner","typecheck":"tsc --noEmit","test:watch":"IS_TEST=true vitest","debug:break":"ts-node-dev --inspect-brk -- src/index.ts","lint-staged":"lint-staged","syncpack:fix":"syncpack fix-mismatches","add-changeset":"changeset add","syncpack:lint":"syncpack lint","syncpack:format":"syncpack format","syncpack:update":"syncpack update","version-packages":"changeset version"},"_npmUser":{"name":"theo.gravity","email":"theo@suteki.nu"},"_resolved":"/tmp/0496158455dc418119460890745f2e2c/hash-runner-2.0.1.tgz","_integrity":"sha512-S0jsW7JuFNDGv9lC7oV9SG+CmwFnMgUCnLuBcpMvakd3jzMfhHNPsysxQL5NrMLD4WNGKMXZZ3ATgoailfgwAw==","repository":{"url":"git+ssh://git@github.com/theogravity/hash-runner.git","type":"git"},"_npmVersion":"10.8.2","description":"Executes a command when a change is detected in specified files. Not an active file watcher.","directories":{},"lint-staged":{"**/package.json":["pnpm run syncpack:format","pnpm run syncpack:lint"],"**/*.{js,jsx,ts,tsx,html,css,json}":["pnpm run lint"]},"_nodeVersion":"20.17.0","dependencies":{"glob":"11.0.0","debug":"4.3.7","commander":"12.1.0","lilconfig":"3.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"husky":"9.1.6","turbo":"2.1.2","vitest":"2.1.1","syncpack":"13.0.0","typescript":"5.6.2","@types/node":"22.5.5","lint-staged":"15.2.10","@biomejs/biome":"1.9.0","@changesets/cli":"2.27.8","@commitlint/cli":"19.5.0","@changesets/changelog-github":"0.5.0","@commitlint/config-conventional":"19.5.0"},"_npmOperationalInternal":{"tmp":"tmp/hash-runner_2.0.1_1726619164164_0.3638651966140385","host":"s3://npm-registry-packages"}},"2.1.0":{"name":"hash-runner","version":"2.1.0","keywords":["build","hash","runner","watch","turbo","execute","run","command","change","detect"],"author":{"name":"Theo Gravity","email":"theo@suteki.nu"},"license":"MIT","_id":"hash-runner@2.1.0","maintainers":[{"name":"theo.gravity","email":"theo@suteki.nu"}],"homepage":"https://github.com/theogravity/hash-runner","bugs":{"url":"https://github.com/theogravity/hash-runner/issues"},"bin":{"hash-runner":"dist/cjs/bin/hash-runner.js"},"dist":{"shasum":"71b04e15cd05094887d837486ba6b318997ff05f","tarball":"https://registry.npmjs.org/hash-runner/-/hash-runner-2.1.0.tgz","fileCount":15,"integrity":"sha512-Z1hlPzTWYd1ctXRmohXYwJci0GYrjpaYJ4AgAsn47up8ybIXkgXbkUJy0JwbBQWYb9eQpFcHzxlFpHBRI8Zfng==","signatures":[{"sig":"MEUCIQDfVmb4tpA0TSvmnG9x8JX7qDjLmIVnLqNjH5BW+w2PugIgPl1vU6Ev43jmY/VTiYKZDLrmwAf382rTNSsdAhaFZEs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":54625},"main":"dist/cjs/index.js","_from":"file:hash-runner-2.1.0.tgz","types":"./dist/cjs/index.d.ts","engines":{"node":">=20"},"exports":{".":{"import":"./dist/esm/index.mjs","require":"./dist/cjs/index.js"}},"scripts":{"lint":"biome check --write --unsafe src","test":"IS_TEST=true vitest run","build":"rm -rf dist && tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json && ./post-build.sh","clean":"rm -rf node_modules dist","debug":"ts-node-dev --inspect -- src/index.ts","release":"changeset publish","changeset":"changeset","pre-build":"hash-runner","typecheck":"tsc --noEmit","test:watch":"IS_TEST=true vitest","debug:break":"ts-node-dev --inspect-brk -- src/index.ts","syncpack:fix":"syncpack fix-mismatches","add-changeset":"changeset add","syncpack:lint":"syncpack lint","syncpack:format":"syncpack format","syncpack:update":"syncpack update","version-packages":"changeset version"},"_npmUser":{"name":"theo.gravity","email":"theo@suteki.nu"},"_resolved":"/tmp/3b31cc765d5365fed18d1c3368a26ae9/hash-runner-2.1.0.tgz","_integrity":"sha512-Z1hlPzTWYd1ctXRmohXYwJci0GYrjpaYJ4AgAsn47up8ybIXkgXbkUJy0JwbBQWYb9eQpFcHzxlFpHBRI8Zfng==","repository":{"url":"git+ssh://git@github.com/theogravity/hash-runner.git","type":"git"},"_npmVersion":"10.8.2","description":"Executes a command when a change is detected in specified files. Not an active file watcher.","directories":{},"_nodeVersion":"20.19.4","dependencies":{"glob":"11.0.3","debug":"4.4.1","commander":"14.0.0","lilconfig":"3.1.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"turbo":"2.5.5","vitest":"3.2.4","lefthook":"1.12.2","syncpack":"13.0.4","typescript":"5.8.3","@types/node":"24.1.0","@biomejs/biome":"2.1.2","@changesets/cli":"2.29.5","@commitlint/cli":"19.8.1","@changesets/changelog-github":"0.5.1","@commitlint/config-conventional":"19.8.1"},"_npmOperationalInternal":{"tmp":"tmp/hash-runner_2.1.0_1753495915133_0.9530489354452834","host":"s3://npm-registry-packages-npm-production"}},"2.1.1":{"name":"hash-runner","version":"2.1.1","keywords":["build","hash","runner","watch","turbo","execute","run","command","change","detect"],"author":{"name":"Theo Gravity","email":"theo@suteki.nu"},"license":"MIT","_id":"hash-runner@2.1.1","maintainers":[{"name":"theo.gravity","email":"theo@suteki.nu"}],"homepage":"https://github.com/theogravity/hash-runner","bugs":{"url":"https://github.com/theogravity/hash-runner/issues"},"bin":{"hash-runner":"dist/cjs/bin/hash-runner.js"},"dist":{"shasum":"037aa2b2c3ae644db37db4944bfad4f8ac0df188","tarball":"https://registry.npmjs.org/hash-runner/-/hash-runner-2.1.1.tgz","fileCount":15,"integrity":"sha512-B+RmuhafRdYGB9QbOU7xwwSk+nJSpNUbb3W8h7oB3J5QbEweEAbkggXeMRvqlshAzBb+ZvE7Jplr1C3ft80gCw==","signatures":[{"sig":"MEUCIQCIn35VwqAAhrbm5dXAwCQFRB4XGhAPKFP7SL4ixgIVDAIgPWppf/JSI0zKvgyh4RSY5ebaY4lxe4cDj/GtRrr4h+E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":54079},"main":"dist/cjs/index.js","_from":"file:hash-runner-2.1.1.tgz","types":"./dist/cjs/index.d.ts","engines":{"node":">=20"},"exports":{".":{"import":"./dist/esm/index.mjs","require":"./dist/cjs/index.js"}},"scripts":{"lint":"biome check --write --unsafe src","test":"IS_TEST=true vitest run","build":"rm -rf dist && tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json && ./post-build.sh","clean":"rm -rf node_modules dist","debug":"ts-node-dev --inspect -- src/index.ts","release":"changeset publish","changeset":"changeset","pre-build":"hash-runner","typecheck":"tsc --noEmit","test:watch":"IS_TEST=true vitest","debug:break":"ts-node-dev --inspect-brk -- src/index.ts","syncpack:fix":"syncpack fix-mismatches","add-changeset":"changeset add","syncpack:lint":"syncpack lint","syncpack:format":"syncpack format","syncpack:update":"syncpack update","version-packages":"changeset version"},"_npmUser":{"name":"theo.gravity","email":"theo@suteki.nu"},"_resolved":"/tmp/10348184bb944ef6d146637eee20514e/hash-runner-2.1.1.tgz","_integrity":"sha512-B+RmuhafRdYGB9QbOU7xwwSk+nJSpNUbb3W8h7oB3J5QbEweEAbkggXeMRvqlshAzBb+ZvE7Jplr1C3ft80gCw==","repository":{"url":"git+ssh://git@github.com/theogravity/hash-runner.git","type":"git"},"_npmVersion":"10.8.2","description":"Executes a command when a change is detected in specified files. Not an active file watcher.","directories":{},"_nodeVersion":"20.19.4","dependencies":{"glob":"11.0.3","debug":"4.4.1","commander":"14.0.0","lilconfig":"3.1.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"turbo":"2.5.5","vitest":"3.2.4","lefthook":"1.12.2","syncpack":"13.0.4","typescript":"5.8.3","@types/node":"24.1.0","@biomejs/biome":"2.1.2","@changesets/cli":"2.29.5","@commitlint/cli":"19.8.1","@changesets/changelog-github":"0.5.1","@commitlint/config-conventional":"19.8.1"},"_npmOperationalInternal":{"tmp":"tmp/hash-runner_2.1.1_1753496490366_0.7012199942586259","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"hash-runner","version":"3.0.0","keywords":["build","hash","runner","watch","turbo","execute","run","command","change","detect"],"author":{"name":"Theo Gravity","email":"theo@suteki.nu"},"license":"MIT","_id":"hash-runner@3.0.0","maintainers":[{"name":"theo.gravity","email":"theo@suteki.nu"}],"homepage":"https://github.com/theogravity/hash-runner","bugs":{"url":"https://github.com/theogravity/hash-runner/issues"},"bin":{"hash-runner":"dist/cjs/bin/hash-runner.js"},"dist":{"shasum":"4adddea2026f6841950ca15a797382a68934eb02","tarball":"https://registry.npmjs.org/hash-runner/-/hash-runner-3.0.0.tgz","fileCount":15,"integrity":"sha512-tyW8m4p1tcCw4BWD+SO9FvJppWQ5IOcMEL9j+ICybB7XqOXHOtZp7aVoQFGoHKTQYgQpK57lxPvTxb4PEfF3UQ==","signatures":[{"sig":"MEYCIQDiXjXm7LnDmSF0v3wkFWulSe8XW/F+rlN+wAvO1F1yRgIhAMhUeuAgWOaPEw69lxm02fxIJZthbBiAcvNVw4atZdab","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":53944},"main":"dist/cjs/index.js","_from":"file:hash-runner-3.0.0.tgz","types":"./dist/cjs/index.d.ts","engines":{"node":">=20"},"exports":{".":{"import":"./dist/esm/index.mjs","require":"./dist/cjs/index.js"}},"scripts":{"lint":"biome check --write --unsafe src","test":"IS_TEST=true vitest run","build":"rm -rf dist && tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json && ./post-build.sh","clean":"rm -rf node_modules dist","debug":"ts-node-dev --inspect -- src/index.ts","release":"changeset publish","changeset":"changeset","pre-build":"hash-runner","typecheck":"tsc --noEmit","test:watch":"IS_TEST=true vitest","debug:break":"ts-node-dev --inspect-brk -- src/index.ts","syncpack:fix":"syncpack fix-mismatches","add-changeset":"changeset add","syncpack:lint":"syncpack lint","syncpack:format":"syncpack format","syncpack:update":"syncpack update","version-packages":"changeset version"},"_npmUser":{"name":"theo.gravity","email":"theo@suteki.nu"},"_resolved":"/tmp/c87caad52a7605fa1f7254731f00e368/hash-runner-3.0.0.tgz","_integrity":"sha512-tyW8m4p1tcCw4BWD+SO9FvJppWQ5IOcMEL9j+ICybB7XqOXHOtZp7aVoQFGoHKTQYgQpK57lxPvTxb4PEfF3UQ==","repository":{"url":"git+ssh://git@github.com/theogravity/hash-runner.git","type":"git"},"_npmVersion":"10.8.2","description":"Executes a command when a change is detected in specified files. Not an active file watcher.","directories":{},"_nodeVersion":"20.19.4","dependencies":{"glob":"11.0.3","debug":"4.4.1","commander":"14.0.0","lilconfig":"3.1.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"turbo":"2.5.5","vitest":"3.2.4","lefthook":"1.12.2","syncpack":"13.0.4","typescript":"5.8.3","@types/node":"24.1.0","@biomejs/biome":"2.1.2","@changesets/cli":"2.29.5","@commitlint/cli":"19.8.1","@changesets/changelog-github":"0.5.1","@commitlint/config-conventional":"19.8.1"},"_npmOperationalInternal":{"tmp":"tmp/hash-runner_3.0.0_1753922284207_0.20389896806606744","host":"s3://npm-registry-packages-npm-production"}},"3.1.0":{"name":"hash-runner","version":"3.1.0","keywords":["build","hash","runner","watch","turbo","execute","run","command","change","detect"],"author":{"name":"Theo Gravity","email":"theo@suteki.nu"},"license":"MIT","_id":"hash-runner@3.1.0","maintainers":[{"name":"theo.gravity","email":"theo@suteki.nu"}],"homepage":"https://github.com/theogravity/hash-runner","bugs":{"url":"https://github.com/theogravity/hash-runner/issues"},"bin":{"hash-runner":"dist/cjs/bin/hash-runner.js"},"dist":{"shasum":"6e0c5393da8a924686529519d0e2efc18fefad93","tarball":"https://registry.npmjs.org/hash-runner/-/hash-runner-3.1.0.tgz","fileCount":15,"integrity":"sha512-2FBbReKmlmWQYad7EHlxSFwdjPlp1Nfx2aeaodUNeYrPaJJnj+FJgYftpW4EPYFAs+E0tJRlmMaGRfJGWGs05A==","signatures":[{"sig":"MEQCID0gctWB9enJnyNszcOnxJn81zjceKq5GPEJ96a5Agr7AiAw0wWGNCvVA7kxweL65ETXDUjN7yvKkX/uXanwsm3WCg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":54964},"main":"dist/cjs/index.js","_from":"file:hash-runner-3.1.0.tgz","types":"./dist/cjs/index.d.ts","engines":{"node":">=20"},"exports":{".":{"import":"./dist/esm/index.mjs","require":"./dist/cjs/index.js"}},"scripts":{"lint":"biome check --write --unsafe src","test":"IS_TEST=true vitest run","build":"rm -rf dist && tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json && ./post-build.sh","clean":"rm -rf node_modules dist","debug":"ts-node-dev --inspect -- src/index.ts","release":"changeset publish","changeset":"changeset","pre-build":"hash-runner","typecheck":"tsc --noEmit","test:watch":"IS_TEST=true vitest","debug:break":"ts-node-dev --inspect-brk -- src/index.ts","syncpack:fix":"syncpack fix-mismatches","add-changeset":"changeset add","syncpack:lint":"syncpack lint","syncpack:format":"syncpack format","syncpack:update":"syncpack update","version-packages":"changeset version"},"_npmUser":{"name":"theo.gravity","email":"theo@suteki.nu"},"_resolved":"/tmp/7627512246c3fe946d8c407a20b5b2cb/hash-runner-3.1.0.tgz","_integrity":"sha512-2FBbReKmlmWQYad7EHlxSFwdjPlp1Nfx2aeaodUNeYrPaJJnj+FJgYftpW4EPYFAs+E0tJRlmMaGRfJGWGs05A==","repository":{"url":"git+ssh://git@github.com/theogravity/hash-runner.git","type":"git"},"_npmVersion":"10.8.2","description":"Executes a command when a change is detected in specified files. Not an active file watcher.","directories":{},"_nodeVersion":"20.19.4","dependencies":{"glob":"11.0.3","debug":"4.4.1","commander":"14.0.0","lilconfig":"3.1.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"turbo":"2.5.5","vitest":"3.2.4","lefthook":"1.12.2","syncpack":"13.0.4","typescript":"5.8.3","@types/node":"24.1.0","@biomejs/biome":"2.1.2","@changesets/cli":"2.29.5","@commitlint/cli":"19.8.1","@changesets/changelog-github":"0.5.1","@commitlint/config-conventional":"19.8.1"},"_npmOperationalInternal":{"tmp":"tmp/hash-runner_3.1.0_1753924585677_0.9266030557552287","host":"s3://npm-registry-packages-npm-production"}},"4.0.0":{"name":"hash-runner","description":"Executes a command when a change is detected in specified files. Not an active file watcher.","version":"4.0.0","main":"dist/cjs/index.js","exports":{".":{"import":"./dist/esm/index.mjs","require":"./dist/cjs/index.js"}},"author":{"name":"Theo Gravity","email":"theo@suteki.nu"},"keywords":["build","hash","runner","watch","turbo","execute","run","command","change","detect"],"dependencies":{"commander":"14.0.0","debug":"4.4.1","glob":"11.0.3","lilconfig":"3.1.3"},"devDependencies":{"@biomejs/biome":"2.1.2","@changesets/changelog-github":"0.5.1","@changesets/cli":"2.29.5","@commitlint/cli":"19.8.1","@commitlint/config-conventional":"19.8.1","@types/node":"24.1.0","lefthook":"1.12.2","syncpack":"13.0.4","turbo":"2.5.5","typescript":"5.8.3","vitest":"3.2.4"},"bin":{"hash-runner":"dist/cjs/bin/hash-runner.js"},"bugs":{"url":"https://github.com/theogravity/hash-runner/issues"},"engines":{"node":">=20"},"homepage":"https://github.com/theogravity/hash-runner","license":"MIT","publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+ssh://git@github.com/theogravity/hash-runner.git"},"scripts":{"pre-build":"hash-runner","build":"rm -rf dist && tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json && ./post-build.sh","changeset":"changeset","add-changeset":"changeset add","clean":"rm -rf node_modules dist","debug":"ts-node-dev --inspect -- src/index.ts","debug:break":"ts-node-dev --inspect-brk -- src/index.ts","lint":"biome check --write --unsafe src","release":"changeset publish","syncpack:update":"syncpack update","syncpack:fix":"syncpack fix-mismatches","syncpack:format":"syncpack format","syncpack:lint":"syncpack lint","test":"IS_TEST=true vitest run","test:watch":"IS_TEST=true vitest","typecheck":"tsc --noEmit","version-packages":"changeset version"},"_id":"hash-runner@4.0.0","types":"./dist/cjs/index.d.ts","_integrity":"sha512-nc/xnD/56pkgyvlbLWakCRv1RsipLccR8k8SZDsB4IYLSXXq9JCOfMF0qbrpoMcN9MFTia6+Tsa2yWQZnLioZg==","_resolved":"/tmp/87e4a18b031f35c99cbe8b0b6ec463b9/hash-runner-4.0.0.tgz","_from":"file:hash-runner-4.0.0.tgz","_nodeVersion":"20.19.4","_npmVersion":"10.8.2","dist":{"integrity":"sha512-nc/xnD/56pkgyvlbLWakCRv1RsipLccR8k8SZDsB4IYLSXXq9JCOfMF0qbrpoMcN9MFTia6+Tsa2yWQZnLioZg==","shasum":"92fbee5e27a8a7434a9c9316fdf2bef81735d724","tarball":"https://registry.npmjs.org/hash-runner/-/hash-runner-4.0.0.tgz","fileCount":15,"unpackedSize":80661,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDaW3LpzcUE4BbQZMlIeT6Hah1jzLuv3go1BqT7b/2slQIgB9wXK8QOeoAsGm2vVpT4yU4PWhPv1tdJm6Cp00eIIfk="}]},"_npmUser":{"name":"theo.gravity","email":"theo@suteki.nu"},"directories":{},"maintainers":[{"name":"theo.gravity","email":"theo@suteki.nu"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/hash-runner_4.0.0_1754274893007_0.7337375855045589"},"_hasShrinkwrap":false}},"time":{"created":"2024-09-15T06:18:55.958Z","modified":"2025-08-04T02:34:53.433Z","1.0.0":"2024-09-15T06:18:56.226Z","1.0.1":"2024-09-15T07:27:35.420Z","1.0.2":"2024-09-15T07:42:18.685Z","1.0.3":"2024-09-15T08:33:26.026Z","1.1.0":"2024-09-15T19:53:23.239Z","1.1.1":"2024-09-15T20:11:47.705Z","1.1.2":"2024-09-16T03:11:17.855Z","1.1.3":"2024-09-16T03:28:38.142Z","2.0.0":"2024-09-18T00:13:33.407Z","2.0.1":"2024-09-18T00:26:04.341Z","2.1.0":"2025-07-26T02:11:55.343Z","2.1.1":"2025-07-26T02:21:30.594Z","3.0.0":"2025-07-31T00:38:04.392Z","3.1.0":"2025-07-31T01:16:25.852Z","4.0.0":"2025-08-04T02:34:53.227Z"},"bugs":{"url":"https://github.com/theogravity/hash-runner/issues"},"author":{"name":"Theo Gravity","email":"theo@suteki.nu"},"license":"MIT","homepage":"https://github.com/theogravity/hash-runner","keywords":["build","hash","runner","watch","turbo","execute","run","command","change","detect"],"repository":{"type":"git","url":"git+ssh://git@github.com/theogravity/hash-runner.git"},"description":"Executes a command when a change is detected in specified files. Not an active file watcher.","maintainers":[{"name":"theo.gravity","email":"theo@suteki.nu"}],"readme":"[![NPM version](https://img.shields.io/npm/v/hash-runner.svg?style=flat-square)](https://www.npmjs.com/package/hash-runner)\n![NPM Downloads](https://img.shields.io/npm/dm/hash-runner)\n[![TypeScript](https://img.shields.io/badge/%3C%2F%3E-TypeScript-%230074c1.svg)](http://www.typescriptlang.org/)\n\n`hash-runner` executes a command when a change is detected in specified files.\nIt calculates the SHA256 hash of the files and compares them to the previous hash values stored in a file.\nIf the hashes differ, the specified command is executed.\n\n*This tool is not an active file watcher that constantly checks for changes.*\n\n## Use-case\n\nIt is designed to be used in conjunction with tools like [`turbo`](https://turbo.build/),\nwhere the watch mode may trigger unnecessary builds even when caching is used.\n\nFor example, consider the following `turbo` configuration:\n\n```json\n{\n  \"$schema\": \"https://turbo.build/schema.json\",\n  \"tasks\": {\n    \"dev\": {\n      \"dependsOn\": [\"@internal/some-package#build\"],\n      \"cache\": false,\n      \"persistent\": true\n    }\n  }\n}\n```\n\nWhen running `turbo [watch] dev`, it will trigger a build even when no changes are detected in `@internal/some-package`.\n\nBy using `hash-runner`, the `build` command will still run on `@internal/some-package`, but it won't actually\nexecute the underlying build command unless changes are detected.\n\n## Installation\n\nNode.js 20 or higher is required.\n\nTo install `hash-runner`, use npm:\n\n```sh\nnpm install hash-runner --save-dev\n```\n\n## Usage\n\n`hash-runner [--config <config-file>] [--force] [--silent]`\n\nCLI options:\n\n* `-c / --config <config-file>`: Specify a custom configuration file.\n* `-f / --force`: Force the creation of a new hash file and execute.\n* `-s / --silent`: Suppress log output.\n\n### Configuration\n\n`hash-runner` uses [`lilconfig`](https://github.com/antonk52/lilconfig) to read configuration.\n\n`lilconfig` will check the current directory for the following:\n\n- a `hash-runner` property in `package.json`\n- a `.hash-runnerrc` file in JSON or YAML format\n- a `.hash-runnerrc.json`, `.hash-runnerrc.js`, `.hash-runnerrc.ts`, `.hash-runnerrc.mjs`, or `.hash-runnerrc.cjs` file\n- a `hash-runnerrc`, `hash-runnerrc.json`, `hash-runnerrc.js`, `hash-runnerrc.ts`, `hash-runnerrc.mjs`, or `hash-runnerrc.cjs` file inside a `.config` subdirectory\n- a `hash-runner.config.js`, `hash-runner.config.ts`, `hash-runner.config.mjs`, or `hash-runner.config.cjs` file\n\n#### Configuration options\n\n| Option | Type | Required | Description |\n|--------|------|----------|-------------|\n| `inputs` | object | Yes | Contains input file configuration |\n| `inputs.includes` | string[] | Yes | Array of glob patterns specifying files to include in hash calculation |\n| `inputs.excludes` | string[] | No | Array of glob patterns specifying files to exclude from hash calculation |\n| `outputs` | object | No | Contains output file configuration for tracking build artifacts |\n| `outputs.includes` | string[] | Yes* | Array of glob patterns specifying output files to track (*required if `outputs` is defined) |\n| `outputs.excludes` | string[] | No | Array of glob patterns specifying output files to exclude from tracking |\n| `execOnChange` | string | Yes | Command to execute when changes are detected |\n| `hashFile` | string | Yes | Path to file where hashes are stored (recommend adding to `.gitignore`) |\n| `parallelizeComparisonsChunkSize` | number | No | Number of files per chunk for parallelizing hash comparison (default: 100) |\n\n**Notes:**\n- The hash file and configuration file are automatically excluded from hash calculations\n- If outputs are configured but missing or changed, the cache is considered stale and the command executes\n- `hash-runner` exits with the status code of the executed command\n\n#### Examples\n\nRun `tsc` when changes are detected in files in the `src` directory:\n\n`package.json`:\n\n```json\n{\n  \"scripts\": {\n    \"build\": \"hash-runner\",\n    \"build:files\": \"tsc\"\n  }\n}\n```\n\nExample configuration file (`.hash-runnerrc.json`):\n\n```json\n{\n  \"inputs\": {\n    \"includes\": [\"src/**/*.ts\"],\n    \"excludes\": [\"dist/**\"]\n  },\n  \"outputs\": {\n    \"includes\": [\"dist/**/*.js\"],\n    \"excludes\": [\"dist/**/*.map\"]\n  },\n  \"execOnChange\": \"npm run build:files\",\n  \"hashFile\": \".hashes.json\"\n}\n```\n\n`hash-runner.config.js`:\n\n```js\nmodule.exports = {\n  inputs: {\n    includes: ['src/**/*.ts'],\n    excludes: ['dist/**']\n  },\n  outputs: {\n    includes: ['dist/**/*.js'],\n    excludes: ['dist/**/*.map']\n  },\n  execOnChange: 'npm run build:files',\n  hashFile: '.hashes.json'\n};\n```\n\n### Basic Configuration (Inputs Only)\n\nIf you only need to track input files (similar to v3 behavior):\n\n```json\n{\n  \"inputs\": {\n    \"includes\": [\"src/**/*.ts\"]\n  },\n  \"execOnChange\": \"npm run build:files\",\n  \"hashFile\": \".hashes.json\"\n}\n```\n\n`npm run build` will only run `tsc` when changes are detected in files in the `src` directory.\n\n## Migration from v3 to v4\n\nIf you're upgrading from hash-runner v3, you'll need to manually update your configuration to the v4 format. For detailed migration instructions, see [MIGRATING.md](./MIGRATING.md).\n\n### CI Mode\n\nWhen running in a Continuous Integration (CI) environment, `hash-runner` will bypass hash checks and execute the specified command directly. This is controlled by the `CI` environment variable.\nTo enable CI mode, set the `CI` environment variable to `true`:\n\n```json\n{\n  \"scripts\": {\n    \"build\": \"hash-runner\",\n    \"build:ci\": \"CI=true hash-runner\",\n    \"build:files\": \"tsc\"\n  }\n}\n```\n\nThis will bypass hash checks and execute the specified command directly.\n\n## API\n\nIn addition to the CLI, `hash-runner` can also be used programmatically:\n\n```typescript\nimport { HashRunner } from 'hash-runner';\n\nconst runner = new HashRunner('/path/to/config.json', { force: true });\nawait runner.run();\n```\n\n### Constructor and Parameters\n\n#### `HashRunner(configPath?: string, options: HashRunnerOptions = {})`\n\n**Parameters:**\n\n- `configPath` (optional): A string representing the path to the configuration file. If not specified, `hash-runner` \nwill attempt to load the configuration from the current directory.\n- `options` (optional): An object containing options to configure the behavior of `hash-runner`.\n\n#### `HashRunnerOptions`\n\n- `force?` (boolean): Force the creation of a new hash file and execute the command regardless of detected changes.\n- `silent?` (boolean): Suppress log output when set to `true`.\n\n## Troubleshooting\n\nThis library uses `debug` to log messages. To enable debug messages, set the `DEBUG` environment variable to `hash-runner`.\n\n```sh\nDEBUG=hash-runner hash-runner\n```\n","readmeFilename":"README.md"}