@typeberry/jam 0.1.3-6edad4a → 0.1.3-8258907
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 +377 -5235
- package/bootstrap-generator.mjs.map +1 -1
- package/bootstrap-importer.mjs +6677 -7176
- package/bootstrap-importer.mjs.map +1 -1
- package/bootstrap-network.mjs +2969 -854
- package/bootstrap-network.mjs.map +1 -1
- package/index.js +9503 -9982
- 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 = "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";
|
|
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 = "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";
|
|
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 = "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";
|
|
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];
|
|
@@ -22017,8 +24062,9 @@ function parseCurrentVersion(env) {
|
|
|
22017
24062
|
}
|
|
22018
24063
|
}
|
|
22019
24064
|
function parseCurrentSuite(env) {
|
|
22020
|
-
if (env === undefined)
|
|
24065
|
+
if (env === undefined) {
|
|
22021
24066
|
return undefined;
|
|
24067
|
+
}
|
|
22022
24068
|
switch (env) {
|
|
22023
24069
|
case TestSuite.W3F_DAVXY:
|
|
22024
24070
|
case TestSuite.JAMDUNA:
|
|
@@ -22316,6 +24362,20 @@ const result_Result = {
|
|
|
22316
24362
|
},
|
|
22317
24363
|
};
|
|
22318
24364
|
|
|
24365
|
+
;// CONCATENATED MODULE: ./packages/core/utils/safe-alloc-uint8array.ts
|
|
24366
|
+
// about 2GB, the maximum ArrayBuffer length on Chrome confirmed by several sources:
|
|
24367
|
+
// - https://issues.chromium.org/issues/40055619
|
|
24368
|
+
// - https://stackoverflow.com/a/72124984
|
|
24369
|
+
// - https://onnxruntime.ai/docs/tutorials/web/large-models.html#maximum-size-of-arraybuffer
|
|
24370
|
+
const MAX_LENGTH = 2145386496;
|
|
24371
|
+
function safe_alloc_uint8array_safeAllocUint8Array(length) {
|
|
24372
|
+
if (length > MAX_LENGTH) {
|
|
24373
|
+
// biome-ignore lint/suspicious/noConsole: can't have a dependency on logger here
|
|
24374
|
+
console.warn(`Trying to allocate ${length} bytes, which is greater than the maximum of ${MAX_LENGTH}.`);
|
|
24375
|
+
}
|
|
24376
|
+
return new Uint8Array(Math.min(MAX_LENGTH, length));
|
|
24377
|
+
}
|
|
24378
|
+
|
|
22319
24379
|
;// CONCATENATED MODULE: external "node:assert"
|
|
22320
24380
|
const external_node_assert_namespaceObject = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("node:assert");
|
|
22321
24381
|
;// CONCATENATED MODULE: ./packages/core/utils/test.ts
|
|
@@ -22435,10 +24495,12 @@ function deepEqual(actual, expected, { context = [], errorsCollector, ignore = [
|
|
|
22435
24495
|
.sort((a, b) => {
|
|
22436
24496
|
const aKey = `${a.key}`;
|
|
22437
24497
|
const bKey = `${b.key}`;
|
|
22438
|
-
if (aKey < bKey)
|
|
24498
|
+
if (aKey < bKey) {
|
|
22439
24499
|
return -1;
|
|
22440
|
-
|
|
24500
|
+
}
|
|
24501
|
+
if (bKey < aKey) {
|
|
22441
24502
|
return 1;
|
|
24503
|
+
}
|
|
22442
24504
|
return 0;
|
|
22443
24505
|
});
|
|
22444
24506
|
};
|
|
@@ -22559,6 +24621,7 @@ function isResult(x) {
|
|
|
22559
24621
|
|
|
22560
24622
|
|
|
22561
24623
|
|
|
24624
|
+
|
|
22562
24625
|
;// CONCATENATED MODULE: ./packages/core/bytes/bitvec.ts
|
|
22563
24626
|
|
|
22564
24627
|
/**
|
|
@@ -22580,7 +24643,7 @@ class bitvec_BitVec {
|
|
|
22580
24643
|
* Create new [`BitVec`] with all values set to `false`.
|
|
22581
24644
|
*/
|
|
22582
24645
|
static empty(bitLength) {
|
|
22583
|
-
const data =
|
|
24646
|
+
const data = safe_alloc_uint8array_safeAllocUint8Array(Math.ceil(bitLength / 8));
|
|
22584
24647
|
return new bitvec_BitVec(data, bitLength);
|
|
22585
24648
|
}
|
|
22586
24649
|
byteLength;
|
|
@@ -22780,7 +24843,7 @@ class bytes_BytesBlob {
|
|
|
22780
24843
|
static blobFromParts(v, ...rest) {
|
|
22781
24844
|
const vArr = v instanceof Uint8Array ? [v] : v;
|
|
22782
24845
|
const totalLength = vArr.reduce((a, v) => a + v.length, 0) + rest.reduce((a, v) => a + v.length, 0);
|
|
22783
|
-
const buffer =
|
|
24846
|
+
const buffer = safe_alloc_uint8array_safeAllocUint8Array(totalLength);
|
|
22784
24847
|
let offset = 0;
|
|
22785
24848
|
for (const r of vArr) {
|
|
22786
24849
|
buffer.set(r, offset);
|
|
@@ -22853,7 +24916,7 @@ class bytes_Bytes extends bytes_BytesBlob {
|
|
|
22853
24916
|
}
|
|
22854
24917
|
/** Create an empty [`Bytes<X>`] of given length. */
|
|
22855
24918
|
static zero(len) {
|
|
22856
|
-
return new bytes_Bytes(
|
|
24919
|
+
return new bytes_Bytes(safe_alloc_uint8array_safeAllocUint8Array(len), len);
|
|
22857
24920
|
}
|
|
22858
24921
|
// TODO [ToDr] `fill` should have the argments swapped to align with the rest.
|
|
22859
24922
|
/** Create a [`Bytes<X>`] with all bytes filled with given input number. */
|
|
@@ -23523,7 +25586,7 @@ function addSizeHints(a, b) {
|
|
|
23523
25586
|
};
|
|
23524
25587
|
}
|
|
23525
25588
|
const DEFAULT_START_LENGTH = 512; // 512B
|
|
23526
|
-
const
|
|
25589
|
+
const encoder_MAX_LENGTH = 10 * 1024 * 1024; // 10MB
|
|
23527
25590
|
/**
|
|
23528
25591
|
* JAM encoder.
|
|
23529
25592
|
*/
|
|
@@ -23539,7 +25602,7 @@ class encoder_Encoder {
|
|
|
23539
25602
|
return new encoder_Encoder(options.destination);
|
|
23540
25603
|
}
|
|
23541
25604
|
const startLength = options?.expectedLength ?? DEFAULT_START_LENGTH;
|
|
23542
|
-
const buffer = new ArrayBuffer(Math.min(
|
|
25605
|
+
const buffer = new ArrayBuffer(Math.min(encoder_MAX_LENGTH, startLength), { maxByteLength: encoder_MAX_LENGTH });
|
|
23543
25606
|
const destination = new Uint8Array(buffer);
|
|
23544
25607
|
return new encoder_Encoder(destination, buffer);
|
|
23545
25608
|
}
|
|
@@ -23872,11 +25935,11 @@ class encoder_Encoder {
|
|
|
23872
25935
|
ensureBigEnough(length, options = { silent: false }) {
|
|
23873
25936
|
debug_check `${length >= 0} Negative length given`;
|
|
23874
25937
|
const newLength = this.offset + length;
|
|
23875
|
-
if (newLength >
|
|
25938
|
+
if (newLength > encoder_MAX_LENGTH) {
|
|
23876
25939
|
if (options.silent) {
|
|
23877
25940
|
return;
|
|
23878
25941
|
}
|
|
23879
|
-
throw new Error(`The encoded size would reach the maximum of ${
|
|
25942
|
+
throw new Error(`The encoded size would reach the maximum of ${encoder_MAX_LENGTH}.`);
|
|
23880
25943
|
}
|
|
23881
25944
|
if (newLength > this.destination.length) {
|
|
23882
25945
|
// we can try to resize the underlying buffer
|
|
@@ -23884,7 +25947,7 @@ class encoder_Encoder {
|
|
|
23884
25947
|
// make sure we at least double the size of the buffer every time.
|
|
23885
25948
|
const minExtend = Math.max(newLength, this.buffer.byteLength << 1);
|
|
23886
25949
|
// but we must never exceed the max length.
|
|
23887
|
-
this.buffer.resize(Math.min(
|
|
25950
|
+
this.buffer.resize(Math.min(encoder_MAX_LENGTH, minExtend));
|
|
23888
25951
|
}
|
|
23889
25952
|
// and then check again
|
|
23890
25953
|
if (newLength > this.destination.length) {
|
|
@@ -25644,7 +27707,7 @@ async function ed25519_verify(input) {
|
|
|
25644
27707
|
return Promise.resolve([]);
|
|
25645
27708
|
}
|
|
25646
27709
|
const dataLength = input.reduce((acc, { message, key, signature }) => acc + key.length + signature.length + message.length + 1, 0);
|
|
25647
|
-
const data =
|
|
27710
|
+
const data = safe_alloc_uint8array_safeAllocUint8Array(dataLength);
|
|
25648
27711
|
let offset = 0;
|
|
25649
27712
|
for (const { key, message, signature } of input) {
|
|
25650
27713
|
data.set(key.raw, offset);
|
|
@@ -25679,6 +27742,64 @@ async function verifyBatch(input) {
|
|
|
25679
27742
|
return Promise.resolve(ed25519_wasm_exports.verify_ed25519_batch(data));
|
|
25680
27743
|
}
|
|
25681
27744
|
|
|
27745
|
+
;// CONCATENATED MODULE: ./packages/core/crypto/key-derivation.ts
|
|
27746
|
+
|
|
27747
|
+
|
|
27748
|
+
|
|
27749
|
+
|
|
27750
|
+
const SEED_SIZE = 32;
|
|
27751
|
+
const ED25519_SECRET_KEY = bytes_Bytes.blobFromString("jam_val_key_ed25519");
|
|
27752
|
+
const BANDERSNATCH_SECRET_KEY = bytes_Bytes.blobFromString("jam_val_key_bandersnatch");
|
|
27753
|
+
/**
|
|
27754
|
+
* JIP-5: Secret key derivation
|
|
27755
|
+
*
|
|
27756
|
+
* https://github.com/polkadot-fellows/JIPs/blob/7048f79edf4f4eb8bfe6fb42e6bbf61900f44c65/JIP-5.md */
|
|
27757
|
+
/**
|
|
27758
|
+
* Deriving a 32-byte seed from a 32-bit unsigned integer
|
|
27759
|
+
* https://github.com/polkadot-fellows/JIPs/blob/7048f79edf4f4eb8bfe6fb42e6bbf61900f44c65/JIP-5.md#trivial-seeds
|
|
27760
|
+
*/
|
|
27761
|
+
function trivialSeed(s) {
|
|
27762
|
+
const s_le = u32AsLeBytes(s);
|
|
27763
|
+
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();
|
|
27764
|
+
}
|
|
27765
|
+
/**
|
|
27766
|
+
* Derives a Ed25519 secret key from a seed.
|
|
27767
|
+
* https://github.com/polkadot-fellows/JIPs/blob/7048f79edf4f4eb8bfe6fb42e6bbf61900f44c65/JIP-5.md#derivation-method
|
|
27768
|
+
*/
|
|
27769
|
+
function deriveEd25519SecretKey(seed, blake2b) {
|
|
27770
|
+
return blake2b.hashBytes(BytesBlob.blobFromParts([ED25519_SECRET_KEY.raw, seed.raw])).asOpaque();
|
|
27771
|
+
}
|
|
27772
|
+
/**
|
|
27773
|
+
* Derives a Bandersnatch secret key from a seed.
|
|
27774
|
+
* https://github.com/polkadot-fellows/JIPs/blob/7048f79edf4f4eb8bfe6fb42e6bbf61900f44c65/JIP-5.md#derivation-method
|
|
27775
|
+
*/
|
|
27776
|
+
function deriveBandersnatchSecretKey(seed, blake2b) {
|
|
27777
|
+
return blake2b.hashBytes(BytesBlob.blobFromParts([BANDERSNATCH_SECRET_KEY.raw, seed.raw])).asOpaque();
|
|
27778
|
+
}
|
|
27779
|
+
/**
|
|
27780
|
+
* Derive Ed25519 public key from secret seed
|
|
27781
|
+
*/
|
|
27782
|
+
async function deriveEd25519PublicKey(seed) {
|
|
27783
|
+
return (await privateKey(seed)).pubKey;
|
|
27784
|
+
}
|
|
27785
|
+
/**
|
|
27786
|
+
* Derive Bandersnatch public key from secret seed
|
|
27787
|
+
*/
|
|
27788
|
+
function deriveBandersnatchPublicKey(seed) {
|
|
27789
|
+
return publicKey(seed.raw);
|
|
27790
|
+
}
|
|
27791
|
+
|
|
27792
|
+
;// CONCATENATED MODULE: ./packages/core/crypto/index.ts
|
|
27793
|
+
|
|
27794
|
+
|
|
27795
|
+
|
|
27796
|
+
|
|
27797
|
+
|
|
27798
|
+
|
|
27799
|
+
|
|
27800
|
+
|
|
27801
|
+
// EXTERNAL MODULE: ./node_modules/hash-wasm/dist/index.umd.js
|
|
27802
|
+
var index_umd = __nccwpck_require__(1681);
|
|
25682
27803
|
;// CONCATENATED MODULE: ./packages/core/hash/hash.ts
|
|
25683
27804
|
|
|
25684
27805
|
|
|
@@ -25718,82 +27839,45 @@ class WithHashAndBytes extends WithHash {
|
|
|
25718
27839
|
}
|
|
25719
27840
|
}
|
|
25720
27841
|
|
|
25721
|
-
;// CONCATENATED MODULE: ./packages/core/hash/
|
|
27842
|
+
;// CONCATENATED MODULE: ./packages/core/hash/blake2b.ts
|
|
25722
27843
|
|
|
25723
27844
|
|
|
25724
27845
|
|
|
25725
|
-
|
|
25726
|
-
class
|
|
25727
|
-
|
|
25728
|
-
|
|
25729
|
-
|
|
25730
|
-
}
|
|
25731
|
-
/** An allocator that works by allocating larger (continuous) pages of memory. */
|
|
25732
|
-
class PageAllocator {
|
|
25733
|
-
hashesPerPage;
|
|
25734
|
-
page = new Uint8Array(0);
|
|
25735
|
-
currentHash = 0;
|
|
25736
|
-
// TODO [ToDr] Benchmark the performance!
|
|
25737
|
-
constructor(hashesPerPage) {
|
|
25738
|
-
this.hashesPerPage = hashesPerPage;
|
|
25739
|
-
check `${hashesPerPage > 0 && hashesPerPage >>> 0 === hashesPerPage} Expected a non-zero integer.`;
|
|
25740
|
-
this.resetPage();
|
|
27846
|
+
const zero = bytes_Bytes.zero(hash_HASH_SIZE);
|
|
27847
|
+
class blake2b_Blake2b {
|
|
27848
|
+
hasher;
|
|
27849
|
+
static async createHasher() {
|
|
27850
|
+
return new blake2b_Blake2b(await (0,index_umd.createBLAKE2b)(hash_HASH_SIZE * 8));
|
|
25741
27851
|
}
|
|
25742
|
-
|
|
25743
|
-
|
|
25744
|
-
this.currentHash = 0;
|
|
25745
|
-
this.page = new Uint8Array(pageSizeBytes);
|
|
27852
|
+
constructor(hasher) {
|
|
27853
|
+
this.hasher = hasher;
|
|
25746
27854
|
}
|
|
25747
|
-
|
|
25748
|
-
|
|
25749
|
-
|
|
25750
|
-
|
|
25751
|
-
|
|
25752
|
-
|
|
27855
|
+
/**
|
|
27856
|
+
* Hash given collection of blobs.
|
|
27857
|
+
*
|
|
27858
|
+
* If empty array is given a zero-hash is returned.
|
|
27859
|
+
*/
|
|
27860
|
+
hashBlobs(r) {
|
|
27861
|
+
if (r.length === 0) {
|
|
27862
|
+
return zero.asOpaque();
|
|
25753
27863
|
}
|
|
25754
|
-
|
|
27864
|
+
const hasher = this.hasher.init();
|
|
27865
|
+
for (const v of r) {
|
|
27866
|
+
hasher.update(v instanceof bytes_BytesBlob ? v.raw : v);
|
|
27867
|
+
}
|
|
27868
|
+
return bytes_Bytes.fromBlob(hasher.digest("binary"), hash_HASH_SIZE).asOpaque();
|
|
25755
27869
|
}
|
|
25756
|
-
|
|
25757
|
-
|
|
25758
|
-
|
|
25759
|
-
|
|
25760
|
-
|
|
25761
|
-
|
|
25762
|
-
;// CONCATENATED MODULE: ./packages/core/hash/blake2b.ts
|
|
25763
|
-
|
|
25764
|
-
// TODO [ToDr] (#212) compare with blake2b from hash-wasm?
|
|
25765
|
-
|
|
25766
|
-
|
|
25767
|
-
|
|
25768
|
-
/**
|
|
25769
|
-
* Hash given collection of blobs.
|
|
25770
|
-
*
|
|
25771
|
-
* If empty array is given a zero-hash is returned.
|
|
25772
|
-
*/
|
|
25773
|
-
function blake2b_hashBlobs(r, allocator = defaultAllocator) {
|
|
25774
|
-
const out = allocator.emptyHash();
|
|
25775
|
-
if (r.length === 0) {
|
|
25776
|
-
return out.asOpaque();
|
|
27870
|
+
/** Hash given blob of bytes. */
|
|
27871
|
+
hashBytes(blob) {
|
|
27872
|
+
const hasher = this.hasher.init();
|
|
27873
|
+
const bytes = blob instanceof bytes_BytesBlob ? blob.raw : blob;
|
|
27874
|
+
hasher.update(bytes);
|
|
27875
|
+
return bytes_Bytes.fromBlob(hasher.digest("binary"), hash_HASH_SIZE).asOpaque();
|
|
25777
27876
|
}
|
|
25778
|
-
|
|
25779
|
-
|
|
25780
|
-
|
|
27877
|
+
/** Convert given string into bytes and hash it. */
|
|
27878
|
+
hashString(str) {
|
|
27879
|
+
return this.hashBytes(bytes_BytesBlob.blobFromString(str));
|
|
25781
27880
|
}
|
|
25782
|
-
hasher?.digest(out.raw);
|
|
25783
|
-
return out.asOpaque();
|
|
25784
|
-
}
|
|
25785
|
-
/** Hash given blob of bytes. */
|
|
25786
|
-
function hashBytes(blob, allocator = defaultAllocator) {
|
|
25787
|
-
const hasher = blake2b_default()(hash_HASH_SIZE);
|
|
25788
|
-
const bytes = blob instanceof bytes_BytesBlob ? blob.raw : blob;
|
|
25789
|
-
hasher?.update(bytes);
|
|
25790
|
-
const out = allocator.emptyHash();
|
|
25791
|
-
hasher?.digest(out.raw);
|
|
25792
|
-
return out;
|
|
25793
|
-
}
|
|
25794
|
-
/** Convert given string into bytes and hash it. */
|
|
25795
|
-
function hashString(str, allocator = defaultAllocator) {
|
|
25796
|
-
return hashBytes(bytes_BytesBlob.blobFromString(str), allocator);
|
|
25797
27881
|
}
|
|
25798
27882
|
|
|
25799
27883
|
;// CONCATENATED MODULE: ./packages/core/hash/keccak.ts
|
|
@@ -25819,70 +27903,55 @@ function keccak_hashBlobs(hasher, blobs) {
|
|
|
25819
27903
|
}
|
|
25820
27904
|
|
|
25821
27905
|
;// CONCATENATED MODULE: ./packages/core/hash/index.ts
|
|
25822
|
-
|
|
25823
27906
|
// TODO [ToDr] (#213) this should most likely be moved to a separate
|
|
25824
27907
|
// package to avoid pulling in unnecessary deps.
|
|
25825
27908
|
|
|
25826
27909
|
|
|
25827
27910
|
|
|
25828
27911
|
|
|
25829
|
-
;// CONCATENATED MODULE: ./packages/core/
|
|
25830
|
-
|
|
25831
|
-
|
|
25832
|
-
|
|
25833
|
-
|
|
27912
|
+
;// CONCATENATED MODULE: ./packages/core/collections/array-view.ts
|
|
25834
27913
|
|
|
25835
|
-
const SEED_SIZE = 32;
|
|
25836
|
-
const ED25519_SECRET_KEY = bytes_Bytes.blobFromString("jam_val_key_ed25519");
|
|
25837
|
-
const BANDERSNATCH_SECRET_KEY = bytes_Bytes.blobFromString("jam_val_key_bandersnatch");
|
|
25838
|
-
/**
|
|
25839
|
-
* JIP-5: Secret key derivation
|
|
25840
|
-
*
|
|
25841
|
-
* https://github.com/polkadot-fellows/JIPs/blob/7048f79edf4f4eb8bfe6fb42e6bbf61900f44c65/JIP-5.md */
|
|
25842
|
-
/**
|
|
25843
|
-
* Deriving a 32-byte seed from a 32-bit unsigned integer
|
|
25844
|
-
* https://github.com/polkadot-fellows/JIPs/blob/7048f79edf4f4eb8bfe6fb42e6bbf61900f44c65/JIP-5.md#trivial-seeds
|
|
25845
|
-
*/
|
|
25846
|
-
function trivialSeed(s) {
|
|
25847
|
-
const s_le = u32AsLeBytes(s);
|
|
25848
|
-
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();
|
|
25849
|
-
}
|
|
25850
27914
|
/**
|
|
25851
|
-
*
|
|
25852
|
-
* https://github.com/polkadot-fellows/JIPs/blob/7048f79edf4f4eb8bfe6fb42e6bbf61900f44c65/JIP-5.md#derivation-method
|
|
25853
|
-
*/
|
|
25854
|
-
function deriveEd25519SecretKey(seed, allocator = new SimpleAllocator()) {
|
|
25855
|
-
return blake2b.hashBytes(BytesBlob.blobFromParts([ED25519_SECRET_KEY.raw, seed.raw]), allocator).asOpaque();
|
|
25856
|
-
}
|
|
25857
|
-
/**
|
|
25858
|
-
* Derives a Bandersnatch secret key from a seed.
|
|
25859
|
-
* https://github.com/polkadot-fellows/JIPs/blob/7048f79edf4f4eb8bfe6fb42e6bbf61900f44c65/JIP-5.md#derivation-method
|
|
25860
|
-
*/
|
|
25861
|
-
function deriveBandersnatchSecretKey(seed, allocator = new SimpleAllocator()) {
|
|
25862
|
-
return blake2b.hashBytes(BytesBlob.blobFromParts([BANDERSNATCH_SECRET_KEY.raw, seed.raw]), allocator).asOpaque();
|
|
25863
|
-
}
|
|
25864
|
-
/**
|
|
25865
|
-
* Derive Ed25519 public key from secret seed
|
|
25866
|
-
*/
|
|
25867
|
-
async function deriveEd25519PublicKey(seed) {
|
|
25868
|
-
return (await privateKey(seed)).pubKey;
|
|
25869
|
-
}
|
|
25870
|
-
/**
|
|
25871
|
-
* Derive Bandersnatch public key from secret seed
|
|
27915
|
+
* A utility class providing a readonly view over a portion of an array without copying it.
|
|
25872
27916
|
*/
|
|
25873
|
-
|
|
25874
|
-
|
|
27917
|
+
class ArrayView {
|
|
27918
|
+
start;
|
|
27919
|
+
end;
|
|
27920
|
+
source;
|
|
27921
|
+
length;
|
|
27922
|
+
constructor(source, start, end) {
|
|
27923
|
+
this.start = start;
|
|
27924
|
+
this.end = end;
|
|
27925
|
+
this.source = source;
|
|
27926
|
+
this.length = end - start;
|
|
27927
|
+
}
|
|
27928
|
+
static from(source, start = 0, end = source.length) {
|
|
27929
|
+
debug_check `
|
|
27930
|
+
${start >= 0 && end <= source.length && start <= end}
|
|
27931
|
+
Invalid start (${start})/end (${end}) for ArrayView
|
|
27932
|
+
`;
|
|
27933
|
+
return new ArrayView(source, start, end);
|
|
27934
|
+
}
|
|
27935
|
+
get(i) {
|
|
27936
|
+
debug_check `
|
|
27937
|
+
${i >= 0 && i < this.length}
|
|
27938
|
+
Index out of bounds: ${i} < ${this.length}
|
|
27939
|
+
`;
|
|
27940
|
+
return this.source[this.start + i];
|
|
27941
|
+
}
|
|
27942
|
+
subview(from, to = this.length) {
|
|
27943
|
+
return ArrayView.from(this.source, this.start + from, this.start + to);
|
|
27944
|
+
}
|
|
27945
|
+
toArray() {
|
|
27946
|
+
return this.source.slice(this.start, this.end);
|
|
27947
|
+
}
|
|
27948
|
+
*[Symbol.iterator]() {
|
|
27949
|
+
for (let i = this.start; i < this.end; i++) {
|
|
27950
|
+
yield this.source[i];
|
|
27951
|
+
}
|
|
27952
|
+
}
|
|
25875
27953
|
}
|
|
25876
27954
|
|
|
25877
|
-
;// CONCATENATED MODULE: ./packages/core/crypto/index.ts
|
|
25878
|
-
|
|
25879
|
-
|
|
25880
|
-
|
|
25881
|
-
|
|
25882
|
-
|
|
25883
|
-
|
|
25884
|
-
|
|
25885
|
-
|
|
25886
27955
|
;// CONCATENATED MODULE: ./packages/core/collections/hash-dictionary.ts
|
|
25887
27956
|
/** A map which uses hashes as keys. */
|
|
25888
27957
|
class hash_dictionary_HashDictionary {
|
|
@@ -26494,6 +28563,7 @@ class truncated_hash_dictionary_TruncatedHashDictionary {
|
|
|
26494
28563
|
|
|
26495
28564
|
|
|
26496
28565
|
|
|
28566
|
+
|
|
26497
28567
|
;// CONCATENATED MODULE: ./packages/jam/config/chain-spec.ts
|
|
26498
28568
|
|
|
26499
28569
|
|
|
@@ -29557,43 +31627,43 @@ var stateKeys;
|
|
|
29557
31627
|
}
|
|
29558
31628
|
stateKeys.serviceInfo = serviceInfo;
|
|
29559
31629
|
/** https://graypaper.fluffylabs.dev/#/1c979cb/3bba033bba03?v=0.7.1 */
|
|
29560
|
-
function serviceStorage(serviceId, key) {
|
|
31630
|
+
function serviceStorage(blake2b, serviceId, key) {
|
|
29561
31631
|
if (compatibility_Compatibility.isLessThan(compatibility_GpVersion.V0_6_7)) {
|
|
29562
31632
|
const out = bytes_Bytes.zero(hash_HASH_SIZE);
|
|
29563
31633
|
out.raw.set(numbers_u32AsLeBytes(numbers_tryAsU32(2 ** 32 - 1)), 0);
|
|
29564
31634
|
out.raw.set(key.raw.subarray(0, hash_HASH_SIZE - U32_BYTES), U32_BYTES);
|
|
29565
31635
|
return legacyServiceNested(serviceId, out);
|
|
29566
31636
|
}
|
|
29567
|
-
return serviceNested(serviceId, numbers_tryAsU32(2 ** 32 - 1), key);
|
|
31637
|
+
return serviceNested(blake2b, serviceId, numbers_tryAsU32(2 ** 32 - 1), key);
|
|
29568
31638
|
}
|
|
29569
31639
|
stateKeys.serviceStorage = serviceStorage;
|
|
29570
31640
|
/** https://graypaper.fluffylabs.dev/#/1c979cb/3bd7033bd703?v=0.7.1 */
|
|
29571
|
-
function servicePreimage(serviceId, hash) {
|
|
31641
|
+
function servicePreimage(blake2b, serviceId, hash) {
|
|
29572
31642
|
if (compatibility_Compatibility.isLessThan(compatibility_GpVersion.V0_6_7)) {
|
|
29573
31643
|
const out = bytes_Bytes.zero(hash_HASH_SIZE);
|
|
29574
31644
|
out.raw.set(numbers_u32AsLeBytes(numbers_tryAsU32(2 ** 32 - 2)), 0);
|
|
29575
31645
|
out.raw.set(hash.raw.subarray(1, hash_HASH_SIZE - U32_BYTES + 1), U32_BYTES);
|
|
29576
31646
|
return legacyServiceNested(serviceId, out);
|
|
29577
31647
|
}
|
|
29578
|
-
return serviceNested(serviceId, numbers_tryAsU32(2 ** 32 - 2), hash);
|
|
31648
|
+
return serviceNested(blake2b, serviceId, numbers_tryAsU32(2 ** 32 - 2), hash);
|
|
29579
31649
|
}
|
|
29580
31650
|
stateKeys.servicePreimage = servicePreimage;
|
|
29581
31651
|
/** https://graypaper.fluffylabs.dev/#/1c979cb/3b0a043b0a04?v=0.7.1 */
|
|
29582
|
-
function serviceLookupHistory(serviceId, hash, preimageLength) {
|
|
31652
|
+
function serviceLookupHistory(blake2b, serviceId, hash, preimageLength) {
|
|
29583
31653
|
if (compatibility_Compatibility.isLessThan(compatibility_GpVersion.V0_6_7)) {
|
|
29584
|
-
const doubleHash = hashBytes(hash);
|
|
31654
|
+
const doubleHash = blake2b.hashBytes(hash);
|
|
29585
31655
|
const out = bytes_Bytes.zero(hash_HASH_SIZE);
|
|
29586
31656
|
out.raw.set(numbers_u32AsLeBytes(preimageLength), 0);
|
|
29587
31657
|
out.raw.set(doubleHash.raw.subarray(2, hash_HASH_SIZE - U32_BYTES + 2), U32_BYTES);
|
|
29588
31658
|
return legacyServiceNested(serviceId, out);
|
|
29589
31659
|
}
|
|
29590
|
-
return serviceNested(serviceId, preimageLength, hash);
|
|
31660
|
+
return serviceNested(blake2b, serviceId, preimageLength, hash);
|
|
29591
31661
|
}
|
|
29592
31662
|
stateKeys.serviceLookupHistory = serviceLookupHistory;
|
|
29593
31663
|
/** https://graypaper.fluffylabs.dev/#/1c979cb/3b88003b8800?v=0.7.1 */
|
|
29594
|
-
function serviceNested(serviceId, numberPrefix, hash) {
|
|
31664
|
+
function serviceNested(blake2b, serviceId, numberPrefix, hash) {
|
|
29595
31665
|
const inputToHash = bytes_BytesBlob.blobFromParts(numbers_u32AsLeBytes(numberPrefix), hash.raw);
|
|
29596
|
-
const newHash = hashBytes(inputToHash).raw.subarray(0, 28);
|
|
31666
|
+
const newHash = blake2b.hashBytes(inputToHash).raw.subarray(0, 28);
|
|
29597
31667
|
const key = bytes_Bytes.zero(hash_HASH_SIZE);
|
|
29598
31668
|
let i = 0;
|
|
29599
31669
|
for (const byte of numbers_u32AsLeBytes(serviceId)) {
|
|
@@ -29662,13 +31732,6 @@ function accumulationOutputComparator(a, b) {
|
|
|
29662
31732
|
|
|
29663
31733
|
|
|
29664
31734
|
|
|
29665
|
-
|
|
29666
|
-
const codecWithHash = (val) => descriptor_Descriptor.withView(val.name, val.sizeHint, (e, elem) => val.encode(e, elem.data), (d) => {
|
|
29667
|
-
const decoder2 = d.clone();
|
|
29668
|
-
const encoded = val.skipEncoded(decoder2);
|
|
29669
|
-
const hash = hashBytes(encoded);
|
|
29670
|
-
return new WithHash(hash.asOpaque(), val.decode(d));
|
|
29671
|
-
}, val.skip, val.View);
|
|
29672
31735
|
/**
|
|
29673
31736
|
* Assignment of particular work report to a core.
|
|
29674
31737
|
*
|
|
@@ -29681,7 +31744,7 @@ class AvailabilityAssignment extends WithDebug {
|
|
|
29681
31744
|
workReport;
|
|
29682
31745
|
timeout;
|
|
29683
31746
|
static Codec = descriptors_codec.Class(AvailabilityAssignment, {
|
|
29684
|
-
workReport:
|
|
31747
|
+
workReport: WorkReport.Codec,
|
|
29685
31748
|
timeout: descriptors_codec.u32.asOpaque(),
|
|
29686
31749
|
});
|
|
29687
31750
|
static create({ workReport, timeout }) {
|
|
@@ -29741,6 +31804,10 @@ class DisputesRecords {
|
|
|
29741
31804
|
static create({ goodSet, badSet, wonkySet, punishSet }) {
|
|
29742
31805
|
return new DisputesRecords(goodSet, badSet, wonkySet, punishSet);
|
|
29743
31806
|
}
|
|
31807
|
+
goodSetDict;
|
|
31808
|
+
badSetDict;
|
|
31809
|
+
wonkySetDict;
|
|
31810
|
+
punishSetDict;
|
|
29744
31811
|
constructor(
|
|
29745
31812
|
/** `goodSet`: all work-reports hashes which were judged to be correct */
|
|
29746
31813
|
goodSet,
|
|
@@ -29754,6 +31821,18 @@ class DisputesRecords {
|
|
|
29754
31821
|
this.badSet = badSet;
|
|
29755
31822
|
this.wonkySet = wonkySet;
|
|
29756
31823
|
this.punishSet = punishSet;
|
|
31824
|
+
this.goodSetDict = HashSet.from(goodSet.array);
|
|
31825
|
+
this.badSetDict = HashSet.from(badSet.array);
|
|
31826
|
+
this.wonkySetDict = HashSet.from(wonkySet.array);
|
|
31827
|
+
this.punishSetDict = HashSet.from(punishSet.array);
|
|
31828
|
+
}
|
|
31829
|
+
asDictionaries() {
|
|
31830
|
+
return {
|
|
31831
|
+
goodSet: this.goodSetDict,
|
|
31832
|
+
badSet: this.badSetDict,
|
|
31833
|
+
wonkySet: this.wonkySetDict,
|
|
31834
|
+
punishSet: this.punishSetDict,
|
|
31835
|
+
};
|
|
29757
31836
|
}
|
|
29758
31837
|
static fromSortedArrays({ goodSet, badSet, wonkySet, punishSet, }) {
|
|
29759
31838
|
return new DisputesRecords(sorted_set_SortedSet.fromSortedArray(hashComparator, goodSet), sorted_set_SortedSet.fromSortedArray(hashComparator, badSet), sorted_set_SortedSet.fromSortedArray(hashComparator, wonkySet), sorted_set_SortedSet.fromSortedArray(hashComparator, punishSet));
|
|
@@ -30187,6 +32266,23 @@ const zeroSizeHint = {
|
|
|
30187
32266
|
};
|
|
30188
32267
|
/** 0-byte read, return given default value */
|
|
30189
32268
|
const ignoreValueWithDefault = (defaultValue) => Descriptor.new("ignoreValue", zeroSizeHint, (_e, _v) => { }, (_d) => defaultValue, (_s) => { });
|
|
32269
|
+
/** Encode and decode object with leading version number. */
|
|
32270
|
+
const codecWithVersion = (val) => descriptor_Descriptor.new("withVersion", {
|
|
32271
|
+
bytes: val.sizeHint.bytes + 8,
|
|
32272
|
+
isExact: false,
|
|
32273
|
+
}, (e, v) => {
|
|
32274
|
+
e.varU64(0n);
|
|
32275
|
+
val.encode(e, v);
|
|
32276
|
+
}, (d) => {
|
|
32277
|
+
const version = d.varU64();
|
|
32278
|
+
if (version !== 0n) {
|
|
32279
|
+
throw new Error("Non-zero version is not supported!");
|
|
32280
|
+
}
|
|
32281
|
+
return val.decode(d);
|
|
32282
|
+
}, (s) => {
|
|
32283
|
+
s.varU64();
|
|
32284
|
+
val.skip(s);
|
|
32285
|
+
});
|
|
30190
32286
|
/**
|
|
30191
32287
|
* Service account details.
|
|
30192
32288
|
*
|
|
@@ -31263,6 +33359,7 @@ class NotYetAccumulatedReport extends WithDebug {
|
|
|
31263
33359
|
|
|
31264
33360
|
|
|
31265
33361
|
|
|
33362
|
+
|
|
31266
33363
|
/** Serialization for particular state entries. */
|
|
31267
33364
|
var serialize_serialize;
|
|
31268
33365
|
(function (serialize) {
|
|
@@ -31377,21 +33474,23 @@ var serialize_serialize;
|
|
|
31377
33474
|
/** C(255, s): https://graypaper.fluffylabs.dev/#/85129da/383103383103?v=0.6.3 */
|
|
31378
33475
|
serialize.serviceData = (serviceId) => ({
|
|
31379
33476
|
key: stateKeys.serviceInfo(serviceId),
|
|
31380
|
-
Codec:
|
|
33477
|
+
Codec: compatibility_Compatibility.isGreaterOrEqual(compatibility_GpVersion.V0_7_1)
|
|
33478
|
+
? codecWithVersion(ServiceAccountInfo.Codec)
|
|
33479
|
+
: ServiceAccountInfo.Codec,
|
|
31381
33480
|
});
|
|
31382
33481
|
/** https://graypaper.fluffylabs.dev/#/85129da/384803384803?v=0.6.3 */
|
|
31383
|
-
serialize.serviceStorage = (serviceId, key) => ({
|
|
31384
|
-
key: stateKeys.serviceStorage(serviceId, key),
|
|
33482
|
+
serialize.serviceStorage = (blake2b, serviceId, key) => ({
|
|
33483
|
+
key: stateKeys.serviceStorage(blake2b, serviceId, key),
|
|
31385
33484
|
Codec: dumpCodec,
|
|
31386
33485
|
});
|
|
31387
33486
|
/** https://graypaper.fluffylabs.dev/#/85129da/385b03385b03?v=0.6.3 */
|
|
31388
|
-
serialize.servicePreimages = (serviceId, hash) => ({
|
|
31389
|
-
key: stateKeys.servicePreimage(serviceId, hash),
|
|
33487
|
+
serialize.servicePreimages = (blake2b, serviceId, hash) => ({
|
|
33488
|
+
key: stateKeys.servicePreimage(blake2b, serviceId, hash),
|
|
31390
33489
|
Codec: dumpCodec,
|
|
31391
33490
|
});
|
|
31392
33491
|
/** https://graypaper.fluffylabs.dev/#/85129da/387603387603?v=0.6.3 */
|
|
31393
|
-
serialize.serviceLookupHistory = (serviceId, hash, len) => ({
|
|
31394
|
-
key: stateKeys.serviceLookupHistory(serviceId, hash, len),
|
|
33492
|
+
serialize.serviceLookupHistory = (blake2b, serviceId, hash, len) => ({
|
|
33493
|
+
key: stateKeys.serviceLookupHistory(blake2b, serviceId, hash, len),
|
|
31395
33494
|
Codec: readonlyArray(descriptors_codec.sequenceVarLen(descriptors_codec.u32)),
|
|
31396
33495
|
});
|
|
31397
33496
|
})(serialize_serialize || (serialize_serialize = {}));
|
|
@@ -31412,7 +33511,6 @@ const dumpCodec = descriptor_Descriptor.new("Dump", { bytes: 64, isExact: false
|
|
|
31412
33511
|
|
|
31413
33512
|
|
|
31414
33513
|
|
|
31415
|
-
|
|
31416
33514
|
/**
|
|
31417
33515
|
* State object which reads it's entries from some backend.
|
|
31418
33516
|
*
|
|
@@ -31423,20 +33521,22 @@ const dumpCodec = descriptor_Descriptor.new("Dump", { bytes: 64, isExact: false
|
|
|
31423
33521
|
*/
|
|
31424
33522
|
class serialized_state_SerializedState {
|
|
31425
33523
|
spec;
|
|
33524
|
+
blake2b;
|
|
31426
33525
|
backend;
|
|
31427
33526
|
_recentServiceIds;
|
|
31428
33527
|
/** Create a state-like object from collection of serialized entries. */
|
|
31429
|
-
static fromStateEntries(spec, state, recentServices = []) {
|
|
31430
|
-
return new serialized_state_SerializedState(spec, state, recentServices);
|
|
33528
|
+
static fromStateEntries(spec, blake2b, state, recentServices = []) {
|
|
33529
|
+
return new serialized_state_SerializedState(spec, blake2b, state, recentServices);
|
|
31431
33530
|
}
|
|
31432
33531
|
/** Create a state-like object backed by some DB. */
|
|
31433
|
-
static new(spec, db, recentServices = []) {
|
|
31434
|
-
return new serialized_state_SerializedState(spec, db, recentServices);
|
|
33532
|
+
static new(spec, blake2b, db, recentServices = []) {
|
|
33533
|
+
return new serialized_state_SerializedState(spec, blake2b, db, recentServices);
|
|
31435
33534
|
}
|
|
31436
|
-
constructor(spec, backend,
|
|
33535
|
+
constructor(spec, blake2b, backend,
|
|
31437
33536
|
/** Best-effort list of recently active services. */
|
|
31438
33537
|
_recentServiceIds) {
|
|
31439
33538
|
this.spec = spec;
|
|
33539
|
+
this.blake2b = blake2b;
|
|
31440
33540
|
this.backend = backend;
|
|
31441
33541
|
this._recentServiceIds = _recentServiceIds;
|
|
31442
33542
|
}
|
|
@@ -31460,7 +33560,7 @@ class serialized_state_SerializedState {
|
|
|
31460
33560
|
if (!this._recentServiceIds.includes(id)) {
|
|
31461
33561
|
this._recentServiceIds.push(id);
|
|
31462
33562
|
}
|
|
31463
|
-
return new SerializedService(id, serviceData, (key) => this.retrieveOptional(key));
|
|
33563
|
+
return new SerializedService(this.blake2b, id, serviceData, (key) => this.retrieveOptional(key));
|
|
31464
33564
|
}
|
|
31465
33565
|
retrieve({ key, Codec }, description) {
|
|
31466
33566
|
const bytes = this.backend.get(key);
|
|
@@ -31536,12 +33636,14 @@ class serialized_state_SerializedState {
|
|
|
31536
33636
|
}
|
|
31537
33637
|
/** Service data representation on a serialized state. */
|
|
31538
33638
|
class SerializedService {
|
|
33639
|
+
blake2b;
|
|
31539
33640
|
serviceId;
|
|
31540
33641
|
accountInfo;
|
|
31541
33642
|
retrieveOptional;
|
|
31542
|
-
constructor(
|
|
33643
|
+
constructor(blake2b,
|
|
31543
33644
|
/** Service id */
|
|
31544
33645
|
serviceId, accountInfo, retrieveOptional) {
|
|
33646
|
+
this.blake2b = blake2b;
|
|
31545
33647
|
this.serviceId = serviceId;
|
|
31546
33648
|
this.accountInfo = accountInfo;
|
|
31547
33649
|
this.retrieveOptional = retrieveOptional;
|
|
@@ -31554,13 +33656,13 @@ class SerializedService {
|
|
|
31554
33656
|
getStorage(rawKey) {
|
|
31555
33657
|
if (Compatibility.isLessThan(GpVersion.V0_6_7)) {
|
|
31556
33658
|
const SERVICE_ID_BYTES = 4;
|
|
31557
|
-
const serviceIdAndKey =
|
|
33659
|
+
const serviceIdAndKey = safeAllocUint8Array(SERVICE_ID_BYTES + rawKey.length);
|
|
31558
33660
|
serviceIdAndKey.set(u32AsLeBytes(this.serviceId));
|
|
31559
33661
|
serviceIdAndKey.set(rawKey.raw, SERVICE_ID_BYTES);
|
|
31560
|
-
const key = asOpaqueType(BytesBlob.blobFrom(blake2b.hashBytes(serviceIdAndKey).raw));
|
|
31561
|
-
return this.retrieveOptional(serialize.serviceStorage(this.serviceId, key)) ?? null;
|
|
33662
|
+
const key = asOpaqueType(BytesBlob.blobFrom(this.blake2b.hashBytes(serviceIdAndKey).raw));
|
|
33663
|
+
return this.retrieveOptional(serialize.serviceStorage(this.blake2b, this.serviceId, key)) ?? null;
|
|
31562
33664
|
}
|
|
31563
|
-
return this.retrieveOptional(serialize.serviceStorage(this.serviceId, rawKey)) ?? null;
|
|
33665
|
+
return this.retrieveOptional(serialize.serviceStorage(this.blake2b, this.serviceId, rawKey)) ?? null;
|
|
31564
33666
|
}
|
|
31565
33667
|
/**
|
|
31566
33668
|
* Check if preimage is present in the DB.
|
|
@@ -31569,15 +33671,15 @@ class SerializedService {
|
|
|
31569
33671
|
*/
|
|
31570
33672
|
hasPreimage(hash) {
|
|
31571
33673
|
// TODO [ToDr] consider optimizing to avoid fetching the whole data.
|
|
31572
|
-
return this.retrieveOptional(serialize.servicePreimages(this.serviceId, hash)) !== undefined;
|
|
33674
|
+
return this.retrieveOptional(serialize.servicePreimages(this.blake2b, this.serviceId, hash)) !== undefined;
|
|
31573
33675
|
}
|
|
31574
33676
|
/** Retrieve preimage from the DB. */
|
|
31575
33677
|
getPreimage(hash) {
|
|
31576
|
-
return this.retrieveOptional(serialize.servicePreimages(this.serviceId, hash)) ?? null;
|
|
33678
|
+
return this.retrieveOptional(serialize.servicePreimages(this.blake2b, this.serviceId, hash)) ?? null;
|
|
31577
33679
|
}
|
|
31578
33680
|
/** Retrieve preimage lookup history. */
|
|
31579
33681
|
getLookupHistory(hash, len) {
|
|
31580
|
-
const rawSlots = this.retrieveOptional(serialize.serviceLookupHistory(this.serviceId, hash, len));
|
|
33682
|
+
const rawSlots = this.retrieveOptional(serialize.serviceLookupHistory(this.blake2b, this.serviceId, hash, len));
|
|
31581
33683
|
if (rawSlots === undefined) {
|
|
31582
33684
|
return null;
|
|
31583
33685
|
}
|
|
@@ -31645,7 +33747,7 @@ class nodes_TrieNode {
|
|
|
31645
33747
|
raw;
|
|
31646
33748
|
constructor(
|
|
31647
33749
|
/** Exactly 512 bits / 64 bytes */
|
|
31648
|
-
raw =
|
|
33750
|
+
raw = safe_alloc_uint8array_safeAllocUint8Array(nodes_TRIE_NODE_BYTES)) {
|
|
31649
33751
|
this.raw = raw;
|
|
31650
33752
|
}
|
|
31651
33753
|
/** Returns the type of the node */
|
|
@@ -31863,7 +33965,7 @@ class WriteableNodesDb extends NodesDb {
|
|
|
31863
33965
|
|
|
31864
33966
|
/** Compare two trie `LeafNode`s only by their key. */
|
|
31865
33967
|
const trie_leafComparator = (x, y) => x.getKey().compare(y.getKey());
|
|
31866
|
-
const
|
|
33968
|
+
const trie_zero = bytes_Bytes.zero(hash_HASH_SIZE).asOpaque();
|
|
31867
33969
|
class trie_InMemoryTrie {
|
|
31868
33970
|
nodes;
|
|
31869
33971
|
root;
|
|
@@ -31876,7 +33978,7 @@ class trie_InMemoryTrie {
|
|
|
31876
33978
|
const sorted = leaves.slice();
|
|
31877
33979
|
const firstSorted = sorted.shift();
|
|
31878
33980
|
if (firstSorted === undefined) {
|
|
31879
|
-
return
|
|
33981
|
+
return trie_zero;
|
|
31880
33982
|
}
|
|
31881
33983
|
const nodes = [
|
|
31882
33984
|
{
|
|
@@ -31912,7 +34014,7 @@ class trie_InMemoryTrie {
|
|
|
31912
34014
|
const startDepth = isLastNode ? prevDepth : prevDepth + 1;
|
|
31913
34015
|
for (let i = startDepth; i <= currentDepth; i++) {
|
|
31914
34016
|
if (getBit(key, i) === false) {
|
|
31915
|
-
stack.push(
|
|
34017
|
+
stack.push(trie_zero);
|
|
31916
34018
|
}
|
|
31917
34019
|
}
|
|
31918
34020
|
// now let's push the hash of the current leaf
|
|
@@ -31928,16 +34030,16 @@ class trie_InMemoryTrie {
|
|
|
31928
34030
|
const endDepth = isLastNode ? currentDepth - 1 : currentDepth;
|
|
31929
34031
|
for (let i = prevDepth; i > endDepth; i--) {
|
|
31930
34032
|
if (getBit(key, i) === true) {
|
|
31931
|
-
stack.push(
|
|
34033
|
+
stack.push(trie_zero);
|
|
31932
34034
|
}
|
|
31933
|
-
const current = stack.pop() ??
|
|
31934
|
-
const next = stack.pop() ??
|
|
34035
|
+
const current = stack.pop() ?? trie_zero;
|
|
34036
|
+
const next = stack.pop() ?? trie_zero;
|
|
31935
34037
|
const branchNode = BranchNode.fromSubNodes(current, next);
|
|
31936
34038
|
const hash = hasher.hashConcat(branchNode.node.raw);
|
|
31937
34039
|
stack.push(hash);
|
|
31938
34040
|
}
|
|
31939
34041
|
}
|
|
31940
|
-
return stack.pop() ??
|
|
34042
|
+
return stack.pop() ?? trie_zero;
|
|
31941
34043
|
}
|
|
31942
34044
|
/**
|
|
31943
34045
|
* Construct a `LeafNode` from given `key` and `value`.
|
|
@@ -32070,7 +34172,7 @@ function findNodeToReplace(root, nodes, key) {
|
|
|
32070
34172
|
traversedPath.branchingHistory.push([branch, currentNodeHash, currBit]);
|
|
32071
34173
|
const nextNode = nodes.get(nextHash);
|
|
32072
34174
|
if (nextNode === null) {
|
|
32073
|
-
if (nextHash.isEqualTo(
|
|
34175
|
+
if (nextHash.isEqualTo(trie_zero)) {
|
|
32074
34176
|
return traversedPath;
|
|
32075
34177
|
}
|
|
32076
34178
|
throw new Error(`Missing trie node '${nextHash}' with key prefix: ${key}[0..${traversedPath.bitIndex}]`);
|
|
@@ -32221,12 +34323,13 @@ const bitLookup = [
|
|
|
32221
34323
|
;// CONCATENATED MODULE: ./packages/core/trie/hasher.ts
|
|
32222
34324
|
|
|
32223
34325
|
|
|
32224
|
-
|
|
32225
|
-
|
|
32226
|
-
|
|
32227
|
-
|
|
32228
|
-
|
|
32229
|
-
};
|
|
34326
|
+
function hasher_getBlake2bTrieHasher(hasher) {
|
|
34327
|
+
return {
|
|
34328
|
+
hashConcat(n, rest = []) {
|
|
34329
|
+
return hasher.hashBlobs([n, ...rest]);
|
|
34330
|
+
},
|
|
34331
|
+
};
|
|
34332
|
+
}
|
|
32230
34333
|
function getKeccakTrieHasher(hasher) {
|
|
32231
34334
|
return {
|
|
32232
34335
|
hashConcat(n, rest = []) {
|
|
@@ -32252,14 +34355,14 @@ var serialize_state_update_StateEntryUpdateAction;
|
|
|
32252
34355
|
})(serialize_state_update_StateEntryUpdateAction || (serialize_state_update_StateEntryUpdateAction = {}));
|
|
32253
34356
|
const EMPTY_BLOB = bytes_BytesBlob.empty();
|
|
32254
34357
|
/** Serialize given state update into a series of key-value pairs. */
|
|
32255
|
-
function* serialize_state_update_serializeStateUpdate(spec, update) {
|
|
34358
|
+
function* serialize_state_update_serializeStateUpdate(spec, blake2b, update) {
|
|
32256
34359
|
// first let's serialize all of the simple entries (if present!)
|
|
32257
34360
|
yield* serializeBasicKeys(spec, update);
|
|
32258
34361
|
const encode = (codec, val) => Encoder.encodeObject(codec, val, spec);
|
|
32259
34362
|
// then let's proceed with service updates
|
|
32260
|
-
yield* serializeServiceUpdates(update.servicesUpdates, encode);
|
|
32261
|
-
yield* serializePreimages(update.preimages, encode);
|
|
32262
|
-
yield* serializeStorage(update.storage);
|
|
34363
|
+
yield* serializeServiceUpdates(update.servicesUpdates, encode, blake2b);
|
|
34364
|
+
yield* serializePreimages(update.preimages, encode, blake2b);
|
|
34365
|
+
yield* serializeStorage(update.storage, blake2b);
|
|
32263
34366
|
yield* serializeRemovedServices(update.servicesRemoved);
|
|
32264
34367
|
}
|
|
32265
34368
|
function* serializeRemovedServices(servicesRemoved) {
|
|
@@ -32269,18 +34372,18 @@ function* serializeRemovedServices(servicesRemoved) {
|
|
|
32269
34372
|
yield [serialize_state_update_StateEntryUpdateAction.Remove, codec.key, EMPTY_BLOB];
|
|
32270
34373
|
}
|
|
32271
34374
|
}
|
|
32272
|
-
function* serializeStorage(storage) {
|
|
34375
|
+
function* serializeStorage(storage, blake2b) {
|
|
32273
34376
|
for (const { action, serviceId } of storage ?? []) {
|
|
32274
34377
|
switch (action.kind) {
|
|
32275
34378
|
case UpdateStorageKind.Set: {
|
|
32276
34379
|
const key = action.storage.key;
|
|
32277
|
-
const codec = serialize.serviceStorage(serviceId, key);
|
|
34380
|
+
const codec = serialize.serviceStorage(blake2b, serviceId, key);
|
|
32278
34381
|
yield [serialize_state_update_StateEntryUpdateAction.Insert, codec.key, action.storage.value];
|
|
32279
34382
|
break;
|
|
32280
34383
|
}
|
|
32281
34384
|
case UpdateStorageKind.Remove: {
|
|
32282
34385
|
const key = action.key;
|
|
32283
|
-
const codec = serialize.serviceStorage(serviceId, key);
|
|
34386
|
+
const codec = serialize.serviceStorage(blake2b, serviceId, key);
|
|
32284
34387
|
yield [serialize_state_update_StateEntryUpdateAction.Remove, codec.key, EMPTY_BLOB];
|
|
32285
34388
|
break;
|
|
32286
34389
|
}
|
|
@@ -32289,15 +34392,15 @@ function* serializeStorage(storage) {
|
|
|
32289
34392
|
}
|
|
32290
34393
|
}
|
|
32291
34394
|
}
|
|
32292
|
-
function* serializePreimages(preimages, encode) {
|
|
34395
|
+
function* serializePreimages(preimages, encode, blake2b) {
|
|
32293
34396
|
for (const { action, serviceId } of preimages ?? []) {
|
|
32294
34397
|
switch (action.kind) {
|
|
32295
34398
|
case UpdatePreimageKind.Provide: {
|
|
32296
34399
|
const { hash, blob } = action.preimage;
|
|
32297
|
-
const codec = serialize.servicePreimages(serviceId, hash);
|
|
34400
|
+
const codec = serialize.servicePreimages(blake2b, serviceId, hash);
|
|
32298
34401
|
yield [serialize_state_update_StateEntryUpdateAction.Insert, codec.key, blob];
|
|
32299
34402
|
if (action.slot !== null) {
|
|
32300
|
-
const codec2 = serialize.serviceLookupHistory(serviceId, hash, tryAsU32(blob.length));
|
|
34403
|
+
const codec2 = serialize.serviceLookupHistory(blake2b, serviceId, hash, tryAsU32(blob.length));
|
|
32301
34404
|
yield [
|
|
32302
34405
|
serialize_state_update_StateEntryUpdateAction.Insert,
|
|
32303
34406
|
codec2.key,
|
|
@@ -32308,15 +34411,15 @@ function* serializePreimages(preimages, encode) {
|
|
|
32308
34411
|
}
|
|
32309
34412
|
case UpdatePreimageKind.UpdateOrAdd: {
|
|
32310
34413
|
const { hash, length, slots } = action.item;
|
|
32311
|
-
const codec = serialize.serviceLookupHistory(serviceId, hash, length);
|
|
34414
|
+
const codec = serialize.serviceLookupHistory(blake2b, serviceId, hash, length);
|
|
32312
34415
|
yield [serialize_state_update_StateEntryUpdateAction.Insert, codec.key, encode(codec.Codec, slots)];
|
|
32313
34416
|
break;
|
|
32314
34417
|
}
|
|
32315
34418
|
case UpdatePreimageKind.Remove: {
|
|
32316
34419
|
const { hash, length } = action;
|
|
32317
|
-
const codec = serialize.servicePreimages(serviceId, hash);
|
|
34420
|
+
const codec = serialize.servicePreimages(blake2b, serviceId, hash);
|
|
32318
34421
|
yield [serialize_state_update_StateEntryUpdateAction.Remove, codec.key, EMPTY_BLOB];
|
|
32319
|
-
const codec2 = serialize.serviceLookupHistory(serviceId, hash, length);
|
|
34422
|
+
const codec2 = serialize.serviceLookupHistory(blake2b, serviceId, hash, length);
|
|
32320
34423
|
yield [serialize_state_update_StateEntryUpdateAction.Remove, codec2.key, EMPTY_BLOB];
|
|
32321
34424
|
break;
|
|
32322
34425
|
}
|
|
@@ -32325,7 +34428,7 @@ function* serializePreimages(preimages, encode) {
|
|
|
32325
34428
|
}
|
|
32326
34429
|
}
|
|
32327
34430
|
}
|
|
32328
|
-
function* serializeServiceUpdates(servicesUpdates, encode) {
|
|
34431
|
+
function* serializeServiceUpdates(servicesUpdates, encode, blake2b) {
|
|
32329
34432
|
for (const { action, serviceId } of servicesUpdates ?? []) {
|
|
32330
34433
|
// new service being created or updated
|
|
32331
34434
|
const codec = serialize.serviceData(serviceId);
|
|
@@ -32333,7 +34436,7 @@ function* serializeServiceUpdates(servicesUpdates, encode) {
|
|
|
32333
34436
|
// additional lookup history update
|
|
32334
34437
|
if (action.kind === UpdateServiceKind.Create && action.lookupHistory !== null) {
|
|
32335
34438
|
const { lookupHistory } = action;
|
|
32336
|
-
const codec2 = serialize.serviceLookupHistory(serviceId, lookupHistory.hash, lookupHistory.length);
|
|
34439
|
+
const codec2 = serialize.serviceLookupHistory(blake2b, serviceId, lookupHistory.hash, lookupHistory.length);
|
|
32337
34440
|
yield [serialize_state_update_StateEntryUpdateAction.Insert, codec2.key, encode(codec2.Codec, lookupHistory.slots)];
|
|
32338
34441
|
}
|
|
32339
34442
|
}
|
|
@@ -32437,8 +34540,8 @@ class state_entries_StateEntries {
|
|
|
32437
34540
|
},
|
|
32438
34541
|
}, (e, v) => stateEntriesSequenceCodec.encode(e, Array.from(v.entries)), (d) => state_entries_StateEntries.fromEntriesUnsafe(stateEntriesSequenceCodec.decode(d)), (s) => stateEntriesSequenceCodec.skip(s));
|
|
32439
34542
|
/** Turn in-memory state into it's serialized form. */
|
|
32440
|
-
static serializeInMemory(spec, state) {
|
|
32441
|
-
return new state_entries_StateEntries(convertInMemoryStateToDictionary(spec, state));
|
|
34543
|
+
static serializeInMemory(spec, blake2b, state) {
|
|
34544
|
+
return new state_entries_StateEntries(convertInMemoryStateToDictionary(spec, blake2b, state));
|
|
32442
34545
|
}
|
|
32443
34546
|
/**
|
|
32444
34547
|
* Wrap a collection of truncated state entries and treat it as state.
|
|
@@ -32487,16 +34590,17 @@ class state_entries_StateEntries {
|
|
|
32487
34590
|
}
|
|
32488
34591
|
}
|
|
32489
34592
|
/** https://graypaper.fluffylabs.dev/#/68eaa1f/391600391600?v=0.6.4 */
|
|
32490
|
-
getRootHash() {
|
|
34593
|
+
getRootHash(blake2b) {
|
|
34594
|
+
const blake2bTrieHasher = hasher_getBlake2bTrieHasher(blake2b);
|
|
32491
34595
|
const leaves = sorted_set_SortedSet.fromArray(trie_leafComparator);
|
|
32492
34596
|
for (const [key, value] of this) {
|
|
32493
|
-
leaves.insert(trie_InMemoryTrie.constructLeaf(
|
|
34597
|
+
leaves.insert(trie_InMemoryTrie.constructLeaf(blake2bTrieHasher, key.asOpaque(), value));
|
|
32494
34598
|
}
|
|
32495
|
-
return trie_InMemoryTrie.computeStateRoot(
|
|
34599
|
+
return trie_InMemoryTrie.computeStateRoot(blake2bTrieHasher, leaves).asOpaque();
|
|
32496
34600
|
}
|
|
32497
34601
|
}
|
|
32498
34602
|
/** https://graypaper.fluffylabs.dev/#/68eaa1f/38a50038a500?v=0.6.4 */
|
|
32499
|
-
function convertInMemoryStateToDictionary(spec, state) {
|
|
34603
|
+
function convertInMemoryStateToDictionary(spec, blake2b, state) {
|
|
32500
34604
|
const serialized = truncated_hash_dictionary_TruncatedHashDictionary.fromEntries([]);
|
|
32501
34605
|
function doSerialize(codec) {
|
|
32502
34606
|
serialized.set(codec.key, encoder_Encoder.encodeObject(codec.Codec, codec.extract(state), spec));
|
|
@@ -32524,18 +34628,18 @@ function convertInMemoryStateToDictionary(spec, state) {
|
|
|
32524
34628
|
serialized.set(key, encoder_Encoder.encodeObject(Codec, service.getInfo()));
|
|
32525
34629
|
// preimages
|
|
32526
34630
|
for (const preimage of service.data.preimages.values()) {
|
|
32527
|
-
const { key, Codec } = serialize_serialize.servicePreimages(serviceId, preimage.hash);
|
|
34631
|
+
const { key, Codec } = serialize_serialize.servicePreimages(blake2b, serviceId, preimage.hash);
|
|
32528
34632
|
serialized.set(key, encoder_Encoder.encodeObject(Codec, preimage.blob));
|
|
32529
34633
|
}
|
|
32530
34634
|
// storage
|
|
32531
34635
|
for (const storage of service.data.storage.values()) {
|
|
32532
|
-
const { key, Codec } = serialize_serialize.serviceStorage(serviceId, storage.key);
|
|
34636
|
+
const { key, Codec } = serialize_serialize.serviceStorage(blake2b, serviceId, storage.key);
|
|
32533
34637
|
serialized.set(key, encoder_Encoder.encodeObject(Codec, storage.value));
|
|
32534
34638
|
}
|
|
32535
34639
|
// lookup history
|
|
32536
34640
|
for (const lookupHistoryList of service.data.lookupHistory.values()) {
|
|
32537
34641
|
for (const lookupHistory of lookupHistoryList) {
|
|
32538
|
-
const { key, Codec } = serialize_serialize.serviceLookupHistory(serviceId, lookupHistory.hash, lookupHistory.length);
|
|
34642
|
+
const { key, Codec } = serialize_serialize.serviceLookupHistory(blake2b, serviceId, lookupHistory.hash, lookupHistory.length);
|
|
32539
34643
|
serialized.set(key, encoder_Encoder.encodeObject(Codec, lookupHistory.slots.slice()));
|
|
32540
34644
|
}
|
|
32541
34645
|
}
|
|
@@ -32546,9 +34650,9 @@ function convertInMemoryStateToDictionary(spec, state) {
|
|
|
32546
34650
|
;// CONCATENATED MODULE: ./packages/jam/state-merkleization/loader.ts
|
|
32547
34651
|
|
|
32548
34652
|
|
|
32549
|
-
function loadState(spec, entries) {
|
|
34653
|
+
function loadState(spec, blake2b, entries) {
|
|
32550
34654
|
const stateEntries = StateEntries.fromEntriesUnsafe(entries);
|
|
32551
|
-
return SerializedState.fromStateEntries(spec, stateEntries);
|
|
34655
|
+
return SerializedState.fromStateEntries(spec, blake2b, stateEntries);
|
|
32552
34656
|
}
|
|
32553
34657
|
|
|
32554
34658
|
;// CONCATENATED MODULE: ./packages/jam/state-merkleization/index.ts
|
|
@@ -32655,7 +34759,8 @@ class leaf_db_LeafDb {
|
|
|
32655
34759
|
}
|
|
32656
34760
|
assertNever(val);
|
|
32657
34761
|
}
|
|
32658
|
-
getStateRoot() {
|
|
34762
|
+
getStateRoot(blake2b) {
|
|
34763
|
+
const blake2bTrieHasher = getBlake2bTrieHasher(blake2b);
|
|
32659
34764
|
return InMemoryTrie.computeStateRoot(blake2bTrieHasher, this.leaves).asOpaque();
|
|
32660
34765
|
}
|
|
32661
34766
|
intoStateEntries() {
|
|
@@ -32837,6 +34942,7 @@ const in_memory_state_codec_inMemoryStateCodec = descriptors_codec.Class(InMemor
|
|
|
32837
34942
|
|
|
32838
34943
|
|
|
32839
34944
|
|
|
34945
|
+
|
|
32840
34946
|
/** A potential error that occured during state update. */
|
|
32841
34947
|
var states_StateUpdateError;
|
|
32842
34948
|
(function (StateUpdateError) {
|
|
@@ -32866,7 +34972,8 @@ class InMemoryStates {
|
|
|
32866
34972
|
}
|
|
32867
34973
|
}
|
|
32868
34974
|
async getStateRoot(state) {
|
|
32869
|
-
|
|
34975
|
+
const blake2b = await Blake2b.createHasher();
|
|
34976
|
+
return StateEntries.serializeInMemory(this.spec, blake2b, state).getRootHash(blake2b);
|
|
32870
34977
|
}
|
|
32871
34978
|
/** Insert a full state into the database. */
|
|
32872
34979
|
async insertState(headerHash, state) {
|
|
@@ -32948,11 +35055,13 @@ const states_logger = Logger.new(import.meta.filename, "db");
|
|
|
32948
35055
|
*/
|
|
32949
35056
|
class LmdbStates {
|
|
32950
35057
|
spec;
|
|
35058
|
+
blake2b;
|
|
32951
35059
|
root;
|
|
32952
35060
|
states;
|
|
32953
35061
|
values;
|
|
32954
|
-
constructor(spec, root) {
|
|
35062
|
+
constructor(spec, blake2b, root) {
|
|
32955
35063
|
this.spec = spec;
|
|
35064
|
+
this.blake2b = blake2b;
|
|
32956
35065
|
this.root = root;
|
|
32957
35066
|
this.states = this.root.subDb("states");
|
|
32958
35067
|
this.values = this.root.subDb("values");
|
|
@@ -32966,6 +35075,7 @@ class LmdbStates {
|
|
|
32966
35075
|
return await this.updateAndCommit(headerHash, SortedSet.fromArray(leafComparator, []), Array.from(serializedState, (x) => [StateEntryUpdateAction.Insert, x[0], x[1]]));
|
|
32967
35076
|
}
|
|
32968
35077
|
async updateAndCommit(headerHash, leafs, data) {
|
|
35078
|
+
const blake2bTrieHasher = getBlake2bTrieHasher(this.blake2b);
|
|
32969
35079
|
// We will collect all values that don't fit directly into leaf nodes.
|
|
32970
35080
|
const values = [];
|
|
32971
35081
|
for (const [action, key, value] of data) {
|
|
@@ -33007,12 +35117,12 @@ class LmdbStates {
|
|
|
33007
35117
|
async updateAndSetState(headerHash, state, update) {
|
|
33008
35118
|
// TODO [ToDr] We should probably detect a conflicting state (i.e. two services
|
|
33009
35119
|
// updated at once, etc), for now we're just ignoring it.
|
|
33010
|
-
const updatedValues = serializeStateUpdate(this.spec, update);
|
|
35120
|
+
const updatedValues = serializeStateUpdate(this.spec, this.blake2b, update);
|
|
33011
35121
|
// and finally we insert new values and store leaves in the DB.
|
|
33012
35122
|
return await this.updateAndCommit(headerHash, state.backend.leaves, updatedValues);
|
|
33013
35123
|
}
|
|
33014
35124
|
async getStateRoot(state) {
|
|
33015
|
-
return state.backend.getStateRoot();
|
|
35125
|
+
return state.backend.getStateRoot(this.blake2b);
|
|
33016
35126
|
}
|
|
33017
35127
|
getState(root) {
|
|
33018
35128
|
const leafNodes = this.states.get(root.raw);
|
|
@@ -33033,7 +35143,7 @@ class LmdbStates {
|
|
|
33033
35143
|
if (leafDbResult.isError) {
|
|
33034
35144
|
throw new Error(`Inconsistent DB. Invalid leaf nodes for ${root}: ${resultToString(leafDbResult)}`);
|
|
33035
35145
|
}
|
|
33036
|
-
return SerializedState.new(this.spec, leafDbResult.ok);
|
|
35146
|
+
return SerializedState.new(this.spec, this.blake2b, leafDbResult.ok);
|
|
33037
35147
|
}
|
|
33038
35148
|
}
|
|
33039
35149
|
|
|
@@ -35456,8 +37566,9 @@ class ce_129_state_request_Handler {
|
|
|
35456
37566
|
onStreamMessage(sender, message) {
|
|
35457
37567
|
if (this.isServer) {
|
|
35458
37568
|
ce_129_state_request_logger.info `[${sender.streamId}][server]: Received request.`;
|
|
35459
|
-
if (this.getBoundaryNodes === undefined || this.getKeyValuePairs === undefined)
|
|
37569
|
+
if (this.getBoundaryNodes === undefined || this.getKeyValuePairs === undefined) {
|
|
35460
37570
|
return;
|
|
37571
|
+
}
|
|
35461
37572
|
const request = Decoder.decodeObject(StateRequest.Codec, message);
|
|
35462
37573
|
const boundaryNodes = this.getBoundaryNodes(request.headerHash, request.startKey, request.endKey);
|
|
35463
37574
|
const keyValuePairs = this.getKeyValuePairs(request.headerHash, request.startKey, request.endKey);
|
|
@@ -35983,14 +38094,15 @@ const sync_logger = Logger.new(import.meta.filename, "net:sync");
|
|
|
35983
38094
|
const MAX_BLOCK_SEQUENCE = 128;
|
|
35984
38095
|
class SyncTask {
|
|
35985
38096
|
spec;
|
|
38097
|
+
blake2b;
|
|
35986
38098
|
streamManager;
|
|
35987
38099
|
connections;
|
|
35988
38100
|
blocks;
|
|
35989
38101
|
onNewBlocks;
|
|
35990
|
-
static start(spec, streamManager, connections, blocks,
|
|
38102
|
+
static start(spec, blake2b, streamManager, connections, blocks,
|
|
35991
38103
|
// TODO [ToDr] Use listener instead of a callback maybe?
|
|
35992
38104
|
onNewBlocks) {
|
|
35993
|
-
const syncTask = new SyncTask(spec, streamManager, connections, blocks, onNewBlocks);
|
|
38105
|
+
const syncTask = new SyncTask(spec, blake2b, streamManager, connections, blocks, onNewBlocks);
|
|
35994
38106
|
const getPeerForStream = (streamId) => {
|
|
35995
38107
|
// NOTE [ToDr] Needing to query stream manager for a peer might be a bit
|
|
35996
38108
|
// wasteful, since we probably know the peer when we dispatch the
|
|
@@ -36026,8 +38138,9 @@ class SyncTask {
|
|
|
36026
38138
|
}
|
|
36027
38139
|
// Other's best header hash with timeslot
|
|
36028
38140
|
othersBest;
|
|
36029
|
-
constructor(spec, streamManager, connections, blocks, onNewBlocks) {
|
|
38141
|
+
constructor(spec, blake2b, streamManager, connections, blocks, onNewBlocks) {
|
|
36030
38142
|
this.spec = spec;
|
|
38143
|
+
this.blake2b = blake2b;
|
|
36031
38144
|
this.streamManager = streamManager;
|
|
36032
38145
|
this.connections = connections;
|
|
36033
38146
|
this.blocks = blocks;
|
|
@@ -36064,7 +38177,7 @@ class SyncTask {
|
|
|
36064
38177
|
}
|
|
36065
38178
|
onUp0Annoucement(peer, announcement) {
|
|
36066
38179
|
const { hash, slot } = announcement.final;
|
|
36067
|
-
const bestHeader = hashHeader(announcement.header, this.spec);
|
|
38180
|
+
const bestHeader = hashHeader(this.blake2b, announcement.header, this.spec);
|
|
36068
38181
|
sync_logger.info `[${peer.id}] --> Received new header #${announcement.header.timeSlotIndex}: ${bestHeader.hash}`;
|
|
36069
38182
|
// NOTE [ToDr] Instead of having `Connections` store aux data perhaps
|
|
36070
38183
|
// we should maintain that directly? However that would require
|
|
@@ -36244,9 +38357,9 @@ var SyncResult;
|
|
|
36244
38357
|
/** Sent request to some peers. */
|
|
36245
38358
|
SyncResult[SyncResult["BlocksRequested"] = 3] = "BlocksRequested";
|
|
36246
38359
|
})(SyncResult || (SyncResult = {}));
|
|
36247
|
-
function hashHeader(header, spec) {
|
|
38360
|
+
function hashHeader(blake2b, header, spec) {
|
|
36248
38361
|
const encoded = encoder_Encoder.encodeObject(header_Header.Codec, header, spec);
|
|
36249
|
-
return new WithHash(hashBytes(encoded).asOpaque(), header);
|
|
38362
|
+
return new WithHash(blake2b.hashBytes(encoded).asOpaque(), header);
|
|
36250
38363
|
}
|
|
36251
38364
|
|
|
36252
38365
|
;// CONCATENATED MODULE: ./packages/jam/jamnp-s/network.ts
|
|
@@ -36258,8 +38371,10 @@ function hashHeader(header, spec) {
|
|
|
36258
38371
|
|
|
36259
38372
|
|
|
36260
38373
|
|
|
38374
|
+
|
|
36261
38375
|
const network_logger = Logger.new(import.meta.filename, "jamnps");
|
|
36262
38376
|
async function setup(bind, genesisHash, key, bootnodes, spec, blocks, onNewBlocks) {
|
|
38377
|
+
const blake2b = await blake2b_Blake2b.createHasher();
|
|
36263
38378
|
const genesisFirstBytes = genesisHash.toString().substring(2, 10);
|
|
36264
38379
|
const network = await Quic.setup({
|
|
36265
38380
|
host: bind.host,
|
|
@@ -36271,7 +38386,7 @@ async function setup(bind, genesisHash, key, bootnodes, spec, blocks, onNewBlock
|
|
|
36271
38386
|
connections.addPersistentRetry(bootnodes);
|
|
36272
38387
|
const streamManager = new StreamManager();
|
|
36273
38388
|
// start the networking tasks
|
|
36274
|
-
const syncTask = SyncTask.start(spec, streamManager, connections, blocks, onNewBlocks);
|
|
38389
|
+
const syncTask = SyncTask.start(spec, blake2b, streamManager, connections, blocks, onNewBlocks);
|
|
36275
38390
|
setImmediate(async () => {
|
|
36276
38391
|
while (network.isRunning) {
|
|
36277
38392
|
await (0,promises_namespaceObject.setTimeout)(3000);
|