UNPKG

@langchain/core

Version:
25 lines (24 loc) 863 B
import { unsafeStringify } from "./stringify.js"; import rng from "./rng.js"; //#region src/utils/uuid/v4.ts function v4(options, buf, offset) { if (!buf && !options && crypto.randomUUID) return crypto.randomUUID(); return _v4(options, buf, offset); } function _v4(options, buf, offset) { options = options || {}; const rnds = options.random ?? options.rng?.() ?? rng(); if (rnds.length < 16) throw new Error("Random bytes length must be >= 16"); rnds[6] = rnds[6] & 15 | 64; rnds[8] = rnds[8] & 63 | 128; if (buf) { offset = offset || 0; if (offset < 0 || offset + 16 > buf.length) throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`); for (let i = 0; i < 16; ++i) buf[offset + i] = rnds[i]; return buf; } return unsafeStringify(rnds); } //#endregion export { v4 as default }; //# sourceMappingURL=v4.js.map