133 lines
5.6 KiB
JavaScript
133 lines
5.6 KiB
JavaScript
/**
|
|
* Minified by jsDelivr using Terser v5.19.2.
|
|
* Original file: /npm/uuidjs@5.1.0/dist/uuid.js
|
|
*
|
|
* Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
|
|
*/
|
|
/**
|
|
* UUID.js - RFC-compliant UUID Generator for JavaScript
|
|
*
|
|
* @author LiosK
|
|
* @version v5.1.0
|
|
* @license Apache License 2.0: Copyright (c) 2010-2024 LiosK
|
|
* @packageDocumentation
|
|
*/
|
|
var _a;
|
|
export class UUID {
|
|
static generate() {
|
|
var e = _a._getRandomInt,
|
|
t = _a._hexAligner;
|
|
return t(e(32), 8) + '-' + t(e(16), 4) + '-' + t(16384 | e(12), 4) + '-' + t(32768 | e(14), 4) + '-' + t(e(48), 12);
|
|
}
|
|
static _getRandomInt(e) {
|
|
if (e < 0 || e > 53) return NaN;
|
|
var t = 0 | (1073741824 * Math.random());
|
|
return e > 30 ? t + 1073741824 * (0 | (Math.random() * (1 << (e - 30)))) : t >>> (30 - e);
|
|
}
|
|
static _hexAligner(e, t) {
|
|
for (var a = e.toString(16), i = t - a.length, n = '0'; i > 0; i >>>= 1, n += n) 1 & i && (a = n + a);
|
|
return a;
|
|
}
|
|
static useMathRandom() {
|
|
_a._getRandomInt = _a._mathPRNG;
|
|
}
|
|
static genV4() {
|
|
var e = _a._getRandomInt;
|
|
return new _a(e(32), e(16), 16384 | e(12), 128 | e(6), e(8), e(48));
|
|
}
|
|
static parse(e) {
|
|
var t;
|
|
if ((t = /^\s*(urn:uuid:|\{)?([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{2})([0-9a-f]{2})-([0-9a-f]{12})(\})?\s*$/i.exec(e))) {
|
|
var a = t[1] || '',
|
|
i = t[8] || '';
|
|
if (a + i === '' || ('{' === a && '}' === i) || ('urn:uuid:' === a.toLowerCase() && '' === i))
|
|
return new _a(parseInt(t[2], 16), parseInt(t[3], 16), parseInt(t[4], 16), parseInt(t[5], 16), parseInt(t[6], 16), parseInt(t[7], 16));
|
|
}
|
|
return null;
|
|
}
|
|
constructor(e, t, a, i, n, s) {
|
|
var r = _a.FIELD_NAMES,
|
|
_ = _a.FIELD_SIZES,
|
|
h = _a._binAligner,
|
|
d = _a._hexAligner;
|
|
(this.intFields = new Array(6)), (this.bitFields = new Array(6)), (this.hexFields = new Array(6));
|
|
for (var o = 0; o < 6; o++) {
|
|
var u = parseInt(arguments[o] || 0);
|
|
(this.intFields[o] = this.intFields[r[o]] = u), (this.bitFields[o] = this.bitFields[r[o]] = h(u, _[o])), (this.hexFields[o] = this.hexFields[r[o]] = d(u, _[o] >>> 2));
|
|
}
|
|
(this.version = (this.intFields.timeHiAndVersion >>> 12) & 15),
|
|
(this.bitString = this.bitFields.join('')),
|
|
(this.hexNoDelim = this.hexFields.join('')),
|
|
(this.hexString = this.hexFields[0] + '-' + this.hexFields[1] + '-' + this.hexFields[2] + '-' + this.hexFields[3] + this.hexFields[4] + '-' + this.hexFields[5]),
|
|
(this.urn = 'urn:uuid:' + this.hexString);
|
|
}
|
|
static _binAligner(e, t) {
|
|
for (var a = e.toString(2), i = t - a.length, n = '0'; i > 0; i >>>= 1, n += n) 1 & i && (a = n + a);
|
|
return a;
|
|
}
|
|
toString() {
|
|
return this.hexString;
|
|
}
|
|
equals(e) {
|
|
if (!(e instanceof _a)) return !1;
|
|
for (var t = 0; t < 6; t++) if (this.intFields[t] !== e.intFields[t]) return !1;
|
|
return !0;
|
|
}
|
|
static genV1() {
|
|
null == _a._state && (_a._state = new UUIDState());
|
|
var e = new Date().getTime(),
|
|
t = _a._state;
|
|
e != t.timestamp ? (e < t.timestamp && t.sequence++, (t.timestamp = e), (t.tick = _a._getRandomInt(12))) : t.tick < 9992 ? (t.tick += 1 + _a._getRandomInt(3)) : t.sequence++;
|
|
var a = _a._getTimeFieldValues(t.timestamp),
|
|
i = a.low + t.tick,
|
|
n = (4095 & a.hi) | 4096;
|
|
t.sequence &= 16383;
|
|
var s = (t.sequence >>> 8) | 128,
|
|
r = 255 & t.sequence;
|
|
return new _a(i, a.mid, n, s, r, t.node);
|
|
}
|
|
static resetState() {
|
|
_a._state = new UUIDState();
|
|
}
|
|
static _getTimeFieldValues(e) {
|
|
var t = e - Date.UTC(1582, 9, 15),
|
|
a = ((t / 4294967296) * 1e4) & 268435455;
|
|
return { low: (1e4 * (268435455 & t)) % 4294967296, mid: 65535 & a, hi: a >>> 16, timestamp: t };
|
|
}
|
|
static genV6() {
|
|
null == _a._state && (_a._state = new UUIDState());
|
|
var e = new Date().getTime(),
|
|
t = _a._state;
|
|
e != t.timestamp ? (e < t.timestamp && t.sequence++, (t.timestamp = e), (t.tick = _a._getRandomInt(12))) : t.tick < 9992 ? (t.tick += 1 + _a._getRandomInt(3)) : t.sequence++;
|
|
var a = t.timestamp - Date.UTC(1582, 9, 15),
|
|
i = Math.floor((a / 268435456) * 1e4) % 4294967296,
|
|
n = ((1e4 * (268435455 & a)) & 268435455) + t.tick,
|
|
s = n >>> 12,
|
|
r = (4095 & n) | 24576;
|
|
t.sequence &= 16383;
|
|
var _ = (t.sequence >>> 8) | 128,
|
|
h = 255 & t.sequence;
|
|
return new _a(i, s, r, _, h, t.node);
|
|
}
|
|
}
|
|
(_a = UUID),
|
|
(UUID._mathPRNG = _a._getRandomInt),
|
|
'undefined' != typeof crypto &&
|
|
crypto.getRandomValues &&
|
|
(_a._getRandomInt = (e) => {
|
|
if (e < 0 || e > 53) return NaN;
|
|
var t = new Uint32Array(e > 32 ? 2 : 1);
|
|
return crypto.getRandomValues(t), e > 32 ? t[0] + 4294967296 * (t[1] >>> (64 - e)) : t[0] >>> (32 - e);
|
|
}),
|
|
(UUID.FIELD_NAMES = ['timeLow', 'timeMid', 'timeHiAndVersion', 'clockSeqHiAndReserved', 'clockSeqLow', 'node']),
|
|
(UUID.FIELD_SIZES = [32, 16, 16, 8, 8, 48]),
|
|
(UUID.NIL = new _a(0, 0, 0, 0, 0, 0)),
|
|
(UUID._state = null);
|
|
class UUIDState {
|
|
constructor() {
|
|
var e = UUID._getRandomInt;
|
|
(this.timestamp = 0), (this.tick = 0), (this.sequence = e(14)), (this.node = 1099511627776 * (1 | e(8)) + e(40));
|
|
}
|
|
}
|
|
//# sourceMappingURL=/sm/14547599d24239455943f4481cadea00302ff64afee28ff8598a7fb36c36ddc0.map
|