UNPKG

one

Version:

One is a React framework for web, iOS, and Android apps.

1 lines • 4.22 kB
{"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"}