lakutata
Version:
An IoC-based universal application framework.
172 lines (141 loc) • 4.69 kB
JavaScript
/* Build Date: Mon Jan 05 2026 23:52:23 GMT+0800 (China Standard Time) */
;
const t = "00000000-0000-0000-0000-000000000000";
const e = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i;
function n(t) {
return typeof t === "string" && e.test(t);
}
function r(t) {
if (!n(t)) {
throw TypeError("Invalid UUID");
}
let e;
return Uint8Array.of((e = parseInt(t.slice(0, 8), 16)) >>> 24, e >>> 16 & 255, e >>> 8 & 255, e & 255, (e = parseInt(t.slice(9, 13), 16)) >>> 8, e & 255, (e = parseInt(t.slice(14, 18), 16)) >>> 8, e & 255, (e = parseInt(t.slice(19, 23), 16)) >>> 8, e & 255, (e = parseInt(t.slice(24, 36), 16)) / 1099511627776 & 255, e / 4294967296 & 255, e >>> 24 & 255, e >>> 16 & 255, e >>> 8 & 255, e & 255);
}
const f = [];
for (let t = 0; t < 256; ++t) {
f.push((t + 256).toString(16).slice(1));
}
function o(t, e = 0) {
return (f[t[e + 0]] + f[t[e + 1]] + f[t[e + 2]] + f[t[e + 3]] + "-" + f[t[e + 4]] + f[t[e + 5]] + "-" + f[t[e + 6]] + f[t[e + 7]] + "-" + f[t[e + 8]] + f[t[e + 9]] + "-" + f[t[e + 10]] + f[t[e + 11]] + f[t[e + 12]] + f[t[e + 13]] + f[t[e + 14]] + f[t[e + 15]]).toLowerCase();
}
function s(t, e = 0) {
const r = o(t, e);
if (!n(r)) {
throw TypeError("Stringified UUID is invalid");
}
return r;
}
function i(t) {
t = unescape(encodeURIComponent(t));
const e = new Uint8Array(t.length);
for (let n = 0; n < t.length; ++n) {
e[n] = t.charCodeAt(n);
}
return e;
}
const c = "6ba7b810-9dad-11d1-80b4-00c04fd430c8";
const a = "6ba7b811-9dad-11d1-80b4-00c04fd430c8";
function l(t, e, n, f, s, c) {
const a = typeof n === "string" ? i(n) : n;
const l = typeof f === "string" ? r(f) : f;
if (typeof f === "string") {
f = r(f);
}
if (f?.length !== 16) {
throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");
}
let u = new Uint8Array(16 + a.length);
u.set(l);
u.set(a, l.length);
u = e(u);
u[6] = u[6] & 15 | t;
u[8] = u[8] & 63 | 128;
if (s) {
c = c || 0;
for (let t = 0; t < 16; ++t) {
s[c + t] = u[t];
}
return s;
}
return o(u);
}
function u(t, e, n, r) {
switch (t) {
case 0:
return e & n ^ ~e & r;
case 1:
return e ^ n ^ r;
case 2:
return e & n ^ e & r ^ n & r;
case 3:
return e ^ n ^ r;
}
}
function p(t, e) {
return t << e | t >>> 32 - e;
}
function h(t) {
const e = [ 1518500249, 1859775393, 2400959708, 3395469782 ];
const n = [ 1732584193, 4023233417, 2562383102, 271733878, 3285377520 ];
const r = new Uint8Array(t.length + 1);
r.set(t);
r[t.length] = 128;
t = r;
const f = t.length / 4 + 2;
const o = Math.ceil(f / 16);
const s = new Array(o);
for (let e = 0; e < o; ++e) {
const n = new Uint32Array(16);
for (let r = 0; r < 16; ++r) {
n[r] = t[e * 64 + r * 4] << 24 | t[e * 64 + r * 4 + 1] << 16 | t[e * 64 + r * 4 + 2] << 8 | t[e * 64 + r * 4 + 3];
}
s[e] = n;
}
s[o - 1][14] = (t.length - 1) * 8 / Math.pow(2, 32);
s[o - 1][14] = Math.floor(s[o - 1][14]);
s[o - 1][15] = (t.length - 1) * 8 & 4294967295;
for (let t = 0; t < o; ++t) {
const r = new Uint32Array(80);
for (let e = 0; e < 16; ++e) {
r[e] = s[t][e];
}
for (let t = 16; t < 80; ++t) {
r[t] = p(r[t - 3] ^ r[t - 8] ^ r[t - 14] ^ r[t - 16], 1);
}
let f = n[0];
let o = n[1];
let i = n[2];
let c = n[3];
let a = n[4];
for (let t = 0; t < 80; ++t) {
const n = Math.floor(t / 20);
const s = p(f, 5) + u(n, o, i, c) + a + e[n] + r[t] >>> 0;
a = c;
c = i;
i = p(o, 30) >>> 0;
o = f;
f = s;
}
n[0] = n[0] + f >>> 0;
n[1] = n[1] + o >>> 0;
n[2] = n[2] + i >>> 0;
n[3] = n[3] + c >>> 0;
n[4] = n[4] + a >>> 0;
}
return Uint8Array.of(n[0] >> 24, n[0] >> 16, n[0] >> 8, n[0], n[1] >> 24, n[1] >> 16, n[1] >> 8, n[1], n[2] >> 24, n[2] >> 16, n[2] >> 8, n[2], n[3] >> 24, n[3] >> 16, n[3] >> 8, n[3], n[4] >> 24, n[4] >> 16, n[4] >> 8, n[4]);
}
function g(t, e, n, r) {
return l(80, h, t, e, n, r);
}
g.DNS = c;
g.URL = a;
exports.DNS = c;
exports.NIL = t;
exports.URL = a;
exports.parse = r;
exports.stringify = s;
exports.unsafeStringify = o;
exports.v35 = l;
exports.v5 = g;
exports.validate = n;