@langchain/core
Version:
Core LangChain.js abstractions and schemas
25 lines (24 loc) • 912 B
JavaScript
const require_stringify = require("./stringify.cjs");
const require_rng = require("./rng.cjs");
//#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?.() ?? require_rng.default();
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 require_stringify.unsafeStringify(rnds);
}
//#endregion
exports.default = v4;
//# sourceMappingURL=v4.cjs.map