UNPKG

one

Version:

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

57 lines (55 loc) • 1.74 kB
function namedError(name, message) { const error = new Error(message); error.name = name; return error; } function bufferSourceRange(data, verb) { let buffer; let offset = 0; let length; if (data instanceof ArrayBuffer) { buffer = data; length = data.byteLength; } else if (ArrayBuffer.isView(data) && data.buffer instanceof ArrayBuffer) { buffer = data.buffer; offset = data.byteOffset; length = data.byteLength; } else { throw new TypeError(`${verb}: expected an ArrayBuffer or view.`); } new Uint8Array(buffer, offset, length); return { buffer, offset, length }; } function installDigestPolyfill(source, target = globalThis) { const crypto = target.crypto; if (crypto == null || typeof crypto.subtle?.digest === "function") return; const digest = async (algorithm, data) => { const { buffer, offset, length } = bufferSourceRange(data, "crypto.subtle.digest"); let name; if (algorithm !== null && (typeof algorithm === "object" || typeof algorithm === "function")) { const value = algorithm.name; if (value === void 0) { throw new TypeError("crypto.subtle.digest: algorithm.name is required."); } name = `${value}`; } else { name = `${algorithm}`; } if (!/^sha-(1|256|384|512)$/i.test(name)) { throw namedError("NotSupportedError", `Unsupported digest algorithm: ${name}.`); } try { return await source(name.toUpperCase(), buffer, offset, length); } catch (error) { throw namedError("OperationError", error instanceof Error ? error.message : "Native digest failed."); } }; if (crypto.subtle == null) crypto.subtle = { digest }; else crypto.subtle.digest = digest; } export { bufferSourceRange, installDigestPolyfill }; //# sourceMappingURL=digest.mjs.map