@junobuild/analytics 0.0.29 → 0.0.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/index.js +1 -1
- package/dist/browser/index.js.map +2 -2
- package/dist/node/index.mjs +1 -1
- package/dist/node/index.mjs.map +2 -2
- package/dist/types/types/env.d.ts +2 -2
- package/dist/types/utils/actor.utils.d.ts +1 -1
- package/dist/workers/analytics.worker.js +1 -1
- package/dist/workers/analytics.worker.js.map +2 -2
- package/package.json +1 -1
package/dist/node/index.mjs.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../node_modules/@dfinity/principal/src/utils/base32.ts", "../../../../node_modules/@dfinity/principal/src/utils/getCrc.ts", "../../../../node_modules/@noble/hashes/src/_assert.ts", "../../../../node_modules/@noble/hashes/src/cryptoNode.ts", "../../../../node_modules/@noble/hashes/src/utils.ts", "../../../../node_modules/@noble/hashes/src/_md.ts", "../../../../node_modules/@noble/hashes/src/sha256.ts", "../../../../node_modules/@dfinity/principal/src/utils/sha224.ts", "../../../../node_modules/@dfinity/principal/src/index.ts", "../../../../node_modules/web-vitals/dist/web-vitals.js", "../../../../node_modules/idb-keyval/dist/index.js", "../../src/services/idb.services.ts", "../../../utils/src/utils/debounce.utils.ts", "../../../utils/src/utils/json.utils.ts", "../../../utils/src/utils/null.utils.ts", "../../../utils/src/utils/did.utils.ts", "../../../utils/src/utils/env.utils.ts", "../../../../node_modules/nanoid/index.js", "../../../../node_modules/nanoid/url-alphabet/index.js", "../../src/utils/date.utils.ts", "../../src/utils/analytics.utils.ts", "../../src/utils/log.utils.ts", "../../src/services/performance.services.ts", "../../src/services/analytics.services.ts", "../../src/utils/window.env.utils.ts", "../../src/index.ts"],
|
|
4
|
-
"sourcesContent": ["const alphabet = 'abcdefghijklmnopqrstuvwxyz234567';\n\n// Build a lookup table for decoding.\nconst lookupTable: Record<string, number> = Object.create(null);\nfor (let i = 0; i < alphabet.length; i++) {\n lookupTable[alphabet[i]] = i;\n}\n\n// Add aliases for rfc4648.\nlookupTable['0'] = lookupTable.o;\nlookupTable['1'] = lookupTable.i;\n\n/**\n * @param input The input array to encode.\n * @returns A Base32 string encoding the input.\n */\nexport function encode(input: Uint8Array): string {\n // How many bits will we skip from the first byte.\n let skip = 0;\n // 5 high bits, carry from one byte to the next.\n let bits = 0;\n\n // The output string in base32.\n let output = '';\n\n function encodeByte(byte: number) {\n if (skip < 0) {\n // we have a carry from the previous byte\n bits |= byte >> -skip;\n } else {\n // no carry\n bits = (byte << skip) & 248;\n }\n\n if (skip > 3) {\n // Not enough data to produce a character, get us another one\n skip -= 8;\n return 1;\n }\n\n if (skip < 4) {\n // produce a character\n output += alphabet[bits >> 3];\n skip += 5;\n }\n\n return 0;\n }\n\n for (let i = 0; i < input.length; ) {\n i += encodeByte(input[i]);\n }\n\n return output + (skip < 0 ? alphabet[bits >> 3] : '');\n}\n\n/**\n * @param input The base32 encoded string to decode.\n */\nexport function decode(input: string): Uint8Array {\n // how many bits we have from the previous character.\n let skip = 0;\n // current byte we're producing.\n let byte = 0;\n\n const output = new Uint8Array(((input.length * 4) / 3) | 0);\n let o = 0;\n\n function decodeChar(char: string) {\n // Consume a character from the stream, store\n // the output in this.output. As before, better\n // to use update().\n let val = lookupTable[char.toLowerCase()];\n if (val === undefined) {\n throw new Error(`Invalid character: ${JSON.stringify(char)}`);\n }\n\n // move to the high bits\n val <<= 3;\n byte |= val >>> skip;\n skip += 5;\n\n if (skip >= 8) {\n // We have enough bytes to produce an output\n output[o++] = byte;\n skip -= 8;\n\n if (skip > 0) {\n byte = (val << (5 - skip)) & 255;\n } else {\n byte = 0;\n }\n }\n }\n\n for (const c of input) {\n decodeChar(c);\n }\n\n return output.slice(0, o);\n}\n", "// This file is translated to JavaScript from\n// https://lxp32.github.io/docs/a-simple-example-crc32-calculation/\nconst lookUpTable: Uint32Array = new Uint32Array([\n 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f, 0xe963a535, 0x9e6495a3,\n 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988, 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91,\n 0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de, 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7,\n 0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9, 0xfa0f3d63, 0x8d080df5,\n 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172, 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b,\n 0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59,\n 0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423, 0xcfba9599, 0xb8bda50f,\n 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924, 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d,\n 0x76dc4190, 0x01db7106, 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433,\n 0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01,\n 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e, 0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457,\n 0x65b0d9c6, 0x12b7e950, 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65,\n 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb,\n 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0, 0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9,\n 0x5005713c, 0x270241aa, 0xbe0b1010, 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f,\n 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad,\n 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a, 0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683,\n 0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8, 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1,\n 0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb, 0x196c3671, 0x6e6b06e7,\n 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc, 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5,\n 0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b,\n 0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55, 0x316e8eef, 0x4669be79,\n 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236, 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f,\n 0xc5ba3bbe, 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d,\n 0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, 0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713,\n 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38, 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21,\n 0x86d3d2d4, 0xf1d4e242, 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777,\n 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45,\n 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2, 0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db,\n 0xaed16a4a, 0xd9d65adc, 0x40df0b66, 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9,\n 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693, 0x54de5729, 0x23d967bf,\n 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94, 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d,\n]);\n\n/**\n * Calculate the CRC32 of an ArrayBufferLike.\n * @param buf The BufferLike to calculate the CRC32 of.\n */\nexport function getCrc32(buf: ArrayBufferLike): number {\n const b = new Uint8Array(buf);\n let crc = -1;\n\n for (let i = 0; i < b.length; i++) {\n const byte = b[i];\n const t = (byte ^ crc) & 0xff;\n crc = lookUpTable[t] ^ (crc >>> 8);\n }\n\n return (crc ^ -1) >>> 0;\n}\n", "function number(n: number) {\n if (!Number.isSafeInteger(n) || n < 0) throw new Error(`positive integer expected, not ${n}`);\n}\n\nfunction bool(b: boolean) {\n if (typeof b !== 'boolean') throw new Error(`boolean expected, not ${b}`);\n}\n\n// copied from utils\nexport function isBytes(a: unknown): a is Uint8Array {\n return (\n a instanceof Uint8Array ||\n (a != null && typeof a === 'object' && a.constructor.name === 'Uint8Array')\n );\n}\n\nfunction bytes(b: Uint8Array | undefined, ...lengths: number[]) {\n if (!isBytes(b)) throw new Error('Uint8Array expected');\n if (lengths.length > 0 && !lengths.includes(b.length))\n throw new Error(`Uint8Array expected of length ${lengths}, not of length=${b.length}`);\n}\n\ntype Hash = {\n (data: Uint8Array): Uint8Array;\n blockLen: number;\n outputLen: number;\n create: any;\n};\nfunction hash(h: Hash) {\n if (typeof h !== 'function' || typeof h.create !== 'function')\n throw new Error('Hash should be wrapped by utils.wrapConstructor');\n number(h.outputLen);\n number(h.blockLen);\n}\n\nfunction exists(instance: any, checkFinished = true) {\n if (instance.destroyed) throw new Error('Hash instance has been destroyed');\n if (checkFinished && instance.finished) throw new Error('Hash#digest() has already been called');\n}\nfunction output(out: any, instance: any) {\n bytes(out);\n const min = instance.outputLen;\n if (out.length < min) {\n throw new Error(`digestInto() expects output buffer of length at least ${min}`);\n }\n}\n\nexport { number, bool, bytes, hash, exists, output };\n\nconst assert = { number, bool, bytes, hash, exists, output };\nexport default assert;\n", "// We prefer WebCrypto aka globalThis.crypto, which exists in node.js 16+.\n// Falls back to Node.js built-in crypto for Node.js <=v14\n// See utils.ts for details.\n// @ts-ignore\nimport * as nc from 'node:crypto';\nexport const crypto =\n nc && typeof nc === 'object' && 'webcrypto' in nc\n ? (nc.webcrypto as any)\n : nc && typeof nc === 'object' && 'randomBytes' in nc\n ? nc\n : undefined;\n", "/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n\n// We use WebCrypto aka globalThis.crypto, which exists in browsers and node.js 16+.\n// node.js versions earlier than v19 don't declare it in global scope.\n// For node.js, package.json#exports field mapping rewrites import\n// from `crypto` to `cryptoNode`, which imports native module.\n// Makes the utils un-importable in browsers without a bundler.\n// Once node.js 18 is deprecated (2025-04-30), we can just drop the import.\nimport { crypto } from '@noble/hashes/crypto';\nimport { bytes as abytes } from './_assert.js';\n// export { isBytes } from './_assert.js';\n// We can't reuse isBytes from _assert, because somehow this causes huge perf issues\nexport function isBytes(a: unknown): a is Uint8Array {\n return (\n a instanceof Uint8Array ||\n (a != null && typeof a === 'object' && a.constructor.name === 'Uint8Array')\n );\n}\n\n// prettier-ignore\nexport type TypedArray = Int8Array | Uint8ClampedArray | Uint8Array |\n Uint16Array | Int16Array | Uint32Array | Int32Array;\n\n// Cast array to different type\nexport const u8 = (arr: TypedArray) => new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\nexport const u32 = (arr: TypedArray) =>\n new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\n\n// Cast array to view\nexport const createView = (arr: TypedArray) =>\n new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\n\n// The rotate right (circular right shift) operation for uint32\nexport const rotr = (word: number, shift: number) => (word << (32 - shift)) | (word >>> shift);\n// The rotate left (circular left shift) operation for uint32\nexport const rotl = (word: number, shift: number) =>\n (word << shift) | ((word >>> (32 - shift)) >>> 0);\n\nexport const isLE = new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44;\n// The byte swap operation for uint32\nexport const byteSwap = (word: number) =>\n ((word << 24) & 0xff000000) |\n ((word << 8) & 0xff0000) |\n ((word >>> 8) & 0xff00) |\n ((word >>> 24) & 0xff);\n// Conditionally byte swap if on a big-endian platform\nexport const byteSwapIfBE = isLE ? (n: number) => n : (n: number) => byteSwap(n);\n\n// In place byte swap for Uint32Array\nexport function byteSwap32(arr: Uint32Array) {\n for (let i = 0; i < arr.length; i++) {\n arr[i] = byteSwap(arr[i]);\n }\n}\n\n// Array where index 0xf0 (240) is mapped to string 'f0'\nconst hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) =>\n i.toString(16).padStart(2, '0')\n);\n/**\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nexport function bytesToHex(bytes: Uint8Array): string {\n abytes(bytes);\n // pre-caching improves the speed 6x\n let hex = '';\n for (let i = 0; i < bytes.length; i++) {\n hex += hexes[bytes[i]];\n }\n return hex;\n}\n\n// We use optimized technique to convert hex string to byte array\nconst asciis = { _0: 48, _9: 57, _A: 65, _F: 70, _a: 97, _f: 102 } as const;\nfunction asciiToBase16(char: number): number | undefined {\n if (char >= asciis._0 && char <= asciis._9) return char - asciis._0;\n if (char >= asciis._A && char <= asciis._F) return char - (asciis._A - 10);\n if (char >= asciis._a && char <= asciis._f) return char - (asciis._a - 10);\n return;\n}\n\n/**\n * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n */\nexport function hexToBytes(hex: string): Uint8Array {\n if (typeof hex !== 'string') throw new Error('hex string expected, got ' + typeof hex);\n const hl = hex.length;\n const al = hl / 2;\n if (hl % 2) throw new Error('padded hex string expected, got unpadded hex of length ' + hl);\n const array = new Uint8Array(al);\n for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) {\n const n1 = asciiToBase16(hex.charCodeAt(hi));\n const n2 = asciiToBase16(hex.charCodeAt(hi + 1));\n if (n1 === undefined || n2 === undefined) {\n const char = hex[hi] + hex[hi + 1];\n throw new Error('hex string expected, got non-hex character \"' + char + '\" at index ' + hi);\n }\n array[ai] = n1 * 16 + n2;\n }\n return array;\n}\n\n// There is no setImmediate in browser and setTimeout is slow.\n// call of async fn will return Promise, which will be fullfiled only on\n// next scheduler queue processing step and this is exactly what we need.\nexport const nextTick = async () => {};\n\n// Returns control to thread each 'tick' ms to avoid blocking\nexport async function asyncLoop(iters: number, tick: number, cb: (i: number) => void) {\n let ts = Date.now();\n for (let i = 0; i < iters; i++) {\n cb(i);\n // Date.now() is not monotonic, so in case if clock goes backwards we return return control too\n const diff = Date.now() - ts;\n if (diff >= 0 && diff < tick) continue;\n await nextTick();\n ts += diff;\n }\n}\n\n// Global symbols in both browsers and Node.js since v11\n// See https://github.com/microsoft/TypeScript/issues/31535\ndeclare const TextEncoder: any;\n\n/**\n * @example utf8ToBytes('abc') // new Uint8Array([97, 98, 99])\n */\nexport function utf8ToBytes(str: string): Uint8Array {\n if (typeof str !== 'string') throw new Error(`utf8ToBytes expected string, got ${typeof str}`);\n return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n\nexport type Input = Uint8Array | string;\n/**\n * Normalizes (non-hex) string or Uint8Array to Uint8Array.\n * Warning: when Uint8Array is passed, it would NOT get copied.\n * Keep in mind for future mutable operations.\n */\nexport function toBytes(data: Input): Uint8Array {\n if (typeof data === 'string') data = utf8ToBytes(data);\n abytes(data);\n return data;\n}\n\n/**\n * Copies several Uint8Arrays into one.\n */\nexport function concatBytes(...arrays: Uint8Array[]): Uint8Array {\n let sum = 0;\n for (let i = 0; i < arrays.length; i++) {\n const a = arrays[i];\n abytes(a);\n sum += a.length;\n }\n const res = new Uint8Array(sum);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const a = arrays[i];\n res.set(a, pad);\n pad += a.length;\n }\n return res;\n}\n\n// For runtime check if class implements interface\nexport abstract class Hash<T extends Hash<T>> {\n abstract blockLen: number; // Bytes per block\n abstract outputLen: number; // Bytes in output\n abstract update(buf: Input): this;\n // Writes digest into buf\n abstract digestInto(buf: Uint8Array): void;\n abstract digest(): Uint8Array;\n /**\n * Resets internal state. Makes Hash instance unusable.\n * Reset is impossible for keyed hashes if key is consumed into state. If digest is not consumed\n * by user, they will need to manually call `destroy()` when zeroing is necessary.\n */\n abstract destroy(): void;\n /**\n * Clones hash instance. Unsafe: doesn't check whether `to` is valid. Can be used as `clone()`\n * when no options are passed.\n * Reasons to use `_cloneInto` instead of clone: 1) performance 2) reuse instance => all internal\n * buffers are overwritten => causes buffer overwrite which is used for digest in some cases.\n * There are no guarantees for clean-up because it's impossible in JS.\n */\n abstract _cloneInto(to?: T): T;\n // Safe version that clones internal state\n clone(): T {\n return this._cloneInto();\n }\n}\n\n/**\n * XOF: streaming API to read digest in chunks.\n * Same as 'squeeze' in keccak/k12 and 'seek' in blake3, but more generic name.\n * When hash used in XOF mode it is up to user to call '.destroy' afterwards, since we cannot\n * destroy state, next call can require more bytes.\n */\nexport type HashXOF<T extends Hash<T>> = Hash<T> & {\n xof(bytes: number): Uint8Array; // Read 'bytes' bytes from digest stream\n xofInto(buf: Uint8Array): Uint8Array; // read buf.length bytes from digest stream into buf\n};\n\nconst toStr = {}.toString;\ntype EmptyObj = {};\nexport function checkOpts<T1 extends EmptyObj, T2 extends EmptyObj>(\n defaults: T1,\n opts?: T2\n): T1 & T2 {\n if (opts !== undefined && toStr.call(opts) !== '[object Object]')\n throw new Error('Options should be object or undefined');\n const merged = Object.assign(defaults, opts);\n return merged as T1 & T2;\n}\n\nexport type CHash = ReturnType<typeof wrapConstructor>;\n\nexport function wrapConstructor<T extends Hash<T>>(hashCons: () => Hash<T>) {\n const hashC = (msg: Input): Uint8Array => hashCons().update(toBytes(msg)).digest();\n const tmp = hashCons();\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = () => hashCons();\n return hashC;\n}\n\nexport function wrapConstructorWithOpts<H extends Hash<H>, T extends Object>(\n hashCons: (opts?: T) => Hash<H>\n) {\n const hashC = (msg: Input, opts?: T): Uint8Array => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({} as T);\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts: T) => hashCons(opts);\n return hashC;\n}\n\nexport function wrapXOFConstructorWithOpts<H extends HashXOF<H>, T extends Object>(\n hashCons: (opts?: T) => HashXOF<H>\n) {\n const hashC = (msg: Input, opts?: T): Uint8Array => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({} as T);\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts: T) => hashCons(opts);\n return hashC;\n}\n\n/**\n * Secure PRNG. Uses `crypto.getRandomValues`, which defers to OS.\n */\nexport function randomBytes(bytesLength = 32): Uint8Array {\n if (crypto && typeof crypto.getRandomValues === 'function') {\n return crypto.getRandomValues(new Uint8Array(bytesLength));\n }\n // Legacy Node.js compatibility\n if (crypto && typeof crypto.randomBytes === 'function') {\n return crypto.randomBytes(bytesLength);\n }\n throw new Error('crypto.getRandomValues must be defined');\n}\n", "import { exists, output } from './_assert.js';\nimport { Hash, createView, Input, toBytes } from './utils.js';\n\n/**\n * Polyfill for Safari 14\n */\nfunction setBigUint64(view: DataView, byteOffset: number, value: bigint, isLE: boolean): void {\n if (typeof view.setBigUint64 === 'function') return view.setBigUint64(byteOffset, value, isLE);\n const _32n = BigInt(32);\n const _u32_max = BigInt(0xffffffff);\n const wh = Number((value >> _32n) & _u32_max);\n const wl = Number(value & _u32_max);\n const h = isLE ? 4 : 0;\n const l = isLE ? 0 : 4;\n view.setUint32(byteOffset + h, wh, isLE);\n view.setUint32(byteOffset + l, wl, isLE);\n}\n\n/**\n * Choice: a ? b : c\n */\nexport const Chi = (a: number, b: number, c: number) => (a & b) ^ (~a & c);\n\n/**\n * Majority function, true if any two inputs is true\n */\nexport const Maj = (a: number, b: number, c: number) => (a & b) ^ (a & c) ^ (b & c);\n\n/**\n * Merkle-Damgard hash construction base class.\n * Could be used to create MD5, RIPEMD, SHA1, SHA2.\n */\nexport abstract class HashMD<T extends HashMD<T>> extends Hash<T> {\n protected abstract process(buf: DataView, offset: number): void;\n protected abstract get(): number[];\n protected abstract set(...args: number[]): void;\n abstract destroy(): void;\n protected abstract roundClean(): void;\n // For partial updates less than block size\n protected buffer: Uint8Array;\n protected view: DataView;\n protected finished = false;\n protected length = 0;\n protected pos = 0;\n protected destroyed = false;\n\n constructor(\n readonly blockLen: number,\n public outputLen: number,\n readonly padOffset: number,\n readonly isLE: boolean\n ) {\n super();\n this.buffer = new Uint8Array(blockLen);\n this.view = createView(this.buffer);\n }\n update(data: Input): this {\n exists(this);\n const { view, buffer, blockLen } = this;\n data = toBytes(data);\n const len = data.length;\n for (let pos = 0; pos < len; ) {\n const take = Math.min(blockLen - this.pos, len - pos);\n // Fast path: we have at least one block in input, cast it to view and process\n if (take === blockLen) {\n const dataView = createView(data);\n for (; blockLen <= len - pos; pos += blockLen) this.process(dataView, pos);\n continue;\n }\n buffer.set(data.subarray(pos, pos + take), this.pos);\n this.pos += take;\n pos += take;\n if (this.pos === blockLen) {\n this.process(view, 0);\n this.pos = 0;\n }\n }\n this.length += data.length;\n this.roundClean();\n return this;\n }\n digestInto(out: Uint8Array) {\n exists(this);\n output(out, this);\n this.finished = true;\n // Padding\n // We can avoid allocation of buffer for padding completely if it\n // was previously not allocated here. But it won't change performance.\n const { buffer, view, blockLen, isLE } = this;\n let { pos } = this;\n // append the bit '1' to the message\n buffer[pos++] = 0b10000000;\n this.buffer.subarray(pos).fill(0);\n // we have less than padOffset left in buffer, so we cannot put length in\n // current block, need process it and pad again\n if (this.padOffset > blockLen - pos) {\n this.process(view, 0);\n pos = 0;\n }\n // Pad until full block byte with zeros\n for (let i = pos; i < blockLen; i++) buffer[i] = 0;\n // Note: sha512 requires length to be 128bit integer, but length in JS will overflow before that\n // You need to write around 2 exabytes (u64_max / 8 / (1024**6)) for this to happen.\n // So we just write lowest 64 bits of that value.\n setBigUint64(view, blockLen - 8, BigInt(this.length * 8), isLE);\n this.process(view, 0);\n const oview = createView(out);\n const len = this.outputLen;\n // NOTE: we do division by 4 later, which should be fused in single op with modulo by JIT\n if (len % 4) throw new Error('_sha2: outputLen should be aligned to 32bit');\n const outLen = len / 4;\n const state = this.get();\n if (outLen > state.length) throw new Error('_sha2: outputLen bigger than state');\n for (let i = 0; i < outLen; i++) oview.setUint32(4 * i, state[i], isLE);\n }\n digest() {\n const { buffer, outputLen } = this;\n this.digestInto(buffer);\n const res = buffer.slice(0, outputLen);\n this.destroy();\n return res;\n }\n _cloneInto(to?: T): T {\n to ||= new (this.constructor as any)() as T;\n to.set(...this.get());\n const { blockLen, buffer, length, finished, destroyed, pos } = this;\n to.length = length;\n to.pos = pos;\n to.finished = finished;\n to.destroyed = destroyed;\n if (length % blockLen) to.buffer.set(buffer);\n return to;\n }\n}\n", "import { HashMD, Chi, Maj } from './_md.js';\nimport { rotr, wrapConstructor } from './utils.js';\n\n// SHA2-256 need to try 2^128 hashes to execute birthday attack.\n// BTC network is doing 2^67 hashes/sec as per early 2023.\n\n// Round constants:\n// first 32 bits of the fractional parts of the cube roots of the first 64 primes 2..311)\n// prettier-ignore\nconst SHA256_K = /* @__PURE__ */ new Uint32Array([\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n]);\n\n// Initial state:\n// first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19\n// prettier-ignore\nconst SHA256_IV = /* @__PURE__ */ new Uint32Array([\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n]);\n\n// Temporary buffer, not used to store anything between runs\n// Named this way because it matches specification.\nconst SHA256_W = /* @__PURE__ */ new Uint32Array(64);\nexport class SHA256 extends HashMD<SHA256> {\n // We cannot use array here since array allows indexing by variable\n // which means optimizer/compiler cannot use registers.\n A = SHA256_IV[0] | 0;\n B = SHA256_IV[1] | 0;\n C = SHA256_IV[2] | 0;\n D = SHA256_IV[3] | 0;\n E = SHA256_IV[4] | 0;\n F = SHA256_IV[5] | 0;\n G = SHA256_IV[6] | 0;\n H = SHA256_IV[7] | 0;\n\n constructor() {\n super(64, 32, 8, false);\n }\n protected get(): [number, number, number, number, number, number, number, number] {\n const { A, B, C, D, E, F, G, H } = this;\n return [A, B, C, D, E, F, G, H];\n }\n // prettier-ignore\n protected set(\n A: number, B: number, C: number, D: number, E: number, F: number, G: number, H: number\n ) {\n this.A = A | 0;\n this.B = B | 0;\n this.C = C | 0;\n this.D = D | 0;\n this.E = E | 0;\n this.F = F | 0;\n this.G = G | 0;\n this.H = H | 0;\n }\n protected process(view: DataView, offset: number): void {\n // Extend the first 16 words into the remaining 48 words w[16..63] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4) SHA256_W[i] = view.getUint32(offset, false);\n for (let i = 16; i < 64; i++) {\n const W15 = SHA256_W[i - 15];\n const W2 = SHA256_W[i - 2];\n const s0 = rotr(W15, 7) ^ rotr(W15, 18) ^ (W15 >>> 3);\n const s1 = rotr(W2, 17) ^ rotr(W2, 19) ^ (W2 >>> 10);\n SHA256_W[i] = (s1 + SHA256_W[i - 7] + s0 + SHA256_W[i - 16]) | 0;\n }\n // Compression function main loop, 64 rounds\n let { A, B, C, D, E, F, G, H } = this;\n for (let i = 0; i < 64; i++) {\n const sigma1 = rotr(E, 6) ^ rotr(E, 11) ^ rotr(E, 25);\n const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const sigma0 = rotr(A, 2) ^ rotr(A, 13) ^ rotr(A, 22);\n const T2 = (sigma0 + Maj(A, B, C)) | 0;\n H = G;\n G = F;\n F = E;\n E = (D + T1) | 0;\n D = C;\n C = B;\n B = A;\n A = (T1 + T2) | 0;\n }\n // Add the compressed chunk to the current hash value\n A = (A + this.A) | 0;\n B = (B + this.B) | 0;\n C = (C + this.C) | 0;\n D = (D + this.D) | 0;\n E = (E + this.E) | 0;\n F = (F + this.F) | 0;\n G = (G + this.G) | 0;\n H = (H + this.H) | 0;\n this.set(A, B, C, D, E, F, G, H);\n }\n protected roundClean() {\n SHA256_W.fill(0);\n }\n destroy() {\n this.set(0, 0, 0, 0, 0, 0, 0, 0);\n this.buffer.fill(0);\n }\n}\n// Constants from https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf\nclass SHA224 extends SHA256 {\n A = 0xc1059ed8 | 0;\n B = 0x367cd507 | 0;\n C = 0x3070dd17 | 0;\n D = 0xf70e5939 | 0;\n E = 0xffc00b31 | 0;\n F = 0x68581511 | 0;\n G = 0x64f98fa7 | 0;\n H = 0xbefa4fa4 | 0;\n constructor() {\n super();\n this.outputLen = 28;\n }\n}\n\n/**\n * SHA2-256 hash function\n * @param message - data that would be hashed\n */\nexport const sha256 = /* @__PURE__ */ wrapConstructor(() => new SHA256());\n/**\n * SHA2-224 hash function\n */\nexport const sha224 = /* @__PURE__ */ wrapConstructor(() => new SHA224());\n", "import { sha224 as jsSha224 } from '@noble/hashes/sha256';\n\n/**\n * Returns the SHA224 hash of the buffer.\n * @param data Arraybuffer to encode\n */\nexport function sha224(data: ArrayBuffer): Uint8Array {\n return jsSha224.create().update(new Uint8Array(data)).digest();\n}\n", "import { decode, encode } from './utils/base32';\nimport { getCrc32 } from './utils/getCrc';\nimport { sha224 } from './utils/sha224';\n\nexport const JSON_KEY_PRINCIPAL = '__principal__';\nconst SELF_AUTHENTICATING_SUFFIX = 2;\nconst ANONYMOUS_SUFFIX = 4;\n\nconst MANAGEMENT_CANISTER_PRINCIPAL_HEX_STR = 'aaaaa-aa';\n\nconst fromHexString = (hexString: string) =>\n new Uint8Array((hexString.match(/.{1,2}/g) ?? []).map(byte => parseInt(byte, 16)));\n\nconst toHexString = (bytes: Uint8Array) =>\n bytes.reduce((str, byte) => str + byte.toString(16).padStart(2, '0'), '');\n\nexport type JsonnablePrincipal = {\n [JSON_KEY_PRINCIPAL]: string;\n};\n\nexport class Principal {\n public static anonymous(): Principal {\n return new this(new Uint8Array([ANONYMOUS_SUFFIX]));\n }\n\n /**\n * Utility method, returning the principal representing the management canister, decoded from the hex string `'aaaaa-aa'`\n * @returns {Principal} principal of the management canister\n */\n public static managementCanister(): Principal {\n return this.fromHex(MANAGEMENT_CANISTER_PRINCIPAL_HEX_STR);\n }\n\n public static selfAuthenticating(publicKey: Uint8Array): Principal {\n const sha = sha224(publicKey);\n return new this(new Uint8Array([...sha, SELF_AUTHENTICATING_SUFFIX]));\n }\n\n public static from(other: unknown): Principal {\n if (typeof other === 'string') {\n return Principal.fromText(other);\n } else if (Object.getPrototypeOf(other) === Uint8Array.prototype) {\n return new Principal(other as Uint8Array);\n } else if (\n typeof other === 'object' &&\n other !== null &&\n (other as Principal)._isPrincipal === true\n ) {\n return new Principal((other as Principal)._arr);\n }\n\n throw new Error(`Impossible to convert ${JSON.stringify(other)} to Principal.`);\n }\n\n public static fromHex(hex: string): Principal {\n return new this(fromHexString(hex));\n }\n\n public static fromText(text: string): Principal {\n let maybePrincipal = text;\n // If formatted as JSON string, parse it first\n if (text.includes(JSON_KEY_PRINCIPAL)) {\n const obj = JSON.parse(text);\n if (JSON_KEY_PRINCIPAL in obj) {\n maybePrincipal = obj[JSON_KEY_PRINCIPAL];\n }\n }\n\n const canisterIdNoDash = maybePrincipal.toLowerCase().replace(/-/g, '');\n\n let arr = decode(canisterIdNoDash);\n arr = arr.slice(4, arr.length);\n\n const principal = new this(arr);\n if (principal.toText() !== maybePrincipal) {\n throw new Error(\n `Principal \"${principal.toText()}\" does not have a valid checksum (original value \"${maybePrincipal}\" may not be a valid Principal ID).`,\n );\n }\n\n return principal;\n }\n\n public static fromUint8Array(arr: Uint8Array): Principal {\n return new this(arr);\n }\n\n public readonly _isPrincipal = true;\n\n protected constructor(private _arr: Uint8Array) {}\n\n public isAnonymous(): boolean {\n return this._arr.byteLength === 1 && this._arr[0] === ANONYMOUS_SUFFIX;\n }\n\n public toUint8Array(): Uint8Array {\n return this._arr;\n }\n\n public toHex(): string {\n return toHexString(this._arr).toUpperCase();\n }\n\n public toText(): string {\n const checksumArrayBuf = new ArrayBuffer(4);\n const view = new DataView(checksumArrayBuf);\n view.setUint32(0, getCrc32(this._arr));\n const checksum = new Uint8Array(checksumArrayBuf);\n\n const bytes = Uint8Array.from(this._arr);\n const array = new Uint8Array([...checksum, ...bytes]);\n\n const result = encode(array);\n const matches = result.match(/.{1,5}/g);\n if (!matches) {\n // This should only happen if there's no character, which is unreachable.\n throw new Error();\n }\n return matches.join('-');\n }\n\n public toString(): string {\n return this.toText();\n }\n\n /**\n * Serializes to JSON\n * @returns {JsonnablePrincipal} a JSON object with a single key, {@link JSON_KEY_PRINCIPAL}, whose value is the principal as a string\n */\n public toJSON(): JsonnablePrincipal {\n return { [JSON_KEY_PRINCIPAL]: this.toText() };\n }\n\n /**\n * Utility method taking a Principal to compare against. Used for determining canister ranges in certificate verification\n * @param {Principal} other - a {@link Principal} to compare\n * @returns {'lt' | 'eq' | 'gt'} `'lt' | 'eq' | 'gt'` a string, representing less than, equal to, or greater than\n */\n public compareTo(other: Principal): 'lt' | 'eq' | 'gt' {\n for (let i = 0; i < Math.min(this._arr.length, other._arr.length); i++) {\n if (this._arr[i] < other._arr[i]) return 'lt';\n else if (this._arr[i] > other._arr[i]) return 'gt';\n }\n // Here, at least one principal is a prefix of the other principal (they could be the same)\n if (this._arr.length < other._arr.length) return 'lt';\n if (this._arr.length > other._arr.length) return 'gt';\n return 'eq';\n }\n\n /**\n * Utility method checking whether a provided Principal is less than or equal to the current one using the {@link Principal.compareTo} method\n * @param other a {@link Principal} to compare\n * @returns {boolean} boolean\n */\n public ltEq(other: Principal): boolean {\n const cmp = this.compareTo(other);\n return cmp == 'lt' || cmp == 'eq';\n }\n\n /**\n * Utility method checking whether a provided Principal is greater than or equal to the current one using the {@link Principal.compareTo} method\n * @param other a {@link Principal} to compare\n * @returns {boolean} boolean\n */\n public gtEq(other: Principal): boolean {\n const cmp = this.compareTo(other);\n return cmp == 'gt' || cmp == 'eq';\n }\n}\n", "var e,n,t,r,i,o=-1,a=function(e){addEventListener(\"pageshow\",(function(n){n.persisted&&(o=n.timeStamp,e(n))}),!0)},c=function(){var e=self.performance&&performance.getEntriesByType&&performance.getEntriesByType(\"navigation\")[0];if(e&&e.responseStart>0&&e.responseStart<performance.now())return e},u=function(){var e=c();return e&&e.activationStart||0},f=function(e,n){var t=c(),r=\"navigate\";o>=0?r=\"back-forward-cache\":t&&(document.prerendering||u()>0?r=\"prerender\":document.wasDiscarded?r=\"restore\":t.type&&(r=t.type.replace(/_/g,\"-\")));return{name:e,value:void 0===n?-1:n,rating:\"good\",delta:0,entries:[],id:\"v4-\".concat(Date.now(),\"-\").concat(Math.floor(8999999999999*Math.random())+1e12),navigationType:r}},s=function(e,n,t){try{if(PerformanceObserver.supportedEntryTypes.includes(e)){var r=new PerformanceObserver((function(e){Promise.resolve().then((function(){n(e.getEntries())}))}));return r.observe(Object.assign({type:e,buffered:!0},t||{})),r}}catch(e){}},d=function(e,n,t,r){var i,o;return function(a){n.value>=0&&(a||r)&&((o=n.value-(i||0))||void 0===i)&&(i=n.value,n.delta=o,n.rating=function(e,n){return e>n[1]?\"poor\":e>n[0]?\"needs-improvement\":\"good\"}(n.value,t),e(n))}},l=function(e){requestAnimationFrame((function(){return requestAnimationFrame((function(){return e()}))}))},p=function(e){document.addEventListener(\"visibilitychange\",(function(){\"hidden\"===document.visibilityState&&e()}))},v=function(e){var n=!1;return function(){n||(e(),n=!0)}},m=-1,h=function(){return\"hidden\"!==document.visibilityState||document.prerendering?1/0:0},g=function(e){\"hidden\"===document.visibilityState&&m>-1&&(m=\"visibilitychange\"===e.type?e.timeStamp:0,T())},y=function(){addEventListener(\"visibilitychange\",g,!0),addEventListener(\"prerenderingchange\",g,!0)},T=function(){removeEventListener(\"visibilitychange\",g,!0),removeEventListener(\"prerenderingchange\",g,!0)},E=function(){return m<0&&(m=h(),y(),a((function(){setTimeout((function(){m=h(),y()}),0)}))),{get firstHiddenTime(){return m}}},C=function(e){document.prerendering?addEventListener(\"prerenderingchange\",(function(){return e()}),!0):e()},b=[1800,3e3],S=function(e,n){n=n||{},C((function(){var t,r=E(),i=f(\"FCP\"),o=s(\"paint\",(function(e){e.forEach((function(e){\"first-contentful-paint\"===e.name&&(o.disconnect(),e.startTime<r.firstHiddenTime&&(i.value=Math.max(e.startTime-u(),0),i.entries.push(e),t(!0)))}))}));o&&(t=d(e,i,b,n.reportAllChanges),a((function(r){i=f(\"FCP\"),t=d(e,i,b,n.reportAllChanges),l((function(){i.value=performance.now()-r.timeStamp,t(!0)}))})))}))},L=[.1,.25],w=function(e,n){n=n||{},S(v((function(){var t,r=f(\"CLS\",0),i=0,o=[],c=function(e){e.forEach((function(e){if(!e.hadRecentInput){var n=o[0],t=o[o.length-1];i&&e.startTime-t.startTime<1e3&&e.startTime-n.startTime<5e3?(i+=e.value,o.push(e)):(i=e.value,o=[e])}})),i>r.value&&(r.value=i,r.entries=o,t())},u=s(\"layout-shift\",c);u&&(t=d(e,r,L,n.reportAllChanges),p((function(){c(u.takeRecords()),t(!0)})),a((function(){i=0,r=f(\"CLS\",0),t=d(e,r,L,n.reportAllChanges),l((function(){return t()}))})),setTimeout(t,0))})))},A=0,I=1/0,P=0,M=function(e){e.forEach((function(e){e.interactionId&&(I=Math.min(I,e.interactionId),P=Math.max(P,e.interactionId),A=P?(P-I)/7+1:0)}))},k=function(){return e?A:performance.interactionCount||0},F=function(){\"interactionCount\"in performance||e||(e=s(\"event\",M,{type:\"event\",buffered:!0,durationThreshold:0}))},D=[],x=new Map,R=0,B=function(){var e=Math.min(D.length-1,Math.floor((k()-R)/50));return D[e]},H=[],q=function(e){if(H.forEach((function(n){return n(e)})),e.interactionId||\"first-input\"===e.entryType){var n=D[D.length-1],t=x.get(e.interactionId);if(t||D.length<10||e.duration>n.latency){if(t)e.duration>t.latency?(t.entries=[e],t.latency=e.duration):e.duration===t.latency&&e.startTime===t.entries[0].startTime&&t.entries.push(e);else{var r={id:e.interactionId,latency:e.duration,entries:[e]};x.set(r.id,r),D.push(r)}D.sort((function(e,n){return n.latency-e.latency})),D.length>10&&D.splice(10).forEach((function(e){return x.delete(e.id)}))}}},O=function(e){var n=self.requestIdleCallback||self.setTimeout,t=-1;return e=v(e),\"hidden\"===document.visibilityState?e():(t=n(e),p(e)),t},N=[200,500],j=function(e,n){\"PerformanceEventTiming\"in self&&\"interactionId\"in PerformanceEventTiming.prototype&&(n=n||{},C((function(){var t;F();var r,i=f(\"INP\"),o=function(e){O((function(){e.forEach(q);var n=B();n&&n.latency!==i.value&&(i.value=n.latency,i.entries=n.entries,r())}))},c=s(\"event\",o,{durationThreshold:null!==(t=n.durationThreshold)&&void 0!==t?t:40});r=d(e,i,N,n.reportAllChanges),c&&(c.observe({type:\"first-input\",buffered:!0}),p((function(){o(c.takeRecords()),r(!0)})),a((function(){R=k(),D.length=0,x.clear(),i=f(\"INP\"),r=d(e,i,N,n.reportAllChanges)})))})))},_=[2500,4e3],z={},G=function(e,n){n=n||{},C((function(){var t,r=E(),i=f(\"LCP\"),o=function(e){n.reportAllChanges||(e=e.slice(-1)),e.forEach((function(e){e.startTime<r.firstHiddenTime&&(i.value=Math.max(e.startTime-u(),0),i.entries=[e],t())}))},c=s(\"largest-contentful-paint\",o);if(c){t=d(e,i,_,n.reportAllChanges);var m=v((function(){z[i.id]||(o(c.takeRecords()),c.disconnect(),z[i.id]=!0,t(!0))}));[\"keydown\",\"click\"].forEach((function(e){addEventListener(e,(function(){return O(m)}),!0)})),p(m),a((function(r){i=f(\"LCP\"),t=d(e,i,_,n.reportAllChanges),l((function(){i.value=performance.now()-r.timeStamp,z[i.id]=!0,t(!0)}))}))}}))},J=[800,1800],K=function e(n){document.prerendering?C((function(){return e(n)})):\"complete\"!==document.readyState?addEventListener(\"load\",(function(){return e(n)}),!0):setTimeout(n,0)},Q=function(e,n){n=n||{};var t=f(\"TTFB\"),r=d(e,t,J,n.reportAllChanges);K((function(){var i=c();i&&(t.value=Math.max(i.responseStart-u(),0),t.entries=[i],r(!0),a((function(){t=f(\"TTFB\",0),(r=d(e,t,J,n.reportAllChanges))(!0)})))}))},U={passive:!0,capture:!0},V=new Date,W=function(e,i){n||(n=i,t=e,r=new Date,Z(removeEventListener),X())},X=function(){if(t>=0&&t<r-V){var e={entryType:\"first-input\",name:n.type,target:n.target,cancelable:n.cancelable,startTime:n.timeStamp,processingStart:n.timeStamp+t};i.forEach((function(n){n(e)})),i=[]}},Y=function(e){if(e.cancelable){var n=(e.timeStamp>1e12?new Date:performance.now())-e.timeStamp;\"pointerdown\"==e.type?function(e,n){var t=function(){W(e,n),i()},r=function(){i()},i=function(){removeEventListener(\"pointerup\",t,U),removeEventListener(\"pointercancel\",r,U)};addEventListener(\"pointerup\",t,U),addEventListener(\"pointercancel\",r,U)}(n,e):W(n,e)}},Z=function(e){[\"mousedown\",\"keydown\",\"touchstart\",\"pointerdown\"].forEach((function(n){return e(n,Y,U)}))},$=[100,300],ee=function(e,r){r=r||{},C((function(){var o,c=E(),u=f(\"FID\"),l=function(e){e.startTime<c.firstHiddenTime&&(u.value=e.processingStart-e.startTime,u.entries.push(e),o(!0))},m=function(e){e.forEach(l)},h=s(\"first-input\",m);o=d(e,u,$,r.reportAllChanges),h&&(p(v((function(){m(h.takeRecords()),h.disconnect()}))),a((function(){var a;u=f(\"FID\"),o=d(e,u,$,r.reportAllChanges),i=[],t=-1,n=null,Z(addEventListener),a=l,i.push(a),X()})))}))};export{L as CLSThresholds,b as FCPThresholds,$ as FIDThresholds,N as INPThresholds,_ as LCPThresholds,J as TTFBThresholds,w as onCLS,S as onFCP,ee as onFID,j as onINP,G as onLCP,Q as onTTFB};\n", "function promisifyRequest(request) {\n return new Promise((resolve, reject) => {\n // @ts-ignore - file size hacks\n request.oncomplete = request.onsuccess = () => resolve(request.result);\n // @ts-ignore - file size hacks\n request.onabort = request.onerror = () => reject(request.error);\n });\n}\nfunction createStore(dbName, storeName) {\n const request = indexedDB.open(dbName);\n request.onupgradeneeded = () => request.result.createObjectStore(storeName);\n const dbp = promisifyRequest(request);\n return (txMode, callback) => dbp.then((db) => callback(db.transaction(storeName, txMode).objectStore(storeName)));\n}\nlet defaultGetStoreFunc;\nfunction defaultGetStore() {\n if (!defaultGetStoreFunc) {\n defaultGetStoreFunc = createStore('keyval-store', 'keyval');\n }\n return defaultGetStoreFunc;\n}\n/**\n * Get a value by its key.\n *\n * @param key\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction get(key, customStore = defaultGetStore()) {\n return customStore('readonly', (store) => promisifyRequest(store.get(key)));\n}\n/**\n * Set a value with a key.\n *\n * @param key\n * @param value\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction set(key, value, customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => {\n store.put(value, key);\n return promisifyRequest(store.transaction);\n });\n}\n/**\n * Set multiple values at once. This is faster than calling set() multiple times.\n * It's also atomic \u2013 if one of the pairs can't be added, none will be added.\n *\n * @param entries Array of entries, where each entry is an array of `[key, value]`.\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction setMany(entries, customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => {\n entries.forEach((entry) => store.put(entry[1], entry[0]));\n return promisifyRequest(store.transaction);\n });\n}\n/**\n * Get multiple values by their keys\n *\n * @param keys\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction getMany(keys, customStore = defaultGetStore()) {\n return customStore('readonly', (store) => Promise.all(keys.map((key) => promisifyRequest(store.get(key)))));\n}\n/**\n * Update a value. This lets you see the old value and update it as an atomic operation.\n *\n * @param key\n * @param updater A callback that takes the old value and returns a new value.\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction update(key, updater, customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => \n // Need to create the promise manually.\n // If I try to chain promises, the transaction closes in browsers\n // that use a promise polyfill (IE10/11).\n new Promise((resolve, reject) => {\n store.get(key).onsuccess = function () {\n try {\n store.put(updater(this.result), key);\n resolve(promisifyRequest(store.transaction));\n }\n catch (err) {\n reject(err);\n }\n };\n }));\n}\n/**\n * Delete a particular key from the store.\n *\n * @param key\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction del(key, customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => {\n store.delete(key);\n return promisifyRequest(store.transaction);\n });\n}\n/**\n * Delete multiple keys at once.\n *\n * @param keys List of keys to delete.\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction delMany(keys, customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => {\n keys.forEach((key) => store.delete(key));\n return promisifyRequest(store.transaction);\n });\n}\n/**\n * Clear all values in the store.\n *\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction clear(customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => {\n store.clear();\n return promisifyRequest(store.transaction);\n });\n}\nfunction eachCursor(store, callback) {\n store.openCursor().onsuccess = function () {\n if (!this.result)\n return;\n callback(this.result);\n this.result.continue();\n };\n return promisifyRequest(store.transaction);\n}\n/**\n * Get all keys in the store.\n *\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction keys(customStore = defaultGetStore()) {\n return customStore('readonly', (store) => {\n // Fast path for modern browsers\n if (store.getAllKeys) {\n return promisifyRequest(store.getAllKeys());\n }\n const items = [];\n return eachCursor(store, (cursor) => items.push(cursor.key)).then(() => items);\n });\n}\n/**\n * Get all values in the store.\n *\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction values(customStore = defaultGetStore()) {\n return customStore('readonly', (store) => {\n // Fast path for modern browsers\n if (store.getAll) {\n return promisifyRequest(store.getAll());\n }\n const items = [];\n return eachCursor(store, (cursor) => items.push(cursor.value)).then(() => items);\n });\n}\n/**\n * Get all entries in the store. Each entry is an array of `[key, value]`.\n *\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction entries(customStore = defaultGetStore()) {\n return customStore('readonly', (store) => {\n // Fast path for modern browsers\n // (although, hopefully we'll get a simpler path some day)\n if (store.getAll && store.getAllKeys) {\n return Promise.all([\n promisifyRequest(store.getAllKeys()),\n promisifyRequest(store.getAll()),\n ]).then(([keys, values]) => keys.map((key, i) => [key, values[i]]));\n }\n const items = [];\n return customStore('readonly', (store) => eachCursor(store, (cursor) => items.push([cursor.key, cursor.value])).then(() => items));\n });\n}\n\nexport { clear, createStore, del, delMany, entries, get, getMany, keys, promisifyRequest, set, setMany, update, values };\n", "import {createStore, delMany, entries, set} from 'idb-keyval';\nimport type {IdbKey, IdbPageView, IdbPerformanceMetric, IdbTrackEvent} from '../types/idb';\n\nconst viewsStore = createStore('juno-views', 'views');\nconst eventsStore = createStore('juno-events', 'events');\nconst metricsStore = createStore('juno-metrics', 'metrics');\n\nexport const setPageView = ({key, view}: {key: IdbKey; view: IdbPageView}): Promise<void> =>\n set(key, view, viewsStore);\n\nexport const getPageViews = (): Promise<[IDBValidKey, IdbPageView][]> => entries(viewsStore);\n\nexport const delPageViews = (keys: IDBValidKey[]): Promise<void> => delMany(keys, viewsStore);\n\nexport const setTrackEvent = ({key, track}: {key: IdbKey; track: IdbTrackEvent}): Promise<void> =>\n set(key, track, eventsStore);\n\nexport const getTrackEvents = (): Promise<[IDBValidKey, IdbTrackEvent][]> => entries(eventsStore);\n\nexport const delTrackEvents = (keys: IDBValidKey[]): Promise<void> => delMany(keys, eventsStore);\n\nexport const setPerformanceMetric = ({\n key,\n view\n}: {\n key: IdbKey;\n view: IdbPerformanceMetric;\n}): Promise<void> => set(key, view, metricsStore);\n\nexport const getPerformanceMetrics = (): Promise<[IDBValidKey, IdbPerformanceMetric][]> =>\n entries(metricsStore);\n\nexport const delPerformanceMetrics = (keys: IDBValidKey[]): Promise<void> =>\n delMany(keys, metricsStore);\n", "/**\n * Creates a debounced function that delays invoking the provided function until after the specified timeout.\n * @param {Function} func - The function to debounce.\n * @param {number} [timeout=300] - The number of milliseconds to delay. Defaults to 300ms if not specified or invalid.\n * @returns {Function} A debounced function.\n */\n/* eslint-disable-next-line @typescript-eslint/ban-types */\nexport const debounce = (func: Function, timeout?: number): Function => {\n let timer: ReturnType<typeof setTimeout> | undefined;\n\n return (...args: unknown[]) => {\n const next = () => func(...args);\n\n if (timer) {\n clearTimeout(timer);\n }\n\n timer = setTimeout(next, timeout !== undefined && timeout > 0 ? timeout : 300);\n };\n};\n", "import {Principal} from '@dfinity/principal';\nimport {nonNullish} from './null.utils';\n\nconst JSON_KEY_BIGINT = '__bigint__';\nconst JSON_KEY_PRINCIPAL = '__principal__';\nconst JSON_KEY_UINT8ARRAY = '__uint8array__';\n\n/**\n * A function that alters the behavior of the stringification process for BigInt, Principal, and Uint8Array.\n * @param {string} _key - The key of the value being stringified.\n * @param {unknown} value - The value being stringified.\n * @returns {unknown} The altered value for stringification.\n */\nexport const jsonReplacer = (_key: string, value: unknown): unknown => {\n if (typeof value === 'bigint') {\n return {[JSON_KEY_BIGINT]: `${value}`};\n }\n\n if (nonNullish(value) && value instanceof Principal) {\n return {[JSON_KEY_PRINCIPAL]: value.toText()};\n }\n\n if (nonNullish(value) && value instanceof Uint8Array) {\n return {[JSON_KEY_UINT8ARRAY]: Array.from(value)};\n }\n\n return value;\n};\n\n/**\n * A parser that interprets revived BigInt, Principal, and Uint8Array when constructing JavaScript values or objects.\n * @param {string} _key - The key of the value being parsed.\n * @param {unknown} value - The value being parsed.\n * @returns {unknown} The parsed value.\n */\nexport const jsonReviver = (_key: string, value: unknown): unknown => {\n const mapValue = <T>(key: string): T => (value as Record<string, T>)[key];\n\n if (nonNullish(value) && typeof value === 'object' && JSON_KEY_BIGINT in value) {\n return BigInt(mapValue(JSON_KEY_BIGINT));\n }\n\n if (nonNullish(value) && typeof value === 'object' && JSON_KEY_PRINCIPAL in value) {\n return Principal.fromText(mapValue(JSON_KEY_PRINCIPAL));\n }\n\n if (nonNullish(value) && typeof value === 'object' && JSON_KEY_UINT8ARRAY in value) {\n return Uint8Array.from(mapValue(JSON_KEY_UINT8ARRAY));\n }\n\n return value;\n};\n", "/**\n * Checks if the provided argument is null or undefined.\n * @template T\n * @param {T | undefined | null} argument - The argument to check.\n * @returns {boolean} True if the argument is null or undefined, false otherwise.\n */\nexport const isNullish = <T>(argument: T | undefined | null): argument is undefined | null =>\n argument === null || argument === undefined;\n\n/**\n * Checks if the provided argument is neither null nor undefined.\n * @template T\n * @param {T | undefined | null} argument - The argument to check.\n * @returns {boolean} True if the argument is neither null nor undefined, false otherwise.\n */\nexport const nonNullish = <T>(argument: T | undefined | null): argument is NonNullable<T> =>\n !isNullish(argument);\n\n/**\n * Represents an error thrown when a value is null or undefined.\n * @class\n * @extends {Error}\n */\nexport class NullishError extends Error {}\n\n/**\n * Asserts that a value is neither null nor undefined.\n * @template T\n * @param {T} value - The value to check.\n * @param {string} [message] - The optional error message to use if the assertion fails.\n * @throws {NullishError} If the value is null or undefined.\n * @returns {asserts value is NonNullable<T>} Asserts that the value is neither null nor undefined.\n */\nexport const assertNonNullish: <T>(\n value: T,\n message?: string\n) => asserts value is NonNullable<T> = <T>(value: T, message?: string): void => {\n if (isNullish(value)) {\n throw new NullishError(message);\n }\n};\n", "import {jsonReplacer, jsonReviver} from './json.utils';\nimport {nonNullish} from './null.utils';\n\n/**\n * Converts a value to a nullable array.\n * @template T\n * @param {T} [value] - The value to convert.\n * @returns {([] | [T])} A nullable array containing the value if non-nullish, or an empty array if nullish.\n */\nexport const toNullable = <T>(value?: T): [] | [T] => {\n return nonNullish(value) ? [value] : [];\n};\n\n/**\n * Extracts a value from a nullable array.\n * @template T\n * @param {([] | [T])} value - The nullable array.\n * @returns {(T | undefined)} The value if present, or undefined if the array is empty.\n */\nexport const fromNullable = <T>(value: [] | [T]): T | undefined => {\n return value?.[0];\n};\n\n/**\n * Converts data to a Uint8Array for transmission or storage.\n * @template T\n * @param {T} data - The data to convert.\n * @returns {Promise<Uint8Array>} A promise that resolves to a Uint8Array representation of the data.\n */\nexport const toArray = async <T>(data: T): Promise<Uint8Array> => {\n const blob: Blob = new Blob([JSON.stringify(data, jsonReplacer)], {\n type: 'application/json; charset=utf-8'\n });\n return new Uint8Array(await blob.arrayBuffer());\n};\n\n/**\n * Converts a Uint8Array or number array back to the original data type.\n * @template T\n * @param {(Uint8Array | number[])} data - The array to convert.\n * @returns {Promise<T>} A promise that resolves to the original data.\n */\nexport const fromArray = async <T>(data: Uint8Array | number[]): Promise<T> => {\n const blob: Blob = new Blob([data instanceof Uint8Array ? data : new Uint8Array(data)], {\n type: 'application/json; charset=utf-8'\n });\n return JSON.parse(await blob.text(), jsonReviver);\n};\n", "/**\n * Checks if the current environment is a browser.\n * @returns {boolean} True if the current environment is a browser, false otherwise.\n */\nexport const isBrowser = (): boolean => typeof window !== `undefined`;\n", "import { webcrypto as crypto } from 'node:crypto'\nimport { urlAlphabet as scopedUrlAlphabet } from './url-alphabet/index.js'\nexport { urlAlphabet } from './url-alphabet/index.js'\nconst POOL_SIZE_MULTIPLIER = 128\nlet pool, poolOffset\nfunction fillPool(bytes) {\n if (!pool || pool.length < bytes) {\n pool = Buffer.allocUnsafe(bytes * POOL_SIZE_MULTIPLIER)\n crypto.getRandomValues(pool)\n poolOffset = 0\n } else if (poolOffset + bytes > pool.length) {\n crypto.getRandomValues(pool)\n poolOffset = 0\n }\n poolOffset += bytes\n}\nexport function random(bytes) {\n fillPool((bytes -= 0))\n return pool.subarray(poolOffset - bytes, poolOffset)\n}\nexport function customRandom(alphabet, defaultSize, getRandom) {\n let mask = (2 << (31 - Math.clz32((alphabet.length - 1) | 1))) - 1\n let step = Math.ceil((1.6 * mask * defaultSize) / alphabet.length)\n return (size = defaultSize) => {\n let id = ''\n while (true) {\n let bytes = getRandom(step)\n let i = step\n while (i--) {\n id += alphabet[bytes[i] & mask] || ''\n if (id.length === size) return id\n }\n }\n }\n}\nexport function customAlphabet(alphabet, size = 21) {\n return customRandom(alphabet, size, random)\n}\nexport function nanoid(size = 21) {\n fillPool((size -= 0))\n let id = ''\n for (let i = poolOffset - size; i < poolOffset; i++) {\n id += scopedUrlAlphabet[pool[i] & 63]\n }\n return id\n}\n", "export const urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\n", "export const nowInBigIntNanoSeconds = (): bigint => BigInt(Date.now()) * BigInt(1e6);\n", "import {toNullable} from '@junobuild/utils';\nimport {nowInBigIntNanoSeconds} from './date.utils';\n\nexport const timestamp = (): {\n collected_at: bigint;\n updated_at: [] | [bigint];\n version: [] | [bigint];\n} => ({\n collected_at: nowInBigIntNanoSeconds(),\n updated_at: [],\n version: []\n});\n\nexport const userAgent = (): {user_agent: [] | [string]} => {\n const {userAgent} = navigator;\n return {user_agent: toNullable(userAgent)};\n};\n", "import {isNullish} from '@junobuild/utils';\n\nconst WORKER_UNDEFINED_MSG =\n 'Analytics worker not initialized. Did you call `initOrbiter`?' as const;\n\nexport const warningWorkerNotInitialized = <T>(value: T) => {\n if (isNullish(value)) {\n console.warn(WORKER_UNDEFINED_MSG);\n }\n};\n", "import {toNullable} from '@junobuild/utils';\nimport {nanoid} from 'nanoid';\nimport type {Metric} from 'web-vitals';\nimport type {\n NavigationType,\n PerformanceMetricName,\n WebVitalsMetric\n} from '../../declarations/orbiter/orbiter.did';\nimport type {IdbPerformanceMetric} from '../types/idb';\nimport {timestamp, userAgent} from '../utils/analytics.utils';\n\ntype SessionMetric = Omit<Metric, 'navigationType'> &\n Partial<Pick<Metric, 'navigationType'>> & {sessionId: string};\n\nexport const startPerformance = async (sessionId: string) => {\n const {onCLS, onFCP, onINP, onLCP, onTTFB} = await import('web-vitals');\n\n const setMetric = (metric: Metric) => {\n (async () => {\n await setPerformanceMetric({...metric, sessionId});\n })();\n };\n\n onCLS(setMetric);\n onFCP(setMetric);\n onINP(setMetric);\n onLCP(setMetric);\n onTTFB(setMetric);\n};\n\nconst setPerformanceMetric = async (metric: SessionMetric) => {\n const data = mapPerformanceMetric(metric);\n\n if (data === 'unknown') {\n console.warn('Performance metric ignored. Unknown metric name.', metric);\n return;\n }\n\n if (data === 'deprecated') {\n return;\n }\n\n const idb = await import('./idb.services');\n await idb.setPerformanceMetric({\n key: nanoid(),\n view: data\n });\n};\n\nconst mapPerformanceMetric = ({\n sessionId,\n name: metricName,\n value,\n delta,\n id,\n navigationType\n}: SessionMetric): IdbPerformanceMetric | 'deprecated' | 'unknown' => {\n const mapMetricName = (): PerformanceMetricName | 'deprecated' | 'unknown' => {\n switch (metricName) {\n case 'CLS':\n return {CLS: null};\n case 'FCP':\n return {FCP: null};\n case 'INP':\n return {INP: null};\n case 'LCP':\n return {LCP: null};\n case 'TTFB':\n return {TTFB: null};\n case 'FID':\n return 'deprecated';\n default:\n return 'unknown';\n }\n };\n\n const metric_name = mapMetricName();\n\n if (metric_name === 'unknown' || metric_name === 'deprecated') {\n return metric_name;\n }\n\n const mapNavigationType = (): NavigationType | undefined => {\n switch (navigationType) {\n case 'navigate':\n return {Navigate: null};\n case 'restore':\n return {Restore: null};\n case 'reload':\n return {Reload: null};\n case 'back-forward':\n return {BackForward: null};\n case 'back-forward-cache':\n return {BackForwardCache: null};\n case 'prerender':\n return {Prerender: null};\n default:\n return undefined;\n }\n };\n\n const data: WebVitalsMetric = {\n value,\n delta,\n id,\n navigation_type: toNullable(mapNavigationType())\n };\n\n const {\n location: {href}\n } = document;\n\n const {updated_at: _, ...timestampRest} = timestamp();\n\n const metric: IdbPerformanceMetric = {\n href,\n metric_name,\n session_id: sessionId,\n data: {\n WebVitalsMetric: data\n },\n ...userAgent(),\n ...timestampRest\n };\n\n return metric;\n};\n", "import {assertNonNullish, isBrowser, nonNullish, toNullable} from '@junobuild/utils';\nimport {nanoid} from 'nanoid';\nimport type {Environment, EnvironmentWorker} from '../types/env';\nimport type {IdbPageView} from '../types/idb';\nimport type {PostMessageInitEnvData} from '../types/post-message';\nimport type {TrackEvent} from '../types/track';\nimport {timestamp, userAgent} from '../utils/analytics.utils';\nimport {warningWorkerNotInitialized} from '../utils/log.utils';\nimport {startPerformance} from './performance.services';\n\nconst initSessionId = (): string | undefined => {\n // I faced this issue when I used the library in Docusaurus which does not implement the crypto API when server-side rendering.\n // https://github.com/ai/nanoid/issues?q=crypto+not+defined\n if (typeof crypto === 'undefined') {\n return undefined;\n }\n\n return nanoid();\n};\n\nconst sessionId = initSessionId();\n\nlet worker: Worker | undefined;\n\nexport const initWorker = (env: Environment): {cleanup: () => void} => {\n const {path}: EnvironmentWorker = env.worker ?? {};\n const workerUrl = path === undefined ? './workers/analytics.worker.js' : path;\n\n worker = new Worker(workerUrl);\n\n const consoleWarn = () =>\n console.warn('Unable to connect to the analytics web worker. Have you deployed it?');\n\n worker?.addEventListener('error', consoleWarn, false);\n\n initWorkerEnvironment(env);\n\n return {\n cleanup() {\n worker?.removeEventListener('error', consoleWarn, false);\n }\n };\n};\n\nexport const initTrackPageViews = (): {cleanup: () => void} => {\n const trackPages = async () => await trackPageView();\n\n let pushStateProxy: typeof history.pushState | null = new Proxy(history.pushState, {\n apply: async (\n target,\n thisArg,\n argArray: [data: unknown, unused: string, url?: string | URL | null | undefined]\n ) => {\n target.apply(thisArg, argArray);\n await trackPages();\n }\n });\n\n history.pushState = pushStateProxy;\n\n addEventListener('popstate', trackPages, {passive: true});\n\n return {\n cleanup() {\n pushStateProxy = null;\n removeEventListener('popstate', trackPages, false);\n }\n };\n};\n\nconst SESSION_ID_UNDEFINED_MSG = 'No session ID initialized.' as const;\n\nexport const setPageView = async () => {\n if (!isBrowser()) {\n return;\n }\n\n assertNonNullish(sessionId, SESSION_ID_UNDEFINED_MSG);\n\n const {\n title,\n location: {href},\n referrer\n } = document;\n const {innerWidth, innerHeight} = window;\n const {timeZone} = Intl.DateTimeFormat().resolvedOptions();\n\n const data: IdbPageView = {\n title,\n href,\n referrer: toNullable(nonNullish(referrer) && referrer !== '' ? referrer : undefined),\n device: {\n inner_width: innerWidth,\n inner_height: innerHeight\n },\n time_zone: timeZone,\n session_id: sessionId as string,\n ...userAgent(),\n ...timestamp()\n };\n\n const idb = await import('./idb.services');\n await idb.setPageView({\n key: nanoid(),\n view: data\n });\n};\n\nexport const initTrackPerformance = async ({options}: Environment) => {\n if (!isBrowser()) {\n return;\n }\n\n if (options?.performance === false) {\n return;\n }\n\n assertNonNullish(sessionId, SESSION_ID_UNDEFINED_MSG);\n\n await startPerformance(sessionId);\n};\n\n/**\n * Tracks a page view in Juno Analytics.\n * @returns {Promise<void>} A promise that resolves when the page view is tracked.\n */\nexport const trackPageView = async (): Promise<void> => {\n warningWorkerNotInitialized(worker);\n\n await setPageView();\n\n worker?.postMessage({msg: 'junoTrackPageView'});\n};\n\n/**\n * Tracks a custom event in Juno Analytics.\n * @param {TrackEvent} data - The event details.\n * @returns {Promise<void>} A promise that resolves when the event is tracked.\n */\nexport const trackEvent = async (data: TrackEvent): Promise<void> => {\n if (!isBrowser()) {\n return;\n }\n\n assertNonNullish(sessionId, SESSION_ID_UNDEFINED_MSG);\n warningWorkerNotInitialized(worker);\n\n const idb = await import('./idb.services');\n await idb.setTrackEvent({\n key: nanoid(),\n track: {...data, session_id: sessionId as string, ...userAgent(), ...timestamp()}\n });\n\n worker?.postMessage({msg: 'junoTrackEvent'});\n};\n\nexport const initWorkerEnvironment = (env: PostMessageInitEnvData) => {\n warningWorkerNotInitialized(worker);\n\n worker?.postMessage({msg: 'junoInitEnvironment', data: env});\n};\n\nexport const startTracking = () => {\n warningWorkerNotInitialized(worker);\n\n worker?.postMessage({msg: 'junoStartTrackTimer'});\n};\n\nexport const stopTracking = () => {\n warningWorkerNotInitialized(worker);\n\n worker?.postMessage({msg: 'junoStopTracker'});\n};\n", "// TODO: duplicated because those should not be bundled in web worker. We can avoid this by transforming utils into a library of modules.\ntype ImportMeta = {env: Record<string, string> | undefined};\n\nexport const envSatelliteId = (): string | undefined => {\n const viteEnvSatelliteId = (): string | undefined =>\n typeof import.meta !== 'undefined' &&\n typeof (import.meta as unknown as ImportMeta).env !== 'undefined'\n ? ((import.meta as unknown as ImportMeta).env?.VITE_SATELLITE_ID ??\n (import.meta as unknown as ImportMeta).env?.PUBLIC_SATELLITE_ID)\n : undefined;\n\n return typeof process !== 'undefined'\n ? (process.env?.NEXT_PUBLIC_SATELLITE_ID ?? viteEnvSatelliteId())\n : viteEnvSatelliteId();\n};\n\nexport const envOrbiterId = (): string | undefined => {\n const viteEnvOrbiterId = (): string | undefined =>\n typeof import.meta !== 'undefined' &&\n typeof (import.meta as unknown as ImportMeta).env !== 'undefined'\n ? ((import.meta as unknown as ImportMeta).env?.VITE_ORBITER_ID ??\n (import.meta as unknown as ImportMeta).env?.PUBLIC_ORBITER_ID)\n : undefined;\n\n return typeof process !== 'undefined'\n ? (process.env?.NEXT_PUBLIC_ORBITER_ID ?? viteEnvOrbiterId())\n : viteEnvOrbiterId();\n};\n\nexport const envContainer = (): string | undefined => {\n const viteEnvContainer = (): string | undefined =>\n typeof import.meta !== 'undefined' &&\n typeof (import.meta as unknown as ImportMeta).env !== 'undefined'\n ? ((import.meta as unknown as ImportMeta).env?.VITE_CONTAINER ??\n (import.meta as unknown as ImportMeta).env?.PUBLIC_CONTAINER)\n : undefined;\n\n return typeof process !== 'undefined'\n ? (process.env?.NEXT_PUBLIC_CONTAINER ?? viteEnvContainer())\n : viteEnvContainer();\n};\n", "import {assertNonNullish} from '@junobuild/utils';\nimport {\n initTrackPageViews,\n initTrackPerformance,\n initWorker,\n setPageView,\n startTracking,\n stopTracking\n} from './services/analytics.services';\nimport type {Environment, UserEnvironment} from './types/env';\nimport {envContainer, envOrbiterId, envSatelliteId} from './utils/window.env.utils';\n\nexport {trackEvent, trackPageView} from './services/analytics.services';\nexport type * from './types/env';\n\nconst parseEnv = (userEnv?: UserEnvironment): Environment => {\n const satelliteId = userEnv?.satelliteId ?? envSatelliteId();\n\n assertNonNullish(\n satelliteId,\n 'Satellite ID is not configured. Orbiter cannot be initialized without a target Satellite.'\n );\n\n const orbiterId = userEnv?.orbiterId ?? envOrbiterId();\n\n assertNonNullish(\n orbiterId,\n 'Orbiter ID is not configured. The analytics cannot be initialized without an Orbiter.'\n );\n\n const container = userEnv?.container ?? envContainer();\n\n return {\n orbiterId,\n satelliteId,\n container,\n worker: userEnv?.worker,\n options: userEnv?.options\n };\n};\n\n/**\n * Initializes the Juno Analytics.\n * @param {UserEnvironment} [userEnv] - The optional user environment configuration. If no environment is provided, the variables injected by the Vite or NextJS plugins will be used.\n * @returns {Promise<() => void>} A promise that resolves to a cleanup function that stops tracking and cleans up resources.\n */\nexport const initOrbiter = async (userEnv?: UserEnvironment): Promise<() => void> => {\n // Save first page as soon as possible\n await setPageView();\n\n const env = parseEnv(userEnv);\n\n const {cleanup: workerCleanup} = initWorker(env);\n\n const {cleanup: pushHistoryCleanup} = initTrackPageViews();\n\n await initTrackPerformance(env);\n\n // Starting tracking will instantly sync the first page and the data from previous sessions that have not been synced yet\n startTracking();\n\n return () => {\n stopTracking();\n workerCleanup();\n pushHistoryCleanup();\n };\n};\n"],
|
|
5
|
-
"mappings": "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",
|
|
4
|
+
"sourcesContent": ["const alphabet = 'abcdefghijklmnopqrstuvwxyz234567';\n\n// Build a lookup table for decoding.\nconst lookupTable: Record<string, number> = Object.create(null);\nfor (let i = 0; i < alphabet.length; i++) {\n lookupTable[alphabet[i]] = i;\n}\n\n// Add aliases for rfc4648.\nlookupTable['0'] = lookupTable.o;\nlookupTable['1'] = lookupTable.i;\n\n/**\n * @param input The input array to encode.\n * @returns A Base32 string encoding the input.\n */\nexport function encode(input: Uint8Array): string {\n // How many bits will we skip from the first byte.\n let skip = 0;\n // 5 high bits, carry from one byte to the next.\n let bits = 0;\n\n // The output string in base32.\n let output = '';\n\n function encodeByte(byte: number) {\n if (skip < 0) {\n // we have a carry from the previous byte\n bits |= byte >> -skip;\n } else {\n // no carry\n bits = (byte << skip) & 248;\n }\n\n if (skip > 3) {\n // Not enough data to produce a character, get us another one\n skip -= 8;\n return 1;\n }\n\n if (skip < 4) {\n // produce a character\n output += alphabet[bits >> 3];\n skip += 5;\n }\n\n return 0;\n }\n\n for (let i = 0; i < input.length; ) {\n i += encodeByte(input[i]);\n }\n\n return output + (skip < 0 ? alphabet[bits >> 3] : '');\n}\n\n/**\n * @param input The base32 encoded string to decode.\n */\nexport function decode(input: string): Uint8Array {\n // how many bits we have from the previous character.\n let skip = 0;\n // current byte we're producing.\n let byte = 0;\n\n const output = new Uint8Array(((input.length * 4) / 3) | 0);\n let o = 0;\n\n function decodeChar(char: string) {\n // Consume a character from the stream, store\n // the output in this.output. As before, better\n // to use update().\n let val = lookupTable[char.toLowerCase()];\n if (val === undefined) {\n throw new Error(`Invalid character: ${JSON.stringify(char)}`);\n }\n\n // move to the high bits\n val <<= 3;\n byte |= val >>> skip;\n skip += 5;\n\n if (skip >= 8) {\n // We have enough bytes to produce an output\n output[o++] = byte;\n skip -= 8;\n\n if (skip > 0) {\n byte = (val << (5 - skip)) & 255;\n } else {\n byte = 0;\n }\n }\n }\n\n for (const c of input) {\n decodeChar(c);\n }\n\n return output.slice(0, o);\n}\n", "// This file is translated to JavaScript from\n// https://lxp32.github.io/docs/a-simple-example-crc32-calculation/\nconst lookUpTable: Uint32Array = new Uint32Array([\n 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f, 0xe963a535, 0x9e6495a3,\n 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988, 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91,\n 0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de, 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7,\n 0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9, 0xfa0f3d63, 0x8d080df5,\n 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172, 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b,\n 0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59,\n 0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423, 0xcfba9599, 0xb8bda50f,\n 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924, 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d,\n 0x76dc4190, 0x01db7106, 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433,\n 0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01,\n 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e, 0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457,\n 0x65b0d9c6, 0x12b7e950, 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65,\n 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb,\n 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0, 0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9,\n 0x5005713c, 0x270241aa, 0xbe0b1010, 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f,\n 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad,\n 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a, 0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683,\n 0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8, 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1,\n 0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb, 0x196c3671, 0x6e6b06e7,\n 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc, 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5,\n 0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b,\n 0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55, 0x316e8eef, 0x4669be79,\n 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236, 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f,\n 0xc5ba3bbe, 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d,\n 0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, 0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713,\n 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38, 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21,\n 0x86d3d2d4, 0xf1d4e242, 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777,\n 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45,\n 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2, 0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db,\n 0xaed16a4a, 0xd9d65adc, 0x40df0b66, 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9,\n 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693, 0x54de5729, 0x23d967bf,\n 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94, 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d,\n]);\n\n/**\n * Calculate the CRC32 of an ArrayBufferLike.\n * @param buf The BufferLike to calculate the CRC32 of.\n */\nexport function getCrc32(buf: ArrayBufferLike): number {\n const b = new Uint8Array(buf);\n let crc = -1;\n\n for (let i = 0; i < b.length; i++) {\n const byte = b[i];\n const t = (byte ^ crc) & 0xff;\n crc = lookUpTable[t] ^ (crc >>> 8);\n }\n\n return (crc ^ -1) >>> 0;\n}\n", "function number(n: number) {\n if (!Number.isSafeInteger(n) || n < 0) throw new Error(`positive integer expected, not ${n}`);\n}\n\nfunction bool(b: boolean) {\n if (typeof b !== 'boolean') throw new Error(`boolean expected, not ${b}`);\n}\n\n// copied from utils\nexport function isBytes(a: unknown): a is Uint8Array {\n return (\n a instanceof Uint8Array ||\n (a != null && typeof a === 'object' && a.constructor.name === 'Uint8Array')\n );\n}\n\nfunction bytes(b: Uint8Array | undefined, ...lengths: number[]) {\n if (!isBytes(b)) throw new Error('Uint8Array expected');\n if (lengths.length > 0 && !lengths.includes(b.length))\n throw new Error(`Uint8Array expected of length ${lengths}, not of length=${b.length}`);\n}\n\ntype Hash = {\n (data: Uint8Array): Uint8Array;\n blockLen: number;\n outputLen: number;\n create: any;\n};\nfunction hash(h: Hash) {\n if (typeof h !== 'function' || typeof h.create !== 'function')\n throw new Error('Hash should be wrapped by utils.wrapConstructor');\n number(h.outputLen);\n number(h.blockLen);\n}\n\nfunction exists(instance: any, checkFinished = true) {\n if (instance.destroyed) throw new Error('Hash instance has been destroyed');\n if (checkFinished && instance.finished) throw new Error('Hash#digest() has already been called');\n}\nfunction output(out: any, instance: any) {\n bytes(out);\n const min = instance.outputLen;\n if (out.length < min) {\n throw new Error(`digestInto() expects output buffer of length at least ${min}`);\n }\n}\n\nexport { number, bool, bytes, hash, exists, output };\n\nconst assert = { number, bool, bytes, hash, exists, output };\nexport default assert;\n", "// We prefer WebCrypto aka globalThis.crypto, which exists in node.js 16+.\n// Falls back to Node.js built-in crypto for Node.js <=v14\n// See utils.ts for details.\n// @ts-ignore\nimport * as nc from 'node:crypto';\nexport const crypto =\n nc && typeof nc === 'object' && 'webcrypto' in nc\n ? (nc.webcrypto as any)\n : nc && typeof nc === 'object' && 'randomBytes' in nc\n ? nc\n : undefined;\n", "/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n\n// We use WebCrypto aka globalThis.crypto, which exists in browsers and node.js 16+.\n// node.js versions earlier than v19 don't declare it in global scope.\n// For node.js, package.json#exports field mapping rewrites import\n// from `crypto` to `cryptoNode`, which imports native module.\n// Makes the utils un-importable in browsers without a bundler.\n// Once node.js 18 is deprecated (2025-04-30), we can just drop the import.\nimport { crypto } from '@noble/hashes/crypto';\nimport { bytes as abytes } from './_assert.js';\n// export { isBytes } from './_assert.js';\n// We can't reuse isBytes from _assert, because somehow this causes huge perf issues\nexport function isBytes(a: unknown): a is Uint8Array {\n return (\n a instanceof Uint8Array ||\n (a != null && typeof a === 'object' && a.constructor.name === 'Uint8Array')\n );\n}\n\n// prettier-ignore\nexport type TypedArray = Int8Array | Uint8ClampedArray | Uint8Array |\n Uint16Array | Int16Array | Uint32Array | Int32Array;\n\n// Cast array to different type\nexport const u8 = (arr: TypedArray) => new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\nexport const u32 = (arr: TypedArray) =>\n new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\n\n// Cast array to view\nexport const createView = (arr: TypedArray) =>\n new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\n\n// The rotate right (circular right shift) operation for uint32\nexport const rotr = (word: number, shift: number) => (word << (32 - shift)) | (word >>> shift);\n// The rotate left (circular left shift) operation for uint32\nexport const rotl = (word: number, shift: number) =>\n (word << shift) | ((word >>> (32 - shift)) >>> 0);\n\nexport const isLE = new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44;\n// The byte swap operation for uint32\nexport const byteSwap = (word: number) =>\n ((word << 24) & 0xff000000) |\n ((word << 8) & 0xff0000) |\n ((word >>> 8) & 0xff00) |\n ((word >>> 24) & 0xff);\n// Conditionally byte swap if on a big-endian platform\nexport const byteSwapIfBE = isLE ? (n: number) => n : (n: number) => byteSwap(n);\n\n// In place byte swap for Uint32Array\nexport function byteSwap32(arr: Uint32Array) {\n for (let i = 0; i < arr.length; i++) {\n arr[i] = byteSwap(arr[i]);\n }\n}\n\n// Array where index 0xf0 (240) is mapped to string 'f0'\nconst hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) =>\n i.toString(16).padStart(2, '0')\n);\n/**\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nexport function bytesToHex(bytes: Uint8Array): string {\n abytes(bytes);\n // pre-caching improves the speed 6x\n let hex = '';\n for (let i = 0; i < bytes.length; i++) {\n hex += hexes[bytes[i]];\n }\n return hex;\n}\n\n// We use optimized technique to convert hex string to byte array\nconst asciis = { _0: 48, _9: 57, _A: 65, _F: 70, _a: 97, _f: 102 } as const;\nfunction asciiToBase16(char: number): number | undefined {\n if (char >= asciis._0 && char <= asciis._9) return char - asciis._0;\n if (char >= asciis._A && char <= asciis._F) return char - (asciis._A - 10);\n if (char >= asciis._a && char <= asciis._f) return char - (asciis._a - 10);\n return;\n}\n\n/**\n * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n */\nexport function hexToBytes(hex: string): Uint8Array {\n if (typeof hex !== 'string') throw new Error('hex string expected, got ' + typeof hex);\n const hl = hex.length;\n const al = hl / 2;\n if (hl % 2) throw new Error('padded hex string expected, got unpadded hex of length ' + hl);\n const array = new Uint8Array(al);\n for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) {\n const n1 = asciiToBase16(hex.charCodeAt(hi));\n const n2 = asciiToBase16(hex.charCodeAt(hi + 1));\n if (n1 === undefined || n2 === undefined) {\n const char = hex[hi] + hex[hi + 1];\n throw new Error('hex string expected, got non-hex character \"' + char + '\" at index ' + hi);\n }\n array[ai] = n1 * 16 + n2;\n }\n return array;\n}\n\n// There is no setImmediate in browser and setTimeout is slow.\n// call of async fn will return Promise, which will be fullfiled only on\n// next scheduler queue processing step and this is exactly what we need.\nexport const nextTick = async () => {};\n\n// Returns control to thread each 'tick' ms to avoid blocking\nexport async function asyncLoop(iters: number, tick: number, cb: (i: number) => void) {\n let ts = Date.now();\n for (let i = 0; i < iters; i++) {\n cb(i);\n // Date.now() is not monotonic, so in case if clock goes backwards we return return control too\n const diff = Date.now() - ts;\n if (diff >= 0 && diff < tick) continue;\n await nextTick();\n ts += diff;\n }\n}\n\n// Global symbols in both browsers and Node.js since v11\n// See https://github.com/microsoft/TypeScript/issues/31535\ndeclare const TextEncoder: any;\n\n/**\n * @example utf8ToBytes('abc') // new Uint8Array([97, 98, 99])\n */\nexport function utf8ToBytes(str: string): Uint8Array {\n if (typeof str !== 'string') throw new Error(`utf8ToBytes expected string, got ${typeof str}`);\n return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n\nexport type Input = Uint8Array | string;\n/**\n * Normalizes (non-hex) string or Uint8Array to Uint8Array.\n * Warning: when Uint8Array is passed, it would NOT get copied.\n * Keep in mind for future mutable operations.\n */\nexport function toBytes(data: Input): Uint8Array {\n if (typeof data === 'string') data = utf8ToBytes(data);\n abytes(data);\n return data;\n}\n\n/**\n * Copies several Uint8Arrays into one.\n */\nexport function concatBytes(...arrays: Uint8Array[]): Uint8Array {\n let sum = 0;\n for (let i = 0; i < arrays.length; i++) {\n const a = arrays[i];\n abytes(a);\n sum += a.length;\n }\n const res = new Uint8Array(sum);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const a = arrays[i];\n res.set(a, pad);\n pad += a.length;\n }\n return res;\n}\n\n// For runtime check if class implements interface\nexport abstract class Hash<T extends Hash<T>> {\n abstract blockLen: number; // Bytes per block\n abstract outputLen: number; // Bytes in output\n abstract update(buf: Input): this;\n // Writes digest into buf\n abstract digestInto(buf: Uint8Array): void;\n abstract digest(): Uint8Array;\n /**\n * Resets internal state. Makes Hash instance unusable.\n * Reset is impossible for keyed hashes if key is consumed into state. If digest is not consumed\n * by user, they will need to manually call `destroy()` when zeroing is necessary.\n */\n abstract destroy(): void;\n /**\n * Clones hash instance. Unsafe: doesn't check whether `to` is valid. Can be used as `clone()`\n * when no options are passed.\n * Reasons to use `_cloneInto` instead of clone: 1) performance 2) reuse instance => all internal\n * buffers are overwritten => causes buffer overwrite which is used for digest in some cases.\n * There are no guarantees for clean-up because it's impossible in JS.\n */\n abstract _cloneInto(to?: T): T;\n // Safe version that clones internal state\n clone(): T {\n return this._cloneInto();\n }\n}\n\n/**\n * XOF: streaming API to read digest in chunks.\n * Same as 'squeeze' in keccak/k12 and 'seek' in blake3, but more generic name.\n * When hash used in XOF mode it is up to user to call '.destroy' afterwards, since we cannot\n * destroy state, next call can require more bytes.\n */\nexport type HashXOF<T extends Hash<T>> = Hash<T> & {\n xof(bytes: number): Uint8Array; // Read 'bytes' bytes from digest stream\n xofInto(buf: Uint8Array): Uint8Array; // read buf.length bytes from digest stream into buf\n};\n\nconst toStr = {}.toString;\ntype EmptyObj = {};\nexport function checkOpts<T1 extends EmptyObj, T2 extends EmptyObj>(\n defaults: T1,\n opts?: T2\n): T1 & T2 {\n if (opts !== undefined && toStr.call(opts) !== '[object Object]')\n throw new Error('Options should be object or undefined');\n const merged = Object.assign(defaults, opts);\n return merged as T1 & T2;\n}\n\nexport type CHash = ReturnType<typeof wrapConstructor>;\n\nexport function wrapConstructor<T extends Hash<T>>(hashCons: () => Hash<T>) {\n const hashC = (msg: Input): Uint8Array => hashCons().update(toBytes(msg)).digest();\n const tmp = hashCons();\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = () => hashCons();\n return hashC;\n}\n\nexport function wrapConstructorWithOpts<H extends Hash<H>, T extends Object>(\n hashCons: (opts?: T) => Hash<H>\n) {\n const hashC = (msg: Input, opts?: T): Uint8Array => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({} as T);\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts: T) => hashCons(opts);\n return hashC;\n}\n\nexport function wrapXOFConstructorWithOpts<H extends HashXOF<H>, T extends Object>(\n hashCons: (opts?: T) => HashXOF<H>\n) {\n const hashC = (msg: Input, opts?: T): Uint8Array => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({} as T);\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts: T) => hashCons(opts);\n return hashC;\n}\n\n/**\n * Secure PRNG. Uses `crypto.getRandomValues`, which defers to OS.\n */\nexport function randomBytes(bytesLength = 32): Uint8Array {\n if (crypto && typeof crypto.getRandomValues === 'function') {\n return crypto.getRandomValues(new Uint8Array(bytesLength));\n }\n // Legacy Node.js compatibility\n if (crypto && typeof crypto.randomBytes === 'function') {\n return crypto.randomBytes(bytesLength);\n }\n throw new Error('crypto.getRandomValues must be defined');\n}\n", "import { exists, output } from './_assert.js';\nimport { Hash, createView, Input, toBytes } from './utils.js';\n\n/**\n * Polyfill for Safari 14\n */\nfunction setBigUint64(view: DataView, byteOffset: number, value: bigint, isLE: boolean): void {\n if (typeof view.setBigUint64 === 'function') return view.setBigUint64(byteOffset, value, isLE);\n const _32n = BigInt(32);\n const _u32_max = BigInt(0xffffffff);\n const wh = Number((value >> _32n) & _u32_max);\n const wl = Number(value & _u32_max);\n const h = isLE ? 4 : 0;\n const l = isLE ? 0 : 4;\n view.setUint32(byteOffset + h, wh, isLE);\n view.setUint32(byteOffset + l, wl, isLE);\n}\n\n/**\n * Choice: a ? b : c\n */\nexport const Chi = (a: number, b: number, c: number) => (a & b) ^ (~a & c);\n\n/**\n * Majority function, true if any two inputs is true\n */\nexport const Maj = (a: number, b: number, c: number) => (a & b) ^ (a & c) ^ (b & c);\n\n/**\n * Merkle-Damgard hash construction base class.\n * Could be used to create MD5, RIPEMD, SHA1, SHA2.\n */\nexport abstract class HashMD<T extends HashMD<T>> extends Hash<T> {\n protected abstract process(buf: DataView, offset: number): void;\n protected abstract get(): number[];\n protected abstract set(...args: number[]): void;\n abstract destroy(): void;\n protected abstract roundClean(): void;\n // For partial updates less than block size\n protected buffer: Uint8Array;\n protected view: DataView;\n protected finished = false;\n protected length = 0;\n protected pos = 0;\n protected destroyed = false;\n\n constructor(\n readonly blockLen: number,\n public outputLen: number,\n readonly padOffset: number,\n readonly isLE: boolean\n ) {\n super();\n this.buffer = new Uint8Array(blockLen);\n this.view = createView(this.buffer);\n }\n update(data: Input): this {\n exists(this);\n const { view, buffer, blockLen } = this;\n data = toBytes(data);\n const len = data.length;\n for (let pos = 0; pos < len; ) {\n const take = Math.min(blockLen - this.pos, len - pos);\n // Fast path: we have at least one block in input, cast it to view and process\n if (take === blockLen) {\n const dataView = createView(data);\n for (; blockLen <= len - pos; pos += blockLen) this.process(dataView, pos);\n continue;\n }\n buffer.set(data.subarray(pos, pos + take), this.pos);\n this.pos += take;\n pos += take;\n if (this.pos === blockLen) {\n this.process(view, 0);\n this.pos = 0;\n }\n }\n this.length += data.length;\n this.roundClean();\n return this;\n }\n digestInto(out: Uint8Array) {\n exists(this);\n output(out, this);\n this.finished = true;\n // Padding\n // We can avoid allocation of buffer for padding completely if it\n // was previously not allocated here. But it won't change performance.\n const { buffer, view, blockLen, isLE } = this;\n let { pos } = this;\n // append the bit '1' to the message\n buffer[pos++] = 0b10000000;\n this.buffer.subarray(pos).fill(0);\n // we have less than padOffset left in buffer, so we cannot put length in\n // current block, need process it and pad again\n if (this.padOffset > blockLen - pos) {\n this.process(view, 0);\n pos = 0;\n }\n // Pad until full block byte with zeros\n for (let i = pos; i < blockLen; i++) buffer[i] = 0;\n // Note: sha512 requires length to be 128bit integer, but length in JS will overflow before that\n // You need to write around 2 exabytes (u64_max / 8 / (1024**6)) for this to happen.\n // So we just write lowest 64 bits of that value.\n setBigUint64(view, blockLen - 8, BigInt(this.length * 8), isLE);\n this.process(view, 0);\n const oview = createView(out);\n const len = this.outputLen;\n // NOTE: we do division by 4 later, which should be fused in single op with modulo by JIT\n if (len % 4) throw new Error('_sha2: outputLen should be aligned to 32bit');\n const outLen = len / 4;\n const state = this.get();\n if (outLen > state.length) throw new Error('_sha2: outputLen bigger than state');\n for (let i = 0; i < outLen; i++) oview.setUint32(4 * i, state[i], isLE);\n }\n digest() {\n const { buffer, outputLen } = this;\n this.digestInto(buffer);\n const res = buffer.slice(0, outputLen);\n this.destroy();\n return res;\n }\n _cloneInto(to?: T): T {\n to ||= new (this.constructor as any)() as T;\n to.set(...this.get());\n const { blockLen, buffer, length, finished, destroyed, pos } = this;\n to.length = length;\n to.pos = pos;\n to.finished = finished;\n to.destroyed = destroyed;\n if (length % blockLen) to.buffer.set(buffer);\n return to;\n }\n}\n", "import { HashMD, Chi, Maj } from './_md.js';\nimport { rotr, wrapConstructor } from './utils.js';\n\n// SHA2-256 need to try 2^128 hashes to execute birthday attack.\n// BTC network is doing 2^67 hashes/sec as per early 2023.\n\n// Round constants:\n// first 32 bits of the fractional parts of the cube roots of the first 64 primes 2..311)\n// prettier-ignore\nconst SHA256_K = /* @__PURE__ */ new Uint32Array([\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n]);\n\n// Initial state:\n// first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19\n// prettier-ignore\nconst SHA256_IV = /* @__PURE__ */ new Uint32Array([\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n]);\n\n// Temporary buffer, not used to store anything between runs\n// Named this way because it matches specification.\nconst SHA256_W = /* @__PURE__ */ new Uint32Array(64);\nexport class SHA256 extends HashMD<SHA256> {\n // We cannot use array here since array allows indexing by variable\n // which means optimizer/compiler cannot use registers.\n A = SHA256_IV[0] | 0;\n B = SHA256_IV[1] | 0;\n C = SHA256_IV[2] | 0;\n D = SHA256_IV[3] | 0;\n E = SHA256_IV[4] | 0;\n F = SHA256_IV[5] | 0;\n G = SHA256_IV[6] | 0;\n H = SHA256_IV[7] | 0;\n\n constructor() {\n super(64, 32, 8, false);\n }\n protected get(): [number, number, number, number, number, number, number, number] {\n const { A, B, C, D, E, F, G, H } = this;\n return [A, B, C, D, E, F, G, H];\n }\n // prettier-ignore\n protected set(\n A: number, B: number, C: number, D: number, E: number, F: number, G: number, H: number\n ) {\n this.A = A | 0;\n this.B = B | 0;\n this.C = C | 0;\n this.D = D | 0;\n this.E = E | 0;\n this.F = F | 0;\n this.G = G | 0;\n this.H = H | 0;\n }\n protected process(view: DataView, offset: number): void {\n // Extend the first 16 words into the remaining 48 words w[16..63] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4) SHA256_W[i] = view.getUint32(offset, false);\n for (let i = 16; i < 64; i++) {\n const W15 = SHA256_W[i - 15];\n const W2 = SHA256_W[i - 2];\n const s0 = rotr(W15, 7) ^ rotr(W15, 18) ^ (W15 >>> 3);\n const s1 = rotr(W2, 17) ^ rotr(W2, 19) ^ (W2 >>> 10);\n SHA256_W[i] = (s1 + SHA256_W[i - 7] + s0 + SHA256_W[i - 16]) | 0;\n }\n // Compression function main loop, 64 rounds\n let { A, B, C, D, E, F, G, H } = this;\n for (let i = 0; i < 64; i++) {\n const sigma1 = rotr(E, 6) ^ rotr(E, 11) ^ rotr(E, 25);\n const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const sigma0 = rotr(A, 2) ^ rotr(A, 13) ^ rotr(A, 22);\n const T2 = (sigma0 + Maj(A, B, C)) | 0;\n H = G;\n G = F;\n F = E;\n E = (D + T1) | 0;\n D = C;\n C = B;\n B = A;\n A = (T1 + T2) | 0;\n }\n // Add the compressed chunk to the current hash value\n A = (A + this.A) | 0;\n B = (B + this.B) | 0;\n C = (C + this.C) | 0;\n D = (D + this.D) | 0;\n E = (E + this.E) | 0;\n F = (F + this.F) | 0;\n G = (G + this.G) | 0;\n H = (H + this.H) | 0;\n this.set(A, B, C, D, E, F, G, H);\n }\n protected roundClean() {\n SHA256_W.fill(0);\n }\n destroy() {\n this.set(0, 0, 0, 0, 0, 0, 0, 0);\n this.buffer.fill(0);\n }\n}\n// Constants from https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf\nclass SHA224 extends SHA256 {\n A = 0xc1059ed8 | 0;\n B = 0x367cd507 | 0;\n C = 0x3070dd17 | 0;\n D = 0xf70e5939 | 0;\n E = 0xffc00b31 | 0;\n F = 0x68581511 | 0;\n G = 0x64f98fa7 | 0;\n H = 0xbefa4fa4 | 0;\n constructor() {\n super();\n this.outputLen = 28;\n }\n}\n\n/**\n * SHA2-256 hash function\n * @param message - data that would be hashed\n */\nexport const sha256 = /* @__PURE__ */ wrapConstructor(() => new SHA256());\n/**\n * SHA2-224 hash function\n */\nexport const sha224 = /* @__PURE__ */ wrapConstructor(() => new SHA224());\n", "import { sha224 as jsSha224 } from '@noble/hashes/sha256';\n\n/**\n * Returns the SHA224 hash of the buffer.\n * @param data Arraybuffer to encode\n */\nexport function sha224(data: ArrayBuffer): Uint8Array {\n return jsSha224.create().update(new Uint8Array(data)).digest();\n}\n", "import { decode, encode } from './utils/base32';\nimport { getCrc32 } from './utils/getCrc';\nimport { sha224 } from './utils/sha224';\n\nexport const JSON_KEY_PRINCIPAL = '__principal__';\nconst SELF_AUTHENTICATING_SUFFIX = 2;\nconst ANONYMOUS_SUFFIX = 4;\n\nconst MANAGEMENT_CANISTER_PRINCIPAL_HEX_STR = 'aaaaa-aa';\n\nconst fromHexString = (hexString: string) =>\n new Uint8Array((hexString.match(/.{1,2}/g) ?? []).map(byte => parseInt(byte, 16)));\n\nconst toHexString = (bytes: Uint8Array) =>\n bytes.reduce((str, byte) => str + byte.toString(16).padStart(2, '0'), '');\n\nexport type JsonnablePrincipal = {\n [JSON_KEY_PRINCIPAL]: string;\n};\n\nexport class Principal {\n public static anonymous(): Principal {\n return new this(new Uint8Array([ANONYMOUS_SUFFIX]));\n }\n\n /**\n * Utility method, returning the principal representing the management canister, decoded from the hex string `'aaaaa-aa'`\n * @returns {Principal} principal of the management canister\n */\n public static managementCanister(): Principal {\n return this.fromHex(MANAGEMENT_CANISTER_PRINCIPAL_HEX_STR);\n }\n\n public static selfAuthenticating(publicKey: Uint8Array): Principal {\n const sha = sha224(publicKey);\n return new this(new Uint8Array([...sha, SELF_AUTHENTICATING_SUFFIX]));\n }\n\n public static from(other: unknown): Principal {\n if (typeof other === 'string') {\n return Principal.fromText(other);\n } else if (Object.getPrototypeOf(other) === Uint8Array.prototype) {\n return new Principal(other as Uint8Array);\n } else if (\n typeof other === 'object' &&\n other !== null &&\n (other as Principal)._isPrincipal === true\n ) {\n return new Principal((other as Principal)._arr);\n }\n\n throw new Error(`Impossible to convert ${JSON.stringify(other)} to Principal.`);\n }\n\n public static fromHex(hex: string): Principal {\n return new this(fromHexString(hex));\n }\n\n public static fromText(text: string): Principal {\n let maybePrincipal = text;\n // If formatted as JSON string, parse it first\n if (text.includes(JSON_KEY_PRINCIPAL)) {\n const obj = JSON.parse(text);\n if (JSON_KEY_PRINCIPAL in obj) {\n maybePrincipal = obj[JSON_KEY_PRINCIPAL];\n }\n }\n\n const canisterIdNoDash = maybePrincipal.toLowerCase().replace(/-/g, '');\n\n let arr = decode(canisterIdNoDash);\n arr = arr.slice(4, arr.length);\n\n const principal = new this(arr);\n if (principal.toText() !== maybePrincipal) {\n throw new Error(\n `Principal \"${principal.toText()}\" does not have a valid checksum (original value \"${maybePrincipal}\" may not be a valid Principal ID).`,\n );\n }\n\n return principal;\n }\n\n public static fromUint8Array(arr: Uint8Array): Principal {\n return new this(arr);\n }\n\n public readonly _isPrincipal = true;\n\n protected constructor(private _arr: Uint8Array) {}\n\n public isAnonymous(): boolean {\n return this._arr.byteLength === 1 && this._arr[0] === ANONYMOUS_SUFFIX;\n }\n\n public toUint8Array(): Uint8Array {\n return this._arr;\n }\n\n public toHex(): string {\n return toHexString(this._arr).toUpperCase();\n }\n\n public toText(): string {\n const checksumArrayBuf = new ArrayBuffer(4);\n const view = new DataView(checksumArrayBuf);\n view.setUint32(0, getCrc32(this._arr));\n const checksum = new Uint8Array(checksumArrayBuf);\n\n const bytes = Uint8Array.from(this._arr);\n const array = new Uint8Array([...checksum, ...bytes]);\n\n const result = encode(array);\n const matches = result.match(/.{1,5}/g);\n if (!matches) {\n // This should only happen if there's no character, which is unreachable.\n throw new Error();\n }\n return matches.join('-');\n }\n\n public toString(): string {\n return this.toText();\n }\n\n /**\n * Serializes to JSON\n * @returns {JsonnablePrincipal} a JSON object with a single key, {@link JSON_KEY_PRINCIPAL}, whose value is the principal as a string\n */\n public toJSON(): JsonnablePrincipal {\n return { [JSON_KEY_PRINCIPAL]: this.toText() };\n }\n\n /**\n * Utility method taking a Principal to compare against. Used for determining canister ranges in certificate verification\n * @param {Principal} other - a {@link Principal} to compare\n * @returns {'lt' | 'eq' | 'gt'} `'lt' | 'eq' | 'gt'` a string, representing less than, equal to, or greater than\n */\n public compareTo(other: Principal): 'lt' | 'eq' | 'gt' {\n for (let i = 0; i < Math.min(this._arr.length, other._arr.length); i++) {\n if (this._arr[i] < other._arr[i]) return 'lt';\n else if (this._arr[i] > other._arr[i]) return 'gt';\n }\n // Here, at least one principal is a prefix of the other principal (they could be the same)\n if (this._arr.length < other._arr.length) return 'lt';\n if (this._arr.length > other._arr.length) return 'gt';\n return 'eq';\n }\n\n /**\n * Utility method checking whether a provided Principal is less than or equal to the current one using the {@link Principal.compareTo} method\n * @param other a {@link Principal} to compare\n * @returns {boolean} boolean\n */\n public ltEq(other: Principal): boolean {\n const cmp = this.compareTo(other);\n return cmp == 'lt' || cmp == 'eq';\n }\n\n /**\n * Utility method checking whether a provided Principal is greater than or equal to the current one using the {@link Principal.compareTo} method\n * @param other a {@link Principal} to compare\n * @returns {boolean} boolean\n */\n public gtEq(other: Principal): boolean {\n const cmp = this.compareTo(other);\n return cmp == 'gt' || cmp == 'eq';\n }\n}\n", "var e,n,t,r,i,o=-1,a=function(e){addEventListener(\"pageshow\",(function(n){n.persisted&&(o=n.timeStamp,e(n))}),!0)},c=function(){var e=self.performance&&performance.getEntriesByType&&performance.getEntriesByType(\"navigation\")[0];if(e&&e.responseStart>0&&e.responseStart<performance.now())return e},u=function(){var e=c();return e&&e.activationStart||0},f=function(e,n){var t=c(),r=\"navigate\";o>=0?r=\"back-forward-cache\":t&&(document.prerendering||u()>0?r=\"prerender\":document.wasDiscarded?r=\"restore\":t.type&&(r=t.type.replace(/_/g,\"-\")));return{name:e,value:void 0===n?-1:n,rating:\"good\",delta:0,entries:[],id:\"v4-\".concat(Date.now(),\"-\").concat(Math.floor(8999999999999*Math.random())+1e12),navigationType:r}},s=function(e,n,t){try{if(PerformanceObserver.supportedEntryTypes.includes(e)){var r=new PerformanceObserver((function(e){Promise.resolve().then((function(){n(e.getEntries())}))}));return r.observe(Object.assign({type:e,buffered:!0},t||{})),r}}catch(e){}},d=function(e,n,t,r){var i,o;return function(a){n.value>=0&&(a||r)&&((o=n.value-(i||0))||void 0===i)&&(i=n.value,n.delta=o,n.rating=function(e,n){return e>n[1]?\"poor\":e>n[0]?\"needs-improvement\":\"good\"}(n.value,t),e(n))}},l=function(e){requestAnimationFrame((function(){return requestAnimationFrame((function(){return e()}))}))},p=function(e){document.addEventListener(\"visibilitychange\",(function(){\"hidden\"===document.visibilityState&&e()}))},v=function(e){var n=!1;return function(){n||(e(),n=!0)}},m=-1,h=function(){return\"hidden\"!==document.visibilityState||document.prerendering?1/0:0},g=function(e){\"hidden\"===document.visibilityState&&m>-1&&(m=\"visibilitychange\"===e.type?e.timeStamp:0,T())},y=function(){addEventListener(\"visibilitychange\",g,!0),addEventListener(\"prerenderingchange\",g,!0)},T=function(){removeEventListener(\"visibilitychange\",g,!0),removeEventListener(\"prerenderingchange\",g,!0)},E=function(){return m<0&&(m=h(),y(),a((function(){setTimeout((function(){m=h(),y()}),0)}))),{get firstHiddenTime(){return m}}},C=function(e){document.prerendering?addEventListener(\"prerenderingchange\",(function(){return e()}),!0):e()},b=[1800,3e3],S=function(e,n){n=n||{},C((function(){var t,r=E(),i=f(\"FCP\"),o=s(\"paint\",(function(e){e.forEach((function(e){\"first-contentful-paint\"===e.name&&(o.disconnect(),e.startTime<r.firstHiddenTime&&(i.value=Math.max(e.startTime-u(),0),i.entries.push(e),t(!0)))}))}));o&&(t=d(e,i,b,n.reportAllChanges),a((function(r){i=f(\"FCP\"),t=d(e,i,b,n.reportAllChanges),l((function(){i.value=performance.now()-r.timeStamp,t(!0)}))})))}))},L=[.1,.25],w=function(e,n){n=n||{},S(v((function(){var t,r=f(\"CLS\",0),i=0,o=[],c=function(e){e.forEach((function(e){if(!e.hadRecentInput){var n=o[0],t=o[o.length-1];i&&e.startTime-t.startTime<1e3&&e.startTime-n.startTime<5e3?(i+=e.value,o.push(e)):(i=e.value,o=[e])}})),i>r.value&&(r.value=i,r.entries=o,t())},u=s(\"layout-shift\",c);u&&(t=d(e,r,L,n.reportAllChanges),p((function(){c(u.takeRecords()),t(!0)})),a((function(){i=0,r=f(\"CLS\",0),t=d(e,r,L,n.reportAllChanges),l((function(){return t()}))})),setTimeout(t,0))})))},A=0,I=1/0,P=0,M=function(e){e.forEach((function(e){e.interactionId&&(I=Math.min(I,e.interactionId),P=Math.max(P,e.interactionId),A=P?(P-I)/7+1:0)}))},k=function(){return e?A:performance.interactionCount||0},F=function(){\"interactionCount\"in performance||e||(e=s(\"event\",M,{type:\"event\",buffered:!0,durationThreshold:0}))},D=[],x=new Map,R=0,B=function(){var e=Math.min(D.length-1,Math.floor((k()-R)/50));return D[e]},H=[],q=function(e){if(H.forEach((function(n){return n(e)})),e.interactionId||\"first-input\"===e.entryType){var n=D[D.length-1],t=x.get(e.interactionId);if(t||D.length<10||e.duration>n.latency){if(t)e.duration>t.latency?(t.entries=[e],t.latency=e.duration):e.duration===t.latency&&e.startTime===t.entries[0].startTime&&t.entries.push(e);else{var r={id:e.interactionId,latency:e.duration,entries:[e]};x.set(r.id,r),D.push(r)}D.sort((function(e,n){return n.latency-e.latency})),D.length>10&&D.splice(10).forEach((function(e){return x.delete(e.id)}))}}},O=function(e){var n=self.requestIdleCallback||self.setTimeout,t=-1;return e=v(e),\"hidden\"===document.visibilityState?e():(t=n(e),p(e)),t},N=[200,500],j=function(e,n){\"PerformanceEventTiming\"in self&&\"interactionId\"in PerformanceEventTiming.prototype&&(n=n||{},C((function(){var t;F();var r,i=f(\"INP\"),o=function(e){O((function(){e.forEach(q);var n=B();n&&n.latency!==i.value&&(i.value=n.latency,i.entries=n.entries,r())}))},c=s(\"event\",o,{durationThreshold:null!==(t=n.durationThreshold)&&void 0!==t?t:40});r=d(e,i,N,n.reportAllChanges),c&&(c.observe({type:\"first-input\",buffered:!0}),p((function(){o(c.takeRecords()),r(!0)})),a((function(){R=k(),D.length=0,x.clear(),i=f(\"INP\"),r=d(e,i,N,n.reportAllChanges)})))})))},_=[2500,4e3],z={},G=function(e,n){n=n||{},C((function(){var t,r=E(),i=f(\"LCP\"),o=function(e){n.reportAllChanges||(e=e.slice(-1)),e.forEach((function(e){e.startTime<r.firstHiddenTime&&(i.value=Math.max(e.startTime-u(),0),i.entries=[e],t())}))},c=s(\"largest-contentful-paint\",o);if(c){t=d(e,i,_,n.reportAllChanges);var m=v((function(){z[i.id]||(o(c.takeRecords()),c.disconnect(),z[i.id]=!0,t(!0))}));[\"keydown\",\"click\"].forEach((function(e){addEventListener(e,(function(){return O(m)}),!0)})),p(m),a((function(r){i=f(\"LCP\"),t=d(e,i,_,n.reportAllChanges),l((function(){i.value=performance.now()-r.timeStamp,z[i.id]=!0,t(!0)}))}))}}))},J=[800,1800],K=function e(n){document.prerendering?C((function(){return e(n)})):\"complete\"!==document.readyState?addEventListener(\"load\",(function(){return e(n)}),!0):setTimeout(n,0)},Q=function(e,n){n=n||{};var t=f(\"TTFB\"),r=d(e,t,J,n.reportAllChanges);K((function(){var i=c();i&&(t.value=Math.max(i.responseStart-u(),0),t.entries=[i],r(!0),a((function(){t=f(\"TTFB\",0),(r=d(e,t,J,n.reportAllChanges))(!0)})))}))},U={passive:!0,capture:!0},V=new Date,W=function(e,i){n||(n=i,t=e,r=new Date,Z(removeEventListener),X())},X=function(){if(t>=0&&t<r-V){var e={entryType:\"first-input\",name:n.type,target:n.target,cancelable:n.cancelable,startTime:n.timeStamp,processingStart:n.timeStamp+t};i.forEach((function(n){n(e)})),i=[]}},Y=function(e){if(e.cancelable){var n=(e.timeStamp>1e12?new Date:performance.now())-e.timeStamp;\"pointerdown\"==e.type?function(e,n){var t=function(){W(e,n),i()},r=function(){i()},i=function(){removeEventListener(\"pointerup\",t,U),removeEventListener(\"pointercancel\",r,U)};addEventListener(\"pointerup\",t,U),addEventListener(\"pointercancel\",r,U)}(n,e):W(n,e)}},Z=function(e){[\"mousedown\",\"keydown\",\"touchstart\",\"pointerdown\"].forEach((function(n){return e(n,Y,U)}))},$=[100,300],ee=function(e,r){r=r||{},C((function(){var o,c=E(),u=f(\"FID\"),l=function(e){e.startTime<c.firstHiddenTime&&(u.value=e.processingStart-e.startTime,u.entries.push(e),o(!0))},m=function(e){e.forEach(l)},h=s(\"first-input\",m);o=d(e,u,$,r.reportAllChanges),h&&(p(v((function(){m(h.takeRecords()),h.disconnect()}))),a((function(){var a;u=f(\"FID\"),o=d(e,u,$,r.reportAllChanges),i=[],t=-1,n=null,Z(addEventListener),a=l,i.push(a),X()})))}))};export{L as CLSThresholds,b as FCPThresholds,$ as FIDThresholds,N as INPThresholds,_ as LCPThresholds,J as TTFBThresholds,w as onCLS,S as onFCP,ee as onFID,j as onINP,G as onLCP,Q as onTTFB};\n", "function promisifyRequest(request) {\n return new Promise((resolve, reject) => {\n // @ts-ignore - file size hacks\n request.oncomplete = request.onsuccess = () => resolve(request.result);\n // @ts-ignore - file size hacks\n request.onabort = request.onerror = () => reject(request.error);\n });\n}\nfunction createStore(dbName, storeName) {\n const request = indexedDB.open(dbName);\n request.onupgradeneeded = () => request.result.createObjectStore(storeName);\n const dbp = promisifyRequest(request);\n return (txMode, callback) => dbp.then((db) => callback(db.transaction(storeName, txMode).objectStore(storeName)));\n}\nlet defaultGetStoreFunc;\nfunction defaultGetStore() {\n if (!defaultGetStoreFunc) {\n defaultGetStoreFunc = createStore('keyval-store', 'keyval');\n }\n return defaultGetStoreFunc;\n}\n/**\n * Get a value by its key.\n *\n * @param key\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction get(key, customStore = defaultGetStore()) {\n return customStore('readonly', (store) => promisifyRequest(store.get(key)));\n}\n/**\n * Set a value with a key.\n *\n * @param key\n * @param value\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction set(key, value, customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => {\n store.put(value, key);\n return promisifyRequest(store.transaction);\n });\n}\n/**\n * Set multiple values at once. This is faster than calling set() multiple times.\n * It's also atomic \u2013 if one of the pairs can't be added, none will be added.\n *\n * @param entries Array of entries, where each entry is an array of `[key, value]`.\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction setMany(entries, customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => {\n entries.forEach((entry) => store.put(entry[1], entry[0]));\n return promisifyRequest(store.transaction);\n });\n}\n/**\n * Get multiple values by their keys\n *\n * @param keys\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction getMany(keys, customStore = defaultGetStore()) {\n return customStore('readonly', (store) => Promise.all(keys.map((key) => promisifyRequest(store.get(key)))));\n}\n/**\n * Update a value. This lets you see the old value and update it as an atomic operation.\n *\n * @param key\n * @param updater A callback that takes the old value and returns a new value.\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction update(key, updater, customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => \n // Need to create the promise manually.\n // If I try to chain promises, the transaction closes in browsers\n // that use a promise polyfill (IE10/11).\n new Promise((resolve, reject) => {\n store.get(key).onsuccess = function () {\n try {\n store.put(updater(this.result), key);\n resolve(promisifyRequest(store.transaction));\n }\n catch (err) {\n reject(err);\n }\n };\n }));\n}\n/**\n * Delete a particular key from the store.\n *\n * @param key\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction del(key, customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => {\n store.delete(key);\n return promisifyRequest(store.transaction);\n });\n}\n/**\n * Delete multiple keys at once.\n *\n * @param keys List of keys to delete.\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction delMany(keys, customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => {\n keys.forEach((key) => store.delete(key));\n return promisifyRequest(store.transaction);\n });\n}\n/**\n * Clear all values in the store.\n *\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction clear(customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => {\n store.clear();\n return promisifyRequest(store.transaction);\n });\n}\nfunction eachCursor(store, callback) {\n store.openCursor().onsuccess = function () {\n if (!this.result)\n return;\n callback(this.result);\n this.result.continue();\n };\n return promisifyRequest(store.transaction);\n}\n/**\n * Get all keys in the store.\n *\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction keys(customStore = defaultGetStore()) {\n return customStore('readonly', (store) => {\n // Fast path for modern browsers\n if (store.getAllKeys) {\n return promisifyRequest(store.getAllKeys());\n }\n const items = [];\n return eachCursor(store, (cursor) => items.push(cursor.key)).then(() => items);\n });\n}\n/**\n * Get all values in the store.\n *\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction values(customStore = defaultGetStore()) {\n return customStore('readonly', (store) => {\n // Fast path for modern browsers\n if (store.getAll) {\n return promisifyRequest(store.getAll());\n }\n const items = [];\n return eachCursor(store, (cursor) => items.push(cursor.value)).then(() => items);\n });\n}\n/**\n * Get all entries in the store. Each entry is an array of `[key, value]`.\n *\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction entries(customStore = defaultGetStore()) {\n return customStore('readonly', (store) => {\n // Fast path for modern browsers\n // (although, hopefully we'll get a simpler path some day)\n if (store.getAll && store.getAllKeys) {\n return Promise.all([\n promisifyRequest(store.getAllKeys()),\n promisifyRequest(store.getAll()),\n ]).then(([keys, values]) => keys.map((key, i) => [key, values[i]]));\n }\n const items = [];\n return customStore('readonly', (store) => eachCursor(store, (cursor) => items.push([cursor.key, cursor.value])).then(() => items));\n });\n}\n\nexport { clear, createStore, del, delMany, entries, get, getMany, keys, promisifyRequest, set, setMany, update, values };\n", "import {createStore, delMany, entries, set} from 'idb-keyval';\nimport type {IdbKey, IdbPageView, IdbPerformanceMetric, IdbTrackEvent} from '../types/idb';\n\nconst viewsStore = createStore('juno-views', 'views');\nconst eventsStore = createStore('juno-events', 'events');\nconst metricsStore = createStore('juno-metrics', 'metrics');\n\nexport const setPageView = ({key, view}: {key: IdbKey; view: IdbPageView}): Promise<void> =>\n set(key, view, viewsStore);\n\nexport const getPageViews = (): Promise<[IDBValidKey, IdbPageView][]> => entries(viewsStore);\n\nexport const delPageViews = (keys: IDBValidKey[]): Promise<void> => delMany(keys, viewsStore);\n\nexport const setTrackEvent = ({key, track}: {key: IdbKey; track: IdbTrackEvent}): Promise<void> =>\n set(key, track, eventsStore);\n\nexport const getTrackEvents = (): Promise<[IDBValidKey, IdbTrackEvent][]> => entries(eventsStore);\n\nexport const delTrackEvents = (keys: IDBValidKey[]): Promise<void> => delMany(keys, eventsStore);\n\nexport const setPerformanceMetric = ({\n key,\n view\n}: {\n key: IdbKey;\n view: IdbPerformanceMetric;\n}): Promise<void> => set(key, view, metricsStore);\n\nexport const getPerformanceMetrics = (): Promise<[IDBValidKey, IdbPerformanceMetric][]> =>\n entries(metricsStore);\n\nexport const delPerformanceMetrics = (keys: IDBValidKey[]): Promise<void> =>\n delMany(keys, metricsStore);\n", "/**\n * Creates a debounced function that delays invoking the provided function until after the specified timeout.\n * @param {Function} func - The function to debounce.\n * @param {number} [timeout=300] - The number of milliseconds to delay. Defaults to 300ms if not specified or invalid.\n * @returns {Function} A debounced function.\n */\n// eslint-disable-next-line @typescript-eslint/ban-types, local-rules/prefer-object-params\nexport const debounce = (func: Function, timeout?: number): Function => {\n let timer: ReturnType<typeof setTimeout> | undefined;\n\n return (...args: unknown[]) => {\n const next = () => func(...args);\n\n if (timer) {\n clearTimeout(timer);\n }\n\n timer = setTimeout(next, timeout !== undefined && timeout > 0 ? timeout : 300);\n };\n};\n", "import {Principal} from '@dfinity/principal';\nimport {nonNullish} from './null.utils';\n\nconst JSON_KEY_BIGINT = '__bigint__';\nconst JSON_KEY_PRINCIPAL = '__principal__';\nconst JSON_KEY_UINT8ARRAY = '__uint8array__';\n\n/**\n * A function that alters the behavior of the stringification process for BigInt, Principal, and Uint8Array.\n * @param {string} _key - The key of the value being stringified.\n * @param {unknown} value - The value being stringified.\n * @returns {unknown} The altered value for stringification.\n */\n// eslint-disable-next-line local-rules/prefer-object-params\nexport const jsonReplacer = (_key: string, value: unknown): unknown => {\n if (typeof value === 'bigint') {\n return {[JSON_KEY_BIGINT]: `${value}`};\n }\n\n if (nonNullish(value) && value instanceof Principal) {\n return {[JSON_KEY_PRINCIPAL]: value.toText()};\n }\n\n if (nonNullish(value) && value instanceof Uint8Array) {\n return {[JSON_KEY_UINT8ARRAY]: Array.from(value)};\n }\n\n return value;\n};\n\n/**\n * A parser that interprets revived BigInt, Principal, and Uint8Array when constructing JavaScript values or objects.\n * @param {string} _key - The key of the value being parsed.\n * @param {unknown} value - The value being parsed.\n * @returns {unknown} The parsed value.\n */\n// eslint-disable-next-line local-rules/prefer-object-params\nexport const jsonReviver = (_key: string, value: unknown): unknown => {\n const mapValue = <T>(key: string): T => (value as Record<string, T>)[key];\n\n if (nonNullish(value) && typeof value === 'object' && JSON_KEY_BIGINT in value) {\n return BigInt(mapValue(JSON_KEY_BIGINT));\n }\n\n if (nonNullish(value) && typeof value === 'object' && JSON_KEY_PRINCIPAL in value) {\n return Principal.fromText(mapValue(JSON_KEY_PRINCIPAL));\n }\n\n if (nonNullish(value) && typeof value === 'object' && JSON_KEY_UINT8ARRAY in value) {\n return Uint8Array.from(mapValue(JSON_KEY_UINT8ARRAY));\n }\n\n return value;\n};\n", "/**\n * Checks if the provided argument is null or undefined.\n * @template T\n * @param {T | undefined | null} argument - The argument to check.\n * @returns {boolean} True if the argument is null or undefined, false otherwise.\n */\n// eslint-disable-next-line local-rules/use-option-type-wrapper\nexport const isNullish = <T>(argument: T | undefined | null): argument is undefined | null =>\n argument === null || argument === undefined;\n\n/**\n * Checks if the provided argument is neither null nor undefined.\n * @template T\n * @param {T | undefined | null} argument - The argument to check.\n * @returns {boolean} True if the argument is neither null nor undefined, false otherwise.\n */\n// eslint-disable-next-line local-rules/use-option-type-wrapper\nexport const nonNullish = <T>(argument: T | undefined | null): argument is NonNullable<T> =>\n !isNullish(argument);\n\n/**\n * Represents an error thrown when a value is null or undefined.\n * @class\n * @extends {Error}\n */\nexport class NullishError extends Error {}\n\n/**\n * Asserts that a value is neither null nor undefined.\n * @template T\n * @param {T} value - The value to check.\n * @param {string} [message] - The optional error message to use if the assertion fails.\n * @throws {NullishError} If the value is null or undefined.\n * @returns {asserts value is NonNullable<T>} Asserts that the value is neither null nor undefined.\n */\nexport const assertNonNullish: <T>(\n value: T,\n message?: string\n // eslint-disable-next-line local-rules/prefer-object-params\n) => asserts value is NonNullable<T> = <T>(value: T, message?: string): void => {\n if (isNullish(value)) {\n throw new NullishError(message);\n }\n};\n", "import {jsonReplacer, jsonReviver} from './json.utils';\nimport {nonNullish} from './null.utils';\n\n/**\n * Converts a value to a nullable array.\n * @template T\n * @param {T} [value] - The value to convert.\n * @returns {([] | [T])} A nullable array containing the value if non-nullish, or an empty array if nullish.\n */\nexport const toNullable = <T>(value?: T): [] | [T] => (nonNullish(value) ? [value] : []);\n\n/**\n * Extracts a value from a nullable array.\n * @template T\n * @param {([] | [T])} value - The nullable array.\n * @returns {(T | undefined)} The value if present, or undefined if the array is empty.\n */\nexport const fromNullable = <T>(value: [] | [T]): T | undefined => value?.[0];\n\n/**\n * Converts data to a Uint8Array for transmission or storage.\n * @template T\n * @param {T} data - The data to convert.\n * @returns {Promise<Uint8Array>} A promise that resolves to a Uint8Array representation of the data.\n */\nexport const toArray = async <T>(data: T): Promise<Uint8Array> => {\n const blob: Blob = new Blob([JSON.stringify(data, jsonReplacer)], {\n type: 'application/json; charset=utf-8'\n });\n return new Uint8Array(await blob.arrayBuffer());\n};\n\n/**\n * Converts a Uint8Array or number array back to the original data type.\n * @template T\n * @param {(Uint8Array | number[])} data - The array to convert.\n * @returns {Promise<T>} A promise that resolves to the original data.\n */\nexport const fromArray = async <T>(data: Uint8Array | number[]): Promise<T> => {\n const blob: Blob = new Blob([data instanceof Uint8Array ? data : new Uint8Array(data)], {\n type: 'application/json; charset=utf-8'\n });\n return JSON.parse(await blob.text(), jsonReviver);\n};\n", "/**\n * Checks if the current environment is a browser.\n * @returns {boolean} True if the current environment is a browser, false otherwise.\n */\nexport const isBrowser = (): boolean => typeof window !== `undefined`;\n", "import { webcrypto as crypto } from 'node:crypto'\nimport { urlAlphabet as scopedUrlAlphabet } from './url-alphabet/index.js'\nexport { urlAlphabet } from './url-alphabet/index.js'\nconst POOL_SIZE_MULTIPLIER = 128\nlet pool, poolOffset\nfunction fillPool(bytes) {\n if (!pool || pool.length < bytes) {\n pool = Buffer.allocUnsafe(bytes * POOL_SIZE_MULTIPLIER)\n crypto.getRandomValues(pool)\n poolOffset = 0\n } else if (poolOffset + bytes > pool.length) {\n crypto.getRandomValues(pool)\n poolOffset = 0\n }\n poolOffset += bytes\n}\nexport function random(bytes) {\n fillPool((bytes -= 0))\n return pool.subarray(poolOffset - bytes, poolOffset)\n}\nexport function customRandom(alphabet, defaultSize, getRandom) {\n let mask = (2 << (31 - Math.clz32((alphabet.length - 1) | 1))) - 1\n let step = Math.ceil((1.6 * mask * defaultSize) / alphabet.length)\n return (size = defaultSize) => {\n let id = ''\n while (true) {\n let bytes = getRandom(step)\n let i = step\n while (i--) {\n id += alphabet[bytes[i] & mask] || ''\n if (id.length === size) return id\n }\n }\n }\n}\nexport function customAlphabet(alphabet, size = 21) {\n return customRandom(alphabet, size, random)\n}\nexport function nanoid(size = 21) {\n fillPool((size -= 0))\n let id = ''\n for (let i = poolOffset - size; i < poolOffset; i++) {\n id += scopedUrlAlphabet[pool[i] & 63]\n }\n return id\n}\n", "export const urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\n", "export const nowInBigIntNanoSeconds = (): bigint => BigInt(Date.now()) * BigInt(1e6);\n", "import {toNullable} from '@junobuild/utils';\nimport {nowInBigIntNanoSeconds} from './date.utils';\n\nexport const timestamp = (): {\n collected_at: bigint;\n updated_at: [] | [bigint];\n version: [] | [bigint];\n} => ({\n collected_at: nowInBigIntNanoSeconds(),\n updated_at: [],\n version: []\n});\n\nexport const userAgent = (): {user_agent: [] | [string]} => {\n const {userAgent} = navigator;\n return {user_agent: toNullable(userAgent)};\n};\n", "import {isNullish} from '@junobuild/utils';\n\nconst WORKER_UNDEFINED_MSG =\n 'Analytics worker not initialized. Did you call `initOrbiter`?' as const;\n\nexport const warningWorkerNotInitialized = <T>(value: T) => {\n if (isNullish(value)) {\n console.warn(WORKER_UNDEFINED_MSG);\n }\n};\n", "import {toNullable} from '@junobuild/utils';\nimport {nanoid} from 'nanoid';\nimport type {Metric} from 'web-vitals';\nimport type {\n NavigationType,\n PerformanceMetricName,\n WebVitalsMetric\n} from '../../declarations/orbiter/orbiter.did';\nimport type {IdbPerformanceMetric} from '../types/idb';\nimport {timestamp, userAgent} from '../utils/analytics.utils';\n\ntype SessionMetric = Omit<Metric, 'navigationType'> &\n Partial<Pick<Metric, 'navigationType'>> & {sessionId: string};\n\nexport const startPerformance = async (sessionId: string) => {\n const {onCLS, onFCP, onINP, onLCP, onTTFB} = await import('web-vitals');\n\n const setMetric = (metric: Metric) => {\n (async () => {\n await setPerformanceMetric({...metric, sessionId});\n })();\n };\n\n onCLS(setMetric);\n onFCP(setMetric);\n onINP(setMetric);\n onLCP(setMetric);\n onTTFB(setMetric);\n};\n\nconst setPerformanceMetric = async (metric: SessionMetric) => {\n const data = mapPerformanceMetric(metric);\n\n if (data === 'unknown') {\n console.warn('Performance metric ignored. Unknown metric name.', metric);\n return;\n }\n\n if (data === 'deprecated') {\n return;\n }\n\n const idb = await import('./idb.services');\n await idb.setPerformanceMetric({\n key: nanoid(),\n view: data\n });\n};\n\nconst mapPerformanceMetric = ({\n sessionId,\n name: metricName,\n value,\n delta,\n id,\n navigationType\n}: SessionMetric): IdbPerformanceMetric | 'deprecated' | 'unknown' => {\n const mapMetricName = (): PerformanceMetricName | 'deprecated' | 'unknown' => {\n switch (metricName) {\n case 'CLS':\n return {CLS: null};\n case 'FCP':\n return {FCP: null};\n case 'INP':\n return {INP: null};\n case 'LCP':\n return {LCP: null};\n case 'TTFB':\n return {TTFB: null};\n case 'FID':\n return 'deprecated';\n default:\n return 'unknown';\n }\n };\n\n const metric_name = mapMetricName();\n\n if (metric_name === 'unknown' || metric_name === 'deprecated') {\n return metric_name;\n }\n\n const mapNavigationType = (): NavigationType | undefined => {\n switch (navigationType) {\n case 'navigate':\n return {Navigate: null};\n case 'restore':\n return {Restore: null};\n case 'reload':\n return {Reload: null};\n case 'back-forward':\n return {BackForward: null};\n case 'back-forward-cache':\n return {BackForwardCache: null};\n case 'prerender':\n return {Prerender: null};\n default:\n return undefined;\n }\n };\n\n const data: WebVitalsMetric = {\n value,\n delta,\n id,\n navigation_type: toNullable(mapNavigationType())\n };\n\n const {\n location: {href}\n } = document;\n\n const {updated_at: _, ...timestampRest} = timestamp();\n\n const metric: IdbPerformanceMetric = {\n href,\n metric_name,\n session_id: sessionId,\n data: {\n WebVitalsMetric: data\n },\n ...userAgent(),\n ...timestampRest\n };\n\n return metric;\n};\n", "import {assertNonNullish, isBrowser, nonNullish, toNullable} from '@junobuild/utils';\nimport {nanoid} from 'nanoid';\nimport type {Environment, EnvironmentWorker} from '../types/env';\nimport type {IdbPageView} from '../types/idb';\nimport type {PostMessageInitEnvData} from '../types/post-message';\nimport type {TrackEvent} from '../types/track';\nimport {timestamp, userAgent} from '../utils/analytics.utils';\nimport {warningWorkerNotInitialized} from '../utils/log.utils';\nimport {startPerformance} from './performance.services';\n\nconst initSessionId = (): string | undefined => {\n // I faced this issue when I used the library in Docusaurus which does not implement the crypto API when server-side rendering.\n // https://github.com/ai/nanoid/issues?q=crypto+not+defined\n if (typeof crypto === 'undefined') {\n return undefined;\n }\n\n return nanoid();\n};\n\nconst sessionId = initSessionId();\n\nlet worker: Worker | undefined;\n\nexport const initWorker = (env: Environment): {cleanup: () => void} => {\n const {path}: EnvironmentWorker = env.worker ?? {};\n const workerUrl = path ?? './workers/analytics.worker.js';\n\n worker = new Worker(workerUrl);\n\n const consoleWarn = () =>\n console.warn('Unable to connect to the analytics web worker. Have you deployed it?');\n\n worker?.addEventListener('error', consoleWarn, false);\n\n initWorkerEnvironment(env);\n\n return {\n cleanup() {\n worker?.removeEventListener('error', consoleWarn, false);\n }\n };\n};\n\nexport const initTrackPageViews = (): {cleanup: () => void} => {\n const trackPages = async () => await trackPageView();\n\n let pushStateProxy: typeof history.pushState | null = new Proxy(history.pushState, {\n // eslint-disable-next-line local-rules/prefer-object-params\n apply: async (\n target,\n thisArg,\n argArray: [data: unknown, unused: string, url?: string | URL | null | undefined]\n ) => {\n target.apply(thisArg, argArray);\n await trackPages();\n }\n });\n\n history.pushState = pushStateProxy;\n\n addEventListener('popstate', trackPages, {passive: true});\n\n return {\n cleanup() {\n pushStateProxy = null;\n removeEventListener('popstate', trackPages, false);\n }\n };\n};\n\nconst SESSION_ID_UNDEFINED_MSG = 'No session ID initialized.' as const;\n\nexport const setPageView = async () => {\n if (!isBrowser()) {\n return;\n }\n\n assertNonNullish(sessionId, SESSION_ID_UNDEFINED_MSG);\n\n const {\n title,\n location: {href},\n referrer\n } = document;\n const {innerWidth, innerHeight} = window;\n const {timeZone} = Intl.DateTimeFormat().resolvedOptions();\n\n const data: IdbPageView = {\n title,\n href,\n referrer: toNullable(nonNullish(referrer) && referrer !== '' ? referrer : undefined),\n device: {\n inner_width: innerWidth,\n inner_height: innerHeight\n },\n time_zone: timeZone,\n session_id: sessionId,\n ...userAgent(),\n ...timestamp()\n };\n\n const idb = await import('./idb.services');\n await idb.setPageView({\n key: nanoid(),\n view: data\n });\n};\n\nexport const initTrackPerformance = async ({options}: Environment) => {\n if (!isBrowser()) {\n return;\n }\n\n if (options?.performance === false) {\n return;\n }\n\n assertNonNullish(sessionId, SESSION_ID_UNDEFINED_MSG);\n\n await startPerformance(sessionId);\n};\n\n/**\n * Tracks a page view in Juno Analytics.\n * @returns {Promise<void>} A promise that resolves when the page view is tracked.\n */\nexport const trackPageView = async (): Promise<void> => {\n warningWorkerNotInitialized(worker);\n\n await setPageView();\n\n worker?.postMessage({msg: 'junoTrackPageView'});\n};\n\n/**\n * Tracks a custom event in Juno Analytics.\n * @param {TrackEvent} data - The event details.\n * @returns {Promise<void>} A promise that resolves when the event is tracked.\n */\nexport const trackEvent = async (data: TrackEvent): Promise<void> => {\n if (!isBrowser()) {\n return;\n }\n\n assertNonNullish(sessionId, SESSION_ID_UNDEFINED_MSG);\n warningWorkerNotInitialized(worker);\n\n const idb = await import('./idb.services');\n await idb.setTrackEvent({\n key: nanoid(),\n track: {...data, session_id: sessionId, ...userAgent(), ...timestamp()}\n });\n\n worker?.postMessage({msg: 'junoTrackEvent'});\n};\n\nexport const initWorkerEnvironment = (env: PostMessageInitEnvData) => {\n warningWorkerNotInitialized(worker);\n\n worker?.postMessage({msg: 'junoInitEnvironment', data: env});\n};\n\nexport const startTracking = () => {\n warningWorkerNotInitialized(worker);\n\n worker?.postMessage({msg: 'junoStartTrackTimer'});\n};\n\nexport const stopTracking = () => {\n warningWorkerNotInitialized(worker);\n\n worker?.postMessage({msg: 'junoStopTracker'});\n};\n", "// TODO: duplicated because those should not be bundled in web worker. We can avoid this by transforming utils into a library of modules.\ninterface ImportMeta {\n env: Record<string, string> | undefined;\n}\n\nexport const envSatelliteId = (): string | undefined => {\n const viteEnvSatelliteId = (): string | undefined =>\n typeof import.meta !== 'undefined' &&\n typeof (import.meta as unknown as ImportMeta).env !== 'undefined'\n ? ((import.meta as unknown as ImportMeta).env?.VITE_SATELLITE_ID ??\n (import.meta as unknown as ImportMeta).env?.PUBLIC_SATELLITE_ID)\n : undefined;\n\n return typeof process !== 'undefined'\n ? (process.env?.NEXT_PUBLIC_SATELLITE_ID ?? viteEnvSatelliteId())\n : viteEnvSatelliteId();\n};\n\nexport const envOrbiterId = (): string | undefined => {\n const viteEnvOrbiterId = (): string | undefined =>\n typeof import.meta !== 'undefined' &&\n typeof (import.meta as unknown as ImportMeta).env !== 'undefined'\n ? ((import.meta as unknown as ImportMeta).env?.VITE_ORBITER_ID ??\n (import.meta as unknown as ImportMeta).env?.PUBLIC_ORBITER_ID)\n : undefined;\n\n return typeof process !== 'undefined'\n ? (process.env?.NEXT_PUBLIC_ORBITER_ID ?? viteEnvOrbiterId())\n : viteEnvOrbiterId();\n};\n\nexport const envContainer = (): string | undefined => {\n const viteEnvContainer = (): string | undefined =>\n typeof import.meta !== 'undefined' &&\n typeof (import.meta as unknown as ImportMeta).env !== 'undefined'\n ? ((import.meta as unknown as ImportMeta).env?.VITE_CONTAINER ??\n (import.meta as unknown as ImportMeta).env?.PUBLIC_CONTAINER)\n : undefined;\n\n return typeof process !== 'undefined'\n ? (process.env?.NEXT_PUBLIC_CONTAINER ?? viteEnvContainer())\n : viteEnvContainer();\n};\n", "import {assertNonNullish} from '@junobuild/utils';\nimport {\n initTrackPageViews,\n initTrackPerformance,\n initWorker,\n setPageView,\n startTracking,\n stopTracking\n} from './services/analytics.services';\nimport type {Environment, UserEnvironment} from './types/env';\nimport {envContainer, envOrbiterId, envSatelliteId} from './utils/window.env.utils';\n\nexport {trackEvent, trackPageView} from './services/analytics.services';\nexport type * from './types/env';\n\nconst parseEnv = (userEnv?: UserEnvironment): Environment => {\n const satelliteId = userEnv?.satelliteId ?? envSatelliteId();\n\n assertNonNullish(\n satelliteId,\n 'Satellite ID is not configured. Orbiter cannot be initialized without a target Satellite.'\n );\n\n const orbiterId = userEnv?.orbiterId ?? envOrbiterId();\n\n assertNonNullish(\n orbiterId,\n 'Orbiter ID is not configured. The analytics cannot be initialized without an Orbiter.'\n );\n\n const container = userEnv?.container ?? envContainer();\n\n return {\n orbiterId,\n satelliteId,\n container,\n worker: userEnv?.worker,\n options: userEnv?.options\n };\n};\n\n/**\n * Initializes the Juno Analytics.\n * @param {UserEnvironment} [userEnv] - The optional user environment configuration. If no environment is provided, the variables injected by the Vite or NextJS plugins will be used.\n * @returns {Promise<() => void>} A promise that resolves to a cleanup function that stops tracking and cleans up resources.\n */\nexport const initOrbiter = async (userEnv?: UserEnvironment): Promise<() => void> => {\n // Save first page as soon as possible\n await setPageView();\n\n const env = parseEnv(userEnv);\n\n const {cleanup: workerCleanup} = initWorker(env);\n\n const {cleanup: pushHistoryCleanup} = initTrackPageViews();\n\n await initTrackPerformance(env);\n\n // Starting tracking will instantly sync the first page and the data from previous sessions that have not been synced yet\n startTracking();\n\n return () => {\n stopTracking();\n workerCleanup();\n pushHistoryCleanup();\n };\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["alphabet", "lookupTable", "i", "encode", "input", "skip", "bits", "output", "encodeByte", "byte", "exports", "decode", "decodeChar", "char", "val", "c", "lookUpTable", "getCrc32", "buf", "b", "crc", "i", "t", "exports", "exports", "isBytes", "number", "bool", "bytes", "hash", "exists", "output", "n", "b", "a", "lengths", "h", "instance", "checkFinished", "out", "min", "assert", "nc", "exports", "exports", "isBytes", "byteSwap32", "bytesToHex", "hexToBytes", "asyncLoop", "utf8ToBytes", "toBytes", "concatBytes", "checkOpts", "wrapConstructor", "wrapConstructorWithOpts", "wrapXOFConstructorWithOpts", "randomBytes", "crypto_1", "_assert_js_1", "a", "u8", "arr", "u32", "createView", "rotr", "word", "shift", "rotl", "byteSwap", "n", "i", "hexes", "_", "bytes", "hex", "asciis", "asciiToBase16", "char", "hl", "al", "array", "ai", "hi", "n1", "n2", "nextTick", "iters", "tick", "cb", "ts", "diff", "str", "data", "arrays", "sum", "res", "pad", "Hash", "toStr", "defaults", "opts", "hashCons", "hashC", "msg", "tmp", "bytesLength", "_assert_js_1", "utils_js_1", "setBigUint64", "view", "byteOffset", "value", "isLE", "_32n", "_u32_max", "wh", "wl", "h", "l", "Chi", "a", "b", "c", "exports", "Maj", "HashMD", "blockLen", "outputLen", "padOffset", "data", "buffer", "len", "pos", "take", "dataView", "out", "i", "oview", "outLen", "state", "res", "to", "length", "finished", "destroyed", "_md_js_1", "utils_js_1", "SHA256_K", "SHA256_IV", "SHA256_W", "SHA256", "A", "B", "C", "D", "E", "F", "G", "H", "view", "offset", "i", "W15", "W2", "s0", "s1", "sigma1", "T1", "T2", "exports", "SHA224", "sha256_1", "sha224", "data", "exports", "base32_1", "getCrc_1", "sha224_1", "exports", "SELF_AUTHENTICATING_SUFFIX", "ANONYMOUS_SUFFIX", "MANAGEMENT_CANISTER_PRINCIPAL_HEX_STR", "fromHexString", "hexString", "_a", "byte", "toHexString", "bytes", "str", "Principal", "_Principal", "_arr", "publicKey", "sha", "other", "hex", "text", "maybePrincipal", "obj", "canisterIdNoDash", "arr", "principal", "checksumArrayBuf", "checksum", "array", "matches", "i", "cmp", "web_vitals_exports", "__export", "L", "b", "$", "N", "_", "J", "w", "S", "ee", "j", "G", "Q", "e", "n", "t", "r", "i", "o", "a", "c", "u", "f", "s", "d", "l", "p", "v", "m", "h", "g", "y", "T", "E", "C", "A", "I", "P", "M", "k", "F", "D", "x", "R", "B", "H", "q", "O", "z", "K", "U", "V", "W", "X", "Y", "Z", "init_web_vitals", "__esmMin", "promisifyRequest", "request", "resolve", "reject", "createStore", "dbName", "storeName", "dbp", "txMode", "callback", "db", "defaultGetStore", "defaultGetStoreFunc", "set", "key", "value", "customStore", "store", "delMany", "keys", "eachCursor", "entries", "values", "i", "items", "cursor", "init_dist", "__esmMin", "idb_services_exports", "__export", "delPageViews", "delPerformanceMetrics", "delTrackEvents", "getPageViews", "getPerformanceMetrics", "getTrackEvents", "setPageView", "setPerformanceMetric", "setTrackEvent", "viewsStore", "eventsStore", "metricsStore", "init_idb_services", "__esmMin", "init_dist", "createStore", "key", "view", "set", "entries", "keys", "delMany", "track", "import_principal", "isNullish", "argument", "nonNullish", "NullishError", "assertNonNullish", "value", "message", "toNullable", "value", "nonNullish", "isBrowser", "crypto", "urlAlphabet", "POOL_SIZE_MULTIPLIER", "pool", "poolOffset", "fillPool", "bytes", "crypto", "nanoid", "size", "fillPool", "id", "i", "poolOffset", "urlAlphabet", "pool", "nowInBigIntNanoSeconds", "timestamp", "nowInBigIntNanoSeconds", "userAgent", "g", "WORKER_UNDEFINED_MSG", "warningWorkerNotInitialized", "value", "c", "startPerformance", "sessionId", "onCLS", "onFCP", "onINP", "onLCP", "onTTFB", "setMetric", "metric", "setPerformanceMetric", "data", "mapPerformanceMetric", "nanoid", "metricName", "value", "delta", "id", "navigationType", "metric_name", "g", "href", "_", "timestampRest", "timestamp", "userAgent", "initSessionId", "nanoid", "sessionId", "worker", "initWorker", "env", "path", "workerUrl", "consoleWarn", "initWorkerEnvironment", "initTrackPageViews", "trackPages", "trackPageView", "pushStateProxy", "target", "thisArg", "argArray", "SESSION_ID_UNDEFINED_MSG", "setPageView", "h", "x", "title", "href", "referrer", "innerWidth", "innerHeight", "timeZone", "data", "g", "t", "userAgent", "timestamp", "initTrackPerformance", "options", "startPerformance", "warningWorkerNotInitialized", "trackEvent", "startTracking", "stopTracking", "envSatelliteId", "viteEnvSatelliteId", "envOrbiterId", "viteEnvOrbiterId", "envContainer", "viteEnvContainer", "parseEnv", "userEnv", "satelliteId", "envSatelliteId", "x", "orbiterId", "envOrbiterId", "container", "envContainer", "initOrbiter", "setPageView", "env", "workerCleanup", "initWorker", "pushHistoryCleanup", "initTrackPageViews", "initTrackPerformance", "startTracking", "stopTracking"]
|
|
7
7
|
}
|
|
@@ -38,11 +38,11 @@ export interface EnvironmentOptions {
|
|
|
38
38
|
* @property {string} satelliteId - The ID of the satellite.
|
|
39
39
|
* @property {boolean | string} [container] - Specifies whether the actor is running in a container or provides the container URL.
|
|
40
40
|
*/
|
|
41
|
-
export
|
|
41
|
+
export interface EnvironmentActor {
|
|
42
42
|
orbiterId: string;
|
|
43
43
|
satelliteId: string;
|
|
44
44
|
container?: boolean | string;
|
|
45
|
-
}
|
|
45
|
+
}
|
|
46
46
|
/**
|
|
47
47
|
* Represents the overall environment configuration.
|
|
48
48
|
* @typedef {Object} Environment
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type ActorMethod, type ActorSubclass } from '@dfinity/agent';
|
|
2
2
|
import type { IDL } from '@dfinity/candid';
|
|
3
3
|
import type { EnvironmentActor } from '../types/env';
|
|
4
4
|
export declare const createActor: <T = Record<string, ActorMethod<unknown[], unknown>>>({ orbiterId: canisterId, idlFactory, container }: {
|