source: imaps-frontend/node_modules/uuid/dist/cjs/v7.js

main
Last change on this file was 79a0317, checked in by stefan toskovski <stefantoska84@…>, 3 days ago

F4 Finalna Verzija

  • Property mode set to 100644
File size: 2.0 KB
Line 
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.updateV7State = updateV7State;
4const rng_js_1 = require("./rng.js");
5const stringify_js_1 = require("./stringify.js");
6const _state = {};
7function v7(options, buf, offset) {
8 let bytes;
9 if (options) {
10 bytes = v7Bytes(options.random ?? options.rng?.() ?? (0, rng_js_1.default)(), options.msecs, options.seq, buf, offset);
11 }
12 else {
13 const now = Date.now();
14 const rnds = (0, rng_js_1.default)();
15 updateV7State(_state, now, rnds);
16 bytes = v7Bytes(rnds, _state.msecs, _state.seq, buf, offset);
17 }
18 return buf ? bytes : (0, stringify_js_1.unsafeStringify)(bytes);
19}
20function updateV7State(state, now, rnds) {
21 state.msecs ??= -Infinity;
22 state.seq ??= 0;
23 if (now > state.msecs) {
24 state.seq = (rnds[6] << 23) | (rnds[7] << 16) | (rnds[8] << 8) | rnds[9];
25 state.msecs = now;
26 }
27 else {
28 state.seq = (state.seq + 1) | 0;
29 if (state.seq === 0) {
30 state.msecs++;
31 }
32 }
33 return state;
34}
35function v7Bytes(rnds, msecs, seq, buf, offset = 0) {
36 if (!buf) {
37 buf = new Uint8Array(16);
38 offset = 0;
39 }
40 msecs ??= Date.now();
41 seq ??= ((rnds[6] * 0x7f) << 24) | (rnds[7] << 16) | (rnds[8] << 8) | rnds[9];
42 buf[offset++] = (msecs / 0x10000000000) & 0xff;
43 buf[offset++] = (msecs / 0x100000000) & 0xff;
44 buf[offset++] = (msecs / 0x1000000) & 0xff;
45 buf[offset++] = (msecs / 0x10000) & 0xff;
46 buf[offset++] = (msecs / 0x100) & 0xff;
47 buf[offset++] = msecs & 0xff;
48 buf[offset++] = 0x70 | ((seq >>> 28) & 0x0f);
49 buf[offset++] = (seq >>> 20) & 0xff;
50 buf[offset++] = 0x80 | ((seq >>> 14) & 0x3f);
51 buf[offset++] = (seq >>> 6) & 0xff;
52 buf[offset++] = ((seq << 2) & 0xff) | (rnds[10] & 0x03);
53 buf[offset++] = rnds[11];
54 buf[offset++] = rnds[12];
55 buf[offset++] = rnds[13];
56 buf[offset++] = rnds[14];
57 buf[offset++] = rnds[15];
58 return buf;
59}
60exports.default = v7;
Note: See TracBrowser for help on using the repository browser.