{"adoption": {"forks": 383, "observed_at": "2026-08-28T04:06:31.967238+00:00", "stars": 2263}, "canonical_url": "https://ross.abutalabs.com/products/jssha", "card": {"archived": false, "artifact_type": "library", "description": "A JavaScript/TypeScript implementation of the complete Secure Hash Standard (SHA) family (SHA-1, SHA-224/256/384/512, SHA3-224/256/384/512, SHAKE128/256, cSHAKE128/256, and KMAC128/256) with HMAC.", "domain": ["security", "developer-tools", "web-development"], "enriched": true, "function": ["cryptography", "security", "sdk"], "health_score": 99, "homepage": "https://caligatio.github.io/jsSHA/", "language": "TypeScript", "license": "BSD-3-Clause", "license_family": "permissive", "maturity": "stable", "member_repos": ["Caligatio/jsSHA"], "name": "Caligatio/jsSHA", "platform": ["browser", "cross-platform"], "pushed_at": "2026-08-26T05:27:06+00:00", "repo": "Caligatio/jsSHA", "stars": 2263, "tags": ["sha", "sha3", "hmac", "shake", "cshake", "kmac", "hashing", "typescript", "pure-javascript", "cryptography", "nodejs", "deno", "javascript"], "topics": ["sha", "sha-1", "sha-2", "sha-3", "sha-224", "sha-256", "sha-384", "sha-512", "sha3-224", "sha3-256", "sha3-384", "sha3-512", "hmac", "javascript", "hash", "typescript", "kmac", "shake", "cshake", "cryptography"], "urls": [], "use_cases": ["compute sha-256 hash of a string in the browser", "generate HMAC signatures in JavaScript", "hash files incrementally with streaming updates", "calculate SHA3 or KMAC hashes in Node.js", "hash passwords or tokens client-side without native crypto", "use SHA hashing in Deno or TypeScript projects"], "what_it_is": "jsSHA is a pure TypeScript/JavaScript library implementing the complete SHA hash family (SHA-1, SHA-2, SHA-3, SHAKE, cSHAKE, KMAC) plus HMAC, with streaming update support. It runs in browsers, Node.js, and Deno with no native dependencies.", "when_to_avoid": ["you only need basic hashes and can rely on the built-in Web Crypto API or Node crypto module", "you need password hashing algorithms like bcrypt or Argon2", "you need high-performance native-speed hashing for large data volumes"], "when_to_choose": ["you need the full SHA family including SHA-3, SHAKE, cSHAKE, or KMAC in JavaScript", "you need a dependency-free, cross-browser and Node-compatible hashing library", "you need streaming/incremental hashing or HMAC support"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/jssha", "repo": "Caligatio/jsSHA", "role": "main", "score": 85}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:31.967238+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:42:27.596830+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7d7a12cb28424ef8d9cf7461fbaa561d2124c141dc4a210b92840c0d29ad30f0", "fetched_at": "2026-08-28T04:06:31.967238+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Caligatio/jsSHA"}, {"content_hash": "2a519064b46c974bec648a1277cd3d86f6700a9ca0817a1b9a71373c503474ef", "fetched_at": "2026-08-29T10:23:12.458045+00:00", "kind": "homepage", "missing": false, "url": "https://caligatio.github.io/jsSHA/"}, {"content_hash": "ff4e457027c334d631fe96b4253e76581897023be8aa272ab9bb6b50c3aae059", "fetched_at": "2026-08-29T10:23:12.460378+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/jssha"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:31.967238+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:42:27.596830+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7d7a12cb28424ef8d9cf7461fbaa561d2124c141dc4a210b92840c0d29ad30f0", "fetched_at": "2026-08-28T04:06:31.967238+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Caligatio/jsSHA"}, {"content_hash": "2a519064b46c974bec648a1277cd3d86f6700a9ca0817a1b9a71373c503474ef", "fetched_at": "2026-08-29T10:23:12.458045+00:00", "kind": "homepage", "missing": false, "url": "https://caligatio.github.io/jsSHA/"}, {"content_hash": "ff4e457027c334d631fe96b4253e76581897023be8aa272ab9bb6b50c3aae059", "fetched_at": "2026-08-29T10:23:12.460378+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/jssha"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:42:27.596830+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7d7a12cb28424ef8d9cf7461fbaa561d2124c141dc4a210b92840c0d29ad30f0", "fetched_at": "2026-08-28T04:06:31.967238+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Caligatio/jsSHA"}, {"content_hash": "2a519064b46c974bec648a1277cd3d86f6700a9ca0817a1b9a71373c503474ef", "fetched_at": "2026-08-29T10:23:12.458045+00:00", "kind": "homepage", "missing": false, "url": "https://caligatio.github.io/jsSHA/"}, {"content_hash": "ff4e457027c334d631fe96b4253e76581897023be8aa272ab9bb6b50c3aae059", "fetched_at": "2026-08-29T10:23:12.460378+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/jssha"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:06:31.967238+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:31.967238+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:31.967238+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:42:27.596830+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7d7a12cb28424ef8d9cf7461fbaa561d2124c141dc4a210b92840c0d29ad30f0", "fetched_at": "2026-08-28T04:06:31.967238+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Caligatio/jsSHA"}, {"content_hash": "2a519064b46c974bec648a1277cd3d86f6700a9ca0817a1b9a71373c503474ef", "fetched_at": "2026-08-29T10:23:12.458045+00:00", "kind": "homepage", "missing": false, "url": "https://caligatio.github.io/jsSHA/"}, {"content_hash": "ff4e457027c334d631fe96b4253e76581897023be8aa272ab9bb6b50c3aae059", "fetched_at": "2026-08-29T10:23:12.460378+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/jssha"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:31.967238+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:31.967238+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:42:27.596830+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7d7a12cb28424ef8d9cf7461fbaa561d2124c141dc4a210b92840c0d29ad30f0", "fetched_at": "2026-08-28T04:06:31.967238+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Caligatio/jsSHA"}, {"content_hash": "2a519064b46c974bec648a1277cd3d86f6700a9ca0817a1b9a71373c503474ef", "fetched_at": "2026-08-29T10:23:12.458045+00:00", "kind": "homepage", "missing": false, "url": "https://caligatio.github.io/jsSHA/"}, {"content_hash": "ff4e457027c334d631fe96b4253e76581897023be8aa272ab9bb6b50c3aae059", "fetched_at": "2026-08-29T10:23:12.460378+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/jssha"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:31.967238+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:31.967238+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:31.967238+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:42:27.596830+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7d7a12cb28424ef8d9cf7461fbaa561d2124c141dc4a210b92840c0d29ad30f0", "fetched_at": "2026-08-28T04:06:31.967238+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Caligatio/jsSHA"}, {"content_hash": "2a519064b46c974bec648a1277cd3d86f6700a9ca0817a1b9a71373c503474ef", "fetched_at": "2026-08-29T10:23:12.458045+00:00", "kind": "homepage", "missing": false, "url": "https://caligatio.github.io/jsSHA/"}, {"content_hash": "ff4e457027c334d631fe96b4253e76581897023be8aa272ab9bb6b50c3aae059", "fetched_at": "2026-08-29T10:23:12.460378+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/jssha"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:31.967238+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:31.967238+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:42:27.596830+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7d7a12cb28424ef8d9cf7461fbaa561d2124c141dc4a210b92840c0d29ad30f0", "fetched_at": "2026-08-28T04:06:31.967238+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Caligatio/jsSHA"}, {"content_hash": "2a519064b46c974bec648a1277cd3d86f6700a9ca0817a1b9a71373c503474ef", "fetched_at": "2026-08-29T10:23:12.458045+00:00", "kind": "homepage", "missing": false, "url": "https://caligatio.github.io/jsSHA/"}, {"content_hash": "ff4e457027c334d631fe96b4253e76581897023be8aa272ab9bb6b50c3aae059", "fetched_at": "2026-08-29T10:23:12.460378+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/jssha"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:42:27.596830+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7d7a12cb28424ef8d9cf7461fbaa561d2124c141dc4a210b92840c0d29ad30f0", "fetched_at": "2026-08-28T04:06:31.967238+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Caligatio/jsSHA"}, {"content_hash": "2a519064b46c974bec648a1277cd3d86f6700a9ca0817a1b9a71373c503474ef", "fetched_at": "2026-08-29T10:23:12.458045+00:00", "kind": "homepage", "missing": false, "url": "https://caligatio.github.io/jsSHA/"}, {"content_hash": "ff4e457027c334d631fe96b4253e76581897023be8aa272ab9bb6b50c3aae059", "fetched_at": "2026-08-29T10:23:12.460378+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/jssha"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:42:27.596830+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7d7a12cb28424ef8d9cf7461fbaa561d2124c141dc4a210b92840c0d29ad30f0", "fetched_at": "2026-08-28T04:06:31.967238+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Caligatio/jsSHA"}, {"content_hash": "2a519064b46c974bec648a1277cd3d86f6700a9ca0817a1b9a71373c503474ef", "fetched_at": "2026-08-29T10:23:12.458045+00:00", "kind": "homepage", "missing": false, "url": "https://caligatio.github.io/jsSHA/"}, {"content_hash": "ff4e457027c334d631fe96b4253e76581897023be8aa272ab9bb6b50c3aae059", "fetched_at": "2026-08-29T10:23:12.460378+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/jssha"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:42:27.596830+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7d7a12cb28424ef8d9cf7461fbaa561d2124c141dc4a210b92840c0d29ad30f0", "fetched_at": "2026-08-28T04:06:31.967238+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Caligatio/jsSHA"}, {"content_hash": "2a519064b46c974bec648a1277cd3d86f6700a9ca0817a1b9a71373c503474ef", "fetched_at": "2026-08-29T10:23:12.458045+00:00", "kind": "homepage", "missing": false, "url": "https://caligatio.github.io/jsSHA/"}, {"content_hash": "ff4e457027c334d631fe96b4253e76581897023be8aa272ab9bb6b50c3aae059", "fetched_at": "2026-08-29T10:23:12.460378+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/jssha"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 58}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 5156, "days_push": 7, "days_rel": 68, "gap_med": null, "n_releases_24m": 1}, "score": 85, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}