{ "version": 3, "sources": ["../../../../../../../src/js/lib/tokens.js"], "sourcesContent": ["let _token;\n\nexport const setToken = token => {\n _token = token;\n};\n\nexport async function digestMessage(message) {\n if (!(\"crypto\" in window)) return null;\n const msgUint8 = new TextEncoder().encode(message); // encode as (utf-8) Uint8Array\n const hashBuffer = await crypto.subtle.digest(\"SHA-256\", msgUint8); // hash the message\n const hashArray = Array.from(new Uint8Array(hashBuffer)); // convert buffer to byte array\n const hashHex = hashArray.map(b => b.toString(16).padStart(2, \"0\")).join(\"\"); // convert bytes to hex string\n return hashHex;\n}\n\nexport const tokenChannel =\n \"BroadcastChannel\" in window ? new BroadcastChannel(\"token\") : \"\";\n\nexport const token = {\n addEventListener: (...args) =>\n tokenChannel && tokenChannel.addEventListener(...args),\n removeEventListener: (...args) =>\n tokenChannel && tokenChannel.removeEventListener(...args),\n getHash: () => digestMessage(_token),\n setToken,\n postMessage: message =>\n token.getHash().then(\n tokenHash =>\n // digestMessage will return null on missing crypto on older\n // browsers\n tokenHash &&\n tokenChannel &&\n tokenChannel.postMessage({ tokenHash, ...message })\n )\n};\n"], "mappings": "AAAA,GAAI,GAES,EAAW,GAAS,CAC/B,EAAS,GAGX,iBAAoC,EAAS,CAC3C,GAAI,CAAE,WAAY,SAAS,MAAO,MAClC,GAAM,GAAW,GAAI,eAAc,OAAO,GACpC,EAAa,KAAM,QAAO,OAAO,OAAO,UAAW,GAGzD,MADgB,AADE,OAAM,KAAK,GAAI,YAAW,IAClB,IAAI,GAAK,EAAE,SAAS,IAAI,SAAS,EAAG,MAAM,KAAK,IAIpE,GAAM,GACX,oBAAsB,QAAS,GAAI,kBAAiB,SAAW,GAEpD,EAAQ,CACnB,iBAAkB,IAAI,IACpB,GAAgB,EAAa,iBAAiB,GAAG,GACnD,oBAAqB,IAAI,IACvB,GAAgB,EAAa,oBAAoB,GAAG,GACtD,QAAS,IAAM,EAAc,GAC7B,WACA,YAAa,GACX,EAAM,UAAU,KACd,GAGE,GACA,GACA,EAAa,YAAY,CAAE,eAAc", "names": [] }