{"version":3,"file":"random.js","names":[],"sources":["esm/platform/crypto/random.js"],"sourcesContent":["const MAX_RANDOM_BYTES = 65536;\nconst HEX_DIGITS = \"0123456789abcdef\";\nfunction formatUuidV4(bytes) {\n  if (bytes.length !== 16) {\n    throw new RangeError(`randomUUID: expected 16 random bytes, got ${bytes.length}.`);\n  }\n  const versioned = bytes.slice();\n  versioned[6] = versioned[6] & 15 | 64;\n  versioned[8] = versioned[8] & 63 | 128;\n  const hex = (index) => HEX_DIGITS[versioned[index] >> 4] + HEX_DIGITS[versioned[index] & 15];\n  return hex(0) + hex(1) + hex(2) + hex(3) + \"-\" + hex(4) + hex(5) + \"-\" + hex(6) + hex(7) + \"-\" + hex(8) + hex(9) + \"-\" + hex(10) + hex(11) + hex(12) + hex(13) + hex(14) + hex(15);\n}\nconst INTEGER_ARRAY_TAGS = /* @__PURE__ */ new Set([\n  \"[object Int8Array]\",\n  \"[object Uint8Array]\",\n  \"[object Uint8ClampedArray]\",\n  \"[object Int16Array]\",\n  \"[object Uint16Array]\",\n  \"[object Int32Array]\",\n  \"[object Uint32Array]\",\n  \"[object BigInt64Array]\",\n  \"[object BigUint64Array]\"\n]);\nfunction quotaExceededError() {\n  const error = new Error(\n    `crypto.getRandomValues: byteLength exceeds ${MAX_RANDOM_BYTES}.`\n  );\n  error.name = \"QuotaExceededError\";\n  return error;\n}\nfunction fillRandomValues(view, source) {\n  if (!INTEGER_ARRAY_TAGS.has(Object.prototype.toString.call(view))) {\n    throw new TypeError(\n      `crypto.getRandomValues: expected an integer TypedArray, got ${Object.prototype.toString.call(view)}.`\n    );\n  }\n  if (view.byteLength > MAX_RANDOM_BYTES) {\n    throw quotaExceededError();\n  }\n  if (view.byteLength === 0) {\n    return view;\n  }\n  if (!(view.buffer instanceof ArrayBuffer)) {\n    throw new TypeError(\"crypto.getRandomValues: shared memory is not supported.\");\n  }\n  source.fill(new Uint8Array(view.buffer, view.byteOffset, view.byteLength));\n  return view;\n}\nfunction installCryptoPolyfill(source, target = globalThis) {\n  const existing = target.crypto;\n  if (existing != null && typeof existing.getRandomValues === \"function\" && typeof existing.randomUUID === \"function\") {\n    return;\n  }\n  const getRandomValues = (view) => fillRandomValues(view, source);\n  const randomUUID = () => source.randomUUID();\n  if (existing == null) {\n    target.crypto = { getRandomValues, randomUUID };\n    return;\n  }\n  if (typeof existing.getRandomValues !== \"function\") {\n    existing.getRandomValues = getRandomValues;\n  }\n  if (typeof existing.randomUUID !== \"function\") {\n    existing.randomUUID = randomUUID;\n  }\n}\nexport {\n  MAX_RANDOM_BYTES,\n  fillRandomValues,\n  formatUuidV4,\n  installCryptoPolyfill\n};\n//# sourceMappingURL=random.js.map\n"],"mappings":";AAAA,MAAM,mBAAmB;AACzB,MAAM,aAAa;AACnB,SAAS,aAAa,OAAO;CAC3B,IAAI,MAAM,WAAW,IAAI;EACvB,MAAM,IAAI,WAAW,6CAA6C,MAAM,OAAO,EAAE;CACnF;CACA,MAAM,YAAY,MAAM,MAAM;CAC9B,UAAU,KAAK,UAAU,KAAK,KAAK;CACnC,UAAU,KAAK,UAAU,KAAK,KAAK;CACnC,MAAM,OAAO,UAAU,WAAW,UAAU,UAAU,KAAK,WAAW,UAAU,SAAS;CACzF,OAAO,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,MAAM,IAAI,EAAE,IAAI,IAAI,EAAE,IAAI,IAAI,EAAE,IAAI,IAAI,EAAE,IAAI,IAAI,EAAE,IAAI,IAAI,EAAE;AACnL;AACA,MAAM,qCAAqC,IAAI,IAAI;CACjD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF,CAAC;AACD,SAAS,qBAAqB;CAC5B,MAAM,QAAQ,IAAI,MAChB,8CAA8C,iBAAiB,EACjE;CACA,MAAM,OAAO;CACb,OAAO;AACT;AACA,SAAS,iBAAiB,MAAM,QAAQ;CACtC,IAAI,CAAC,mBAAmB,IAAI,OAAO,UAAU,SAAS,KAAK,IAAI,CAAC,GAAG;EACjE,MAAM,IAAI,UACR,+DAA+D,OAAO,UAAU,SAAS,KAAK,IAAI,EAAE,EACtG;CACF;CACA,IAAI,KAAK,oBAA+B;EACtC,MAAM,mBAAmB;CAC3B;CACA,IAAI,KAAK,eAAe,GAAG;EACzB,OAAO;CACT;CACA,IAAI,EAAE,KAAK,kBAAkB,cAAc;EACzC,MAAM,IAAI,UAAU,yDAAyD;CAC/E;CACA,OAAO,KAAK,IAAI,WAAW,KAAK,QAAQ,KAAK,YAAY,KAAK,UAAU,CAAC;CACzE,OAAO;AACT;AACA,SAAS,sBAAsB,QAAQ,SAAS,YAAY;CAC1D,MAAM,WAAW,OAAO;CACxB,IAAI,YAAY,QAAQ,OAAO,SAAS,oBAAoB,cAAc,OAAO,SAAS,eAAe,YAAY;EACnH;CACF;CACA,MAAM,mBAAmB,SAAS,iBAAiB,MAAM,MAAM;CAC/D,MAAM,mBAAmB,OAAO,WAAW;CAC3C,IAAI,YAAY,MAAM;EACpB,OAAO,SAAS;GAAE;GAAiB;EAAW;EAC9C;CACF;CACA,IAAI,OAAO,SAAS,oBAAoB,YAAY;EAClD,SAAS,kBAAkB;CAC7B;CACA,IAAI,OAAO,SAAS,eAAe,YAAY;EAC7C,SAAS,aAAa;CACxB;AACF"}