const DIGEST_ALGORITHM = "SHA-256"; const HEX_RADIX = 16; const HEX_WIDTH = 2; const HEX_PAD = "0"; const hexOf = function hexOf(bytes: ArrayBuffer): string { return [...new Uint8Array(bytes)].map((byte) => byte.toString(HEX_RADIX).padStart(HEX_WIDTH, HEX_PAD)).join(""); }; export const diagramDigest = async function diagramDigest(source: string): Promise { return hexOf(await crypto.subtle.digest(DIGEST_ALGORITHM, new TextEncoder().encode(source))); };