UNPKG

@langchain/core

Version:
36 lines (35 loc) 1.49 kB
const require_parse = require("./parse.cjs"); const require_stringify = require("./stringify.cjs"); //#region src/utils/uuid/v35.ts function stringToBytes(str) { str = unescape(encodeURIComponent(str)); const bytes = new Uint8Array(str.length); for (let i = 0; i < str.length; ++i) bytes[i] = str.charCodeAt(i); return bytes; } const DNS = "6ba7b810-9dad-11d1-80b4-00c04fd430c8"; const URL = "6ba7b811-9dad-11d1-80b4-00c04fd430c8"; function v35(version, hash, value, namespace, buf, offset) { const valueBytes = typeof value === "string" ? stringToBytes(value) : value; const namespaceBytes = typeof namespace === "string" ? require_parse.default(namespace) : namespace; if (typeof namespace === "string") namespace = require_parse.default(namespace); if (namespace?.length !== 16) throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)"); let bytes = new Uint8Array(16 + valueBytes.length); bytes.set(namespaceBytes); bytes.set(valueBytes, namespaceBytes.length); bytes = hash(bytes); bytes[6] = bytes[6] & 15 | version; bytes[8] = bytes[8] & 63 | 128; if (buf) { 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] = bytes[i]; return buf; } return require_stringify.unsafeStringify(bytes); } //#endregion exports.DNS = DNS; exports.URL = URL; exports.default = v35; //# sourceMappingURL=v35.cjs.map