@langchain/core 1.1.40 → 1.1.42
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/dist/callbacks/base.cjs +3 -3
- package/dist/callbacks/base.cjs.map +1 -1
- package/dist/callbacks/base.js +3 -2
- package/dist/callbacks/base.js.map +1 -1
- package/dist/callbacks/manager.cjs +8 -7
- package/dist/callbacks/manager.cjs.map +1 -1
- package/dist/callbacks/manager.js +2 -1
- package/dist/callbacks/manager.js.map +1 -1
- package/dist/indexing/base.cjs +4 -4
- package/dist/indexing/base.cjs.map +1 -1
- package/dist/indexing/base.js +2 -1
- package/dist/indexing/base.js.map +1 -1
- package/dist/language_models/base.cjs +9 -1
- package/dist/language_models/base.cjs.map +1 -1
- package/dist/language_models/base.d.cts +5 -0
- package/dist/language_models/base.d.cts.map +1 -1
- package/dist/language_models/base.d.ts +5 -0
- package/dist/language_models/base.d.ts.map +1 -1
- package/dist/language_models/base.js +9 -1
- package/dist/language_models/base.js.map +1 -1
- package/dist/language_models/chat_models.cjs +18 -6
- package/dist/language_models/chat_models.cjs.map +1 -1
- package/dist/language_models/chat_models.d.cts.map +1 -1
- package/dist/language_models/chat_models.d.ts.map +1 -1
- package/dist/language_models/chat_models.js +18 -6
- package/dist/language_models/chat_models.js.map +1 -1
- package/dist/language_models/llms.cjs +18 -6
- package/dist/language_models/llms.cjs.map +1 -1
- package/dist/language_models/llms.d.cts.map +1 -1
- package/dist/language_models/llms.d.ts.map +1 -1
- package/dist/language_models/llms.js +18 -6
- package/dist/language_models/llms.js.map +1 -1
- package/dist/load/import_map.cjs +2 -0
- package/dist/load/import_map.cjs.map +1 -1
- package/dist/load/import_map.js +2 -0
- package/dist/load/import_map.js.map +1 -1
- package/dist/runnables/base.cjs +3 -2
- package/dist/runnables/base.cjs.map +1 -1
- package/dist/runnables/base.js +2 -1
- package/dist/runnables/base.js.map +1 -1
- package/dist/runnables/graph.cjs +8 -6
- package/dist/runnables/graph.cjs.map +1 -1
- package/dist/runnables/graph.js +3 -1
- package/dist/runnables/graph.js.map +1 -1
- package/dist/tracers/tracer_langchain.cjs +23 -5
- package/dist/tracers/tracer_langchain.cjs.map +1 -1
- package/dist/tracers/tracer_langchain.d.cts +13 -1
- package/dist/tracers/tracer_langchain.d.cts.map +1 -1
- package/dist/tracers/tracer_langchain.d.ts +13 -1
- package/dist/tracers/tracer_langchain.d.ts.map +1 -1
- package/dist/tracers/tracer_langchain.js +23 -6
- package/dist/tracers/tracer_langchain.js.map +1 -1
- package/dist/utils/uuid/index.cjs +44 -0
- package/dist/utils/uuid/index.cjs.map +1 -0
- package/dist/utils/uuid/index.d.cts +12 -0
- package/dist/utils/uuid/index.d.ts +12 -0
- package/dist/utils/uuid/index.js +28 -0
- package/dist/utils/uuid/index.js.map +1 -0
- package/dist/utils/uuid/max.cjs +6 -0
- package/dist/utils/uuid/max.cjs.map +1 -0
- package/dist/utils/uuid/max.d.cts +5 -0
- package/dist/utils/uuid/max.d.cts.map +1 -0
- package/dist/utils/uuid/max.d.ts +5 -0
- package/dist/utils/uuid/max.d.ts.map +1 -0
- package/dist/utils/uuid/max.js +6 -0
- package/dist/utils/uuid/max.js.map +1 -0
- package/dist/utils/uuid/nil.cjs +6 -0
- package/dist/utils/uuid/nil.cjs.map +1 -0
- package/dist/utils/uuid/nil.d.cts +5 -0
- package/dist/utils/uuid/nil.d.cts.map +1 -0
- package/dist/utils/uuid/nil.d.ts +5 -0
- package/dist/utils/uuid/nil.d.ts.map +1 -0
- package/dist/utils/uuid/nil.js +6 -0
- package/dist/utils/uuid/nil.js.map +1 -0
- package/dist/utils/uuid/parse.cjs +11 -0
- package/dist/utils/uuid/parse.cjs.map +1 -0
- package/dist/utils/uuid/parse.d.cts +7 -0
- package/dist/utils/uuid/parse.d.cts.map +1 -0
- package/dist/utils/uuid/parse.d.ts +7 -0
- package/dist/utils/uuid/parse.d.ts.map +1 -0
- package/dist/utils/uuid/parse.js +11 -0
- package/dist/utils/uuid/parse.js.map +1 -0
- package/dist/utils/uuid/regex.cjs +6 -0
- package/dist/utils/uuid/regex.cjs.map +1 -0
- package/dist/utils/uuid/regex.js +6 -0
- package/dist/utils/uuid/regex.js.map +1 -0
- package/dist/utils/uuid/rng.cjs +9 -0
- package/dist/utils/uuid/rng.cjs.map +1 -0
- package/dist/utils/uuid/rng.js +9 -0
- package/dist/utils/uuid/rng.js.map +1 -0
- package/dist/utils/uuid/sha1.cjs +71 -0
- package/dist/utils/uuid/sha1.cjs.map +1 -0
- package/dist/utils/uuid/sha1.js +71 -0
- package/dist/utils/uuid/sha1.js.map +1 -0
- package/dist/utils/uuid/stringify.cjs +21 -0
- package/dist/utils/uuid/stringify.cjs.map +1 -0
- package/dist/utils/uuid/stringify.d.cts +5 -0
- package/dist/utils/uuid/stringify.d.cts.map +1 -0
- package/dist/utils/uuid/stringify.d.ts +5 -0
- package/dist/utils/uuid/stringify.d.ts.map +1 -0
- package/dist/utils/uuid/stringify.js +20 -0
- package/dist/utils/uuid/stringify.js.map +1 -0
- package/dist/utils/uuid/types.d.cts +26 -0
- package/dist/utils/uuid/types.d.cts.map +1 -0
- package/dist/utils/uuid/types.d.ts +26 -0
- package/dist/utils/uuid/types.d.ts.map +1 -0
- package/dist/utils/uuid/v1.cjs +69 -0
- package/dist/utils/uuid/v1.cjs.map +1 -0
- package/dist/utils/uuid/v1.d.cts +8 -0
- package/dist/utils/uuid/v1.d.cts.map +1 -0
- package/dist/utils/uuid/v1.d.ts +8 -0
- package/dist/utils/uuid/v1.d.ts.map +1 -0
- package/dist/utils/uuid/v1.js +69 -0
- package/dist/utils/uuid/v1.js.map +1 -0
- package/dist/utils/uuid/v35.cjs +36 -0
- package/dist/utils/uuid/v35.cjs.map +1 -0
- package/dist/utils/uuid/v35.js +34 -0
- package/dist/utils/uuid/v35.js.map +1 -0
- package/dist/utils/uuid/v4.cjs +25 -0
- package/dist/utils/uuid/v4.cjs.map +1 -0
- package/dist/utils/uuid/v4.d.cts +8 -0
- package/dist/utils/uuid/v4.d.cts.map +1 -0
- package/dist/utils/uuid/v4.d.ts +8 -0
- package/dist/utils/uuid/v4.d.ts.map +1 -0
- package/dist/utils/uuid/v4.js +25 -0
- package/dist/utils/uuid/v4.js.map +1 -0
- package/dist/utils/uuid/v5.cjs +12 -0
- package/dist/utils/uuid/v5.cjs.map +1 -0
- package/dist/utils/uuid/v5.d.cts +14 -0
- package/dist/utils/uuid/v5.d.cts.map +1 -0
- package/dist/utils/uuid/v5.d.ts +14 -0
- package/dist/utils/uuid/v5.d.ts.map +1 -0
- package/dist/utils/uuid/v5.js +12 -0
- package/dist/utils/uuid/v5.js.map +1 -0
- package/dist/utils/uuid/v7.cjs +57 -0
- package/dist/utils/uuid/v7.cjs.map +1 -0
- package/dist/utils/uuid/v7.d.cts +8 -0
- package/dist/utils/uuid/v7.d.cts.map +1 -0
- package/dist/utils/uuid/v7.d.ts +8 -0
- package/dist/utils/uuid/v7.d.ts.map +1 -0
- package/dist/utils/uuid/v7.js +57 -0
- package/dist/utils/uuid/v7.js.map +1 -0
- package/dist/utils/uuid/validate.cjs +9 -0
- package/dist/utils/uuid/validate.cjs.map +1 -0
- package/dist/utils/uuid/validate.d.cts +5 -0
- package/dist/utils/uuid/validate.d.cts.map +1 -0
- package/dist/utils/uuid/validate.d.ts +5 -0
- package/dist/utils/uuid/validate.d.ts.map +1 -0
- package/dist/utils/uuid/validate.js +9 -0
- package/dist/utils/uuid/validate.js.map +1 -0
- package/dist/utils/uuid/version.cjs +10 -0
- package/dist/utils/uuid/version.cjs.map +1 -0
- package/dist/utils/uuid/version.d.cts +5 -0
- package/dist/utils/uuid/version.d.cts.map +1 -0
- package/dist/utils/uuid/version.d.ts +5 -0
- package/dist/utils/uuid/version.d.ts.map +1 -0
- package/dist/utils/uuid/version.js +10 -0
- package/dist/utils/uuid/version.js.map +1 -0
- package/package.json +12 -2
- package/utils/uuid.cjs +1 -0
- package/utils/uuid.d.cts +1 -0
- package/utils/uuid.d.ts +1 -0
- package/utils/uuid.js +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v1.cjs","names":["rng","unsafeStringify"],"sources":["../../../src/utils/uuid/v1.ts"],"sourcesContent":["import rng from \"./rng.js\";\nimport { unsafeStringify } from \"./stringify.js\";\nimport type { UUIDTypes, Version1Options } from \"./types.js\";\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\n\ntype V1State = {\n node?: Uint8Array; // node id (47-bit random)\n clockseq?: number; // sequence number (14-bit)\n\n // v1 & v6 timestamps are a pain to deal with. They specify time from the\n // Gregorian epoch in 100ns intervals, which requires values with 57+ bits of\n // precision. But that's outside the precision of IEEE754 floats (i.e. JS\n // numbers). To work around this, we represent them internally using 'msecs'\n // (milliseconds since unix epoch) and 'nsecs' (100-nanoseconds offset from\n // `msecs`).\n\n msecs?: number; // timestamp (milliseconds, unix epoch)\n nsecs?: number; // timestamp (100-nanoseconds offset from 'msecs')\n};\n\nconst _state: V1State = {};\n\nfunction v1(\n options?: Version1Options,\n buf?: undefined,\n offset?: number\n): string;\nfunction v1<Buf extends Uint8Array = Uint8Array>(\n options: Version1Options | undefined,\n buf: Buf,\n offset?: number\n): Buf;\nfunction v1<TBuf extends Uint8Array = Uint8Array>(\n options?: Version1Options,\n buf?: TBuf,\n offset?: number\n): UUIDTypes<TBuf> {\n let bytes: Uint8Array;\n\n // Extract _v6 flag from options, clearing options if appropriate\n const isV6 = options?._v6 ?? false;\n if (options) {\n const optionsKeys = Object.keys(options);\n if (optionsKeys.length === 1 && optionsKeys[0] === \"_v6\") {\n options = undefined;\n }\n }\n\n if (options) {\n // With options: Make UUID independent of internal state\n bytes = v1Bytes(\n options.random ?? options.rng?.() ?? rng(),\n options.msecs,\n options.nsecs,\n options.clockseq,\n options.node,\n buf,\n offset\n );\n } else {\n // Without options: Make UUID from internal state\n const now = Date.now();\n const rnds = rng();\n\n updateV1State(_state, now, rnds);\n\n // Geenerate UUID. Note that v6 uses random values for `clockseq` and\n // `node`.\n //\n // https://www.rfc-editor.org/rfc/rfc9562.html#section-5.6-4\n bytes = v1Bytes(\n rnds,\n _state.msecs,\n _state.nsecs,\n // v6 UUIDs get random `clockseq` and `node` for every UUID\n // https://www.rfc-editor.org/rfc/rfc9562.html#section-5.6-4\n isV6 ? undefined : _state.clockseq,\n isV6 ? undefined : _state.node,\n buf,\n offset\n );\n }\n\n return buf ?? unsafeStringify(bytes);\n}\n\n// (Private!) Do not use. This method is only exported for testing purposes\n// and may change without notice.\nexport function updateV1State(state: V1State, now: number, rnds: Uint8Array) {\n state.msecs ??= -Infinity;\n state.nsecs ??= 0;\n\n // Update timestamp\n if (now === state.msecs) {\n // Same msec-interval = simulate higher clock resolution by bumping `nsecs`\n // https://www.rfc-editor.org/rfc/rfc9562.html#section-6.1-2.6\n state.nsecs++;\n\n // Check for `nsecs` overflow (nsecs is capped at 10K intervals / msec)\n if (state.nsecs >= 10000) {\n // Prior to uuid@11 this would throw an error, however the RFCs allow for\n // changing the node in this case. This slightly breaks monotonicity at\n // msec granularity, but that's not a significant concern.\n // https://www.rfc-editor.org/rfc/rfc9562.html#section-6.1-2.16\n state.node = undefined;\n state.nsecs = 0;\n }\n } else if (now > state.msecs) {\n // Reset nsec counter when clock advances to a new msec interval\n state.nsecs = 0;\n } else if (now < state.msecs) {\n // Handle clock regression\n // https://www.rfc-editor.org/rfc/rfc9562.html#section-6.1-2.7\n //\n // Note: Unsetting node here causes both it and clockseq to be randomized,\n // below.\n state.node = undefined;\n }\n\n // Init node and clock sequence (do this after timestamp update which may\n // reset the node) https://www.rfc-editor.org/rfc/rfc9562.html#section-5.1-7\n //\n // Note:\n if (!state.node) {\n state.node = rnds.slice(10, 16);\n\n // Set multicast bit\n // https://www.rfc-editor.org/rfc/rfc9562.html#section-6.10-3\n state.node[0] |= 0x01; // Set multicast bit\n\n // Clock sequence must be randomized\n // https://www.rfc-editor.org/rfc/rfc9562.html#section-5.1-8\n state.clockseq = ((rnds[8] << 8) | rnds[9]) & 0x3fff;\n }\n\n state.msecs = now;\n\n return state;\n}\n\nfunction v1Bytes(\n rnds: Uint8Array,\n msecs?: number,\n nsecs?: number,\n clockseq?: number,\n node?: Uint8Array,\n buf?: Uint8Array,\n offset = 0\n) {\n if (rnds.length < 16) {\n throw new Error(\"Random bytes length must be >= 16\");\n }\n\n // Defaults\n if (!buf) {\n buf = new Uint8Array(16);\n offset = 0;\n } else {\n if (offset < 0 || offset + 16 > buf.length) {\n throw new RangeError(\n `UUID byte range ${offset}:${offset + 15} is out of buffer bounds`\n );\n }\n }\n\n msecs ??= Date.now();\n nsecs ??= 0;\n clockseq ??= ((rnds[8] << 8) | rnds[9]) & 0x3fff;\n node ??= rnds.slice(10, 16);\n\n // Offset to Gregorian epoch\n // https://www.rfc-editor.org/rfc/rfc9562.html#section-5.1-1\n msecs += 12219292800000;\n\n // `time_low`\n const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n buf[offset++] = (tl >>> 24) & 0xff;\n buf[offset++] = (tl >>> 16) & 0xff;\n buf[offset++] = (tl >>> 8) & 0xff;\n buf[offset++] = tl & 0xff;\n\n // `time_mid`\n const tmh = ((msecs / 0x100000000) * 10000) & 0xfffffff;\n buf[offset++] = (tmh >>> 8) & 0xff;\n buf[offset++] = tmh & 0xff;\n\n // `time_high_and_version`\n buf[offset++] = ((tmh >>> 24) & 0xf) | 0x10; // include version\n buf[offset++] = (tmh >>> 16) & 0xff;\n\n // `clock_seq_hi_and_reserved` | variant\n buf[offset++] = (clockseq >>> 8) | 0x80;\n\n // `clock_seq_low`\n buf[offset++] = clockseq & 0xff;\n\n // `node`\n for (let n = 0; n < 6; ++n) {\n buf[offset++] = node[n];\n }\n\n return buf;\n}\n\nexport default v1;\n"],"mappings":";;;AAwBA,MAAM,SAAkB,EAAE;AAY1B,SAAS,GACP,SACA,KACA,QACiB;CACjB,IAAI;CAGJ,MAAM,OAAO,SAAS,OAAO;AAC7B,KAAI,SAAS;EACX,MAAM,cAAc,OAAO,KAAK,QAAQ;AACxC,MAAI,YAAY,WAAW,KAAK,YAAY,OAAO,MACjD,WAAU,KAAA;;AAId,KAAI,QAEF,SAAQ,QACN,QAAQ,UAAU,QAAQ,OAAO,IAAIA,YAAAA,SAAK,EAC1C,QAAQ,OACR,QAAQ,OACR,QAAQ,UACR,QAAQ,MACR,KACA,OACD;MACI;EAEL,MAAM,MAAM,KAAK,KAAK;EACtB,MAAM,OAAOA,YAAAA,SAAK;AAElB,gBAAc,QAAQ,KAAK,KAAK;AAMhC,UAAQ,QACN,MACA,OAAO,OACP,OAAO,OAGP,OAAO,KAAA,IAAY,OAAO,UAC1B,OAAO,KAAA,IAAY,OAAO,MAC1B,KACA,OACD;;AAGH,QAAO,OAAOC,kBAAAA,gBAAgB,MAAM;;AAKtC,SAAgB,cAAc,OAAgB,KAAa,MAAkB;AAC3E,OAAM,UAAU;AAChB,OAAM,UAAU;AAGhB,KAAI,QAAQ,MAAM,OAAO;AAGvB,QAAM;AAGN,MAAI,MAAM,SAAS,KAAO;AAKxB,SAAM,OAAO,KAAA;AACb,SAAM,QAAQ;;YAEP,MAAM,MAAM,MAErB,OAAM,QAAQ;UACL,MAAM,MAAM,MAMrB,OAAM,OAAO,KAAA;AAOf,KAAI,CAAC,MAAM,MAAM;AACf,QAAM,OAAO,KAAK,MAAM,IAAI,GAAG;AAI/B,QAAM,KAAK,MAAM;AAIjB,QAAM,YAAa,KAAK,MAAM,IAAK,KAAK,MAAM;;AAGhD,OAAM,QAAQ;AAEd,QAAO;;AAGT,SAAS,QACP,MACA,OACA,OACA,UACA,MACA,KACA,SAAS,GACT;AACA,KAAI,KAAK,SAAS,GAChB,OAAM,IAAI,MAAM,oCAAoC;AAItD,KAAI,CAAC,KAAK;AACR,QAAM,IAAI,WAAW,GAAG;AACxB,WAAS;YAEL,SAAS,KAAK,SAAS,KAAK,IAAI,OAClC,OAAM,IAAI,WACR,mBAAmB,OAAO,GAAG,SAAS,GAAG,0BAC1C;AAIL,WAAU,KAAK,KAAK;AACpB,WAAU;AACV,eAAe,KAAK,MAAM,IAAK,KAAK,MAAM;AAC1C,UAAS,KAAK,MAAM,IAAI,GAAG;AAI3B,UAAS;CAGT,MAAM,OAAO,QAAQ,aAAa,MAAQ,SAAS;AACnD,KAAI,YAAa,OAAO,KAAM;AAC9B,KAAI,YAAa,OAAO,KAAM;AAC9B,KAAI,YAAa,OAAO,IAAK;AAC7B,KAAI,YAAY,KAAK;CAGrB,MAAM,MAAQ,QAAQ,aAAe,MAAS;AAC9C,KAAI,YAAa,QAAQ,IAAK;AAC9B,KAAI,YAAY,MAAM;AAGtB,KAAI,YAAc,QAAQ,KAAM,KAAO;AACvC,KAAI,YAAa,QAAQ,KAAM;AAG/B,KAAI,YAAa,aAAa,IAAK;AAGnC,KAAI,YAAY,WAAW;AAG3B,MAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,EACvB,KAAI,YAAY,KAAK;AAGvB,QAAO"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Version1Options } from "./types.cjs";
|
|
2
|
+
|
|
3
|
+
//#region src/utils/uuid/v1.d.ts
|
|
4
|
+
declare function v1(options?: Version1Options, buf?: undefined, offset?: number): string;
|
|
5
|
+
declare function v1<Buf extends Uint8Array = Uint8Array>(options: Version1Options | undefined, buf: Buf, offset?: number): Buf;
|
|
6
|
+
//#endregion
|
|
7
|
+
export { v1 };
|
|
8
|
+
//# sourceMappingURL=v1.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v1.d.cts","names":[],"sources":["../../../src/utils/uuid/v1.ts"],"mappings":";;;iBA0BS,EAAA,CACP,OAAA,GAAU,eAAA,EACV,GAAA,cACA,MAAA;AAAA,iBAEO,EAAA,aAAe,UAAA,GAAa,UAAA,CAAA,CACnC,OAAA,EAAS,eAAA,cACT,GAAA,EAAK,GAAA,EACL,MAAA,YACC,GAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Version1Options } from "./types.js";
|
|
2
|
+
|
|
3
|
+
//#region src/utils/uuid/v1.d.ts
|
|
4
|
+
declare function v1(options?: Version1Options, buf?: undefined, offset?: number): string;
|
|
5
|
+
declare function v1<Buf extends Uint8Array = Uint8Array>(options: Version1Options | undefined, buf: Buf, offset?: number): Buf;
|
|
6
|
+
//#endregion
|
|
7
|
+
export { v1 };
|
|
8
|
+
//# sourceMappingURL=v1.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v1.d.ts","names":[],"sources":["../../../src/utils/uuid/v1.ts"],"mappings":";;;iBA0BS,EAAA,CACP,OAAA,GAAU,eAAA,EACV,GAAA,cACA,MAAA;AAAA,iBAEO,EAAA,aAAe,UAAA,GAAa,UAAA,CAAA,CACnC,OAAA,EAAS,eAAA,cACT,GAAA,EAAK,GAAA,EACL,MAAA,YACC,GAAA"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { unsafeStringify } from "./stringify.js";
|
|
2
|
+
import rng from "./rng.js";
|
|
3
|
+
//#region src/utils/uuid/v1.ts
|
|
4
|
+
const _state = {};
|
|
5
|
+
function v1(options, buf, offset) {
|
|
6
|
+
let bytes;
|
|
7
|
+
const isV6 = options?._v6 ?? false;
|
|
8
|
+
if (options) {
|
|
9
|
+
const optionsKeys = Object.keys(options);
|
|
10
|
+
if (optionsKeys.length === 1 && optionsKeys[0] === "_v6") options = void 0;
|
|
11
|
+
}
|
|
12
|
+
if (options) bytes = v1Bytes(options.random ?? options.rng?.() ?? rng(), options.msecs, options.nsecs, options.clockseq, options.node, buf, offset);
|
|
13
|
+
else {
|
|
14
|
+
const now = Date.now();
|
|
15
|
+
const rnds = rng();
|
|
16
|
+
updateV1State(_state, now, rnds);
|
|
17
|
+
bytes = v1Bytes(rnds, _state.msecs, _state.nsecs, isV6 ? void 0 : _state.clockseq, isV6 ? void 0 : _state.node, buf, offset);
|
|
18
|
+
}
|
|
19
|
+
return buf ?? unsafeStringify(bytes);
|
|
20
|
+
}
|
|
21
|
+
function updateV1State(state, now, rnds) {
|
|
22
|
+
state.msecs ??= -Infinity;
|
|
23
|
+
state.nsecs ??= 0;
|
|
24
|
+
if (now === state.msecs) {
|
|
25
|
+
state.nsecs++;
|
|
26
|
+
if (state.nsecs >= 1e4) {
|
|
27
|
+
state.node = void 0;
|
|
28
|
+
state.nsecs = 0;
|
|
29
|
+
}
|
|
30
|
+
} else if (now > state.msecs) state.nsecs = 0;
|
|
31
|
+
else if (now < state.msecs) state.node = void 0;
|
|
32
|
+
if (!state.node) {
|
|
33
|
+
state.node = rnds.slice(10, 16);
|
|
34
|
+
state.node[0] |= 1;
|
|
35
|
+
state.clockseq = (rnds[8] << 8 | rnds[9]) & 16383;
|
|
36
|
+
}
|
|
37
|
+
state.msecs = now;
|
|
38
|
+
return state;
|
|
39
|
+
}
|
|
40
|
+
function v1Bytes(rnds, msecs, nsecs, clockseq, node, buf, offset = 0) {
|
|
41
|
+
if (rnds.length < 16) throw new Error("Random bytes length must be >= 16");
|
|
42
|
+
if (!buf) {
|
|
43
|
+
buf = new Uint8Array(16);
|
|
44
|
+
offset = 0;
|
|
45
|
+
} else if (offset < 0 || offset + 16 > buf.length) throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);
|
|
46
|
+
msecs ??= Date.now();
|
|
47
|
+
nsecs ??= 0;
|
|
48
|
+
clockseq ??= (rnds[8] << 8 | rnds[9]) & 16383;
|
|
49
|
+
node ??= rnds.slice(10, 16);
|
|
50
|
+
msecs += 0xb1d069b5400;
|
|
51
|
+
const tl = ((msecs & 268435455) * 1e4 + nsecs) % 4294967296;
|
|
52
|
+
buf[offset++] = tl >>> 24 & 255;
|
|
53
|
+
buf[offset++] = tl >>> 16 & 255;
|
|
54
|
+
buf[offset++] = tl >>> 8 & 255;
|
|
55
|
+
buf[offset++] = tl & 255;
|
|
56
|
+
const tmh = msecs / 4294967296 * 1e4 & 268435455;
|
|
57
|
+
buf[offset++] = tmh >>> 8 & 255;
|
|
58
|
+
buf[offset++] = tmh & 255;
|
|
59
|
+
buf[offset++] = tmh >>> 24 & 15 | 16;
|
|
60
|
+
buf[offset++] = tmh >>> 16 & 255;
|
|
61
|
+
buf[offset++] = clockseq >>> 8 | 128;
|
|
62
|
+
buf[offset++] = clockseq & 255;
|
|
63
|
+
for (let n = 0; n < 6; ++n) buf[offset++] = node[n];
|
|
64
|
+
return buf;
|
|
65
|
+
}
|
|
66
|
+
//#endregion
|
|
67
|
+
export { v1 as default };
|
|
68
|
+
|
|
69
|
+
//# sourceMappingURL=v1.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v1.js","names":[],"sources":["../../../src/utils/uuid/v1.ts"],"sourcesContent":["import rng from \"./rng.js\";\nimport { unsafeStringify } from \"./stringify.js\";\nimport type { UUIDTypes, Version1Options } from \"./types.js\";\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\n\ntype V1State = {\n node?: Uint8Array; // node id (47-bit random)\n clockseq?: number; // sequence number (14-bit)\n\n // v1 & v6 timestamps are a pain to deal with. They specify time from the\n // Gregorian epoch in 100ns intervals, which requires values with 57+ bits of\n // precision. But that's outside the precision of IEEE754 floats (i.e. JS\n // numbers). To work around this, we represent them internally using 'msecs'\n // (milliseconds since unix epoch) and 'nsecs' (100-nanoseconds offset from\n // `msecs`).\n\n msecs?: number; // timestamp (milliseconds, unix epoch)\n nsecs?: number; // timestamp (100-nanoseconds offset from 'msecs')\n};\n\nconst _state: V1State = {};\n\nfunction v1(\n options?: Version1Options,\n buf?: undefined,\n offset?: number\n): string;\nfunction v1<Buf extends Uint8Array = Uint8Array>(\n options: Version1Options | undefined,\n buf: Buf,\n offset?: number\n): Buf;\nfunction v1<TBuf extends Uint8Array = Uint8Array>(\n options?: Version1Options,\n buf?: TBuf,\n offset?: number\n): UUIDTypes<TBuf> {\n let bytes: Uint8Array;\n\n // Extract _v6 flag from options, clearing options if appropriate\n const isV6 = options?._v6 ?? false;\n if (options) {\n const optionsKeys = Object.keys(options);\n if (optionsKeys.length === 1 && optionsKeys[0] === \"_v6\") {\n options = undefined;\n }\n }\n\n if (options) {\n // With options: Make UUID independent of internal state\n bytes = v1Bytes(\n options.random ?? options.rng?.() ?? rng(),\n options.msecs,\n options.nsecs,\n options.clockseq,\n options.node,\n buf,\n offset\n );\n } else {\n // Without options: Make UUID from internal state\n const now = Date.now();\n const rnds = rng();\n\n updateV1State(_state, now, rnds);\n\n // Geenerate UUID. Note that v6 uses random values for `clockseq` and\n // `node`.\n //\n // https://www.rfc-editor.org/rfc/rfc9562.html#section-5.6-4\n bytes = v1Bytes(\n rnds,\n _state.msecs,\n _state.nsecs,\n // v6 UUIDs get random `clockseq` and `node` for every UUID\n // https://www.rfc-editor.org/rfc/rfc9562.html#section-5.6-4\n isV6 ? undefined : _state.clockseq,\n isV6 ? undefined : _state.node,\n buf,\n offset\n );\n }\n\n return buf ?? unsafeStringify(bytes);\n}\n\n// (Private!) Do not use. This method is only exported for testing purposes\n// and may change without notice.\nexport function updateV1State(state: V1State, now: number, rnds: Uint8Array) {\n state.msecs ??= -Infinity;\n state.nsecs ??= 0;\n\n // Update timestamp\n if (now === state.msecs) {\n // Same msec-interval = simulate higher clock resolution by bumping `nsecs`\n // https://www.rfc-editor.org/rfc/rfc9562.html#section-6.1-2.6\n state.nsecs++;\n\n // Check for `nsecs` overflow (nsecs is capped at 10K intervals / msec)\n if (state.nsecs >= 10000) {\n // Prior to uuid@11 this would throw an error, however the RFCs allow for\n // changing the node in this case. This slightly breaks monotonicity at\n // msec granularity, but that's not a significant concern.\n // https://www.rfc-editor.org/rfc/rfc9562.html#section-6.1-2.16\n state.node = undefined;\n state.nsecs = 0;\n }\n } else if (now > state.msecs) {\n // Reset nsec counter when clock advances to a new msec interval\n state.nsecs = 0;\n } else if (now < state.msecs) {\n // Handle clock regression\n // https://www.rfc-editor.org/rfc/rfc9562.html#section-6.1-2.7\n //\n // Note: Unsetting node here causes both it and clockseq to be randomized,\n // below.\n state.node = undefined;\n }\n\n // Init node and clock sequence (do this after timestamp update which may\n // reset the node) https://www.rfc-editor.org/rfc/rfc9562.html#section-5.1-7\n //\n // Note:\n if (!state.node) {\n state.node = rnds.slice(10, 16);\n\n // Set multicast bit\n // https://www.rfc-editor.org/rfc/rfc9562.html#section-6.10-3\n state.node[0] |= 0x01; // Set multicast bit\n\n // Clock sequence must be randomized\n // https://www.rfc-editor.org/rfc/rfc9562.html#section-5.1-8\n state.clockseq = ((rnds[8] << 8) | rnds[9]) & 0x3fff;\n }\n\n state.msecs = now;\n\n return state;\n}\n\nfunction v1Bytes(\n rnds: Uint8Array,\n msecs?: number,\n nsecs?: number,\n clockseq?: number,\n node?: Uint8Array,\n buf?: Uint8Array,\n offset = 0\n) {\n if (rnds.length < 16) {\n throw new Error(\"Random bytes length must be >= 16\");\n }\n\n // Defaults\n if (!buf) {\n buf = new Uint8Array(16);\n offset = 0;\n } else {\n if (offset < 0 || offset + 16 > buf.length) {\n throw new RangeError(\n `UUID byte range ${offset}:${offset + 15} is out of buffer bounds`\n );\n }\n }\n\n msecs ??= Date.now();\n nsecs ??= 0;\n clockseq ??= ((rnds[8] << 8) | rnds[9]) & 0x3fff;\n node ??= rnds.slice(10, 16);\n\n // Offset to Gregorian epoch\n // https://www.rfc-editor.org/rfc/rfc9562.html#section-5.1-1\n msecs += 12219292800000;\n\n // `time_low`\n const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n buf[offset++] = (tl >>> 24) & 0xff;\n buf[offset++] = (tl >>> 16) & 0xff;\n buf[offset++] = (tl >>> 8) & 0xff;\n buf[offset++] = tl & 0xff;\n\n // `time_mid`\n const tmh = ((msecs / 0x100000000) * 10000) & 0xfffffff;\n buf[offset++] = (tmh >>> 8) & 0xff;\n buf[offset++] = tmh & 0xff;\n\n // `time_high_and_version`\n buf[offset++] = ((tmh >>> 24) & 0xf) | 0x10; // include version\n buf[offset++] = (tmh >>> 16) & 0xff;\n\n // `clock_seq_hi_and_reserved` | variant\n buf[offset++] = (clockseq >>> 8) | 0x80;\n\n // `clock_seq_low`\n buf[offset++] = clockseq & 0xff;\n\n // `node`\n for (let n = 0; n < 6; ++n) {\n buf[offset++] = node[n];\n }\n\n return buf;\n}\n\nexport default v1;\n"],"mappings":";;;AAwBA,MAAM,SAAkB,EAAE;AAY1B,SAAS,GACP,SACA,KACA,QACiB;CACjB,IAAI;CAGJ,MAAM,OAAO,SAAS,OAAO;AAC7B,KAAI,SAAS;EACX,MAAM,cAAc,OAAO,KAAK,QAAQ;AACxC,MAAI,YAAY,WAAW,KAAK,YAAY,OAAO,MACjD,WAAU,KAAA;;AAId,KAAI,QAEF,SAAQ,QACN,QAAQ,UAAU,QAAQ,OAAO,IAAI,KAAK,EAC1C,QAAQ,OACR,QAAQ,OACR,QAAQ,UACR,QAAQ,MACR,KACA,OACD;MACI;EAEL,MAAM,MAAM,KAAK,KAAK;EACtB,MAAM,OAAO,KAAK;AAElB,gBAAc,QAAQ,KAAK,KAAK;AAMhC,UAAQ,QACN,MACA,OAAO,OACP,OAAO,OAGP,OAAO,KAAA,IAAY,OAAO,UAC1B,OAAO,KAAA,IAAY,OAAO,MAC1B,KACA,OACD;;AAGH,QAAO,OAAO,gBAAgB,MAAM;;AAKtC,SAAgB,cAAc,OAAgB,KAAa,MAAkB;AAC3E,OAAM,UAAU;AAChB,OAAM,UAAU;AAGhB,KAAI,QAAQ,MAAM,OAAO;AAGvB,QAAM;AAGN,MAAI,MAAM,SAAS,KAAO;AAKxB,SAAM,OAAO,KAAA;AACb,SAAM,QAAQ;;YAEP,MAAM,MAAM,MAErB,OAAM,QAAQ;UACL,MAAM,MAAM,MAMrB,OAAM,OAAO,KAAA;AAOf,KAAI,CAAC,MAAM,MAAM;AACf,QAAM,OAAO,KAAK,MAAM,IAAI,GAAG;AAI/B,QAAM,KAAK,MAAM;AAIjB,QAAM,YAAa,KAAK,MAAM,IAAK,KAAK,MAAM;;AAGhD,OAAM,QAAQ;AAEd,QAAO;;AAGT,SAAS,QACP,MACA,OACA,OACA,UACA,MACA,KACA,SAAS,GACT;AACA,KAAI,KAAK,SAAS,GAChB,OAAM,IAAI,MAAM,oCAAoC;AAItD,KAAI,CAAC,KAAK;AACR,QAAM,IAAI,WAAW,GAAG;AACxB,WAAS;YAEL,SAAS,KAAK,SAAS,KAAK,IAAI,OAClC,OAAM,IAAI,WACR,mBAAmB,OAAO,GAAG,SAAS,GAAG,0BAC1C;AAIL,WAAU,KAAK,KAAK;AACpB,WAAU;AACV,eAAe,KAAK,MAAM,IAAK,KAAK,MAAM;AAC1C,UAAS,KAAK,MAAM,IAAI,GAAG;AAI3B,UAAS;CAGT,MAAM,OAAO,QAAQ,aAAa,MAAQ,SAAS;AACnD,KAAI,YAAa,OAAO,KAAM;AAC9B,KAAI,YAAa,OAAO,KAAM;AAC9B,KAAI,YAAa,OAAO,IAAK;AAC7B,KAAI,YAAY,KAAK;CAGrB,MAAM,MAAQ,QAAQ,aAAe,MAAS;AAC9C,KAAI,YAAa,QAAQ,IAAK;AAC9B,KAAI,YAAY,MAAM;AAGtB,KAAI,YAAc,QAAQ,KAAM,KAAO;AACvC,KAAI,YAAa,QAAQ,KAAM;AAG/B,KAAI,YAAa,aAAa,IAAK;AAGnC,KAAI,YAAY,WAAW;AAG3B,MAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,EACvB,KAAI,YAAY,KAAK;AAGvB,QAAO"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
const require_parse = require("./parse.cjs");
|
|
2
|
+
const require_stringify = require("./stringify.cjs");
|
|
3
|
+
//#region src/utils/uuid/v35.ts
|
|
4
|
+
function stringToBytes(str) {
|
|
5
|
+
str = unescape(encodeURIComponent(str));
|
|
6
|
+
const bytes = new Uint8Array(str.length);
|
|
7
|
+
for (let i = 0; i < str.length; ++i) bytes[i] = str.charCodeAt(i);
|
|
8
|
+
return bytes;
|
|
9
|
+
}
|
|
10
|
+
const DNS = "6ba7b810-9dad-11d1-80b4-00c04fd430c8";
|
|
11
|
+
const URL = "6ba7b811-9dad-11d1-80b4-00c04fd430c8";
|
|
12
|
+
function v35(version, hash, value, namespace, buf, offset) {
|
|
13
|
+
const valueBytes = typeof value === "string" ? stringToBytes(value) : value;
|
|
14
|
+
const namespaceBytes = typeof namespace === "string" ? require_parse.default(namespace) : namespace;
|
|
15
|
+
if (typeof namespace === "string") namespace = require_parse.default(namespace);
|
|
16
|
+
if (namespace?.length !== 16) throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");
|
|
17
|
+
let bytes = new Uint8Array(16 + valueBytes.length);
|
|
18
|
+
bytes.set(namespaceBytes);
|
|
19
|
+
bytes.set(valueBytes, namespaceBytes.length);
|
|
20
|
+
bytes = hash(bytes);
|
|
21
|
+
bytes[6] = bytes[6] & 15 | version;
|
|
22
|
+
bytes[8] = bytes[8] & 63 | 128;
|
|
23
|
+
if (buf) {
|
|
24
|
+
offset ??= 0;
|
|
25
|
+
if (offset < 0 || offset + 16 > buf.length) throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);
|
|
26
|
+
for (let i = 0; i < 16; ++i) buf[offset + i] = bytes[i];
|
|
27
|
+
return buf;
|
|
28
|
+
}
|
|
29
|
+
return require_stringify.unsafeStringify(bytes);
|
|
30
|
+
}
|
|
31
|
+
//#endregion
|
|
32
|
+
exports.DNS = DNS;
|
|
33
|
+
exports.URL = URL;
|
|
34
|
+
exports.default = v35;
|
|
35
|
+
|
|
36
|
+
//# sourceMappingURL=v35.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v35.cjs","names":["parse","unsafeStringify"],"sources":["../../../src/utils/uuid/v35.ts"],"sourcesContent":["import parse from \"./parse.js\";\nimport { unsafeStringify } from \"./stringify.js\";\nimport type { UUIDTypes } from \"./types.js\";\n\nexport function stringToBytes(str: string) {\n // TODO: Use TextEncoder (see https://stackoverflow.com/a/48762658/109538)\n str = unescape(encodeURIComponent(str));\n\n const bytes = new Uint8Array(str.length);\n\n for (let i = 0; i < str.length; ++i) {\n bytes[i] = str.charCodeAt(i);\n }\n\n return bytes;\n}\n\nexport const DNS = \"6ba7b810-9dad-11d1-80b4-00c04fd430c8\";\nexport const URL = \"6ba7b811-9dad-11d1-80b4-00c04fd430c8\";\n\ntype HashFunction = (bytes: Uint8Array) => Uint8Array;\n\nexport default function v35<TBuf extends Uint8Array = Uint8Array>(\n version: 0x30 | 0x50,\n hash: HashFunction,\n value: string | Uint8Array,\n namespace: UUIDTypes,\n buf?: TBuf,\n offset?: number\n): UUIDTypes<TBuf> {\n const valueBytes: Uint8Array =\n typeof value === \"string\" ? stringToBytes(value) : value;\n const namespaceBytes: Uint8Array =\n typeof namespace === \"string\" ? parse(namespace) : namespace;\n\n if (typeof namespace === \"string\") {\n namespace = parse(namespace);\n }\n\n if (namespace?.length !== 16) {\n throw TypeError(\n \"Namespace must be array-like (16 iterable integer values, 0-255)\"\n );\n }\n\n // Compute hash of namespace and value, Per 4.3\n // Future: Use spread syntax when supported on all platforms, e.g. `bytes =\n // hashfunc([...namespace, ... value])`\n let bytes = new Uint8Array(16 + valueBytes.length);\n bytes.set(namespaceBytes);\n bytes.set(valueBytes, namespaceBytes.length);\n bytes = hash(bytes);\n\n bytes[6] = (bytes[6] & 0x0f) | version;\n bytes[8] = (bytes[8] & 0x3f) | 0x80;\n\n if (buf) {\n offset ??= 0;\n if (offset < 0 || offset + 16 > buf.length) {\n throw new RangeError(\n `UUID byte range ${offset}:${offset + 15} is out of buffer bounds`\n );\n }\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = bytes[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(bytes);\n}\n"],"mappings":";;;AAIA,SAAgB,cAAc,KAAa;AAEzC,OAAM,SAAS,mBAAmB,IAAI,CAAC;CAEvC,MAAM,QAAQ,IAAI,WAAW,IAAI,OAAO;AAExC,MAAK,IAAI,IAAI,GAAG,IAAI,IAAI,QAAQ,EAAE,EAChC,OAAM,KAAK,IAAI,WAAW,EAAE;AAG9B,QAAO;;AAGT,MAAa,MAAM;AACnB,MAAa,MAAM;AAInB,SAAwB,IACtB,SACA,MACA,OACA,WACA,KACA,QACiB;CACjB,MAAM,aACJ,OAAO,UAAU,WAAW,cAAc,MAAM,GAAG;CACrD,MAAM,iBACJ,OAAO,cAAc,WAAWA,cAAAA,QAAM,UAAU,GAAG;AAErD,KAAI,OAAO,cAAc,SACvB,aAAYA,cAAAA,QAAM,UAAU;AAG9B,KAAI,WAAW,WAAW,GACxB,OAAM,UACJ,mEACD;CAMH,IAAI,QAAQ,IAAI,WAAW,KAAK,WAAW,OAAO;AAClD,OAAM,IAAI,eAAe;AACzB,OAAM,IAAI,YAAY,eAAe,OAAO;AAC5C,SAAQ,KAAK,MAAM;AAEnB,OAAM,KAAM,MAAM,KAAK,KAAQ;AAC/B,OAAM,KAAM,MAAM,KAAK,KAAQ;AAE/B,KAAI,KAAK;AACP,aAAW;AACX,MAAI,SAAS,KAAK,SAAS,KAAK,IAAI,OAClC,OAAM,IAAI,WACR,mBAAmB,OAAO,GAAG,SAAS,GAAG,0BAC1C;AAGH,OAAK,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,EACxB,KAAI,SAAS,KAAK,MAAM;AAG1B,SAAO;;AAGT,QAAOC,kBAAAA,gBAAgB,MAAM"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import parse from "./parse.js";
|
|
2
|
+
import { unsafeStringify } from "./stringify.js";
|
|
3
|
+
//#region src/utils/uuid/v35.ts
|
|
4
|
+
function stringToBytes(str) {
|
|
5
|
+
str = unescape(encodeURIComponent(str));
|
|
6
|
+
const bytes = new Uint8Array(str.length);
|
|
7
|
+
for (let i = 0; i < str.length; ++i) bytes[i] = str.charCodeAt(i);
|
|
8
|
+
return bytes;
|
|
9
|
+
}
|
|
10
|
+
const DNS = "6ba7b810-9dad-11d1-80b4-00c04fd430c8";
|
|
11
|
+
const URL = "6ba7b811-9dad-11d1-80b4-00c04fd430c8";
|
|
12
|
+
function v35(version, hash, value, namespace, buf, offset) {
|
|
13
|
+
const valueBytes = typeof value === "string" ? stringToBytes(value) : value;
|
|
14
|
+
const namespaceBytes = typeof namespace === "string" ? parse(namespace) : namespace;
|
|
15
|
+
if (typeof namespace === "string") namespace = parse(namespace);
|
|
16
|
+
if (namespace?.length !== 16) throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");
|
|
17
|
+
let bytes = new Uint8Array(16 + valueBytes.length);
|
|
18
|
+
bytes.set(namespaceBytes);
|
|
19
|
+
bytes.set(valueBytes, namespaceBytes.length);
|
|
20
|
+
bytes = hash(bytes);
|
|
21
|
+
bytes[6] = bytes[6] & 15 | version;
|
|
22
|
+
bytes[8] = bytes[8] & 63 | 128;
|
|
23
|
+
if (buf) {
|
|
24
|
+
offset ??= 0;
|
|
25
|
+
if (offset < 0 || offset + 16 > buf.length) throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);
|
|
26
|
+
for (let i = 0; i < 16; ++i) buf[offset + i] = bytes[i];
|
|
27
|
+
return buf;
|
|
28
|
+
}
|
|
29
|
+
return unsafeStringify(bytes);
|
|
30
|
+
}
|
|
31
|
+
//#endregion
|
|
32
|
+
export { DNS, URL, v35 as default };
|
|
33
|
+
|
|
34
|
+
//# sourceMappingURL=v35.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v35.js","names":[],"sources":["../../../src/utils/uuid/v35.ts"],"sourcesContent":["import parse from \"./parse.js\";\nimport { unsafeStringify } from \"./stringify.js\";\nimport type { UUIDTypes } from \"./types.js\";\n\nexport function stringToBytes(str: string) {\n // TODO: Use TextEncoder (see https://stackoverflow.com/a/48762658/109538)\n str = unescape(encodeURIComponent(str));\n\n const bytes = new Uint8Array(str.length);\n\n for (let i = 0; i < str.length; ++i) {\n bytes[i] = str.charCodeAt(i);\n }\n\n return bytes;\n}\n\nexport const DNS = \"6ba7b810-9dad-11d1-80b4-00c04fd430c8\";\nexport const URL = \"6ba7b811-9dad-11d1-80b4-00c04fd430c8\";\n\ntype HashFunction = (bytes: Uint8Array) => Uint8Array;\n\nexport default function v35<TBuf extends Uint8Array = Uint8Array>(\n version: 0x30 | 0x50,\n hash: HashFunction,\n value: string | Uint8Array,\n namespace: UUIDTypes,\n buf?: TBuf,\n offset?: number\n): UUIDTypes<TBuf> {\n const valueBytes: Uint8Array =\n typeof value === \"string\" ? stringToBytes(value) : value;\n const namespaceBytes: Uint8Array =\n typeof namespace === \"string\" ? parse(namespace) : namespace;\n\n if (typeof namespace === \"string\") {\n namespace = parse(namespace);\n }\n\n if (namespace?.length !== 16) {\n throw TypeError(\n \"Namespace must be array-like (16 iterable integer values, 0-255)\"\n );\n }\n\n // Compute hash of namespace and value, Per 4.3\n // Future: Use spread syntax when supported on all platforms, e.g. `bytes =\n // hashfunc([...namespace, ... value])`\n let bytes = new Uint8Array(16 + valueBytes.length);\n bytes.set(namespaceBytes);\n bytes.set(valueBytes, namespaceBytes.length);\n bytes = hash(bytes);\n\n bytes[6] = (bytes[6] & 0x0f) | version;\n bytes[8] = (bytes[8] & 0x3f) | 0x80;\n\n if (buf) {\n offset ??= 0;\n if (offset < 0 || offset + 16 > buf.length) {\n throw new RangeError(\n `UUID byte range ${offset}:${offset + 15} is out of buffer bounds`\n );\n }\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = bytes[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(bytes);\n}\n"],"mappings":";;;AAIA,SAAgB,cAAc,KAAa;AAEzC,OAAM,SAAS,mBAAmB,IAAI,CAAC;CAEvC,MAAM,QAAQ,IAAI,WAAW,IAAI,OAAO;AAExC,MAAK,IAAI,IAAI,GAAG,IAAI,IAAI,QAAQ,EAAE,EAChC,OAAM,KAAK,IAAI,WAAW,EAAE;AAG9B,QAAO;;AAGT,MAAa,MAAM;AACnB,MAAa,MAAM;AAInB,SAAwB,IACtB,SACA,MACA,OACA,WACA,KACA,QACiB;CACjB,MAAM,aACJ,OAAO,UAAU,WAAW,cAAc,MAAM,GAAG;CACrD,MAAM,iBACJ,OAAO,cAAc,WAAW,MAAM,UAAU,GAAG;AAErD,KAAI,OAAO,cAAc,SACvB,aAAY,MAAM,UAAU;AAG9B,KAAI,WAAW,WAAW,GACxB,OAAM,UACJ,mEACD;CAMH,IAAI,QAAQ,IAAI,WAAW,KAAK,WAAW,OAAO;AAClD,OAAM,IAAI,eAAe;AACzB,OAAM,IAAI,YAAY,eAAe,OAAO;AAC5C,SAAQ,KAAK,MAAM;AAEnB,OAAM,KAAM,MAAM,KAAK,KAAQ;AAC/B,OAAM,KAAM,MAAM,KAAK,KAAQ;AAE/B,KAAI,KAAK;AACP,aAAW;AACX,MAAI,SAAS,KAAK,SAAS,KAAK,IAAI,OAClC,OAAM,IAAI,WACR,mBAAmB,OAAO,GAAG,SAAS,GAAG,0BAC1C;AAGH,OAAK,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,EACxB,KAAI,SAAS,KAAK,MAAM;AAG1B,SAAO;;AAGT,QAAO,gBAAgB,MAAM"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
const require_stringify = require("./stringify.cjs");
|
|
2
|
+
const require_rng = require("./rng.cjs");
|
|
3
|
+
//#region src/utils/uuid/v4.ts
|
|
4
|
+
function v4(options, buf, offset) {
|
|
5
|
+
if (!buf && !options && crypto.randomUUID) return crypto.randomUUID();
|
|
6
|
+
return _v4(options, buf, offset);
|
|
7
|
+
}
|
|
8
|
+
function _v4(options, buf, offset) {
|
|
9
|
+
options = options || {};
|
|
10
|
+
const rnds = options.random ?? options.rng?.() ?? require_rng.default();
|
|
11
|
+
if (rnds.length < 16) throw new Error("Random bytes length must be >= 16");
|
|
12
|
+
rnds[6] = rnds[6] & 15 | 64;
|
|
13
|
+
rnds[8] = rnds[8] & 63 | 128;
|
|
14
|
+
if (buf) {
|
|
15
|
+
offset = offset || 0;
|
|
16
|
+
if (offset < 0 || offset + 16 > buf.length) throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);
|
|
17
|
+
for (let i = 0; i < 16; ++i) buf[offset + i] = rnds[i];
|
|
18
|
+
return buf;
|
|
19
|
+
}
|
|
20
|
+
return require_stringify.unsafeStringify(rnds);
|
|
21
|
+
}
|
|
22
|
+
//#endregion
|
|
23
|
+
exports.default = v4;
|
|
24
|
+
|
|
25
|
+
//# sourceMappingURL=v4.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v4.cjs","names":["rng","unsafeStringify"],"sources":["../../../src/utils/uuid/v4.ts"],"sourcesContent":["import rng from \"./rng.js\";\nimport { unsafeStringify } from \"./stringify.js\";\nimport type { UUIDTypes, Version4Options } from \"./types.js\";\n\nfunction v4(\n options?: Version4Options,\n buf?: undefined,\n offset?: number\n): string;\nfunction v4<TBuf extends Uint8Array = Uint8Array>(\n options: Version4Options | undefined,\n buf: TBuf,\n offset?: number\n): TBuf;\nfunction v4<TBuf extends Uint8Array = Uint8Array>(\n options?: Version4Options,\n buf?: TBuf,\n offset?: number\n): UUIDTypes<TBuf> {\n if (!buf && !options && crypto.randomUUID) {\n return crypto.randomUUID();\n }\n\n // Putting tail-code that could just go inline here in a separate function to\n // enable compiler optimizations that dramatically improve performance.\n //\n // REF: https://github.com/uuidjs/uuid/issues/892\n return _v4(options, buf, offset);\n}\n\nfunction _v4<TBuf extends Uint8Array = Uint8Array>(\n options?: Version4Options,\n buf?: TBuf,\n offset?: number\n): UUIDTypes<TBuf> {\n options = options || {};\n\n const rnds = options.random ?? options.rng?.() ?? rng();\n if (rnds.length < 16) {\n throw new Error(\"Random bytes length must be >= 16\");\n }\n\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n\n // Copy bytes to buffer, if provided\n if (buf) {\n offset = offset || 0;\n if (offset < 0 || offset + 16 > buf.length) {\n throw new RangeError(\n `UUID byte range ${offset}:${offset + 15} is out of buffer bounds`\n );\n }\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(rnds);\n}\nexport default v4;\n"],"mappings":";;;AAcA,SAAS,GACP,SACA,KACA,QACiB;AACjB,KAAI,CAAC,OAAO,CAAC,WAAW,OAAO,WAC7B,QAAO,OAAO,YAAY;AAO5B,QAAO,IAAI,SAAS,KAAK,OAAO;;AAGlC,SAAS,IACP,SACA,KACA,QACiB;AACjB,WAAU,WAAW,EAAE;CAEvB,MAAM,OAAO,QAAQ,UAAU,QAAQ,OAAO,IAAIA,YAAAA,SAAK;AACvD,KAAI,KAAK,SAAS,GAChB,OAAM,IAAI,MAAM,oCAAoC;AAItD,MAAK,KAAM,KAAK,KAAK,KAAQ;AAC7B,MAAK,KAAM,KAAK,KAAK,KAAQ;AAG7B,KAAI,KAAK;AACP,WAAS,UAAU;AACnB,MAAI,SAAS,KAAK,SAAS,KAAK,IAAI,OAClC,OAAM,IAAI,WACR,mBAAmB,OAAO,GAAG,SAAS,GAAG,0BAC1C;AAGH,OAAK,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,EACxB,KAAI,SAAS,KAAK,KAAK;AAGzB,SAAO;;AAGT,QAAOC,kBAAAA,gBAAgB,KAAK"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Version4Options } from "./types.cjs";
|
|
2
|
+
|
|
3
|
+
//#region src/utils/uuid/v4.d.ts
|
|
4
|
+
declare function v4(options?: Version4Options, buf?: undefined, offset?: number): string;
|
|
5
|
+
declare function v4<TBuf extends Uint8Array = Uint8Array>(options: Version4Options | undefined, buf: TBuf, offset?: number): TBuf;
|
|
6
|
+
//#endregion
|
|
7
|
+
export { v4 };
|
|
8
|
+
//# sourceMappingURL=v4.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v4.d.cts","names":[],"sources":["../../../src/utils/uuid/v4.ts"],"mappings":";;;iBAIS,EAAA,CACP,OAAA,GAAU,eAAA,EACV,GAAA,cACA,MAAA;AAAA,iBAEO,EAAA,cAAgB,UAAA,GAAa,UAAA,CAAA,CACpC,OAAA,EAAS,eAAA,cACT,GAAA,EAAK,IAAA,EACL,MAAA,YACC,IAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Version4Options } from "./types.js";
|
|
2
|
+
|
|
3
|
+
//#region src/utils/uuid/v4.d.ts
|
|
4
|
+
declare function v4(options?: Version4Options, buf?: undefined, offset?: number): string;
|
|
5
|
+
declare function v4<TBuf extends Uint8Array = Uint8Array>(options: Version4Options | undefined, buf: TBuf, offset?: number): TBuf;
|
|
6
|
+
//#endregion
|
|
7
|
+
export { v4 };
|
|
8
|
+
//# sourceMappingURL=v4.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v4.d.ts","names":[],"sources":["../../../src/utils/uuid/v4.ts"],"mappings":";;;iBAIS,EAAA,CACP,OAAA,GAAU,eAAA,EACV,GAAA,cACA,MAAA;AAAA,iBAEO,EAAA,cAAgB,UAAA,GAAa,UAAA,CAAA,CACpC,OAAA,EAAS,eAAA,cACT,GAAA,EAAK,IAAA,EACL,MAAA,YACC,IAAA"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { unsafeStringify } from "./stringify.js";
|
|
2
|
+
import rng from "./rng.js";
|
|
3
|
+
//#region src/utils/uuid/v4.ts
|
|
4
|
+
function v4(options, buf, offset) {
|
|
5
|
+
if (!buf && !options && crypto.randomUUID) return crypto.randomUUID();
|
|
6
|
+
return _v4(options, buf, offset);
|
|
7
|
+
}
|
|
8
|
+
function _v4(options, buf, offset) {
|
|
9
|
+
options = options || {};
|
|
10
|
+
const rnds = options.random ?? options.rng?.() ?? rng();
|
|
11
|
+
if (rnds.length < 16) throw new Error("Random bytes length must be >= 16");
|
|
12
|
+
rnds[6] = rnds[6] & 15 | 64;
|
|
13
|
+
rnds[8] = rnds[8] & 63 | 128;
|
|
14
|
+
if (buf) {
|
|
15
|
+
offset = offset || 0;
|
|
16
|
+
if (offset < 0 || offset + 16 > buf.length) throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);
|
|
17
|
+
for (let i = 0; i < 16; ++i) buf[offset + i] = rnds[i];
|
|
18
|
+
return buf;
|
|
19
|
+
}
|
|
20
|
+
return unsafeStringify(rnds);
|
|
21
|
+
}
|
|
22
|
+
//#endregion
|
|
23
|
+
export { v4 as default };
|
|
24
|
+
|
|
25
|
+
//# sourceMappingURL=v4.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v4.js","names":[],"sources":["../../../src/utils/uuid/v4.ts"],"sourcesContent":["import rng from \"./rng.js\";\nimport { unsafeStringify } from \"./stringify.js\";\nimport type { UUIDTypes, Version4Options } from \"./types.js\";\n\nfunction v4(\n options?: Version4Options,\n buf?: undefined,\n offset?: number\n): string;\nfunction v4<TBuf extends Uint8Array = Uint8Array>(\n options: Version4Options | undefined,\n buf: TBuf,\n offset?: number\n): TBuf;\nfunction v4<TBuf extends Uint8Array = Uint8Array>(\n options?: Version4Options,\n buf?: TBuf,\n offset?: number\n): UUIDTypes<TBuf> {\n if (!buf && !options && crypto.randomUUID) {\n return crypto.randomUUID();\n }\n\n // Putting tail-code that could just go inline here in a separate function to\n // enable compiler optimizations that dramatically improve performance.\n //\n // REF: https://github.com/uuidjs/uuid/issues/892\n return _v4(options, buf, offset);\n}\n\nfunction _v4<TBuf extends Uint8Array = Uint8Array>(\n options?: Version4Options,\n buf?: TBuf,\n offset?: number\n): UUIDTypes<TBuf> {\n options = options || {};\n\n const rnds = options.random ?? options.rng?.() ?? rng();\n if (rnds.length < 16) {\n throw new Error(\"Random bytes length must be >= 16\");\n }\n\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n\n // Copy bytes to buffer, if provided\n if (buf) {\n offset = offset || 0;\n if (offset < 0 || offset + 16 > buf.length) {\n throw new RangeError(\n `UUID byte range ${offset}:${offset + 15} is out of buffer bounds`\n );\n }\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(rnds);\n}\nexport default v4;\n"],"mappings":";;;AAcA,SAAS,GACP,SACA,KACA,QACiB;AACjB,KAAI,CAAC,OAAO,CAAC,WAAW,OAAO,WAC7B,QAAO,OAAO,YAAY;AAO5B,QAAO,IAAI,SAAS,KAAK,OAAO;;AAGlC,SAAS,IACP,SACA,KACA,QACiB;AACjB,WAAU,WAAW,EAAE;CAEvB,MAAM,OAAO,QAAQ,UAAU,QAAQ,OAAO,IAAI,KAAK;AACvD,KAAI,KAAK,SAAS,GAChB,OAAM,IAAI,MAAM,oCAAoC;AAItD,MAAK,KAAM,KAAK,KAAK,KAAQ;AAC7B,MAAK,KAAM,KAAK,KAAK,KAAQ;AAG7B,KAAI,KAAK;AACP,WAAS,UAAU;AACnB,MAAI,SAAS,KAAK,SAAS,KAAK,IAAI,OAClC,OAAM,IAAI,WACR,mBAAmB,OAAO,GAAG,SAAS,GAAG,0BAC1C;AAGH,OAAK,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,EACxB,KAAI,SAAS,KAAK,KAAK;AAGzB,SAAO;;AAGT,QAAO,gBAAgB,KAAK"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
const require_sha1 = require("./sha1.cjs");
|
|
2
|
+
const require_v35 = require("./v35.cjs");
|
|
3
|
+
//#region src/utils/uuid/v5.ts
|
|
4
|
+
function v5(value, namespace, buf, offset) {
|
|
5
|
+
return require_v35.default(80, require_sha1.default, value, namespace, buf, offset);
|
|
6
|
+
}
|
|
7
|
+
v5.DNS = require_v35.DNS;
|
|
8
|
+
v5.URL = require_v35.URL;
|
|
9
|
+
//#endregion
|
|
10
|
+
exports.default = v5;
|
|
11
|
+
|
|
12
|
+
//# sourceMappingURL=v5.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v5.cjs","names":["v35","sha1","DNS","URL"],"sources":["../../../src/utils/uuid/v5.ts"],"sourcesContent":["import sha1 from \"./sha1.js\";\nimport type { UUIDTypes } from \"./types.js\";\nimport v35, { DNS, URL } from \"./v35.js\";\n\nexport { DNS, URL } from \"./v35.js\";\n\nfunction v5(\n value: string | Uint8Array,\n namespace: UUIDTypes,\n buf?: undefined,\n offset?: number\n): string;\nfunction v5<TBuf extends Uint8Array = Uint8Array>(\n value: string | Uint8Array,\n namespace: UUIDTypes,\n buf: TBuf,\n offset?: number\n): TBuf;\nfunction v5<TBuf extends Uint8Array = Uint8Array>(\n value: string | Uint8Array,\n namespace: UUIDTypes,\n buf?: TBuf,\n offset?: number\n): UUIDTypes<TBuf> {\n return v35(0x50, sha1, value, namespace, buf, offset);\n}\n\nv5.DNS = DNS;\nv5.URL = URL;\n\nexport default v5;\n"],"mappings":";;;AAkBA,SAAS,GACP,OACA,WACA,KACA,QACiB;AACjB,QAAOA,YAAAA,QAAI,IAAMC,aAAAA,SAAM,OAAO,WAAW,KAAK,OAAO;;AAGvD,GAAG,MAAMC,YAAAA;AACT,GAAG,MAAMC,YAAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { UUIDTypes } from "./types.cjs";
|
|
2
|
+
|
|
3
|
+
//#region src/utils/uuid/v5.d.ts
|
|
4
|
+
declare function v5(value: string | Uint8Array, namespace: UUIDTypes, buf?: undefined, offset?: number): string;
|
|
5
|
+
declare function v5<TBuf extends Uint8Array = Uint8Array>(value: string | Uint8Array, namespace: UUIDTypes, buf: TBuf, offset?: number): TBuf;
|
|
6
|
+
declare namespace v5 {
|
|
7
|
+
var DNS: string;
|
|
8
|
+
}
|
|
9
|
+
declare namespace v5 {
|
|
10
|
+
var URL: string;
|
|
11
|
+
}
|
|
12
|
+
//#endregion
|
|
13
|
+
export { v5 };
|
|
14
|
+
//# sourceMappingURL=v5.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v5.d.cts","names":[],"sources":["../../../src/utils/uuid/v5.ts"],"mappings":";;;iBAMS,EAAA,CACP,KAAA,WAAgB,UAAA,EAChB,SAAA,EAAW,SAAA,EACX,GAAA,cACA,MAAA;AAAA,iBAEO,EAAA,cAAgB,UAAA,GAAa,UAAA,CAAA,CACpC,KAAA,WAAgB,UAAA,EAChB,SAAA,EAAW,SAAA,EACX,GAAA,EAAK,IAAA,EACL,MAAA,YACC,IAAA;AAAA,kBAAI,EAAA;EAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { UUIDTypes } from "./types.js";
|
|
2
|
+
|
|
3
|
+
//#region src/utils/uuid/v5.d.ts
|
|
4
|
+
declare function v5(value: string | Uint8Array, namespace: UUIDTypes, buf?: undefined, offset?: number): string;
|
|
5
|
+
declare function v5<TBuf extends Uint8Array = Uint8Array>(value: string | Uint8Array, namespace: UUIDTypes, buf: TBuf, offset?: number): TBuf;
|
|
6
|
+
declare namespace v5 {
|
|
7
|
+
var DNS: string;
|
|
8
|
+
}
|
|
9
|
+
declare namespace v5 {
|
|
10
|
+
var URL: string;
|
|
11
|
+
}
|
|
12
|
+
//#endregion
|
|
13
|
+
export { v5 };
|
|
14
|
+
//# sourceMappingURL=v5.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v5.d.ts","names":[],"sources":["../../../src/utils/uuid/v5.ts"],"mappings":";;;iBAMS,EAAA,CACP,KAAA,WAAgB,UAAA,EAChB,SAAA,EAAW,SAAA,EACX,GAAA,cACA,MAAA;AAAA,iBAEO,EAAA,cAAgB,UAAA,GAAa,UAAA,CAAA,CACpC,KAAA,WAAgB,UAAA,EAChB,SAAA,EAAW,SAAA,EACX,GAAA,EAAK,IAAA,EACL,MAAA,YACC,IAAA;AAAA,kBAAI,EAAA;EAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import sha1 from "./sha1.js";
|
|
2
|
+
import v35, { DNS, URL } from "./v35.js";
|
|
3
|
+
//#region src/utils/uuid/v5.ts
|
|
4
|
+
function v5(value, namespace, buf, offset) {
|
|
5
|
+
return v35(80, sha1, value, namespace, buf, offset);
|
|
6
|
+
}
|
|
7
|
+
v5.DNS = DNS;
|
|
8
|
+
v5.URL = URL;
|
|
9
|
+
//#endregion
|
|
10
|
+
export { v5 as default };
|
|
11
|
+
|
|
12
|
+
//# sourceMappingURL=v5.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v5.js","names":[],"sources":["../../../src/utils/uuid/v5.ts"],"sourcesContent":["import sha1 from \"./sha1.js\";\nimport type { UUIDTypes } from \"./types.js\";\nimport v35, { DNS, URL } from \"./v35.js\";\n\nexport { DNS, URL } from \"./v35.js\";\n\nfunction v5(\n value: string | Uint8Array,\n namespace: UUIDTypes,\n buf?: undefined,\n offset?: number\n): string;\nfunction v5<TBuf extends Uint8Array = Uint8Array>(\n value: string | Uint8Array,\n namespace: UUIDTypes,\n buf: TBuf,\n offset?: number\n): TBuf;\nfunction v5<TBuf extends Uint8Array = Uint8Array>(\n value: string | Uint8Array,\n namespace: UUIDTypes,\n buf?: TBuf,\n offset?: number\n): UUIDTypes<TBuf> {\n return v35(0x50, sha1, value, namespace, buf, offset);\n}\n\nv5.DNS = DNS;\nv5.URL = URL;\n\nexport default v5;\n"],"mappings":";;;AAkBA,SAAS,GACP,OACA,WACA,KACA,QACiB;AACjB,QAAO,IAAI,IAAM,MAAM,OAAO,WAAW,KAAK,OAAO;;AAGvD,GAAG,MAAM;AACT,GAAG,MAAM"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
const require_stringify = require("./stringify.cjs");
|
|
2
|
+
const require_rng = require("./rng.cjs");
|
|
3
|
+
//#region src/utils/uuid/v7.ts
|
|
4
|
+
const _state = {};
|
|
5
|
+
function v7(options, buf, offset) {
|
|
6
|
+
let bytes;
|
|
7
|
+
if (options) bytes = v7Bytes(options.random ?? options.rng?.() ?? require_rng.default(), options.msecs, options.seq, buf, offset);
|
|
8
|
+
else {
|
|
9
|
+
const now = Date.now();
|
|
10
|
+
const rnds = require_rng.default();
|
|
11
|
+
updateV7State(_state, now, rnds);
|
|
12
|
+
bytes = v7Bytes(rnds, _state.msecs, _state.seq, buf, offset);
|
|
13
|
+
}
|
|
14
|
+
return buf ?? require_stringify.unsafeStringify(bytes);
|
|
15
|
+
}
|
|
16
|
+
function updateV7State(state, now, rnds) {
|
|
17
|
+
state.msecs ??= -Infinity;
|
|
18
|
+
state.seq ??= 0;
|
|
19
|
+
if (now > state.msecs) {
|
|
20
|
+
state.seq = rnds[6] << 23 | rnds[7] << 16 | rnds[8] << 8 | rnds[9];
|
|
21
|
+
state.msecs = now;
|
|
22
|
+
} else {
|
|
23
|
+
state.seq = state.seq + 1 | 0;
|
|
24
|
+
if (state.seq === 0) state.msecs++;
|
|
25
|
+
}
|
|
26
|
+
return state;
|
|
27
|
+
}
|
|
28
|
+
function v7Bytes(rnds, msecs, seq, buf, offset = 0) {
|
|
29
|
+
if (rnds.length < 16) throw new Error("Random bytes length must be >= 16");
|
|
30
|
+
if (!buf) {
|
|
31
|
+
buf = new Uint8Array(16);
|
|
32
|
+
offset = 0;
|
|
33
|
+
} else if (offset < 0 || offset + 16 > buf.length) throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);
|
|
34
|
+
msecs ??= Date.now();
|
|
35
|
+
seq ??= rnds[6] * 127 << 24 | rnds[7] << 16 | rnds[8] << 8 | rnds[9];
|
|
36
|
+
buf[offset++] = msecs / 1099511627776 & 255;
|
|
37
|
+
buf[offset++] = msecs / 4294967296 & 255;
|
|
38
|
+
buf[offset++] = msecs / 16777216 & 255;
|
|
39
|
+
buf[offset++] = msecs / 65536 & 255;
|
|
40
|
+
buf[offset++] = msecs / 256 & 255;
|
|
41
|
+
buf[offset++] = msecs & 255;
|
|
42
|
+
buf[offset++] = 112 | seq >>> 28 & 15;
|
|
43
|
+
buf[offset++] = seq >>> 20 & 255;
|
|
44
|
+
buf[offset++] = 128 | seq >>> 14 & 63;
|
|
45
|
+
buf[offset++] = seq >>> 6 & 255;
|
|
46
|
+
buf[offset++] = seq << 2 & 255 | rnds[10] & 3;
|
|
47
|
+
buf[offset++] = rnds[11];
|
|
48
|
+
buf[offset++] = rnds[12];
|
|
49
|
+
buf[offset++] = rnds[13];
|
|
50
|
+
buf[offset++] = rnds[14];
|
|
51
|
+
buf[offset++] = rnds[15];
|
|
52
|
+
return buf;
|
|
53
|
+
}
|
|
54
|
+
//#endregion
|
|
55
|
+
exports.default = v7;
|
|
56
|
+
|
|
57
|
+
//# sourceMappingURL=v7.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v7.cjs","names":["rng","unsafeStringify"],"sources":["../../../src/utils/uuid/v7.ts"],"sourcesContent":["import rng from \"./rng.js\";\nimport { unsafeStringify } from \"./stringify.js\";\nimport type { UUIDTypes, Version7Options } from \"./types.js\";\n\ntype V7State = {\n msecs?: number; // time, milliseconds\n seq?: number; // sequence number (32-bits)\n};\n\nconst _state: V7State = {};\n\nfunction v7(\n options?: Version7Options,\n buf?: undefined,\n offset?: number\n): string;\nfunction v7<TBuf extends Uint8Array = Uint8Array>(\n options: Version7Options | undefined,\n buf: TBuf,\n offset?: number\n): TBuf;\nfunction v7<TBuf extends Uint8Array = Uint8Array>(\n options?: Version7Options,\n buf?: TBuf,\n offset?: number\n): UUIDTypes<TBuf> {\n let bytes: Uint8Array;\n\n if (options) {\n // With options: Make UUID independent of internal state\n bytes = v7Bytes(\n options.random ?? options.rng?.() ?? rng(),\n options.msecs,\n options.seq,\n buf,\n offset\n );\n } else {\n // No options: Use internal state\n const now = Date.now();\n const rnds = rng();\n\n updateV7State(_state, now, rnds);\n\n bytes = v7Bytes(rnds, _state.msecs, _state.seq, buf, offset);\n }\n\n return buf ?? unsafeStringify(bytes);\n}\n\n// (Private!) Do not use. This method is only exported for testing purposes\n// and may change without notice.\nexport function updateV7State(state: V7State, now: number, rnds: Uint8Array) {\n state.msecs ??= -Infinity;\n state.seq ??= 0;\n\n if (now > state.msecs) {\n // Time has moved on! Pick a new random sequence number\n state.seq = (rnds[6] << 23) | (rnds[7] << 16) | (rnds[8] << 8) | rnds[9];\n state.msecs = now;\n } else {\n // Bump sequence counter w/ 32-bit rollover\n state.seq = (state.seq + 1) | 0;\n\n // In case of rollover, bump timestamp to preserve monotonicity. This is\n // allowed by the RFC and should self-correct as the system clock catches\n // up. See https://www.rfc-editor.org/rfc/rfc9562.html#section-6.2-9.4\n if (state.seq === 0) {\n state.msecs++;\n }\n }\n\n return state;\n}\n\nfunction v7Bytes(\n rnds: Uint8Array,\n msecs?: number,\n seq?: number,\n buf?: Uint8Array,\n offset = 0\n) {\n if (rnds.length < 16) {\n throw new Error(\"Random bytes length must be >= 16\");\n }\n\n if (!buf) {\n buf = new Uint8Array(16);\n offset = 0;\n } else {\n if (offset < 0 || offset + 16 > buf.length) {\n throw new RangeError(\n `UUID byte range ${offset}:${offset + 15} is out of buffer bounds`\n );\n }\n }\n\n // Defaults\n msecs ??= Date.now();\n seq ??= ((rnds[6] * 0x7f) << 24) | (rnds[7] << 16) | (rnds[8] << 8) | rnds[9];\n\n // byte 0-5: timestamp (48 bits)\n buf[offset++] = (msecs / 0x10000000000) & 0xff;\n buf[offset++] = (msecs / 0x100000000) & 0xff;\n buf[offset++] = (msecs / 0x1000000) & 0xff;\n buf[offset++] = (msecs / 0x10000) & 0xff;\n buf[offset++] = (msecs / 0x100) & 0xff;\n buf[offset++] = msecs & 0xff;\n\n // byte 6: `version` (4 bits) | sequence bits 28-31 (4 bits)\n buf[offset++] = 0x70 | ((seq >>> 28) & 0x0f);\n\n // byte 7: sequence bits 20-27 (8 bits)\n buf[offset++] = (seq >>> 20) & 0xff;\n\n // byte 8: `variant` (2 bits) | sequence bits 14-19 (6 bits)\n buf[offset++] = 0x80 | ((seq >>> 14) & 0x3f);\n\n // byte 9: sequence bits 6-13 (8 bits)\n buf[offset++] = (seq >>> 6) & 0xff;\n\n // byte 10: sequence bits 0-5 (6 bits) | random (2 bits)\n buf[offset++] = ((seq << 2) & 0xff) | (rnds[10] & 0x03);\n\n // bytes 11-15: random (40 bits)\n buf[offset++] = rnds[11];\n buf[offset++] = rnds[12];\n buf[offset++] = rnds[13];\n buf[offset++] = rnds[14];\n buf[offset++] = rnds[15];\n\n return buf;\n}\n\nexport default v7;\n"],"mappings":";;;AASA,MAAM,SAAkB,EAAE;AAY1B,SAAS,GACP,SACA,KACA,QACiB;CACjB,IAAI;AAEJ,KAAI,QAEF,SAAQ,QACN,QAAQ,UAAU,QAAQ,OAAO,IAAIA,YAAAA,SAAK,EAC1C,QAAQ,OACR,QAAQ,KACR,KACA,OACD;MACI;EAEL,MAAM,MAAM,KAAK,KAAK;EACtB,MAAM,OAAOA,YAAAA,SAAK;AAElB,gBAAc,QAAQ,KAAK,KAAK;AAEhC,UAAQ,QAAQ,MAAM,OAAO,OAAO,OAAO,KAAK,KAAK,OAAO;;AAG9D,QAAO,OAAOC,kBAAAA,gBAAgB,MAAM;;AAKtC,SAAgB,cAAc,OAAgB,KAAa,MAAkB;AAC3E,OAAM,UAAU;AAChB,OAAM,QAAQ;AAEd,KAAI,MAAM,MAAM,OAAO;AAErB,QAAM,MAAO,KAAK,MAAM,KAAO,KAAK,MAAM,KAAO,KAAK,MAAM,IAAK,KAAK;AACtE,QAAM,QAAQ;QACT;AAEL,QAAM,MAAO,MAAM,MAAM,IAAK;AAK9B,MAAI,MAAM,QAAQ,EAChB,OAAM;;AAIV,QAAO;;AAGT,SAAS,QACP,MACA,OACA,KACA,KACA,SAAS,GACT;AACA,KAAI,KAAK,SAAS,GAChB,OAAM,IAAI,MAAM,oCAAoC;AAGtD,KAAI,CAAC,KAAK;AACR,QAAM,IAAI,WAAW,GAAG;AACxB,WAAS;YAEL,SAAS,KAAK,SAAS,KAAK,IAAI,OAClC,OAAM,IAAI,WACR,mBAAmB,OAAO,GAAG,SAAS,GAAG,0BAC1C;AAKL,WAAU,KAAK,KAAK;AACpB,SAAU,KAAK,KAAK,OAAS,KAAO,KAAK,MAAM,KAAO,KAAK,MAAM,IAAK,KAAK;AAG3E,KAAI,YAAa,QAAQ,gBAAiB;AAC1C,KAAI,YAAa,QAAQ,aAAe;AACxC,KAAI,YAAa,QAAQ,WAAa;AACtC,KAAI,YAAa,QAAQ,QAAW;AACpC,KAAI,YAAa,QAAQ,MAAS;AAClC,KAAI,YAAY,QAAQ;AAGxB,KAAI,YAAY,MAAS,QAAQ,KAAM;AAGvC,KAAI,YAAa,QAAQ,KAAM;AAG/B,KAAI,YAAY,MAAS,QAAQ,KAAM;AAGvC,KAAI,YAAa,QAAQ,IAAK;AAG9B,KAAI,YAAc,OAAO,IAAK,MAAS,KAAK,MAAM;AAGlD,KAAI,YAAY,KAAK;AACrB,KAAI,YAAY,KAAK;AACrB,KAAI,YAAY,KAAK;AACrB,KAAI,YAAY,KAAK;AACrB,KAAI,YAAY,KAAK;AAErB,QAAO"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Version7Options } from "./types.cjs";
|
|
2
|
+
|
|
3
|
+
//#region src/utils/uuid/v7.d.ts
|
|
4
|
+
declare function v7(options?: Version7Options, buf?: undefined, offset?: number): string;
|
|
5
|
+
declare function v7<TBuf extends Uint8Array = Uint8Array>(options: Version7Options | undefined, buf: TBuf, offset?: number): TBuf;
|
|
6
|
+
//#endregion
|
|
7
|
+
export { v7 };
|
|
8
|
+
//# sourceMappingURL=v7.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v7.d.cts","names":[],"sources":["../../../src/utils/uuid/v7.ts"],"mappings":";;;iBAWS,EAAA,CACP,OAAA,GAAU,eAAA,EACV,GAAA,cACA,MAAA;AAAA,iBAEO,EAAA,cAAgB,UAAA,GAAa,UAAA,CAAA,CACpC,OAAA,EAAS,eAAA,cACT,GAAA,EAAK,IAAA,EACL,MAAA,YACC,IAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Version7Options } from "./types.js";
|
|
2
|
+
|
|
3
|
+
//#region src/utils/uuid/v7.d.ts
|
|
4
|
+
declare function v7(options?: Version7Options, buf?: undefined, offset?: number): string;
|
|
5
|
+
declare function v7<TBuf extends Uint8Array = Uint8Array>(options: Version7Options | undefined, buf: TBuf, offset?: number): TBuf;
|
|
6
|
+
//#endregion
|
|
7
|
+
export { v7 };
|
|
8
|
+
//# sourceMappingURL=v7.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v7.d.ts","names":[],"sources":["../../../src/utils/uuid/v7.ts"],"mappings":";;;iBAWS,EAAA,CACP,OAAA,GAAU,eAAA,EACV,GAAA,cACA,MAAA;AAAA,iBAEO,EAAA,cAAgB,UAAA,GAAa,UAAA,CAAA,CACpC,OAAA,EAAS,eAAA,cACT,GAAA,EAAK,IAAA,EACL,MAAA,YACC,IAAA"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { unsafeStringify } from "./stringify.js";
|
|
2
|
+
import rng from "./rng.js";
|
|
3
|
+
//#region src/utils/uuid/v7.ts
|
|
4
|
+
const _state = {};
|
|
5
|
+
function v7(options, buf, offset) {
|
|
6
|
+
let bytes;
|
|
7
|
+
if (options) bytes = v7Bytes(options.random ?? options.rng?.() ?? rng(), options.msecs, options.seq, buf, offset);
|
|
8
|
+
else {
|
|
9
|
+
const now = Date.now();
|
|
10
|
+
const rnds = rng();
|
|
11
|
+
updateV7State(_state, now, rnds);
|
|
12
|
+
bytes = v7Bytes(rnds, _state.msecs, _state.seq, buf, offset);
|
|
13
|
+
}
|
|
14
|
+
return buf ?? unsafeStringify(bytes);
|
|
15
|
+
}
|
|
16
|
+
function updateV7State(state, now, rnds) {
|
|
17
|
+
state.msecs ??= -Infinity;
|
|
18
|
+
state.seq ??= 0;
|
|
19
|
+
if (now > state.msecs) {
|
|
20
|
+
state.seq = rnds[6] << 23 | rnds[7] << 16 | rnds[8] << 8 | rnds[9];
|
|
21
|
+
state.msecs = now;
|
|
22
|
+
} else {
|
|
23
|
+
state.seq = state.seq + 1 | 0;
|
|
24
|
+
if (state.seq === 0) state.msecs++;
|
|
25
|
+
}
|
|
26
|
+
return state;
|
|
27
|
+
}
|
|
28
|
+
function v7Bytes(rnds, msecs, seq, buf, offset = 0) {
|
|
29
|
+
if (rnds.length < 16) throw new Error("Random bytes length must be >= 16");
|
|
30
|
+
if (!buf) {
|
|
31
|
+
buf = new Uint8Array(16);
|
|
32
|
+
offset = 0;
|
|
33
|
+
} else if (offset < 0 || offset + 16 > buf.length) throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);
|
|
34
|
+
msecs ??= Date.now();
|
|
35
|
+
seq ??= rnds[6] * 127 << 24 | rnds[7] << 16 | rnds[8] << 8 | rnds[9];
|
|
36
|
+
buf[offset++] = msecs / 1099511627776 & 255;
|
|
37
|
+
buf[offset++] = msecs / 4294967296 & 255;
|
|
38
|
+
buf[offset++] = msecs / 16777216 & 255;
|
|
39
|
+
buf[offset++] = msecs / 65536 & 255;
|
|
40
|
+
buf[offset++] = msecs / 256 & 255;
|
|
41
|
+
buf[offset++] = msecs & 255;
|
|
42
|
+
buf[offset++] = 112 | seq >>> 28 & 15;
|
|
43
|
+
buf[offset++] = seq >>> 20 & 255;
|
|
44
|
+
buf[offset++] = 128 | seq >>> 14 & 63;
|
|
45
|
+
buf[offset++] = seq >>> 6 & 255;
|
|
46
|
+
buf[offset++] = seq << 2 & 255 | rnds[10] & 3;
|
|
47
|
+
buf[offset++] = rnds[11];
|
|
48
|
+
buf[offset++] = rnds[12];
|
|
49
|
+
buf[offset++] = rnds[13];
|
|
50
|
+
buf[offset++] = rnds[14];
|
|
51
|
+
buf[offset++] = rnds[15];
|
|
52
|
+
return buf;
|
|
53
|
+
}
|
|
54
|
+
//#endregion
|
|
55
|
+
export { v7 as default };
|
|
56
|
+
|
|
57
|
+
//# sourceMappingURL=v7.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v7.js","names":[],"sources":["../../../src/utils/uuid/v7.ts"],"sourcesContent":["import rng from \"./rng.js\";\nimport { unsafeStringify } from \"./stringify.js\";\nimport type { UUIDTypes, Version7Options } from \"./types.js\";\n\ntype V7State = {\n msecs?: number; // time, milliseconds\n seq?: number; // sequence number (32-bits)\n};\n\nconst _state: V7State = {};\n\nfunction v7(\n options?: Version7Options,\n buf?: undefined,\n offset?: number\n): string;\nfunction v7<TBuf extends Uint8Array = Uint8Array>(\n options: Version7Options | undefined,\n buf: TBuf,\n offset?: number\n): TBuf;\nfunction v7<TBuf extends Uint8Array = Uint8Array>(\n options?: Version7Options,\n buf?: TBuf,\n offset?: number\n): UUIDTypes<TBuf> {\n let bytes: Uint8Array;\n\n if (options) {\n // With options: Make UUID independent of internal state\n bytes = v7Bytes(\n options.random ?? options.rng?.() ?? rng(),\n options.msecs,\n options.seq,\n buf,\n offset\n );\n } else {\n // No options: Use internal state\n const now = Date.now();\n const rnds = rng();\n\n updateV7State(_state, now, rnds);\n\n bytes = v7Bytes(rnds, _state.msecs, _state.seq, buf, offset);\n }\n\n return buf ?? unsafeStringify(bytes);\n}\n\n// (Private!) Do not use. This method is only exported for testing purposes\n// and may change without notice.\nexport function updateV7State(state: V7State, now: number, rnds: Uint8Array) {\n state.msecs ??= -Infinity;\n state.seq ??= 0;\n\n if (now > state.msecs) {\n // Time has moved on! Pick a new random sequence number\n state.seq = (rnds[6] << 23) | (rnds[7] << 16) | (rnds[8] << 8) | rnds[9];\n state.msecs = now;\n } else {\n // Bump sequence counter w/ 32-bit rollover\n state.seq = (state.seq + 1) | 0;\n\n // In case of rollover, bump timestamp to preserve monotonicity. This is\n // allowed by the RFC and should self-correct as the system clock catches\n // up. See https://www.rfc-editor.org/rfc/rfc9562.html#section-6.2-9.4\n if (state.seq === 0) {\n state.msecs++;\n }\n }\n\n return state;\n}\n\nfunction v7Bytes(\n rnds: Uint8Array,\n msecs?: number,\n seq?: number,\n buf?: Uint8Array,\n offset = 0\n) {\n if (rnds.length < 16) {\n throw new Error(\"Random bytes length must be >= 16\");\n }\n\n if (!buf) {\n buf = new Uint8Array(16);\n offset = 0;\n } else {\n if (offset < 0 || offset + 16 > buf.length) {\n throw new RangeError(\n `UUID byte range ${offset}:${offset + 15} is out of buffer bounds`\n );\n }\n }\n\n // Defaults\n msecs ??= Date.now();\n seq ??= ((rnds[6] * 0x7f) << 24) | (rnds[7] << 16) | (rnds[8] << 8) | rnds[9];\n\n // byte 0-5: timestamp (48 bits)\n buf[offset++] = (msecs / 0x10000000000) & 0xff;\n buf[offset++] = (msecs / 0x100000000) & 0xff;\n buf[offset++] = (msecs / 0x1000000) & 0xff;\n buf[offset++] = (msecs / 0x10000) & 0xff;\n buf[offset++] = (msecs / 0x100) & 0xff;\n buf[offset++] = msecs & 0xff;\n\n // byte 6: `version` (4 bits) | sequence bits 28-31 (4 bits)\n buf[offset++] = 0x70 | ((seq >>> 28) & 0x0f);\n\n // byte 7: sequence bits 20-27 (8 bits)\n buf[offset++] = (seq >>> 20) & 0xff;\n\n // byte 8: `variant` (2 bits) | sequence bits 14-19 (6 bits)\n buf[offset++] = 0x80 | ((seq >>> 14) & 0x3f);\n\n // byte 9: sequence bits 6-13 (8 bits)\n buf[offset++] = (seq >>> 6) & 0xff;\n\n // byte 10: sequence bits 0-5 (6 bits) | random (2 bits)\n buf[offset++] = ((seq << 2) & 0xff) | (rnds[10] & 0x03);\n\n // bytes 11-15: random (40 bits)\n buf[offset++] = rnds[11];\n buf[offset++] = rnds[12];\n buf[offset++] = rnds[13];\n buf[offset++] = rnds[14];\n buf[offset++] = rnds[15];\n\n return buf;\n}\n\nexport default v7;\n"],"mappings":";;;AASA,MAAM,SAAkB,EAAE;AAY1B,SAAS,GACP,SACA,KACA,QACiB;CACjB,IAAI;AAEJ,KAAI,QAEF,SAAQ,QACN,QAAQ,UAAU,QAAQ,OAAO,IAAI,KAAK,EAC1C,QAAQ,OACR,QAAQ,KACR,KACA,OACD;MACI;EAEL,MAAM,MAAM,KAAK,KAAK;EACtB,MAAM,OAAO,KAAK;AAElB,gBAAc,QAAQ,KAAK,KAAK;AAEhC,UAAQ,QAAQ,MAAM,OAAO,OAAO,OAAO,KAAK,KAAK,OAAO;;AAG9D,QAAO,OAAO,gBAAgB,MAAM;;AAKtC,SAAgB,cAAc,OAAgB,KAAa,MAAkB;AAC3E,OAAM,UAAU;AAChB,OAAM,QAAQ;AAEd,KAAI,MAAM,MAAM,OAAO;AAErB,QAAM,MAAO,KAAK,MAAM,KAAO,KAAK,MAAM,KAAO,KAAK,MAAM,IAAK,KAAK;AACtE,QAAM,QAAQ;QACT;AAEL,QAAM,MAAO,MAAM,MAAM,IAAK;AAK9B,MAAI,MAAM,QAAQ,EAChB,OAAM;;AAIV,QAAO;;AAGT,SAAS,QACP,MACA,OACA,KACA,KACA,SAAS,GACT;AACA,KAAI,KAAK,SAAS,GAChB,OAAM,IAAI,MAAM,oCAAoC;AAGtD,KAAI,CAAC,KAAK;AACR,QAAM,IAAI,WAAW,GAAG;AACxB,WAAS;YAEL,SAAS,KAAK,SAAS,KAAK,IAAI,OAClC,OAAM,IAAI,WACR,mBAAmB,OAAO,GAAG,SAAS,GAAG,0BAC1C;AAKL,WAAU,KAAK,KAAK;AACpB,SAAU,KAAK,KAAK,OAAS,KAAO,KAAK,MAAM,KAAO,KAAK,MAAM,IAAK,KAAK;AAG3E,KAAI,YAAa,QAAQ,gBAAiB;AAC1C,KAAI,YAAa,QAAQ,aAAe;AACxC,KAAI,YAAa,QAAQ,WAAa;AACtC,KAAI,YAAa,QAAQ,QAAW;AACpC,KAAI,YAAa,QAAQ,MAAS;AAClC,KAAI,YAAY,QAAQ;AAGxB,KAAI,YAAY,MAAS,QAAQ,KAAM;AAGvC,KAAI,YAAa,QAAQ,KAAM;AAG/B,KAAI,YAAY,MAAS,QAAQ,KAAM;AAGvC,KAAI,YAAa,QAAQ,IAAK;AAG9B,KAAI,YAAc,OAAO,IAAK,MAAS,KAAK,MAAM;AAGlD,KAAI,YAAY,KAAK;AACrB,KAAI,YAAY,KAAK;AACrB,KAAI,YAAY,KAAK;AACrB,KAAI,YAAY,KAAK;AACrB,KAAI,YAAY,KAAK;AAErB,QAAO"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
const require_regex = require("./regex.cjs");
|
|
2
|
+
//#region src/utils/uuid/validate.ts
|
|
3
|
+
function validate(uuid) {
|
|
4
|
+
return typeof uuid === "string" && require_regex.default.test(uuid);
|
|
5
|
+
}
|
|
6
|
+
//#endregion
|
|
7
|
+
exports.default = validate;
|
|
8
|
+
|
|
9
|
+
//# sourceMappingURL=validate.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate.cjs","names":["REGEX"],"sources":["../../../src/utils/uuid/validate.ts"],"sourcesContent":["import REGEX from \"./regex.js\";\n\nfunction validate(uuid: unknown) {\n return typeof uuid === \"string\" && REGEX.test(uuid);\n}\n\nexport default validate;\n"],"mappings":";;AAEA,SAAS,SAAS,MAAe;AAC/B,QAAO,OAAO,SAAS,YAAYA,cAAAA,QAAM,KAAK,KAAK"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate.d.cts","names":[],"sources":["../../../src/utils/uuid/validate.ts"],"mappings":";iBAES,QAAA,CAAS,IAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate.d.ts","names":[],"sources":["../../../src/utils/uuid/validate.ts"],"mappings":";iBAES,QAAA,CAAS,IAAA"}
|