Same inputs always produce the same SHA-256 hash — safe for caching, invalidation, and content addressing.
Transitive Resolution
Walks every `import` in your entry file and all its dependencies using `enhanced-resolve`, respecting tsconfig paths, package exports, and conditional imports.
Multi-Format
Handles `.ts`, `.tsx`, `.js`, `.jsx`, `.mjs`, `.mts`, `.cjs`, `.json`, and more out of the box.
Extras Support
Include arbitrary files (e.g. `package.json`, lockfiles, config) in the hash to catch environment changes.
Library or CLI
Import `hashup()` from Node, or run the `hashup` binary against a `hashup.json` config with any number of named entries.