@typeberry/jam 0.1.3-462ca77 → 0.1.3-6759174
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/bootstrap-generator.mjs +308 -5231
- package/bootstrap-generator.mjs.map +1 -1
- package/bootstrap-importer.mjs +7181 -7845
- package/bootstrap-importer.mjs.map +1 -1
- package/bootstrap-network.mjs +2898 -838
- package/bootstrap-network.mjs.map +1 -1
- package/index.js +9368 -10014
- package/index.js.map +1 -1
- package/package.json +1 -1
package/bootstrap-network.mjs
CHANGED
|
@@ -15436,694 +15436,2739 @@ exports.verifySchema = verifySchema;
|
|
|
15436
15436
|
|
|
15437
15437
|
/***/ }),
|
|
15438
15438
|
|
|
15439
|
-
/***/
|
|
15440
|
-
/***/ ((
|
|
15441
|
-
|
|
15442
|
-
function isBuffer (value) {
|
|
15443
|
-
return Buffer.isBuffer(value) || value instanceof Uint8Array
|
|
15444
|
-
}
|
|
15445
|
-
|
|
15446
|
-
function isEncoding (encoding) {
|
|
15447
|
-
return Buffer.isEncoding(encoding)
|
|
15448
|
-
}
|
|
15449
|
-
|
|
15450
|
-
function alloc (size, fill, encoding) {
|
|
15451
|
-
return Buffer.alloc(size, fill, encoding)
|
|
15452
|
-
}
|
|
15453
|
-
|
|
15454
|
-
function allocUnsafe (size) {
|
|
15455
|
-
return Buffer.allocUnsafe(size)
|
|
15456
|
-
}
|
|
15457
|
-
|
|
15458
|
-
function allocUnsafeSlow (size) {
|
|
15459
|
-
return Buffer.allocUnsafeSlow(size)
|
|
15460
|
-
}
|
|
15461
|
-
|
|
15462
|
-
function byteLength (string, encoding) {
|
|
15463
|
-
return Buffer.byteLength(string, encoding)
|
|
15464
|
-
}
|
|
15465
|
-
|
|
15466
|
-
function compare (a, b) {
|
|
15467
|
-
return Buffer.compare(a, b)
|
|
15468
|
-
}
|
|
15469
|
-
|
|
15470
|
-
function concat (buffers, totalLength) {
|
|
15471
|
-
return Buffer.concat(buffers, totalLength)
|
|
15472
|
-
}
|
|
15473
|
-
|
|
15474
|
-
function copy (source, target, targetStart, start, end) {
|
|
15475
|
-
return toBuffer(source).copy(target, targetStart, start, end)
|
|
15476
|
-
}
|
|
15477
|
-
|
|
15478
|
-
function equals (a, b) {
|
|
15479
|
-
return toBuffer(a).equals(b)
|
|
15480
|
-
}
|
|
15481
|
-
|
|
15482
|
-
function fill (buffer, value, offset, end, encoding) {
|
|
15483
|
-
return toBuffer(buffer).fill(value, offset, end, encoding)
|
|
15484
|
-
}
|
|
15485
|
-
|
|
15486
|
-
function from (value, encodingOrOffset, length) {
|
|
15487
|
-
return Buffer.from(value, encodingOrOffset, length)
|
|
15488
|
-
}
|
|
15489
|
-
|
|
15490
|
-
function includes (buffer, value, byteOffset, encoding) {
|
|
15491
|
-
return toBuffer(buffer).includes(value, byteOffset, encoding)
|
|
15492
|
-
}
|
|
15493
|
-
|
|
15494
|
-
function indexOf (buffer, value, byfeOffset, encoding) {
|
|
15495
|
-
return toBuffer(buffer).indexOf(value, byfeOffset, encoding)
|
|
15496
|
-
}
|
|
15497
|
-
|
|
15498
|
-
function lastIndexOf (buffer, value, byteOffset, encoding) {
|
|
15499
|
-
return toBuffer(buffer).lastIndexOf(value, byteOffset, encoding)
|
|
15500
|
-
}
|
|
15501
|
-
|
|
15502
|
-
function swap16 (buffer) {
|
|
15503
|
-
return toBuffer(buffer).swap16()
|
|
15504
|
-
}
|
|
15505
|
-
|
|
15506
|
-
function swap32 (buffer) {
|
|
15507
|
-
return toBuffer(buffer).swap32()
|
|
15508
|
-
}
|
|
15509
|
-
|
|
15510
|
-
function swap64 (buffer) {
|
|
15511
|
-
return toBuffer(buffer).swap64()
|
|
15512
|
-
}
|
|
15513
|
-
|
|
15514
|
-
function toBuffer (buffer) {
|
|
15515
|
-
if (Buffer.isBuffer(buffer)) return buffer
|
|
15516
|
-
return Buffer.from(buffer.buffer, buffer.byteOffset, buffer.byteLength)
|
|
15517
|
-
}
|
|
15518
|
-
|
|
15519
|
-
function toString (buffer, encoding, start, end) {
|
|
15520
|
-
return toBuffer(buffer).toString(encoding, start, end)
|
|
15521
|
-
}
|
|
15522
|
-
|
|
15523
|
-
function write (buffer, string, offset, length, encoding) {
|
|
15524
|
-
return toBuffer(buffer).write(string, offset, length, encoding)
|
|
15525
|
-
}
|
|
15526
|
-
|
|
15527
|
-
function writeDoubleLE (buffer, value, offset) {
|
|
15528
|
-
return toBuffer(buffer).writeDoubleLE(value, offset)
|
|
15529
|
-
}
|
|
15530
|
-
|
|
15531
|
-
function writeFloatLE (buffer, value, offset) {
|
|
15532
|
-
return toBuffer(buffer).writeFloatLE(value, offset)
|
|
15533
|
-
}
|
|
15534
|
-
|
|
15535
|
-
function writeUInt32LE (buffer, value, offset) {
|
|
15536
|
-
return toBuffer(buffer).writeUInt32LE(value, offset)
|
|
15537
|
-
}
|
|
15538
|
-
|
|
15539
|
-
function writeInt32LE (buffer, value, offset) {
|
|
15540
|
-
return toBuffer(buffer).writeInt32LE(value, offset)
|
|
15541
|
-
}
|
|
15542
|
-
|
|
15543
|
-
function readDoubleLE (buffer, offset) {
|
|
15544
|
-
return toBuffer(buffer).readDoubleLE(offset)
|
|
15545
|
-
}
|
|
15546
|
-
|
|
15547
|
-
function readFloatLE (buffer, offset) {
|
|
15548
|
-
return toBuffer(buffer).readFloatLE(offset)
|
|
15549
|
-
}
|
|
15550
|
-
|
|
15551
|
-
function readUInt32LE (buffer, offset) {
|
|
15552
|
-
return toBuffer(buffer).readUInt32LE(offset)
|
|
15553
|
-
}
|
|
15554
|
-
|
|
15555
|
-
function readInt32LE (buffer, offset) {
|
|
15556
|
-
return toBuffer(buffer).readInt32LE(offset)
|
|
15557
|
-
}
|
|
15558
|
-
|
|
15559
|
-
module.exports = {
|
|
15560
|
-
isBuffer,
|
|
15561
|
-
isEncoding,
|
|
15562
|
-
alloc,
|
|
15563
|
-
allocUnsafe,
|
|
15564
|
-
allocUnsafeSlow,
|
|
15565
|
-
byteLength,
|
|
15566
|
-
compare,
|
|
15567
|
-
concat,
|
|
15568
|
-
copy,
|
|
15569
|
-
equals,
|
|
15570
|
-
fill,
|
|
15571
|
-
from,
|
|
15572
|
-
includes,
|
|
15573
|
-
indexOf,
|
|
15574
|
-
lastIndexOf,
|
|
15575
|
-
swap16,
|
|
15576
|
-
swap32,
|
|
15577
|
-
swap64,
|
|
15578
|
-
toBuffer,
|
|
15579
|
-
toString,
|
|
15580
|
-
write,
|
|
15581
|
-
writeDoubleLE,
|
|
15582
|
-
writeFloatLE,
|
|
15583
|
-
writeUInt32LE,
|
|
15584
|
-
writeInt32LE,
|
|
15585
|
-
readDoubleLE,
|
|
15586
|
-
readFloatLE,
|
|
15587
|
-
readUInt32LE,
|
|
15588
|
-
readInt32LE
|
|
15589
|
-
}
|
|
15590
|
-
|
|
15591
|
-
|
|
15592
|
-
/***/ }),
|
|
15593
|
-
|
|
15594
|
-
/***/ 656:
|
|
15595
|
-
/***/ ((module) => {
|
|
15596
|
-
|
|
15597
|
-
var __commonJS = (cb, mod) => function __require() {
|
|
15598
|
-
return mod || (0, cb[Object.keys(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
|
15599
|
-
};
|
|
15600
|
-
var __toBinary = /* @__PURE__ */ (() => {
|
|
15601
|
-
var table = new Uint8Array(128);
|
|
15602
|
-
for (var i = 0; i < 64; i++)
|
|
15603
|
-
table[i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i * 4 - 205] = i;
|
|
15604
|
-
return (base64) => {
|
|
15605
|
-
var n = base64.length, bytes2 = new Uint8Array((n - (base64[n - 1] == "=") - (base64[n - 2] == "=")) * 3 / 4 | 0);
|
|
15606
|
-
for (var i2 = 0, j = 0; i2 < n; ) {
|
|
15607
|
-
var c0 = table[base64.charCodeAt(i2++)], c1 = table[base64.charCodeAt(i2++)];
|
|
15608
|
-
var c2 = table[base64.charCodeAt(i2++)], c3 = table[base64.charCodeAt(i2++)];
|
|
15609
|
-
bytes2[j++] = c0 << 2 | c1 >> 4;
|
|
15610
|
-
bytes2[j++] = c1 << 4 | c2 >> 2;
|
|
15611
|
-
bytes2[j++] = c2 << 6 | c3;
|
|
15612
|
-
}
|
|
15613
|
-
return bytes2;
|
|
15614
|
-
};
|
|
15615
|
-
})();
|
|
15616
|
-
|
|
15617
|
-
// wasm-binary:./blake2b.wat
|
|
15618
|
-
var require_blake2b = __commonJS({
|
|
15619
|
-
"wasm-binary:./blake2b.wat"(exports2, module2) {
|
|
15620
|
-
module2.exports = __toBinary("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");
|
|
15621
|
-
}
|
|
15622
|
-
});
|
|
15623
|
-
|
|
15624
|
-
// wasm-module:./blake2b.wat
|
|
15625
|
-
var bytes = require_blake2b();
|
|
15626
|
-
var compiled = WebAssembly.compile(bytes);
|
|
15627
|
-
module.exports = async (imports) => {
|
|
15628
|
-
const instance = await WebAssembly.instantiate(await compiled, imports);
|
|
15629
|
-
return instance.exports;
|
|
15630
|
-
};
|
|
15439
|
+
/***/ 1681:
|
|
15440
|
+
/***/ (function(__unused_webpack_module, exports) {
|
|
15631
15441
|
|
|
15442
|
+
/*!
|
|
15443
|
+
* hash-wasm (https://www.npmjs.com/package/hash-wasm)
|
|
15444
|
+
* (c) Dani Biro
|
|
15445
|
+
* @license MIT
|
|
15446
|
+
*/
|
|
15632
15447
|
|
|
15633
|
-
|
|
15448
|
+
(function (global, factory) {
|
|
15449
|
+
true ? factory(exports) :
|
|
15450
|
+
0;
|
|
15451
|
+
})(this, (function (exports) { 'use strict';
|
|
15452
|
+
|
|
15453
|
+
var name$l = "adler32";
|
|
15454
|
+
var data$l = "AGFzbQEAAAABDANgAAF/YAAAYAF/AAMHBgABAgEAAgUEAQECAgYOAn8BQYCJBQt/AEGACAsHcAgGbWVtb3J5AgAOSGFzaF9HZXRCdWZmZXIAAAlIYXNoX0luaXQAAQtIYXNoX1VwZGF0ZQACCkhhc2hfRmluYWwAAw1IYXNoX0dldFN0YXRlAAQOSGFzaF9DYWxjdWxhdGUABQpTVEFURV9TSVpFAwEK6wkGBQBBgAkLCgBBAEEBNgKECAvjCAEHf0EAKAKECCIBQf//A3EhAiABQRB2IQMCQAJAIABBAUcNACACQQAtAIAJaiIBQY+AfGogASABQfD/A0sbIgEgA2oiBEEQdCIFQYCAPGogBSAEQfD/A0sbIAFyIQEMAQsCQAJAAkACQAJAIABBEEkNAEGACSEGIABBsCtJDQFBgAkhBgNAQQAhBQNAIAYgBWoiASgCACIEQf8BcSACaiICIANqIAIgBEEIdkH/AXFqIgJqIAIgBEEQdkH/AXFqIgJqIAIgBEEYdmoiAmogAiABQQRqKAIAIgRB/wFxaiICaiACIARBCHZB/wFxaiICaiACIARBEHZB/wFxaiICaiACIARBGHZqIgJqIAIgAUEIaigCACIEQf8BcWoiAmogAiAEQQh2Qf8BcWoiAmogAiAEQRB2Qf8BcWoiAmogAiAEQRh2aiIEaiAEIAFBDGooAgAiAUH/AXFqIgRqIAQgAUEIdkH/AXFqIgRqIAQgAUEQdkH/AXFqIgRqIAQgAUEYdmoiAmohAyAFQRBqIgVBsCtHDQALIANB8f8DcCEDIAJB8f8DcCECIAZBsCtqIQYgAEHQVGoiAEGvK0sNAAsgAEUNBCAAQQ9LDQEMAgsCQCAARQ0AAkACQCAAQQNxIgUNAEGACSEBIAAhBAwBCyAAQXxxIQRBACEBA0AgAiABQYAJai0AAGoiAiADaiEDIAUgAUEBaiIBRw0ACyAFQYAJaiEBCyAAQQRJDQADQCACIAEtAABqIgUgAS0AAWoiBiABLQACaiIAIAFBA2otAABqIgIgACAGIAUgA2pqamohAyABQQRqIQEgBEF8aiIEDQALCyACQY+AfGogAiACQfD/A0sbIANB8f8DcEEQdHIhAQwECwNAIAYoAgAiAUH/AXEgAmoiBCADaiAEIAFBCHZB/wFxaiIEaiAEIAFBEHZB/wFxaiIEaiAEIAFBGHZqIgRqIAQgBkEEaigCACIBQf8BcWoiBGogBCABQQh2Qf8BcWoiBGogBCABQRB2Qf8BcWoiBGogBCABQRh2aiIEaiAEIAZBCGooAgAiAUH/AXFqIgRqIAQgAUEIdkH/AXFqIgRqIAQgAUEQdkH/AXFqIgRqIAQgAUEYdmoiBGogBCAGQQxqKAIAIgFB/wFxaiIEaiAEIAFBCHZB/wFxaiIEaiAEIAFBEHZB/wFxaiIEaiAEIAFBGHZqIgJqIQMgBkEQaiEGIABBcGoiAEEPSw0ACyAARQ0BCyAAQX9qIQcCQCAAQQNxIgVFDQAgAEF8cSEAIAUhBCAGIQEDQCACIAEtAABqIgIgA2ohAyABQQFqIQEgBEF/aiIEDQALIAYgBWohBgsgB0EDSQ0AA0AgAiAGLQAAaiIBIAYtAAFqIgQgBi0AAmoiBSAGQQNqLQAAaiICIAUgBCABIANqampqIQMgBkEEaiEGIABBfGoiAA0ACwsgA0Hx/wNwIQMgAkHx/wNwIQILIAIgA0EQdHIhAQtBACABNgKECAsxAQF/QQBBACgChAgiAEEYdCAAQYD+A3FBCHRyIABBCHZBgP4DcSAAQRh2cnI2AoAJCwUAQYQICzsAQQBBATYChAggABACQQBBACgChAgiAEEYdCAAQYD+A3FBCHRyIABBCHZBgP4DcSAAQRh2cnI2AoAJCwsVAgBBgAgLBAQAAAAAQYQICwQBAAAA";
|
|
15455
|
+
var hash$l = "02ddbd17";
|
|
15456
|
+
var wasmJson$l = {
|
|
15457
|
+
name: name$l,
|
|
15458
|
+
data: data$l,
|
|
15459
|
+
hash: hash$l
|
|
15460
|
+
};
|
|
15634
15461
|
|
|
15635
|
-
|
|
15636
|
-
|
|
15462
|
+
/******************************************************************************
|
|
15463
|
+
Copyright (c) Microsoft Corporation.
|
|
15464
|
+
|
|
15465
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
|
15466
|
+
purpose with or without fee is hereby granted.
|
|
15467
|
+
|
|
15468
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
15469
|
+
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
15470
|
+
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
15471
|
+
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
15472
|
+
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
15473
|
+
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
15474
|
+
PERFORMANCE OF THIS SOFTWARE.
|
|
15475
|
+
***************************************************************************** */
|
|
15476
|
+
/* global Reflect, Promise, SuppressedError, Symbol, Iterator */
|
|
15477
|
+
|
|
15478
|
+
|
|
15479
|
+
function __awaiter(thisArg, _arguments, P, generator) {
|
|
15480
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
15481
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
15482
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
15483
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
15484
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
15485
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
15486
|
+
});
|
|
15487
|
+
}
|
|
15488
|
+
|
|
15489
|
+
typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
|
15490
|
+
var e = new Error(message);
|
|
15491
|
+
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
15492
|
+
};
|
|
15637
15493
|
|
|
15638
|
-
|
|
15639
|
-
|
|
15640
|
-
|
|
15641
|
-
|
|
15642
|
-
|
|
15643
|
-
|
|
15644
|
-
|
|
15645
|
-
|
|
15646
|
-
|
|
15647
|
-
|
|
15648
|
-
|
|
15649
|
-
|
|
15650
|
-
|
|
15651
|
-
|
|
15652
|
-
|
|
15653
|
-
|
|
15654
|
-
|
|
15655
|
-
|
|
15656
|
-
|
|
15657
|
-
|
|
15658
|
-
|
|
15659
|
-
|
|
15660
|
-
if (!(this instanceof Blake2b)) return new Blake2b(digestLength, key, salt, personal, noAssert)
|
|
15661
|
-
if (!wasm) throw new Error('WASM not loaded. Wait for Blake2b.ready(cb)')
|
|
15662
|
-
if (!digestLength) digestLength = 32
|
|
15663
|
-
|
|
15664
|
-
if (noAssert !== true) {
|
|
15665
|
-
assert(digestLength >= BYTES_MIN, 'digestLength must be at least ' + BYTES_MIN + ', was given ' + digestLength)
|
|
15666
|
-
assert(digestLength <= BYTES_MAX, 'digestLength must be at most ' + BYTES_MAX + ', was given ' + digestLength)
|
|
15667
|
-
if (key != null) {
|
|
15668
|
-
assert(key instanceof Uint8Array, 'key must be Uint8Array or Buffer')
|
|
15669
|
-
assert(key.length >= KEYBYTES_MIN, 'key must be at least ' + KEYBYTES_MIN + ', was given ' + key.length)
|
|
15670
|
-
assert(key.length <= KEYBYTES_MAX, 'key must be at least ' + KEYBYTES_MAX + ', was given ' + key.length)
|
|
15671
|
-
}
|
|
15672
|
-
if (salt != null) {
|
|
15673
|
-
assert(salt instanceof Uint8Array, 'salt must be Uint8Array or Buffer')
|
|
15674
|
-
assert(salt.length === SALTBYTES, 'salt must be exactly ' + SALTBYTES + ', was given ' + salt.length)
|
|
15675
|
-
}
|
|
15676
|
-
if (personal != null) {
|
|
15677
|
-
assert(personal instanceof Uint8Array, 'personal must be Uint8Array or Buffer')
|
|
15678
|
-
assert(personal.length === PERSONALBYTES, 'personal must be exactly ' + PERSONALBYTES + ', was given ' + personal.length)
|
|
15494
|
+
class Mutex {
|
|
15495
|
+
constructor() {
|
|
15496
|
+
this.mutex = Promise.resolve();
|
|
15497
|
+
}
|
|
15498
|
+
lock() {
|
|
15499
|
+
let begin = () => { };
|
|
15500
|
+
this.mutex = this.mutex.then(() => new Promise(begin));
|
|
15501
|
+
return new Promise((res) => {
|
|
15502
|
+
begin = res;
|
|
15503
|
+
});
|
|
15504
|
+
}
|
|
15505
|
+
dispatch(fn) {
|
|
15506
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
15507
|
+
const unlock = yield this.lock();
|
|
15508
|
+
try {
|
|
15509
|
+
return yield Promise.resolve(fn());
|
|
15510
|
+
}
|
|
15511
|
+
finally {
|
|
15512
|
+
unlock();
|
|
15513
|
+
}
|
|
15514
|
+
});
|
|
15515
|
+
}
|
|
15679
15516
|
}
|
|
15680
|
-
}
|
|
15681
15517
|
|
|
15682
|
-
|
|
15683
|
-
|
|
15684
|
-
|
|
15685
|
-
|
|
15518
|
+
var _a;
|
|
15519
|
+
function getGlobal() {
|
|
15520
|
+
if (typeof globalThis !== "undefined")
|
|
15521
|
+
return globalThis;
|
|
15522
|
+
if (typeof self !== "undefined")
|
|
15523
|
+
return self;
|
|
15524
|
+
if (typeof window !== "undefined")
|
|
15525
|
+
return window;
|
|
15526
|
+
return global;
|
|
15527
|
+
}
|
|
15528
|
+
const globalObject = getGlobal();
|
|
15529
|
+
const nodeBuffer = (_a = globalObject.Buffer) !== null && _a !== void 0 ? _a : null;
|
|
15530
|
+
const textEncoder = globalObject.TextEncoder
|
|
15531
|
+
? new globalObject.TextEncoder()
|
|
15532
|
+
: null;
|
|
15533
|
+
function intArrayToString(arr, len) {
|
|
15534
|
+
return String.fromCharCode(...arr.subarray(0, len));
|
|
15535
|
+
}
|
|
15536
|
+
function hexCharCodesToInt(a, b) {
|
|
15537
|
+
return ((((a & 0xf) + ((a >> 6) | ((a >> 3) & 0x8))) << 4) |
|
|
15538
|
+
((b & 0xf) + ((b >> 6) | ((b >> 3) & 0x8))));
|
|
15539
|
+
}
|
|
15540
|
+
function writeHexToUInt8(buf, str) {
|
|
15541
|
+
const size = str.length >> 1;
|
|
15542
|
+
for (let i = 0; i < size; i++) {
|
|
15543
|
+
const index = i << 1;
|
|
15544
|
+
buf[i] = hexCharCodesToInt(str.charCodeAt(index), str.charCodeAt(index + 1));
|
|
15545
|
+
}
|
|
15546
|
+
}
|
|
15547
|
+
function hexStringEqualsUInt8(str, buf) {
|
|
15548
|
+
if (str.length !== buf.length * 2) {
|
|
15549
|
+
return false;
|
|
15550
|
+
}
|
|
15551
|
+
for (let i = 0; i < buf.length; i++) {
|
|
15552
|
+
const strIndex = i << 1;
|
|
15553
|
+
if (buf[i] !==
|
|
15554
|
+
hexCharCodesToInt(str.charCodeAt(strIndex), str.charCodeAt(strIndex + 1))) {
|
|
15555
|
+
return false;
|
|
15556
|
+
}
|
|
15557
|
+
}
|
|
15558
|
+
return true;
|
|
15559
|
+
}
|
|
15560
|
+
const alpha = "a".charCodeAt(0) - 10;
|
|
15561
|
+
const digit = "0".charCodeAt(0);
|
|
15562
|
+
function getDigestHex(tmpBuffer, input, hashLength) {
|
|
15563
|
+
let p = 0;
|
|
15564
|
+
for (let i = 0; i < hashLength; i++) {
|
|
15565
|
+
let nibble = input[i] >>> 4;
|
|
15566
|
+
tmpBuffer[p++] = nibble > 9 ? nibble + alpha : nibble + digit;
|
|
15567
|
+
nibble = input[i] & 0xf;
|
|
15568
|
+
tmpBuffer[p++] = nibble > 9 ? nibble + alpha : nibble + digit;
|
|
15569
|
+
}
|
|
15570
|
+
return String.fromCharCode.apply(null, tmpBuffer);
|
|
15571
|
+
}
|
|
15572
|
+
const getUInt8Buffer = nodeBuffer !== null
|
|
15573
|
+
? (data) => {
|
|
15574
|
+
if (typeof data === "string") {
|
|
15575
|
+
const buf = nodeBuffer.from(data, "utf8");
|
|
15576
|
+
return new Uint8Array(buf.buffer, buf.byteOffset, buf.length);
|
|
15577
|
+
}
|
|
15578
|
+
if (nodeBuffer.isBuffer(data)) {
|
|
15579
|
+
return new Uint8Array(data.buffer, data.byteOffset, data.length);
|
|
15580
|
+
}
|
|
15581
|
+
if (ArrayBuffer.isView(data)) {
|
|
15582
|
+
return new Uint8Array(data.buffer, data.byteOffset, data.byteLength);
|
|
15583
|
+
}
|
|
15584
|
+
throw new Error("Invalid data type!");
|
|
15585
|
+
}
|
|
15586
|
+
: (data) => {
|
|
15587
|
+
if (typeof data === "string") {
|
|
15588
|
+
return textEncoder.encode(data);
|
|
15589
|
+
}
|
|
15590
|
+
if (ArrayBuffer.isView(data)) {
|
|
15591
|
+
return new Uint8Array(data.buffer, data.byteOffset, data.byteLength);
|
|
15592
|
+
}
|
|
15593
|
+
throw new Error("Invalid data type!");
|
|
15594
|
+
};
|
|
15595
|
+
const base64Chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
|
|
15596
|
+
const base64Lookup = new Uint8Array(256);
|
|
15597
|
+
for (let i = 0; i < base64Chars.length; i++) {
|
|
15598
|
+
base64Lookup[base64Chars.charCodeAt(i)] = i;
|
|
15599
|
+
}
|
|
15600
|
+
function encodeBase64(data, pad = true) {
|
|
15601
|
+
const len = data.length;
|
|
15602
|
+
const extraBytes = len % 3;
|
|
15603
|
+
const parts = [];
|
|
15604
|
+
const len2 = len - extraBytes;
|
|
15605
|
+
for (let i = 0; i < len2; i += 3) {
|
|
15606
|
+
const tmp = ((data[i] << 16) & 0xff0000) +
|
|
15607
|
+
((data[i + 1] << 8) & 0xff00) +
|
|
15608
|
+
(data[i + 2] & 0xff);
|
|
15609
|
+
const triplet = base64Chars.charAt((tmp >> 18) & 0x3f) +
|
|
15610
|
+
base64Chars.charAt((tmp >> 12) & 0x3f) +
|
|
15611
|
+
base64Chars.charAt((tmp >> 6) & 0x3f) +
|
|
15612
|
+
base64Chars.charAt(tmp & 0x3f);
|
|
15613
|
+
parts.push(triplet);
|
|
15614
|
+
}
|
|
15615
|
+
if (extraBytes === 1) {
|
|
15616
|
+
const tmp = data[len - 1];
|
|
15617
|
+
const a = base64Chars.charAt(tmp >> 2);
|
|
15618
|
+
const b = base64Chars.charAt((tmp << 4) & 0x3f);
|
|
15619
|
+
parts.push(`${a}${b}`);
|
|
15620
|
+
if (pad) {
|
|
15621
|
+
parts.push("==");
|
|
15622
|
+
}
|
|
15623
|
+
}
|
|
15624
|
+
else if (extraBytes === 2) {
|
|
15625
|
+
const tmp = (data[len - 2] << 8) + data[len - 1];
|
|
15626
|
+
const a = base64Chars.charAt(tmp >> 10);
|
|
15627
|
+
const b = base64Chars.charAt((tmp >> 4) & 0x3f);
|
|
15628
|
+
const c = base64Chars.charAt((tmp << 2) & 0x3f);
|
|
15629
|
+
parts.push(`${a}${b}${c}`);
|
|
15630
|
+
if (pad) {
|
|
15631
|
+
parts.push("=");
|
|
15632
|
+
}
|
|
15633
|
+
}
|
|
15634
|
+
return parts.join("");
|
|
15635
|
+
}
|
|
15636
|
+
function getDecodeBase64Length(data) {
|
|
15637
|
+
let bufferLength = Math.floor(data.length * 0.75);
|
|
15638
|
+
const len = data.length;
|
|
15639
|
+
if (data[len - 1] === "=") {
|
|
15640
|
+
bufferLength -= 1;
|
|
15641
|
+
if (data[len - 2] === "=") {
|
|
15642
|
+
bufferLength -= 1;
|
|
15643
|
+
}
|
|
15644
|
+
}
|
|
15645
|
+
return bufferLength;
|
|
15646
|
+
}
|
|
15647
|
+
function decodeBase64(data) {
|
|
15648
|
+
const bufferLength = getDecodeBase64Length(data);
|
|
15649
|
+
const len = data.length;
|
|
15650
|
+
const bytes = new Uint8Array(bufferLength);
|
|
15651
|
+
let p = 0;
|
|
15652
|
+
for (let i = 0; i < len; i += 4) {
|
|
15653
|
+
const encoded1 = base64Lookup[data.charCodeAt(i)];
|
|
15654
|
+
const encoded2 = base64Lookup[data.charCodeAt(i + 1)];
|
|
15655
|
+
const encoded3 = base64Lookup[data.charCodeAt(i + 2)];
|
|
15656
|
+
const encoded4 = base64Lookup[data.charCodeAt(i + 3)];
|
|
15657
|
+
bytes[p] = (encoded1 << 2) | (encoded2 >> 4);
|
|
15658
|
+
p += 1;
|
|
15659
|
+
bytes[p] = ((encoded2 & 15) << 4) | (encoded3 >> 2);
|
|
15660
|
+
p += 1;
|
|
15661
|
+
bytes[p] = ((encoded3 & 3) << 6) | (encoded4 & 63);
|
|
15662
|
+
p += 1;
|
|
15663
|
+
}
|
|
15664
|
+
return bytes;
|
|
15665
|
+
}
|
|
15686
15666
|
|
|
15687
|
-
|
|
15688
|
-
|
|
15689
|
-
|
|
15690
|
-
|
|
15667
|
+
const MAX_HEAP = 16 * 1024;
|
|
15668
|
+
const WASM_FUNC_HASH_LENGTH = 4;
|
|
15669
|
+
const wasmMutex = new Mutex();
|
|
15670
|
+
const wasmModuleCache = new Map();
|
|
15671
|
+
function WASMInterface(binary, hashLength) {
|
|
15672
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
15673
|
+
let wasmInstance = null;
|
|
15674
|
+
let memoryView = null;
|
|
15675
|
+
let initialized = false;
|
|
15676
|
+
if (typeof WebAssembly === "undefined") {
|
|
15677
|
+
throw new Error("WebAssembly is not supported in this environment!");
|
|
15678
|
+
}
|
|
15679
|
+
const writeMemory = (data, offset = 0) => {
|
|
15680
|
+
memoryView.set(data, offset);
|
|
15681
|
+
};
|
|
15682
|
+
const getMemory = () => memoryView;
|
|
15683
|
+
const getExports = () => wasmInstance.exports;
|
|
15684
|
+
const setMemorySize = (totalSize) => {
|
|
15685
|
+
wasmInstance.exports.Hash_SetMemorySize(totalSize);
|
|
15686
|
+
const arrayOffset = wasmInstance.exports.Hash_GetBuffer();
|
|
15687
|
+
const memoryBuffer = wasmInstance.exports.memory.buffer;
|
|
15688
|
+
memoryView = new Uint8Array(memoryBuffer, arrayOffset, totalSize);
|
|
15689
|
+
};
|
|
15690
|
+
const getStateSize = () => {
|
|
15691
|
+
const view = new DataView(wasmInstance.exports.memory.buffer);
|
|
15692
|
+
const stateSize = view.getUint32(wasmInstance.exports.STATE_SIZE, true);
|
|
15693
|
+
return stateSize;
|
|
15694
|
+
};
|
|
15695
|
+
const loadWASMPromise = wasmMutex.dispatch(() => __awaiter(this, void 0, void 0, function* () {
|
|
15696
|
+
if (!wasmModuleCache.has(binary.name)) {
|
|
15697
|
+
const asm = decodeBase64(binary.data);
|
|
15698
|
+
const promise = WebAssembly.compile(asm);
|
|
15699
|
+
wasmModuleCache.set(binary.name, promise);
|
|
15700
|
+
}
|
|
15701
|
+
const module = yield wasmModuleCache.get(binary.name);
|
|
15702
|
+
wasmInstance = yield WebAssembly.instantiate(module, {
|
|
15703
|
+
// env: {
|
|
15704
|
+
// emscripten_memcpy_big: (dest, src, num) => {
|
|
15705
|
+
// const memoryBuffer = wasmInstance.exports.memory.buffer;
|
|
15706
|
+
// const memView = new Uint8Array(memoryBuffer, 0);
|
|
15707
|
+
// memView.set(memView.subarray(src, src + num), dest);
|
|
15708
|
+
// },
|
|
15709
|
+
// print_memory: (offset, len) => {
|
|
15710
|
+
// const memoryBuffer = wasmInstance.exports.memory.buffer;
|
|
15711
|
+
// const memView = new Uint8Array(memoryBuffer, 0);
|
|
15712
|
+
// console.log('print_int32', memView.subarray(offset, offset + len));
|
|
15713
|
+
// },
|
|
15714
|
+
// },
|
|
15715
|
+
});
|
|
15716
|
+
// wasmInstance.exports._start();
|
|
15717
|
+
}));
|
|
15718
|
+
const setupInterface = () => __awaiter(this, void 0, void 0, function* () {
|
|
15719
|
+
if (!wasmInstance) {
|
|
15720
|
+
yield loadWASMPromise;
|
|
15721
|
+
}
|
|
15722
|
+
const arrayOffset = wasmInstance.exports.Hash_GetBuffer();
|
|
15723
|
+
const memoryBuffer = wasmInstance.exports.memory.buffer;
|
|
15724
|
+
memoryView = new Uint8Array(memoryBuffer, arrayOffset, MAX_HEAP);
|
|
15725
|
+
});
|
|
15726
|
+
const init = (bits = null) => {
|
|
15727
|
+
initialized = true;
|
|
15728
|
+
wasmInstance.exports.Hash_Init(bits);
|
|
15729
|
+
};
|
|
15730
|
+
const updateUInt8Array = (data) => {
|
|
15731
|
+
let read = 0;
|
|
15732
|
+
while (read < data.length) {
|
|
15733
|
+
const chunk = data.subarray(read, read + MAX_HEAP);
|
|
15734
|
+
read += chunk.length;
|
|
15735
|
+
memoryView.set(chunk);
|
|
15736
|
+
wasmInstance.exports.Hash_Update(chunk.length);
|
|
15737
|
+
}
|
|
15738
|
+
};
|
|
15739
|
+
const update = (data) => {
|
|
15740
|
+
if (!initialized) {
|
|
15741
|
+
throw new Error("update() called before init()");
|
|
15742
|
+
}
|
|
15743
|
+
const Uint8Buffer = getUInt8Buffer(data);
|
|
15744
|
+
updateUInt8Array(Uint8Buffer);
|
|
15745
|
+
};
|
|
15746
|
+
const digestChars = new Uint8Array(hashLength * 2);
|
|
15747
|
+
const digest = (outputType, padding = null) => {
|
|
15748
|
+
if (!initialized) {
|
|
15749
|
+
throw new Error("digest() called before init()");
|
|
15750
|
+
}
|
|
15751
|
+
initialized = false;
|
|
15752
|
+
wasmInstance.exports.Hash_Final(padding);
|
|
15753
|
+
if (outputType === "binary") {
|
|
15754
|
+
// the data is copied to allow GC of the original memory object
|
|
15755
|
+
return memoryView.slice(0, hashLength);
|
|
15756
|
+
}
|
|
15757
|
+
return getDigestHex(digestChars, memoryView, hashLength);
|
|
15758
|
+
};
|
|
15759
|
+
const save = () => {
|
|
15760
|
+
if (!initialized) {
|
|
15761
|
+
throw new Error("save() can only be called after init() and before digest()");
|
|
15762
|
+
}
|
|
15763
|
+
const stateOffset = wasmInstance.exports.Hash_GetState();
|
|
15764
|
+
const stateLength = getStateSize();
|
|
15765
|
+
const memoryBuffer = wasmInstance.exports.memory.buffer;
|
|
15766
|
+
const internalState = new Uint8Array(memoryBuffer, stateOffset, stateLength);
|
|
15767
|
+
// prefix is 4 bytes from SHA1 hash of the WASM binary
|
|
15768
|
+
// it is used to detect incompatible internal states between different versions of hash-wasm
|
|
15769
|
+
const prefixedState = new Uint8Array(WASM_FUNC_HASH_LENGTH + stateLength);
|
|
15770
|
+
writeHexToUInt8(prefixedState, binary.hash);
|
|
15771
|
+
prefixedState.set(internalState, WASM_FUNC_HASH_LENGTH);
|
|
15772
|
+
return prefixedState;
|
|
15773
|
+
};
|
|
15774
|
+
const load = (state) => {
|
|
15775
|
+
if (!(state instanceof Uint8Array)) {
|
|
15776
|
+
throw new Error("load() expects an Uint8Array generated by save()");
|
|
15777
|
+
}
|
|
15778
|
+
const stateOffset = wasmInstance.exports.Hash_GetState();
|
|
15779
|
+
const stateLength = getStateSize();
|
|
15780
|
+
const overallLength = WASM_FUNC_HASH_LENGTH + stateLength;
|
|
15781
|
+
const memoryBuffer = wasmInstance.exports.memory.buffer;
|
|
15782
|
+
if (state.length !== overallLength) {
|
|
15783
|
+
throw new Error(`Bad state length (expected ${overallLength} bytes, got ${state.length})`);
|
|
15784
|
+
}
|
|
15785
|
+
if (!hexStringEqualsUInt8(binary.hash, state.subarray(0, WASM_FUNC_HASH_LENGTH))) {
|
|
15786
|
+
throw new Error("This state was written by an incompatible hash implementation");
|
|
15787
|
+
}
|
|
15788
|
+
const internalState = state.subarray(WASM_FUNC_HASH_LENGTH);
|
|
15789
|
+
new Uint8Array(memoryBuffer, stateOffset, stateLength).set(internalState);
|
|
15790
|
+
initialized = true;
|
|
15791
|
+
};
|
|
15792
|
+
const isDataShort = (data) => {
|
|
15793
|
+
if (typeof data === "string") {
|
|
15794
|
+
// worst case is 4 bytes / char
|
|
15795
|
+
return data.length < MAX_HEAP / 4;
|
|
15796
|
+
}
|
|
15797
|
+
return data.byteLength < MAX_HEAP;
|
|
15798
|
+
};
|
|
15799
|
+
let canSimplify = isDataShort;
|
|
15800
|
+
switch (binary.name) {
|
|
15801
|
+
case "argon2":
|
|
15802
|
+
case "scrypt":
|
|
15803
|
+
canSimplify = () => true;
|
|
15804
|
+
break;
|
|
15805
|
+
case "blake2b":
|
|
15806
|
+
case "blake2s":
|
|
15807
|
+
// if there is a key at blake2 then cannot simplify
|
|
15808
|
+
canSimplify = (data, initParam) => initParam <= 512 && isDataShort(data);
|
|
15809
|
+
break;
|
|
15810
|
+
case "blake3":
|
|
15811
|
+
// if there is a key at blake3 then cannot simplify
|
|
15812
|
+
canSimplify = (data, initParam) => initParam === 0 && isDataShort(data);
|
|
15813
|
+
break;
|
|
15814
|
+
case "xxhash64": // cannot simplify
|
|
15815
|
+
case "xxhash3":
|
|
15816
|
+
case "xxhash128":
|
|
15817
|
+
case "crc64":
|
|
15818
|
+
canSimplify = () => false;
|
|
15819
|
+
break;
|
|
15820
|
+
}
|
|
15821
|
+
// shorthand for (init + update + digest) for better performance
|
|
15822
|
+
const calculate = (data, initParam = null, digestParam = null) => {
|
|
15823
|
+
if (!canSimplify(data, initParam)) {
|
|
15824
|
+
init(initParam);
|
|
15825
|
+
update(data);
|
|
15826
|
+
return digest("hex", digestParam);
|
|
15827
|
+
}
|
|
15828
|
+
const buffer = getUInt8Buffer(data);
|
|
15829
|
+
memoryView.set(buffer);
|
|
15830
|
+
wasmInstance.exports.Hash_Calculate(buffer.length, initParam, digestParam);
|
|
15831
|
+
return getDigestHex(digestChars, memoryView, hashLength);
|
|
15832
|
+
};
|
|
15833
|
+
yield setupInterface();
|
|
15834
|
+
return {
|
|
15835
|
+
getMemory,
|
|
15836
|
+
writeMemory,
|
|
15837
|
+
getExports,
|
|
15838
|
+
setMemorySize,
|
|
15839
|
+
init,
|
|
15840
|
+
update,
|
|
15841
|
+
digest,
|
|
15842
|
+
save,
|
|
15843
|
+
load,
|
|
15844
|
+
calculate,
|
|
15845
|
+
hashLength,
|
|
15846
|
+
};
|
|
15847
|
+
});
|
|
15848
|
+
}
|
|
15691
15849
|
|
|
15692
|
-
|
|
15693
|
-
|
|
15694
|
-
|
|
15695
|
-
|
|
15696
|
-
|
|
15850
|
+
function lockedCreate(mutex, binary, hashLength) {
|
|
15851
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
15852
|
+
const unlock = yield mutex.lock();
|
|
15853
|
+
const wasm = yield WASMInterface(binary, hashLength);
|
|
15854
|
+
unlock();
|
|
15855
|
+
return wasm;
|
|
15856
|
+
});
|
|
15857
|
+
}
|
|
15697
15858
|
|
|
15698
|
-
|
|
15699
|
-
|
|
15859
|
+
const mutex$l = new Mutex();
|
|
15860
|
+
let wasmCache$l = null;
|
|
15861
|
+
/**
|
|
15862
|
+
* Calculates Adler-32 hash. The resulting 32-bit hash is stored in
|
|
15863
|
+
* network byte order (big-endian).
|
|
15864
|
+
*
|
|
15865
|
+
* @param data Input data (string, Buffer or TypedArray)
|
|
15866
|
+
* @returns Computed hash as a hexadecimal string
|
|
15867
|
+
*/
|
|
15868
|
+
function adler32(data) {
|
|
15869
|
+
if (wasmCache$l === null) {
|
|
15870
|
+
return lockedCreate(mutex$l, wasmJson$l, 4).then((wasm) => {
|
|
15871
|
+
wasmCache$l = wasm;
|
|
15872
|
+
return wasmCache$l.calculate(data);
|
|
15873
|
+
});
|
|
15874
|
+
}
|
|
15875
|
+
try {
|
|
15876
|
+
const hash = wasmCache$l.calculate(data);
|
|
15877
|
+
return Promise.resolve(hash);
|
|
15878
|
+
}
|
|
15879
|
+
catch (err) {
|
|
15880
|
+
return Promise.reject(err);
|
|
15881
|
+
}
|
|
15882
|
+
}
|
|
15883
|
+
/**
|
|
15884
|
+
* Creates a new Adler-32 hash instance
|
|
15885
|
+
*/
|
|
15886
|
+
function createAdler32() {
|
|
15887
|
+
return WASMInterface(wasmJson$l, 4).then((wasm) => {
|
|
15888
|
+
wasm.init();
|
|
15889
|
+
const obj = {
|
|
15890
|
+
init: () => {
|
|
15891
|
+
wasm.init();
|
|
15892
|
+
return obj;
|
|
15893
|
+
},
|
|
15894
|
+
update: (data) => {
|
|
15895
|
+
wasm.update(data);
|
|
15896
|
+
return obj;
|
|
15897
|
+
},
|
|
15898
|
+
// biome-ignore lint/suspicious/noExplicitAny: Conflict with IHasher type
|
|
15899
|
+
digest: (outputType) => wasm.digest(outputType),
|
|
15900
|
+
save: () => wasm.save(),
|
|
15901
|
+
load: (data) => {
|
|
15902
|
+
wasm.load(data);
|
|
15903
|
+
return obj;
|
|
15904
|
+
},
|
|
15905
|
+
blockSize: 4,
|
|
15906
|
+
digestSize: 4,
|
|
15907
|
+
};
|
|
15908
|
+
return obj;
|
|
15909
|
+
});
|
|
15910
|
+
}
|
|
15700
15911
|
|
|
15701
|
-
|
|
15702
|
-
|
|
15912
|
+
var name$k = "argon2";
|
|
15913
|
+
var data$k = "AGFzbQEAAAABKQVgAX8Bf2AAAX9gEH9/f39/f39/f39/f39/f38AYAR/f39/AGACf38AAwYFAAECAwQFBgEBAoCAAgYIAX8BQZCoBAsHQQQGbWVtb3J5AgASSGFzaF9TZXRNZW1vcnlTaXplAAAOSGFzaF9HZXRCdWZmZXIAAQ5IYXNoX0NhbGN1bGF0ZQAECvEyBVgBAn9BACEBAkAgAEEAKAKICCICRg0AAkAgACACayIAQRB2IABBgIB8cSAASWoiAEAAQX9HDQBB/wHADwtBACEBQQBBACkDiAggAEEQdK18NwOICAsgAcALcAECfwJAQQAoAoAIIgANAEEAPwBBEHQiADYCgAhBACgCiAgiAUGAgCBGDQACQEGAgCAgAWsiAEEQdiAAQYCAfHEgAElqIgBAAEF/Rw0AQQAPC0EAQQApA4gIIABBEHStfDcDiAhBACgCgAghAAsgAAvcDgECfiAAIAQpAwAiECAAKQMAIhF8IBFCAYZC/v///x+DIBBC/////w+DfnwiEDcDACAMIBAgDCkDAIVCIIkiEDcDACAIIBAgCCkDACIRfCARQgGGQv7///8fgyAQQv////8Pg358IhA3AwAgBCAQIAQpAwCFQiiJIhA3AwAgACAQIAApAwAiEXwgEEL/////D4MgEUIBhkL+////H4N+fCIQNwMAIAwgECAMKQMAhUIwiSIQNwMAIAggECAIKQMAIhF8IBBC/////w+DIBFCAYZC/v///x+DfnwiEDcDACAEIBAgBCkDAIVCAYk3AwAgASAFKQMAIhAgASkDACIRfCARQgGGQv7///8fgyAQQv////8Pg358IhA3AwAgDSAQIA0pAwCFQiCJIhA3AwAgCSAQIAkpAwAiEXwgEUIBhkL+////H4MgEEL/////D4N+fCIQNwMAIAUgECAFKQMAhUIoiSIQNwMAIAEgECABKQMAIhF8IBBC/////w+DIBFCAYZC/v///x+DfnwiEDcDACANIBAgDSkDAIVCMIkiEDcDACAJIBAgCSkDACIRfCAQQv////8PgyARQgGGQv7///8fg358IhA3AwAgBSAQIAUpAwCFQgGJNwMAIAIgBikDACIQIAIpAwAiEXwgEUIBhkL+////H4MgEEL/////D4N+fCIQNwMAIA4gECAOKQMAhUIgiSIQNwMAIAogECAKKQMAIhF8IBFCAYZC/v///x+DIBBC/////w+DfnwiEDcDACAGIBAgBikDAIVCKIkiEDcDACACIBAgAikDACIRfCAQQv////8PgyARQgGGQv7///8fg358IhA3AwAgDiAQIA4pAwCFQjCJIhA3AwAgCiAQIAopAwAiEXwgEEL/////D4MgEUIBhkL+////H4N+fCIQNwMAIAYgECAGKQMAhUIBiTcDACADIAcpAwAiECADKQMAIhF8IBFCAYZC/v///x+DIBBC/////w+DfnwiEDcDACAPIBAgDykDAIVCIIkiEDcDACALIBAgCykDACIRfCARQgGGQv7///8fgyAQQv////8Pg358IhA3AwAgByAQIAcpAwCFQiiJIhA3AwAgAyAQIAMpAwAiEXwgEEL/////D4MgEUIBhkL+////H4N+fCIQNwMAIA8gECAPKQMAhUIwiSIQNwMAIAsgECALKQMAIhF8IBBC/////w+DIBFCAYZC/v///x+DfnwiEDcDACAHIBAgBykDAIVCAYk3AwAgACAFKQMAIhAgACkDACIRfCARQgGGQv7///8fgyAQQv////8Pg358IhA3AwAgDyAQIA8pAwCFQiCJIhA3AwAgCiAQIAopAwAiEXwgEUIBhkL+////H4MgEEL/////D4N+fCIQNwMAIAUgECAFKQMAhUIoiSIQNwMAIAAgECAAKQMAIhF8IBBC/////w+DIBFCAYZC/v///x+DfnwiEDcDACAPIBAgDykDAIVCMIkiEDcDACAKIBAgCikDACIRfCAQQv////8PgyARQgGGQv7///8fg358IhA3AwAgBSAQIAUpAwCFQgGJNwMAIAEgBikDACIQIAEpAwAiEXwgEUIBhkL+////H4MgEEL/////D4N+fCIQNwMAIAwgECAMKQMAhUIgiSIQNwMAIAsgECALKQMAIhF8IBFCAYZC/v///x+DIBBC/////w+DfnwiEDcDACAGIBAgBikDAIVCKIkiEDcDACABIBAgASkDACIRfCAQQv////8PgyARQgGGQv7///8fg358IhA3AwAgDCAQIAwpAwCFQjCJIhA3AwAgCyAQIAspAwAiEXwgEEL/////D4MgEUIBhkL+////H4N+fCIQNwMAIAYgECAGKQMAhUIBiTcDACACIAcpAwAiECACKQMAIhF8IBFCAYZC/v///x+DIBBC/////w+DfnwiEDcDACANIBAgDSkDAIVCIIkiEDcDACAIIBAgCCkDACIRfCARQgGGQv7///8fgyAQQv////8Pg358IhA3AwAgByAQIAcpAwCFQiiJIhA3AwAgAiAQIAIpAwAiEXwgEEL/////D4MgEUIBhkL+////H4N+fCIQNwMAIA0gECANKQMAhUIwiSIQNwMAIAggECAIKQMAIhF8IBBC/////w+DIBFCAYZC/v///x+DfnwiEDcDACAHIBAgBykDAIVCAYk3AwAgAyAEKQMAIhAgAykDACIRfCARQgGGQv7///8fgyAQQv////8Pg358IhA3AwAgDiAQIA4pAwCFQiCJIhA3AwAgCSAQIAkpAwAiEXwgEUIBhkL+////H4MgEEL/////D4N+fCIQNwMAIAQgECAEKQMAhUIoiSIQNwMAIAMgECADKQMAIhF8IBBC/////w+DIBFCAYZC/v///x+DfnwiEDcDACAOIBAgDikDAIVCMIkiEDcDACAJIBAgCSkDACIRfCAQQv////8PgyARQgGGQv7///8fg358IhA3AwAgBCAQIAQpAwCFQgGJNwMAC98aAQN/QQAhBEEAIAIpAwAgASkDAIU3A5AIQQAgAikDCCABKQMIhTcDmAhBACACKQMQIAEpAxCFNwOgCEEAIAIpAxggASkDGIU3A6gIQQAgAikDICABKQMghTcDsAhBACACKQMoIAEpAyiFNwO4CEEAIAIpAzAgASkDMIU3A8AIQQAgAikDOCABKQM4hTcDyAhBACACKQNAIAEpA0CFNwPQCEEAIAIpA0ggASkDSIU3A9gIQQAgAikDUCABKQNQhTcD4AhBACACKQNYIAEpA1iFNwPoCEEAIAIpA2AgASkDYIU3A/AIQQAgAikDaCABKQNohTcD+AhBACACKQNwIAEpA3CFNwOACUEAIAIpA3ggASkDeIU3A4gJQQAgAikDgAEgASkDgAGFNwOQCUEAIAIpA4gBIAEpA4gBhTcDmAlBACACKQOQASABKQOQAYU3A6AJQQAgAikDmAEgASkDmAGFNwOoCUEAIAIpA6ABIAEpA6ABhTcDsAlBACACKQOoASABKQOoAYU3A7gJQQAgAikDsAEgASkDsAGFNwPACUEAIAIpA7gBIAEpA7gBhTcDyAlBACACKQPAASABKQPAAYU3A9AJQQAgAikDyAEgASkD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";
|
|
15914
|
+
var hash$k = "e4cdc523";
|
|
15915
|
+
var wasmJson$k = {
|
|
15916
|
+
name: name$k,
|
|
15917
|
+
data: data$k,
|
|
15918
|
+
hash: hash$k
|
|
15919
|
+
};
|
|
15703
15920
|
|
|
15704
|
-
|
|
15705
|
-
|
|
15706
|
-
|
|
15707
|
-
|
|
15708
|
-
|
|
15709
|
-
|
|
15921
|
+
var name$j = "blake2b";
|
|
15922
|
+
var data$j = "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";
|
|
15923
|
+
var hash$j = "c6f286e6";
|
|
15924
|
+
var wasmJson$j = {
|
|
15925
|
+
name: name$j,
|
|
15926
|
+
data: data$j,
|
|
15927
|
+
hash: hash$j
|
|
15928
|
+
};
|
|
15710
15929
|
|
|
15711
|
-
|
|
15712
|
-
|
|
15713
|
-
|
|
15714
|
-
|
|
15930
|
+
const mutex$k = new Mutex();
|
|
15931
|
+
let wasmCache$k = null;
|
|
15932
|
+
function validateBits$4(bits) {
|
|
15933
|
+
if (!Number.isInteger(bits) || bits < 8 || bits > 512 || bits % 8 !== 0) {
|
|
15934
|
+
return new Error("Invalid variant! Valid values: 8, 16, ..., 512");
|
|
15935
|
+
}
|
|
15936
|
+
return null;
|
|
15937
|
+
}
|
|
15938
|
+
function getInitParam$1(outputBits, keyBits) {
|
|
15939
|
+
return outputBits | (keyBits << 16);
|
|
15940
|
+
}
|
|
15941
|
+
/**
|
|
15942
|
+
* Calculates BLAKE2b hash
|
|
15943
|
+
* @param data Input data (string, Buffer or TypedArray)
|
|
15944
|
+
* @param bits Number of output bits, which has to be a number
|
|
15945
|
+
* divisible by 8, between 8 and 512. Defaults to 512.
|
|
15946
|
+
* @param key Optional key (string, Buffer or TypedArray). Maximum length is 64 bytes.
|
|
15947
|
+
* @returns Computed hash as a hexadecimal string
|
|
15948
|
+
*/
|
|
15949
|
+
function blake2b(data, bits = 512, key = null) {
|
|
15950
|
+
if (validateBits$4(bits)) {
|
|
15951
|
+
return Promise.reject(validateBits$4(bits));
|
|
15952
|
+
}
|
|
15953
|
+
let keyBuffer = null;
|
|
15954
|
+
let initParam = bits;
|
|
15955
|
+
if (key !== null) {
|
|
15956
|
+
keyBuffer = getUInt8Buffer(key);
|
|
15957
|
+
if (keyBuffer.length > 64) {
|
|
15958
|
+
return Promise.reject(new Error("Max key length is 64 bytes"));
|
|
15959
|
+
}
|
|
15960
|
+
initParam = getInitParam$1(bits, keyBuffer.length);
|
|
15961
|
+
}
|
|
15962
|
+
const hashLength = bits / 8;
|
|
15963
|
+
if (wasmCache$k === null || wasmCache$k.hashLength !== hashLength) {
|
|
15964
|
+
return lockedCreate(mutex$k, wasmJson$j, hashLength).then((wasm) => {
|
|
15965
|
+
wasmCache$k = wasm;
|
|
15966
|
+
if (initParam > 512) {
|
|
15967
|
+
wasmCache$k.writeMemory(keyBuffer);
|
|
15968
|
+
}
|
|
15969
|
+
return wasmCache$k.calculate(data, initParam);
|
|
15970
|
+
});
|
|
15971
|
+
}
|
|
15972
|
+
try {
|
|
15973
|
+
if (initParam > 512) {
|
|
15974
|
+
wasmCache$k.writeMemory(keyBuffer);
|
|
15975
|
+
}
|
|
15976
|
+
const hash = wasmCache$k.calculate(data, initParam);
|
|
15977
|
+
return Promise.resolve(hash);
|
|
15978
|
+
}
|
|
15979
|
+
catch (err) {
|
|
15980
|
+
return Promise.reject(err);
|
|
15981
|
+
}
|
|
15982
|
+
}
|
|
15983
|
+
/**
|
|
15984
|
+
* Creates a new BLAKE2b hash instance
|
|
15985
|
+
* @param bits Number of output bits, which has to be a number
|
|
15986
|
+
* divisible by 8, between 8 and 512. Defaults to 512.
|
|
15987
|
+
* @param key Optional key (string, Buffer or TypedArray). Maximum length is 64 bytes.
|
|
15988
|
+
*/
|
|
15989
|
+
function createBLAKE2b(bits = 512, key = null) {
|
|
15990
|
+
if (validateBits$4(bits)) {
|
|
15991
|
+
return Promise.reject(validateBits$4(bits));
|
|
15992
|
+
}
|
|
15993
|
+
let keyBuffer = null;
|
|
15994
|
+
let initParam = bits;
|
|
15995
|
+
if (key !== null) {
|
|
15996
|
+
keyBuffer = getUInt8Buffer(key);
|
|
15997
|
+
if (keyBuffer.length > 64) {
|
|
15998
|
+
return Promise.reject(new Error("Max key length is 64 bytes"));
|
|
15999
|
+
}
|
|
16000
|
+
initParam = getInitParam$1(bits, keyBuffer.length);
|
|
16001
|
+
}
|
|
16002
|
+
const outputSize = bits / 8;
|
|
16003
|
+
return WASMInterface(wasmJson$j, outputSize).then((wasm) => {
|
|
16004
|
+
if (initParam > 512) {
|
|
16005
|
+
wasm.writeMemory(keyBuffer);
|
|
16006
|
+
}
|
|
16007
|
+
wasm.init(initParam);
|
|
16008
|
+
const obj = {
|
|
16009
|
+
init: initParam > 512
|
|
16010
|
+
? () => {
|
|
16011
|
+
wasm.writeMemory(keyBuffer);
|
|
16012
|
+
wasm.init(initParam);
|
|
16013
|
+
return obj;
|
|
16014
|
+
}
|
|
16015
|
+
: () => {
|
|
16016
|
+
wasm.init(initParam);
|
|
16017
|
+
return obj;
|
|
16018
|
+
},
|
|
16019
|
+
update: (data) => {
|
|
16020
|
+
wasm.update(data);
|
|
16021
|
+
return obj;
|
|
16022
|
+
},
|
|
16023
|
+
// biome-ignore lint/suspicious/noExplicitAny: Conflict with IHasher type
|
|
16024
|
+
digest: (outputType) => wasm.digest(outputType),
|
|
16025
|
+
save: () => wasm.save(),
|
|
16026
|
+
load: (data) => {
|
|
16027
|
+
wasm.load(data);
|
|
16028
|
+
return obj;
|
|
16029
|
+
},
|
|
16030
|
+
blockSize: 128,
|
|
16031
|
+
digestSize: outputSize,
|
|
16032
|
+
};
|
|
16033
|
+
return obj;
|
|
16034
|
+
});
|
|
16035
|
+
}
|
|
15715
16036
|
|
|
15716
|
-
|
|
15717
|
-
|
|
15718
|
-
|
|
16037
|
+
function encodeResult(salt, options, res) {
|
|
16038
|
+
const parameters = [
|
|
16039
|
+
`m=${options.memorySize}`,
|
|
16040
|
+
`t=${options.iterations}`,
|
|
16041
|
+
`p=${options.parallelism}`,
|
|
16042
|
+
].join(",");
|
|
16043
|
+
return `$argon2${options.hashType}$v=19$${parameters}$${encodeBase64(salt, false)}$${encodeBase64(res, false)}`;
|
|
16044
|
+
}
|
|
16045
|
+
const uint32View = new DataView(new ArrayBuffer(4));
|
|
16046
|
+
function int32LE(x) {
|
|
16047
|
+
uint32View.setInt32(0, x, true);
|
|
16048
|
+
return new Uint8Array(uint32View.buffer);
|
|
16049
|
+
}
|
|
16050
|
+
function hashFunc(blake512, buf, len) {
|
|
16051
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
16052
|
+
if (len <= 64) {
|
|
16053
|
+
const blake = yield createBLAKE2b(len * 8);
|
|
16054
|
+
blake.update(int32LE(len));
|
|
16055
|
+
blake.update(buf);
|
|
16056
|
+
return blake.digest("binary");
|
|
16057
|
+
}
|
|
16058
|
+
const r = Math.ceil(len / 32) - 2;
|
|
16059
|
+
const ret = new Uint8Array(len);
|
|
16060
|
+
blake512.init();
|
|
16061
|
+
blake512.update(int32LE(len));
|
|
16062
|
+
blake512.update(buf);
|
|
16063
|
+
let vp = blake512.digest("binary");
|
|
16064
|
+
ret.set(vp.subarray(0, 32), 0);
|
|
16065
|
+
for (let i = 1; i < r; i++) {
|
|
16066
|
+
blake512.init();
|
|
16067
|
+
blake512.update(vp);
|
|
16068
|
+
vp = blake512.digest("binary");
|
|
16069
|
+
ret.set(vp.subarray(0, 32), i * 32);
|
|
16070
|
+
}
|
|
16071
|
+
const partialBytesNeeded = len - 32 * r;
|
|
16072
|
+
let blakeSmall;
|
|
16073
|
+
if (partialBytesNeeded === 64) {
|
|
16074
|
+
blakeSmall = blake512;
|
|
16075
|
+
blakeSmall.init();
|
|
16076
|
+
}
|
|
16077
|
+
else {
|
|
16078
|
+
blakeSmall = yield createBLAKE2b(partialBytesNeeded * 8);
|
|
16079
|
+
}
|
|
16080
|
+
blakeSmall.update(vp);
|
|
16081
|
+
vp = blakeSmall.digest("binary");
|
|
16082
|
+
ret.set(vp.subarray(0, partialBytesNeeded), r * 32);
|
|
16083
|
+
return ret;
|
|
16084
|
+
});
|
|
16085
|
+
}
|
|
16086
|
+
function getHashType(type) {
|
|
16087
|
+
switch (type) {
|
|
16088
|
+
case "d":
|
|
16089
|
+
return 0;
|
|
16090
|
+
case "i":
|
|
16091
|
+
return 1;
|
|
16092
|
+
default:
|
|
16093
|
+
return 2;
|
|
16094
|
+
}
|
|
16095
|
+
}
|
|
16096
|
+
function argon2Internal(options) {
|
|
16097
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
16098
|
+
var _a;
|
|
16099
|
+
const { parallelism, iterations, hashLength } = options;
|
|
16100
|
+
const password = getUInt8Buffer(options.password);
|
|
16101
|
+
const salt = getUInt8Buffer(options.salt);
|
|
16102
|
+
const version = 0x13;
|
|
16103
|
+
const hashType = getHashType(options.hashType);
|
|
16104
|
+
const { memorySize } = options; // in KB
|
|
16105
|
+
const secret = getUInt8Buffer((_a = options.secret) !== null && _a !== void 0 ? _a : "");
|
|
16106
|
+
const [argon2Interface, blake512] = yield Promise.all([
|
|
16107
|
+
WASMInterface(wasmJson$k, 1024),
|
|
16108
|
+
createBLAKE2b(512),
|
|
16109
|
+
]);
|
|
16110
|
+
// last block is for storing the init vector
|
|
16111
|
+
argon2Interface.setMemorySize(memorySize * 1024 + 1024);
|
|
16112
|
+
const initVector = new Uint8Array(24);
|
|
16113
|
+
const initVectorView = new DataView(initVector.buffer);
|
|
16114
|
+
initVectorView.setInt32(0, parallelism, true);
|
|
16115
|
+
initVectorView.setInt32(4, hashLength, true);
|
|
16116
|
+
initVectorView.setInt32(8, memorySize, true);
|
|
16117
|
+
initVectorView.setInt32(12, iterations, true);
|
|
16118
|
+
initVectorView.setInt32(16, version, true);
|
|
16119
|
+
initVectorView.setInt32(20, hashType, true);
|
|
16120
|
+
argon2Interface.writeMemory(initVector, memorySize * 1024);
|
|
16121
|
+
blake512.init();
|
|
16122
|
+
blake512.update(initVector);
|
|
16123
|
+
blake512.update(int32LE(password.length));
|
|
16124
|
+
blake512.update(password);
|
|
16125
|
+
blake512.update(int32LE(salt.length));
|
|
16126
|
+
blake512.update(salt);
|
|
16127
|
+
blake512.update(int32LE(secret.length));
|
|
16128
|
+
blake512.update(secret);
|
|
16129
|
+
blake512.update(int32LE(0)); // associatedData length + associatedData
|
|
16130
|
+
const segments = Math.floor(memorySize / (parallelism * 4)); // length of each lane
|
|
16131
|
+
const lanes = segments * 4;
|
|
16132
|
+
const param = new Uint8Array(72);
|
|
16133
|
+
const H0 = blake512.digest("binary");
|
|
16134
|
+
param.set(H0);
|
|
16135
|
+
for (let lane = 0; lane < parallelism; lane++) {
|
|
16136
|
+
param.set(int32LE(0), 64);
|
|
16137
|
+
param.set(int32LE(lane), 68);
|
|
16138
|
+
let position = lane * lanes;
|
|
16139
|
+
let chunk = yield hashFunc(blake512, param, 1024);
|
|
16140
|
+
argon2Interface.writeMemory(chunk, position * 1024);
|
|
16141
|
+
position += 1;
|
|
16142
|
+
param.set(int32LE(1), 64);
|
|
16143
|
+
chunk = yield hashFunc(blake512, param, 1024);
|
|
16144
|
+
argon2Interface.writeMemory(chunk, position * 1024);
|
|
16145
|
+
}
|
|
16146
|
+
const C = new Uint8Array(1024);
|
|
16147
|
+
writeHexToUInt8(C, argon2Interface.calculate(new Uint8Array([]), memorySize));
|
|
16148
|
+
const res = yield hashFunc(blake512, C, hashLength);
|
|
16149
|
+
if (options.outputType === "hex") {
|
|
16150
|
+
const digestChars = new Uint8Array(hashLength * 2);
|
|
16151
|
+
return getDigestHex(digestChars, res, hashLength);
|
|
16152
|
+
}
|
|
16153
|
+
if (options.outputType === "encoded") {
|
|
16154
|
+
return encodeResult(salt, options, res);
|
|
16155
|
+
}
|
|
16156
|
+
// return binary format
|
|
16157
|
+
return res;
|
|
16158
|
+
});
|
|
16159
|
+
}
|
|
16160
|
+
const validateOptions$3 = (options) => {
|
|
16161
|
+
var _a;
|
|
16162
|
+
if (!options || typeof options !== "object") {
|
|
16163
|
+
throw new Error("Invalid options parameter. It requires an object.");
|
|
16164
|
+
}
|
|
16165
|
+
if (!options.password) {
|
|
16166
|
+
throw new Error("Password must be specified");
|
|
16167
|
+
}
|
|
16168
|
+
options.password = getUInt8Buffer(options.password);
|
|
16169
|
+
if (options.password.length < 1) {
|
|
16170
|
+
throw new Error("Password must be specified");
|
|
16171
|
+
}
|
|
16172
|
+
if (!options.salt) {
|
|
16173
|
+
throw new Error("Salt must be specified");
|
|
16174
|
+
}
|
|
16175
|
+
options.salt = getUInt8Buffer(options.salt);
|
|
16176
|
+
if (options.salt.length < 8) {
|
|
16177
|
+
throw new Error("Salt should be at least 8 bytes long");
|
|
16178
|
+
}
|
|
16179
|
+
options.secret = getUInt8Buffer((_a = options.secret) !== null && _a !== void 0 ? _a : "");
|
|
16180
|
+
if (!Number.isInteger(options.iterations) || options.iterations < 1) {
|
|
16181
|
+
throw new Error("Iterations should be a positive number");
|
|
16182
|
+
}
|
|
16183
|
+
if (!Number.isInteger(options.parallelism) || options.parallelism < 1) {
|
|
16184
|
+
throw new Error("Parallelism should be a positive number");
|
|
16185
|
+
}
|
|
16186
|
+
if (!Number.isInteger(options.hashLength) || options.hashLength < 4) {
|
|
16187
|
+
throw new Error("Hash length should be at least 4 bytes.");
|
|
16188
|
+
}
|
|
16189
|
+
if (!Number.isInteger(options.memorySize)) {
|
|
16190
|
+
throw new Error("Memory size should be specified.");
|
|
16191
|
+
}
|
|
16192
|
+
if (options.memorySize < 8 * options.parallelism) {
|
|
16193
|
+
throw new Error("Memory size should be at least 8 * parallelism.");
|
|
16194
|
+
}
|
|
16195
|
+
if (options.outputType === undefined) {
|
|
16196
|
+
options.outputType = "hex";
|
|
16197
|
+
}
|
|
16198
|
+
if (!["hex", "binary", "encoded"].includes(options.outputType)) {
|
|
16199
|
+
throw new Error(`Insupported output type ${options.outputType}. Valid values: ['hex', 'binary', 'encoded']`);
|
|
16200
|
+
}
|
|
16201
|
+
};
|
|
16202
|
+
/**
|
|
16203
|
+
* Calculates hash using the argon2i password-hashing function
|
|
16204
|
+
* @returns Computed hash
|
|
16205
|
+
*/
|
|
16206
|
+
function argon2i(options) {
|
|
16207
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
16208
|
+
validateOptions$3(options);
|
|
16209
|
+
return argon2Internal(Object.assign(Object.assign({}, options), { hashType: "i" }));
|
|
16210
|
+
});
|
|
16211
|
+
}
|
|
16212
|
+
/**
|
|
16213
|
+
* Calculates hash using the argon2id password-hashing function
|
|
16214
|
+
* @returns Computed hash
|
|
16215
|
+
*/
|
|
16216
|
+
function argon2id(options) {
|
|
16217
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
16218
|
+
validateOptions$3(options);
|
|
16219
|
+
return argon2Internal(Object.assign(Object.assign({}, options), { hashType: "id" }));
|
|
16220
|
+
});
|
|
16221
|
+
}
|
|
16222
|
+
/**
|
|
16223
|
+
* Calculates hash using the argon2d password-hashing function
|
|
16224
|
+
* @returns Computed hash
|
|
16225
|
+
*/
|
|
16226
|
+
function argon2d(options) {
|
|
16227
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
16228
|
+
validateOptions$3(options);
|
|
16229
|
+
return argon2Internal(Object.assign(Object.assign({}, options), { hashType: "d" }));
|
|
16230
|
+
});
|
|
16231
|
+
}
|
|
16232
|
+
const getHashParameters = (password, encoded, secret) => {
|
|
16233
|
+
const regex = /^\$argon2(id|i|d)\$v=([0-9]+)\$((?:[mtp]=[0-9]+,){2}[mtp]=[0-9]+)\$([A-Za-z0-9+/]+)\$([A-Za-z0-9+/]+)$/;
|
|
16234
|
+
const match = encoded.match(regex);
|
|
16235
|
+
if (!match) {
|
|
16236
|
+
throw new Error("Invalid hash");
|
|
16237
|
+
}
|
|
16238
|
+
const [, hashType, version, parameters, salt, hash] = match;
|
|
16239
|
+
if (version !== "19") {
|
|
16240
|
+
throw new Error(`Unsupported version: ${version}`);
|
|
16241
|
+
}
|
|
16242
|
+
const parsedParameters = {};
|
|
16243
|
+
const paramMap = { m: "memorySize", p: "parallelism", t: "iterations" };
|
|
16244
|
+
for (const x of parameters.split(",")) {
|
|
16245
|
+
const [n, v] = x.split("=");
|
|
16246
|
+
parsedParameters[paramMap[n]] = Number(v);
|
|
16247
|
+
}
|
|
16248
|
+
return Object.assign(Object.assign({}, parsedParameters), { password,
|
|
16249
|
+
secret, hashType: hashType, salt: decodeBase64(salt), hashLength: getDecodeBase64Length(hash), outputType: "encoded" });
|
|
16250
|
+
};
|
|
16251
|
+
const validateVerifyOptions$1 = (options) => {
|
|
16252
|
+
if (!options || typeof options !== "object") {
|
|
16253
|
+
throw new Error("Invalid options parameter. It requires an object.");
|
|
16254
|
+
}
|
|
16255
|
+
if (options.hash === undefined || typeof options.hash !== "string") {
|
|
16256
|
+
throw new Error("Hash should be specified");
|
|
16257
|
+
}
|
|
16258
|
+
};
|
|
16259
|
+
/**
|
|
16260
|
+
* Verifies password using the argon2 password-hashing function
|
|
16261
|
+
* @returns True if the encoded hash matches the password
|
|
16262
|
+
*/
|
|
16263
|
+
function argon2Verify(options) {
|
|
16264
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
16265
|
+
validateVerifyOptions$1(options);
|
|
16266
|
+
const params = getHashParameters(options.password, options.hash, options.secret);
|
|
16267
|
+
validateOptions$3(params);
|
|
16268
|
+
const hashStart = options.hash.lastIndexOf("$") + 1;
|
|
16269
|
+
const result = (yield argon2Internal(params));
|
|
16270
|
+
return result.substring(hashStart) === options.hash.substring(hashStart);
|
|
16271
|
+
});
|
|
16272
|
+
}
|
|
15719
16273
|
|
|
15720
|
-
|
|
15721
|
-
|
|
15722
|
-
|
|
15723
|
-
|
|
15724
|
-
|
|
16274
|
+
var name$i = "blake2s";
|
|
16275
|
+
var data$i = "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";
|
|
16276
|
+
var hash$i = "5c0ff166";
|
|
16277
|
+
var wasmJson$i = {
|
|
16278
|
+
name: name$i,
|
|
16279
|
+
data: data$i,
|
|
16280
|
+
hash: hash$i
|
|
16281
|
+
};
|
|
15725
16282
|
|
|
15726
|
-
|
|
15727
|
-
|
|
15728
|
-
|
|
16283
|
+
const mutex$j = new Mutex();
|
|
16284
|
+
let wasmCache$j = null;
|
|
16285
|
+
function validateBits$3(bits) {
|
|
16286
|
+
if (!Number.isInteger(bits) || bits < 8 || bits > 256 || bits % 8 !== 0) {
|
|
16287
|
+
return new Error("Invalid variant! Valid values: 8, 16, ..., 256");
|
|
16288
|
+
}
|
|
16289
|
+
return null;
|
|
16290
|
+
}
|
|
16291
|
+
function getInitParam(outputBits, keyBits) {
|
|
16292
|
+
return outputBits | (keyBits << 16);
|
|
16293
|
+
}
|
|
16294
|
+
/**
|
|
16295
|
+
* Calculates BLAKE2s hash
|
|
16296
|
+
* @param data Input data (string, Buffer or TypedArray)
|
|
16297
|
+
* @param bits Number of output bits, which has to be a number
|
|
16298
|
+
* divisible by 8, between 8 and 256. Defaults to 256.
|
|
16299
|
+
* @param key Optional key (string, Buffer or TypedArray). Maximum length is 32 bytes.
|
|
16300
|
+
* @returns Computed hash as a hexadecimal string
|
|
16301
|
+
*/
|
|
16302
|
+
function blake2s(data, bits = 256, key = null) {
|
|
16303
|
+
if (validateBits$3(bits)) {
|
|
16304
|
+
return Promise.reject(validateBits$3(bits));
|
|
16305
|
+
}
|
|
16306
|
+
let keyBuffer = null;
|
|
16307
|
+
let initParam = bits;
|
|
16308
|
+
if (key !== null) {
|
|
16309
|
+
keyBuffer = getUInt8Buffer(key);
|
|
16310
|
+
if (keyBuffer.length > 32) {
|
|
16311
|
+
return Promise.reject(new Error("Max key length is 32 bytes"));
|
|
16312
|
+
}
|
|
16313
|
+
initParam = getInitParam(bits, keyBuffer.length);
|
|
16314
|
+
}
|
|
16315
|
+
const hashLength = bits / 8;
|
|
16316
|
+
if (wasmCache$j === null || wasmCache$j.hashLength !== hashLength) {
|
|
16317
|
+
return lockedCreate(mutex$j, wasmJson$i, hashLength).then((wasm) => {
|
|
16318
|
+
wasmCache$j = wasm;
|
|
16319
|
+
if (initParam > 512) {
|
|
16320
|
+
wasmCache$j.writeMemory(keyBuffer);
|
|
16321
|
+
}
|
|
16322
|
+
return wasmCache$j.calculate(data, initParam);
|
|
16323
|
+
});
|
|
16324
|
+
}
|
|
16325
|
+
try {
|
|
16326
|
+
if (initParam > 512) {
|
|
16327
|
+
wasmCache$j.writeMemory(keyBuffer);
|
|
16328
|
+
}
|
|
16329
|
+
const hash = wasmCache$j.calculate(data, initParam);
|
|
16330
|
+
return Promise.resolve(hash);
|
|
16331
|
+
}
|
|
16332
|
+
catch (err) {
|
|
16333
|
+
return Promise.reject(err);
|
|
16334
|
+
}
|
|
16335
|
+
}
|
|
16336
|
+
/**
|
|
16337
|
+
* Creates a new BLAKE2s hash instance
|
|
16338
|
+
* @param bits Number of output bits, which has to be a number
|
|
16339
|
+
* divisible by 8, between 8 and 256. Defaults to 256.
|
|
16340
|
+
* @param key Optional key (string, Buffer or TypedArray). Maximum length is 32 bytes.
|
|
16341
|
+
*/
|
|
16342
|
+
function createBLAKE2s(bits = 256, key = null) {
|
|
16343
|
+
if (validateBits$3(bits)) {
|
|
16344
|
+
return Promise.reject(validateBits$3(bits));
|
|
16345
|
+
}
|
|
16346
|
+
let keyBuffer = null;
|
|
16347
|
+
let initParam = bits;
|
|
16348
|
+
if (key !== null) {
|
|
16349
|
+
keyBuffer = getUInt8Buffer(key);
|
|
16350
|
+
if (keyBuffer.length > 32) {
|
|
16351
|
+
return Promise.reject(new Error("Max key length is 32 bytes"));
|
|
16352
|
+
}
|
|
16353
|
+
initParam = getInitParam(bits, keyBuffer.length);
|
|
16354
|
+
}
|
|
16355
|
+
const outputSize = bits / 8;
|
|
16356
|
+
return WASMInterface(wasmJson$i, outputSize).then((wasm) => {
|
|
16357
|
+
if (initParam > 512) {
|
|
16358
|
+
wasm.writeMemory(keyBuffer);
|
|
16359
|
+
}
|
|
16360
|
+
wasm.init(initParam);
|
|
16361
|
+
const obj = {
|
|
16362
|
+
init: initParam > 512
|
|
16363
|
+
? () => {
|
|
16364
|
+
wasm.writeMemory(keyBuffer);
|
|
16365
|
+
wasm.init(initParam);
|
|
16366
|
+
return obj;
|
|
16367
|
+
}
|
|
16368
|
+
: () => {
|
|
16369
|
+
wasm.init(initParam);
|
|
16370
|
+
return obj;
|
|
16371
|
+
},
|
|
16372
|
+
update: (data) => {
|
|
16373
|
+
wasm.update(data);
|
|
16374
|
+
return obj;
|
|
16375
|
+
},
|
|
16376
|
+
// biome-ignore lint/suspicious/noExplicitAny: Conflict with IHasher type
|
|
16377
|
+
digest: (outputType) => wasm.digest(outputType),
|
|
16378
|
+
save: () => wasm.save(),
|
|
16379
|
+
load: (data) => {
|
|
16380
|
+
wasm.load(data);
|
|
16381
|
+
return obj;
|
|
16382
|
+
},
|
|
16383
|
+
blockSize: 64,
|
|
16384
|
+
digestSize: outputSize,
|
|
16385
|
+
};
|
|
16386
|
+
return obj;
|
|
16387
|
+
});
|
|
16388
|
+
}
|
|
15729
16389
|
|
|
15730
|
-
|
|
15731
|
-
wasm.blake2b_final(this.pointer)
|
|
16390
|
+
var name$h = "blake3";
|
|
16391
|
+
var data$h = "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IQEgAkFAaiICQcAASw0ACwsCQEHAACAHQf8BcSIGayIFIAIgBSACSRsiCUUNACAJQQNxIQtBACEFAkAgCUEESQ0AIAAgBmohByAJQfwAcSEIQQAhBQNAIAcgBWoiAkEoaiABIAVqIgotAAA6AAAgAkEpaiAKQQFqLQAAOgAAIAJBKmogCkECai0AADoAACACQStqIApBA2otAAA6AAAgCCAFQQRqIgVHDQALCwJAIAtFDQAgASAFaiEBIAUgBmogAGpBKGohBQNAIAUgAS0AADoAACABQQFqIQEgBUEBaiEFIAtBf2oiCw0ACwsgAC0AaCEHCyAAIAcgCWo6AGggA0HAAGokAAveAwQFfwN+BX8GfiMAQdABayIBJAACQCAAe6ciAkEALQCQigEiA08NAEEALQCKigFBBHIhBCABQShqIQVBACkDmIkBIQBBACkDkIkBIQZBACkDiIkBIQdBACkDgIkBIQggAyEJA0AgASAANwMYIAEgBjcDECABIAc3AwggASAINwMAIAEgA0EFdCIDQdGJAWoiCikDADcDKCABIANB2YkBaiILKQMANwMwIAEgA0HhiQFqIgwpAwA3AzggASADQemJAWoiDSkDADcDQCABIANB8YkBaikDADcDSCABIANB+YkBaikDADcDUCABIANBgYoBaikDADcDWCADQYmKAWopAwAhDiABQcAAOgBoIAEgDjcDYCABQgA3AyAgASAEOgBpIAEgADcDiAEgASAGNwOAASABIAc3A3ggASAINwNwIAFBkAFqIAFB8ABqIAVBwABCACAEQf8BcRACIAEpA7ABIQ4gASkDkAEhDyABKQO4ASEQIAEpA5gBIREgASkDwAEhEiABKQOgASETIA0gASkDyAEgASkDqAGFNwMAIAwgEiAThTcDACALIBAgEYU3AwAgCiAOIA+FNwMAIAlBf2oiCUH/AXEiAyACSw0AC0EAIAk6AJCKAQsgAUHQAWokAAvHCQIKfwV+IwBB4AJrIgUkAAJAAkAgAUGACEsNACAFIAA2AvwBIAVB/AFqIAFBgAhGIgZBECACQQEgA0EBQQIgBBABIAZBCnQiByABTw0BIAVB4ABqIgZCADcDACAFQdgAaiIIQgA3AwAgBUHQAGoiCUIANwMAIAVByABqIgpCADcDACAFQcAAaiILQgA3AwAgBUE4aiIMQgA3AwAgBUEwaiINQgA3AwAgBSADOgBqIAVCADcDKCAFQQA7AWggBUEAKQOAiQE3AwAgBUEAKQOIiQE3AwggBUEAKQOQiQE3AxAgBUEAKQOYiQE3AxggBSABQYAIRiIOrSACfDcDICAFIAAgB2pBACABIA4bEAQgBUGIAWpBMGogDSkDADcDACAFQYgBakE4aiAMKQMANwMAIAUgBSkDACIPNwOIASAFIAUpAwgiEDcDkAEgBSAFKQMQIhE3A5gBIAUgBSkDGCISNwOgASAFIAUpAyg3A7ABIAUtAGohACAFLQBpIQcgBSkDICECIAUtAGghASAFQYgBakHAAGogCykDADcDACAFQYgBakHIAGogCikDADcDACAFQYgBakHQAGogCSkDADcDACAFQYgBakHYAGogCCkDADcDACAFQYgBakHgAGogBikDADcDACAFIAE6APABIAUgAjcDqAEgBSAAIAdFckECciIAOgDxASAFIBI3A5gCIAUgETcDkAIgBSAQNwOIAiAFIA83A4ACIAVBoAJqIAVBgAJqIAVBsAFqIAEgAiAAQf8BcRACIAUpA8ACIQIgBSkDoAIhDyAFKQPIAiEQIAUpA6gCIREgBSkD0AIhEiAFKQOwAiETIAQgDkEFdGoiASAFKQPYAiAFKQO4AoU3AxggASASIBOFNwMQIAEgECARhTcDCCABIAIgD4U3AwBBAkEBIA4bIQYMAQsgAEIBIAFBf2pBCnZBAXKteUI/hYYiD6dBCnQiDiACIAMgBRAGIQcgACAOaiABIA5rIA9C////AYMgAnwgAyAFQcAAQSAgDkGACEsbahAGIQECQCAHQQFHDQAgBCAFKQMANwMAIAQgBSkDCDcDCCAEIAUpAxA3AxAgBCAFKQMYNwMYIAQgBSkDIDcDICAEIAUpAyg3AyggBCAFKQMwNwMwIAQgBSkDODcDOEECIQYMAQtBACEGQQAhAAJAIAEgB2oiCUECSQ0AIAlBfmoiCkEBdkEBaiIGQQNxIQ5BACEHAkAgCkEGSQ0AIAZB/P///wdxIQhBACEHIAVBiAFqIQEgBSEAA0AgASAANgIAIAFBDGogAEHAAWo2AgAgAUEIaiAAQYABajYCACABQQRqIABBwABqNgIAIABBgAJqIQAgAUEQaiEBIAggB0EEaiIHRw0ACwsgCkF+cSEIAkAgDkUNACAFIAdBBnRqIQEgBUGIAWogB0ECdGohAANAIAAgATYCACABQcAAaiEBIABBBGohACAOQX9qIg4NAAsLIAhBAmohAAsgBUGIAWogBkEBQgBBACADQQRyQQBBACAEEAEgACAJTw0AIAQgBkEFdGoiASAFIAZBBnRqIgApAwA3AwAgASAAKQMINwMIIAEgACkDEDcDECABIAApAxg3AxggBkEBaiEGCyAFQeACaiQAIAYLrRAIAn8EfgF/AX4EfwR+BH8EfiMAQfABayIBJAACQCAARQ0AAkBBAC0AkIoBIgINACABQTBqQQApA9CJATcDACABQThqQQApA9iJATcDACABQQApA6CJASIDNwMAIAFBACkDqIkBIgQ3AwggAUEAKQOwiQEiBTcDECABQQApA7iJASIGNwMYIAFBACkDyIkBNwMoQQAtAIqKASECQQAtAImKASEHQQApA8CJASEIQQAtAIiKASEJIAFBwABqQQApA+CJATcDACABQcgAakEAKQPoiQE3AwAgAUHQAGpBACkD8IkBNwMAIAFB2ABqQQApA/iJATcDACABQeAAakEAKQOAigE3AwAgASAJOgBoIAEgCDcDICABIAIgB0VyIgJBAnI6AGkgAUEoaiEKQgAhCEGACSELIAJBCnJB/wFxIQwDQCABQbABaiABIAogCUH/AXEgCCAMEAIgASABKQPQASINIAEpA7ABhTcDcCABIAEpA9gBIg4gASkDuAGFNwN4IAEgASkD4AEiDyABKQPAAYU3A4ABIAEgASkD6AEiECAGhTcDqAEgASAPIAWFNwOgASABIA4gBIU3A5gBIAEgDSADhTcDkAEgASAQIAEpA8gBhTcDiAEgAEHAACAAQcAASRsiEUF/aiESAkACQCARQQdxIhMNACABQfAAaiECIAshByARIRQMAQsgEUH4AHEhFCABQfAAaiECIAshBwNAIAcgAi0AADoAACAHQQFqIQcgAkEBaiECIBNBf2oiEw0ACwsCQCASQQdJDQADQCAHIAIpAAA3AAAgB0EIaiEHIAJBCGohAiAUQXhqIhQNAAsLIAhCAXwhCCALIBFqIQsgACARayIADQAMAgsLAkACQAJAQQAtAImKASIHQQZ0QQBBAC0AiIoBIhFrRg0AIAEgEToAaCABQQApA4CKATcDYCABQQApA/iJATcDWCABQQApA/CJATcDUCABQQApA+iJATcDSCABQQApA+CJATcDQCABQQApA9iJATcDOCABQQApA9CJATcDMCABQQApA8iJATcDKCABQQApA8CJASIINwMgIAFBACkDuIkBIgM3AxggAUEAKQOwiQEiBDcDECABQQApA6iJASIFNwMIIAFBACkDoIkBIgY3AwAgAUEALQCKigEiEyAHRXJBAnIiCzoAaSATQQRyIRNBACkDmIkBIQ1BACkDkIkBIQ5BACkDiIkBIQ9BACkDgIkBIRAMAQtBwAAhESABQcAAOgBoQgAhCCABQgA3AyAgAUEAKQOYiQEiDTcDGCABQQApA5CJASIONwMQIAFBACkDiIkBIg83AwggAUEAKQOAiQEiEDcDACABQQAtAIqKAUEEciITOgBpIAEgAkF+aiICQQV0IgdByYoBaikDADcDYCABIAdBwYoBaikDADcDWCABIAdBuYoBaikDADcDUCABIAdBsYoBaikDADcDSCABIAdBqYoBaikDADcDQCABIAdBoYoBaikDADcDOCABIAdBmYoBaikDADcDMCABIAdBkYoBaikDADcDKCATIQsgECEGIA8hBSAOIQQgDSEDIAJFDQELIAJBf2oiB0EFdCIUQZGKAWopAwAhFSAUQZmKAWopAwAhFiAUQaGKAWopAwAhFyAUQamKAWopAwAhGCABIAM3A4gBIAEgBDcDgAEgASAFNwN4IAEgBjcDcCABQbABaiABQfAAaiABQShqIhQgESAIIAtB/wFxEAIgASATOgBpIAFBwAA6AGggASAYNwNAIAEgFzcDOCABIBY3AzAgASAVNwMoIAFCADcDICABIA03AxggASAONwMQIAEgDzcDCCABIBA3AwAgASABKQPoASABKQPIAYU3A2AgASABKQPgASABKQPAAYU3A1ggASABKQPYASABKQO4AYU3A1AgASABKQPQASABKQOwAYU3A0ggB0UNACACQQV0QemJAWohAiATQf8BcSERA0AgAkFoaikDACEIIAJBcGopAwAhAyACQXhqKQMAIQQgAikDACEFIAEgDTcDiAEgASAONwOAASABIA83A3ggASAQNwNwIAFBsAFqIAFB8ABqIBRBwABCACAREAIgASATOgBpIAFBwAA6AGggASAFNwNAIAEgBDcDOCABIAM3AzAgASAINwMoIAFCADcDICABIA03AxggASAONwMQIAEgDzcDCCABIBA3AwAgASABKQPoASABKQPIAYU3A2AgASABKQPgASABKQPAAYU3A1ggASABKQPYASABKQO4AYU3A1AgASABKQPQASABKQOwAYU3A0ggAkFgaiECIAdBf2oiBw0ACwsgAUEoaiEJQgAhCEGACSELIBNBCHJB/wFxIQoDQCABQbABaiABIAlBwAAgCCAKEAIgASABKQPQASIDIAEpA7ABhTcDcCABIAEpA9gBIgQgASkDuAGFNwN4IAEgASkD4AEiBSABKQPAAYU3A4ABIAEgDSABKQPoASIGhTcDqAEgASAOIAWFNwOgASABIA8gBIU3A5gBIAEgECADhTcDkAEgASAGIAEpA8gBhTcDiAEgAEHAACAAQcAASRsiEUF/aiESAkACQCARQQdxIhMNACABQfAAaiECIAshByARIRQMAQsgEUH4AHEhFCABQfAAaiECIAshBwNAIAcgAi0AADoAACAHQQFqIQcgAkEBaiECIBNBf2oiEw0ACwsCQCASQQdJDQADQCAHIAIpAAA3AAAgB0EIaiEHIAJBCGohAiAUQXhqIhQNAAsLIAhCAXwhCCALIBFqIQsgACARayIADQALCyABQfABaiQAC6MCAQR+AkACQCAAQSBGDQBCq7OP/JGjs/DbACEBQv+kuYjFkdqCm38hAkLy5rvjo6f9p6V/IQNC58yn0NbQ67O7fyEEQQAhAAwBC0EAKQOYCSEBQQApA5AJIQJBACkDiAkhA0EAKQOACSEEQRAhAAtBACAAOgCKigFBAEIANwOAigFBAEIANwP4iQFBAEIANwPwiQFBAEIANwPoiQFBAEIANwPgiQFBAEIANwPYiQFBAEIANwPQiQFBAEIANwPIiQFBAEIANwPAiQFBACABNwO4iQFBACACNwOwiQFBACADNwOoiQFBACAENwOgiQFBACABNwOYiQFBACACNwOQiQFBACADNwOIiQFBACAENwOAiQFBAEEAOgCQigFBAEEAOwGIigELBgAgABADCwYAIAAQBwsGAEGAiQELqwIBBH4CQAJAIAFBIEYNAEKrs4/8kaOz8NsAIQNC/6S5iMWR2oKbfyEEQvLmu+Ojp/2npX8hBULnzKfQ1tDrs7t/IQZBACEBDAELQQApA5gJIQNBACkDkAkhBEEAKQOICSEFQQApA4AJIQZBECEBC0EAIAE6AIqKAUEAQgA3A4CKAUEAQgA3A/iJAUEAQgA3A/CJAUEAQgA3A+iJAUEAQgA3A+CJAUEAQgA3A9iJAUEAQgA3A9CJAUEAQgA3A8iJAUEAQgA3A8CJAUEAIAM3A7iJAUEAIAQ3A7CJAUEAIAU3A6iJAUEAIAY3A6CJAUEAIAM3A5iJAUEAIAQ3A5CJAUEAIAU3A4iJAUEAIAY3A4CJAUEAQQA6AJCKAUEAQQA7AYiKASAAEAMgAhAHCwsLAQBBgAgLBHgHAAA=";
|
|
16392
|
+
var hash$h = "215d875f";
|
|
16393
|
+
var wasmJson$h = {
|
|
16394
|
+
name: name$h,
|
|
16395
|
+
data: data$h,
|
|
16396
|
+
hash: hash$h
|
|
16397
|
+
};
|
|
15732
16398
|
|
|
15733
|
-
|
|
15734
|
-
|
|
15735
|
-
|
|
16399
|
+
const mutex$i = new Mutex();
|
|
16400
|
+
let wasmCache$i = null;
|
|
16401
|
+
function validateBits$2(bits) {
|
|
16402
|
+
if (!Number.isInteger(bits) || bits < 8 || bits % 8 !== 0) {
|
|
16403
|
+
return new Error("Invalid variant! Valid values: 8, 16, ...");
|
|
16404
|
+
}
|
|
16405
|
+
return null;
|
|
16406
|
+
}
|
|
16407
|
+
/**
|
|
16408
|
+
* Calculates BLAKE3 hash
|
|
16409
|
+
* @param data Input data (string, Buffer or TypedArray)
|
|
16410
|
+
* @param bits Number of output bits, which has to be a number
|
|
16411
|
+
* divisible by 8. Defaults to 256.
|
|
16412
|
+
* @param key Optional key (string, Buffer or TypedArray). Length should be 32 bytes.
|
|
16413
|
+
* @returns Computed hash as a hexadecimal string
|
|
16414
|
+
*/
|
|
16415
|
+
function blake3(data, bits = 256, key = null) {
|
|
16416
|
+
if (validateBits$2(bits)) {
|
|
16417
|
+
return Promise.reject(validateBits$2(bits));
|
|
16418
|
+
}
|
|
16419
|
+
let keyBuffer = null;
|
|
16420
|
+
let initParam = 0; // key is empty by default
|
|
16421
|
+
if (key !== null) {
|
|
16422
|
+
keyBuffer = getUInt8Buffer(key);
|
|
16423
|
+
if (keyBuffer.length !== 32) {
|
|
16424
|
+
return Promise.reject(new Error("Key length must be exactly 32 bytes"));
|
|
16425
|
+
}
|
|
16426
|
+
initParam = 32;
|
|
16427
|
+
}
|
|
16428
|
+
const hashLength = bits / 8;
|
|
16429
|
+
const digestParam = hashLength;
|
|
16430
|
+
if (wasmCache$i === null || wasmCache$i.hashLength !== hashLength) {
|
|
16431
|
+
return lockedCreate(mutex$i, wasmJson$h, hashLength).then((wasm) => {
|
|
16432
|
+
wasmCache$i = wasm;
|
|
16433
|
+
if (initParam === 32) {
|
|
16434
|
+
wasmCache$i.writeMemory(keyBuffer);
|
|
16435
|
+
}
|
|
16436
|
+
return wasmCache$i.calculate(data, initParam, digestParam);
|
|
16437
|
+
});
|
|
16438
|
+
}
|
|
16439
|
+
try {
|
|
16440
|
+
if (initParam === 32) {
|
|
16441
|
+
wasmCache$i.writeMemory(keyBuffer);
|
|
16442
|
+
}
|
|
16443
|
+
const hash = wasmCache$i.calculate(data, initParam, digestParam);
|
|
16444
|
+
return Promise.resolve(hash);
|
|
16445
|
+
}
|
|
16446
|
+
catch (err) {
|
|
16447
|
+
return Promise.reject(err);
|
|
16448
|
+
}
|
|
16449
|
+
}
|
|
16450
|
+
/**
|
|
16451
|
+
* Creates a new BLAKE3 hash instance
|
|
16452
|
+
* @param bits Number of output bits, which has to be a number
|
|
16453
|
+
* divisible by 8. Defaults to 256.
|
|
16454
|
+
* @param key Optional key (string, Buffer or TypedArray). Length should be 32 bytes.
|
|
16455
|
+
*/
|
|
16456
|
+
function createBLAKE3(bits = 256, key = null) {
|
|
16457
|
+
if (validateBits$2(bits)) {
|
|
16458
|
+
return Promise.reject(validateBits$2(bits));
|
|
16459
|
+
}
|
|
16460
|
+
let keyBuffer = null;
|
|
16461
|
+
let initParam = 0; // key is empty by default
|
|
16462
|
+
if (key !== null) {
|
|
16463
|
+
keyBuffer = getUInt8Buffer(key);
|
|
16464
|
+
if (keyBuffer.length !== 32) {
|
|
16465
|
+
return Promise.reject(new Error("Key length must be exactly 32 bytes"));
|
|
16466
|
+
}
|
|
16467
|
+
initParam = 32;
|
|
16468
|
+
}
|
|
16469
|
+
const outputSize = bits / 8;
|
|
16470
|
+
const digestParam = outputSize;
|
|
16471
|
+
return WASMInterface(wasmJson$h, outputSize).then((wasm) => {
|
|
16472
|
+
if (initParam === 32) {
|
|
16473
|
+
wasm.writeMemory(keyBuffer);
|
|
16474
|
+
}
|
|
16475
|
+
wasm.init(initParam);
|
|
16476
|
+
const obj = {
|
|
16477
|
+
init: initParam === 32
|
|
16478
|
+
? () => {
|
|
16479
|
+
wasm.writeMemory(keyBuffer);
|
|
16480
|
+
wasm.init(initParam);
|
|
16481
|
+
return obj;
|
|
16482
|
+
}
|
|
16483
|
+
: () => {
|
|
16484
|
+
wasm.init(initParam);
|
|
16485
|
+
return obj;
|
|
16486
|
+
},
|
|
16487
|
+
update: (data) => {
|
|
16488
|
+
wasm.update(data);
|
|
16489
|
+
return obj;
|
|
16490
|
+
},
|
|
16491
|
+
// biome-ignore lint/suspicious/noExplicitAny: Conflict with IHasher type
|
|
16492
|
+
digest: (outputType) => wasm.digest(outputType, digestParam),
|
|
16493
|
+
save: () => wasm.save(),
|
|
16494
|
+
load: (data) => {
|
|
16495
|
+
wasm.load(data);
|
|
16496
|
+
return obj;
|
|
16497
|
+
},
|
|
16498
|
+
blockSize: 64,
|
|
16499
|
+
digestSize: outputSize,
|
|
16500
|
+
};
|
|
16501
|
+
return obj;
|
|
16502
|
+
});
|
|
16503
|
+
}
|
|
15736
16504
|
|
|
15737
|
-
|
|
15738
|
-
|
|
15739
|
-
|
|
16505
|
+
var name$g = "crc32";
|
|
16506
|
+
var data$g = "AGFzbQEAAAABEQRgAAF/YAF/AGAAAGACf38AAwgHAAEBAQIAAwUEAQECAgYOAn8BQZDJBQt/AEGACAsHcAgGbWVtb3J5AgAOSGFzaF9HZXRCdWZmZXIAAAlIYXNoX0luaXQAAgtIYXNoX1VwZGF0ZQADCkhhc2hfRmluYWwABA1IYXNoX0dldFN0YXRlAAUOSGFzaF9DYWxjdWxhdGUABgpTVEFURV9TSVpFAwEKkggHBQBBgAkLwwMBA39BgIkBIQFBACECA0AgAUEAQQBBAEEAQQBBAEEAQQAgAkEBcWsgAHEgAkEBdnMiA0EBcWsgAHEgA0EBdnMiA0EBcWsgAHEgA0EBdnMiA0EBcWsgAHEgA0EBdnMiA0EBcWsgAHEgA0EBdnMiA0EBcWsgAHEgA0EBdnMiA0EBcWsgAHEgA0EBdnMiA0EBcWsgAHEgA0EBdnM2AgAgAUEEaiEBIAJBAWoiAkGAAkcNAAtBACEAA0AgAEGEkQFqIABBhIkBaigCACICQf8BcUECdEGAiQFqKAIAIAJBCHZzIgI2AgAgAEGEmQFqIAJB/wFxQQJ0QYCJAWooAgAgAkEIdnMiAjYCACAAQYShAWogAkH/AXFBAnRBgIkBaigCACACQQh2cyICNgIAIABBhKkBaiACQf8BcUECdEGAiQFqKAIAIAJBCHZzIgI2AgAgAEGEsQFqIAJB/wFxQQJ0QYCJAWooAgAgAkEIdnMiAjYCACAAQYS5AWogAkH/AXFBAnRBgIkBaigCACACQQh2cyICNgIAIABBhMEBaiACQf8BcUECdEGAiQFqKAIAIAJBCHZzNgIAIABBBGoiAEH8B0cNAAsLJwACQEEAKAKAyQEgAEYNACAAEAFBACAANgKAyQELQQBBADYChMkBC4gDAQN/QQAoAoTJAUF/cyEBQYAJIQICQCAAQQhJDQBBgAkhAgNAIAJBBGooAgAiA0EOdkH8B3FBgJEBaigCACADQRZ2QfwHcUGAiQFqKAIAcyADQQZ2QfwHcUGAmQFqKAIAcyADQf8BcUECdEGAoQFqKAIAcyACKAIAIAFzIgFBFnZB/AdxQYCpAWooAgBzIAFBDnZB/AdxQYCxAWooAgBzIAFBBnZB/AdxQYC5AWooAgBzIAFB/wFxQQJ0QYDBAWooAgBzIQEgAkEIaiECIABBeGoiAEEHSw0ACwsCQCAARQ0AAkACQCAAQQFxDQAgACEDDAELIAFB/wFxIAItAABzQQJ0QYCJAWooAgAgAUEIdnMhASACQQFqIQIgAEF/aiEDCyAAQQFGDQADQCABQf8BcSACLQAAc0ECdEGAiQFqKAIAIAFBCHZzIgFB/wFxIAJBAWotAABzQQJ0QYCJAWooAgAgAUEIdnMhASACQQJqIQIgA0F+aiIDDQALC0EAIAFBf3M2AoTJAQsyAQF/QQBBACgChMkBIgBBGHQgAEGA/gNxQQh0ciAAQQh2QYD+A3EgAEEYdnJyNgKACQsGAEGEyQELWQACQEEAKAKAyQEgAUYNACABEAFBACABNgKAyQELQQBBADYChMkBIAAQA0EAQQAoAoTJASIBQRh0IAFBgP4DcUEIdHIgAUEIdkGA/gNxIAFBGHZycjYCgAkLCwsBAEGACAsEBAAAAA==";
|
|
16507
|
+
var hash$g = "d2eba587";
|
|
16508
|
+
var wasmJson$g = {
|
|
16509
|
+
name: name$g,
|
|
16510
|
+
data: data$g,
|
|
16511
|
+
hash: hash$g
|
|
16512
|
+
};
|
|
15740
16513
|
|
|
15741
|
-
|
|
15742
|
-
|
|
15743
|
-
|
|
15744
|
-
|
|
16514
|
+
const mutex$h = new Mutex();
|
|
16515
|
+
let wasmCache$h = null;
|
|
16516
|
+
function validatePoly(poly) {
|
|
16517
|
+
if (!Number.isInteger(poly) || poly < 0 || poly > 0xffffffff) {
|
|
16518
|
+
return new Error("Polynomial must be a valid 32-bit long unsigned integer");
|
|
16519
|
+
}
|
|
16520
|
+
return null;
|
|
16521
|
+
}
|
|
16522
|
+
/**
|
|
16523
|
+
* Calculates CRC-32 hash
|
|
16524
|
+
* @param data Input data (string, Buffer or TypedArray)
|
|
16525
|
+
* @param polynomial Input polynomial (defaults to 0xedb88320, for CRC32C use 0x82f63b78)
|
|
16526
|
+
* @returns Computed hash as a hexadecimal string
|
|
16527
|
+
*/
|
|
16528
|
+
function crc32(data, polynomial = 0xedb88320) {
|
|
16529
|
+
if (validatePoly(polynomial)) {
|
|
16530
|
+
return Promise.reject(validatePoly(polynomial));
|
|
16531
|
+
}
|
|
16532
|
+
if (wasmCache$h === null) {
|
|
16533
|
+
return lockedCreate(mutex$h, wasmJson$g, 4).then((wasm) => {
|
|
16534
|
+
wasmCache$h = wasm;
|
|
16535
|
+
return wasmCache$h.calculate(data, polynomial);
|
|
16536
|
+
});
|
|
16537
|
+
}
|
|
16538
|
+
try {
|
|
16539
|
+
const hash = wasmCache$h.calculate(data, polynomial);
|
|
16540
|
+
return Promise.resolve(hash);
|
|
16541
|
+
}
|
|
16542
|
+
catch (err) {
|
|
16543
|
+
return Promise.reject(err);
|
|
16544
|
+
}
|
|
16545
|
+
}
|
|
16546
|
+
/**
|
|
16547
|
+
* Creates a new CRC-32 hash instance
|
|
16548
|
+
* @param polynomial Input polynomial (defaults to 0xedb88320, for CRC32C use 0x82f63b78)
|
|
16549
|
+
*/
|
|
16550
|
+
function createCRC32(polynomial = 0xedb88320) {
|
|
16551
|
+
if (validatePoly(polynomial)) {
|
|
16552
|
+
return Promise.reject(validatePoly(polynomial));
|
|
16553
|
+
}
|
|
16554
|
+
return WASMInterface(wasmJson$g, 4).then((wasm) => {
|
|
16555
|
+
wasm.init(polynomial);
|
|
16556
|
+
const obj = {
|
|
16557
|
+
init: () => {
|
|
16558
|
+
wasm.init(polynomial);
|
|
16559
|
+
return obj;
|
|
16560
|
+
},
|
|
16561
|
+
update: (data) => {
|
|
16562
|
+
wasm.update(data);
|
|
16563
|
+
return obj;
|
|
16564
|
+
},
|
|
16565
|
+
// biome-ignore lint/suspicious/noExplicitAny: Conflict with IHasher type
|
|
16566
|
+
digest: (outputType) => wasm.digest(outputType),
|
|
16567
|
+
save: () => wasm.save(),
|
|
16568
|
+
load: (data) => {
|
|
16569
|
+
wasm.load(data);
|
|
16570
|
+
return obj;
|
|
16571
|
+
},
|
|
16572
|
+
blockSize: 4,
|
|
16573
|
+
digestSize: 4,
|
|
16574
|
+
};
|
|
16575
|
+
return obj;
|
|
16576
|
+
});
|
|
16577
|
+
}
|
|
15745
16578
|
|
|
15746
|
-
|
|
15747
|
-
|
|
16579
|
+
var name$f = "crc64";
|
|
16580
|
+
var data$f = "AGFzbQEAAAABDANgAAF/YAAAYAF/AAMHBgABAgEAAQUEAQECAgYOAn8BQZCJBgt/AEGACAsHcAgGbWVtb3J5AgAOSGFzaF9HZXRCdWZmZXIAAAlIYXNoX0luaXQAAQtIYXNoX1VwZGF0ZQACCkhhc2hfRmluYWwAAw1IYXNoX0dldFN0YXRlAAQOSGFzaF9DYWxjdWxhdGUABQpTVEFURV9TSVpFAwEKgwgGBQBBgAkL9QMDAX4BfwJ+AkBBACkDgIkCQQApA4AJIgBRDQBBgIkBIQFCACECA0AgAUIAQgBCAEIAQgBCAEIAQgAgAkIBg30gAIMgAkIBiIUiA0IBg30gAIMgA0IBiIUiA0IBg30gAIMgA0IBiIUiA0IBg30gAIMgA0IBiIUiA0IBg30gAIMgA0IBiIUiA0IBg30gAIMgA0IBiIUiA0IBg30gAIMgA0IBiIUiA0IBg30gAIMgA0IBiIU3AwAgAUEIaiEBIAJCAXwiAkKAAlINAAtBACEBA0AgAUGImQFqIAFBiIkBaikDACICp0H/AXFBA3RBgIkBaikDACACQgiIhSICNwMAIAFBiKkBaiACp0H/AXFBA3RBgIkBaikDACACQgiIhSICNwMAIAFBiLkBaiACp0H/AXFBA3RBgIkBaikDACACQgiIhSICNwMAIAFBiMkBaiACp0H/AXFBA3RBgIkBaikDACACQgiIhSICNwMAIAFBiNkBaiACp0H/AXFBA3RBgIkBaikDACACQgiIhSICNwMAIAFBiOkBaiACp0H/AXFBA3RBgIkBaikDACACQgiIhSICNwMAIAFBiPkBaiACp0H/AXFBA3RBgIkBaikDACACQgiIhTcDACABQQhqIgFB+A9HDQALQQAgADcDgIkCC0EAQgA3A4iJAguUAwIBfgJ/QQApA4iJAkJ/hSEBQYAJIQICQCAAQQhJDQBBgAkhAgNAIAIpAwAgAYUiAUIwiKdB/wFxQQN0QYCZAWopAwAgAUI4iKdBA3RBgIkBaikDAIUgAUIoiKdB/wFxQQN0QYCpAWopAwCFIAFCIIinQf8BcUEDdEGAuQFqKQMAhSABpyIDQRV2QfgPcUGAyQFqKQMAhSADQQ12QfgPcUGA2QFqKQMAhSADQQV2QfgPcUGA6QFqKQMAhSADQf8BcUEDdEGA+QFqKQMAhSEBIAJBCGohAiAAQXhqIgBBB0sNAAsLAkAgAEUNAAJAAkAgAEEBcQ0AIAAhAwwBCyABQv8BgyACMQAAhadBA3RBgIkBaikDACABQgiIhSEBIAJBAWohAiAAQX9qIQMLIABBAUYNAANAIAFC/wGDIAIxAACFp0EDdEGAiQFqKQMAIAFCCIiFIgFC/wGDIAJBAWoxAACFp0EDdEGAiQFqKQMAIAFCCIiFIQEgAkECaiECIANBfmoiAw0ACwtBACABQn+FNwOIiQILZAEBfkEAQQApA4iJAiIAQjiGIABCgP4Dg0IohoQgAEKAgPwHg0IYhiAAQoCAgPgPg0IIhoSEIABCCIhCgICA+A+DIABCGIhCgID8B4OEIABCKIhCgP4DgyAAQjiIhISENwOACQsGAEGIiQILAgALCwsBAEGACAsECAAAAA==";
|
|
16581
|
+
var hash$f = "c5ac6c16";
|
|
16582
|
+
var wasmJson$f = {
|
|
16583
|
+
name: name$f,
|
|
16584
|
+
data: data$f,
|
|
16585
|
+
hash: hash$f
|
|
16586
|
+
};
|
|
15748
16587
|
|
|
15749
|
-
|
|
15750
|
-
|
|
16588
|
+
const mutex$g = new Mutex();
|
|
16589
|
+
let wasmCache$g = null;
|
|
16590
|
+
const polyBuffer = new Uint8Array(8);
|
|
16591
|
+
function parsePoly(poly) {
|
|
16592
|
+
const errText = "Polynomial must be provided as a 16 char long hex string";
|
|
16593
|
+
if (typeof poly !== "string" || poly.length !== 16) {
|
|
16594
|
+
return { hi: 0, lo: 0, err: new Error(errText) };
|
|
16595
|
+
}
|
|
16596
|
+
const hi = Number(`0x${poly.slice(0, 8)}`);
|
|
16597
|
+
const lo = Number(`0x${poly.slice(8)}`);
|
|
16598
|
+
if (Number.isNaN(hi) || Number.isNaN(lo)) {
|
|
16599
|
+
return { hi, lo, err: new Error(errText) };
|
|
16600
|
+
}
|
|
16601
|
+
return { hi, lo, err: null };
|
|
16602
|
+
}
|
|
16603
|
+
function writePoly(arr, lo, hi) {
|
|
16604
|
+
// write in little-endian format
|
|
16605
|
+
const buffer = new DataView(arr);
|
|
16606
|
+
buffer.setUint32(0, lo, true);
|
|
16607
|
+
buffer.setUint32(4, hi, true);
|
|
16608
|
+
}
|
|
16609
|
+
/**
|
|
16610
|
+
* Calculates CRC-64 hash
|
|
16611
|
+
* @param data Input data (string, Buffer or TypedArray)
|
|
16612
|
+
* @param polynomial Input polynomial (defaults to 'c96c5795d7870f42' - ECMA)
|
|
16613
|
+
* @returns Computed hash as a hexadecimal string
|
|
16614
|
+
*/
|
|
16615
|
+
function crc64(data, polynomial = "c96c5795d7870f42") {
|
|
16616
|
+
const { hi, lo, err } = parsePoly(polynomial);
|
|
16617
|
+
if (err !== null) {
|
|
16618
|
+
return Promise.reject(err);
|
|
16619
|
+
}
|
|
16620
|
+
if (wasmCache$g === null) {
|
|
16621
|
+
return lockedCreate(mutex$g, wasmJson$f, 8).then((wasm) => {
|
|
16622
|
+
wasmCache$g = wasm;
|
|
16623
|
+
writePoly(polyBuffer.buffer, lo, hi);
|
|
16624
|
+
wasmCache$g.writeMemory(polyBuffer);
|
|
16625
|
+
return wasmCache$g.calculate(data);
|
|
16626
|
+
});
|
|
16627
|
+
}
|
|
16628
|
+
try {
|
|
16629
|
+
writePoly(polyBuffer.buffer, lo, hi);
|
|
16630
|
+
wasmCache$g.writeMemory(polyBuffer);
|
|
16631
|
+
const hash = wasmCache$g.calculate(data);
|
|
16632
|
+
return Promise.resolve(hash);
|
|
16633
|
+
}
|
|
16634
|
+
catch (err) {
|
|
16635
|
+
return Promise.reject(err);
|
|
16636
|
+
}
|
|
16637
|
+
}
|
|
16638
|
+
/**
|
|
16639
|
+
* Creates a new CRC-64 hash instance
|
|
16640
|
+
* @param polynomial Input polynomial (defaults to 'c96c5795d7870f42' - ECMA)
|
|
16641
|
+
*/
|
|
16642
|
+
function createCRC64(polynomial = "c96c5795d7870f42") {
|
|
16643
|
+
const { hi, lo, err } = parsePoly(polynomial);
|
|
16644
|
+
if (err !== null) {
|
|
16645
|
+
return Promise.reject(err);
|
|
16646
|
+
}
|
|
16647
|
+
return WASMInterface(wasmJson$f, 8).then((wasm) => {
|
|
16648
|
+
const instanceBuffer = new Uint8Array(8);
|
|
16649
|
+
writePoly(instanceBuffer.buffer, lo, hi);
|
|
16650
|
+
wasm.writeMemory(instanceBuffer);
|
|
16651
|
+
wasm.init();
|
|
16652
|
+
const obj = {
|
|
16653
|
+
init: () => {
|
|
16654
|
+
wasm.writeMemory(instanceBuffer);
|
|
16655
|
+
wasm.init();
|
|
16656
|
+
return obj;
|
|
16657
|
+
},
|
|
16658
|
+
update: (data) => {
|
|
16659
|
+
wasm.update(data);
|
|
16660
|
+
return obj;
|
|
16661
|
+
},
|
|
16662
|
+
// biome-ignore lint/suspicious/noExplicitAny: Conflict with IHasher type
|
|
16663
|
+
digest: (outputType) => wasm.digest(outputType),
|
|
16664
|
+
save: () => wasm.save(),
|
|
16665
|
+
load: (data) => {
|
|
16666
|
+
wasm.load(data);
|
|
16667
|
+
return obj;
|
|
16668
|
+
},
|
|
16669
|
+
blockSize: 8,
|
|
16670
|
+
digestSize: 8,
|
|
16671
|
+
};
|
|
16672
|
+
return obj;
|
|
16673
|
+
});
|
|
16674
|
+
}
|
|
15751
16675
|
|
|
15752
|
-
|
|
15753
|
-
|
|
16676
|
+
var name$e = "md4";
|
|
16677
|
+
var data$e = "AGFzbQEAAAABEgRgAAF/YAAAYAF/AGACf38BfwMIBwABAgMBAAIFBAEBAgIGDgJ/AUGgigULfwBBgAgLB3AIBm1lbW9yeQIADkhhc2hfR2V0QnVmZmVyAAAJSGFzaF9Jbml0AAELSGFzaF9VcGRhdGUAAgpIYXNoX0ZpbmFsAAQNSGFzaF9HZXRTdGF0ZQAFDkhhc2hfQ2FsY3VsYXRlAAYKU1RBVEVfU0laRQMBCucUBwUAQYAJCy0AQQBC/rnrxemOlZkQNwKQiQFBAEKBxpS6lvHq5m83AoiJAUEAQgA3AoCJAQu+BQEHf0EAQQAoAoCJASIBIABqQf////8BcSICNgKAiQFBAEEAKAKEiQEgAiABSWogAEEddmo2AoSJAQJAAkACQAJAAkACQCABQT9xIgMNAEGACSEEDAELIABBwAAgA2siBUkNASAFQQNxIQZBACEBAkAgA0E/c0EDSQ0AIANBgIkBaiEEIAVB/ABxIQdBACEBA0AgBCABaiICQRhqIAFBgAlqLQAAOgAAIAJBGWogAUGBCWotAAA6AAAgAkEaaiABQYIJai0AADoAACACQRtqIAFBgwlqLQAAOgAAIAcgAUEEaiIBRw0ACwsCQCAGRQ0AIANBmIkBaiECA0AgAiABaiABQYAJai0AADoAACABQQFqIQEgBkF/aiIGDQALC0GYiQFBwAAQAxogACAFayEAIAVBgAlqIQQLIABBwABPDQEgACECDAILIABFDQIgAEEDcSEGQQAhAQJAIABBBEkNACADQYCJAWohBCAAQXxxIQBBACEBA0AgBCABaiICQRhqIAFBgAlqLQAAOgAAIAJBGWogAUGBCWotAAA6AAAgAkEaaiABQYIJai0AADoAACACQRtqIAFBgwlqLQAAOgAAIAAgAUEEaiIBRw0ACwsgBkUNAiADQZiJAWohAgNAIAIgAWogAUGACWotAAA6AAAgAUEBaiEBIAZBf2oiBg0ADAMLCyAAQT9xIQIgBCAAQUBxEAMhBAsgAkUNACACQQNxIQZBACEBAkAgAkEESQ0AIAJBPHEhAEEAIQEDQCABQZiJAWogBCABaiICLQAAOgAAIAFBmYkBaiACQQFqLQAAOgAAIAFBmokBaiACQQJqLQAAOgAAIAFBm4kBaiACQQNqLQAAOgAAIAAgAUEEaiIBRw0ACwsgBkUNAANAIAFBmIkBaiAEIAFqLQAAOgAAIAFBAWohASAGQX9qIgYNAAsLC+sKARd/QQAoApSJASECQQAoApCJASEDQQAoAoyJASEEQQAoAoiJASEFA0AgACgCHCIGIAAoAhQiByAAKAIYIgggACgCECIJIAAoAiwiCiAAKAIoIgsgACgCJCIMIAAoAiAiDSALIAggACgCCCIOIANqIAAoAgQiDyACaiAEIAMgAnNxIAJzIAVqIAAoAgAiEGpBA3ciESAEIANzcSADc2pBB3ciEiARIARzcSAEc2pBC3ciE2ogEiAHaiAJIBFqIAAoAgwiFCAEaiATIBIgEXNxIBFzakETdyIRIBMgEnNxIBJzakEDdyISIBEgE3NxIBNzakEHdyITIBIgEXNxIBFzakELdyIVaiATIAxqIBIgDWogESAGaiAVIBMgEnNxIBJzakETdyIRIBUgE3NxIBNzakEDdyISIBEgFXNxIBVzakEHdyITIBIgEXNxIBFzakELdyIVIAAoAjgiFmogEyAAKAI0IhdqIBIgACgCMCIYaiARIApqIBUgEyASc3EgEnNqQRN3IhIgFSATc3EgE3NqQQN3IhMgEiAVc3EgFXNqQQd3IhUgEyASc3EgEnNqQQt3IhFqIAkgFWogECATaiASIAAoAjwiCWogESAVIBNzcSATc2pBE3ciEiARIBVycSARIBVxcmpBmfOJ1AVqQQN3IhMgEiARcnEgEiARcXJqQZnzidQFakEFdyIRIBMgEnJxIBMgEnFyakGZ84nUBWpBCXciFWogByARaiAPIBNqIBggEmogFSARIBNycSARIBNxcmpBmfOJ1AVqQQ13IhIgFSARcnEgFSARcXJqQZnzidQFakEDdyIRIBIgFXJxIBIgFXFyakGZ84nUBWpBBXciEyARIBJycSARIBJxcmpBmfOJ1AVqQQl3IhVqIAggE2ogDiARaiAXIBJqIBUgEyARcnEgEyARcXJqQZnzidQFakENdyIRIBUgE3JxIBUgE3FyakGZ84nUBWpBA3ciEiARIBVycSARIBVxcmpBmfOJ1AVqQQV3IhMgEiARcnEgEiARcXJqQZnzidQFakEJdyIVaiAGIBNqIBQgEmogFiARaiAVIBMgEnJxIBMgEnFyakGZ84nUBWpBDXciESAVIBNycSAVIBNxcmpBmfOJ1AVqQQN3IhIgESAVcnEgESAVcXJqQZnzidQFakEFdyITIBIgEXJxIBIgEXFyakGZ84nUBWpBCXciFWogECASaiAJIBFqIBUgEyAScnEgEyAScXJqQZnzidQFakENdyIGIBVzIhIgE3NqQaHX5/YGakEDdyIRIAZzIA0gE2ogEiARc2pBodfn9gZqQQl3IhJzakGh1+f2BmpBC3ciE2ogDiARaiATIBJzIBggBmogEiARcyATc2pBodfn9gZqQQ93IhFzakGh1+f2BmpBA3ciFSARcyALIBJqIBEgE3MgFXNqQaHX5/YGakEJdyISc2pBodfn9gZqQQt3IhNqIA8gFWogEyAScyAWIBFqIBIgFXMgE3NqQaHX5/YGakEPdyIRc2pBodfn9gZqQQN3IhUgEXMgDCASaiARIBNzIBVzakGh1+f2BmpBCXciEnNqQaHX5/YGakELdyITaiAUIBVqIBMgEnMgFyARaiASIBVzIBNzakGh1+f2BmpBD3ciEXNqQaHX5/YGakEDdyIVIBFzIAogEmogESATcyAVc2pBodfn9gZqQQl3IhJzakGh1+f2BmpBC3ciEyADaiEDIAkgEWogEiAVcyATc2pBodfn9gZqQQ93IARqIQQgEiACaiECIBUgBWohBSAAQcAAaiEAIAFBQGoiAQ0AC0EAIAI2ApSJAUEAIAM2ApCJAUEAIAQ2AoyJAUEAIAU2AoiJASAAC8gDAQV/QQAoAoCJAUE/cSIAQZiJAWpBgAE6AAAgAEEBaiEBAkACQAJAAkAgAEE/cyICQQdLDQAgAkUNASABQZiJAWpBADoAACACQQFGDQEgAEGaiQFqQQA6AAAgAkECRg0BIABBm4kBakEAOgAAIAJBA0YNASAAQZyJAWpBADoAACACQQRGDQEgAEGdiQFqQQA6AAAgAkEFRg0BIABBnokBakEAOgAAIAJBBkYNASAAQZ+JAWpBADoAAAwBCyACQQhGDQJBNiAAayIDIQQCQCACQQNxIgBFDQBBACAAayEEQQAhAANAIABBz4kBakEAOgAAIAQgAEF/aiIARw0ACyADIABqIQQLIANBA0kNAgwBC0GYiQFBwAAQAxpBACEBQTchBAsgAUGAiQFqIQBBfyECA0AgACAEakEVakEANgAAIABBfGohACAEIAJBBGoiAkcNAAsLQQBBACgChIkBNgLUiQFBAEEAKAKAiQEiAEEVdjoA04kBQQAgAEENdjoA0okBQQAgAEEFdjoA0YkBQQAgAEEDdCIAOgDQiQFBACAANgKAiQFBmIkBQcAAEAMaQQBBACkCiIkBNwOACUEAQQApApCJATcDiAkLBgBBgIkBCzMAQQBC/rnrxemOlZkQNwKQiQFBAEKBxpS6lvHq5m83AoiJAUEAQgA3AoCJASAAEAIQBAsLCwEAQYAICwSYAAAA";
|
|
16678
|
+
var hash$e = "bd8ce7c7";
|
|
16679
|
+
var wasmJson$e = {
|
|
16680
|
+
name: name$e,
|
|
16681
|
+
data: data$e,
|
|
16682
|
+
hash: hash$e
|
|
16683
|
+
};
|
|
15754
16684
|
|
|
15755
|
-
|
|
15756
|
-
|
|
15757
|
-
|
|
15758
|
-
|
|
15759
|
-
|
|
16685
|
+
const mutex$f = new Mutex();
|
|
16686
|
+
let wasmCache$f = null;
|
|
16687
|
+
/**
|
|
16688
|
+
* Calculates MD4 hash
|
|
16689
|
+
* @param data Input data (string, Buffer or TypedArray)
|
|
16690
|
+
* @returns Computed hash as a hexadecimal string
|
|
16691
|
+
*/
|
|
16692
|
+
function md4(data) {
|
|
16693
|
+
if (wasmCache$f === null) {
|
|
16694
|
+
return lockedCreate(mutex$f, wasmJson$e, 16).then((wasm) => {
|
|
16695
|
+
wasmCache$f = wasm;
|
|
16696
|
+
return wasmCache$f.calculate(data);
|
|
16697
|
+
});
|
|
16698
|
+
}
|
|
16699
|
+
try {
|
|
16700
|
+
const hash = wasmCache$f.calculate(data);
|
|
16701
|
+
return Promise.resolve(hash);
|
|
16702
|
+
}
|
|
16703
|
+
catch (err) {
|
|
16704
|
+
return Promise.reject(err);
|
|
16705
|
+
}
|
|
16706
|
+
}
|
|
16707
|
+
/**
|
|
16708
|
+
* Creates a new MD4 hash instance
|
|
16709
|
+
*/
|
|
16710
|
+
function createMD4() {
|
|
16711
|
+
return WASMInterface(wasmJson$e, 16).then((wasm) => {
|
|
16712
|
+
wasm.init();
|
|
16713
|
+
const obj = {
|
|
16714
|
+
init: () => {
|
|
16715
|
+
wasm.init();
|
|
16716
|
+
return obj;
|
|
16717
|
+
},
|
|
16718
|
+
update: (data) => {
|
|
16719
|
+
wasm.update(data);
|
|
16720
|
+
return obj;
|
|
16721
|
+
},
|
|
16722
|
+
// biome-ignore lint/suspicious/noExplicitAny: Conflict with IHasher type
|
|
16723
|
+
digest: (outputType) => wasm.digest(outputType),
|
|
16724
|
+
save: () => wasm.save(),
|
|
16725
|
+
load: (data) => {
|
|
16726
|
+
wasm.load(data);
|
|
16727
|
+
return obj;
|
|
16728
|
+
},
|
|
16729
|
+
blockSize: 64,
|
|
16730
|
+
digestSize: 16,
|
|
16731
|
+
};
|
|
16732
|
+
return obj;
|
|
16733
|
+
});
|
|
16734
|
+
}
|
|
15760
16735
|
|
|
15761
|
-
|
|
16736
|
+
var name$d = "md5";
|
|
16737
|
+
var data$d = "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";
|
|
16738
|
+
var hash$d = "e6508e4b";
|
|
16739
|
+
var wasmJson$d = {
|
|
16740
|
+
name: name$d,
|
|
16741
|
+
data: data$d,
|
|
16742
|
+
hash: hash$d
|
|
16743
|
+
};
|
|
15762
16744
|
|
|
15763
|
-
|
|
15764
|
-
|
|
15765
|
-
|
|
16745
|
+
const mutex$e = new Mutex();
|
|
16746
|
+
let wasmCache$e = null;
|
|
16747
|
+
/**
|
|
16748
|
+
* Calculates MD5 hash
|
|
16749
|
+
* @param data Input data (string, Buffer or TypedArray)
|
|
16750
|
+
* @returns Computed hash as a hexadecimal string
|
|
16751
|
+
*/
|
|
16752
|
+
function md5(data) {
|
|
16753
|
+
if (wasmCache$e === null) {
|
|
16754
|
+
return lockedCreate(mutex$e, wasmJson$d, 16).then((wasm) => {
|
|
16755
|
+
wasmCache$e = wasm;
|
|
16756
|
+
return wasmCache$e.calculate(data);
|
|
16757
|
+
});
|
|
16758
|
+
}
|
|
16759
|
+
try {
|
|
16760
|
+
const hash = wasmCache$e.calculate(data);
|
|
16761
|
+
return Promise.resolve(hash);
|
|
16762
|
+
}
|
|
16763
|
+
catch (err) {
|
|
16764
|
+
return Promise.reject(err);
|
|
16765
|
+
}
|
|
16766
|
+
}
|
|
16767
|
+
/**
|
|
16768
|
+
* Creates a new MD5 hash instance
|
|
16769
|
+
*/
|
|
16770
|
+
function createMD5() {
|
|
16771
|
+
return WASMInterface(wasmJson$d, 16).then((wasm) => {
|
|
16772
|
+
wasm.init();
|
|
16773
|
+
const obj = {
|
|
16774
|
+
init: () => {
|
|
16775
|
+
wasm.init();
|
|
16776
|
+
return obj;
|
|
16777
|
+
},
|
|
16778
|
+
update: (data) => {
|
|
16779
|
+
wasm.update(data);
|
|
16780
|
+
return obj;
|
|
16781
|
+
},
|
|
16782
|
+
// biome-ignore lint/suspicious/noExplicitAny: Conflict with IHasher type
|
|
16783
|
+
digest: (outputType) => wasm.digest(outputType),
|
|
16784
|
+
save: () => wasm.save(),
|
|
16785
|
+
load: (data) => {
|
|
16786
|
+
wasm.load(data);
|
|
16787
|
+
return obj;
|
|
16788
|
+
},
|
|
16789
|
+
blockSize: 64,
|
|
16790
|
+
digestSize: 16,
|
|
16791
|
+
};
|
|
16792
|
+
return obj;
|
|
16793
|
+
});
|
|
16794
|
+
}
|
|
15766
16795
|
|
|
15767
|
-
|
|
15768
|
-
|
|
15769
|
-
|
|
16796
|
+
var name$c = "sha1";
|
|
16797
|
+
var data$c = "AGFzbQEAAAABEQRgAAF/YAF/AGAAAGACf38AAwkIAAECAwECAAEFBAEBAgIGDgJ/AUHgiQULfwBBgAgLB3AIBm1lbW9yeQIADkhhc2hfR2V0QnVmZmVyAAAJSGFzaF9Jbml0AAILSGFzaF9VcGRhdGUABApIYXNoX0ZpbmFsAAUNSGFzaF9HZXRTdGF0ZQAGDkhhc2hfQ2FsY3VsYXRlAAcKU1RBVEVfU0laRQMBCpoqCAUAQYAJC68iCgF+An8BfgF/AX4DfwF+AX8Bfkd/QQAgACkDECIBQiCIpyICQRh0IAJBgP4DcUEIdHIgAUIoiKdBgP4DcSABQjiIp3JyIgMgACkDCCIEQiCIpyICQRh0IAJBgP4DcUEIdHIgBEIoiKdBgP4DcSAEQjiIp3JyIgVzIAApAygiBkIgiKciAkEYdCACQYD+A3FBCHRyIAZCKIinQYD+A3EgBkI4iKdyciIHcyAEpyICQRh0IAJBgP4DcUEIdHIgAkEIdkGA/gNxIAJBGHZyciIIIAApAwAiBKciAkEYdCACQYD+A3FBCHRyIAJBCHZBgP4DcSACQRh2cnIiCXMgACkDICIKpyICQRh0IAJBgP4DcUEIdHIgAkEIdkGA/gNxIAJBGHZyciILcyAAKQMwIgxCIIinIgJBGHQgAkGA/gNxQQh0ciAMQiiIp0GA/gNxIAxCOIincnIiAnNBAXciDXNBAXciDiAFIARCIIinIg9BGHQgD0GA/gNxQQh0ciAEQiiIp0GA/gNxIARCOIincnIiEHMgCkIgiKciD0EYdCAPQYD+A3FBCHRyIApCKIinQYD+A3EgCkI4iKdyciIRcyAAKQM4IgSnIg9BGHQgD0GA/gNxQQh0ciAPQQh2QYD+A3EgD0EYdnJyIg9zQQF3IhJzIAcgEXMgEnMgCyAAKQMYIgqnIgBBGHQgAEGA/gNxQQh0ciAAQQh2QYD+A3EgAEEYdnJyIhNzIA9zIA5zQQF3IgBzQQF3IhRzIA0gD3MgAHMgAiAHcyAOcyAGpyIVQRh0IBVBgP4DcUEIdHIgFUEIdkGA/gNxIBVBGHZyciIWIAtzIA1zIApCIIinIhVBGHQgFUGA/gNxQQh0ciAKQiiIp0GA/gNxIApCOIincnIiFyADcyACcyABpyIVQRh0IBVBgP4DcUEIdHIgFUEIdkGA/gNxIBVBGHZyciIYIAhzIBZzIARCIIinIhVBGHQgFUGA/gNxQQh0ciAEQiiIp0GA/gNxIARCOIincnIiFXNBAXciGXNBAXciGnNBAXciG3NBAXciHHNBAXciHXNBAXciHiASIBVzIBEgF3MgFXMgEyAYcyAMpyIfQRh0IB9BgP4DcUEIdHIgH0EIdkGA/gNxIB9BGHZyciIgcyASc0EBdyIfc0EBdyIhcyAPICBzIB9zIBRzQQF3IiJzQQF3IiNzIBQgIXMgI3MgACAfcyAicyAec0EBdyIkc0EBdyIlcyAdICJzICRzIBwgFHMgHnMgGyAAcyAdcyAaIA5zIBxzIBkgDXMgG3MgFSACcyAacyAgIBZzIBlzICFzQQF3IiZzQQF3IidzQQF3IihzQQF3IilzQQF3IipzQQF3IitzQQF3IixzQQF3Ii0gIyAncyAhIBpzICdzIB8gGXMgJnMgI3NBAXciLnNBAXciL3MgIiAmcyAucyAlc0EBdyIwc0EBdyIxcyAlIC9zIDFzICQgLnMgMHMgLXNBAXciMnNBAXciM3MgLCAwcyAycyArICVzIC1zICogJHMgLHMgKSAecyArcyAoIB1zICpzICcgHHMgKXMgJiAbcyAocyAvc0EBdyI0c0EBdyI1c0EBdyI2c0EBdyI3c0EBdyI4c0EBdyI5c0EBdyI6c0EBdyI7IDEgNXMgLyApcyA1cyAuIChzIDRzIDFzQQF3IjxzQQF3Ij1zIDAgNHMgPHMgM3NBAXciPnNBAXciP3MgMyA9cyA/cyAyIDxzID5zIDtzQQF3IkBzQQF3IkFzIDogPnMgQHMgOSAzcyA7cyA4IDJzIDpzIDcgLXMgOXMgNiAscyA4cyA1ICtzIDdzIDQgKnMgNnMgPXNBAXciQnNBAXciQ3NBAXciRHNBAXciRXNBAXciRnNBAXciR3NBAXciSHNBAXciSSA+IEJzIDwgNnMgQnMgP3NBAXciSnMgQXNBAXciSyA9IDdzIENzIEpzQQF3IkwgRCA5IDIgMSA0ICkgHSAUIB8gFSAWQQAoAoCJASJNQQV3QQAoApCJASJOaiAJakEAKAKMiQEiT0EAKAKIiQEiCXNBACgChIkBIlBxIE9zakGZ84nUBWoiUUEedyJSIANqIFBBHnciAyAFaiBPIAMgCXMgTXEgCXNqIBBqIFFBBXdqQZnzidQFaiIQIFIgTUEedyIFc3EgBXNqIAkgCGogUSADIAVzcSADc2ogEEEFd2pBmfOJ1AVqIlFBBXdqQZnzidQFaiJTIFFBHnciAyAQQR53IghzcSAIc2ogBSAYaiBRIAggUnNxIFJzaiBTQQV3akGZ84nUBWoiBUEFd2pBmfOJ1AVqIhhBHnciUmogU0EedyIWIAtqIAggE2ogBSAWIANzcSADc2ogGEEFd2pBmfOJ1AVqIgggUiAFQR53IgtzcSALc2ogAyAXaiAYIAsgFnNxIBZzaiAIQQV3akGZ84nUBWoiBUEFd2pBmfOJ1AVqIhMgBUEedyIWIAhBHnciA3NxIANzaiALIBFqIAUgAyBSc3EgUnNqIBNBBXdqQZnzidQFaiIRQQV3akGZ84nUBWoiUkEedyILaiACIBNBHnciFWogByADaiARIBUgFnNxIBZzaiBSQQV3akGZ84nUBWoiByALIBFBHnciAnNxIAJzaiAgIBZqIFIgAiAVc3EgFXNqIAdBBXdqQZnzidQFaiIRQQV3akGZ84nUBWoiFiARQR53IhUgB0EedyIHc3EgB3NqIA8gAmogESAHIAtzcSALc2ogFkEFd2pBmfOJ1AVqIgtBBXdqQZnzidQFaiIRQR53IgJqIBIgFWogESALQR53Ig8gFkEedyISc3EgEnNqIA0gB2ogCyASIBVzcSAVc2ogEUEFd2pBmfOJ1AVqIg1BBXdqQZnzidQFaiIVQR53Ih8gDUEedyIHcyAZIBJqIA0gAiAPc3EgD3NqIBVBBXdqQZnzidQFaiINc2ogDiAPaiAVIAcgAnNxIAJzaiANQQV3akGZ84nUBWoiAkEFd2pBodfn9gZqIg5BHnciD2ogACAfaiACQR53IgAgDUEedyINcyAOc2ogGiAHaiANIB9zIAJzaiAOQQV3akGh1+f2BmoiAkEFd2pBodfn9gZqIg5BHnciEiACQR53IhRzICEgDWogDyAAcyACc2ogDkEFd2pBodfn9gZqIgJzaiAbIABqIBQgD3MgDnNqIAJBBXdqQaHX5/YGaiIAQQV3akGh1+f2BmoiDUEedyIOaiAcIBJqIABBHnciDyACQR53IgJzIA1zaiAmIBRqIAIgEnMgAHNqIA1BBXdqQaHX5/YGaiIAQQV3akGh1+f2BmoiDUEedyISIABBHnciFHMgIiACaiAOIA9zIABzaiANQQV3akGh1+f2BmoiAHNqICcgD2ogFCAOcyANc2ogAEEFd2pBodfn9gZqIgJBBXdqQaHX5/YGaiINQR53Ig5qICggEmogAkEedyIPIABBHnciAHMgDXNqICMgFGogACAScyACc2ogDUEFd2pBodfn9gZqIgJBBXdqQaHX5/YGaiINQR53IhIgAkEedyIUcyAeIABqIA4gD3MgAnNqIA1BBXdqQaHX5/YGaiIAc2ogLiAPaiAUIA5zIA1zaiAAQQV3akGh1+f2BmoiAkEFd2pBodfn9gZqIg1BHnciDmogKiAAQR53IgBqIA4gAkEedyIPcyAkIBRqIAAgEnMgAnNqIA1BBXdqQaHX5/YGaiIUc2ogLyASaiAPIABzIA1zaiAUQQV3akGh1+f2BmoiDUEFd2pBodfn9gZqIgAgDUEedyICciAUQR53IhJxIAAgAnFyaiAlIA9qIBIgDnMgDXNqIABBBXdqQaHX5/YGaiINQQV3akHc+e74eGoiDkEedyIPaiA1IABBHnciAGogKyASaiANIAByIAJxIA0gAHFyaiAOQQV3akHc+e74eGoiEiAPciANQR53Ig1xIBIgD3FyaiAwIAJqIA4gDXIgAHEgDiANcXJqIBJBBXdqQdz57vh4aiIAQQV3akHc+e74eGoiAiAAQR53Ig5yIBJBHnciEnEgAiAOcXJqICwgDWogACASciAPcSAAIBJxcmogAkEFd2pB3Pnu+HhqIgBBBXdqQdz57vh4aiINQR53Ig9qIDwgAkEedyICaiA2IBJqIAAgAnIgDnEgACACcXJqIA1BBXdqQdz57vh4aiISIA9yIABBHnciAHEgEiAPcXJqIC0gDmogDSAAciACcSANIABxcmogEkEFd2pB3Pnu+HhqIgJBBXdqQdz57vh4aiINIAJBHnciDnIgEkEedyIScSANIA5xcmogNyAAaiACIBJyIA9xIAIgEnFyaiANQQV3akHc+e74eGoiAEEFd2pB3Pnu+HhqIgJBHnciD2ogMyANQR53Ig1qID0gEmogACANciAOcSAAIA1xcmogAkEFd2pB3Pnu+HhqIhIgD3IgAEEedyIAcSASIA9xcmogOCAOaiACIAByIA1xIAIgAHFyaiASQQV3akHc+e74eGoiAkEFd2pB3Pnu+HhqIg0gAkEedyIOciASQR53IhJxIA0gDnFyaiBCIABqIAIgEnIgD3EgAiAScXJqIA1BBXdqQdz57vh4aiIAQQV3akHc+e74eGoiAkEedyIPaiBDIA5qIAIgAEEedyIUciANQR53Ig1xIAIgFHFyaiA+IBJqIAAgDXIgDnEgACANcXJqIAJBBXdqQdz57vh4aiIAQQV3akHc+e74eGoiAkEedyISIABBHnciDnMgOiANaiAAIA9yIBRxIAAgD3FyaiACQQV3akHc+e74eGoiAHNqID8gFGogAiAOciAPcSACIA5xcmogAEEFd2pB3Pnu+HhqIgJBBXdqQdaDi9N8aiINQR53Ig9qIEogEmogAkEedyIUIABBHnciAHMgDXNqIDsgDmogACAScyACc2ogDUEFd2pB1oOL03xqIgJBBXdqQdaDi9N8aiINQR53Ig4gAkEedyIScyBFIABqIA8gFHMgAnNqIA1BBXdqQdaDi9N8aiIAc2ogQCAUaiASIA9zIA1zaiAAQQV3akHWg4vTfGoiAkEFd2pB1oOL03xqIg1BHnciD2ogQSAOaiACQR53IhQgAEEedyIAcyANc2ogRiASaiAAIA5zIAJzaiANQQV3akHWg4vTfGoiAkEFd2pB1oOL03xqIg1BHnciDiACQR53IhJzIEIgOHMgRHMgTHNBAXciFSAAaiAPIBRzIAJzaiANQQV3akHWg4vTfGoiAHNqIEcgFGogEiAPcyANc2ogAEEFd2pB1oOL03xqIgJBBXdqQdaDi9N8aiINQR53Ig9qIEggDmogAkEedyIUIABBHnciAHMgDXNqIEMgOXMgRXMgFXNBAXciGSASaiAAIA5zIAJzaiANQQV3akHWg4vTfGoiAkEFd2pB1oOL03xqIg1BHnciDiACQR53IhJzID8gQ3MgTHMgS3NBAXciGiAAaiAPIBRzIAJzaiANQQV3akHWg4vTfGoiAHNqIEQgOnMgRnMgGXNBAXciGyAUaiASIA9zIA1zaiAAQQV3akHWg4vTfGoiAkEFd2pB1oOL03xqIg1BHnciDyBOajYCkIkBQQAgTyBKIERzIBVzIBpzQQF3IhQgEmogAEEedyIAIA5zIAJzaiANQQV3akHWg4vTfGoiEkEedyIVajYCjIkBQQAgCSBFIDtzIEdzIBtzQQF3IA5qIAJBHnciAiAAcyANc2ogEkEFd2pB1oOL03xqIg1BHndqNgKIiQFBACBQIEAgSnMgS3MgSXNBAXcgAGogDyACcyASc2ogDUEFd2pB1oOL03xqIgBqNgKEiQFBACBNIEwgRXMgGXMgFHNBAXdqIAJqIBUgD3MgDXNqIABBBXdqQdaDi9N8ajYCgIkBCzoAQQBC/rnrxemOlZkQNwKIiQFBAEKBxpS6lvHq5m83AoCJAUEAQvDDy54MNwKQiQFBAEEANgKYiQELqAMBCH9BACECQQBBACgClIkBIgMgAUEDdGoiBDYClIkBQQBBACgCmIkBIAQgA0lqIAFBHXZqNgKYiQECQCADQQN2QT9xIgUgAWpBwABJDQBBwAAgBWsiAkEDcSEGQQAhAwJAIAVBP3NBA0kNACAFQYCJAWohByACQfwAcSEIQQAhAwNAIAcgA2oiBEEcaiAAIANqIgktAAA6AAAgBEEdaiAJQQFqLQAAOgAAIARBHmogCUECai0AADoAACAEQR9qIAlBA2otAAA6AAAgCCADQQRqIgNHDQALCwJAIAZFDQAgACADaiEEIAMgBWpBnIkBaiEDA0AgAyAELQAAOgAAIARBAWohBCADQQFqIQMgBkF/aiIGDQALC0GciQEQASAFQf8AcyEDQQAhBSADIAFPDQADQCAAIAJqEAEgAkH/AGohAyACQcAAaiIEIQIgAyABSQ0ACyAEIQILAkAgASACRg0AIAEgAmshCSAAIAJqIQIgBUGciQFqIQNBACEEA0AgAyACLQAAOgAAIAJBAWohAiADQQFqIQMgCSAEQQFqIgRB/wFxSw0ACwsLCQBBgAkgABADC6YDAQJ/IwBBEGsiACQAIABBgAE6AAcgAEEAKAKYiQEiAUEYdCABQYD+A3FBCHRyIAFBCHZBgP4DcSABQRh2cnI2AAggAEEAKAKUiQEiAUEYdCABQYD+A3FBCHRyIAFBCHZBgP4DcSABQRh2cnI2AAwgAEEHakEBEAMCQEEAKAKUiQFB+ANxQcADRg0AA0AgAEEAOgAHIABBB2pBARADQQAoApSJAUH4A3FBwANHDQALCyAAQQhqQQgQA0EAQQAoAoCJASIBQRh0IAFBgP4DcUEIdHIgAUEIdkGA/gNxIAFBGHZycjYCgAlBAEEAKAKEiQEiAUEYdCABQYD+A3FBCHRyIAFBCHZBgP4DcSABQRh2cnI2AoQJQQBBACgCiIkBIgFBGHQgAUGA/gNxQQh0ciABQQh2QYD+A3EgAUEYdnJyNgKICUEAQQAoAoyJASIBQRh0IAFBgP4DcUEIdHIgAUEIdkGA/gNxIAFBGHZycjYCjAlBAEEAKAKQiQEiAUEYdCABQYD+A3FBCHRyIAFBCHZBgP4DcSABQRh2cnI2ApAJIABBEGokAAsGAEGAiQELQwBBAEL+uevF6Y6VmRA3AoiJAUEAQoHGlLqW8ermbzcCgIkBQQBC8MPLngw3ApCJAUEAQQA2ApiJAUGACSAAEAMQBQsLCwEAQYAICwRcAAAA";
|
|
16798
|
+
var hash$c = "6b530c24";
|
|
16799
|
+
var wasmJson$c = {
|
|
16800
|
+
name: name$c,
|
|
16801
|
+
data: data$c,
|
|
16802
|
+
hash: hash$c
|
|
16803
|
+
};
|
|
15770
16804
|
|
|
15771
|
-
|
|
16805
|
+
const mutex$d = new Mutex();
|
|
16806
|
+
let wasmCache$d = null;
|
|
16807
|
+
/**
|
|
16808
|
+
* Calculates SHA-1 hash
|
|
16809
|
+
* @param data Input data (string, Buffer or TypedArray)
|
|
16810
|
+
* @returns Computed hash as a hexadecimal string
|
|
16811
|
+
*/
|
|
16812
|
+
function sha1(data) {
|
|
16813
|
+
if (wasmCache$d === null) {
|
|
16814
|
+
return lockedCreate(mutex$d, wasmJson$c, 20).then((wasm) => {
|
|
16815
|
+
wasmCache$d = wasm;
|
|
16816
|
+
return wasmCache$d.calculate(data);
|
|
16817
|
+
});
|
|
16818
|
+
}
|
|
16819
|
+
try {
|
|
16820
|
+
const hash = wasmCache$d.calculate(data);
|
|
16821
|
+
return Promise.resolve(hash);
|
|
16822
|
+
}
|
|
16823
|
+
catch (err) {
|
|
16824
|
+
return Promise.reject(err);
|
|
16825
|
+
}
|
|
16826
|
+
}
|
|
16827
|
+
/**
|
|
16828
|
+
* Creates a new SHA-1 hash instance
|
|
16829
|
+
*/
|
|
16830
|
+
function createSHA1() {
|
|
16831
|
+
return WASMInterface(wasmJson$c, 20).then((wasm) => {
|
|
16832
|
+
wasm.init();
|
|
16833
|
+
const obj = {
|
|
16834
|
+
init: () => {
|
|
16835
|
+
wasm.init();
|
|
16836
|
+
return obj;
|
|
16837
|
+
},
|
|
16838
|
+
update: (data) => {
|
|
16839
|
+
wasm.update(data);
|
|
16840
|
+
return obj;
|
|
16841
|
+
},
|
|
16842
|
+
// biome-ignore lint/suspicious/noExplicitAny: Conflict with IHasher type
|
|
16843
|
+
digest: (outputType) => wasm.digest(outputType),
|
|
16844
|
+
save: () => wasm.save(),
|
|
16845
|
+
load: (data) => {
|
|
16846
|
+
wasm.load(data);
|
|
16847
|
+
return obj;
|
|
16848
|
+
},
|
|
16849
|
+
blockSize: 64,
|
|
16850
|
+
digestSize: 20,
|
|
16851
|
+
};
|
|
16852
|
+
return obj;
|
|
16853
|
+
});
|
|
16854
|
+
}
|
|
15772
16855
|
|
|
16856
|
+
var name$b = "sha3";
|
|
16857
|
+
var data$b = "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";
|
|
16858
|
+
var hash$b = "fb24e536";
|
|
16859
|
+
var wasmJson$b = {
|
|
16860
|
+
name: name$b,
|
|
16861
|
+
data: data$b,
|
|
16862
|
+
hash: hash$b
|
|
16863
|
+
};
|
|
15773
16864
|
|
|
15774
|
-
|
|
16865
|
+
const mutex$c = new Mutex();
|
|
16866
|
+
let wasmCache$c = null;
|
|
16867
|
+
function validateBits$1(bits) {
|
|
16868
|
+
if (![224, 256, 384, 512].includes(bits)) {
|
|
16869
|
+
return new Error("Invalid variant! Valid values: 224, 256, 384, 512");
|
|
16870
|
+
}
|
|
16871
|
+
return null;
|
|
16872
|
+
}
|
|
16873
|
+
/**
|
|
16874
|
+
* Calculates SHA-3 hash
|
|
16875
|
+
* @param data Input data (string, Buffer or TypedArray)
|
|
16876
|
+
* @param bits Number of output bits. Valid values: 224, 256, 384, 512
|
|
16877
|
+
* @returns Computed hash as a hexadecimal string
|
|
16878
|
+
*/
|
|
16879
|
+
function sha3(data, bits = 512) {
|
|
16880
|
+
if (validateBits$1(bits)) {
|
|
16881
|
+
return Promise.reject(validateBits$1(bits));
|
|
16882
|
+
}
|
|
16883
|
+
const hashLength = bits / 8;
|
|
16884
|
+
if (wasmCache$c === null || wasmCache$c.hashLength !== hashLength) {
|
|
16885
|
+
return lockedCreate(mutex$c, wasmJson$b, hashLength).then((wasm) => {
|
|
16886
|
+
wasmCache$c = wasm;
|
|
16887
|
+
return wasmCache$c.calculate(data, bits, 0x06);
|
|
16888
|
+
});
|
|
16889
|
+
}
|
|
16890
|
+
try {
|
|
16891
|
+
const hash = wasmCache$c.calculate(data, bits, 0x06);
|
|
16892
|
+
return Promise.resolve(hash);
|
|
16893
|
+
}
|
|
16894
|
+
catch (err) {
|
|
16895
|
+
return Promise.reject(err);
|
|
16896
|
+
}
|
|
16897
|
+
}
|
|
16898
|
+
/**
|
|
16899
|
+
* Creates a new SHA-3 hash instance
|
|
16900
|
+
* @param bits Number of output bits. Valid values: 224, 256, 384, 512
|
|
16901
|
+
*/
|
|
16902
|
+
function createSHA3(bits = 512) {
|
|
16903
|
+
if (validateBits$1(bits)) {
|
|
16904
|
+
return Promise.reject(validateBits$1(bits));
|
|
16905
|
+
}
|
|
16906
|
+
const outputSize = bits / 8;
|
|
16907
|
+
return WASMInterface(wasmJson$b, outputSize).then((wasm) => {
|
|
16908
|
+
wasm.init(bits);
|
|
16909
|
+
const obj = {
|
|
16910
|
+
init: () => {
|
|
16911
|
+
wasm.init(bits);
|
|
16912
|
+
return obj;
|
|
16913
|
+
},
|
|
16914
|
+
update: (data) => {
|
|
16915
|
+
wasm.update(data);
|
|
16916
|
+
return obj;
|
|
16917
|
+
},
|
|
16918
|
+
// biome-ignore lint/suspicious/noExplicitAny: Conflict with IHasher type
|
|
16919
|
+
digest: (outputType) => wasm.digest(outputType, 0x06),
|
|
16920
|
+
save: () => wasm.save(),
|
|
16921
|
+
load: (data) => {
|
|
16922
|
+
wasm.load(data);
|
|
16923
|
+
return obj;
|
|
16924
|
+
},
|
|
16925
|
+
blockSize: 200 - 2 * outputSize,
|
|
16926
|
+
digestSize: outputSize,
|
|
16927
|
+
};
|
|
16928
|
+
return obj;
|
|
16929
|
+
});
|
|
16930
|
+
}
|
|
15775
16931
|
|
|
15776
|
-
|
|
15777
|
-
|
|
16932
|
+
const mutex$b = new Mutex();
|
|
16933
|
+
let wasmCache$b = null;
|
|
16934
|
+
function validateBits(bits) {
|
|
16935
|
+
if (![224, 256, 384, 512].includes(bits)) {
|
|
16936
|
+
return new Error("Invalid variant! Valid values: 224, 256, 384, 512");
|
|
16937
|
+
}
|
|
16938
|
+
return null;
|
|
16939
|
+
}
|
|
16940
|
+
/**
|
|
16941
|
+
* Calculates Keccak hash
|
|
16942
|
+
* @param data Input data (string, Buffer or TypedArray)
|
|
16943
|
+
* @param bits Number of output bits. Valid values: 224, 256, 384, 512
|
|
16944
|
+
* @returns Computed hash as a hexadecimal string
|
|
16945
|
+
*/
|
|
16946
|
+
function keccak(data, bits = 512) {
|
|
16947
|
+
if (validateBits(bits)) {
|
|
16948
|
+
return Promise.reject(validateBits(bits));
|
|
16949
|
+
}
|
|
16950
|
+
const hashLength = bits / 8;
|
|
16951
|
+
if (wasmCache$b === null || wasmCache$b.hashLength !== hashLength) {
|
|
16952
|
+
return lockedCreate(mutex$b, wasmJson$b, hashLength).then((wasm) => {
|
|
16953
|
+
wasmCache$b = wasm;
|
|
16954
|
+
return wasmCache$b.calculate(data, bits, 0x01);
|
|
16955
|
+
});
|
|
16956
|
+
}
|
|
16957
|
+
try {
|
|
16958
|
+
const hash = wasmCache$b.calculate(data, bits, 0x01);
|
|
16959
|
+
return Promise.resolve(hash);
|
|
16960
|
+
}
|
|
16961
|
+
catch (err) {
|
|
16962
|
+
return Promise.reject(err);
|
|
16963
|
+
}
|
|
16964
|
+
}
|
|
16965
|
+
/**
|
|
16966
|
+
* Creates a new Keccak hash instance
|
|
16967
|
+
* @param bits Number of output bits. Valid values: 224, 256, 384, 512
|
|
16968
|
+
*/
|
|
16969
|
+
function createKeccak(bits = 512) {
|
|
16970
|
+
if (validateBits(bits)) {
|
|
16971
|
+
return Promise.reject(validateBits(bits));
|
|
16972
|
+
}
|
|
16973
|
+
const outputSize = bits / 8;
|
|
16974
|
+
return WASMInterface(wasmJson$b, outputSize).then((wasm) => {
|
|
16975
|
+
wasm.init(bits);
|
|
16976
|
+
const obj = {
|
|
16977
|
+
init: () => {
|
|
16978
|
+
wasm.init(bits);
|
|
16979
|
+
return obj;
|
|
16980
|
+
},
|
|
16981
|
+
update: (data) => {
|
|
16982
|
+
wasm.update(data);
|
|
16983
|
+
return obj;
|
|
16984
|
+
},
|
|
16985
|
+
// biome-ignore lint/suspicious/noExplicitAny: Conflict with IHasher type
|
|
16986
|
+
digest: (outputType) => wasm.digest(outputType, 0x01),
|
|
16987
|
+
save: () => wasm.save(),
|
|
16988
|
+
load: (data) => {
|
|
16989
|
+
wasm.load(data);
|
|
16990
|
+
return obj;
|
|
16991
|
+
},
|
|
16992
|
+
blockSize: 200 - 2 * outputSize,
|
|
16993
|
+
digestSize: outputSize,
|
|
16994
|
+
};
|
|
16995
|
+
return obj;
|
|
16996
|
+
});
|
|
16997
|
+
}
|
|
15778
16998
|
|
|
15779
|
-
var
|
|
15780
|
-
var b2wasm = __nccwpck_require__(1625)
|
|
15781
|
-
|
|
15782
|
-
|
|
15783
|
-
|
|
15784
|
-
|
|
15785
|
-
|
|
15786
|
-
|
|
15787
|
-
var o1 = v[a + 1] + v[b + 1]
|
|
15788
|
-
if (o0 >= 0x100000000) {
|
|
15789
|
-
o1++
|
|
15790
|
-
}
|
|
15791
|
-
v[a] = o0
|
|
15792
|
-
v[a + 1] = o1
|
|
15793
|
-
}
|
|
16999
|
+
var name$a = "sha256";
|
|
17000
|
+
var data$a = "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c2pBx6KerX1qIhkgASADcyACcSABIANxcyABQR53IAFBE3dzIAFBCndzaiAaaiICaiIJIBMgEnNxIBJzaiAJQRp3IAlBFXdzIAlBB3dzakHRxqk2aiIaIAIgAXMgA3EgAiABcXMgAkEedyACQRN3cyACQQp3c2ogGGoiA2oiESAJIBNzcSATc2ogEUEadyARQRV3cyARQQd3c2pB59KkoQFqIhggAyACcyABcSADIAJxcyADQR53IANBE3dzIANBCndzaiAUaiIBaiISIBEgCXNxIAlzaiASQRp3IBJBFXdzIBJBB3dzakGFldy9AmoiFCABIANzIAJxIAEgA3FzIAFBHncgAUETd3MgAUEKd3NqIBdqIgJqIhMgI2ogJiASaiAiIBFqICUgCWogEyASIBFzcSARc2ogE0EadyATQRV3cyATQQd3c2pBuMLs8AJqIhcgAiABcyADcSACIAFxcyACQR53IAJBE3dzIAJBCndzaiAZaiIDaiIJIBMgEnNxIBJzaiAJQRp3IAlBFXdzIAlBB3dzakH827HpBGoiGSADIAJzIAFxIAMgAnFzIANBHncgA0ETd3MgA0EKd3NqIBpqIgFqIhEgCSATc3EgE3NqIBFBGncgEUEVd3MgEUEHd3NqQZOa4JkFaiIaIAEgA3MgAnEgASADcXMgAUEedyABQRN3cyABQQp3c2ogGGoiAmoiEiARIAlzcSAJc2ogEkEadyASQRV3cyASQQd3c2pB1OapqAZqIhggAiABcyADcSACIAFxcyACQR53IAJBE3dzIAJBCndzaiAUaiIDaiITaiAoIBJqICQgEWogJyAJaiATIBIgEXNxIBFzaiATQRp3IBNBFXdzIBNBB3dzakG7laizB2oiFCADIAJzIAFxIAMgAnFzIANBHncgA0ETd3MgA0EKd3NqIBdqIgFqIgkgEyASc3EgEnNqIAlBGncgCUEVd3MgCUEHd3NqQa6Si454aiIXIAEgA3MgAnEgASADcXMgAUEedyABQRN3cyABQQp3c2ogGWoiAmoiESAJIBNzcSATc2ogEUEadyARQRV3cyARQQd3c2pBhdnIk3lqIhkgAiABcyADcSACIAFxcyACQR53IAJBE3dzIAJBCndzaiAaaiIDaiISIBEgCXNxIAlzaiASQRp3IBJBFXdzIBJBB3dzakGh0f+VemoiGiADIAJz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";
|
|
17001
|
+
var hash$a = "8c18dd94";
|
|
17002
|
+
var wasmJson$a = {
|
|
17003
|
+
name: name$a,
|
|
17004
|
+
data: data$a,
|
|
17005
|
+
hash: hash$a
|
|
17006
|
+
};
|
|
15794
17007
|
|
|
15795
|
-
|
|
15796
|
-
|
|
15797
|
-
|
|
15798
|
-
|
|
15799
|
-
|
|
15800
|
-
|
|
15801
|
-
|
|
15802
|
-
|
|
15803
|
-
|
|
15804
|
-
|
|
15805
|
-
|
|
15806
|
-
|
|
15807
|
-
|
|
15808
|
-
|
|
15809
|
-
|
|
15810
|
-
|
|
15811
|
-
|
|
15812
|
-
|
|
15813
|
-
|
|
15814
|
-
|
|
15815
|
-
|
|
15816
|
-
|
|
15817
|
-
|
|
15818
|
-
|
|
15819
|
-
|
|
15820
|
-
|
|
15821
|
-
|
|
15822
|
-
|
|
15823
|
-
|
|
15824
|
-
|
|
15825
|
-
|
|
15826
|
-
|
|
15827
|
-
|
|
15828
|
-
|
|
15829
|
-
|
|
15830
|
-
|
|
15831
|
-
|
|
15832
|
-
|
|
15833
|
-
|
|
15834
|
-
|
|
15835
|
-
|
|
15836
|
-
|
|
15837
|
-
|
|
15838
|
-
|
|
15839
|
-
|
|
15840
|
-
|
|
15841
|
-
|
|
15842
|
-
|
|
15843
|
-
|
|
15844
|
-
|
|
15845
|
-
ADD64AC(v, a, y0, y1)
|
|
15846
|
-
|
|
15847
|
-
// v[d,d+1] = (v[d,d+1] xor v[a,a+1]) rotated right by 16 bits
|
|
15848
|
-
xor0 = v[d] ^ v[a]
|
|
15849
|
-
xor1 = v[d + 1] ^ v[a + 1]
|
|
15850
|
-
v[d] = (xor0 >>> 16) ^ (xor1 << 16)
|
|
15851
|
-
v[d + 1] = (xor1 >>> 16) ^ (xor0 << 16)
|
|
15852
|
-
|
|
15853
|
-
ADD64AA(v, c, d)
|
|
15854
|
-
|
|
15855
|
-
// v[b,b+1] = (v[b,b+1] xor v[c,c+1]) rotated right by 63 bits
|
|
15856
|
-
xor0 = v[b] ^ v[c]
|
|
15857
|
-
xor1 = v[b + 1] ^ v[c + 1]
|
|
15858
|
-
v[b] = (xor1 >>> 31) ^ (xor0 << 1)
|
|
15859
|
-
v[b + 1] = (xor0 >>> 31) ^ (xor1 << 1)
|
|
15860
|
-
}
|
|
15861
|
-
|
|
15862
|
-
// Initialization Vector
|
|
15863
|
-
var BLAKE2B_IV32 = new Uint32Array([
|
|
15864
|
-
0xF3BCC908, 0x6A09E667, 0x84CAA73B, 0xBB67AE85,
|
|
15865
|
-
0xFE94F82B, 0x3C6EF372, 0x5F1D36F1, 0xA54FF53A,
|
|
15866
|
-
0xADE682D1, 0x510E527F, 0x2B3E6C1F, 0x9B05688C,
|
|
15867
|
-
0xFB41BD6B, 0x1F83D9AB, 0x137E2179, 0x5BE0CD19
|
|
15868
|
-
])
|
|
15869
|
-
|
|
15870
|
-
var SIGMA8 = [
|
|
15871
|
-
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
|
|
15872
|
-
14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3,
|
|
15873
|
-
11, 8, 12, 0, 5, 2, 15, 13, 10, 14, 3, 6, 7, 1, 9, 4,
|
|
15874
|
-
7, 9, 3, 1, 13, 12, 11, 14, 2, 6, 5, 10, 4, 0, 15, 8,
|
|
15875
|
-
9, 0, 5, 7, 2, 4, 10, 15, 14, 1, 11, 12, 6, 8, 3, 13,
|
|
15876
|
-
2, 12, 6, 10, 0, 11, 8, 3, 4, 13, 7, 5, 15, 14, 1, 9,
|
|
15877
|
-
12, 5, 1, 15, 14, 13, 4, 10, 0, 7, 6, 3, 9, 2, 8, 11,
|
|
15878
|
-
13, 11, 7, 14, 12, 1, 3, 9, 5, 0, 15, 4, 8, 6, 2, 10,
|
|
15879
|
-
6, 15, 14, 9, 11, 3, 0, 8, 12, 2, 13, 7, 1, 4, 10, 5,
|
|
15880
|
-
10, 2, 8, 4, 7, 6, 1, 5, 15, 11, 9, 14, 3, 12, 13, 0,
|
|
15881
|
-
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
|
|
15882
|
-
14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3
|
|
15883
|
-
]
|
|
15884
|
-
|
|
15885
|
-
// These are offsets into a uint64 buffer.
|
|
15886
|
-
// Multiply them all by 2 to make them offsets into a uint32 buffer,
|
|
15887
|
-
// because this is Javascript and we don't have uint64s
|
|
15888
|
-
var SIGMA82 = new Uint8Array(SIGMA8.map(function (x) { return x * 2 }))
|
|
15889
|
-
|
|
15890
|
-
// Compression function. 'last' flag indicates last block.
|
|
15891
|
-
// Note we're representing 16 uint64s as 32 uint32s
|
|
15892
|
-
var v = new Uint32Array(32)
|
|
15893
|
-
var m = new Uint32Array(32)
|
|
15894
|
-
function blake2bCompress (ctx, last) {
|
|
15895
|
-
var i = 0
|
|
15896
|
-
|
|
15897
|
-
// init work variables
|
|
15898
|
-
for (i = 0; i < 16; i++) {
|
|
15899
|
-
v[i] = ctx.h[i]
|
|
15900
|
-
v[i + 16] = BLAKE2B_IV32[i]
|
|
15901
|
-
}
|
|
17008
|
+
const mutex$a = new Mutex();
|
|
17009
|
+
let wasmCache$a = null;
|
|
17010
|
+
/**
|
|
17011
|
+
* Calculates SHA-2 (SHA-224) hash
|
|
17012
|
+
* @param data Input data (string, Buffer or TypedArray)
|
|
17013
|
+
* @returns Computed hash as a hexadecimal string
|
|
17014
|
+
*/
|
|
17015
|
+
function sha224(data) {
|
|
17016
|
+
if (wasmCache$a === null) {
|
|
17017
|
+
return lockedCreate(mutex$a, wasmJson$a, 28).then((wasm) => {
|
|
17018
|
+
wasmCache$a = wasm;
|
|
17019
|
+
return wasmCache$a.calculate(data, 224);
|
|
17020
|
+
});
|
|
17021
|
+
}
|
|
17022
|
+
try {
|
|
17023
|
+
const hash = wasmCache$a.calculate(data, 224);
|
|
17024
|
+
return Promise.resolve(hash);
|
|
17025
|
+
}
|
|
17026
|
+
catch (err) {
|
|
17027
|
+
return Promise.reject(err);
|
|
17028
|
+
}
|
|
17029
|
+
}
|
|
17030
|
+
/**
|
|
17031
|
+
* Creates a new SHA-2 (SHA-224) hash instance
|
|
17032
|
+
*/
|
|
17033
|
+
function createSHA224() {
|
|
17034
|
+
return WASMInterface(wasmJson$a, 28).then((wasm) => {
|
|
17035
|
+
wasm.init(224);
|
|
17036
|
+
const obj = {
|
|
17037
|
+
init: () => {
|
|
17038
|
+
wasm.init(224);
|
|
17039
|
+
return obj;
|
|
17040
|
+
},
|
|
17041
|
+
update: (data) => {
|
|
17042
|
+
wasm.update(data);
|
|
17043
|
+
return obj;
|
|
17044
|
+
},
|
|
17045
|
+
// biome-ignore lint/suspicious/noExplicitAny: Conflict with IHasher type
|
|
17046
|
+
digest: (outputType) => wasm.digest(outputType),
|
|
17047
|
+
save: () => wasm.save(),
|
|
17048
|
+
load: (data) => {
|
|
17049
|
+
wasm.load(data);
|
|
17050
|
+
return obj;
|
|
17051
|
+
},
|
|
17052
|
+
blockSize: 64,
|
|
17053
|
+
digestSize: 28,
|
|
17054
|
+
};
|
|
17055
|
+
return obj;
|
|
17056
|
+
});
|
|
17057
|
+
}
|
|
15902
17058
|
|
|
15903
|
-
|
|
15904
|
-
|
|
15905
|
-
|
|
15906
|
-
|
|
17059
|
+
const mutex$9 = new Mutex();
|
|
17060
|
+
let wasmCache$9 = null;
|
|
17061
|
+
/**
|
|
17062
|
+
* Calculates SHA-2 (SHA-256) hash
|
|
17063
|
+
* @param data Input data (string, Buffer or TypedArray)
|
|
17064
|
+
* @returns Computed hash as a hexadecimal string
|
|
17065
|
+
*/
|
|
17066
|
+
function sha256(data) {
|
|
17067
|
+
if (wasmCache$9 === null) {
|
|
17068
|
+
return lockedCreate(mutex$9, wasmJson$a, 32).then((wasm) => {
|
|
17069
|
+
wasmCache$9 = wasm;
|
|
17070
|
+
return wasmCache$9.calculate(data, 256);
|
|
17071
|
+
});
|
|
17072
|
+
}
|
|
17073
|
+
try {
|
|
17074
|
+
const hash = wasmCache$9.calculate(data, 256);
|
|
17075
|
+
return Promise.resolve(hash);
|
|
17076
|
+
}
|
|
17077
|
+
catch (err) {
|
|
17078
|
+
return Promise.reject(err);
|
|
17079
|
+
}
|
|
17080
|
+
}
|
|
17081
|
+
/**
|
|
17082
|
+
* Creates a new SHA-2 (SHA-256) hash instance
|
|
17083
|
+
*/
|
|
17084
|
+
function createSHA256() {
|
|
17085
|
+
return WASMInterface(wasmJson$a, 32).then((wasm) => {
|
|
17086
|
+
wasm.init(256);
|
|
17087
|
+
const obj = {
|
|
17088
|
+
init: () => {
|
|
17089
|
+
wasm.init(256);
|
|
17090
|
+
return obj;
|
|
17091
|
+
},
|
|
17092
|
+
update: (data) => {
|
|
17093
|
+
wasm.update(data);
|
|
17094
|
+
return obj;
|
|
17095
|
+
},
|
|
17096
|
+
// biome-ignore lint/suspicious/noExplicitAny: Conflict with IHasher type
|
|
17097
|
+
digest: (outputType) => wasm.digest(outputType),
|
|
17098
|
+
save: () => wasm.save(),
|
|
17099
|
+
load: (data) => {
|
|
17100
|
+
wasm.load(data);
|
|
17101
|
+
return obj;
|
|
17102
|
+
},
|
|
17103
|
+
blockSize: 64,
|
|
17104
|
+
digestSize: 32,
|
|
17105
|
+
};
|
|
17106
|
+
return obj;
|
|
17107
|
+
});
|
|
17108
|
+
}
|
|
15907
17109
|
|
|
15908
|
-
|
|
15909
|
-
if (last) {
|
|
15910
|
-
|
|
15911
|
-
|
|
15912
|
-
|
|
17110
|
+
var name$9 = "sha512";
|
|
17111
|
+
var data$9 = "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";
|
|
17112
|
+
var hash$9 = "f2e40eb1";
|
|
17113
|
+
var wasmJson$9 = {
|
|
17114
|
+
name: name$9,
|
|
17115
|
+
data: data$9,
|
|
17116
|
+
hash: hash$9
|
|
17117
|
+
};
|
|
15913
17118
|
|
|
15914
|
-
|
|
15915
|
-
|
|
15916
|
-
|
|
15917
|
-
|
|
17119
|
+
const mutex$8 = new Mutex();
|
|
17120
|
+
let wasmCache$8 = null;
|
|
17121
|
+
/**
|
|
17122
|
+
* Calculates SHA-2 (SHA-384) hash
|
|
17123
|
+
* @param data Input data (string, Buffer or TypedArray)
|
|
17124
|
+
* @returns Computed hash as a hexadecimal string
|
|
17125
|
+
*/
|
|
17126
|
+
function sha384(data) {
|
|
17127
|
+
if (wasmCache$8 === null) {
|
|
17128
|
+
return lockedCreate(mutex$8, wasmJson$9, 48).then((wasm) => {
|
|
17129
|
+
wasmCache$8 = wasm;
|
|
17130
|
+
return wasmCache$8.calculate(data, 384);
|
|
17131
|
+
});
|
|
17132
|
+
}
|
|
17133
|
+
try {
|
|
17134
|
+
const hash = wasmCache$8.calculate(data, 384);
|
|
17135
|
+
return Promise.resolve(hash);
|
|
17136
|
+
}
|
|
17137
|
+
catch (err) {
|
|
17138
|
+
return Promise.reject(err);
|
|
17139
|
+
}
|
|
17140
|
+
}
|
|
17141
|
+
/**
|
|
17142
|
+
* Creates a new SHA-2 (SHA-384) hash instance
|
|
17143
|
+
*/
|
|
17144
|
+
function createSHA384() {
|
|
17145
|
+
return WASMInterface(wasmJson$9, 48).then((wasm) => {
|
|
17146
|
+
wasm.init(384);
|
|
17147
|
+
const obj = {
|
|
17148
|
+
init: () => {
|
|
17149
|
+
wasm.init(384);
|
|
17150
|
+
return obj;
|
|
17151
|
+
},
|
|
17152
|
+
update: (data) => {
|
|
17153
|
+
wasm.update(data);
|
|
17154
|
+
return obj;
|
|
17155
|
+
},
|
|
17156
|
+
// biome-ignore lint/suspicious/noExplicitAny: Conflict with IHasher type
|
|
17157
|
+
digest: (outputType) => wasm.digest(outputType),
|
|
17158
|
+
save: () => wasm.save(),
|
|
17159
|
+
load: (data) => {
|
|
17160
|
+
wasm.load(data);
|
|
17161
|
+
return obj;
|
|
17162
|
+
},
|
|
17163
|
+
blockSize: 128,
|
|
17164
|
+
digestSize: 48,
|
|
17165
|
+
};
|
|
17166
|
+
return obj;
|
|
17167
|
+
});
|
|
17168
|
+
}
|
|
15918
17169
|
|
|
15919
|
-
|
|
15920
|
-
|
|
15921
|
-
|
|
15922
|
-
|
|
15923
|
-
|
|
15924
|
-
|
|
15925
|
-
|
|
15926
|
-
|
|
15927
|
-
|
|
15928
|
-
|
|
15929
|
-
|
|
17170
|
+
const mutex$7 = new Mutex();
|
|
17171
|
+
let wasmCache$7 = null;
|
|
17172
|
+
/**
|
|
17173
|
+
* Calculates SHA-2 (SHA-512) hash
|
|
17174
|
+
* @param data Input data (string, Buffer or TypedArray)
|
|
17175
|
+
* @returns Computed hash as a hexadecimal string
|
|
17176
|
+
*/
|
|
17177
|
+
function sha512(data) {
|
|
17178
|
+
if (wasmCache$7 === null) {
|
|
17179
|
+
return lockedCreate(mutex$7, wasmJson$9, 64).then((wasm) => {
|
|
17180
|
+
wasmCache$7 = wasm;
|
|
17181
|
+
return wasmCache$7.calculate(data, 512);
|
|
17182
|
+
});
|
|
17183
|
+
}
|
|
17184
|
+
try {
|
|
17185
|
+
const hash = wasmCache$7.calculate(data, 512);
|
|
17186
|
+
return Promise.resolve(hash);
|
|
17187
|
+
}
|
|
17188
|
+
catch (err) {
|
|
17189
|
+
return Promise.reject(err);
|
|
17190
|
+
}
|
|
17191
|
+
}
|
|
17192
|
+
/**
|
|
17193
|
+
* Creates a new SHA-2 (SHA-512) hash instance
|
|
17194
|
+
*/
|
|
17195
|
+
function createSHA512() {
|
|
17196
|
+
return WASMInterface(wasmJson$9, 64).then((wasm) => {
|
|
17197
|
+
wasm.init(512);
|
|
17198
|
+
const obj = {
|
|
17199
|
+
init: () => {
|
|
17200
|
+
wasm.init(512);
|
|
17201
|
+
return obj;
|
|
17202
|
+
},
|
|
17203
|
+
update: (data) => {
|
|
17204
|
+
wasm.update(data);
|
|
17205
|
+
return obj;
|
|
17206
|
+
},
|
|
17207
|
+
// biome-ignore lint/suspicious/noExplicitAny: Conflict with IHasher type
|
|
17208
|
+
digest: (outputType) => wasm.digest(outputType),
|
|
17209
|
+
save: () => wasm.save(),
|
|
17210
|
+
load: (data) => {
|
|
17211
|
+
wasm.load(data);
|
|
17212
|
+
return obj;
|
|
17213
|
+
},
|
|
17214
|
+
blockSize: 128,
|
|
17215
|
+
digestSize: 64,
|
|
17216
|
+
};
|
|
17217
|
+
return obj;
|
|
17218
|
+
});
|
|
17219
|
+
}
|
|
15930
17220
|
|
|
15931
|
-
|
|
15932
|
-
|
|
15933
|
-
|
|
15934
|
-
|
|
17221
|
+
var name$8 = "xxhash32";
|
|
17222
|
+
var data$8 = "AGFzbQEAAAABEQRgAAF/YAF/AGAAAGACf38AAwcGAAEBAgADBQQBAQICBg4CfwFBsIkFC38AQYAICwdwCAZtZW1vcnkCAA5IYXNoX0dldEJ1ZmZlcgAACUhhc2hfSW5pdAABC0hhc2hfVXBkYXRlAAIKSGFzaF9GaW5hbAADDUhhc2hfR2V0U3RhdGUABA5IYXNoX0NhbGN1bGF0ZQAFClNUQVRFX1NJWkUDAQrvEQYFAEGACQtNAEEAQgA3A6iJAUEAIAA2AoiJAUEAIABBz4yijgZqNgKMiQFBACAAQfeUr694ajYChIkBQQAgAEGoiI2hAmo2AoCJAUEAQQA2AqCJAQu4CAEHfwJAIABFDQBBAEEAKQOoiQEgAK18NwOoiQECQEEAKAKgiQEiASAAakEPSw0AAkACQCAAQQNxIgINAEGACSEDIAAhBAwBCyAAQXxxIQRBgAkhAwNAQQBBACgCoIkBIgVBAWo2AqCJASAFQZCJAWogAy0AADoAACADQQFqIQMgAkF/aiICDQALCyAAQQRJDQEDQEEAQQAoAqCJASICQQFqNgKgiQEgAkGQiQFqIAMtAAA6AAAgA0EBai0AACECQQBBACgCoIkBIgVBAWo2AqCJASAFQZCJAWogAjoAACADQQJqLQAAIQJBAEEAKAKgiQEiBUEBajYCoIkBIAVBkIkBaiACOgAAIANBA2otAAAhAkEAQQAoAqCJASIFQQFqNgKgiQEgBUGQiQFqIAI6AAAgA0EEaiEDIARBfGoiBA0ADAILCyAAQfAIaiEGAkACQCABDQBBACgCjIkBIQJBACgCiIkBIQVBACgChIkBIQRBACgCgIkBIQFBgAkhAwwBC0GACSEDAkAgAUEPSw0AQYAJIQMCQAJAQQAgAWtBA3EiBA0AIAEhBQwBCyABIQIDQEEAIAJBAWoiBTYCoIkBIAJBkIkBaiADLQAAOgAAIANBAWohAyAFIQIgBEF/aiIEDQALCyABQXNqQQNJDQBBACEEA0AgAyAEaiIBLQAAIQdBACAFIARqIgJBAWo2AqCJASACQZCJAWogBzoAACABQQFqLQAAIQdBACACQQJqNgKgiQEgAkGRiQFqIAc6AAAgAUECai0AACEHQQAgAkEDajYCoIkBIAJBkokBaiAHOgAAIAFBA2otAAAhAUEAIAJBBGo2AqCJASACQZOJAWogAToAACAFIARBBGoiBGpBEEcNAAsgAyAEaiEDC0EAQQAoApCJAUH3lK+veGxBACgCgIkBakENd0Gx893xeWwiATYCgIkBQQBBACgClIkBQfeUr694bEEAKAKEiQFqQQ13QbHz3fF5bCIENgKEiQFBAEEAKAKYiQFB95Svr3hsQQAoAoiJAWpBDXdBsfPd8XlsIgU2AoiJAUEAQQAoApyJAUH3lK+veGxBACgCjIkBakENd0Gx893xeWwiAjYCjIkBCyAAQYAJaiEAAkAgAyAGSw0AA0AgAygCAEH3lK+veGwgAWpBDXdBsfPd8XlsIQEgA0EMaigCAEH3lK+veGwgAmpBDXdBsfPd8XlsIQIgA0EIaigCAEH3lK+veGwgBWpBDXdBsfPd8XlsIQUgA0EEaigCAEH3lK+veGwgBGpBDXdBsfPd8XlsIQQgA0EQaiIDIAZNDQALC0EAIAI2AoyJAUEAIAU2AoiJAUEAIAQ2AoSJAUEAIAE2AoCJAUEAIAAgA2s2AqCJASAAIANGDQBBACECA0AgAkGQiQFqIAMgAmotAAA6AAAgAkEBaiICQQAoAqCJAUkNAAsLC4MEAgF+Bn9BACkDqIkBIgCnIQECQAJAIABCEFQNAEEAKAKEiQFBB3dBACgCgIkBQQF3akEAKAKIiQFBDHdqQQAoAoyJAUESd2ohAgwBC0EAKAKIiQFBsc/ZsgFqIQILIAIgAWohAkGQiQEhA0GUiQEhAQJAQQAoAqCJASIEQZCJAWoiBUGUiQFJDQBBkIkBIQMCQCAEQXxqIgZBBHENAEEAKAKQiQFBvdzKlXxsIAJqQRF3Qa/W074CbCECQZiJASEBQZSJASEDIAZBBEkNAQsDQCABKAIAQb3cypV8bCADKAIAQb3cypV8bCACakERd0Gv1tO+AmxqQRF3Qa/W074CbCECIAFBBGohAyABQQhqIgEgBU0NAAsgAUF8aiEDCwJAIAMgBUYNACAEQY+JAWohBgJAAkAgBCADa0EBcQ0AIAMhAQwBCyADQQFqIQEgAy0AAEGxz9myAWwgAmpBC3dBsfPd8XlsIQILIAYgA0YNAANAIAFBAWotAABBsc/ZsgFsIAEtAABBsc/ZsgFsIAJqQQt3QbHz3fF5bGpBC3dBsfPd8XlsIQIgAUECaiIBIAVHDQALC0EAIAJBD3YgAnNB95Svr3hsIgFBDXYgAXNBvdzKlXxsIgFBEHYgAXMiAkEYdCACQYD+A3FBCHRyIAFBCHZBgP4DcSABQRh2cnKtNwOACQsGAEGAiQEL0gQCAX4Ef0EAQgA3A6iJAUEAIAE2AoiJAUEAIAFBz4yijgZqNgKMiQFBACABQfeUr694ajYChIkBQQAgAUGoiI2hAmo2AoCJAUEAQQA2AqCJASAAEAJBACkDqIkBIgKnIQECQAJAIAJCEFQNAEEAKAKEiQFBB3dBACgCgIkBQQF3akEAKAKIiQFBDHdqQQAoAoyJAUESd2ohAAwBC0EAKAKIiQFBsc/ZsgFqIQALIAAgAWohAEGQiQEhA0GUiQEhAQJAQQAoAqCJASIEQZCJAWoiBUGUiQFJDQBBkIkBIQMCQCAEQXxqIgZBBHENAEEAKAKQiQFBvdzKlXxsIABqQRF3Qa/W074CbCEAQZiJASEBQZSJASEDIAZBBEkNAQsDQCABKAIAQb3cypV8bCADKAIAQb3cypV8bCAAakERd0Gv1tO+AmxqQRF3Qa/W074CbCEAIAFBBGohAyABQQhqIgEgBU0NAAsgAUF8aiEDCwJAIAMgBUYNACAEQY+JAWohBgJAAkAgBCADa0EBcQ0AIAMhAQwBCyADQQFqIQEgAy0AAEGxz9myAWwgAGpBC3dBsfPd8XlsIQALIAYgA0YNAANAIAFBAWotAABBsc/ZsgFsIAEtAABBsc/ZsgFsIABqQQt3QbHz3fF5bGpBC3dBsfPd8XlsIQAgAUECaiIBIAVHDQALC0EAIABBD3YgAHNB95Svr3hsIgFBDXYgAXNBvdzKlXxsIgFBEHYgAXMiAEEYdCAAQYD+A3FBCHRyIAFBCHZBgP4DcSABQRh2cnKtNwOACQsLCwEAQYAICwQwAAAA";
|
|
17223
|
+
var hash$8 = "4bb12485";
|
|
17224
|
+
var wasmJson$8 = {
|
|
17225
|
+
name: name$8,
|
|
17226
|
+
data: data$8,
|
|
17227
|
+
hash: hash$8
|
|
17228
|
+
};
|
|
15935
17229
|
|
|
15936
|
-
|
|
15937
|
-
|
|
15938
|
-
|
|
15939
|
-
|
|
15940
|
-
|
|
15941
|
-
|
|
15942
|
-
|
|
15943
|
-
|
|
15944
|
-
|
|
15945
|
-
|
|
15946
|
-
|
|
15947
|
-
|
|
15948
|
-
|
|
15949
|
-
|
|
15950
|
-
|
|
15951
|
-
|
|
15952
|
-
|
|
15953
|
-
|
|
15954
|
-
|
|
15955
|
-
|
|
15956
|
-
|
|
15957
|
-
|
|
15958
|
-
|
|
15959
|
-
|
|
15960
|
-
|
|
15961
|
-
|
|
15962
|
-
|
|
15963
|
-
|
|
15964
|
-
|
|
15965
|
-
|
|
15966
|
-
|
|
15967
|
-
|
|
15968
|
-
|
|
15969
|
-
|
|
15970
|
-
|
|
15971
|
-
|
|
15972
|
-
|
|
15973
|
-
|
|
15974
|
-
|
|
15975
|
-
|
|
15976
|
-
|
|
15977
|
-
|
|
15978
|
-
|
|
15979
|
-
|
|
15980
|
-
|
|
15981
|
-
|
|
17230
|
+
const mutex$6 = new Mutex();
|
|
17231
|
+
let wasmCache$6 = null;
|
|
17232
|
+
function validateSeed$3(seed) {
|
|
17233
|
+
if (!Number.isInteger(seed) || seed < 0 || seed > 0xffffffff) {
|
|
17234
|
+
return new Error("Seed must be a valid 32-bit long unsigned integer.");
|
|
17235
|
+
}
|
|
17236
|
+
return null;
|
|
17237
|
+
}
|
|
17238
|
+
/**
|
|
17239
|
+
* Calculates xxHash32 hash
|
|
17240
|
+
* @param data Input data (string, Buffer or TypedArray)
|
|
17241
|
+
* @param seed Number used to initialize the internal state of the algorithm (defaults to 0)
|
|
17242
|
+
* @returns Computed hash as a hexadecimal string
|
|
17243
|
+
*/
|
|
17244
|
+
function xxhash32(data, seed = 0) {
|
|
17245
|
+
if (validateSeed$3(seed)) {
|
|
17246
|
+
return Promise.reject(validateSeed$3(seed));
|
|
17247
|
+
}
|
|
17248
|
+
if (wasmCache$6 === null) {
|
|
17249
|
+
return lockedCreate(mutex$6, wasmJson$8, 4).then((wasm) => {
|
|
17250
|
+
wasmCache$6 = wasm;
|
|
17251
|
+
return wasmCache$6.calculate(data, seed);
|
|
17252
|
+
});
|
|
17253
|
+
}
|
|
17254
|
+
try {
|
|
17255
|
+
const hash = wasmCache$6.calculate(data, seed);
|
|
17256
|
+
return Promise.resolve(hash);
|
|
17257
|
+
}
|
|
17258
|
+
catch (err) {
|
|
17259
|
+
return Promise.reject(err);
|
|
17260
|
+
}
|
|
17261
|
+
}
|
|
17262
|
+
/**
|
|
17263
|
+
* Creates a new xxHash32 hash instance
|
|
17264
|
+
* @param data Input data (string, Buffer or TypedArray)
|
|
17265
|
+
* @param seed Number used to initialize the internal state of the algorithm (defaults to 0)
|
|
17266
|
+
*/
|
|
17267
|
+
function createXXHash32(seed = 0) {
|
|
17268
|
+
if (validateSeed$3(seed)) {
|
|
17269
|
+
return Promise.reject(validateSeed$3(seed));
|
|
17270
|
+
}
|
|
17271
|
+
return WASMInterface(wasmJson$8, 4).then((wasm) => {
|
|
17272
|
+
wasm.init(seed);
|
|
17273
|
+
const obj = {
|
|
17274
|
+
init: () => {
|
|
17275
|
+
wasm.init(seed);
|
|
17276
|
+
return obj;
|
|
17277
|
+
},
|
|
17278
|
+
update: (data) => {
|
|
17279
|
+
wasm.update(data);
|
|
17280
|
+
return obj;
|
|
17281
|
+
},
|
|
17282
|
+
// biome-ignore lint/suspicious/noExplicitAny: Conflict with IHasher type
|
|
17283
|
+
digest: (outputType) => wasm.digest(outputType),
|
|
17284
|
+
save: () => wasm.save(),
|
|
17285
|
+
load: (data) => {
|
|
17286
|
+
wasm.load(data);
|
|
17287
|
+
return obj;
|
|
17288
|
+
},
|
|
17289
|
+
blockSize: 16,
|
|
17290
|
+
digestSize: 4,
|
|
17291
|
+
};
|
|
17292
|
+
return obj;
|
|
17293
|
+
});
|
|
17294
|
+
}
|
|
15982
17295
|
|
|
15983
|
-
|
|
15984
|
-
|
|
15985
|
-
|
|
15986
|
-
|
|
15987
|
-
|
|
15988
|
-
|
|
15989
|
-
|
|
17296
|
+
var name$7 = "xxhash64";
|
|
17297
|
+
var data$7 = "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";
|
|
17298
|
+
var hash$7 = "177fbfa3";
|
|
17299
|
+
var wasmJson$7 = {
|
|
17300
|
+
name: name$7,
|
|
17301
|
+
data: data$7,
|
|
17302
|
+
hash: hash$7
|
|
17303
|
+
};
|
|
15990
17304
|
|
|
15991
|
-
|
|
15992
|
-
|
|
15993
|
-
|
|
15994
|
-
|
|
15995
|
-
|
|
17305
|
+
const mutex$5 = new Mutex();
|
|
17306
|
+
let wasmCache$5 = null;
|
|
17307
|
+
const seedBuffer$2 = new Uint8Array(8);
|
|
17308
|
+
function validateSeed$2(seed) {
|
|
17309
|
+
if (!Number.isInteger(seed) || seed < 0 || seed > 0xffffffff) {
|
|
17310
|
+
return new Error("Seed must be given as two valid 32-bit long unsigned integers (lo + high).");
|
|
17311
|
+
}
|
|
17312
|
+
return null;
|
|
17313
|
+
}
|
|
17314
|
+
function writeSeed$2(arr, low, high) {
|
|
17315
|
+
// write in little-endian format
|
|
17316
|
+
const buffer = new DataView(arr);
|
|
17317
|
+
buffer.setUint32(0, low, true);
|
|
17318
|
+
buffer.setUint32(4, high, true);
|
|
17319
|
+
}
|
|
17320
|
+
/**
|
|
17321
|
+
* Calculates xxHash64 hash
|
|
17322
|
+
* @param data Input data (string, Buffer or TypedArray)
|
|
17323
|
+
* @param seedLow Lower 32 bits of the number used to
|
|
17324
|
+
* initialize the internal state of the algorithm (defaults to 0)
|
|
17325
|
+
* @param seedHigh Higher 32 bits of the number used to
|
|
17326
|
+
* initialize the internal state of the algorithm (defaults to 0)
|
|
17327
|
+
* @returns Computed hash as a hexadecimal string
|
|
17328
|
+
*/
|
|
17329
|
+
function xxhash64(data, seedLow = 0, seedHigh = 0) {
|
|
17330
|
+
if (validateSeed$2(seedLow)) {
|
|
17331
|
+
return Promise.reject(validateSeed$2(seedLow));
|
|
17332
|
+
}
|
|
17333
|
+
if (validateSeed$2(seedHigh)) {
|
|
17334
|
+
return Promise.reject(validateSeed$2(seedHigh));
|
|
17335
|
+
}
|
|
17336
|
+
if (wasmCache$5 === null) {
|
|
17337
|
+
return lockedCreate(mutex$5, wasmJson$7, 8).then((wasm) => {
|
|
17338
|
+
wasmCache$5 = wasm;
|
|
17339
|
+
writeSeed$2(seedBuffer$2.buffer, seedLow, seedHigh);
|
|
17340
|
+
wasmCache$5.writeMemory(seedBuffer$2);
|
|
17341
|
+
return wasmCache$5.calculate(data);
|
|
17342
|
+
});
|
|
17343
|
+
}
|
|
17344
|
+
try {
|
|
17345
|
+
writeSeed$2(seedBuffer$2.buffer, seedLow, seedHigh);
|
|
17346
|
+
wasmCache$5.writeMemory(seedBuffer$2);
|
|
17347
|
+
const hash = wasmCache$5.calculate(data);
|
|
17348
|
+
return Promise.resolve(hash);
|
|
17349
|
+
}
|
|
17350
|
+
catch (err) {
|
|
17351
|
+
return Promise.reject(err);
|
|
17352
|
+
}
|
|
17353
|
+
}
|
|
17354
|
+
/**
|
|
17355
|
+
* Creates a new xxHash64 hash instance
|
|
17356
|
+
* @param seedLow Lower 32 bits of the number used to
|
|
17357
|
+
* initialize the internal state of the algorithm (defaults to 0)
|
|
17358
|
+
* @param seedHigh Higher 32 bits of the number used to
|
|
17359
|
+
* initialize the internal state of the algorithm (defaults to 0)
|
|
17360
|
+
*/
|
|
17361
|
+
function createXXHash64(seedLow = 0, seedHigh = 0) {
|
|
17362
|
+
if (validateSeed$2(seedLow)) {
|
|
17363
|
+
return Promise.reject(validateSeed$2(seedLow));
|
|
17364
|
+
}
|
|
17365
|
+
if (validateSeed$2(seedHigh)) {
|
|
17366
|
+
return Promise.reject(validateSeed$2(seedHigh));
|
|
17367
|
+
}
|
|
17368
|
+
return WASMInterface(wasmJson$7, 8).then((wasm) => {
|
|
17369
|
+
const instanceBuffer = new Uint8Array(8);
|
|
17370
|
+
writeSeed$2(instanceBuffer.buffer, seedLow, seedHigh);
|
|
17371
|
+
wasm.writeMemory(instanceBuffer);
|
|
17372
|
+
wasm.init();
|
|
17373
|
+
const obj = {
|
|
17374
|
+
init: () => {
|
|
17375
|
+
wasm.writeMemory(instanceBuffer);
|
|
17376
|
+
wasm.init();
|
|
17377
|
+
return obj;
|
|
17378
|
+
},
|
|
17379
|
+
update: (data) => {
|
|
17380
|
+
wasm.update(data);
|
|
17381
|
+
return obj;
|
|
17382
|
+
},
|
|
17383
|
+
// biome-ignore lint/suspicious/noExplicitAny: Conflict with IHasher type
|
|
17384
|
+
digest: (outputType) => wasm.digest(outputType),
|
|
17385
|
+
save: () => wasm.save(),
|
|
17386
|
+
load: (data) => {
|
|
17387
|
+
wasm.load(data);
|
|
17388
|
+
return obj;
|
|
17389
|
+
},
|
|
17390
|
+
blockSize: 32,
|
|
17391
|
+
digestSize: 8,
|
|
17392
|
+
};
|
|
17393
|
+
return obj;
|
|
17394
|
+
});
|
|
17395
|
+
}
|
|
15996
17396
|
|
|
15997
|
-
|
|
15998
|
-
var buf = (!out || out === 'binary' || out === 'hex') ? new Uint8Array(this.outlen) : out
|
|
15999
|
-
|
|
16000
|
-
|
|
16001
|
-
|
|
16002
|
-
|
|
16003
|
-
|
|
16004
|
-
}
|
|
17397
|
+
var name$6 = "xxhash3";
|
|
17398
|
+
var data$6 = "AGFzbQEAAAABNAhgAAF/YAR/f39/AGAHf39/f39/fwBgBH9+fn4BfmAEf39/fgF+YAN/f34BfmAAAGABfwADDg0AAQIDBAUFBQYHBgAGBQQBAQICBg4CfwFBwI4FC38AQcAJCwdwCAZtZW1vcnkCAA5IYXNoX0dldEJ1ZmZlcgAACUhhc2hfSW5pdAAIC0hhc2hfVXBkYXRlAAkKSGFzaF9GaW5hbAAKDUhhc2hfR2V0U3RhdGUACw5IYXNoX0NhbGN1bGF0ZQAMClNUQVRFX1NJWkUDAQr6QQ0FAEGACgvkAwMPfgF/AX4CQCADRQ0AIAApAzAhBCAAKQM4IQUgACkDICEGIAApAyghByAAKQMQIQggACkDGCEJIAApAwAhCiAAKQMIIQsDQCAFIAFBMGopAwAiDHwgAkE4aikDACABQThqKQMAIg2FIgVCIIggBUL/////D4N+fCEFIAcgAUEgaikDACIOfCACQShqKQMAIAFBKGopAwAiD4UiB0IgiCAHQv////8Pg358IQcgCSABQRBqKQMAIhB8IAJBGGopAwAgAUEYaikDACIRhSIJQiCIIAlC/////w+DfnwhCSALIAEpAwAiEnwgAkEIaiITKQMAIAFBCGopAwAiFIUiC0IgiCALQv////8Pg358IQsgAkEwaikDACAMhSIMQiCIIAxC/////w+DfiAEfCANfCEEIAJBIGopAwAgDoUiDEIgiCAMQv////8Pg34gBnwgD3whBiACQRBqKQMAIBCFIgxCIIggDEL/////D4N+IAh8IBF8IQggAikDACAShSIMQiCIIAxC/////w+DfiAKfCAUfCEKIAFBwABqIQEgEyECIANBf2oiAw0ACyAAIAk3AxggACAKNwMAIAAgCzcDCCAAIAc3AyggACAINwMQIAAgBTcDOCAAIAY3AyAgACAENwMwCwveAgIBfwF+AkAgBCACIAEoAgAiB2siAkkNACAAIAMgBSAHQQN0aiACEAEgACAFIAZqIgcpAwAgACkDACIIQi+IhSAIhUKx893xCX43AwAgACAHKQMIIAApAwgiCEIviIUgCIVCsfPd8Ql+NwMIIAAgBykDECAAKQMQIghCL4iFIAiFQrHz3fEJfjcDECAAIAcpAxggACkDGCIIQi+IhSAIhUKx893xCX43AxggACAHKQMgIAApAyAiCEIviIUgCIVCsfPd8Ql+NwMgIAAgBykDKCAAKQMoIghCL4iFIAiFQrHz3fEJfjcDKCAAIAcpAzAgACkDMCIIQi+IhSAIhUKx893xCX43AzAgACAHKQM4IAApAzgiCEIviIUgCIVCsfPd8Ql+NwM4IAAgAyACQQZ0aiAFIAQgAmsiBxABIAEgBzYCAA8LIAAgAyAFIAdBA3RqIAQQASABIAcgBGo2AgALhQEBAX8gAiABhSADpyIEQRh0IARBgP4DcUEIdHIgBEEIdkGA/gNxIARBGHZycq1CIIYgA4V9QQA1AoCMAUIghiAAQfyLAWo1AgCEhSIDQjGJIANCGImFIAOFQqW+4/TRjIfZn39+IgNCI4ggAK18IAOFQqW+4/TRjIfZn39+IgNCHIggA4ULZwAgAiABc60gA3wiA0IhiEEALQCAjAFBEHQgAEEIdHIgAEEBdkGAjAFqLQAAQRh0ciAAQf+LAWotAAByrYUgA4VCz9bTvtLHq9lCfiIDQh2IIAOFQvnz3fGZ9pmrFn4iA0IgiCADhQuJAwEEfgJAIABBCUkNAEEAKQOAjAEgASkDICABKQMYhSACfIUiA0I4hiADQoD+A4NCKIaEIANCgID8B4NCGIYgA0KAgID4D4NCCIaEhCADQgiIQoCAgPgPgyADQhiIQoCA/AeDhCADQiiIQoD+A4MgA0I4iISEhCAArXwgAEH4iwFqKQMAIAEpAzAgASkDKIUgAn2FIgJ8IAJC/////w+DIgQgA0IgiCIFfiIGQv////8PgyACQiCIIgIgA0L/////D4MiA358IAQgA34iA0IgiHwiBEIghiADQv////8Pg4QgBkIgiCACIAV+fCAEQiCIfIV8IgNCJYggA4VC+fPd8ZnymasWfiIDQiCIIAOFDwsCQCAAQQRJDQAgACABQQhqKQMAIAFBEGopAwAgAhADDwsCQCAARQ0AIAAgASgCACABQQRqKAIAIAIQBA8LIAEpAzggASkDQIUgAoUiA0IhiCADhULP1tO+0ser2UJ+IgNCHYggA4VC+fPd8Zn2masWfiIDQiCIIAOFC94IAQZ+IACtQoeVr6+Ytt6bnn9+IQMCQCAAQSFJDQACQCAAQcEASQ0AAkAgAEHhAEkNACABKQNoIAJ9QQApA7iMAYUiBEL/////D4MiBSABKQNgIAJ8QQApA7CMAYUiBkIgiCIHfiIIQv////8PgyAEQiCIIgQgBkL/////D4MiBn58IAUgBn4iBUIgiHwiBkIghiAFQv////8Pg4QgCEIgiCAEIAd+fCAGQiCIfIUgA3wgASkDeCACfSAAQciLAWopAwCFIgNC/////w+DIgQgASkDcCACfCAAQcCLAWopAwCFIgVCIIgiBn4iB0L/////D4MgA0IgiCIDIAVC/////w+DIgV+fCAEIAV+IgRCIIh8IgVCIIYgBEL/////D4OEIAdCIIggAyAGfnwgBUIgiHyFfCEDCyABKQNIIAJ9QQApA6iMAYUiBEL/////D4MiBSABKQNAIAJ8QQApA6CMAYUiBkIgiCIHfiIIQv////8PgyAEQiCIIgQgBkL/////D4MiBn58IAUgBn4iBUIgiHwiBkIghiAFQv////8Pg4QgCEIgiCAEIAd+fCAGQiCIfIUgA3wgASkDWCACfSAAQdiLAWopAwCFIgNC/////w+DIgQgASkDUCACfCAAQdCLAWopAwCFIgVCIIgiBn4iB0L/////D4MgA0IgiCIDIAVC/////w+DIgV+fCAEIAV+IgRCIIh8IgVCIIYgBEL/////D4OEIAdCIIggAyAGfnwgBUIgiHyFfCEDCyABKQMoIAJ9QQApA5iMAYUiBEL/////D4MiBSABKQMgIAJ8QQApA5CMAYUiBkIgiCIHfiIIQv////8PgyAEQiCIIgQgBkL/////D4MiBn58IAUgBn4iBUIgiHwiBkIghiAFQv////8Pg4QgCEIgiCAEIAd+fCAGQiCIfIUgA3wgASkDOCACfSAAQeiLAWopAwCFIgNC/////w+DIgQgASkDMCACfCAAQeCLAWopAwCFIgVCIIgiBn4iB0L/////D4MgA0IgiCIDIAVC/////w+DIgV+fCAEIAV+IgRCIIh8IgVCIIYgBEL/////D4OEIAdCIIggAyAGfnwgBUIgiHyFfCEDCyABKQMIIAJ9QQApA4iMAYUiBEL/////D4MiBSABKQMAIAJ8QQApA4CMAYUiBkIgiCIHfiIIQv////8PgyAEQiCIIgQgBkL/////D4MiBn58IAUgBn4iBUIgiHwiBkIghiAFQv////8Pg4QgCEIgiCAEIAd+fCAGQiCIfIUgA3wgASkDGCACfSAAQfiLAWopAwCFIgNC/////w+DIgQgASkDECACfCAAQfCLAWopAwCFIgJCIIgiBX4iBkL/////D4MgA0IgiCIDIAJC/////w+DIgJ+fCAEIAJ+IgJCIIh8IgRCIIYgAkL/////D4OEIAZCIIggAyAFfnwgBEIgiHyFfCICQiWIIAKFQvnz3fGZ8pmrFn4iAkIgiCAChQv8CgQBfwV+An8BfkEAIQMgASkDeCACfUEAKQP4jAGFIgRC/////w+DIgUgASkDcCACfEEAKQPwjAGFIgZCIIgiB34iCEL/////D4MgBEIgiCIEIAZC/////w+DIgZ+fCAFIAZ+IgVCIIh8IgZCIIYgBUL/////D4OEIAhCIIggBCAHfnwgBkIgiHyFIAEpA2ggAn1BACkD6IwBhSIEQv////8PgyIFIAEpA2AgAnxBACkD4IwBhSIGQiCIIgd+IghC/////w+DIARCIIgiBCAGQv////8PgyIGfnwgBSAGfiIFQiCIfCIGQiCGIAVC/////w+DhCAIQiCIIAQgB358IAZCIIh8hSABKQNYIAJ9QQApA9iMAYUiBEL/////D4MiBSABKQNQIAJ8QQApA9CMAYUiBkIgiCIHfiIIQv////8PgyAEQiCIIgQgBkL/////D4MiBn58IAUgBn4iBUIgiHwiBkIghiAFQv////8Pg4QgCEIgiCAEIAd+fCAGQiCIfIUgASkDSCACfUEAKQPIjAGFIgRC/////w+DIgUgASkDQCACfEEAKQPAjAGFIgZCIIgiB34iCEL/////D4MgBEIgiCIEIAZC/////w+DIgZ+fCAFIAZ+IgVCIIh8IgZCIIYgBUL/////D4OEIAhCIIggBCAHfnwgBkIgiHyFIAEpAzggAn1BACkDuIwBhSIEQv////8PgyIFIAEpAzAgAnxBACkDsIwBhSIGQiCIIgd+IghC/////w+DIARCIIgiBCAGQv////8PgyIGfnwgBSAGfiIFQiCIfCIGQiCGIAVC/////w+DhCAIQiCIIAQgB358IAZCIIh8hSABKQMoIAJ9QQApA6iMAYUiBEL/////D4MiBSABKQMgIAJ8QQApA6CMAYUiBkIgiCIHfiIIQv////8PgyAEQiCIIgQgBkL/////D4MiBn58IAUgBn4iBUIgiHwiBkIghiAFQv////8Pg4QgCEIgiCAEIAd+fCAGQiCIfIUgASkDGCACfUEAKQOYjAGFIgRC/////w+DIgUgASkDECACfEEAKQOQjAGFIgZCIIgiB34iCEL/////D4MgBEIgiCIEIAZC/////w+DIgZ+fCAFIAZ+IgVCIIh8IgZCIIYgBUL/////D4OEIAhCIIggBCAHfnwgBkIgiHyFIAEpAwggAn1BACkDiIwBhSIEQv////8PgyIFIAEpAwAgAnxBACkDgIwBhSIGQiCIIgd+IghC/////w+DIARCIIgiBCAGQv////8PgyIGfnwgBSAGfiIFQiCIfCIGQiCGIAVC/////w+DhCAIQiCIIAQgB358IAZCIIh8hSAArUKHla+vmLbem55/fnx8fHx8fHx8IgRCJYggBIVC+fPd8ZnymasWfiIEQiCIIASFIQQCQCAAQZABSA0AIABBBHZBeGohCQNAIAEgA2oiCkELaikDACACfSADQYiNAWopAwCFIgVC/////w+DIgYgCkEDaikDACACfCADQYCNAWopAwCFIgdCIIgiCH4iC0L/////D4MgBUIgiCIFIAdC/////w+DIgd+fCAGIAd+IgZCIIh8IgdCIIYgBkL/////D4OEIAtCIIggBSAIfnwgB0IgiHyFIAR8IQQgA0EQaiEDIAlBf2oiCQ0ACwsgASkDfyACfSAAQfiLAWopAwCFIgVC/////w+DIgYgASkDdyACfCAAQfCLAWopAwCFIgJCIIgiB34iCEL/////D4MgBUIgiCIFIAJC/////w+DIgJ+fCAGIAJ+IgJCIIh8IgZCIIYgAkL/////D4OEIAhCIIggBSAHfnwgBkIgiHyFIAR8IgJCJYggAoVC+fPd8ZnymasWfiICQiCIIAKFC98FAgF+AX8CQAJAQQApA4AKIgBQRQ0AQYAIIQFCACEADAELAkBBACkDoI4BIABSDQBBACEBDAELQQAhAUEAQq+v79e895Kg/gAgAH03A/iLAUEAIABCxZbr+djShYIofDcD8IsBQQBCj/Hjja2P9JhOIAB9NwPoiwFBACAAQqus+MXV79HQfHw3A+CLAUEAQtOt1LKShbW0nn8gAH03A9iLAUEAIABCl5r0jvWWvO3JAHw3A9CLAUEAQsWDgv2v/8SxayAAfTcDyIsBQQAgAELqi7OdyOb09UN8NwPAiwFBAELIv/rLnJveueQAIAB9NwO4iwFBACAAQoqjgd/Ume2sMXw3A7CLAUEAQvm57738+MKnHSAA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QQApA4CKATcDACACQQApA4iKATcDCCACQQApA5CKATcDECACQQApA5iKATcDGCACQQApA6CKATcDICACQQApA6iKATcDKCACQQApA7CKASIFNwMwIAJBACkDuIoBIgY3AzgCQAJAQQAoAoCOASIHQcAASQ0AIAJBACgCiI4BNgJAIAIgAkHAAGpBACgCmI4BQYCMASAHQX9qQQZ2IANBACgCnI4BIgAQAiADIABqIgBBeWopAwAhCCAAKQMJIQkgACkDGSEKIAApAykhCyAHQcCLAWopAwAhBSAAKQMBIQwgB0HIiwFqKQMAIQYgB0HQiwFqKQMAIQ0gACkDESEOIAdB2IsBaikDACEPIAdB4IsBaikDACEQIAApAyEhESAHQeiLAWopAwAhEiACKQMAIRMgAikDECEUIAIpAyAhFSACKQMwIRYgAikDCCEXIAIpAxghGCACKQMoIRkgAiACKQM4IAdB8IsBaikDACIafCAAKQMxIAdB+IsBaikDACIbhSIcQiCIIBxC/////w+Dfnw3AzggGSAQfCARIBKFIhFCIIggEUL/////D4N+fCERIBggDXwgDiAPhSIOQiCIIA5C/////w+DfnwhDiAXIAV8IAwgBoUiDEIgiCAMQv////8Pg358IQwgGyAWIAsgGoUiC0IgiCALQv////8Pg358fCELIBIgFSAKIBCFIhBCIIggEEL/////D4N+fHwhECAPIBQgCSANhSINQiCIIA1C/////w+Dfnx8IRIgBiATIAggBYUiBUIgiCAFQv////8Pg358fCEIDAELIAdBwI0BaiEdQcAAIAdrIR4gAkHAAGohAAJAAkACQCAHQThNDQAgHiEfDAELAkACQEE4IAdrQQN2QQFqQQdxIh8NACACQcAAaiEAIB4hHwwBCyACQcAAaiEAIB9BA3QiICEfA0AgACAdKQMANwMAIABBCGohACAdQQhqIR0gH0F4aiIfDQALQcAAIAcgIGprIR8LAkAgBw0AA0AgACAdKQMANwMAIABBCGogHUEIaikDADcDACAAQRBqIB1BEGopAwA3AwAgAEEYaiAdQRhqKQMANwMAIABBIGogHUEgaikDADcDACAAQShqIB1BKGopAwA3AwAgAEEwaiAdQTBqKQMANwMAIABBOGogHUE4aikDADcDACAAQcAAaiEAIB1BwABqIR0gH0FAaiIfQQdLDQALCyAfRQ0BCyAfQX9qISECQCAfQQdxIiBFDQAgH0F4cSEfA0AgACAdLQAAOgAAIABBAWohACAdQQFqIR0gIEF/aiIgDQALCyAhQQdJDQADQCAAIB0pAAA3AAAgAEEIaiEAIB1BCGohHSAfQXhqIh8NAAsLIAJBwABqIB5qIR1BgIwBIQACQAJAAkAgB0EISQ0AAkAgB0E4akEDdkEBakEHcSIfDQAMAgsgH0EDdCEgQYCMASEAA0AgHSAAKQMANwMAIB1BCGohHSAAQQhqIQAgH0F/aiIfDQALIAcgIGshBwsgB0UNAQJAAkAgB0EHcSIgDQAgByEfDAELIAdBeHEhHwNAIB0gAC0AADoAACAdQQFqIR0gAEEBaiEAICBBf2oiIA0ACwsgB0EISQ0BCwNAIB0gACkAADcAACAdQQhqIR0gAEEIaiEAIB9BeGoiHw0ACwsgA0EAKAKcjgFqIgBBeWopAwAhCiAAKQMJIRMgACkDGSEUIAApAykhCyAAKQMBIQwgACkDESEOIAApAyEhESACKQMAIRUgAikDECEWIAIpAyAhFyACKQMIIRggAikDQCENIAIpA0ghDyACKQMYIRkgAikDUCESIAIpA1ghCCACKQMoIRogAikDYCEQIAIpA2ghCSACIAYgAikDcCIbfCAAKQMxIAIpA3giBoUiHEIgiCAcQv////8Pg358NwM4IBogEHwgESAJhSIRQiCIIBFC/////w+DfnwhESAZIBJ8IA4gCIUiDkIgiCAOQv////8Pg358IQ4gGCANfCAMIA+FIgxCIIggDEL/////D4N+fCEMIAYgCyAbhSILQiCIIAtC/////w+DfiAFfHwhCyAJIBcgFCAQhSIFQiCIIAVC/////w+Dfnx8IRAgCCAWIBMgEoUiBUIgiCAFQv////8Pg358fCESIA8gFSAKIA2FIgVCIIggBUL/////D4N+fHwhCAsgAykDQyACKQM4hSIFQv////8PgyIGIAMpAzsgC4UiC0IgiCINfiIPQv////8PgyAFQiCIIgUgC0L/////D4MiC358IAYgC34iBkIgiHwiC0IghiAGQv////8Pg4QgD0IgiCAFIA1+fCALQiCIfIUgAykDMyARhSIFQv////8PgyIGIAMpAysgEIUiC0IgiCINfiIPQv////8PgyAFQiCIIgUgC0L/////D4MiC358IAYgC34iBkIgiHwiC0IghiAGQv////8Pg4QgD0IgiCAFIA1+fCALQiCIfIUgAykDIyAOhSIFQv////8PgyIGIAMpAxsgEoUiC0IgiCINfiIPQv////8PgyAFQiCIIgUgC0L/////D4MiC358IAYgC34iBkIgiHwiC0IghiAGQv////8Pg4QgD0IgiCAFIA1+fCALQiCIfIUgAykDEyAMhSIFQv////8PgyIGIAMpAwsgCIUiC0IgiCINfiIPQv////8PgyAFQiCIIgUgC0L/////D4MiC358IAYgC34iBkIgiHwiC0IghiAGQv////8Pg4QgD0IgiCAFIA1+fCALQiCIfIUgBEKHla+vmLbem55/fnx8fHwiBEIliCAEhUL5893xmfKZqxZ+IgRCIIggBIUhBAwBCyAEpyEAAkBBACkDoI4BIgRQDQACQCAAQRBLDQAgAEGACCAEEAUhBAwCCwJAIABBgAFLDQAgAEGACCAEEAYhBAwCCyAAQYAIIAQQByEEDAELAkAgAEEQSw0AIAAgA0IAEAUhBAwBCwJAIABBgAFLDQAgACADQgAQBiEEDAELIAAgA0IAEAchBAtBACAEQjiGIARCgP4Dg0IohoQgBEKAgPwHg0IYhiAEQoCAgPgPg0IIhoSEIARCCIhCgICA+A+DIARCGIhCgID8B4OEIARCKIhCgP4DgyAEQjiIhISENwOACiABJAALBgBBgIoBCwIACwvMAQEAQYAIC8QBuP5sOSOkS758AYEs9yGtHN7UbemDkJfbckCkpLezZx/LeeZOzMDleIJa0H3M/3IhuAhGdPdDJI7gNZDmgTomTDwoUruRwwDLiNBlixtTLqNxZEiXog35TjgZ70ap3qzYqPp2P+OcND/53LvHxwtPHYpR4EvNtFkxyJ9+ydl4c2TqxayDNNPrw8WBoP/6E2PrFw3dUbfw2knTFlUmKdRonisWvlh9R6H8j/i40XrQMc5FyzqPlRYEKK/X+8q7S0B+QAIAAA==";
|
|
17399
|
+
var hash$6 = "5a2fbdbb";
|
|
17400
|
+
var wasmJson$6 = {
|
|
17401
|
+
name: name$6,
|
|
17402
|
+
data: data$6,
|
|
17403
|
+
hash: hash$6
|
|
17404
|
+
};
|
|
16005
17405
|
|
|
16006
|
-
|
|
17406
|
+
const mutex$4 = new Mutex();
|
|
17407
|
+
let wasmCache$4 = null;
|
|
17408
|
+
const seedBuffer$1 = new Uint8Array(8);
|
|
17409
|
+
function validateSeed$1(seed) {
|
|
17410
|
+
if (!Number.isInteger(seed) || seed < 0 || seed > 0xffffffff) {
|
|
17411
|
+
return new Error("Seed must be given as two valid 32-bit long unsigned integers (lo + high).");
|
|
17412
|
+
}
|
|
17413
|
+
return null;
|
|
17414
|
+
}
|
|
17415
|
+
function writeSeed$1(arr, low, high) {
|
|
17416
|
+
// write in little-endian format
|
|
17417
|
+
const buffer = new DataView(arr);
|
|
17418
|
+
buffer.setUint32(0, low, true);
|
|
17419
|
+
buffer.setUint32(4, high, true);
|
|
17420
|
+
}
|
|
17421
|
+
/**
|
|
17422
|
+
* Calculates xxHash3 hash
|
|
17423
|
+
* @param data Input data (string, Buffer or TypedArray)
|
|
17424
|
+
* @param seedLow Lower 32 bits of the number used to
|
|
17425
|
+
* initialize the internal state of the algorithm (defaults to 0)
|
|
17426
|
+
* @param seedHigh Higher 32 bits of the number used to
|
|
17427
|
+
* initialize the internal state of the algorithm (defaults to 0)
|
|
17428
|
+
* @returns Computed hash as a hexadecimal string
|
|
17429
|
+
*/
|
|
17430
|
+
function xxhash3(data, seedLow = 0, seedHigh = 0) {
|
|
17431
|
+
if (validateSeed$1(seedLow)) {
|
|
17432
|
+
return Promise.reject(validateSeed$1(seedLow));
|
|
17433
|
+
}
|
|
17434
|
+
if (validateSeed$1(seedHigh)) {
|
|
17435
|
+
return Promise.reject(validateSeed$1(seedHigh));
|
|
17436
|
+
}
|
|
17437
|
+
if (wasmCache$4 === null) {
|
|
17438
|
+
return lockedCreate(mutex$4, wasmJson$6, 8).then((wasm) => {
|
|
17439
|
+
wasmCache$4 = wasm;
|
|
17440
|
+
writeSeed$1(seedBuffer$1.buffer, seedLow, seedHigh);
|
|
17441
|
+
wasmCache$4.writeMemory(seedBuffer$1);
|
|
17442
|
+
return wasmCache$4.calculate(data);
|
|
17443
|
+
});
|
|
17444
|
+
}
|
|
17445
|
+
try {
|
|
17446
|
+
writeSeed$1(seedBuffer$1.buffer, seedLow, seedHigh);
|
|
17447
|
+
wasmCache$4.writeMemory(seedBuffer$1);
|
|
17448
|
+
const hash = wasmCache$4.calculate(data);
|
|
17449
|
+
return Promise.resolve(hash);
|
|
17450
|
+
}
|
|
17451
|
+
catch (err) {
|
|
17452
|
+
return Promise.reject(err);
|
|
17453
|
+
}
|
|
17454
|
+
}
|
|
17455
|
+
/**
|
|
17456
|
+
* Creates a new xxHash3 hash instance
|
|
17457
|
+
* @param seedLow Lower 32 bits of the number used to
|
|
17458
|
+
* initialize the internal state of the algorithm (defaults to 0)
|
|
17459
|
+
* @param seedHigh Higher 32 bits of the number used to
|
|
17460
|
+
* initialize the internal state of the algorithm (defaults to 0)
|
|
17461
|
+
*/
|
|
17462
|
+
function createXXHash3(seedLow = 0, seedHigh = 0) {
|
|
17463
|
+
if (validateSeed$1(seedLow)) {
|
|
17464
|
+
return Promise.reject(validateSeed$1(seedLow));
|
|
17465
|
+
}
|
|
17466
|
+
if (validateSeed$1(seedHigh)) {
|
|
17467
|
+
return Promise.reject(validateSeed$1(seedHigh));
|
|
17468
|
+
}
|
|
17469
|
+
return WASMInterface(wasmJson$6, 8).then((wasm) => {
|
|
17470
|
+
const instanceBuffer = new Uint8Array(8);
|
|
17471
|
+
writeSeed$1(instanceBuffer.buffer, seedLow, seedHigh);
|
|
17472
|
+
wasm.writeMemory(instanceBuffer);
|
|
17473
|
+
wasm.init();
|
|
17474
|
+
const obj = {
|
|
17475
|
+
init: () => {
|
|
17476
|
+
wasm.writeMemory(instanceBuffer);
|
|
17477
|
+
wasm.init();
|
|
17478
|
+
return obj;
|
|
17479
|
+
},
|
|
17480
|
+
update: (data) => {
|
|
17481
|
+
wasm.update(data);
|
|
17482
|
+
return obj;
|
|
17483
|
+
},
|
|
17484
|
+
// biome-ignore lint/suspicious/noExplicitAny: Conflict with IHasher type
|
|
17485
|
+
digest: (outputType) => wasm.digest(outputType),
|
|
17486
|
+
save: () => wasm.save(),
|
|
17487
|
+
load: (data) => {
|
|
17488
|
+
wasm.load(data);
|
|
17489
|
+
return obj;
|
|
17490
|
+
},
|
|
17491
|
+
blockSize: 512,
|
|
17492
|
+
digestSize: 8,
|
|
17493
|
+
};
|
|
17494
|
+
return obj;
|
|
17495
|
+
});
|
|
17496
|
+
}
|
|
16007
17497
|
|
|
16008
|
-
|
|
16009
|
-
b2wasm.ready(function () {
|
|
16010
|
-
|
|
16011
|
-
|
|
16012
|
-
|
|
17498
|
+
var name$5 = "xxhash128";
|
|
17499
|
+
var data$5 = "AGFzbQEAAAABKwdgAAF/YAR/f39/AGAHf39/f39/fwBgA39/fgF+YAR/f39+AGAAAGABfwADDQwAAQIDBAQEBQYFAAUFBAEBAgIGDgJ/AUHAjgULfwBBwAkLB3AIBm1lbW9yeQIADkhhc2hfR2V0QnVmZmVyAAAJSGFzaF9Jbml0AAcLSGFzaF9VcGRhdGUACApIYXNoX0ZpbmFsAAkNSGFzaF9HZXRTdGF0ZQAKDkhhc2hfQ2FsY3VsYXRlAAsKU1RBVEVfU0laRQMBCqBNDAUAQYAKC+QDAw9+AX8BfgJAIANFDQAgACkDMCEEIAApAzghBSAAKQMgIQYgACkDKCEHIAApAxAhCCAAKQMYIQkgACkDACEKIAApAwghCwNAIAUgAUEwaikDACIMfCACQThqKQMAIAFBOGopAwAiDYUiBUIgiCAFQv////8Pg358IQUgByABQSBqKQMAIg58IAJBKGopAwAgAUEoaikDACIPhSIHQiCIIAdC/////w+DfnwhByAJIAFBEGopAwAiEHwgAkEYaikDACABQRhqKQMAIhGFIglCIIggCUL/////D4N+fCEJIAsgASkDACISfCACQQhqIhMpAwAgAUEIaikDACIUhSILQiCIIAtC/////w+DfnwhCyACQTBqKQMAIAyFIgxCIIggDEL/////D4N+IAR8IA18IQQgAkEgaikDACAOhSIMQiCIIAxC/////w+DfiAGfCAPfCEGIAJBEGopAwAgEIUiDEIgiCAMQv////8Pg34gCHwgEXwhCCACKQMAIBKFIgxCIIggDEL/////D4N+IAp8IBR8IQogAUHAAGohASATIQIgA0F/aiIDDQALIAAgCTcDGCAAIAo3AwAgACALNwMIIAAgBzcDKCAAIAg3AxAgACAFNwM4IAAgBjcDICAAIAQ3AzALC94CAgF/AX4CQCAEIAIgASgCACIHayICSQ0AIAAgAyAFIAdBA3RqIAIQASAAIAUgBmoiBykDACAAKQMAIghCL4iFIAiFQrHz3fEJfjcDACAAIAcpAwggACkDCCIIQi+IhSAIhUKx893xCX43AwggACAHKQMQIAApAxAiCEIviIUgCIVCsfPd8Ql+NwMQIAAgBykDGCAAKQMYIghCL4iFIAiFQrHz3fEJfjcDGCAAIAcpAyAgACkDICIIQi+IhSAIhUKx893xCX43AyAgACAHKQMoIAApAygiCEIviIUgCIVCsfPd8Ql+NwMoIAAgBykDMCAAKQMwIghCL4iFIAiFQrHz3fEJfjcDMCAAIAcpAzggACkDOCIIQi+IhSAIhUKx893xCX43AzggACADIAJBBnRqIAUgBCACayIHEAEgASAHNgIADwsgACADIAUgB0EDdGogBBABIAEgByAEajYCAAvtAwEFfiABKQM4IAApAziFIgNC/////w+DIgQgASkDMCAAKQMwhSIFQiCIIgZ+IgdC/////w+DIANCIIgiAyAFQv////8PgyIFfnwgBCAFfiIEQiCIfCIFQiCGIARC/////w+DhCAHQiCIIAMgBn58IAVCIIh8hSABKQMoIAApAyiFIgNC/////w+DIgQgASkDICAAKQMghSIFQiCIIgZ+IgdC/////w+DIANCIIgiAyAFQv////8PgyIFfnwgBCAFfiIEQiCIfCIFQiCGIARC/////w+DhCAHQiCIIAMgBn58IAVCIIh8hSABKQMYIAApAxiFIgNC/////w+DIgQgASkDECAAKQMQhSIFQiCIIgZ+IgdC/////w+DIANCIIgiAyAFQv////8PgyIFfnwgBCAFfiIEQiCIfCIFQiCGIARC/////w+DhCAHQiCIIAMgBn58IAVCIIh8hSABKQMIIAApAwiFIgNC/////w+DIgQgASkDACAAKQMAhSIFQiCIIgZ+IgdC/////w+DIANCIIgiAyAFQv////8PgyIFfnwgBCAFfiIEQiCIfCIFQiCGIARC/////w+DhCAHQiCIIAMgBn58IAVCIIh8hSACfHx8fCICQiWIIAKFQvnz3fGZ8pmrFn4iAkIgiCAChQu6CAIFfgN/AkAgAUEJSQ0AIAAgAUH4iwFqKQMAIgQgAikDOCACKQMwhSADfIUiBUL/////D4NC95Svrwh+IAVCgICAgHCDfEEAKQOAjAEgAikDKCACKQMghSADfYUgBIUiA0IgiCIEQrHz3fEJfnwgBEKHla+vCH4iBEIgiHwgBEL/////D4MgA0L/////D4MiA0Kx893xCX58IANCh5Wvrwh+IgRCIIh8IgVCIIh8IgNCOIYgA0KA/gODQiiGhCADQoCA/AeDQhiGIANCgICA+A+DQgiGhIQgA0IIiEKAgID4D4MgA0IYiEKAgPwHg4QgA0IoiEKA/gODIANCOIiEhIQgBEL/////D4MgAUF/aq1CNoaEIAVCIIZ8hSIEQiCIIgVCz9bTvgJ+IgZC/////w+DIARC/////w+DIgRCvdzKlQx+fCAEQs/W074CfiIEQiCIfCIHQiCGIghCJYggCCAEQv////8Pg4SFQvnz3fGZ8pmrFn4iBEIgiCAEhTcDACAAIAVCvdzKlQx+IANCz9bTvtLHq9lCfnwgBkIgiHwgB0IgiHwiA0IliCADhUL5893xmfKZqxZ+IgNCIIggA4U3AwgPCwJAIAFBBEkNACAAIAIpAxggAikDEIUgA6ciAkEYdCACQYD+A3FBCHRyIAJBCHZBgP4DcSACQRh2cnKtQiCGIAOFfCABQfyLAWo1AgBCIIZBADUCgIwBhIUiA0IgiCIEIAFBAnRBh5Wvr3hqrSIFfiIGQiCIIARCsfPd8Ql+fCAGQv////8PgyADQv////8PgyIDQrHz3fEJfnwgAyAFfiIDQiCIfCIEQiCIfCAEQiCGIANC/////w+DhCIEQgGGfCIDQiWIIAOFQvnz3fGZ8pmrFn4iBUIgiCAFhTcDCCAAIANCA4ggBIUiA0IjiCADhUKlvuP00YyH2Z9/fiIDQhyIIAOFNwMADwsCQCABRQ0AIAAgAigCBCACKAIAc60gA3wiBEIhiEEALQCAjAFBEHQgAUEIdHIiCSABQQF2QYCMAWotAABBGHRyIgogAUH/iwFqLQAAIgFyIguthSAEhULP1tO+0ser2UJ+IgRCHYggBIVC+fPd8Zn2masWfiIEQiCIIASFNwMAIAAgAigCDCACKAIIc60gA30iA0IhiCABQRh0IAtBgP4DcUEIdHIgCUEIdkGA/gNxIApBGHZyckENd62FIAOFQs/W077Sx6vZQn4iA0IdiCADhUL5893xmfaZqxZ+IgNCIIggA4U3AwgPCyAAIAIpA1AgAikDWIUgA4UiBEIhiCAEhULP1tO+0ser2UJ+IgRCHYggBIVC+fPd8Zn2masWfiIEQiCIIASFNwMIIAAgAikDQCACKQNIhSADhSIDQiGIIAOFQs/W077Sx6vZQn4iA0IdiCADhUL5893xmfaZqxZ+IgNCIIggA4U3AwALwwoBCn4gAa0iBEKHla+vmLbem55/fiEFAkACQCABQSFPDQBCACEGDAELQgAhBwJAIAFBwQBJDQBCACEHAkAgAUHhAEkNACACQfgAaikDACADfSABQciLAWopAwAiCIUiB0L/////D4MiCSACKQNwIAN8IAFBwIsBaikDACIKhSILQiCIIgx+Ig1CIIggB0IgiCIHIAx+fCANQv////8PgyAHIAtC/////w+DIgt+fCAJIAt+IgdCIIh8IglCIIh8QQApA7iMASILQQApA7CMASIMfIUgCUIghiAHQv////8Pg4SFIQcgAkHoAGopAwAgA30gC4UiCUL/////D4MiCyACKQNgIAN8IAyFIgxCIIgiDX4iBkL/////D4MgCUIgiCIJIAxC/////w+DIgx+fCALIAx+IgtCIIh8IgxCIIYgC0L/////D4OEIAZCIIggCSANfnwgDEIgiHyFIAV8IAggCnyFIQULIAJB2ABqKQMAIAN9IAFB2IsBaikDACIIhSIJQv////8PgyIKIAIpA1AgA3wgAUHQiwFqKQMAIguFIgxCIIgiDX4iBkL/////D4MgCUIgiCIJIAxC/////w+DIgx+fCAKIAx+IgpCIIh8IgxCIIYgCkL/////D4OEIAZCIIggCSANfnwgDEIgiHyFIAd8QQApA6iMASIJQQApA6CMASIKfIUhByACQcgAaikDACADfSAJhSIJQv////8PgyIMIAIpA0AgA3wgCoUiCkIgiCINfiIGQv////8PgyAJQiCIIgkgCkL/////D4MiCn58IAwgCn4iCkIgiHwiDEIghiAKQv////8Pg4QgBkIgiCAJIA1+fCAMQiCIfIUgBXwgCCALfIUhBQsgAkE4aikDACADfSABQeiLAWopAwAiCIUiCUL/////D4MiCiACKQMwIAN8IAFB4IsBaikDACILhSIMQiCIIg1+IgZC/////w+DIAlCIIgiCSAMQv////8PgyIMfnwgCiAMfiIKQiCIfCIMQiCGIApC/////w+DhCAGQiCIIAkgDX58IAxCIIh8hSAHfEEAKQOYjAEiB0EAKQOQjAEiCXyFIQYgAkEoaikDACADfSAHhSIHQv////8PgyIKIAIpAyAgA3wgCYUiCUIgiCIMfiINQv////8PgyAHQiCIIgcgCUL/////D4MiCX58IAogCX4iCUIgiHwiCkIghiAJQv////8Pg4QgDUIgiCAHIAx+fCAKQiCIfIUgBXwgCCALfIUhBQsgACACQRhqKQMAIAN9IAFB+IsBaikDACIHhSIIQv////8PgyIJIAIpAxAgA3wgAUHwiwFqKQMAIgqFIgtCIIgiDH4iDUL/////D4MgCEIgiCIIIAtC/////w+DIgt+fCAJIAt+IglCIIh8IgtCIIYgCUL/////D4OEIA1CIIggCCAMfnwgC0IgiHyFIAZ8QQApA4iMASIIQQApA4CMASIJfIUiCyACQQhqKQMAIAN9IAiFIghC/////w+DIgwgAikDACADfCAJhSIJQiCIIg1+IgZC/////w+DIAhCIIgiCCAJQv////8PgyIJfnwgDCAJfiIJQiCIfCIMQiCGIAlC/////w+DhCAGQiCIIAggDX58IAxCIIh8hSAFfCAHIAp8hSIFfCIHQiWIIAeFQvnz3fGZ8pmrFn4iB0IgiCAHhTcDACAAQgAgBUKHla+vmLbem55/fiAEIAN9Qs/W077Sx6vZQn58IAtC49zKlfzO8vWFf358IgNCJYggA4VC+fPd8ZnymasWfiIDQiCIIAOFfTcDCAuhDwMBfxR+An9BACEEIAJB+ABqKQMAIAN9QQApA/iMASIFhSIGQv////8PgyIHIAIpA3AgA3xBACkD8IwBIgiFIglCIIgiCn4iC0L/////D4MgBkIgiCIGIAlC/////w+DIgl+fCAHIAl+IgdCIIh8IglCIIYgB0L/////D4OEIAtCIIggBiAKfnwgCUIgiHyFIAJB2ABqKQMAIAN9QQApA9iMASIHhSIGQv////8PgyIJIAIpA1AgA3xBACkD0IwBIgqFIgtCIIgiDH4iDUL/////D4MgBkIgiCIGIAtC/////w+DIgt+fCAJIAt+IglCIIh8IgtCIIYgCUL/////D4OEIA1CIIggBiAMfnwgC0IgiHyFIAJBOGopAwAgA31BACkDuIwBIgmFIgZC/////w+DIgsgAikDMCADfEEAKQOwjAEiDIUiDUIgiCIOfiIPQv////8PgyAGQiCIIgYgDUL/////D4MiDX58IAsgDX4iC0IgiHwiDUIghiALQv////8Pg4QgD0IgiCAGIA5+fCANQiCIfIUgAkEYaikDACADfUEAKQOYjAEiC4UiBkL/////D4MiDSACKQMQIAN8QQApA5CMASIOhSIPQiCIIhB+IhFC/////w+DIAZCIIgiBiAPQv////8PgyIPfnwgDSAPfiINQiCIfCIPQiCGIA1C/////w+DhCARQiCIIAYgEH58IA9CIIh8hUEAKQOIjAEiDUEAKQOAjAEiD3yFfEEAKQOojAEiEEEAKQOgjAEiEXyFfEEAKQPIjAEiEkEAKQPAjAEiE3yFfEEAKQPojAEiFEEAKQPgjAEiFXyFIgZCJYggBoVC+fPd8ZnymasWfiIGQiCIIAaFIQYgAkHoAGopAwAgA30gFIUiFEL/////D4MiFiACKQNgIAN8IBWFIhVCIIgiF34iGEL/////D4MgFEIgiCIUIBVC/////w+DIhV+fCAWIBV+IhVCIIh8IhZCIIYgFUL/////D4OEIBhCIIggFCAXfnwgFkIgiHyFIAJByABqKQMAIAN9IBKFIhJC/////w+DIhQgAikDQCADfCAThSITQiCIIhV+IhZC/////w+DIBJCIIgiEiATQv////8PgyITfnwgFCATfiITQiCIfCIUQiCGIBNC/////w+DhCAWQiCIIBIgFX58IBRCIIh8hSACQShqKQMAIAN9IBCFIhBC/////w+DIhIgAikDICADfCARhSIRQiCIIhN+IhRC/////w+DIBBCIIgiECARQv////8PgyIRfnwgEiARfiIRQiCIfCISQiCGIBFC/////w+DhCAUQiCIIBAgE358IBJCIIh8hSACQQhqKQMAIAN9IA2FIg1C/////w+DIhAgAikDACADfCAPhSIPQiCIIhF+IhJC/////w+DIA1CIIgiDSAPQv////8PgyIPfnwgECAPfiIPQiCIfCIQQiCGIA9C/////w+DhCASQiCIIA0gEX58IBBCIIh8hSABrSIPQoeVr6+Ytt6bnn9+fCALIA58hXwgCSAMfIV8IAcgCnyFfCAFIAh8hSIFQiWIIAWFQvnz3fGZ8pmrFn4iBUIgiCAFhSEFAkAgAUGgAUgNACABQQV2QXxqIRkDQCACIARqIhpBG2opAwAgA30gBEGYjQFqKQMAIgeFIghC/////w+DIgkgGkETaikDACADfCAEQZCNAWopAwAiCoUiC0IgiCIMfiINQv////8PgyAIQiCIIgggC0L/////D4MiC358IAkgC34iCUIgiHwiC0IghiAJQv////8Pg4QgDUIgiCAIIAx+fCALQiCIfIUgBnwgBEGIjQFqKQMAIgggBEGAjQFqKQMAIgl8hSEGIBpBC2opAwAgA30gCIUiCEL/////D4MiCyAaQQNqKQMAIAN8IAmFIglCIIgiDH4iDUL/////D4MgCEIgiCIIIAlC/////w+DIgl+fCALIAl+IglCIIh8IgtCIIYgCUL/////D4OEIA1CIIggCCAMfnwgC0IgiHyFIAV8IAcgCnyFIQUgBEEgaiEEIBlBf2oiGQ0ACwsgACACQf8AaikDACADfCABQeiLAWopAwAiB4UiCEL/////D4MiCSACKQN3IAN9IAFB4IsBaikDACIKhSILQiCIIgx+Ig1C/////w+DIAhCIIgiCCALQv////8PgyILfnwgCSALfiIJQiCIfCILQiCGIAlC/////w+DhCANQiCIIAggDH58IAtCIIh8hSAGfCABQfiLAWopAwAiBiABQfCLAWopAwAiCHyFIgkgAkHvAGopAwAgA3wgBoUiBkL/////D4MiCyACKQNnIAN9IAiFIghCIIgiDH4iDUL/////D4MgBkIgiCIGIAhC/////w+DIgh+fCALIAh+IghCIIh8IgtCIIYgCEL/////D4OEIA1CIIggBiAMfnwgC0IgiHyFIAV8IAcgCnyFIgZ8IgVCJYggBYVC+fPd8ZnymasWfiIFQiCIIAWFNwMAIABCACAGQoeVr6+Ytt6bnn9+IA8gA31Cz9bTvtLHq9lCfnwgCULj3MqV/M7y9YV/fnwiA0IliCADhUL5893xmfKZqxZ+IgNCIIggA4V9NwMIC98FAgF+AX8CQAJAQQApA4AKIgBQRQ0AQYAIIQFCACEADAELAkBBACkDoI4BIABSDQBBACEBDAELQQAhAUEAQq+v79e895Kg/gAgAH03A/iLAUEAIABCxZbr+djShYIofDcD8IsBQQBCj/Hjja2P9JhOIAB9NwPoiwFBACAAQqus+MXV79HQfHw3A+CLAUEAQtOt1LKShbW0nn8gAH03A9iLAUEAIABCl5r0jvWWvO3JAHw3A9CLAUEAQsWDgv2v/8SxayAAfTcDyIsBQQAgAELqi7OdyOb09UN8NwPAiwFBAELIv/rLnJveueQAIAB9NwO4iwFBACAAQoqjgd/Ume2sMXw3A7CLAUEAQvm57738+MKnHSAAfTcDqIsBQQAgAEKo9dv7s5ynmj98NwOgiwFBAEK4sry3lNW31lggAH03A5iLAUEAIABC8cihuqm0w/zOAHw3A5CLAUEAQoihl9u445SXo38gAH03A4iL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AkHAAGogDGohC0GAjAEhAAJAAkACQCAHQQhJDQACQCAHQThqQQN2QQFqQQdxIg0NAAwCCyANQQN0IQ5BgIwBIQADQCALIAApAwA3AwAgC0EIaiELIABBCGohACANQX9qIg0NAAsgByAOayEHCyAHRQ0BAkACQCAHQQdxIg4NACAHIQ0MAQsgB0F4cSENA0AgCyAALQAAOgAAIAtBAWohCyAAQQFqIQAgDkF/aiIODQALCyAHQQhJDQELA0AgCyAAKQAANwAAIAtBCGohCyAAQQhqIQAgDUF4aiINDQALCyACIAIpAwggAikDQCIIfCADQQAoApyOAWoiACkDASACKQNIIgmFIgpCIIggCkL/////D4N+fDcDCCACIAIpAxggAikDUCIKfCAAKQMRIAIpA1giEIUiEUIgiCARQv////8Pg358NwMYIAIgECAKIAApAwmFIgpCIIggCkL/////D4N+IAIpAxB8fDcDECACIAkgCCAAQXlqKQMAhSIIQiCIIAhC/////w+DfiACKQMAfHw3AwAgACkDGSEIIAIpAyAhCSACIAIpAyggAikDYCIKfCAAKQMhIAIpA2giEIUiEUIgiCARQv////8Pg358NwMoIAIgECAJIAggCoUiCEIgiCAIQv////8Pg358fDcDICACIAYgAikDcCIIfCAAKQMxIAIpA3giBoUiCUIgiCAJQv////8Pg358NwM4IAIgBiAIIAApAymFIghCIIggCEL/////D4N+IAV8fDcDMAsgAiACIANBC2ogBEKHla+vmLbem55/fhADNwNAIAIgAiADQQAoApyOAWpBdWogBELP1tO+0ser2UJ+Qn+FEAM3A0gMAQsgBKchAAJAQQApA6COASIEUA0AAkAgAEEQSw0AIAJBwABqIABBgAggBBAEDAILAkAgAEGAAUsNACACQcAAaiAAQYAIIAQQBQwCCyACQcAAaiAAQYAIIAQQBgwBCwJAIABBEEsNACACQcAAaiAAIANCABAEDAELAkAgAEGAAUsNACACQcAAaiAAIANCABAFDAELIAJBwABqIAAgA0IAEAYLQQAgAikDcDcDuApBACACKQNgNwOoCkEAIAIpA1A3A5gKQQAgAkH4AGopAwA3A8AKQQAgAkHoAGopAwA3A7AKQQAgAkHYAGopAwA3A6AKQQAgAikDSCIEQjiGIARCgP4Dg0IohoQgBEKAgPwHg0IYhiAEQoCAgPgPg0IIhoSEIARCCIhCgICA+A+DIARCGIhCgID8B4OEIARCKIhCgP4DgyAEQjiIhISEIgQ3A4AKQQAgBDcDkApBACACKQNAIgRCOIYgBEKA/gODQiiGhCAEQoCA/AeDQhiGIARCgICA+A+DQgiGhIQgBEIIiEKAgID4D4MgBEIYiEKAgPwHg4QgBEIoiEKA/gODIARCOIiEhIQ3A4gKIAEkAAsGAEGAigELAgALC8wBAQBBgAgLxAG4/mw5I6RLvnwBgSz3Ia0c3tRt6YOQl9tyQKSkt7NnH8t55k7MwOV4glrQfcz/ciG4CEZ090MkjuA1kOaBOiZMPChSu5HDAMuI0GWLG1Muo3FkSJeiDflOOBnvRqnerNio+nY/45w0P/ncu8fHC08dilHgS820WTHIn37J2XhzZOrFrIM00+vDxYGg//oTY+sXDd1Rt/DaSdMWVSYp1GieKxa+WH1HofyP+LjRetAxzkXLOo+VFgQor9f7yrtLQH5AAgAA";
|
|
17500
|
+
var hash$5 = "b9ab74e2";
|
|
17501
|
+
var wasmJson$5 = {
|
|
17502
|
+
name: name$5,
|
|
17503
|
+
data: data$5,
|
|
17504
|
+
hash: hash$5
|
|
17505
|
+
};
|
|
16013
17506
|
|
|
16014
|
-
|
|
16015
|
-
|
|
16016
|
-
|
|
16017
|
-
|
|
16018
|
-
|
|
16019
|
-
|
|
16020
|
-
|
|
16021
|
-
|
|
17507
|
+
const mutex$3 = new Mutex();
|
|
17508
|
+
let wasmCache$3 = null;
|
|
17509
|
+
const seedBuffer = new Uint8Array(8);
|
|
17510
|
+
function validateSeed(seed) {
|
|
17511
|
+
if (!Number.isInteger(seed) || seed < 0 || seed > 0xffffffff) {
|
|
17512
|
+
return new Error("Seed must be given as two valid 32-bit long unsigned integers (lo + high).");
|
|
17513
|
+
}
|
|
17514
|
+
return null;
|
|
17515
|
+
}
|
|
17516
|
+
function writeSeed(arr, low, high) {
|
|
17517
|
+
// write in little-endian format
|
|
17518
|
+
const buffer = new DataView(arr);
|
|
17519
|
+
buffer.setUint32(0, low, true);
|
|
17520
|
+
buffer.setUint32(4, high, true);
|
|
17521
|
+
}
|
|
17522
|
+
/**
|
|
17523
|
+
* Calculates xxHash128 hash
|
|
17524
|
+
* @param data Input data (string, Buffer or TypedArray)
|
|
17525
|
+
* @param seedLow Lower 32 bits of the number used to
|
|
17526
|
+
* initialize the internal state of the algorithm (defaults to 0)
|
|
17527
|
+
* @param seedHigh Higher 32 bits of the number used to
|
|
17528
|
+
* initialize the internal state of the algorithm (defaults to 0)
|
|
17529
|
+
* @returns Computed hash as a hexadecimal string
|
|
17530
|
+
*/
|
|
17531
|
+
function xxhash128(data, seedLow = 0, seedHigh = 0) {
|
|
17532
|
+
if (validateSeed(seedLow)) {
|
|
17533
|
+
return Promise.reject(validateSeed(seedLow));
|
|
17534
|
+
}
|
|
17535
|
+
if (validateSeed(seedHigh)) {
|
|
17536
|
+
return Promise.reject(validateSeed(seedHigh));
|
|
17537
|
+
}
|
|
17538
|
+
if (wasmCache$3 === null) {
|
|
17539
|
+
return lockedCreate(mutex$3, wasmJson$5, 16).then((wasm) => {
|
|
17540
|
+
wasmCache$3 = wasm;
|
|
17541
|
+
writeSeed(seedBuffer.buffer, seedLow, seedHigh);
|
|
17542
|
+
wasmCache$3.writeMemory(seedBuffer);
|
|
17543
|
+
return wasmCache$3.calculate(data);
|
|
17544
|
+
});
|
|
17545
|
+
}
|
|
17546
|
+
try {
|
|
17547
|
+
writeSeed(seedBuffer.buffer, seedLow, seedHigh);
|
|
17548
|
+
wasmCache$3.writeMemory(seedBuffer);
|
|
17549
|
+
const hash = wasmCache$3.calculate(data);
|
|
17550
|
+
return Promise.resolve(hash);
|
|
17551
|
+
}
|
|
17552
|
+
catch (err) {
|
|
17553
|
+
return Promise.reject(err);
|
|
17554
|
+
}
|
|
17555
|
+
}
|
|
17556
|
+
/**
|
|
17557
|
+
* Creates a new xxHash128 hash instance
|
|
17558
|
+
* @param seedLow Lower 32 bits of the number used to
|
|
17559
|
+
* initialize the internal state of the algorithm (defaults to 0)
|
|
17560
|
+
* @param seedHigh Higher 32 bits of the number used to
|
|
17561
|
+
* initialize the internal state of the algorithm (defaults to 0)
|
|
17562
|
+
*/
|
|
17563
|
+
function createXXHash128(seedLow = 0, seedHigh = 0) {
|
|
17564
|
+
if (validateSeed(seedLow)) {
|
|
17565
|
+
return Promise.reject(validateSeed(seedLow));
|
|
17566
|
+
}
|
|
17567
|
+
if (validateSeed(seedHigh)) {
|
|
17568
|
+
return Promise.reject(validateSeed(seedHigh));
|
|
17569
|
+
}
|
|
17570
|
+
return WASMInterface(wasmJson$5, 16).then((wasm) => {
|
|
17571
|
+
const instanceBuffer = new Uint8Array(8);
|
|
17572
|
+
writeSeed(instanceBuffer.buffer, seedLow, seedHigh);
|
|
17573
|
+
wasm.writeMemory(instanceBuffer);
|
|
17574
|
+
wasm.init();
|
|
17575
|
+
const obj = {
|
|
17576
|
+
init: () => {
|
|
17577
|
+
wasm.writeMemory(instanceBuffer);
|
|
17578
|
+
wasm.init();
|
|
17579
|
+
return obj;
|
|
17580
|
+
},
|
|
17581
|
+
update: (data) => {
|
|
17582
|
+
wasm.update(data);
|
|
17583
|
+
return obj;
|
|
17584
|
+
},
|
|
17585
|
+
// biome-ignore lint/suspicious/noExplicitAny: Conflict with IHasher type
|
|
17586
|
+
digest: (outputType) => wasm.digest(outputType),
|
|
17587
|
+
save: () => wasm.save(),
|
|
17588
|
+
load: (data) => {
|
|
17589
|
+
wasm.load(data);
|
|
17590
|
+
return obj;
|
|
17591
|
+
},
|
|
17592
|
+
blockSize: 512,
|
|
17593
|
+
digestSize: 16,
|
|
17594
|
+
};
|
|
17595
|
+
return obj;
|
|
17596
|
+
});
|
|
16022
17597
|
}
|
|
16023
|
-
ctx.b[ctx.c++] = input[i]
|
|
16024
|
-
}
|
|
16025
|
-
}
|
|
16026
17598
|
|
|
16027
|
-
|
|
16028
|
-
|
|
16029
|
-
|
|
16030
|
-
|
|
17599
|
+
var name$4 = "ripemd160";
|
|
17600
|
+
var data$4 = "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";
|
|
17601
|
+
var hash$4 = "6abbce74";
|
|
17602
|
+
var wasmJson$4 = {
|
|
17603
|
+
name: name$4,
|
|
17604
|
+
data: data$4,
|
|
17605
|
+
hash: hash$4
|
|
17606
|
+
};
|
|
16031
17607
|
|
|
16032
|
-
|
|
16033
|
-
|
|
16034
|
-
|
|
16035
|
-
|
|
17608
|
+
const mutex$2 = new Mutex();
|
|
17609
|
+
let wasmCache$2 = null;
|
|
17610
|
+
/**
|
|
17611
|
+
* Calculates RIPEMD-160 hash
|
|
17612
|
+
* @param data Input data (string, Buffer or TypedArray)
|
|
17613
|
+
* @returns Computed hash as a hexadecimal string
|
|
17614
|
+
*/
|
|
17615
|
+
function ripemd160(data) {
|
|
17616
|
+
if (wasmCache$2 === null) {
|
|
17617
|
+
return lockedCreate(mutex$2, wasmJson$4, 20).then((wasm) => {
|
|
17618
|
+
wasmCache$2 = wasm;
|
|
17619
|
+
return wasmCache$2.calculate(data);
|
|
17620
|
+
});
|
|
17621
|
+
}
|
|
17622
|
+
try {
|
|
17623
|
+
const hash = wasmCache$2.calculate(data);
|
|
17624
|
+
return Promise.resolve(hash);
|
|
17625
|
+
}
|
|
17626
|
+
catch (err) {
|
|
17627
|
+
return Promise.reject(err);
|
|
17628
|
+
}
|
|
17629
|
+
}
|
|
17630
|
+
/**
|
|
17631
|
+
* Creates a new RIPEMD-160 hash instance
|
|
17632
|
+
*/
|
|
17633
|
+
function createRIPEMD160() {
|
|
17634
|
+
return WASMInterface(wasmJson$4, 20).then((wasm) => {
|
|
17635
|
+
wasm.init();
|
|
17636
|
+
const obj = {
|
|
17637
|
+
init: () => {
|
|
17638
|
+
wasm.init();
|
|
17639
|
+
return obj;
|
|
17640
|
+
},
|
|
17641
|
+
update: (data) => {
|
|
17642
|
+
wasm.update(data);
|
|
17643
|
+
return obj;
|
|
17644
|
+
},
|
|
17645
|
+
// biome-ignore lint/suspicious/noExplicitAny: Conflict with IHasher type
|
|
17646
|
+
digest: (outputType) => wasm.digest(outputType),
|
|
17647
|
+
save: () => wasm.save(),
|
|
17648
|
+
load: (data) => {
|
|
17649
|
+
wasm.load(data);
|
|
17650
|
+
return obj;
|
|
17651
|
+
},
|
|
17652
|
+
blockSize: 64,
|
|
17653
|
+
digestSize: 20,
|
|
17654
|
+
};
|
|
17655
|
+
return obj;
|
|
17656
|
+
});
|
|
17657
|
+
}
|
|
16036
17658
|
|
|
16037
|
-
|
|
16038
|
-
|
|
16039
|
-
|
|
16040
|
-
|
|
16041
|
-
|
|
17659
|
+
function calculateKeyBuffer(hasher, key) {
|
|
17660
|
+
const { blockSize } = hasher;
|
|
17661
|
+
const buf = getUInt8Buffer(key);
|
|
17662
|
+
if (buf.length > blockSize) {
|
|
17663
|
+
hasher.update(buf);
|
|
17664
|
+
const uintArr = hasher.digest("binary");
|
|
17665
|
+
hasher.init();
|
|
17666
|
+
return uintArr;
|
|
17667
|
+
}
|
|
17668
|
+
return new Uint8Array(buf.buffer, buf.byteOffset, buf.length);
|
|
17669
|
+
}
|
|
17670
|
+
function calculateHmac(hasher, key) {
|
|
17671
|
+
hasher.init();
|
|
17672
|
+
const { blockSize } = hasher;
|
|
17673
|
+
const keyBuf = calculateKeyBuffer(hasher, key);
|
|
17674
|
+
const keyBuffer = new Uint8Array(blockSize);
|
|
17675
|
+
keyBuffer.set(keyBuf);
|
|
17676
|
+
const opad = new Uint8Array(blockSize);
|
|
17677
|
+
for (let i = 0; i < blockSize; i++) {
|
|
17678
|
+
const v = keyBuffer[i];
|
|
17679
|
+
opad[i] = v ^ 0x5c;
|
|
17680
|
+
keyBuffer[i] = v ^ 0x36;
|
|
17681
|
+
}
|
|
17682
|
+
hasher.update(keyBuffer);
|
|
17683
|
+
const obj = {
|
|
17684
|
+
init: () => {
|
|
17685
|
+
hasher.init();
|
|
17686
|
+
hasher.update(keyBuffer);
|
|
17687
|
+
return obj;
|
|
17688
|
+
},
|
|
17689
|
+
update: (data) => {
|
|
17690
|
+
hasher.update(data);
|
|
17691
|
+
return obj;
|
|
17692
|
+
},
|
|
17693
|
+
digest: ((outputType) => {
|
|
17694
|
+
const uintArr = hasher.digest("binary");
|
|
17695
|
+
hasher.init();
|
|
17696
|
+
hasher.update(opad);
|
|
17697
|
+
hasher.update(uintArr);
|
|
17698
|
+
return hasher.digest(outputType);
|
|
17699
|
+
// biome-ignore lint/suspicious/noExplicitAny: Conflict with IHasher type
|
|
17700
|
+
}),
|
|
17701
|
+
save: () => {
|
|
17702
|
+
throw new Error("save() not supported");
|
|
17703
|
+
},
|
|
17704
|
+
load: () => {
|
|
17705
|
+
throw new Error("load() not supported");
|
|
17706
|
+
},
|
|
17707
|
+
blockSize: hasher.blockSize,
|
|
17708
|
+
digestSize: hasher.digestSize,
|
|
17709
|
+
};
|
|
17710
|
+
return obj;
|
|
17711
|
+
}
|
|
17712
|
+
/**
|
|
17713
|
+
* Calculates HMAC hash
|
|
17714
|
+
* @param hash Hash algorithm to use. It has to be the return value of a function like createSHA1()
|
|
17715
|
+
* @param key Key (string, Buffer or TypedArray)
|
|
17716
|
+
*/
|
|
17717
|
+
function createHMAC(hash, key) {
|
|
17718
|
+
if (!hash || !hash.then) {
|
|
17719
|
+
throw new Error('Invalid hash function is provided! Usage: createHMAC(createMD5(), "key").');
|
|
17720
|
+
}
|
|
17721
|
+
return hash.then((hasher) => calculateHmac(hasher, key));
|
|
17722
|
+
}
|
|
17723
|
+
|
|
17724
|
+
function calculatePBKDF2(digest, salt, iterations, hashLength, outputType) {
|
|
17725
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
17726
|
+
const DK = new Uint8Array(hashLength);
|
|
17727
|
+
const block1 = new Uint8Array(salt.length + 4);
|
|
17728
|
+
const block1View = new DataView(block1.buffer);
|
|
17729
|
+
const saltBuffer = getUInt8Buffer(salt);
|
|
17730
|
+
const saltUIntBuffer = new Uint8Array(saltBuffer.buffer, saltBuffer.byteOffset, saltBuffer.length);
|
|
17731
|
+
block1.set(saltUIntBuffer);
|
|
17732
|
+
let destPos = 0;
|
|
17733
|
+
const hLen = digest.digestSize;
|
|
17734
|
+
const l = Math.ceil(hashLength / hLen);
|
|
17735
|
+
let T = null;
|
|
17736
|
+
let U = null;
|
|
17737
|
+
for (let i = 1; i <= l; i++) {
|
|
17738
|
+
block1View.setUint32(salt.length, i);
|
|
17739
|
+
digest.init();
|
|
17740
|
+
digest.update(block1);
|
|
17741
|
+
T = digest.digest("binary");
|
|
17742
|
+
U = T.slice();
|
|
17743
|
+
for (let j = 1; j < iterations; j++) {
|
|
17744
|
+
digest.init();
|
|
17745
|
+
digest.update(U);
|
|
17746
|
+
U = digest.digest("binary");
|
|
17747
|
+
for (let k = 0; k < hLen; k++) {
|
|
17748
|
+
T[k] ^= U[k];
|
|
17749
|
+
}
|
|
17750
|
+
}
|
|
17751
|
+
DK.set(T.subarray(0, hashLength - destPos), destPos);
|
|
17752
|
+
destPos += hLen;
|
|
17753
|
+
}
|
|
17754
|
+
if (outputType === "binary") {
|
|
17755
|
+
return DK;
|
|
17756
|
+
}
|
|
17757
|
+
const digestChars = new Uint8Array(hashLength * 2);
|
|
17758
|
+
return getDigestHex(digestChars, DK, hashLength);
|
|
17759
|
+
});
|
|
17760
|
+
}
|
|
17761
|
+
const validateOptions$2 = (options) => {
|
|
17762
|
+
if (!options || typeof options !== "object") {
|
|
17763
|
+
throw new Error("Invalid options parameter. It requires an object.");
|
|
17764
|
+
}
|
|
17765
|
+
if (!options.hashFunction || !options.hashFunction.then) {
|
|
17766
|
+
throw new Error('Invalid hash function is provided! Usage: pbkdf2("password", "salt", 1000, 32, createSHA1()).');
|
|
17767
|
+
}
|
|
17768
|
+
if (!Number.isInteger(options.iterations) || options.iterations < 1) {
|
|
17769
|
+
throw new Error("Iterations should be a positive number");
|
|
17770
|
+
}
|
|
17771
|
+
if (!Number.isInteger(options.hashLength) || options.hashLength < 1) {
|
|
17772
|
+
throw new Error("Hash length should be a positive number");
|
|
17773
|
+
}
|
|
17774
|
+
if (options.outputType === undefined) {
|
|
17775
|
+
options.outputType = "hex";
|
|
17776
|
+
}
|
|
17777
|
+
if (!["hex", "binary"].includes(options.outputType)) {
|
|
17778
|
+
throw new Error(`Insupported output type ${options.outputType}. Valid values: ['hex', 'binary']`);
|
|
17779
|
+
}
|
|
17780
|
+
};
|
|
17781
|
+
/**
|
|
17782
|
+
* Generates a new PBKDF2 hash for the supplied password
|
|
17783
|
+
*/
|
|
17784
|
+
function pbkdf2(options) {
|
|
17785
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
17786
|
+
validateOptions$2(options);
|
|
17787
|
+
const hmac = yield createHMAC(options.hashFunction, options.password);
|
|
17788
|
+
return calculatePBKDF2(hmac, options.salt, options.iterations, options.hashLength, options.outputType);
|
|
17789
|
+
});
|
|
17790
|
+
}
|
|
16042
17791
|
|
|
16043
|
-
|
|
16044
|
-
|
|
16045
|
-
|
|
16046
|
-
|
|
16047
|
-
|
|
17792
|
+
var name$3 = "scrypt";
|
|
17793
|
+
var data$3 = "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cyICajYCOCAAIAAoAjwgAiAKakESdyAGc2o2AjwLvxIDFX8Bfg5/AkAgAkUNACAAQQd0IgNBQGoiBEEAKAKACCIFIAMgAmwiBmogAyABbGoiByADaiIIaiEJIAAgAkEHdCIKIAFBB3RqIgtsIQwgACALQYABamwhDSAAQQV0IgtBASALQQFLGyILQWBxIQ4gC0EBcSEPIAdBeGohECAHQXBqIREgB0FoaiESIAdBYGohEyAHQVhqIRQgB0FQaiEVIAdBSGohFiAHQUBqIRcgAa1Cf3whGCAEIAdqIRkgByAAQQh0IhpqIRsgACAKQYABamwhHCALQQRJIR1BACEeQQAhHwNAQQAoAoAIIiAgAyAfbGohIQJAIABFDQBBACEiAkAgHQ0AICAgHmohI0EAIQtBACEiA0AgByALaiIEICMgC2oiJCgCADYCACAEQQRqICRBBGooAgA2AgAgBEEIaiAkQQhqKAIANgIAIARBDGogJEEMaigCADYCACALQRBqIQsgDiAiQQRqIiJHDQALCyAPRQ0AIAcgIkECdCILaiAhIAtqKAIANgIACwJAIAFFDQBBACElIBwhIyAGISYDQCAFISQgACEiAkACQCAADQAgGyAXKQMANwMAIBsgFikDADcDCCAbIBUpAwA3AxAgGyAUKQMANwMYIBsgEykDADcDICAbIBIpAwA3AyggGyARKQMANwMwIBsgECkDADcDOAwBCwNAICQgJmoiCyAkIAxqIgQpAwA3AwAgC0EIaiAEQQhqKQMANwMAIAtBEGogBEEQaikDADcDACALQRhqIARBGGopAwA3AwAgC0EgaiAEQSBqKQMANwMAIAtBKGogBEEoaikDADcDACALQTBqIARBMGopAwA3AwAgC0E4aiAEQThqKQMANwMAIAtBwABqIARBwABqKQMANwMAIAtByABqIARByABqKQMANwMAIAtB0ABqIARB0ABqKQMANwMAIAtB2ABqIARB2ABqKQMANwMAIAtB4ABqIARB4ABqKQMANwMAIAtB6ABqIARB6ABqKQMANwMAIAtB8ABqIARB8ABqKQMANwMAIAtB+ABqIARB+ABqKQMANwMAICRBgAFqISQgIkF/aiIiDQALIAcgCCAbIAAQAiAFISQgACEiA0AgJCAjaiILICQgDWoiBCkDADcDACALQQhqIARBCGopAwA3AwAgC0EQaiAEQRBqKQMANwMAIAtBGGogBEEYaikDADcDACALQSBqIARBIGopAwA3AwAgC0EoaiAEQShqKQMANwMAIAtBMGogBEEwaikDADcDACALQThqIARBOGopAwA3AwAgC0HAAGogBEHAAGopAwA3AwAgC0HIAGogBEHIAGopAwA3AwAgC0HQAGogBEHQAGopAwA3AwAgC0HYAGogBEHYAGopAwA3AwAgC0HgAGogBEHgAGopAwA3AwAgC0HoAGogBEHoAGopAwA3AwAgC0HwAGogBEHwAGopAwA3AwAgC0H4AGogBEH4AGopAwA3AwAgJEGAAWohJCAiQX9qIiINAAsLIAggByAbIAAQAiAjIBpqISMgJiAaaiEmICVBAmoiJSABSQ0AC0EAISUDQAJAAkAgAA0AIBsgFykDADcDACAbIBYpAwA3AwggGyAVKQMANwMQIBsgFCkDADcDGCAbIBMpAwA3AyAgGyASKQMANwMoIBsgESkDADcDMCAbIBApAwA3AzgMAQsgACAKIBkpAgAgGIOnQQd0amwhJiAFISQgACEiA0AgJCAMaiILIAspAwAgJCAmaiIEKQMAhTcDACALQQhqIiMgIykDACAEQQhqKQMAhTcDACALQRBqIiMgIykDACAEQRBqKQMAhTcDACALQRhqIiMgIykDACAEQRhqKQMAhTcDACALQSBqIiMgIykDACAEQSBqKQMAhTcDACALQShqIiMgIykDACAEQShqKQMAhTcDACALQTBqIiMgIykDACAEQTBqKQMAhTcDACALQThqIiMgIykDACAEQThqKQMAhTcDACALQcAAaiIjICMpAwAgBEHAAGopAwCFNwMAIAtByABqIiMgIykDACAEQcgAaikDAIU3AwAgC0HQAGoiIyAjKQMAIARB0ABqKQMAhTcDACALQdgAaiIjICMpAwAgBEHYAGopAwCFNwMAIAtB4ABqIiMgIykDACAEQeAAaikDAIU3AwAgC0HoAGoiIyAjKQMAIARB6ABqKQMAhTcDACALQfAAaiIjICMpAwAgBEHwAGopAwCFNwMAIAtB+ABqIgsgCykDACAEQfgAaikDAIU3AwAgJEGAAWohJCAiQX9qIiINAAsgByAIIBsgABACIAAgCiAJKQIAIBiDp0EHdGpsISYgBSEkIAAhIgNAICQgDWoiCyALKQMAICQgJmoiBCkDAIU3AwAgC0EIaiIjICMpAwAgBEEIaikDAIU3AwAgC0EQaiIjICMpAwAgBEEQaikDAIU3AwAgC0EYaiIjICMpAwAgBEEYaikDAIU3AwAgC0EgaiIjICMpAwAgBEEgaikDAIU3AwAgC0EoaiIjICMpAwAgBEEoaikDAIU3AwAgC0EwaiIjICMpAwAgBEEwaikDAIU3AwAgC0E4aiIjICMpAwAgBEE4aikDAIU3AwAgC0HAAGoiIyAjKQMAIARBwABqKQMAhTcDACALQcgAaiIjICMpAwAgBEHIAGopAwCFNwMAIAtB0ABqIiMgIykDACAEQdAAaikDAIU3AwAgC0HYAGoiIyAjKQMAIARB2ABqKQMAhTcDACALQeAAaiIjICMpAwAgBEHgAGopAwCFNwMAIAtB6ABqIiMgIykDACAEQegAaikDAIU3AwAgC0HwAGoiIyAjKQMAIARB8ABqKQMAhTcDACALQfgAaiILIAspAwAgBEH4AGopAwCFNwMAICRBgAFqISQgIkF/aiIiDQALCyAIIAcgGyAAEAIgJUECaiIlIAFJDQALCwJAIABFDQBBACEiAkAgHQ0AICAgHmohI0EAIQtBACEiA0AgIyALaiIEIAcgC2oiJCgCADYCACAEQQRqICRBBGooAgA2AgAgBEEIaiAkQQhqKAIANgIAIARBDGogJEEMaigCADYCACALQRBqIQsgDiAiQQRqIiJHDQALCyAPRQ0AICEgIkECdCILaiAHIAtqKAIANgIACyAeIANqIR4gH0EBaiIfIAJHDQALCws=";
|
|
17794
|
+
var hash$3 = "b32721f8";
|
|
17795
|
+
var wasmJson$3 = {
|
|
17796
|
+
name: name$3,
|
|
17797
|
+
data: data$3,
|
|
17798
|
+
hash: hash$3
|
|
17799
|
+
};
|
|
16048
17800
|
|
|
16049
|
-
function
|
|
16050
|
-
|
|
16051
|
-
|
|
16052
|
-
|
|
17801
|
+
function scryptInternal(options) {
|
|
17802
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
17803
|
+
const { costFactor, blockSize, parallelism, hashLength } = options;
|
|
17804
|
+
const SHA256Hasher = createSHA256();
|
|
17805
|
+
const blockData = yield pbkdf2({
|
|
17806
|
+
password: options.password,
|
|
17807
|
+
salt: options.salt,
|
|
17808
|
+
iterations: 1,
|
|
17809
|
+
hashLength: 128 * blockSize * parallelism,
|
|
17810
|
+
hashFunction: SHA256Hasher,
|
|
17811
|
+
outputType: "binary",
|
|
17812
|
+
});
|
|
17813
|
+
const scryptInterface = yield WASMInterface(wasmJson$3, 0);
|
|
17814
|
+
// last block is for storing the temporary vectors
|
|
17815
|
+
const VSize = 128 * blockSize * costFactor;
|
|
17816
|
+
const XYSize = 256 * blockSize;
|
|
17817
|
+
scryptInterface.setMemorySize(blockData.length + VSize + XYSize);
|
|
17818
|
+
scryptInterface.writeMemory(blockData, 0);
|
|
17819
|
+
// mix blocks
|
|
17820
|
+
scryptInterface.getExports().scrypt(blockSize, costFactor, parallelism);
|
|
17821
|
+
const expensiveSalt = scryptInterface
|
|
17822
|
+
.getMemory()
|
|
17823
|
+
.subarray(0, 128 * blockSize * parallelism);
|
|
17824
|
+
const outputData = yield pbkdf2({
|
|
17825
|
+
password: options.password,
|
|
17826
|
+
salt: expensiveSalt,
|
|
17827
|
+
iterations: 1,
|
|
17828
|
+
hashLength,
|
|
17829
|
+
hashFunction: SHA256Hasher,
|
|
17830
|
+
outputType: "binary",
|
|
17831
|
+
});
|
|
17832
|
+
if (options.outputType === "hex") {
|
|
17833
|
+
const digestChars = new Uint8Array(hashLength * 2);
|
|
17834
|
+
return getDigestHex(digestChars, outputData, hashLength);
|
|
17835
|
+
}
|
|
17836
|
+
// return binary format
|
|
17837
|
+
return outputData;
|
|
17838
|
+
});
|
|
17839
|
+
}
|
|
17840
|
+
const isPowerOfTwo = (v) => v && !(v & (v - 1));
|
|
17841
|
+
const validateOptions$1 = (options) => {
|
|
17842
|
+
if (!options || typeof options !== "object") {
|
|
17843
|
+
throw new Error("Invalid options parameter. It requires an object.");
|
|
17844
|
+
}
|
|
17845
|
+
if (!Number.isInteger(options.blockSize) || options.blockSize < 1) {
|
|
17846
|
+
throw new Error("Block size should be a positive number");
|
|
17847
|
+
}
|
|
17848
|
+
if (!Number.isInteger(options.costFactor) ||
|
|
17849
|
+
options.costFactor < 2 ||
|
|
17850
|
+
!isPowerOfTwo(options.costFactor)) {
|
|
17851
|
+
throw new Error("Cost factor should be a power of 2, greater than 1");
|
|
17852
|
+
}
|
|
17853
|
+
if (!Number.isInteger(options.parallelism) || options.parallelism < 1) {
|
|
17854
|
+
throw new Error("Parallelism should be a positive number");
|
|
17855
|
+
}
|
|
17856
|
+
if (!Number.isInteger(options.hashLength) || options.hashLength < 1) {
|
|
17857
|
+
throw new Error("Hash length should be a positive number.");
|
|
17858
|
+
}
|
|
17859
|
+
if (options.outputType === undefined) {
|
|
17860
|
+
options.outputType = "hex";
|
|
17861
|
+
}
|
|
17862
|
+
if (!["hex", "binary"].includes(options.outputType)) {
|
|
17863
|
+
throw new Error(`Insupported output type ${options.outputType}. Valid values: ['hex', 'binary']`);
|
|
17864
|
+
}
|
|
17865
|
+
};
|
|
17866
|
+
/**
|
|
17867
|
+
* Calculates hash using the scrypt password-based key derivation function
|
|
17868
|
+
* @returns Computed hash as a hexadecimal string or as
|
|
17869
|
+
* Uint8Array depending on the outputType option
|
|
17870
|
+
*/
|
|
17871
|
+
function scrypt(options) {
|
|
17872
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
17873
|
+
validateOptions$1(options);
|
|
17874
|
+
return scryptInternal(options);
|
|
17875
|
+
});
|
|
17876
|
+
}
|
|
16053
17877
|
|
|
16054
|
-
var
|
|
17878
|
+
var name$2 = "bcrypt";
|
|
17879
|
+
var data$2 = "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";
|
|
17880
|
+
var hash$2 = "8bd8822d";
|
|
17881
|
+
var wasmJson$2 = {
|
|
17882
|
+
name: name$2,
|
|
17883
|
+
data: data$2,
|
|
17884
|
+
hash: hash$2
|
|
17885
|
+
};
|
|
16055
17886
|
|
|
16056
|
-
|
|
16057
|
-
|
|
16058
|
-
|
|
16059
|
-
|
|
16060
|
-
|
|
16061
|
-
|
|
16062
|
-
|
|
16063
|
-
|
|
17887
|
+
function bcryptInternal(options) {
|
|
17888
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
17889
|
+
const { costFactor, password, salt } = options;
|
|
17890
|
+
const bcryptInterface = yield WASMInterface(wasmJson$2, 0);
|
|
17891
|
+
bcryptInterface.writeMemory(getUInt8Buffer(salt), 0);
|
|
17892
|
+
const passwordBuffer = getUInt8Buffer(password);
|
|
17893
|
+
bcryptInterface.writeMemory(passwordBuffer, 16);
|
|
17894
|
+
const shouldEncode = options.outputType === "encoded" ? 1 : 0;
|
|
17895
|
+
bcryptInterface
|
|
17896
|
+
.getExports()
|
|
17897
|
+
.bcrypt(passwordBuffer.length, costFactor, shouldEncode);
|
|
17898
|
+
const memory = bcryptInterface.getMemory();
|
|
17899
|
+
if (options.outputType === "encoded") {
|
|
17900
|
+
return intArrayToString(memory, 60);
|
|
17901
|
+
}
|
|
17902
|
+
if (options.outputType === "hex") {
|
|
17903
|
+
const digestChars = new Uint8Array(24 * 2);
|
|
17904
|
+
return getDigestHex(digestChars, memory, 24);
|
|
17905
|
+
}
|
|
17906
|
+
// return binary format
|
|
17907
|
+
// the data is copied to allow GC of the original memory buffer
|
|
17908
|
+
return memory.slice(0, 24);
|
|
17909
|
+
});
|
|
16064
17910
|
}
|
|
16065
|
-
|
|
16066
|
-
|
|
16067
|
-
|
|
17911
|
+
const validateOptions = (options) => {
|
|
17912
|
+
if (!options || typeof options !== "object") {
|
|
17913
|
+
throw new Error("Invalid options parameter. It requires an object.");
|
|
17914
|
+
}
|
|
17915
|
+
if (!Number.isInteger(options.costFactor) ||
|
|
17916
|
+
options.costFactor < 4 ||
|
|
17917
|
+
options.costFactor > 31) {
|
|
17918
|
+
throw new Error("Cost factor should be a number between 4 and 31");
|
|
17919
|
+
}
|
|
17920
|
+
options.password = getUInt8Buffer(options.password);
|
|
17921
|
+
if (options.password.length < 1) {
|
|
17922
|
+
throw new Error("Password should be at least 1 byte long");
|
|
17923
|
+
}
|
|
17924
|
+
if (options.password.length > 72) {
|
|
17925
|
+
throw new Error("Password should be at most 72 bytes long");
|
|
17926
|
+
}
|
|
17927
|
+
options.salt = getUInt8Buffer(options.salt);
|
|
17928
|
+
if (options.salt.length !== 16) {
|
|
17929
|
+
throw new Error("Salt should be 16 bytes long");
|
|
17930
|
+
}
|
|
17931
|
+
if (options.outputType === undefined) {
|
|
17932
|
+
options.outputType = "encoded";
|
|
17933
|
+
}
|
|
17934
|
+
if (!["hex", "binary", "encoded"].includes(options.outputType)) {
|
|
17935
|
+
throw new Error(`Insupported output type ${options.outputType}. Valid values: ['hex', 'binary', 'encoded']`);
|
|
17936
|
+
}
|
|
17937
|
+
};
|
|
17938
|
+
/**
|
|
17939
|
+
* Calculates hash using the bcrypt password-hashing function
|
|
17940
|
+
* @returns Computed hash
|
|
17941
|
+
*/
|
|
17942
|
+
function bcrypt(options) {
|
|
17943
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
17944
|
+
validateOptions(options);
|
|
17945
|
+
return bcryptInternal(options);
|
|
17946
|
+
});
|
|
16068
17947
|
}
|
|
16069
|
-
|
|
16070
|
-
|
|
16071
|
-
|
|
17948
|
+
const validateHashCharacters = (hash) => {
|
|
17949
|
+
if (!/^\$2[axyb]\$[0-3][0-9]\$[./A-Za-z0-9]{53}$/.test(hash)) {
|
|
17950
|
+
return false;
|
|
17951
|
+
}
|
|
17952
|
+
if (hash[4] === "0" && Number(hash[5]) < 4) {
|
|
17953
|
+
return false;
|
|
17954
|
+
}
|
|
17955
|
+
if (hash[4] === "3" && Number(hash[5]) > 1) {
|
|
17956
|
+
return false;
|
|
17957
|
+
}
|
|
17958
|
+
return true;
|
|
17959
|
+
};
|
|
17960
|
+
const validateVerifyOptions = (options) => {
|
|
17961
|
+
if (!options || typeof options !== "object") {
|
|
17962
|
+
throw new Error("Invalid options parameter. It requires an object.");
|
|
17963
|
+
}
|
|
17964
|
+
if (options.hash === undefined || typeof options.hash !== "string") {
|
|
17965
|
+
throw new Error("Hash should be specified");
|
|
17966
|
+
}
|
|
17967
|
+
if (options.hash.length !== 60) {
|
|
17968
|
+
throw new Error("Hash should be 60 bytes long");
|
|
17969
|
+
}
|
|
17970
|
+
if (!validateHashCharacters(options.hash)) {
|
|
17971
|
+
throw new Error("Invalid hash");
|
|
17972
|
+
}
|
|
17973
|
+
options.password = getUInt8Buffer(options.password);
|
|
17974
|
+
if (options.password.length < 1) {
|
|
17975
|
+
throw new Error("Password should be at least 1 byte long");
|
|
17976
|
+
}
|
|
17977
|
+
if (options.password.length > 72) {
|
|
17978
|
+
throw new Error("Password should be at most 72 bytes long");
|
|
17979
|
+
}
|
|
17980
|
+
};
|
|
17981
|
+
/**
|
|
17982
|
+
* Verifies password using bcrypt password-hashing function
|
|
17983
|
+
* @returns True if the encoded hash matches the password
|
|
17984
|
+
*/
|
|
17985
|
+
function bcryptVerify(options) {
|
|
17986
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
17987
|
+
validateVerifyOptions(options);
|
|
17988
|
+
const { hash, password } = options;
|
|
17989
|
+
const bcryptInterface = yield WASMInterface(wasmJson$2, 0);
|
|
17990
|
+
bcryptInterface.writeMemory(getUInt8Buffer(hash), 0);
|
|
17991
|
+
const passwordBuffer = getUInt8Buffer(password);
|
|
17992
|
+
bcryptInterface.writeMemory(passwordBuffer, 60);
|
|
17993
|
+
return !!bcryptInterface.getExports().bcrypt_verify(passwordBuffer.length);
|
|
17994
|
+
});
|
|
16072
17995
|
}
|
|
16073
|
-
}
|
|
16074
|
-
|
|
16075
|
-
return new Proto(outlen, key, salt, personal)
|
|
16076
|
-
}
|
|
16077
|
-
|
|
16078
|
-
module.exports.ready = function (cb) {
|
|
16079
|
-
b2wasm.ready(function () { // ignore errors
|
|
16080
|
-
cb()
|
|
16081
|
-
})
|
|
16082
|
-
}
|
|
16083
|
-
|
|
16084
|
-
module.exports.WASM_SUPPORTED = b2wasm.SUPPORTED
|
|
16085
|
-
module.exports.WASM_LOADED = false
|
|
16086
|
-
|
|
16087
|
-
var BYTES_MIN = module.exports.BYTES_MIN = 16
|
|
16088
|
-
var BYTES_MAX = module.exports.BYTES_MAX = 64
|
|
16089
|
-
var BYTES = module.exports.BYTES = 32
|
|
16090
|
-
var KEYBYTES_MIN = module.exports.KEYBYTES_MIN = 16
|
|
16091
|
-
var KEYBYTES_MAX = module.exports.KEYBYTES_MAX = 64
|
|
16092
|
-
var KEYBYTES = module.exports.KEYBYTES = 32
|
|
16093
|
-
var SALTBYTES = module.exports.SALTBYTES = 16
|
|
16094
|
-
var PERSONALBYTES = module.exports.PERSONALBYTES = 16
|
|
16095
|
-
|
|
16096
|
-
b2wasm.ready(function (err) {
|
|
16097
|
-
if (!err) {
|
|
16098
|
-
module.exports.WASM_LOADED = true
|
|
16099
|
-
module.exports = b2wasm
|
|
16100
|
-
}
|
|
16101
|
-
})
|
|
16102
17996
|
|
|
17997
|
+
var name$1 = "whirlpool";
|
|
17998
|
+
var data$1 = "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";
|
|
17999
|
+
var hash$1 = "8d8f6035";
|
|
18000
|
+
var wasmJson$1 = {
|
|
18001
|
+
name: name$1,
|
|
18002
|
+
data: data$1,
|
|
18003
|
+
hash: hash$1
|
|
18004
|
+
};
|
|
16103
18005
|
|
|
16104
|
-
|
|
18006
|
+
const mutex$1 = new Mutex();
|
|
18007
|
+
let wasmCache$1 = null;
|
|
18008
|
+
/**
|
|
18009
|
+
* Calculates Whirlpool hash
|
|
18010
|
+
* @param data Input data (string, Buffer or TypedArray)
|
|
18011
|
+
* @returns Computed hash as a hexadecimal string
|
|
18012
|
+
*/
|
|
18013
|
+
function whirlpool(data) {
|
|
18014
|
+
if (wasmCache$1 === null) {
|
|
18015
|
+
return lockedCreate(mutex$1, wasmJson$1, 64).then((wasm) => {
|
|
18016
|
+
wasmCache$1 = wasm;
|
|
18017
|
+
return wasmCache$1.calculate(data);
|
|
18018
|
+
});
|
|
18019
|
+
}
|
|
18020
|
+
try {
|
|
18021
|
+
const hash = wasmCache$1.calculate(data);
|
|
18022
|
+
return Promise.resolve(hash);
|
|
18023
|
+
}
|
|
18024
|
+
catch (err) {
|
|
18025
|
+
return Promise.reject(err);
|
|
18026
|
+
}
|
|
18027
|
+
}
|
|
18028
|
+
/**
|
|
18029
|
+
* Creates a new Whirlpool hash instance
|
|
18030
|
+
*/
|
|
18031
|
+
function createWhirlpool() {
|
|
18032
|
+
return WASMInterface(wasmJson$1, 64).then((wasm) => {
|
|
18033
|
+
wasm.init();
|
|
18034
|
+
const obj = {
|
|
18035
|
+
init: () => {
|
|
18036
|
+
wasm.init();
|
|
18037
|
+
return obj;
|
|
18038
|
+
},
|
|
18039
|
+
update: (data) => {
|
|
18040
|
+
wasm.update(data);
|
|
18041
|
+
return obj;
|
|
18042
|
+
},
|
|
18043
|
+
// biome-ignore lint/suspicious/noExplicitAny: Conflict with IHasher type
|
|
18044
|
+
digest: (outputType) => wasm.digest(outputType),
|
|
18045
|
+
save: () => wasm.save(),
|
|
18046
|
+
load: (data) => {
|
|
18047
|
+
wasm.load(data);
|
|
18048
|
+
return obj;
|
|
18049
|
+
},
|
|
18050
|
+
blockSize: 64,
|
|
18051
|
+
digestSize: 64,
|
|
18052
|
+
};
|
|
18053
|
+
return obj;
|
|
18054
|
+
});
|
|
18055
|
+
}
|
|
16105
18056
|
|
|
16106
|
-
|
|
16107
|
-
|
|
18057
|
+
var name = "sm3";
|
|
18058
|
+
var data = "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";
|
|
18059
|
+
var hash = "b6fb4b8e";
|
|
18060
|
+
var wasmJson = {
|
|
18061
|
+
name: name,
|
|
18062
|
+
data: data,
|
|
18063
|
+
hash: hash
|
|
18064
|
+
};
|
|
16108
18065
|
|
|
16109
|
-
|
|
18066
|
+
const mutex = new Mutex();
|
|
18067
|
+
let wasmCache = null;
|
|
18068
|
+
/**
|
|
18069
|
+
* Calculates SM3 hash
|
|
18070
|
+
* @param data Input data (string, Buffer or TypedArray)
|
|
18071
|
+
* @returns Computed hash as a hexadecimal string
|
|
18072
|
+
*/
|
|
18073
|
+
function sm3(data) {
|
|
18074
|
+
if (wasmCache === null) {
|
|
18075
|
+
return lockedCreate(mutex, wasmJson, 32).then((wasm) => {
|
|
18076
|
+
wasmCache = wasm;
|
|
18077
|
+
return wasmCache.calculate(data);
|
|
18078
|
+
});
|
|
18079
|
+
}
|
|
18080
|
+
try {
|
|
18081
|
+
const hash = wasmCache.calculate(data);
|
|
18082
|
+
return Promise.resolve(hash);
|
|
18083
|
+
}
|
|
18084
|
+
catch (err) {
|
|
18085
|
+
return Promise.reject(err);
|
|
18086
|
+
}
|
|
18087
|
+
}
|
|
18088
|
+
/**
|
|
18089
|
+
* Creates a new SM3 hash instance
|
|
18090
|
+
*/
|
|
18091
|
+
function createSM3() {
|
|
18092
|
+
return WASMInterface(wasmJson, 32).then((wasm) => {
|
|
18093
|
+
wasm.init();
|
|
18094
|
+
const obj = {
|
|
18095
|
+
init: () => {
|
|
18096
|
+
wasm.init();
|
|
18097
|
+
return obj;
|
|
18098
|
+
},
|
|
18099
|
+
update: (data) => {
|
|
18100
|
+
wasm.update(data);
|
|
18101
|
+
return obj;
|
|
18102
|
+
},
|
|
18103
|
+
// biome-ignore lint/suspicious/noExplicitAny: Conflict with IHasher type
|
|
18104
|
+
digest: (outputType) => wasm.digest(outputType),
|
|
18105
|
+
save: () => wasm.save(),
|
|
18106
|
+
load: (data) => {
|
|
18107
|
+
wasm.load(data);
|
|
18108
|
+
return obj;
|
|
18109
|
+
},
|
|
18110
|
+
blockSize: 64,
|
|
18111
|
+
digestSize: 32,
|
|
18112
|
+
};
|
|
18113
|
+
return obj;
|
|
18114
|
+
});
|
|
18115
|
+
}
|
|
16110
18116
|
|
|
16111
|
-
|
|
16112
|
-
|
|
18117
|
+
exports.adler32 = adler32;
|
|
18118
|
+
exports.argon2Verify = argon2Verify;
|
|
18119
|
+
exports.argon2d = argon2d;
|
|
18120
|
+
exports.argon2i = argon2i;
|
|
18121
|
+
exports.argon2id = argon2id;
|
|
18122
|
+
exports.bcrypt = bcrypt;
|
|
18123
|
+
exports.bcryptVerify = bcryptVerify;
|
|
18124
|
+
exports.blake2b = blake2b;
|
|
18125
|
+
exports.blake2s = blake2s;
|
|
18126
|
+
exports.blake3 = blake3;
|
|
18127
|
+
exports.crc32 = crc32;
|
|
18128
|
+
exports.crc64 = crc64;
|
|
18129
|
+
exports.createAdler32 = createAdler32;
|
|
18130
|
+
exports.createBLAKE2b = createBLAKE2b;
|
|
18131
|
+
exports.createBLAKE2s = createBLAKE2s;
|
|
18132
|
+
exports.createBLAKE3 = createBLAKE3;
|
|
18133
|
+
exports.createCRC32 = createCRC32;
|
|
18134
|
+
exports.createCRC64 = createCRC64;
|
|
18135
|
+
exports.createHMAC = createHMAC;
|
|
18136
|
+
exports.createKeccak = createKeccak;
|
|
18137
|
+
exports.createMD4 = createMD4;
|
|
18138
|
+
exports.createMD5 = createMD5;
|
|
18139
|
+
exports.createRIPEMD160 = createRIPEMD160;
|
|
18140
|
+
exports.createSHA1 = createSHA1;
|
|
18141
|
+
exports.createSHA224 = createSHA224;
|
|
18142
|
+
exports.createSHA256 = createSHA256;
|
|
18143
|
+
exports.createSHA3 = createSHA3;
|
|
18144
|
+
exports.createSHA384 = createSHA384;
|
|
18145
|
+
exports.createSHA512 = createSHA512;
|
|
18146
|
+
exports.createSM3 = createSM3;
|
|
18147
|
+
exports.createWhirlpool = createWhirlpool;
|
|
18148
|
+
exports.createXXHash128 = createXXHash128;
|
|
18149
|
+
exports.createXXHash3 = createXXHash3;
|
|
18150
|
+
exports.createXXHash32 = createXXHash32;
|
|
18151
|
+
exports.createXXHash64 = createXXHash64;
|
|
18152
|
+
exports.keccak = keccak;
|
|
18153
|
+
exports.md4 = md4;
|
|
18154
|
+
exports.md5 = md5;
|
|
18155
|
+
exports.pbkdf2 = pbkdf2;
|
|
18156
|
+
exports.ripemd160 = ripemd160;
|
|
18157
|
+
exports.scrypt = scrypt;
|
|
18158
|
+
exports.sha1 = sha1;
|
|
18159
|
+
exports.sha224 = sha224;
|
|
18160
|
+
exports.sha256 = sha256;
|
|
18161
|
+
exports.sha3 = sha3;
|
|
18162
|
+
exports.sha384 = sha384;
|
|
18163
|
+
exports.sha512 = sha512;
|
|
18164
|
+
exports.sm3 = sm3;
|
|
18165
|
+
exports.whirlpool = whirlpool;
|
|
18166
|
+
exports.xxhash128 = xxhash128;
|
|
18167
|
+
exports.xxhash3 = xxhash3;
|
|
18168
|
+
exports.xxhash32 = xxhash32;
|
|
18169
|
+
exports.xxhash64 = xxhash64;
|
|
16113
18170
|
|
|
16114
|
-
|
|
16115
|
-
* Minimal assert function
|
|
16116
|
-
* @param {any} t Value to check if falsy
|
|
16117
|
-
* @param {string=} m Optional assertion error message
|
|
16118
|
-
* @throws {AssertionError}
|
|
16119
|
-
*/
|
|
16120
|
-
function assert (t, m) {
|
|
16121
|
-
if (!t) {
|
|
16122
|
-
var err = new AssertionError(m)
|
|
16123
|
-
if (Error.captureStackTrace) Error.captureStackTrace(err, assert)
|
|
16124
|
-
throw err
|
|
16125
|
-
}
|
|
16126
|
-
}
|
|
18171
|
+
}));
|
|
16127
18172
|
|
|
16128
18173
|
|
|
16129
18174
|
/***/ }),
|
|
@@ -21890,7 +23935,7 @@ var Reflect;
|
|
|
21890
23935
|
/******/ // Execute the module function
|
|
21891
23936
|
/******/ var threw = true;
|
|
21892
23937
|
/******/ try {
|
|
21893
|
-
/******/ __webpack_modules__[moduleId](module, module.exports, __nccwpck_require__);
|
|
23938
|
+
/******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __nccwpck_require__);
|
|
21894
23939
|
/******/ threw = false;
|
|
21895
23940
|
/******/ } finally {
|
|
21896
23941
|
/******/ if(threw) delete __webpack_module_cache__[moduleId];
|
|
@@ -25694,6 +27739,64 @@ async function verifyBatch(input) {
|
|
|
25694
27739
|
return Promise.resolve(ed25519_wasm_exports.verify_ed25519_batch(data));
|
|
25695
27740
|
}
|
|
25696
27741
|
|
|
27742
|
+
;// CONCATENATED MODULE: ./packages/core/crypto/key-derivation.ts
|
|
27743
|
+
|
|
27744
|
+
|
|
27745
|
+
|
|
27746
|
+
|
|
27747
|
+
const SEED_SIZE = 32;
|
|
27748
|
+
const ED25519_SECRET_KEY = bytes_Bytes.blobFromString("jam_val_key_ed25519");
|
|
27749
|
+
const BANDERSNATCH_SECRET_KEY = bytes_Bytes.blobFromString("jam_val_key_bandersnatch");
|
|
27750
|
+
/**
|
|
27751
|
+
* JIP-5: Secret key derivation
|
|
27752
|
+
*
|
|
27753
|
+
* https://github.com/polkadot-fellows/JIPs/blob/7048f79edf4f4eb8bfe6fb42e6bbf61900f44c65/JIP-5.md */
|
|
27754
|
+
/**
|
|
27755
|
+
* Deriving a 32-byte seed from a 32-bit unsigned integer
|
|
27756
|
+
* https://github.com/polkadot-fellows/JIPs/blob/7048f79edf4f4eb8bfe6fb42e6bbf61900f44c65/JIP-5.md#trivial-seeds
|
|
27757
|
+
*/
|
|
27758
|
+
function trivialSeed(s) {
|
|
27759
|
+
const s_le = u32AsLeBytes(s);
|
|
27760
|
+
return Bytes.fromBlob(BytesBlob.blobFromParts([s_le, s_le, s_le, s_le, s_le, s_le, s_le, s_le]).raw, SEED_SIZE).asOpaque();
|
|
27761
|
+
}
|
|
27762
|
+
/**
|
|
27763
|
+
* Derives a Ed25519 secret key from a seed.
|
|
27764
|
+
* https://github.com/polkadot-fellows/JIPs/blob/7048f79edf4f4eb8bfe6fb42e6bbf61900f44c65/JIP-5.md#derivation-method
|
|
27765
|
+
*/
|
|
27766
|
+
function deriveEd25519SecretKey(seed, blake2b) {
|
|
27767
|
+
return blake2b.hashBytes(BytesBlob.blobFromParts([ED25519_SECRET_KEY.raw, seed.raw])).asOpaque();
|
|
27768
|
+
}
|
|
27769
|
+
/**
|
|
27770
|
+
* Derives a Bandersnatch secret key from a seed.
|
|
27771
|
+
* https://github.com/polkadot-fellows/JIPs/blob/7048f79edf4f4eb8bfe6fb42e6bbf61900f44c65/JIP-5.md#derivation-method
|
|
27772
|
+
*/
|
|
27773
|
+
function deriveBandersnatchSecretKey(seed, blake2b) {
|
|
27774
|
+
return blake2b.hashBytes(BytesBlob.blobFromParts([BANDERSNATCH_SECRET_KEY.raw, seed.raw])).asOpaque();
|
|
27775
|
+
}
|
|
27776
|
+
/**
|
|
27777
|
+
* Derive Ed25519 public key from secret seed
|
|
27778
|
+
*/
|
|
27779
|
+
async function deriveEd25519PublicKey(seed) {
|
|
27780
|
+
return (await privateKey(seed)).pubKey;
|
|
27781
|
+
}
|
|
27782
|
+
/**
|
|
27783
|
+
* Derive Bandersnatch public key from secret seed
|
|
27784
|
+
*/
|
|
27785
|
+
function deriveBandersnatchPublicKey(seed) {
|
|
27786
|
+
return publicKey(seed.raw);
|
|
27787
|
+
}
|
|
27788
|
+
|
|
27789
|
+
;// CONCATENATED MODULE: ./packages/core/crypto/index.ts
|
|
27790
|
+
|
|
27791
|
+
|
|
27792
|
+
|
|
27793
|
+
|
|
27794
|
+
|
|
27795
|
+
|
|
27796
|
+
|
|
27797
|
+
|
|
27798
|
+
// EXTERNAL MODULE: ./node_modules/hash-wasm/dist/index.umd.js
|
|
27799
|
+
var index_umd = __nccwpck_require__(1681);
|
|
25697
27800
|
;// CONCATENATED MODULE: ./packages/core/hash/hash.ts
|
|
25698
27801
|
|
|
25699
27802
|
|
|
@@ -25733,82 +27836,45 @@ class WithHashAndBytes extends WithHash {
|
|
|
25733
27836
|
}
|
|
25734
27837
|
}
|
|
25735
27838
|
|
|
25736
|
-
;// CONCATENATED MODULE: ./packages/core/hash/
|
|
27839
|
+
;// CONCATENATED MODULE: ./packages/core/hash/blake2b.ts
|
|
25737
27840
|
|
|
25738
27841
|
|
|
25739
27842
|
|
|
25740
|
-
|
|
25741
|
-
class
|
|
25742
|
-
|
|
25743
|
-
|
|
25744
|
-
|
|
25745
|
-
}
|
|
25746
|
-
/** An allocator that works by allocating larger (continuous) pages of memory. */
|
|
25747
|
-
class PageAllocator {
|
|
25748
|
-
hashesPerPage;
|
|
25749
|
-
page = safeAllocUint8Array(0);
|
|
25750
|
-
currentHash = 0;
|
|
25751
|
-
// TODO [ToDr] Benchmark the performance!
|
|
25752
|
-
constructor(hashesPerPage) {
|
|
25753
|
-
this.hashesPerPage = hashesPerPage;
|
|
25754
|
-
check `${hashesPerPage > 0 && hashesPerPage >>> 0 === hashesPerPage} Expected a non-zero integer.`;
|
|
25755
|
-
this.resetPage();
|
|
27843
|
+
const zero = bytes_Bytes.zero(hash_HASH_SIZE);
|
|
27844
|
+
class blake2b_Blake2b {
|
|
27845
|
+
hasher;
|
|
27846
|
+
static async createHasher() {
|
|
27847
|
+
return new blake2b_Blake2b(await (0,index_umd.createBLAKE2b)(hash_HASH_SIZE * 8));
|
|
25756
27848
|
}
|
|
25757
|
-
|
|
25758
|
-
|
|
25759
|
-
this.currentHash = 0;
|
|
25760
|
-
this.page = safeAllocUint8Array(pageSizeBytes);
|
|
27849
|
+
constructor(hasher) {
|
|
27850
|
+
this.hasher = hasher;
|
|
25761
27851
|
}
|
|
25762
|
-
|
|
25763
|
-
|
|
25764
|
-
|
|
25765
|
-
|
|
25766
|
-
|
|
25767
|
-
|
|
27852
|
+
/**
|
|
27853
|
+
* Hash given collection of blobs.
|
|
27854
|
+
*
|
|
27855
|
+
* If empty array is given a zero-hash is returned.
|
|
27856
|
+
*/
|
|
27857
|
+
hashBlobs(r) {
|
|
27858
|
+
if (r.length === 0) {
|
|
27859
|
+
return zero.asOpaque();
|
|
25768
27860
|
}
|
|
25769
|
-
|
|
27861
|
+
const hasher = this.hasher.init();
|
|
27862
|
+
for (const v of r) {
|
|
27863
|
+
hasher.update(v instanceof bytes_BytesBlob ? v.raw : v);
|
|
27864
|
+
}
|
|
27865
|
+
return bytes_Bytes.fromBlob(hasher.digest("binary"), hash_HASH_SIZE).asOpaque();
|
|
25770
27866
|
}
|
|
25771
|
-
|
|
25772
|
-
|
|
25773
|
-
|
|
25774
|
-
|
|
25775
|
-
|
|
25776
|
-
|
|
25777
|
-
;// CONCATENATED MODULE: ./packages/core/hash/blake2b.ts
|
|
25778
|
-
|
|
25779
|
-
// TODO [ToDr] (#212) compare with blake2b from hash-wasm?
|
|
25780
|
-
|
|
25781
|
-
|
|
25782
|
-
|
|
25783
|
-
/**
|
|
25784
|
-
* Hash given collection of blobs.
|
|
25785
|
-
*
|
|
25786
|
-
* If empty array is given a zero-hash is returned.
|
|
25787
|
-
*/
|
|
25788
|
-
function blake2b_hashBlobs(r, allocator = defaultAllocator) {
|
|
25789
|
-
const out = allocator.emptyHash();
|
|
25790
|
-
if (r.length === 0) {
|
|
25791
|
-
return out.asOpaque();
|
|
27867
|
+
/** Hash given blob of bytes. */
|
|
27868
|
+
hashBytes(blob) {
|
|
27869
|
+
const hasher = this.hasher.init();
|
|
27870
|
+
const bytes = blob instanceof bytes_BytesBlob ? blob.raw : blob;
|
|
27871
|
+
hasher.update(bytes);
|
|
27872
|
+
return bytes_Bytes.fromBlob(hasher.digest("binary"), hash_HASH_SIZE).asOpaque();
|
|
25792
27873
|
}
|
|
25793
|
-
|
|
25794
|
-
|
|
25795
|
-
|
|
27874
|
+
/** Convert given string into bytes and hash it. */
|
|
27875
|
+
hashString(str) {
|
|
27876
|
+
return this.hashBytes(bytes_BytesBlob.blobFromString(str));
|
|
25796
27877
|
}
|
|
25797
|
-
hasher?.digest(out.raw);
|
|
25798
|
-
return out.asOpaque();
|
|
25799
|
-
}
|
|
25800
|
-
/** Hash given blob of bytes. */
|
|
25801
|
-
function hashBytes(blob, allocator = defaultAllocator) {
|
|
25802
|
-
const hasher = blake2b_default()(hash_HASH_SIZE);
|
|
25803
|
-
const bytes = blob instanceof bytes_BytesBlob ? blob.raw : blob;
|
|
25804
|
-
hasher?.update(bytes);
|
|
25805
|
-
const out = allocator.emptyHash();
|
|
25806
|
-
hasher?.digest(out.raw);
|
|
25807
|
-
return out;
|
|
25808
|
-
}
|
|
25809
|
-
/** Convert given string into bytes and hash it. */
|
|
25810
|
-
function hashString(str, allocator = defaultAllocator) {
|
|
25811
|
-
return hashBytes(bytes_BytesBlob.blobFromString(str), allocator);
|
|
25812
27878
|
}
|
|
25813
27879
|
|
|
25814
27880
|
;// CONCATENATED MODULE: ./packages/core/hash/keccak.ts
|
|
@@ -25834,70 +27900,55 @@ function keccak_hashBlobs(hasher, blobs) {
|
|
|
25834
27900
|
}
|
|
25835
27901
|
|
|
25836
27902
|
;// CONCATENATED MODULE: ./packages/core/hash/index.ts
|
|
25837
|
-
|
|
25838
27903
|
// TODO [ToDr] (#213) this should most likely be moved to a separate
|
|
25839
27904
|
// package to avoid pulling in unnecessary deps.
|
|
25840
27905
|
|
|
25841
27906
|
|
|
25842
27907
|
|
|
25843
27908
|
|
|
25844
|
-
;// CONCATENATED MODULE: ./packages/core/
|
|
25845
|
-
|
|
25846
|
-
|
|
25847
|
-
|
|
27909
|
+
;// CONCATENATED MODULE: ./packages/core/collections/array-view.ts
|
|
25848
27910
|
|
|
25849
|
-
|
|
25850
|
-
const SEED_SIZE = 32;
|
|
25851
|
-
const ED25519_SECRET_KEY = bytes_Bytes.blobFromString("jam_val_key_ed25519");
|
|
25852
|
-
const BANDERSNATCH_SECRET_KEY = bytes_Bytes.blobFromString("jam_val_key_bandersnatch");
|
|
25853
|
-
/**
|
|
25854
|
-
* JIP-5: Secret key derivation
|
|
25855
|
-
*
|
|
25856
|
-
* https://github.com/polkadot-fellows/JIPs/blob/7048f79edf4f4eb8bfe6fb42e6bbf61900f44c65/JIP-5.md */
|
|
25857
|
-
/**
|
|
25858
|
-
* Deriving a 32-byte seed from a 32-bit unsigned integer
|
|
25859
|
-
* https://github.com/polkadot-fellows/JIPs/blob/7048f79edf4f4eb8bfe6fb42e6bbf61900f44c65/JIP-5.md#trivial-seeds
|
|
25860
|
-
*/
|
|
25861
|
-
function trivialSeed(s) {
|
|
25862
|
-
const s_le = u32AsLeBytes(s);
|
|
25863
|
-
return Bytes.fromBlob(BytesBlob.blobFromParts([s_le, s_le, s_le, s_le, s_le, s_le, s_le, s_le]).raw, SEED_SIZE).asOpaque();
|
|
25864
|
-
}
|
|
25865
|
-
/**
|
|
25866
|
-
* Derives a Ed25519 secret key from a seed.
|
|
25867
|
-
* https://github.com/polkadot-fellows/JIPs/blob/7048f79edf4f4eb8bfe6fb42e6bbf61900f44c65/JIP-5.md#derivation-method
|
|
25868
|
-
*/
|
|
25869
|
-
function deriveEd25519SecretKey(seed, allocator = new SimpleAllocator()) {
|
|
25870
|
-
return blake2b.hashBytes(BytesBlob.blobFromParts([ED25519_SECRET_KEY.raw, seed.raw]), allocator).asOpaque();
|
|
25871
|
-
}
|
|
25872
|
-
/**
|
|
25873
|
-
* Derives a Bandersnatch secret key from a seed.
|
|
25874
|
-
* https://github.com/polkadot-fellows/JIPs/blob/7048f79edf4f4eb8bfe6fb42e6bbf61900f44c65/JIP-5.md#derivation-method
|
|
25875
|
-
*/
|
|
25876
|
-
function deriveBandersnatchSecretKey(seed, allocator = new SimpleAllocator()) {
|
|
25877
|
-
return blake2b.hashBytes(BytesBlob.blobFromParts([BANDERSNATCH_SECRET_KEY.raw, seed.raw]), allocator).asOpaque();
|
|
25878
|
-
}
|
|
25879
27911
|
/**
|
|
25880
|
-
*
|
|
25881
|
-
*/
|
|
25882
|
-
async function deriveEd25519PublicKey(seed) {
|
|
25883
|
-
return (await privateKey(seed)).pubKey;
|
|
25884
|
-
}
|
|
25885
|
-
/**
|
|
25886
|
-
* Derive Bandersnatch public key from secret seed
|
|
27912
|
+
* A utility class providing a readonly view over a portion of an array without copying it.
|
|
25887
27913
|
*/
|
|
25888
|
-
|
|
25889
|
-
|
|
27914
|
+
class ArrayView {
|
|
27915
|
+
start;
|
|
27916
|
+
end;
|
|
27917
|
+
source;
|
|
27918
|
+
length;
|
|
27919
|
+
constructor(source, start, end) {
|
|
27920
|
+
this.start = start;
|
|
27921
|
+
this.end = end;
|
|
27922
|
+
this.source = source;
|
|
27923
|
+
this.length = end - start;
|
|
27924
|
+
}
|
|
27925
|
+
static from(source, start = 0, end = source.length) {
|
|
27926
|
+
debug_check `
|
|
27927
|
+
${start >= 0 && end <= source.length && start <= end}
|
|
27928
|
+
Invalid start (${start})/end (${end}) for ArrayView
|
|
27929
|
+
`;
|
|
27930
|
+
return new ArrayView(source, start, end);
|
|
27931
|
+
}
|
|
27932
|
+
get(i) {
|
|
27933
|
+
debug_check `
|
|
27934
|
+
${i >= 0 && i < this.length}
|
|
27935
|
+
Index out of bounds: ${i} < ${this.length}
|
|
27936
|
+
`;
|
|
27937
|
+
return this.source[this.start + i];
|
|
27938
|
+
}
|
|
27939
|
+
subview(from, to = this.length) {
|
|
27940
|
+
return ArrayView.from(this.source, this.start + from, this.start + to);
|
|
27941
|
+
}
|
|
27942
|
+
toArray() {
|
|
27943
|
+
return this.source.slice(this.start, this.end);
|
|
27944
|
+
}
|
|
27945
|
+
*[Symbol.iterator]() {
|
|
27946
|
+
for (let i = this.start; i < this.end; i++) {
|
|
27947
|
+
yield this.source[i];
|
|
27948
|
+
}
|
|
27949
|
+
}
|
|
25890
27950
|
}
|
|
25891
27951
|
|
|
25892
|
-
;// CONCATENATED MODULE: ./packages/core/crypto/index.ts
|
|
25893
|
-
|
|
25894
|
-
|
|
25895
|
-
|
|
25896
|
-
|
|
25897
|
-
|
|
25898
|
-
|
|
25899
|
-
|
|
25900
|
-
|
|
25901
27952
|
;// CONCATENATED MODULE: ./packages/core/collections/hash-dictionary.ts
|
|
25902
27953
|
/** A map which uses hashes as keys. */
|
|
25903
27954
|
class hash_dictionary_HashDictionary {
|
|
@@ -26509,6 +28560,7 @@ class truncated_hash_dictionary_TruncatedHashDictionary {
|
|
|
26509
28560
|
|
|
26510
28561
|
|
|
26511
28562
|
|
|
28563
|
+
|
|
26512
28564
|
;// CONCATENATED MODULE: ./packages/jam/config/chain-spec.ts
|
|
26513
28565
|
|
|
26514
28566
|
|
|
@@ -29572,43 +31624,43 @@ var stateKeys;
|
|
|
29572
31624
|
}
|
|
29573
31625
|
stateKeys.serviceInfo = serviceInfo;
|
|
29574
31626
|
/** https://graypaper.fluffylabs.dev/#/1c979cb/3bba033bba03?v=0.7.1 */
|
|
29575
|
-
function serviceStorage(serviceId, key) {
|
|
31627
|
+
function serviceStorage(blake2b, serviceId, key) {
|
|
29576
31628
|
if (compatibility_Compatibility.isLessThan(compatibility_GpVersion.V0_6_7)) {
|
|
29577
31629
|
const out = bytes_Bytes.zero(hash_HASH_SIZE);
|
|
29578
31630
|
out.raw.set(numbers_u32AsLeBytes(numbers_tryAsU32(2 ** 32 - 1)), 0);
|
|
29579
31631
|
out.raw.set(key.raw.subarray(0, hash_HASH_SIZE - U32_BYTES), U32_BYTES);
|
|
29580
31632
|
return legacyServiceNested(serviceId, out);
|
|
29581
31633
|
}
|
|
29582
|
-
return serviceNested(serviceId, numbers_tryAsU32(2 ** 32 - 1), key);
|
|
31634
|
+
return serviceNested(blake2b, serviceId, numbers_tryAsU32(2 ** 32 - 1), key);
|
|
29583
31635
|
}
|
|
29584
31636
|
stateKeys.serviceStorage = serviceStorage;
|
|
29585
31637
|
/** https://graypaper.fluffylabs.dev/#/1c979cb/3bd7033bd703?v=0.7.1 */
|
|
29586
|
-
function servicePreimage(serviceId, hash) {
|
|
31638
|
+
function servicePreimage(blake2b, serviceId, hash) {
|
|
29587
31639
|
if (compatibility_Compatibility.isLessThan(compatibility_GpVersion.V0_6_7)) {
|
|
29588
31640
|
const out = bytes_Bytes.zero(hash_HASH_SIZE);
|
|
29589
31641
|
out.raw.set(numbers_u32AsLeBytes(numbers_tryAsU32(2 ** 32 - 2)), 0);
|
|
29590
31642
|
out.raw.set(hash.raw.subarray(1, hash_HASH_SIZE - U32_BYTES + 1), U32_BYTES);
|
|
29591
31643
|
return legacyServiceNested(serviceId, out);
|
|
29592
31644
|
}
|
|
29593
|
-
return serviceNested(serviceId, numbers_tryAsU32(2 ** 32 - 2), hash);
|
|
31645
|
+
return serviceNested(blake2b, serviceId, numbers_tryAsU32(2 ** 32 - 2), hash);
|
|
29594
31646
|
}
|
|
29595
31647
|
stateKeys.servicePreimage = servicePreimage;
|
|
29596
31648
|
/** https://graypaper.fluffylabs.dev/#/1c979cb/3b0a043b0a04?v=0.7.1 */
|
|
29597
|
-
function serviceLookupHistory(serviceId, hash, preimageLength) {
|
|
31649
|
+
function serviceLookupHistory(blake2b, serviceId, hash, preimageLength) {
|
|
29598
31650
|
if (compatibility_Compatibility.isLessThan(compatibility_GpVersion.V0_6_7)) {
|
|
29599
|
-
const doubleHash = hashBytes(hash);
|
|
31651
|
+
const doubleHash = blake2b.hashBytes(hash);
|
|
29600
31652
|
const out = bytes_Bytes.zero(hash_HASH_SIZE);
|
|
29601
31653
|
out.raw.set(numbers_u32AsLeBytes(preimageLength), 0);
|
|
29602
31654
|
out.raw.set(doubleHash.raw.subarray(2, hash_HASH_SIZE - U32_BYTES + 2), U32_BYTES);
|
|
29603
31655
|
return legacyServiceNested(serviceId, out);
|
|
29604
31656
|
}
|
|
29605
|
-
return serviceNested(serviceId, preimageLength, hash);
|
|
31657
|
+
return serviceNested(blake2b, serviceId, preimageLength, hash);
|
|
29606
31658
|
}
|
|
29607
31659
|
stateKeys.serviceLookupHistory = serviceLookupHistory;
|
|
29608
31660
|
/** https://graypaper.fluffylabs.dev/#/1c979cb/3b88003b8800?v=0.7.1 */
|
|
29609
|
-
function serviceNested(serviceId, numberPrefix, hash) {
|
|
31661
|
+
function serviceNested(blake2b, serviceId, numberPrefix, hash) {
|
|
29610
31662
|
const inputToHash = bytes_BytesBlob.blobFromParts(numbers_u32AsLeBytes(numberPrefix), hash.raw);
|
|
29611
|
-
const newHash = hashBytes(inputToHash).raw.subarray(0, 28);
|
|
31663
|
+
const newHash = blake2b.hashBytes(inputToHash).raw.subarray(0, 28);
|
|
29612
31664
|
const key = bytes_Bytes.zero(hash_HASH_SIZE);
|
|
29613
31665
|
let i = 0;
|
|
29614
31666
|
for (const byte of numbers_u32AsLeBytes(serviceId)) {
|
|
@@ -29677,13 +31729,6 @@ function accumulationOutputComparator(a, b) {
|
|
|
29677
31729
|
|
|
29678
31730
|
|
|
29679
31731
|
|
|
29680
|
-
|
|
29681
|
-
const codecWithHash = (val) => descriptor_Descriptor.withView(val.name, val.sizeHint, (e, elem) => val.encode(e, elem.data), (d) => {
|
|
29682
|
-
const decoder2 = d.clone();
|
|
29683
|
-
const encoded = val.skipEncoded(decoder2);
|
|
29684
|
-
const hash = hashBytes(encoded);
|
|
29685
|
-
return new WithHash(hash.asOpaque(), val.decode(d));
|
|
29686
|
-
}, val.skip, val.View);
|
|
29687
31732
|
/**
|
|
29688
31733
|
* Assignment of particular work report to a core.
|
|
29689
31734
|
*
|
|
@@ -29696,7 +31741,7 @@ class AvailabilityAssignment extends WithDebug {
|
|
|
29696
31741
|
workReport;
|
|
29697
31742
|
timeout;
|
|
29698
31743
|
static Codec = descriptors_codec.Class(AvailabilityAssignment, {
|
|
29699
|
-
workReport:
|
|
31744
|
+
workReport: WorkReport.Codec,
|
|
29700
31745
|
timeout: descriptors_codec.u32.asOpaque(),
|
|
29701
31746
|
});
|
|
29702
31747
|
static create({ workReport, timeout }) {
|
|
@@ -31411,18 +33456,18 @@ var serialize_serialize;
|
|
|
31411
33456
|
Codec: ServiceAccountInfo.Codec,
|
|
31412
33457
|
});
|
|
31413
33458
|
/** https://graypaper.fluffylabs.dev/#/85129da/384803384803?v=0.6.3 */
|
|
31414
|
-
serialize.serviceStorage = (serviceId, key) => ({
|
|
31415
|
-
key: stateKeys.serviceStorage(serviceId, key),
|
|
33459
|
+
serialize.serviceStorage = (blake2b, serviceId, key) => ({
|
|
33460
|
+
key: stateKeys.serviceStorage(blake2b, serviceId, key),
|
|
31416
33461
|
Codec: dumpCodec,
|
|
31417
33462
|
});
|
|
31418
33463
|
/** https://graypaper.fluffylabs.dev/#/85129da/385b03385b03?v=0.6.3 */
|
|
31419
|
-
serialize.servicePreimages = (serviceId, hash) => ({
|
|
31420
|
-
key: stateKeys.servicePreimage(serviceId, hash),
|
|
33464
|
+
serialize.servicePreimages = (blake2b, serviceId, hash) => ({
|
|
33465
|
+
key: stateKeys.servicePreimage(blake2b, serviceId, hash),
|
|
31421
33466
|
Codec: dumpCodec,
|
|
31422
33467
|
});
|
|
31423
33468
|
/** https://graypaper.fluffylabs.dev/#/85129da/387603387603?v=0.6.3 */
|
|
31424
|
-
serialize.serviceLookupHistory = (serviceId, hash, len) => ({
|
|
31425
|
-
key: stateKeys.serviceLookupHistory(serviceId, hash, len),
|
|
33469
|
+
serialize.serviceLookupHistory = (blake2b, serviceId, hash, len) => ({
|
|
33470
|
+
key: stateKeys.serviceLookupHistory(blake2b, serviceId, hash, len),
|
|
31426
33471
|
Codec: readonlyArray(descriptors_codec.sequenceVarLen(descriptors_codec.u32)),
|
|
31427
33472
|
});
|
|
31428
33473
|
})(serialize_serialize || (serialize_serialize = {}));
|
|
@@ -31443,7 +33488,6 @@ const dumpCodec = descriptor_Descriptor.new("Dump", { bytes: 64, isExact: false
|
|
|
31443
33488
|
|
|
31444
33489
|
|
|
31445
33490
|
|
|
31446
|
-
|
|
31447
33491
|
/**
|
|
31448
33492
|
* State object which reads it's entries from some backend.
|
|
31449
33493
|
*
|
|
@@ -31454,20 +33498,22 @@ const dumpCodec = descriptor_Descriptor.new("Dump", { bytes: 64, isExact: false
|
|
|
31454
33498
|
*/
|
|
31455
33499
|
class serialized_state_SerializedState {
|
|
31456
33500
|
spec;
|
|
33501
|
+
blake2b;
|
|
31457
33502
|
backend;
|
|
31458
33503
|
_recentServiceIds;
|
|
31459
33504
|
/** Create a state-like object from collection of serialized entries. */
|
|
31460
|
-
static fromStateEntries(spec, state, recentServices = []) {
|
|
31461
|
-
return new serialized_state_SerializedState(spec, state, recentServices);
|
|
33505
|
+
static fromStateEntries(spec, blake2b, state, recentServices = []) {
|
|
33506
|
+
return new serialized_state_SerializedState(spec, blake2b, state, recentServices);
|
|
31462
33507
|
}
|
|
31463
33508
|
/** Create a state-like object backed by some DB. */
|
|
31464
|
-
static new(spec, db, recentServices = []) {
|
|
31465
|
-
return new serialized_state_SerializedState(spec, db, recentServices);
|
|
33509
|
+
static new(spec, blake2b, db, recentServices = []) {
|
|
33510
|
+
return new serialized_state_SerializedState(spec, blake2b, db, recentServices);
|
|
31466
33511
|
}
|
|
31467
|
-
constructor(spec, backend,
|
|
33512
|
+
constructor(spec, blake2b, backend,
|
|
31468
33513
|
/** Best-effort list of recently active services. */
|
|
31469
33514
|
_recentServiceIds) {
|
|
31470
33515
|
this.spec = spec;
|
|
33516
|
+
this.blake2b = blake2b;
|
|
31471
33517
|
this.backend = backend;
|
|
31472
33518
|
this._recentServiceIds = _recentServiceIds;
|
|
31473
33519
|
}
|
|
@@ -31491,7 +33537,7 @@ class serialized_state_SerializedState {
|
|
|
31491
33537
|
if (!this._recentServiceIds.includes(id)) {
|
|
31492
33538
|
this._recentServiceIds.push(id);
|
|
31493
33539
|
}
|
|
31494
|
-
return new SerializedService(id, serviceData, (key) => this.retrieveOptional(key));
|
|
33540
|
+
return new SerializedService(this.blake2b, id, serviceData, (key) => this.retrieveOptional(key));
|
|
31495
33541
|
}
|
|
31496
33542
|
retrieve({ key, Codec }, description) {
|
|
31497
33543
|
const bytes = this.backend.get(key);
|
|
@@ -31567,12 +33613,14 @@ class serialized_state_SerializedState {
|
|
|
31567
33613
|
}
|
|
31568
33614
|
/** Service data representation on a serialized state. */
|
|
31569
33615
|
class SerializedService {
|
|
33616
|
+
blake2b;
|
|
31570
33617
|
serviceId;
|
|
31571
33618
|
accountInfo;
|
|
31572
33619
|
retrieveOptional;
|
|
31573
|
-
constructor(
|
|
33620
|
+
constructor(blake2b,
|
|
31574
33621
|
/** Service id */
|
|
31575
33622
|
serviceId, accountInfo, retrieveOptional) {
|
|
33623
|
+
this.blake2b = blake2b;
|
|
31576
33624
|
this.serviceId = serviceId;
|
|
31577
33625
|
this.accountInfo = accountInfo;
|
|
31578
33626
|
this.retrieveOptional = retrieveOptional;
|
|
@@ -31588,10 +33636,10 @@ class SerializedService {
|
|
|
31588
33636
|
const serviceIdAndKey = safeAllocUint8Array(SERVICE_ID_BYTES + rawKey.length);
|
|
31589
33637
|
serviceIdAndKey.set(u32AsLeBytes(this.serviceId));
|
|
31590
33638
|
serviceIdAndKey.set(rawKey.raw, SERVICE_ID_BYTES);
|
|
31591
|
-
const key = asOpaqueType(BytesBlob.blobFrom(blake2b.hashBytes(serviceIdAndKey).raw));
|
|
31592
|
-
return this.retrieveOptional(serialize.serviceStorage(this.serviceId, key)) ?? null;
|
|
33639
|
+
const key = asOpaqueType(BytesBlob.blobFrom(this.blake2b.hashBytes(serviceIdAndKey).raw));
|
|
33640
|
+
return this.retrieveOptional(serialize.serviceStorage(this.blake2b, this.serviceId, key)) ?? null;
|
|
31593
33641
|
}
|
|
31594
|
-
return this.retrieveOptional(serialize.serviceStorage(this.serviceId, rawKey)) ?? null;
|
|
33642
|
+
return this.retrieveOptional(serialize.serviceStorage(this.blake2b, this.serviceId, rawKey)) ?? null;
|
|
31595
33643
|
}
|
|
31596
33644
|
/**
|
|
31597
33645
|
* Check if preimage is present in the DB.
|
|
@@ -31600,15 +33648,15 @@ class SerializedService {
|
|
|
31600
33648
|
*/
|
|
31601
33649
|
hasPreimage(hash) {
|
|
31602
33650
|
// TODO [ToDr] consider optimizing to avoid fetching the whole data.
|
|
31603
|
-
return this.retrieveOptional(serialize.servicePreimages(this.serviceId, hash)) !== undefined;
|
|
33651
|
+
return this.retrieveOptional(serialize.servicePreimages(this.blake2b, this.serviceId, hash)) !== undefined;
|
|
31604
33652
|
}
|
|
31605
33653
|
/** Retrieve preimage from the DB. */
|
|
31606
33654
|
getPreimage(hash) {
|
|
31607
|
-
return this.retrieveOptional(serialize.servicePreimages(this.serviceId, hash)) ?? null;
|
|
33655
|
+
return this.retrieveOptional(serialize.servicePreimages(this.blake2b, this.serviceId, hash)) ?? null;
|
|
31608
33656
|
}
|
|
31609
33657
|
/** Retrieve preimage lookup history. */
|
|
31610
33658
|
getLookupHistory(hash, len) {
|
|
31611
|
-
const rawSlots = this.retrieveOptional(serialize.serviceLookupHistory(this.serviceId, hash, len));
|
|
33659
|
+
const rawSlots = this.retrieveOptional(serialize.serviceLookupHistory(this.blake2b, this.serviceId, hash, len));
|
|
31612
33660
|
if (rawSlots === undefined) {
|
|
31613
33661
|
return null;
|
|
31614
33662
|
}
|
|
@@ -31894,7 +33942,7 @@ class WriteableNodesDb extends NodesDb {
|
|
|
31894
33942
|
|
|
31895
33943
|
/** Compare two trie `LeafNode`s only by their key. */
|
|
31896
33944
|
const trie_leafComparator = (x, y) => x.getKey().compare(y.getKey());
|
|
31897
|
-
const
|
|
33945
|
+
const trie_zero = bytes_Bytes.zero(hash_HASH_SIZE).asOpaque();
|
|
31898
33946
|
class trie_InMemoryTrie {
|
|
31899
33947
|
nodes;
|
|
31900
33948
|
root;
|
|
@@ -31907,7 +33955,7 @@ class trie_InMemoryTrie {
|
|
|
31907
33955
|
const sorted = leaves.slice();
|
|
31908
33956
|
const firstSorted = sorted.shift();
|
|
31909
33957
|
if (firstSorted === undefined) {
|
|
31910
|
-
return
|
|
33958
|
+
return trie_zero;
|
|
31911
33959
|
}
|
|
31912
33960
|
const nodes = [
|
|
31913
33961
|
{
|
|
@@ -31943,7 +33991,7 @@ class trie_InMemoryTrie {
|
|
|
31943
33991
|
const startDepth = isLastNode ? prevDepth : prevDepth + 1;
|
|
31944
33992
|
for (let i = startDepth; i <= currentDepth; i++) {
|
|
31945
33993
|
if (getBit(key, i) === false) {
|
|
31946
|
-
stack.push(
|
|
33994
|
+
stack.push(trie_zero);
|
|
31947
33995
|
}
|
|
31948
33996
|
}
|
|
31949
33997
|
// now let's push the hash of the current leaf
|
|
@@ -31959,16 +34007,16 @@ class trie_InMemoryTrie {
|
|
|
31959
34007
|
const endDepth = isLastNode ? currentDepth - 1 : currentDepth;
|
|
31960
34008
|
for (let i = prevDepth; i > endDepth; i--) {
|
|
31961
34009
|
if (getBit(key, i) === true) {
|
|
31962
|
-
stack.push(
|
|
34010
|
+
stack.push(trie_zero);
|
|
31963
34011
|
}
|
|
31964
|
-
const current = stack.pop() ??
|
|
31965
|
-
const next = stack.pop() ??
|
|
34012
|
+
const current = stack.pop() ?? trie_zero;
|
|
34013
|
+
const next = stack.pop() ?? trie_zero;
|
|
31966
34014
|
const branchNode = BranchNode.fromSubNodes(current, next);
|
|
31967
34015
|
const hash = hasher.hashConcat(branchNode.node.raw);
|
|
31968
34016
|
stack.push(hash);
|
|
31969
34017
|
}
|
|
31970
34018
|
}
|
|
31971
|
-
return stack.pop() ??
|
|
34019
|
+
return stack.pop() ?? trie_zero;
|
|
31972
34020
|
}
|
|
31973
34021
|
/**
|
|
31974
34022
|
* Construct a `LeafNode` from given `key` and `value`.
|
|
@@ -32101,7 +34149,7 @@ function findNodeToReplace(root, nodes, key) {
|
|
|
32101
34149
|
traversedPath.branchingHistory.push([branch, currentNodeHash, currBit]);
|
|
32102
34150
|
const nextNode = nodes.get(nextHash);
|
|
32103
34151
|
if (nextNode === null) {
|
|
32104
|
-
if (nextHash.isEqualTo(
|
|
34152
|
+
if (nextHash.isEqualTo(trie_zero)) {
|
|
32105
34153
|
return traversedPath;
|
|
32106
34154
|
}
|
|
32107
34155
|
throw new Error(`Missing trie node '${nextHash}' with key prefix: ${key}[0..${traversedPath.bitIndex}]`);
|
|
@@ -32252,12 +34300,13 @@ const bitLookup = [
|
|
|
32252
34300
|
;// CONCATENATED MODULE: ./packages/core/trie/hasher.ts
|
|
32253
34301
|
|
|
32254
34302
|
|
|
32255
|
-
|
|
32256
|
-
|
|
32257
|
-
|
|
32258
|
-
|
|
32259
|
-
|
|
32260
|
-
};
|
|
34303
|
+
function hasher_getBlake2bTrieHasher(hasher) {
|
|
34304
|
+
return {
|
|
34305
|
+
hashConcat(n, rest = []) {
|
|
34306
|
+
return hasher.hashBlobs([n, ...rest]);
|
|
34307
|
+
},
|
|
34308
|
+
};
|
|
34309
|
+
}
|
|
32261
34310
|
function getKeccakTrieHasher(hasher) {
|
|
32262
34311
|
return {
|
|
32263
34312
|
hashConcat(n, rest = []) {
|
|
@@ -32283,14 +34332,14 @@ var serialize_state_update_StateEntryUpdateAction;
|
|
|
32283
34332
|
})(serialize_state_update_StateEntryUpdateAction || (serialize_state_update_StateEntryUpdateAction = {}));
|
|
32284
34333
|
const EMPTY_BLOB = bytes_BytesBlob.empty();
|
|
32285
34334
|
/** Serialize given state update into a series of key-value pairs. */
|
|
32286
|
-
function* serialize_state_update_serializeStateUpdate(spec, update) {
|
|
34335
|
+
function* serialize_state_update_serializeStateUpdate(spec, blake2b, update) {
|
|
32287
34336
|
// first let's serialize all of the simple entries (if present!)
|
|
32288
34337
|
yield* serializeBasicKeys(spec, update);
|
|
32289
34338
|
const encode = (codec, val) => Encoder.encodeObject(codec, val, spec);
|
|
32290
34339
|
// then let's proceed with service updates
|
|
32291
|
-
yield* serializeServiceUpdates(update.servicesUpdates, encode);
|
|
32292
|
-
yield* serializePreimages(update.preimages, encode);
|
|
32293
|
-
yield* serializeStorage(update.storage);
|
|
34340
|
+
yield* serializeServiceUpdates(update.servicesUpdates, encode, blake2b);
|
|
34341
|
+
yield* serializePreimages(update.preimages, encode, blake2b);
|
|
34342
|
+
yield* serializeStorage(update.storage, blake2b);
|
|
32294
34343
|
yield* serializeRemovedServices(update.servicesRemoved);
|
|
32295
34344
|
}
|
|
32296
34345
|
function* serializeRemovedServices(servicesRemoved) {
|
|
@@ -32300,18 +34349,18 @@ function* serializeRemovedServices(servicesRemoved) {
|
|
|
32300
34349
|
yield [serialize_state_update_StateEntryUpdateAction.Remove, codec.key, EMPTY_BLOB];
|
|
32301
34350
|
}
|
|
32302
34351
|
}
|
|
32303
|
-
function* serializeStorage(storage) {
|
|
34352
|
+
function* serializeStorage(storage, blake2b) {
|
|
32304
34353
|
for (const { action, serviceId } of storage ?? []) {
|
|
32305
34354
|
switch (action.kind) {
|
|
32306
34355
|
case UpdateStorageKind.Set: {
|
|
32307
34356
|
const key = action.storage.key;
|
|
32308
|
-
const codec = serialize.serviceStorage(serviceId, key);
|
|
34357
|
+
const codec = serialize.serviceStorage(blake2b, serviceId, key);
|
|
32309
34358
|
yield [serialize_state_update_StateEntryUpdateAction.Insert, codec.key, action.storage.value];
|
|
32310
34359
|
break;
|
|
32311
34360
|
}
|
|
32312
34361
|
case UpdateStorageKind.Remove: {
|
|
32313
34362
|
const key = action.key;
|
|
32314
|
-
const codec = serialize.serviceStorage(serviceId, key);
|
|
34363
|
+
const codec = serialize.serviceStorage(blake2b, serviceId, key);
|
|
32315
34364
|
yield [serialize_state_update_StateEntryUpdateAction.Remove, codec.key, EMPTY_BLOB];
|
|
32316
34365
|
break;
|
|
32317
34366
|
}
|
|
@@ -32320,15 +34369,15 @@ function* serializeStorage(storage) {
|
|
|
32320
34369
|
}
|
|
32321
34370
|
}
|
|
32322
34371
|
}
|
|
32323
|
-
function* serializePreimages(preimages, encode) {
|
|
34372
|
+
function* serializePreimages(preimages, encode, blake2b) {
|
|
32324
34373
|
for (const { action, serviceId } of preimages ?? []) {
|
|
32325
34374
|
switch (action.kind) {
|
|
32326
34375
|
case UpdatePreimageKind.Provide: {
|
|
32327
34376
|
const { hash, blob } = action.preimage;
|
|
32328
|
-
const codec = serialize.servicePreimages(serviceId, hash);
|
|
34377
|
+
const codec = serialize.servicePreimages(blake2b, serviceId, hash);
|
|
32329
34378
|
yield [serialize_state_update_StateEntryUpdateAction.Insert, codec.key, blob];
|
|
32330
34379
|
if (action.slot !== null) {
|
|
32331
|
-
const codec2 = serialize.serviceLookupHistory(serviceId, hash, tryAsU32(blob.length));
|
|
34380
|
+
const codec2 = serialize.serviceLookupHistory(blake2b, serviceId, hash, tryAsU32(blob.length));
|
|
32332
34381
|
yield [
|
|
32333
34382
|
serialize_state_update_StateEntryUpdateAction.Insert,
|
|
32334
34383
|
codec2.key,
|
|
@@ -32339,15 +34388,15 @@ function* serializePreimages(preimages, encode) {
|
|
|
32339
34388
|
}
|
|
32340
34389
|
case UpdatePreimageKind.UpdateOrAdd: {
|
|
32341
34390
|
const { hash, length, slots } = action.item;
|
|
32342
|
-
const codec = serialize.serviceLookupHistory(serviceId, hash, length);
|
|
34391
|
+
const codec = serialize.serviceLookupHistory(blake2b, serviceId, hash, length);
|
|
32343
34392
|
yield [serialize_state_update_StateEntryUpdateAction.Insert, codec.key, encode(codec.Codec, slots)];
|
|
32344
34393
|
break;
|
|
32345
34394
|
}
|
|
32346
34395
|
case UpdatePreimageKind.Remove: {
|
|
32347
34396
|
const { hash, length } = action;
|
|
32348
|
-
const codec = serialize.servicePreimages(serviceId, hash);
|
|
34397
|
+
const codec = serialize.servicePreimages(blake2b, serviceId, hash);
|
|
32349
34398
|
yield [serialize_state_update_StateEntryUpdateAction.Remove, codec.key, EMPTY_BLOB];
|
|
32350
|
-
const codec2 = serialize.serviceLookupHistory(serviceId, hash, length);
|
|
34399
|
+
const codec2 = serialize.serviceLookupHistory(blake2b, serviceId, hash, length);
|
|
32351
34400
|
yield [serialize_state_update_StateEntryUpdateAction.Remove, codec2.key, EMPTY_BLOB];
|
|
32352
34401
|
break;
|
|
32353
34402
|
}
|
|
@@ -32356,7 +34405,7 @@ function* serializePreimages(preimages, encode) {
|
|
|
32356
34405
|
}
|
|
32357
34406
|
}
|
|
32358
34407
|
}
|
|
32359
|
-
function* serializeServiceUpdates(servicesUpdates, encode) {
|
|
34408
|
+
function* serializeServiceUpdates(servicesUpdates, encode, blake2b) {
|
|
32360
34409
|
for (const { action, serviceId } of servicesUpdates ?? []) {
|
|
32361
34410
|
// new service being created or updated
|
|
32362
34411
|
const codec = serialize.serviceData(serviceId);
|
|
@@ -32364,7 +34413,7 @@ function* serializeServiceUpdates(servicesUpdates, encode) {
|
|
|
32364
34413
|
// additional lookup history update
|
|
32365
34414
|
if (action.kind === UpdateServiceKind.Create && action.lookupHistory !== null) {
|
|
32366
34415
|
const { lookupHistory } = action;
|
|
32367
|
-
const codec2 = serialize.serviceLookupHistory(serviceId, lookupHistory.hash, lookupHistory.length);
|
|
34416
|
+
const codec2 = serialize.serviceLookupHistory(blake2b, serviceId, lookupHistory.hash, lookupHistory.length);
|
|
32368
34417
|
yield [serialize_state_update_StateEntryUpdateAction.Insert, codec2.key, encode(codec2.Codec, lookupHistory.slots)];
|
|
32369
34418
|
}
|
|
32370
34419
|
}
|
|
@@ -32468,8 +34517,8 @@ class state_entries_StateEntries {
|
|
|
32468
34517
|
},
|
|
32469
34518
|
}, (e, v) => stateEntriesSequenceCodec.encode(e, Array.from(v.entries)), (d) => state_entries_StateEntries.fromEntriesUnsafe(stateEntriesSequenceCodec.decode(d)), (s) => stateEntriesSequenceCodec.skip(s));
|
|
32470
34519
|
/** Turn in-memory state into it's serialized form. */
|
|
32471
|
-
static serializeInMemory(spec, state) {
|
|
32472
|
-
return new state_entries_StateEntries(convertInMemoryStateToDictionary(spec, state));
|
|
34520
|
+
static serializeInMemory(spec, blake2b, state) {
|
|
34521
|
+
return new state_entries_StateEntries(convertInMemoryStateToDictionary(spec, blake2b, state));
|
|
32473
34522
|
}
|
|
32474
34523
|
/**
|
|
32475
34524
|
* Wrap a collection of truncated state entries and treat it as state.
|
|
@@ -32518,16 +34567,17 @@ class state_entries_StateEntries {
|
|
|
32518
34567
|
}
|
|
32519
34568
|
}
|
|
32520
34569
|
/** https://graypaper.fluffylabs.dev/#/68eaa1f/391600391600?v=0.6.4 */
|
|
32521
|
-
getRootHash() {
|
|
34570
|
+
getRootHash(blake2b) {
|
|
34571
|
+
const blake2bTrieHasher = hasher_getBlake2bTrieHasher(blake2b);
|
|
32522
34572
|
const leaves = sorted_set_SortedSet.fromArray(trie_leafComparator);
|
|
32523
34573
|
for (const [key, value] of this) {
|
|
32524
|
-
leaves.insert(trie_InMemoryTrie.constructLeaf(
|
|
34574
|
+
leaves.insert(trie_InMemoryTrie.constructLeaf(blake2bTrieHasher, key.asOpaque(), value));
|
|
32525
34575
|
}
|
|
32526
|
-
return trie_InMemoryTrie.computeStateRoot(
|
|
34576
|
+
return trie_InMemoryTrie.computeStateRoot(blake2bTrieHasher, leaves).asOpaque();
|
|
32527
34577
|
}
|
|
32528
34578
|
}
|
|
32529
34579
|
/** https://graypaper.fluffylabs.dev/#/68eaa1f/38a50038a500?v=0.6.4 */
|
|
32530
|
-
function convertInMemoryStateToDictionary(spec, state) {
|
|
34580
|
+
function convertInMemoryStateToDictionary(spec, blake2b, state) {
|
|
32531
34581
|
const serialized = truncated_hash_dictionary_TruncatedHashDictionary.fromEntries([]);
|
|
32532
34582
|
function doSerialize(codec) {
|
|
32533
34583
|
serialized.set(codec.key, encoder_Encoder.encodeObject(codec.Codec, codec.extract(state), spec));
|
|
@@ -32555,18 +34605,18 @@ function convertInMemoryStateToDictionary(spec, state) {
|
|
|
32555
34605
|
serialized.set(key, encoder_Encoder.encodeObject(Codec, service.getInfo()));
|
|
32556
34606
|
// preimages
|
|
32557
34607
|
for (const preimage of service.data.preimages.values()) {
|
|
32558
|
-
const { key, Codec } = serialize_serialize.servicePreimages(serviceId, preimage.hash);
|
|
34608
|
+
const { key, Codec } = serialize_serialize.servicePreimages(blake2b, serviceId, preimage.hash);
|
|
32559
34609
|
serialized.set(key, encoder_Encoder.encodeObject(Codec, preimage.blob));
|
|
32560
34610
|
}
|
|
32561
34611
|
// storage
|
|
32562
34612
|
for (const storage of service.data.storage.values()) {
|
|
32563
|
-
const { key, Codec } = serialize_serialize.serviceStorage(serviceId, storage.key);
|
|
34613
|
+
const { key, Codec } = serialize_serialize.serviceStorage(blake2b, serviceId, storage.key);
|
|
32564
34614
|
serialized.set(key, encoder_Encoder.encodeObject(Codec, storage.value));
|
|
32565
34615
|
}
|
|
32566
34616
|
// lookup history
|
|
32567
34617
|
for (const lookupHistoryList of service.data.lookupHistory.values()) {
|
|
32568
34618
|
for (const lookupHistory of lookupHistoryList) {
|
|
32569
|
-
const { key, Codec } = serialize_serialize.serviceLookupHistory(serviceId, lookupHistory.hash, lookupHistory.length);
|
|
34619
|
+
const { key, Codec } = serialize_serialize.serviceLookupHistory(blake2b, serviceId, lookupHistory.hash, lookupHistory.length);
|
|
32570
34620
|
serialized.set(key, encoder_Encoder.encodeObject(Codec, lookupHistory.slots.slice()));
|
|
32571
34621
|
}
|
|
32572
34622
|
}
|
|
@@ -32577,9 +34627,9 @@ function convertInMemoryStateToDictionary(spec, state) {
|
|
|
32577
34627
|
;// CONCATENATED MODULE: ./packages/jam/state-merkleization/loader.ts
|
|
32578
34628
|
|
|
32579
34629
|
|
|
32580
|
-
function loadState(spec, entries) {
|
|
34630
|
+
function loadState(spec, blake2b, entries) {
|
|
32581
34631
|
const stateEntries = StateEntries.fromEntriesUnsafe(entries);
|
|
32582
|
-
return SerializedState.fromStateEntries(spec, stateEntries);
|
|
34632
|
+
return SerializedState.fromStateEntries(spec, blake2b, stateEntries);
|
|
32583
34633
|
}
|
|
32584
34634
|
|
|
32585
34635
|
;// CONCATENATED MODULE: ./packages/jam/state-merkleization/index.ts
|
|
@@ -32686,7 +34736,8 @@ class leaf_db_LeafDb {
|
|
|
32686
34736
|
}
|
|
32687
34737
|
assertNever(val);
|
|
32688
34738
|
}
|
|
32689
|
-
getStateRoot() {
|
|
34739
|
+
getStateRoot(blake2b) {
|
|
34740
|
+
const blake2bTrieHasher = getBlake2bTrieHasher(blake2b);
|
|
32690
34741
|
return InMemoryTrie.computeStateRoot(blake2bTrieHasher, this.leaves).asOpaque();
|
|
32691
34742
|
}
|
|
32692
34743
|
intoStateEntries() {
|
|
@@ -32868,6 +34919,7 @@ const in_memory_state_codec_inMemoryStateCodec = descriptors_codec.Class(InMemor
|
|
|
32868
34919
|
|
|
32869
34920
|
|
|
32870
34921
|
|
|
34922
|
+
|
|
32871
34923
|
/** A potential error that occured during state update. */
|
|
32872
34924
|
var states_StateUpdateError;
|
|
32873
34925
|
(function (StateUpdateError) {
|
|
@@ -32897,7 +34949,8 @@ class InMemoryStates {
|
|
|
32897
34949
|
}
|
|
32898
34950
|
}
|
|
32899
34951
|
async getStateRoot(state) {
|
|
32900
|
-
|
|
34952
|
+
const blake2b = await Blake2b.createHasher();
|
|
34953
|
+
return StateEntries.serializeInMemory(this.spec, blake2b, state).getRootHash(blake2b);
|
|
32901
34954
|
}
|
|
32902
34955
|
/** Insert a full state into the database. */
|
|
32903
34956
|
async insertState(headerHash, state) {
|
|
@@ -32979,11 +35032,13 @@ const states_logger = Logger.new(import.meta.filename, "db");
|
|
|
32979
35032
|
*/
|
|
32980
35033
|
class LmdbStates {
|
|
32981
35034
|
spec;
|
|
35035
|
+
blake2b;
|
|
32982
35036
|
root;
|
|
32983
35037
|
states;
|
|
32984
35038
|
values;
|
|
32985
|
-
constructor(spec, root) {
|
|
35039
|
+
constructor(spec, blake2b, root) {
|
|
32986
35040
|
this.spec = spec;
|
|
35041
|
+
this.blake2b = blake2b;
|
|
32987
35042
|
this.root = root;
|
|
32988
35043
|
this.states = this.root.subDb("states");
|
|
32989
35044
|
this.values = this.root.subDb("values");
|
|
@@ -32997,6 +35052,7 @@ class LmdbStates {
|
|
|
32997
35052
|
return await this.updateAndCommit(headerHash, SortedSet.fromArray(leafComparator, []), Array.from(serializedState, (x) => [StateEntryUpdateAction.Insert, x[0], x[1]]));
|
|
32998
35053
|
}
|
|
32999
35054
|
async updateAndCommit(headerHash, leafs, data) {
|
|
35055
|
+
const blake2bTrieHasher = getBlake2bTrieHasher(this.blake2b);
|
|
33000
35056
|
// We will collect all values that don't fit directly into leaf nodes.
|
|
33001
35057
|
const values = [];
|
|
33002
35058
|
for (const [action, key, value] of data) {
|
|
@@ -33038,12 +35094,12 @@ class LmdbStates {
|
|
|
33038
35094
|
async updateAndSetState(headerHash, state, update) {
|
|
33039
35095
|
// TODO [ToDr] We should probably detect a conflicting state (i.e. two services
|
|
33040
35096
|
// updated at once, etc), for now we're just ignoring it.
|
|
33041
|
-
const updatedValues = serializeStateUpdate(this.spec, update);
|
|
35097
|
+
const updatedValues = serializeStateUpdate(this.spec, this.blake2b, update);
|
|
33042
35098
|
// and finally we insert new values and store leaves in the DB.
|
|
33043
35099
|
return await this.updateAndCommit(headerHash, state.backend.leaves, updatedValues);
|
|
33044
35100
|
}
|
|
33045
35101
|
async getStateRoot(state) {
|
|
33046
|
-
return state.backend.getStateRoot();
|
|
35102
|
+
return state.backend.getStateRoot(this.blake2b);
|
|
33047
35103
|
}
|
|
33048
35104
|
getState(root) {
|
|
33049
35105
|
const leafNodes = this.states.get(root.raw);
|
|
@@ -33064,7 +35120,7 @@ class LmdbStates {
|
|
|
33064
35120
|
if (leafDbResult.isError) {
|
|
33065
35121
|
throw new Error(`Inconsistent DB. Invalid leaf nodes for ${root}: ${resultToString(leafDbResult)}`);
|
|
33066
35122
|
}
|
|
33067
|
-
return SerializedState.new(this.spec, leafDbResult.ok);
|
|
35123
|
+
return SerializedState.new(this.spec, this.blake2b, leafDbResult.ok);
|
|
33068
35124
|
}
|
|
33069
35125
|
}
|
|
33070
35126
|
|
|
@@ -36014,14 +38070,15 @@ const sync_logger = Logger.new(import.meta.filename, "net:sync");
|
|
|
36014
38070
|
const MAX_BLOCK_SEQUENCE = 128;
|
|
36015
38071
|
class SyncTask {
|
|
36016
38072
|
spec;
|
|
38073
|
+
blake2b;
|
|
36017
38074
|
streamManager;
|
|
36018
38075
|
connections;
|
|
36019
38076
|
blocks;
|
|
36020
38077
|
onNewBlocks;
|
|
36021
|
-
static start(spec, streamManager, connections, blocks,
|
|
38078
|
+
static start(spec, blake2b, streamManager, connections, blocks,
|
|
36022
38079
|
// TODO [ToDr] Use listener instead of a callback maybe?
|
|
36023
38080
|
onNewBlocks) {
|
|
36024
|
-
const syncTask = new SyncTask(spec, streamManager, connections, blocks, onNewBlocks);
|
|
38081
|
+
const syncTask = new SyncTask(spec, blake2b, streamManager, connections, blocks, onNewBlocks);
|
|
36025
38082
|
const getPeerForStream = (streamId) => {
|
|
36026
38083
|
// NOTE [ToDr] Needing to query stream manager for a peer might be a bit
|
|
36027
38084
|
// wasteful, since we probably know the peer when we dispatch the
|
|
@@ -36057,8 +38114,9 @@ class SyncTask {
|
|
|
36057
38114
|
}
|
|
36058
38115
|
// Other's best header hash with timeslot
|
|
36059
38116
|
othersBest;
|
|
36060
|
-
constructor(spec, streamManager, connections, blocks, onNewBlocks) {
|
|
38117
|
+
constructor(spec, blake2b, streamManager, connections, blocks, onNewBlocks) {
|
|
36061
38118
|
this.spec = spec;
|
|
38119
|
+
this.blake2b = blake2b;
|
|
36062
38120
|
this.streamManager = streamManager;
|
|
36063
38121
|
this.connections = connections;
|
|
36064
38122
|
this.blocks = blocks;
|
|
@@ -36095,7 +38153,7 @@ class SyncTask {
|
|
|
36095
38153
|
}
|
|
36096
38154
|
onUp0Annoucement(peer, announcement) {
|
|
36097
38155
|
const { hash, slot } = announcement.final;
|
|
36098
|
-
const bestHeader = hashHeader(announcement.header, this.spec);
|
|
38156
|
+
const bestHeader = hashHeader(this.blake2b, announcement.header, this.spec);
|
|
36099
38157
|
sync_logger.info `[${peer.id}] --> Received new header #${announcement.header.timeSlotIndex}: ${bestHeader.hash}`;
|
|
36100
38158
|
// NOTE [ToDr] Instead of having `Connections` store aux data perhaps
|
|
36101
38159
|
// we should maintain that directly? However that would require
|
|
@@ -36275,9 +38333,9 @@ var SyncResult;
|
|
|
36275
38333
|
/** Sent request to some peers. */
|
|
36276
38334
|
SyncResult[SyncResult["BlocksRequested"] = 3] = "BlocksRequested";
|
|
36277
38335
|
})(SyncResult || (SyncResult = {}));
|
|
36278
|
-
function hashHeader(header, spec) {
|
|
38336
|
+
function hashHeader(blake2b, header, spec) {
|
|
36279
38337
|
const encoded = encoder_Encoder.encodeObject(header_Header.Codec, header, spec);
|
|
36280
|
-
return new WithHash(hashBytes(encoded).asOpaque(), header);
|
|
38338
|
+
return new WithHash(blake2b.hashBytes(encoded).asOpaque(), header);
|
|
36281
38339
|
}
|
|
36282
38340
|
|
|
36283
38341
|
;// CONCATENATED MODULE: ./packages/jam/jamnp-s/network.ts
|
|
@@ -36289,8 +38347,10 @@ function hashHeader(header, spec) {
|
|
|
36289
38347
|
|
|
36290
38348
|
|
|
36291
38349
|
|
|
38350
|
+
|
|
36292
38351
|
const network_logger = Logger.new(import.meta.filename, "jamnps");
|
|
36293
38352
|
async function setup(bind, genesisHash, key, bootnodes, spec, blocks, onNewBlocks) {
|
|
38353
|
+
const blake2b = await blake2b_Blake2b.createHasher();
|
|
36294
38354
|
const genesisFirstBytes = genesisHash.toString().substring(2, 10);
|
|
36295
38355
|
const network = await Quic.setup({
|
|
36296
38356
|
host: bind.host,
|
|
@@ -36302,7 +38362,7 @@ async function setup(bind, genesisHash, key, bootnodes, spec, blocks, onNewBlock
|
|
|
36302
38362
|
connections.addPersistentRetry(bootnodes);
|
|
36303
38363
|
const streamManager = new StreamManager();
|
|
36304
38364
|
// start the networking tasks
|
|
36305
|
-
const syncTask = SyncTask.start(spec, streamManager, connections, blocks, onNewBlocks);
|
|
38365
|
+
const syncTask = SyncTask.start(spec, blake2b, streamManager, connections, blocks, onNewBlocks);
|
|
36306
38366
|
setImmediate(async () => {
|
|
36307
38367
|
while (network.isRunning) {
|
|
36308
38368
|
await (0,promises_namespaceObject.setTimeout)(3000);
|