UNPKG

lakutata

Version:

An IoC-based universal application framework.

172 lines (141 loc) 4.69 kB
/* Build Date: Mon Jan 05 2026 23:52:23 GMT+0800 (China Standard Time) */ "use strict"; 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;