@typeberry/jam 0.1.3-6edad4a → 0.1.3-c2321fb
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 +311 -5236
- package/bootstrap-generator.mjs.map +1 -1
- package/bootstrap-importer.mjs +5808 -6542
- package/bootstrap-importer.mjs.map +1 -1
- package/bootstrap-network.mjs +2901 -854
- package/bootstrap-network.mjs.map +1 -1
- package/index.js +9195 -9910
- 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 = "AGFzbQEAAAABMQdgAAF/YAl/f39+f39/f38AYAZ/f39/fn8AYAF/AGADf39/AGABfgBgBX9/fn9/AX8DDg0AAQIDBAUGAwMDAwAEBQQBAQICBg4CfwFBgJgFC38AQYAICwdwCAZtZW1vcnkCAA5IYXNoX0dldEJ1ZmZlcgAACUhhc2hfSW5pdAAIC0hhc2hfVXBkYXRlAAkKSGFzaF9GaW5hbAAKDUhhc2hfR2V0U3RhdGUACw5IYXNoX0NhbGN1bGF0ZQAMClNUQVRFX1NJWkUDAQqQWw0FAEGACQufAwIDfwV+IwBB4ABrIgkkAAJAIAFFDQAgByAFciEKIAdBACACQQFGGyAGciAFciELIARBAEetIQwDQCAAKAIAIQcgCUEAKQOAiQE3AwAgCUEAKQOIiQE3AwggCUEAKQOQiQE3AxAgCUEAKQOYiQE3AxggCUEgaiAJIAdBwAAgAyALEAIgCSAJKQNAIAkpAyCFIg03AwAgCSAJKQNIIAkpAyiFIg43AwggCSAJKQNQIAkpAzCFIg83AxAgCSAJKQNYIAkpAziFIhA3AxggB0HAAGohByACIQQCQANAIAUhBgJAAkAgBEF/aiIEDgIDAAELIAohBgsgCUEgaiAJIAdBwAAgAyAGEAIgCSAJKQNAIAkpAyCFIg03AwAgCSAJKQNIIAkpAyiFIg43AwggCSAJKQNQIAkpAzCFIg83AxAgCSAJKQNYIAkpAziFIhA3AxggB0HAAGohBwwACwsgCCAQNwMYIAggDzcDECAIIA43AwggCCANNwMAIAhBIGohCCAAQQRqIQAgAyAMfCEDIAFBf2oiAQ0ACwsgCUHgAGokAAv4GwIMfh9/IAIpAyghBiACKQM4IQcgAikDMCEIIAIpAxAhCSACKQMgIQogAikDACELIAIpAwghDCACKQMYIQ0gACABKQMAIg43AwAgACABKQMIIg83AwggACABKQMQIhA3AxAgACAPQiCIpyANpyICaiABKQMYIhFCIIinIhJqIhMgDUIgiKciAWogEyAFc0EQdyIUQbrqv6p6aiIVIBJzQRR3IhZqIhcgDqcgC6ciBWogEKciE2oiGCALQiCIpyISaiAYIASnc0EQdyIYQefMp9AGaiIZIBNzQRR3IhNqIhogGHNBGHciGyAZaiIcIBNzQRl3Ih1qIAenIhNqIh4gB0IgiKciGGogHiAPpyAJpyIZaiARpyIfaiIgIAlCIIinIiFqICAgA3NBEHciA0Hy5rvjA2oiICAfc0EUdyIfaiIiIANzQRh3IiNzQRB3IiQgDkIgiKcgDKciA2ogEEIgiKciJWoiJiAMQiCIpyIeaiAmIARCIIinc0EQdyImQYXdntt7aiInICVzQRR3IiVqIiggJnNBGHciJiAnaiInaiIpIB1zQRR3Ih1qIiogGWogFyAUc0EYdyIrIBVqIiwgFnNBGXciFiAiaiAIpyIUaiIXIAhCIIinIhVqIBcgJnNBEHciFyAcaiIcIBZzQRR3IhZqIiIgF3NBGHciJiAcaiItIBZzQRl3Ii5qIhwgFWogJyAlc0EZdyIlIBpqIAqnIhZqIhogCkIgiKciF2ogGiArc0EQdyIaICMgIGoiIGoiIyAlc0EUdyIlaiInIBpzQRh3IisgHHNBEHciLyAgIB9zQRl3Ih8gKGogBqciGmoiICAGQiCIpyIcaiAgIBtzQRB3IhsgLGoiICAfc0EUdyIfaiIoIBtzQRh3IhsgIGoiIGoiLCAuc0EUdyIuaiIwICcgA2ogKiAkc0EYdyIkIClqIicgHXNBGXciHWoiKSACaiAbIClzQRB3IhsgLWoiKSAdc0EUdyIdaiIqIBtzQRh3IhsgKWoiKSAdc0EZdyIdaiAYaiItIBZqIC0gIiABaiAgIB9zQRl3Ih9qIiAgBWogJCAgc0EQdyIgICsgI2oiImoiIyAfc0EUdyIfaiIkICBzQRh3IiBzQRB3IisgKCAeaiAiICVzQRl3IiJqIiUgGmogJiAlc0EQdyIlICdqIiYgInNBFHciImoiJyAlc0EYdyIlICZqIiZqIiggHXNBFHciHWoiLSABaiAwIC9zQRh3Ii8gLGoiLCAuc0EZdyIuICRqIBdqIiQgE2ogJCAlc0EQdyIkIClqIiUgLnNBFHciKWoiLiAkc0EYdyIkICVqIiUgKXNBGXciKWoiMCATaiAmICJzQRl3IiIgKmogEmoiJiAcaiAmIC9zQRB3IiYgICAjaiIgaiIjICJzQRR3IiJqIiogJnNBGHciJiAwc0EQdyIvICAgH3NBGXciHyAnaiAUaiIgICFqICAgG3NBEHciGyAsaiIgIB9zQRR3Ih9qIicgG3NBGHciGyAgaiIgaiIsIClzQRR3IilqIjAgKiAeaiAtICtzQRh3IiogKGoiKCAdc0EZdyIdaiIrIBlqIBsgK3NBEHciGyAlaiIlIB1zQRR3Ih1qIisgG3NBGHciGyAlaiIlIB1zQRl3Ih1qIBZqIi0gEmogLSAuIBVqICAgH3NBGXciH2oiICADaiAqICBzQRB3IiAgJiAjaiIjaiImIB9zQRR3Ih9qIiogIHNBGHciIHNBEHciLSAnIBpqICMgInNBGXciImoiIyAUaiAkICNzQRB3IiMgKGoiJCAic0EUdyIiaiInICNzQRh3IiMgJGoiJGoiKCAdc0EUdyIdaiIuIBVqIDAgL3NBGHciLyAsaiIsIClzQRl3IikgKmogHGoiKiAYaiAqICNzQRB3IiMgJWoiJSApc0EUdyIpaiIqICNzQRh3IiMgJWoiJSApc0EZdyIpaiIwIBhqICQgInNBGXciIiAraiACaiIkICFqICQgL3NBEHciJCAgICZqIiBqIiYgInNBFHciImoiKyAkc0EYdyIkIDBzQRB3Ii8gICAfc0EZdyIfICdqIBdqIiAgBWogICAbc0EQdyIbICxqIiAgH3NBFHciH2oiJyAbc0EYdyIbICBqIiBqIiwgKXNBFHciKWoiMCArIBpqIC4gLXNBGHciKyAoaiIoIB1zQRl3Ih1qIi0gAWogGyAtc0EQdyIbICVqIiUgHXNBFHciHWoiLSAbc0EYdyIbICVqIiUgHXNBGXciHWogEmoiLiACaiAuICogE2ogICAfc0EZdyIfaiIgIB5qICsgIHNBEHciICAkICZqIiRqIiYgH3NBFHciH2oiKiAgc0EYdyIgc0EQdyIrICcgFGogJCAic0EZdyIiaiIkIBdqICMgJHNBEHciIyAoaiIkICJzQRR3IiJqIicgI3NBGHciIyAkaiIkaiIoIB1zQRR3Ih1qIi4gE2ogMCAvc0EYdyIvICxqIiwgKXNBGXciKSAqaiAhaiIqIBZqICogI3NBEHciIyAlaiIlIClzQRR3IilqIiogI3NBGHciIyAlaiIlIClzQRl3IilqIjAgFmogJCAic0EZdyIiIC1qIBlqIiQgBWogJCAvc0EQdyIkICAgJmoiIGoiJiAic0EUdyIiaiItICRzQRh3IiQgMHNBEHciLyAgIB9zQRl3Ih8gJ2ogHGoiICADaiAgIBtzQRB3IhsgLGoiICAfc0EUdyIfaiInIBtzQRh3IhsgIGoiIGoiLCApc0EUdyIpaiIwIC9zQRh3Ii8gLGoiLCApc0EZdyIpICogGGogICAfc0EZdyIfaiIgIBpqIC4gK3NBGHciKiAgc0EQdyIgICQgJmoiJGoiJiAfc0EUdyIfaiIraiAFaiIuIBJqIC4gJyAXaiAkICJzQRl3IiJqIiQgHGogIyAkc0EQdyIjICogKGoiJGoiJyAic0EUdyIiaiIoICNzQRh3IiNzQRB3IiogLSAUaiAkIB1zQRl3Ih1qIiQgFWogGyAkc0EQdyIbICVqIiQgHXNBFHciHWoiJSAbc0EYdyIbICRqIiRqIi0gKXNBFHciKWoiLiAWaiArICBzQRh3IiAgJmoiJiAfc0EZdyIfIChqICFqIiggHmogKCAbc0EQdyIbICxqIiggH3NBFHciH2oiKyAbc0EYdyIbIChqIiggH3NBGXciH2oiLCAUaiAwICQgHXNBGXciHWogAmoiJCAZaiAkICBzQRB3IiAgIyAnaiIjaiIkIB1zQRR3Ih1qIicgIHNBGHciICAsc0EQdyIsICMgInNBGXciIiAlaiABaiIjIANqICMgL3NBEHciIyAmaiIlICJzQRR3IiJqIiYgI3NBGHciIyAlaiIlaiIvIB9zQRR3Ih9qIjAgLHNBGHciLCAvaiIvIB9zQRl3Ih8gKyAcaiAlICJzQRl3IiJqIiUgIWogLiAqc0EYdyIqICVzQRB3IiUgICAkaiIgaiIkICJzQRR3IiJqIitqIAVqIi4gGmogLiAmIBdqICAgHXNBGXciHWoiICATaiAbICBzQRB3IhsgKiAtaiIgaiImIB1zQRR3Ih1qIiogG3NBGHciG3NBEHciLSAnIBhqICAgKXNBGXciIGoiJyASaiAjICdzQRB3IiMgKGoiJyAgc0EUdyIgaiIoICNzQRh3IiMgJ2oiJ2oiKSAfc0EUdyIfaiIuICFqICsgJXNBGHciISAkaiIkICJzQRl3IiIgKmogFWoiJSAeaiAlICNzQRB3IiMgL2oiJSAic0EUdyIiaiIqICNzQRh3IiMgJWoiJSAic0EZdyIiaiIrIAVqICcgIHNBGXciBSAwaiADaiIgIAJqICAgIXNBEHciISAbICZqIhtqIiAgBXNBFHciBWoiJiAhc0EYdyIhICtzQRB3IicgKCAbIB1zQRl3IhtqIBlqIh0gAWogHSAsc0EQdyIdICRqIiQgG3NBFHciG2oiKCAdc0EYdyIdICRqIiRqIisgInNBFHciImoiLCAnc0EYdyInICtqIisgInNBGXciIiAqIBxqICQgG3NBGXciHGoiGyAYaiAuIC1zQRh3IhggG3NBEHciGyAhICBqIiFqIiAgHHNBFHciHGoiJGogE2oiEyAaaiATICggFmogISAFc0EZdyIFaiIhIAJqICMgIXNBEHciAiAYIClqIhhqIiEgBXNBFHciBWoiFiACc0EYdyICc0EQdyITICYgEmogGCAfc0EZdyISaiIYIBdqIB0gGHNBEHciGCAlaiIXIBJzQRR3IhJqIhogGHNBGHciGCAXaiIXaiIdICJzQRR3Ih9qIiI2AgAgACAXIBJzQRl3IhIgLGogA2oiAyAUaiADICQgG3NBGHciFHNBEHciAyACICFqIgJqIiEgEnNBFHciEmoiFyADc0EYdyIDNgIwIAAgFiAUICBqIhQgHHNBGXciHGogAWoiASAVaiABIBhzQRB3IgEgK2oiGCAcc0EUdyIVaiIWIAFzQRh3IgEgGGoiGCAVc0EZdzYCECAAIBc2AgQgACACIAVzQRl3IgIgGmogHmoiBSAZaiAFICdzQRB3IgUgFGoiGSACc0EUdyICaiIeIAVzQRh3IgU2AjQgACAFIBlqIgU2AiAgACAiIBNzQRh3IhMgHWoiGSAfc0EZdzYCFCAAIBg2AiQgACAeNgIIIAAgATYCOCAAIAMgIWoiASASc0EZdzYCGCAAIBk2AiggACAWNgIMIAAgEzYCPCAAIAUgAnNBGXc2AhwgACABNgIsC6USCwN/BH4CfwF+AX8EfgJ/AX4CfwF+BH8jAEHQAmsiASQAAkAgAEUNAAJAAkBBAC0AiYoBQQZ0QQAtAIiKAWoiAg0AQYAJIQMMAQtBoIkBQYAJQYAIIAJrIgIgACACIABJGyICEAQgACACayIARQ0BIAFBoAFqQQApA9CJATcDACABQagBakEAKQPYiQE3AwAgAUEAKQOgiQEiBDcDcCABQQApA6iJASIFNwN4IAFBACkDsIkBIgY3A4ABIAFBACkDuIkBIgc3A4gBIAFBACkDyIkBNwOYAUEALQCKigEhCEEALQCJigEhCUEAKQPAiQEhCkEALQCIigEhCyABQbABakEAKQPgiQE3AwAgAUG4AWpBACkD6IkBNwMAIAFBwAFqQQApA/CJATcDACABQcgBakEAKQP4iQE3AwAgAUHQAWpBACkDgIoBNwMAIAEgCzoA2AEgASAKNwOQASABIAggCUVyQQJyIgg6ANkBIAEgBzcD+AEgASAGNwPwASABIAU3A+gBIAEgBDcD4AEgASABQeABaiABQZgBaiALIAogCEH/AXEQAiABKQMgIQQgASkDACEFIAEpAyghBiABKQMIIQcgASkDMCEMIAEpAxAhDSABKQM4IQ4gASkDGCEPIAoQBUEAQgA3A4CKAUEAQgA3A/iJAUEAQgA3A/CJAUEAQgA3A+iJAUEAQgA3A+CJAUEAQgA3A9iJAUEAQgA3A9CJAUEAQgA3A8iJAUEAQQApA4CJATcDoIkBQQBBACkDiIkBNwOoiQFBAEEAKQOQiQE3A7CJAUEAQQApA5iJATcDuIkBQQBBAC0AkIoBIgtBAWo6AJCKAUEAQQApA8CJAUIBfDcDwIkBIAtBBXQiC0GpigFqIA4gD4U3AwAgC0GhigFqIAwgDYU3AwAgC0GZigFqIAYgB4U3AwAgC0GRigFqIAQgBYU3AwBBAEEAOwGIigEgAkGACWohAwsCQCAAQYEISQ0AQQApA8CJASEEIAFBKGohEANAIARCCoYhCkIBIABBAXKteUI/hYanIQIDQCACIhFBAXYhAiAKIBFBf2qtg0IAUg0ACyARQQp2rSESAkACQCARQYAISw0AIAFBADsB2AEgAUIANwPQASABQgA3A8gBIAFCADcDwAEgAUIANwO4ASABQgA3A7ABIAFCADcDqAEgAUIANwOgASABQgA3A5gBIAFBACkDgIkBNwNwIAFBACkDiIkBNwN4IAFBACkDkIkBNwOAASABQQAtAIqKAToA2gEgAUEAKQOYiQE3A4gBIAEgBDcDkAEgAUHwAGogAyAREAQgASABKQNwIgQ3AwAgASABKQN4IgU3AwggASABKQOAASIGNwMQIAEgASkDiAEiBzcDGCABIAEpA5gBNwMoIAEgASkDoAE3AzAgASABKQOoATcDOCABLQDaASECIAEtANkBIQsgASkDkAEhCiABIAEtANgBIgg6AGggASAKNwMgIAEgASkDsAE3A0AgASABKQO4ATcDSCABIAEpA8ABNwNQIAEgASkDyAE3A1ggASABKQPQATcDYCABIAIgC0VyQQJyIgI6AGkgASAHNwO4AiABIAY3A7ACIAEgBTcDqAIgASAENwOgAiABQeABaiABQaACaiAQIAggCiACQf8BcRACIAEpA4ACIQQgASkD4AEhBSABKQOIAiEGIAEpA+gBIQcgASkDkAIhDCABKQPwASENIAEpA5gCIQ4gASkD+AEhDyAKEAVBAEEALQCQigEiAkEBajoAkIoBIAJBBXQiAkGpigFqIA4gD4U3AwAgAkGhigFqIAwgDYU3AwAgAkGZigFqIAYgB4U3AwAgAkGRigFqIAQgBYU3AwAMAQsCQAJAIAMgESAEQQAtAIqKASICIAEQBiITQQJLDQAgASkDGCEKIAEpAxAhBCABKQMIIQUgASkDACEGDAELIAJBBHIhFEEAKQOYiQEhDUEAKQOQiQEhDkEAKQOIiQEhD0EAKQOAiQEhFQNAIBNBfmoiFkEBdiIXQQFqIhhBA3EhCEEAIQkCQCAWQQZJDQAgGEH8////B3EhGUEAIQkgAUHIAmohAiABIQsDQCACIAs2AgAgAkEMaiALQcABajYCACACQQhqIAtBgAFqNgIAIAJBBGogC0HAAGo2AgAgC0GAAmohCyACQRBqIQIgGSAJQQRqIglHDQALCwJAIAhFDQAgASAJQQZ0aiECIAFByAJqIAlBAnRqIQsDQCALIAI2AgAgAkHAAGohAiALQQRqIQsgCEF/aiIIDQALCyABQcgCaiELIAFBoAJqIQIgGCEIA0AgCygCACEJIAEgDTcD+AEgASAONwPwASABIA83A+gBIAEgFTcD4AEgAUHwAGogAUHgAWogCUHAAEIAIBQQAiABKQOQASEKIAEpA3AhBCABKQOYASEFIAEpA3ghBiABKQOgASEHIAEpA4ABIQwgAkEYaiABKQOoASABKQOIAYU3AwAgAkEQaiAHIAyFNwMAIAJBCGogBSAGhTcDACACIAogBIU3AwAgAkEgaiECIAtBBGohCyAIQX9qIggNAAsCQAJAIBZBfnFBAmogE0kNACAYIRMMAQsgAUGgAmogGEEFdGoiAiABIBhBBnRqIgspAwA3AwAgAiALKQMINwMIIAIgCykDEDcDECACIAspAxg3AxggF0ECaiETCyABIAEpA6ACIgY3AwAgASABKQOoAiIFNwMIIAEgASkDsAIiBDcDECABIAEpA7gCIgo3AxggE0ECSw0ACwsgASkDICEHIAEpAyghDCABKQMwIQ0gASkDOCEOQQApA8CJARAFQQBBAC0AkIoBIgJBAWo6AJCKASACQQV0IgJBqYoBaiAKNwMAIAJBoYoBaiAENwMAIAJBmYoBaiAFNwMAIAJBkYoBaiAGNwMAQQApA8CJASASQgGIfBAFQQBBAC0AkIoBIgJBAWo6AJCKASACQQV0IgJBqYoBaiAONwMAIAJBoYoBaiANNwMAIAJBmYoBaiAMNwMAIAJBkYoBaiAHNwMAC0EAQQApA8CJASASfCIENwPAiQEgAyARaiEDIAAgEWsiAEGACEsNAAsgAEUNAQtBoIkBIAMgABAEQQApA8CJARAFCyABQdACaiQAC4YHAgl/AX4jAEHAAGsiAyQAAkACQCAALQBoIgRFDQACQEHAACAEayIFIAIgBSACSRsiBkUNACAGQQNxIQdBACEFAkAgBkEESQ0AIAAgBGohCCAGQXxxIQlBACEFA0AgCCAFaiIKQShqIAEgBWoiCy0AADoAACAKQSlqIAtBAWotAAA6AAAgCkEqaiALQQJqLQAAOgAAIApBK2ogC0EDai0AADoAACAJIAVBBGoiBUcNAAsLAkAgB0UNACABIAVqIQogBSAEaiAAakEoaiEFA0AgBSAKLQAAOgAAIApBAWohCiAFQQFqIQUgB0F/aiIHDQALCyAALQBoIQQLIAAgBCAGaiIHOgBoIAEgBmohAQJAIAIgBmsiAg0AQQAhAgwCCyADIAAgAEEoakHAACAAKQMgIAAtAGogAEHpAGoiBS0AACIKRXIQAiAAIAMpAyAgAykDAIU3AwAgACADKQMoIAMpAwiFNwMIIAAgAykDMCADKQMQhTcDECAAIAMpAzggAykDGIU3AxggAEEAOgBoIAUgCkEBajoAACAAQeAAakIANwMAIABB2ABqQgA3AwAgAEHQAGpCADcDACAAQcgAakIANwMAIABBwABqQgA3AwAgAEE4akIANwMAIABBMGpCADcDACAAQgA3AygLQQAhByACQcEASQ0AIABB6QBqIgotAAAhBSAALQBqIQsgACkDICEMA0AgAyAAIAFBwAAgDCALIAVB/wFxRXJB/wFxEAIgACADKQMgIAMpAwCFNwMAIAAgAykDKCADKQMIhTcDCCAAIAMpAzAgAykDEIU3AxAgACADKQM4IAMpAxiFNwMYIAogBUEBaiIFOgAAIAFBwABqIQEgAkFAaiICQcAASw0ACwsCQEHAACAHQf8BcSIGayIFIAIgBSACSRsiCUUNACAJQQNxIQtBACEFAkAgCUEESQ0AIAAgBmohByAJQfwAcSEIQQAhBQNAIAcgBWoiAkEoaiABIAVqIgotAAA6AAAgAkEpaiAKQQFqLQAAOgAAIAJBKmogCkECai0AADoAACACQStqIApBA2otAAA6AAAgCCAFQQRqIgVHDQALCwJAIAtFDQAgASAFaiEBIAUgBmogAGpBKGohBQNAIAUgAS0AADoAACABQQFqIQEgBUEBaiEFIAtBf2oiCw0ACwsgAC0AaCEHCyAAIAcgCWo6AGggA0HAAGokAAveAwQFfwN+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+VemoiGiADIAJzIAFxIAMgAnFzIANBHncgA0ETd3MgA0EKd3NqIBhqIgFqIhNqICogEmogLSARaiApIAlqIBMgEiARc3EgEXNqIBNBGncgE0EVd3MgE0EHd3NqQcvM6cB6aiIYIAEgA3MgAnEgASADcXMgAUEedyABQRN3cyABQQp3c2ogFGoiAmoiCSATIBJzcSASc2ogCUEadyAJQRV3cyAJQQd3c2pB8JauknxqIhQgAiABcyADcSACIAFxcyACQR53IAJBE3dzIAJBCndzaiAXaiIDaiIRIAkgE3NxIBNzaiARQRp3IBFBFXdzIBFBB3dzakGjo7G7fGoiFyADIAJzIAFxIAMgAnFzIANBHncgA0ETd3MgA0EKd3NqIBlqIgFqIhIgESAJc3EgCXNqIBJBGncgEkEVd3MgEkEHd3NqQZnQy4x9aiIZIAEgA3MgAnEgASADcXMgAUEedyABQRN3cyABQQp3c2ogGmoiAmoiE2ogMCASaiAvIBFqICsgCWogEyASIBFzcSARc2ogE0EadyATQRV3cyATQQd3c2pBpIzktH1qIhogAiABcyADcSACIAFxcyACQR53IAJBE3dzIAJBCndzaiAYaiIDaiIJIBMgEnNxIBJzaiAJQRp3IAlBFXdzIAlBB3dzakGF67igf2oiGCADIAJzIAFxIAMgAnFzIANBHncgA0ETd3MgA0EKd3NqIBRqIgFqIhEgCSATc3EgE3NqIBFBGncgEUEVd3MgEUEHd3NqQfDAqoMBaiIUIAEgA3MgAnEgASADcXMgAUEedyABQRN3cyABQQp3c2ogF2oiAmoiEiARIAlzcSAJc2ogEkEadyASQRV3cyASQQd3c2pBloKTzQFqIhcgAiABcyADcSACIAFxcyACQR53IAJBE3dzIAJBCndzaiAZaiIDaiITIDZqIDIgEmogNSARaiAxIAlqIBMgEiARc3EgEXNqIBNBGncgE0EVd3MgE0EHd3NqQYjY3fEBaiIZIAMgAnMgAXEgAyACcXMgA0EedyADQRN3cyADQQp3c2ogGmoiAWoiCSATIBJzcSASc2ogCUEadyAJQRV3cyAJQQd3c2pBzO6hugJqIhogASADcyACcSABIANxcyABQR53IAFBE3dzIAFBCndzaiAYaiICaiIRIAkgE3NxIBNzaiARQRp3IBFBFXdzIBFBB3dzakG1+cKlA2oiGCACIAFzIANxIAIgAXFzIAJBHncgAkETd3MgAkEKd3NqIBRqIgNqIhIgESAJc3EgCXNqIBJBGncgEkEVd3MgEkEHd3NqQbOZ8MgDaiIUIAMgAnMgAXEgAyACcXMgA0EedyADQRN3cyADQQp3c2ogF2oiAWoiE2ogLEEZdyAsQQ53cyAsQQN2cyAoaiA0aiAzQQ93IDNBDXdzIDNBCnZzaiIXIBJqIDcgEWogMyAJaiATIBIgEXNxIBFzaiATQRp3IBNBFXdzIBNBB3dzakHK1OL2BGoiGyABIANzIAJxIAEgA3FzIAFBHncgAUETd3MgAUEKd3NqIBlqIgJqIgkgEyASc3EgEnNqIAlBGncgCUEVd3MgCUEHd3NqQc+U89wFaiIZIAIgAXMgA3EgAiABcXMgAkEedyACQRN3cyACQQp3c2ogGmoiA2oiESAJIBNzcSATc2ogEUEadyARQRV3cyARQQd3c2pB89+5wQZqIhogAyACcyABcSADIAJxcyADQR53IANBE3dzIANBCndzaiAYaiIBaiISIBEgCXNxIAlzaiASQRp3IBJBFXdzIBJBB3dzakHuhb6kB2oiHCABIANzIAJxIAEgA3FzIAFBHncgAUETd3MgAUEKd3NqIBRqIgJqIhNqIC5BGXcgLkEOd3MgLkEDdnMgKmogNmogLUEZdyAtQQ53cyAtQQN2cyApaiA1aiAXQQ93IBdBDXdzIBdBCnZzaiIUQQ93IBRBDXdzIBRBCnZzaiIYIBJqIDkgEWogFCAJaiATIBIgEXNxIBFzaiATQRp3IBNBFXdzIBNBB3dzakHvxpXFB2oiCSACIAFzIANxIAIgAXFzIAJBHncgAkETd3MgAkEKd3NqIBtqIgNqIhEgEyASc3EgEnNqIBFBGncgEUEVd3MgEUEHd3NqQZTwoaZ4aiIbIAMgAnMgAXEgAyACcXMgA0EedyADQRN3cyADQQp3c2ogGWoiAWoiEiARIBNzcSATc2ogEkEadyASQRV3cyASQQd3c2pBiISc5nhqIhkgASADcyACcSABIANxcyABQR53IAFBE3dzIAFBCndzaiAaaiICaiITIBIgEXNxIBFzaiATQRp3IBNBFXdzIBNBB3dzakH6//uFeWoiGiACIAFzIANxIAIgAXFzIAJBHncgAkETd3MgAkEKd3NqIBxqIgNqIhQgPGo2AuSJAUEAID8gAyACcyABcSADIAJxcyADQR53IANBE3dzIANBCndzaiAJaiIBIANzIAJxIAEgA3FzIAFBHncgAUETd3MgAUEKd3NqIBtqIgIgAXMgA3EgAiABcXMgAkEedyACQRN3cyACQQp3c2ogGWoiAyACcyABcSADIAJxcyADQR53IANBE3dzIANBCndzaiAaaiIJajYC1IkBQQAgPSAvQRl3IC9BDndzIC9BA3ZzICtqIDdqIBhBD3cgGEENd3MgGEEKdnNqIhggEWogFCATIBJzcSASc2ogFEEadyAUQRV3cyAUQQd3c2pB69nBonpqIhkgAWoiEWo2AuCJAUEAIEEgCSADcyACcSAJIANxcyAJQR53IAlBE3dzIAlBCndzaiAZaiIBajYC0IkBQQAgPiAwQRl3IDBBDndzIDBBA3ZzIC9qIBdqIDpBD3cgOkENd3MgOkEKdnNqIBJqIBEgFCATc3EgE3NqIBFBGncgEUEVd3MgEUEHd3NqQffH5vd7aiIXIAJqIhJqNgLciQFBACBDIAEgCXMgA3EgASAJcXMgAUEedyABQRN3cyABQQp3c2ogF2oiAmo2AsyJAUEAIDsgNEEZdyA0QQ53cyA0QQN2cyAwaiA4aiAYQQ93IBhBDXdzIBhBCnZzaiATaiASIBEgFHNxIBRzaiASQRp3IBJBFXdzIBJBB3dzakHy8cWzfGoiESADamo2AtiJAUEAIAAgAiABcyAJcSACIAFxcyACQR53IAJBE3dzIAJBCndzaiARamo2AsiJAQuyBgIEfwF+QQAoAsCJASIAQQJ2QQ9xIgFBAnRBgIkBaiICIAIoAgBBfyAAQQN0IgB0QX9zcUGAASAAdHM2AgACQAJAAkAgAUEOSQ0AAkAgAUEORw0AQQBBADYCvIkBC0GAiQEQA0EAIQIMAQsgAUENRg0BIAFBAWohAgsgAiEDAkBBBiACa0EHcSIARQ0AIAIgAGohAyACQQJ0QYCJAWohAQNAIAFBADYCACABQQRqIQEgAEF/aiIADQALCyACQXlqQQdJDQAgA0ECdCEBA0AgAUGYiQFqQgA3AgAgAUGQiQFqQgA3AgAgAUGIiQFqQgA3AgAgAUGAiQFqQgA3AgAgAUEgaiIBQThHDQALC0EAIQFBAEEAKQPAiQEiBKciAEEbdCAAQQt0QYCA/AdxciAAQQV2QYD+A3EgAEEDdEEYdnJyNgK8iQFBACAEQh2IpyIAQRh0IABBgP4DcUEIdHIgAEEIdkGA/gNxIABBGHZycjYCuIkBQYCJARADQQBBACgC5IkBIgBBGHQgAEGA/gNxQQh0ciAAQQh2QYD+A3EgAEEYdnJyNgLkiQFBAEEAKALgiQEiAEEYdCAAQYD+A3FBCHRyIABBCHZBgP4DcSAAQRh2cnI2AuCJAUEAQQAoAtyJASIAQRh0IABBgP4DcUEIdHIgAEEIdkGA/gNxIABBGHZycjYC3IkBQQBBACgC2IkBIgBBGHQgAEGA/gNxQQh0ciAAQQh2QYD+A3EgAEEYdnJyNgLYiQFBAEEAKALUiQEiAEEYdCAAQYD+A3FBCHRyIABBCHZBgP4DcSAAQRh2cnI2AtSJAUEAQQAoAtCJASIAQRh0IABBgP4DcUEIdHIgAEEIdkGA/gNxIABBGHZycjYC0IkBQQBBACgCzIkBIgBBGHQgAEGA/gNxQQh0ciAAQQh2QYD+A3EgAEEYdnJyNgLMiQFBAEEAKALIiQEiAEEYdCAAQYD+A3FBCHRyIABBCHZBgP4DcSAAQRh2cnI2AsiJAQJAQQAoAuiJASICRQ0AQQAhAANAIAFBgAlqIAFByIkBai0AADoAACABQQFqIQEgAiAAQQFqIgBB/wFxSw0ACwsLBgBBgIkBC6MBAEEAQgA3A8CJAUEAQRxBICABQeABRiIBGzYC6IkBQQBCp5/mp8b0k/2+f0Krs4/8kaOz8NsAIAEbNwPgiQFBAEKxloD+n6KFrOgAQv+kuYjFkdqCm38gARs3A9iJAUEAQpe6w4OTp5aHd0Ly5rvjo6f9p6V/IAEbNwPQiQFBAELYvZaI/KC1vjZC58yn0NbQ67O7fyABGzcDyIkBIAAQAhAECwsLAQBBgAgLBHAAAAA=";
|
|
17001
|
+
var hash$a = "8c18dd94";
|
|
17002
|
+
var wasmJson$a = {
|
|
17003
|
+
name: name$a,
|
|
17004
|
+
data: data$a,
|
|
17005
|
+
hash: hash$a
|
|
17006
|
+
};
|
|
15794
17007
|
|
|
15795
|
-
|
|
15796
|
-
|
|
15797
|
-
|
|
15798
|
-
|
|
15799
|
-
|
|
15800
|
-
|
|
15801
|
-
|
|
15802
|
-
|
|
15803
|
-
|
|
15804
|
-
|
|
15805
|
-
|
|
15806
|
-
|
|
15807
|
-
|
|
15808
|
-
|
|
15809
|
-
|
|
15810
|
-
|
|
15811
|
-
|
|
15812
|
-
|
|
15813
|
-
|
|
15814
|
-
|
|
15815
|
-
|
|
15816
|
-
|
|
15817
|
-
|
|
15818
|
-
|
|
15819
|
-
|
|
15820
|
-
|
|
15821
|
-
|
|
15822
|
-
|
|
15823
|
-
|
|
15824
|
-
|
|
15825
|
-
|
|
15826
|
-
|
|
15827
|
-
|
|
15828
|
-
|
|
15829
|
-
|
|
15830
|
-
|
|
15831
|
-
|
|
15832
|
-
|
|
15833
|
-
|
|
15834
|
-
|
|
15835
|
-
|
|
15836
|
-
|
|
15837
|
-
|
|
15838
|
-
|
|
15839
|
-
|
|
15840
|
-
|
|
15841
|
-
|
|
15842
|
-
|
|
15843
|
-
|
|
15844
|
-
|
|
15845
|
-
ADD64AC(v, a, y0, y1)
|
|
15846
|
-
|
|
15847
|
-
// v[d,d+1] = (v[d,d+1] xor v[a,a+1]) rotated right by 16 bits
|
|
15848
|
-
xor0 = v[d] ^ v[a]
|
|
15849
|
-
xor1 = v[d + 1] ^ v[a + 1]
|
|
15850
|
-
v[d] = (xor0 >>> 16) ^ (xor1 << 16)
|
|
15851
|
-
v[d + 1] = (xor1 >>> 16) ^ (xor0 << 16)
|
|
15852
|
-
|
|
15853
|
-
ADD64AA(v, c, d)
|
|
15854
|
-
|
|
15855
|
-
// v[b,b+1] = (v[b,b+1] xor v[c,c+1]) rotated right by 63 bits
|
|
15856
|
-
xor0 = v[b] ^ v[c]
|
|
15857
|
-
xor1 = v[b + 1] ^ v[c + 1]
|
|
15858
|
-
v[b] = (xor1 >>> 31) ^ (xor0 << 1)
|
|
15859
|
-
v[b + 1] = (xor0 >>> 31) ^ (xor1 << 1)
|
|
15860
|
-
}
|
|
15861
|
-
|
|
15862
|
-
// Initialization Vector
|
|
15863
|
-
var BLAKE2B_IV32 = new Uint32Array([
|
|
15864
|
-
0xF3BCC908, 0x6A09E667, 0x84CAA73B, 0xBB67AE85,
|
|
15865
|
-
0xFE94F82B, 0x3C6EF372, 0x5F1D36F1, 0xA54FF53A,
|
|
15866
|
-
0xADE682D1, 0x510E527F, 0x2B3E6C1F, 0x9B05688C,
|
|
15867
|
-
0xFB41BD6B, 0x1F83D9AB, 0x137E2179, 0x5BE0CD19
|
|
15868
|
-
])
|
|
15869
|
-
|
|
15870
|
-
var SIGMA8 = [
|
|
15871
|
-
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
|
|
15872
|
-
14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3,
|
|
15873
|
-
11, 8, 12, 0, 5, 2, 15, 13, 10, 14, 3, 6, 7, 1, 9, 4,
|
|
15874
|
-
7, 9, 3, 1, 13, 12, 11, 14, 2, 6, 5, 10, 4, 0, 15, 8,
|
|
15875
|
-
9, 0, 5, 7, 2, 4, 10, 15, 14, 1, 11, 12, 6, 8, 3, 13,
|
|
15876
|
-
2, 12, 6, 10, 0, 11, 8, 3, 4, 13, 7, 5, 15, 14, 1, 9,
|
|
15877
|
-
12, 5, 1, 15, 14, 13, 4, 10, 0, 7, 6, 3, 9, 2, 8, 11,
|
|
15878
|
-
13, 11, 7, 14, 12, 1, 3, 9, 5, 0, 15, 4, 8, 6, 2, 10,
|
|
15879
|
-
6, 15, 14, 9, 11, 3, 0, 8, 12, 2, 13, 7, 1, 4, 10, 5,
|
|
15880
|
-
10, 2, 8, 4, 7, 6, 1, 5, 15, 11, 9, 14, 3, 12, 13, 0,
|
|
15881
|
-
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
|
|
15882
|
-
14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3
|
|
15883
|
-
]
|
|
15884
|
-
|
|
15885
|
-
// These are offsets into a uint64 buffer.
|
|
15886
|
-
// Multiply them all by 2 to make them offsets into a uint32 buffer,
|
|
15887
|
-
// because this is Javascript and we don't have uint64s
|
|
15888
|
-
var SIGMA82 = new Uint8Array(SIGMA8.map(function (x) { return x * 2 }))
|
|
15889
|
-
|
|
15890
|
-
// Compression function. 'last' flag indicates last block.
|
|
15891
|
-
// Note we're representing 16 uint64s as 32 uint32s
|
|
15892
|
-
var v = new Uint32Array(32)
|
|
15893
|
-
var m = new Uint32Array(32)
|
|
15894
|
-
function blake2bCompress (ctx, last) {
|
|
15895
|
-
var i = 0
|
|
15896
|
-
|
|
15897
|
-
// init work variables
|
|
15898
|
-
for (i = 0; i < 16; i++) {
|
|
15899
|
-
v[i] = ctx.h[i]
|
|
15900
|
-
v[i + 16] = BLAKE2B_IV32[i]
|
|
15901
|
-
}
|
|
17008
|
+
const mutex$a = new Mutex();
|
|
17009
|
+
let wasmCache$a = null;
|
|
17010
|
+
/**
|
|
17011
|
+
* Calculates SHA-2 (SHA-224) hash
|
|
17012
|
+
* @param data Input data (string, Buffer or TypedArray)
|
|
17013
|
+
* @returns Computed hash as a hexadecimal string
|
|
17014
|
+
*/
|
|
17015
|
+
function sha224(data) {
|
|
17016
|
+
if (wasmCache$a === null) {
|
|
17017
|
+
return lockedCreate(mutex$a, wasmJson$a, 28).then((wasm) => {
|
|
17018
|
+
wasmCache$a = wasm;
|
|
17019
|
+
return wasmCache$a.calculate(data, 224);
|
|
17020
|
+
});
|
|
17021
|
+
}
|
|
17022
|
+
try {
|
|
17023
|
+
const hash = wasmCache$a.calculate(data, 224);
|
|
17024
|
+
return Promise.resolve(hash);
|
|
17025
|
+
}
|
|
17026
|
+
catch (err) {
|
|
17027
|
+
return Promise.reject(err);
|
|
17028
|
+
}
|
|
17029
|
+
}
|
|
17030
|
+
/**
|
|
17031
|
+
* Creates a new SHA-2 (SHA-224) hash instance
|
|
17032
|
+
*/
|
|
17033
|
+
function createSHA224() {
|
|
17034
|
+
return WASMInterface(wasmJson$a, 28).then((wasm) => {
|
|
17035
|
+
wasm.init(224);
|
|
17036
|
+
const obj = {
|
|
17037
|
+
init: () => {
|
|
17038
|
+
wasm.init(224);
|
|
17039
|
+
return obj;
|
|
17040
|
+
},
|
|
17041
|
+
update: (data) => {
|
|
17042
|
+
wasm.update(data);
|
|
17043
|
+
return obj;
|
|
17044
|
+
},
|
|
17045
|
+
// biome-ignore lint/suspicious/noExplicitAny: Conflict with IHasher type
|
|
17046
|
+
digest: (outputType) => wasm.digest(outputType),
|
|
17047
|
+
save: () => wasm.save(),
|
|
17048
|
+
load: (data) => {
|
|
17049
|
+
wasm.load(data);
|
|
17050
|
+
return obj;
|
|
17051
|
+
},
|
|
17052
|
+
blockSize: 64,
|
|
17053
|
+
digestSize: 28,
|
|
17054
|
+
};
|
|
17055
|
+
return obj;
|
|
17056
|
+
});
|
|
17057
|
+
}
|
|
15902
17058
|
|
|
15903
|
-
|
|
15904
|
-
|
|
15905
|
-
|
|
15906
|
-
|
|
17059
|
+
const mutex$9 = new Mutex();
|
|
17060
|
+
let wasmCache$9 = null;
|
|
17061
|
+
/**
|
|
17062
|
+
* Calculates SHA-2 (SHA-256) hash
|
|
17063
|
+
* @param data Input data (string, Buffer or TypedArray)
|
|
17064
|
+
* @returns Computed hash as a hexadecimal string
|
|
17065
|
+
*/
|
|
17066
|
+
function sha256(data) {
|
|
17067
|
+
if (wasmCache$9 === null) {
|
|
17068
|
+
return lockedCreate(mutex$9, wasmJson$a, 32).then((wasm) => {
|
|
17069
|
+
wasmCache$9 = wasm;
|
|
17070
|
+
return wasmCache$9.calculate(data, 256);
|
|
17071
|
+
});
|
|
17072
|
+
}
|
|
17073
|
+
try {
|
|
17074
|
+
const hash = wasmCache$9.calculate(data, 256);
|
|
17075
|
+
return Promise.resolve(hash);
|
|
17076
|
+
}
|
|
17077
|
+
catch (err) {
|
|
17078
|
+
return Promise.reject(err);
|
|
17079
|
+
}
|
|
17080
|
+
}
|
|
17081
|
+
/**
|
|
17082
|
+
* Creates a new SHA-2 (SHA-256) hash instance
|
|
17083
|
+
*/
|
|
17084
|
+
function createSHA256() {
|
|
17085
|
+
return WASMInterface(wasmJson$a, 32).then((wasm) => {
|
|
17086
|
+
wasm.init(256);
|
|
17087
|
+
const obj = {
|
|
17088
|
+
init: () => {
|
|
17089
|
+
wasm.init(256);
|
|
17090
|
+
return obj;
|
|
17091
|
+
},
|
|
17092
|
+
update: (data) => {
|
|
17093
|
+
wasm.update(data);
|
|
17094
|
+
return obj;
|
|
17095
|
+
},
|
|
17096
|
+
// biome-ignore lint/suspicious/noExplicitAny: Conflict with IHasher type
|
|
17097
|
+
digest: (outputType) => wasm.digest(outputType),
|
|
17098
|
+
save: () => wasm.save(),
|
|
17099
|
+
load: (data) => {
|
|
17100
|
+
wasm.load(data);
|
|
17101
|
+
return obj;
|
|
17102
|
+
},
|
|
17103
|
+
blockSize: 64,
|
|
17104
|
+
digestSize: 32,
|
|
17105
|
+
};
|
|
17106
|
+
return obj;
|
|
17107
|
+
});
|
|
17108
|
+
}
|
|
15907
17109
|
|
|
15908
|
-
|
|
15909
|
-
if (last) {
|
|
15910
|
-
|
|
15911
|
-
|
|
15912
|
-
|
|
17110
|
+
var name$9 = "sha512";
|
|
17111
|
+
var data$9 = "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";
|
|
17112
|
+
var hash$9 = "f2e40eb1";
|
|
17113
|
+
var wasmJson$9 = {
|
|
17114
|
+
name: name$9,
|
|
17115
|
+
data: data$9,
|
|
17116
|
+
hash: hash$9
|
|
17117
|
+
};
|
|
15913
17118
|
|
|
15914
|
-
|
|
15915
|
-
|
|
15916
|
-
|
|
15917
|
-
|
|
17119
|
+
const mutex$8 = new Mutex();
|
|
17120
|
+
let wasmCache$8 = null;
|
|
17121
|
+
/**
|
|
17122
|
+
* Calculates SHA-2 (SHA-384) hash
|
|
17123
|
+
* @param data Input data (string, Buffer or TypedArray)
|
|
17124
|
+
* @returns Computed hash as a hexadecimal string
|
|
17125
|
+
*/
|
|
17126
|
+
function sha384(data) {
|
|
17127
|
+
if (wasmCache$8 === null) {
|
|
17128
|
+
return lockedCreate(mutex$8, wasmJson$9, 48).then((wasm) => {
|
|
17129
|
+
wasmCache$8 = wasm;
|
|
17130
|
+
return wasmCache$8.calculate(data, 384);
|
|
17131
|
+
});
|
|
17132
|
+
}
|
|
17133
|
+
try {
|
|
17134
|
+
const hash = wasmCache$8.calculate(data, 384);
|
|
17135
|
+
return Promise.resolve(hash);
|
|
17136
|
+
}
|
|
17137
|
+
catch (err) {
|
|
17138
|
+
return Promise.reject(err);
|
|
17139
|
+
}
|
|
17140
|
+
}
|
|
17141
|
+
/**
|
|
17142
|
+
* Creates a new SHA-2 (SHA-384) hash instance
|
|
17143
|
+
*/
|
|
17144
|
+
function createSHA384() {
|
|
17145
|
+
return WASMInterface(wasmJson$9, 48).then((wasm) => {
|
|
17146
|
+
wasm.init(384);
|
|
17147
|
+
const obj = {
|
|
17148
|
+
init: () => {
|
|
17149
|
+
wasm.init(384);
|
|
17150
|
+
return obj;
|
|
17151
|
+
},
|
|
17152
|
+
update: (data) => {
|
|
17153
|
+
wasm.update(data);
|
|
17154
|
+
return obj;
|
|
17155
|
+
},
|
|
17156
|
+
// biome-ignore lint/suspicious/noExplicitAny: Conflict with IHasher type
|
|
17157
|
+
digest: (outputType) => wasm.digest(outputType),
|
|
17158
|
+
save: () => wasm.save(),
|
|
17159
|
+
load: (data) => {
|
|
17160
|
+
wasm.load(data);
|
|
17161
|
+
return obj;
|
|
17162
|
+
},
|
|
17163
|
+
blockSize: 128,
|
|
17164
|
+
digestSize: 48,
|
|
17165
|
+
};
|
|
17166
|
+
return obj;
|
|
17167
|
+
});
|
|
17168
|
+
}
|
|
15918
17169
|
|
|
15919
|
-
|
|
15920
|
-
|
|
15921
|
-
|
|
15922
|
-
|
|
15923
|
-
|
|
15924
|
-
|
|
15925
|
-
|
|
15926
|
-
|
|
15927
|
-
|
|
15928
|
-
|
|
15929
|
-
|
|
17170
|
+
const mutex$7 = new Mutex();
|
|
17171
|
+
let wasmCache$7 = null;
|
|
17172
|
+
/**
|
|
17173
|
+
* Calculates SHA-2 (SHA-512) hash
|
|
17174
|
+
* @param data Input data (string, Buffer or TypedArray)
|
|
17175
|
+
* @returns Computed hash as a hexadecimal string
|
|
17176
|
+
*/
|
|
17177
|
+
function sha512(data) {
|
|
17178
|
+
if (wasmCache$7 === null) {
|
|
17179
|
+
return lockedCreate(mutex$7, wasmJson$9, 64).then((wasm) => {
|
|
17180
|
+
wasmCache$7 = wasm;
|
|
17181
|
+
return wasmCache$7.calculate(data, 512);
|
|
17182
|
+
});
|
|
17183
|
+
}
|
|
17184
|
+
try {
|
|
17185
|
+
const hash = wasmCache$7.calculate(data, 512);
|
|
17186
|
+
return Promise.resolve(hash);
|
|
17187
|
+
}
|
|
17188
|
+
catch (err) {
|
|
17189
|
+
return Promise.reject(err);
|
|
17190
|
+
}
|
|
17191
|
+
}
|
|
17192
|
+
/**
|
|
17193
|
+
* Creates a new SHA-2 (SHA-512) hash instance
|
|
17194
|
+
*/
|
|
17195
|
+
function createSHA512() {
|
|
17196
|
+
return WASMInterface(wasmJson$9, 64).then((wasm) => {
|
|
17197
|
+
wasm.init(512);
|
|
17198
|
+
const obj = {
|
|
17199
|
+
init: () => {
|
|
17200
|
+
wasm.init(512);
|
|
17201
|
+
return obj;
|
|
17202
|
+
},
|
|
17203
|
+
update: (data) => {
|
|
17204
|
+
wasm.update(data);
|
|
17205
|
+
return obj;
|
|
17206
|
+
},
|
|
17207
|
+
// biome-ignore lint/suspicious/noExplicitAny: Conflict with IHasher type
|
|
17208
|
+
digest: (outputType) => wasm.digest(outputType),
|
|
17209
|
+
save: () => wasm.save(),
|
|
17210
|
+
load: (data) => {
|
|
17211
|
+
wasm.load(data);
|
|
17212
|
+
return obj;
|
|
17213
|
+
},
|
|
17214
|
+
blockSize: 128,
|
|
17215
|
+
digestSize: 64,
|
|
17216
|
+
};
|
|
17217
|
+
return obj;
|
|
17218
|
+
});
|
|
17219
|
+
}
|
|
15930
17220
|
|
|
15931
|
-
|
|
15932
|
-
|
|
15933
|
-
|
|
15934
|
-
|
|
17221
|
+
var name$8 = "xxhash32";
|
|
17222
|
+
var data$8 = "AGFzbQEAAAABEQRgAAF/YAF/AGAAAGACf38AAwcGAAEBAgADBQQBAQICBg4CfwFBsIkFC38AQYAICwdwCAZtZW1vcnkCAA5IYXNoX0dldEJ1ZmZlcgAACUhhc2hfSW5pdAABC0hhc2hfVXBkYXRlAAIKSGFzaF9GaW5hbAADDUhhc2hfR2V0U3RhdGUABA5IYXNoX0NhbGN1bGF0ZQAFClNUQVRFX1NJWkUDAQrvEQYFAEGACQtNAEEAQgA3A6iJAUEAIAA2AoiJAUEAIABBz4yijgZqNgKMiQFBACAAQfeUr694ajYChIkBQQAgAEGoiI2hAmo2AoCJAUEAQQA2AqCJAQu4CAEHfwJAIABFDQBBAEEAKQOoiQEgAK18NwOoiQECQEEAKAKgiQEiASAAakEPSw0AAkACQCAAQQNxIgINAEGACSEDIAAhBAwBCyAAQXxxIQRBgAkhAwNAQQBBACgCoIkBIgVBAWo2AqCJASAFQZCJAWogAy0AADoAACADQQFqIQMgAkF/aiICDQALCyAAQQRJDQEDQEEAQQAoAqCJASICQQFqNgKgiQEgAkGQiQFqIAMtAAA6AAAgA0EBai0AACECQQBBACgCoIkBIgVBAWo2AqCJASAFQZCJAWogAjoAACADQQJqLQAAIQJBAEEAKAKgiQEiBUEBajYCoIkBIAVBkIkBaiACOgAAIANBA2otAAAhAkEAQQAoAqCJASIFQQFqNgKgiQEgBUGQiQFqIAI6AAAgA0EEaiEDIARBfGoiBA0ADAILCyAAQfAIaiEGAkACQCABDQBBACgCjIkBIQJBACgCiIkBIQVBACgChIkBIQRBACgCgIkBIQFBgAkhAwwBC0GACSEDAkAgAUEPSw0AQYAJIQMCQAJAQQAgAWtBA3EiBA0AIAEhBQwBCyABIQIDQEEAIAJBAWoiBTYCoIkBIAJBkIkBaiADLQAAOgAAIANBAWohAyAFIQIgBEF/aiIEDQALCyABQXNqQQNJDQBBACEEA0AgAyAEaiIBLQAAIQdBACAFIARqIgJBAWo2AqCJASACQZCJAWogBzoAACABQQFqLQAAIQdBACACQQJqNgKgiQEgAkGRiQFqIAc6AAAgAUECai0AACEHQQAgAkEDajYCoIkBIAJBkokBaiAHOgAAIAFBA2otAAAhAUEAIAJBBGo2AqCJASACQZOJAWogAToAACAFIARBBGoiBGpBEEcNAAsgAyAEaiEDC0EAQQAoApCJAUH3lK+veGxBACgCgIkBakENd0Gx893xeWwiATYCgIkBQQBBACgClIkBQfeUr694bEEAKAKEiQFqQQ13QbHz3fF5bCIENgKEiQFBAEEAKAKYiQFB95Svr3hsQQAoAoiJAWpBDXdBsfPd8XlsIgU2AoiJAUEAQQAoApyJAUH3lK+veGxBACgCjIkBakENd0Gx893xeWwiAjYCjIkBCyAAQYAJaiEAAkAgAyAGSw0AA0AgAygCAEH3lK+veGwgAWpBDXdBsfPd8XlsIQEgA0EMaigCAEH3lK+veGwgAmpBDXdBsfPd8XlsIQIgA0EIaigCAEH3lK+veGwgBWpBDXdBsfPd8XlsIQUgA0EEaigCAEH3lK+veGwgBGpBDXdBsfPd8XlsIQQgA0EQaiIDIAZNDQALC0EAIAI2AoyJAUEAIAU2AoiJAUEAIAQ2AoSJAUEAIAE2AoCJAUEAIAAgA2s2AqCJASAAIANGDQBBACECA0AgAkGQiQFqIAMgAmotAAA6AAAgAkEBaiICQQAoAqCJAUkNAAsLC4MEAgF+Bn9BACkDqIkBIgCnIQECQAJAIABCEFQNAEEAKAKEiQFBB3dBACgCgIkBQQF3akEAKAKIiQFBDHdqQQAoAoyJAUESd2ohAgwBC0EAKAKIiQFBsc/ZsgFqIQILIAIgAWohAkGQiQEhA0GUiQEhAQJAQQAoAqCJASIEQZCJAWoiBUGUiQFJDQBBkIkBIQMCQCAEQXxqIgZBBHENAEEAKAKQiQFBvdzKlXxsIAJqQRF3Qa/W074CbCECQZiJASEBQZSJASEDIAZBBEkNAQsDQCABKAIAQb3cypV8bCADKAIAQb3cypV8bCACakERd0Gv1tO+AmxqQRF3Qa/W074CbCECIAFBBGohAyABQQhqIgEgBU0NAAsgAUF8aiEDCwJAIAMgBUYNACAEQY+JAWohBgJAAkAgBCADa0EBcQ0AIAMhAQwBCyADQQFqIQEgAy0AAEGxz9myAWwgAmpBC3dBsfPd8XlsIQILIAYgA0YNAANAIAFBAWotAABBsc/ZsgFsIAEtAABBsc/ZsgFsIAJqQQt3QbHz3fF5bGpBC3dBsfPd8XlsIQIgAUECaiIBIAVHDQALC0EAIAJBD3YgAnNB95Svr3hsIgFBDXYgAXNBvdzKlXxsIgFBEHYgAXMiAkEYdCACQYD+A3FBCHRyIAFBCHZBgP4DcSABQRh2cnKtNwOACQsGAEGAiQEL0gQCAX4Ef0EAQgA3A6iJAUEAIAE2AoiJAUEAIAFBz4yijgZqNgKMiQFBACABQfeUr694ajYChIkBQQAgAUGoiI2hAmo2AoCJAUEAQQA2AqCJASAAEAJBACkDqIkBIgKnIQECQAJAIAJCEFQNAEEAKAKEiQFBB3dBACgCgIkBQQF3akEAKAKIiQFBDHdqQQAoAoyJAUESd2ohAAwBC0EAKAKIiQFBsc/ZsgFqIQALIAAgAWohAEGQiQEhA0GUiQEhAQJAQQAoAqCJASIEQZCJAWoiBUGUiQFJDQBBkIkBIQMCQCAEQXxqIgZBBHENAEEAKAKQiQFBvdzKlXxsIABqQRF3Qa/W074CbCEAQZiJASEBQZSJASEDIAZBBEkNAQsDQCABKAIAQb3cypV8bCADKAIAQb3cypV8bCAAakERd0Gv1tO+AmxqQRF3Qa/W074CbCEAIAFBBGohAyABQQhqIgEgBU0NAAsgAUF8aiEDCwJAIAMgBUYNACAEQY+JAWohBgJAAkAgBCADa0EBcQ0AIAMhAQwBCyADQQFqIQEgAy0AAEGxz9myAWwgAGpBC3dBsfPd8XlsIQALIAYgA0YNAANAIAFBAWotAABBsc/ZsgFsIAEtAABBsc/ZsgFsIABqQQt3QbHz3fF5bGpBC3dBsfPd8XlsIQAgAUECaiIBIAVHDQALC0EAIABBD3YgAHNB95Svr3hsIgFBDXYgAXNBvdzKlXxsIgFBEHYgAXMiAEEYdCAAQYD+A3FBCHRyIAFBCHZBgP4DcSABQRh2cnKtNwOACQsLCwEAQYAICwQwAAAA";
|
|
17223
|
+
var hash$8 = "4bb12485";
|
|
17224
|
+
var wasmJson$8 = {
|
|
17225
|
+
name: name$8,
|
|
17226
|
+
data: data$8,
|
|
17227
|
+
hash: hash$8
|
|
17228
|
+
};
|
|
15935
17229
|
|
|
15936
|
-
|
|
15937
|
-
|
|
15938
|
-
|
|
15939
|
-
|
|
15940
|
-
|
|
15941
|
-
|
|
15942
|
-
|
|
15943
|
-
|
|
15944
|
-
|
|
15945
|
-
|
|
15946
|
-
|
|
15947
|
-
|
|
15948
|
-
|
|
15949
|
-
|
|
15950
|
-
|
|
15951
|
-
|
|
15952
|
-
|
|
15953
|
-
|
|
15954
|
-
|
|
15955
|
-
|
|
15956
|
-
|
|
15957
|
-
|
|
15958
|
-
|
|
15959
|
-
|
|
15960
|
-
|
|
15961
|
-
|
|
15962
|
-
|
|
15963
|
-
|
|
15964
|
-
|
|
15965
|
-
|
|
15966
|
-
|
|
15967
|
-
|
|
15968
|
-
|
|
15969
|
-
|
|
15970
|
-
|
|
15971
|
-
|
|
15972
|
-
|
|
15973
|
-
|
|
15974
|
-
|
|
15975
|
-
|
|
15976
|
-
|
|
15977
|
-
|
|
15978
|
-
|
|
15979
|
-
|
|
15980
|
-
|
|
15981
|
-
|
|
17230
|
+
const mutex$6 = new Mutex();
|
|
17231
|
+
let wasmCache$6 = null;
|
|
17232
|
+
function validateSeed$3(seed) {
|
|
17233
|
+
if (!Number.isInteger(seed) || seed < 0 || seed > 0xffffffff) {
|
|
17234
|
+
return new Error("Seed must be a valid 32-bit long unsigned integer.");
|
|
17235
|
+
}
|
|
17236
|
+
return null;
|
|
17237
|
+
}
|
|
17238
|
+
/**
|
|
17239
|
+
* Calculates xxHash32 hash
|
|
17240
|
+
* @param data Input data (string, Buffer or TypedArray)
|
|
17241
|
+
* @param seed Number used to initialize the internal state of the algorithm (defaults to 0)
|
|
17242
|
+
* @returns Computed hash as a hexadecimal string
|
|
17243
|
+
*/
|
|
17244
|
+
function xxhash32(data, seed = 0) {
|
|
17245
|
+
if (validateSeed$3(seed)) {
|
|
17246
|
+
return Promise.reject(validateSeed$3(seed));
|
|
17247
|
+
}
|
|
17248
|
+
if (wasmCache$6 === null) {
|
|
17249
|
+
return lockedCreate(mutex$6, wasmJson$8, 4).then((wasm) => {
|
|
17250
|
+
wasmCache$6 = wasm;
|
|
17251
|
+
return wasmCache$6.calculate(data, seed);
|
|
17252
|
+
});
|
|
17253
|
+
}
|
|
17254
|
+
try {
|
|
17255
|
+
const hash = wasmCache$6.calculate(data, seed);
|
|
17256
|
+
return Promise.resolve(hash);
|
|
17257
|
+
}
|
|
17258
|
+
catch (err) {
|
|
17259
|
+
return Promise.reject(err);
|
|
17260
|
+
}
|
|
17261
|
+
}
|
|
17262
|
+
/**
|
|
17263
|
+
* Creates a new xxHash32 hash instance
|
|
17264
|
+
* @param data Input data (string, Buffer or TypedArray)
|
|
17265
|
+
* @param seed Number used to initialize the internal state of the algorithm (defaults to 0)
|
|
17266
|
+
*/
|
|
17267
|
+
function createXXHash32(seed = 0) {
|
|
17268
|
+
if (validateSeed$3(seed)) {
|
|
17269
|
+
return Promise.reject(validateSeed$3(seed));
|
|
17270
|
+
}
|
|
17271
|
+
return WASMInterface(wasmJson$8, 4).then((wasm) => {
|
|
17272
|
+
wasm.init(seed);
|
|
17273
|
+
const obj = {
|
|
17274
|
+
init: () => {
|
|
17275
|
+
wasm.init(seed);
|
|
17276
|
+
return obj;
|
|
17277
|
+
},
|
|
17278
|
+
update: (data) => {
|
|
17279
|
+
wasm.update(data);
|
|
17280
|
+
return obj;
|
|
17281
|
+
},
|
|
17282
|
+
// biome-ignore lint/suspicious/noExplicitAny: Conflict with IHasher type
|
|
17283
|
+
digest: (outputType) => wasm.digest(outputType),
|
|
17284
|
+
save: () => wasm.save(),
|
|
17285
|
+
load: (data) => {
|
|
17286
|
+
wasm.load(data);
|
|
17287
|
+
return obj;
|
|
17288
|
+
},
|
|
17289
|
+
blockSize: 16,
|
|
17290
|
+
digestSize: 4,
|
|
17291
|
+
};
|
|
17292
|
+
return obj;
|
|
17293
|
+
});
|
|
17294
|
+
}
|
|
15982
17295
|
|
|
15983
|
-
|
|
15984
|
-
|
|
15985
|
-
|
|
15986
|
-
|
|
15987
|
-
|
|
15988
|
-
|
|
15989
|
-
|
|
17296
|
+
var name$7 = "xxhash64";
|
|
17297
|
+
var data$7 = "AGFzbQEAAAABDANgAAF/YAAAYAF/AAMHBgABAgEAAQUEAQECAgYOAn8BQdCJBQt/AEGACAsHcAgGbWVtb3J5AgAOSGFzaF9HZXRCdWZmZXIAAAlIYXNoX0luaXQAAQtIYXNoX1VwZGF0ZQACCkhhc2hfRmluYWwAAw1IYXNoX0dldFN0YXRlAAQOSGFzaF9DYWxjdWxhdGUABQpTVEFURV9TSVpFAwEKmxEGBQBBgAkLYwEBfkEAQgA3A8iJAUEAQQApA4AJIgA3A5CJAUEAIABC+erQ0OfJoeThAHw3A5iJAUEAIABCz9bTvtLHq9lCfDcDiIkBQQAgAELW64Lu6v2J9eAAfDcDgIkBQQBBADYCwIkBC70IAwV/BH4CfwJAIABFDQBBAEEAKQPIiQEgAK18NwPIiQECQEEAKALAiQEiASAAakEfSw0AAkACQCAAQQNxIgINAEGACSEDIAAhAQwBCyAAQXxxIQFBgAkhAwNAQQBBACgCwIkBIgRBAWo2AsCJASAEQaCJAWogAy0AADoAACADQQFqIQMgAkF/aiICDQALCyAAQQRJDQEDQEEAQQAoAsCJASICQQFqNgLAiQEgAkGgiQFqIAMtAAA6AAAgA0EBai0AACECQQBBACgCwIkBIgRBAWo2AsCJASAEQaCJAWogAjoAACADQQJqLQAAIQJBAEEAKALAiQEiBEEBajYCwIkBIARBoIkBaiACOgAAIANBA2otAAAhAkEAQQAoAsCJASIEQQFqNgLAiQEgBEGgiQFqIAI6AAAgA0EEaiEDIAFBfGoiAQ0ADAILCyAAQeAIaiEFAkACQCABDQBBACkDmIkBIQZBACkDkIkBIQdBACkDiIkBIQhBACkDgIkBIQlBgAkhAwwBC0GACSEDAkAgAUEfSw0AQYAJIQMCQAJAQQAgAWtBA3EiBA0AIAEhAgwBCyABIQIDQCACQaCJAWogAy0AADoAACACQQFqIQIgA0EBaiEDIARBf2oiBA0ACwsgAUFjakEDSQ0AQSAgAmshCkEAIQQDQCACIARqIgFBoIkBaiADIARqIgstAAA6AAAgAUGhiQFqIAtBAWotAAA6AAAgAUGiiQFqIAtBAmotAAA6AAAgAUGjiQFqIAtBA2otAAA6AAAgCiAEQQRqIgRHDQALIAMgBGohAwtBAEEAKQOgiQFCz9bTvtLHq9lCfkEAKQOAiQF8Qh+JQoeVr6+Ytt6bnn9+Igk3A4CJAUEAQQApA6iJAULP1tO+0ser2UJ+QQApA4iJAXxCH4lCh5Wvr5i23puef34iCDcDiIkBQQBBACkDsIkBQs/W077Sx6vZQn5BACkDkIkBfEIfiUKHla+vmLbem55/fiIHNwOQiQFBAEEAKQO4iQFCz9bTvtLHq9lCfkEAKQOYiQF8Qh+JQoeVr6+Ytt6bnn9+IgY3A5iJAQsgAEGACWohAgJAIAMgBUsNAANAIAMpAwBCz9bTvtLHq9lCfiAJfEIfiUKHla+vmLbem55/fiEJIANBGGopAwBCz9bTvtLHq9lCfiAGfEIfiUKHla+vmLbem55/fiEGIANBEGopAwBCz9bTvtLHq9lCfiAHfEIfiUKHla+vmLbem55/fiEHIANBCGopAwBCz9bTvtLHq9lCfiAIfEIfiUKHla+vmLbem55/fiEIIANBIGoiAyAFTQ0ACwtBACAGNwOYiQFBACAHNwOQiQFBACAINwOIiQFBACAJNwOAiQFBACACIANrNgLAiQEgAiADRg0AQQAhAgNAIAJBoIkBaiADIAJqLQAAOgAAIAJBAWoiAkEAKALAiQFJDQALCwvlBwIFfgV/AkACQEEAKQPIiQEiAEIgVA0AQQApA4iJASIBQgeJQQApA4CJASICQgGJfEEAKQOQiQEiA0IMiXxBACkDmIkBIgRCEol8IAJCz9bTvtLHq9lCfkIfiUKHla+vmLbem55/foVCh5Wvr5i23puef35C49zKlfzO8vWFf3wgAULP1tO+0ser2UJ+Qh+JQoeVr6+Ytt6bnn9+hUKHla+vmLbem55/fkLj3MqV/M7y9YV/fCADQs/W077Sx6vZQn5CH4lCh5Wvr5i23puef36FQoeVr6+Ytt6bnn9+QuPcypX8zvL1hX98IARCz9bTvtLHq9lCfkIfiUKHla+vmLbem55/foVCh5Wvr5i23puef35C49zKlfzO8vWFf3whAQwBC0EAKQOQiQFCxc/ZsvHluuonfCEBCyABIAB8IQBBoIkBIQVBqIkBIQYCQEEAKALAiQEiB0GgiQFqIghBqIkBSQ0AQaCJASEFAkAgB0F4aiIJQQhxDQBBACkDoIkBQs/W077Sx6vZQn5CH4lCh5Wvr5i23puef34gAIVCG4lCh5Wvr5i23puef35C49zKlfzO8vWFf3whAEGwiQEhBkGoiQEhBSAJQQhJDQELA0AgBikDAELP1tO+0ser2UJ+Qh+JQoeVr6+Ytt6bnn9+IAUpAwBCz9bTvtLHq9lCfkIfiUKHla+vmLbem55/fiAAhUIbiUKHla+vmLbem55/fkLj3MqV/M7y9YV/fIVCG4lCh5Wvr5i23puef35C49zKlfzO8vWFf3whACAGQQhqIQUgBkEQaiIGIAhNDQALIAZBeGohBQsCQAJAIAVBBGoiCSAITQ0AIAUhCQwBCyAFNQIAQoeVr6+Ytt6bnn9+IACFQheJQs/W077Sx6vZQn5C+fPd8Zn2masWfCEACwJAIAkgCEYNACAHQZ+JAWohBQJAAkAgByAJa0EBcQ0AIAkhBgwBCyAJQQFqIQYgCTEAAELFz9my8eW66id+IACFQguJQoeVr6+Ytt6bnn9+IQALIAUgCUYNAANAIAZBAWoxAABCxc/ZsvHluuonfiAGMQAAQsXP2bLx5brqJ34gAIVCC4lCh5Wvr5i23puef36FQguJQoeVr6+Ytt6bnn9+IQAgBkECaiIGIAhHDQALC0EAIABCIYggAIVCz9bTvtLHq9lCfiIAQh2IIACFQvnz3fGZ9pmrFn4iAEIgiCAAhSIBQjiGIAFCgP4Dg0IohoQgAUKAgPwHg0IYhiABQoCAgPgPg0IIhoSEIABCCIhCgICA+A+DIABCGIhCgID8B4OEIABCKIhCgP4DgyAAQjiIhISENwOACQsGAEGAiQELAgALCwsBAEGACAsEUAAAAA==";
|
|
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 = "AGFzbQEAAAABGwVgAX8Bf2AAAX9gBH9/f38AYAF/AGADf39/AAMGBQABAgMEBQYBAQKAgAIGCAF/AUGQiAQLBzkEBm1lbW9yeQIAEkhhc2hfU2V0TWVtb3J5U2l6ZQAADkhhc2hfR2V0QnVmZmVyAAEGc2NyeXB0AAQK7iYFWAECf0EAIQECQCAAQQAoAogIIgJGDQACQCAAIAJrIgBBEHYgAEGAgHxxIABJaiIAQABBf0cNAEH/AcAPC0EAIQFBAEEAKQOICCAAQRB0rXw3A4gICyABwAtwAQJ/AkBBACgCgAgiAA0AQQA/AEEQdCIANgKACEEAKAKICCIBQYCAIEYNAAJAQYCAICABayIAQRB2IABBgIB8cSAASWoiAEAAQX9HDQBBAA8LQQBBACkDiAggAEEQdK18NwOICEEAKAKACCEACyAAC6QFAQN/IAIgA0EHdCAAakFAaiIEKQMANwMAIAIgBCkDCDcDCCACIAQpAxA3AxAgAiAEKQMYNwMYIAIgBCkDIDcDICACIAQpAyg3AyggAiAEKQMwNwMwIAIgBCkDODcDOAJAIANFDQAgA0EBdCEFIANBBnQhBkEAIQMDQCACIAIpAwAgACkDAIU3AwAgAiACKQMIIABBCGopAwCFNwMIIAIgAikDECAAQRBqKQMAhTcDECACIAIpAxggAEEYaikDAIU3AxggAiACKQMgIABBIGopAwCFNwMgIAIgAikDKCAAQShqKQMAhTcDKCACIAIpAzAgAEEwaikDAIU3AzAgAiACKQM4IABBOGopAwCFNwM4IAIQAyABIAIpAwA3AwAgAUEIaiACKQMINwMAIAFBEGogAikDEDcDACABQRhqIAIpAxg3AwAgAUEgaiACKQMgNwMAIAFBKGogAikDKDcDACABQTBqIAIpAzA3AwAgAUE4aiACKQM4NwMAIAIgAikDACAAQcAAaikDAIU3AwAgAiACKQMIIABByABqKQMAhTcDCCACIAIpAxAgAEHQAGopAwCFNwMQIAIgAikDGCAAQdgAaikDAIU3AxggAiACKQMgIABB4ABqKQMAhTcDICACIAIpAyggAEHoAGopAwCFNwMoIAIgAikDMCAAQfAAaikDAIU3AzAgAiACKQM4IABB+ABqKQMAhTcDOCACEAMgASAGaiIEIAIpAwA3AwAgBEEIaiACKQMINwMAIARBEGogAikDEDcDACAEQRhqIAIpAxg3AwAgBEEgaiACKQMgNwMAIARBKGogAikDKDcDACAEQTBqIAIpAzA3AwAgBEE4aiACKQM4NwMAIABBgAFqIQAgAUHAAGohASADQQJqIgMgBUkNAAsLC7oNCAF+AX8BfgF/AX4BfwF+En8gACAAKAIEIAApAygiAUIgiKciAiAAKQM4IgNCIIinIgRqQQd3IAApAwgiBUIgiKdzIgYgBGpBCXcgACkDGCIHQiCIp3MiCCAGakENdyACcyIJIAenIgogAaciC2pBB3cgA6dzIgIgC2pBCXcgBadzIgwgAmpBDXcgCnMiDSAMakESdyALcyIOIAApAwAiAUIgiKciDyAAKQMQIgNCIIinIhBqQQd3IAApAyAiBUIgiKdzIgtqQQd3cyIKIAkgCGpBEncgBHMiESACakEHdyAAKQMwIgenIgkgAaciEmpBB3cgA6dzIgQgEmpBCXcgBadzIhMgBGpBDXcgCXMiFHMiCSARakEJdyALIBBqQQl3IAdCIIincyIVcyIWIAlqQQ13IAJzIhcgFmpBEncgEXMiEWpBB3cgBiAUIBNqQRJ3IBJzIhJqQQd3IBUgC2pBDXcgD3MiFHMiAiASakEJdyAMcyIPIAJqQQ13IAZzIhhzIgYgEWpBCXcgCCANIBQgFWpBEncgEHMiECAEakEHd3MiDCAQakEJd3MiCHMiFSAGakENdyAKcyIUIAwgCiAOakEJdyATcyITIApqQQ13IAtzIhkgE2pBEncgDnMiCmpBB3cgF3MiCyAKakEJdyAPcyIOIAtqQQ13IAxzIhcgDmpBEncgCnMiDSACIAggDGpBDXcgBHMiDCAIakESdyAQcyIIakEHdyAZcyIKakEHd3MiBCAUIBVqQRJ3IBFzIhAgC2pBB3cgCSAYIA9qQRJ3IBJzIhFqQQd3IAxzIgwgEWpBCXcgE3MiEiAMakENdyAJcyIPcyIJIBBqQQl3IAogCGpBCXcgFnMiE3MiFiAJakENdyALcyIUIBZqQRJ3IBBzIhBqQQd3IAYgDyASakESdyARcyIRakEHdyATIApqQQ13IAJzIgtzIgIgEWpBCXcgDnMiDiACakENdyAGcyIYcyIGIBBqQQl3IBUgFyALIBNqQRJ3IAhzIgggDGpBB3dzIgsgCGpBCXdzIhNzIhUgBmpBDXcgBHMiFyALIAQgDWpBCXcgEnMiEiAEakENdyAKcyIZIBJqQRJ3IA1zIgRqQQd3IBRzIgogBGpBCXcgDnMiDyAKakENdyALcyIUIA9qQRJ3IARzIg0gAiATIAtqQQ13IAxzIgwgE2pBEncgCHMiCGpBB3cgGXMiC2pBB3dzIgQgFyAVakESdyAQcyIQIApqQQd3IAkgGCAOakESdyARcyIOakEHdyAMcyIMIA5qQQl3IBJzIhEgDGpBDXcgCXMiF3MiCSAQakEJdyALIAhqQQl3IBZzIhJzIhMgCWpBDXcgCnMiGCATakESdyAQcyIQakEHdyAGIBcgEWpBEncgDnMiCmpBB3cgEiALakENdyACcyIXcyICIApqQQl3IA9zIg4gAmpBDXcgBnMiFnMiBiAJIBYgDmpBEncgCnMiFmpBB3cgFSAUIBcgEmpBEncgCHMiCCAMakEHd3MiCiAIakEJd3MiEiAKakENdyAMcyIPcyIMIBZqQQl3IAQgDWpBCXcgEXMiEXMiFSAMakENdyAJcyIUIBVqQRJ3IBZzIglqQQd3IAIgDyASakESdyAIcyIIakEHdyARIARqQQ13IAtzIg9zIgsgCGpBCXcgE3MiEyALakENdyACcyIXcyIWajYCBCAAIAAoAgggFiAJakEJdyAKIA8gEWpBEncgDXMiEWpBB3cgGHMiAiARakEJdyAOcyIOcyIPajYCCCAAIAAoAgwgDyAWakENdyAGcyINajYCDCAAIAAoAhAgBiAQakEJdyAScyISIA4gAmpBDXcgCnMiGCAXIBNqQRJ3IAhzIgogDGpBB3dzIgggCmpBCXdzIhYgCGpBDXcgDHMiDGo2AhAgACAAKAIAIA0gD2pBEncgCXNqNgIAIAAgACgCFCAMIBZqQRJ3IApzajYCFCAAIAAoAhggCGo2AhggACAAKAIcIBZqNgIcIAAgACgCICASIAZqQQ13IARzIgkgGCAOakESdyARcyIGIAtqQQd3cyIKIAZqQQl3IBVzIgRqNgIgIAAgACgCJCAEIApqQQ13IAtzIgtqNgIkIAAgACgCKCALIARqQRJ3IAZzajYCKCAAIAAoAiwgCmo2AiwgACAAKAIwIAkgEmpBEncgEHMiBiACakEHdyAUcyILajYCMCAAIAAoAjQgCyAGakEJdyATcyIKajYCNCAAIAAoAjggCiALakENdyACcyICajYCOCAAIAAoAjwgAiAKakESdyAGc2o2AjwLvxIDFX8Bfg5/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 = "AGFzbQEAAAABDANgAAF/YAAAYAF/AAMIBwABAgIBAAIFBAEBAgIGDgJ/AUHwiQULfwBBgAgLB3AIBm1lbW9yeQIADkhhc2hfR2V0QnVmZmVyAAAJSGFzaF9Jbml0AAELSGFzaF9VcGRhdGUAAgpIYXNoX0ZpbmFsAAQNSGFzaF9HZXRTdGF0ZQAFDkhhc2hfQ2FsY3VsYXRlAAYKU1RBVEVfU0laRQMBCtodBwUAQYAJC1EAQQBCzdy3nO7Jw/2wfzcCoIkBQQBCvOG8y6qVzpgWNwKYiQFBAELXhZG5gcCBxVo3ApCJAUEAQu+sgJyX16yKyQA3AoiJAUEAQgA3AoCJAQvvAwEIfwJAIABFDQBBACEBQQBBACgCgIkBIgIgAGoiAzYCgIkBIAJBP3EhBAJAIAMgAk8NAEEAQQAoAoSJAUEBajYChIkBC0GACSECAkAgBEUNAAJAIABBwAAgBGsiBU8NACAEIQEMAQsgBEE/cyEGIARBqIkBaiECQYAJIQMCQAJAIAVBB3EiBw0AIAUhCAwBCyAHIQgDQCACIAMtAAA6AAAgAkEBaiECIANBAWohAyAIQX9qIggNAAtBwAAgByAEamshCAsCQCAGQQdJDQADQCACIAMpAAA3AAAgAkEIaiECIANBCGohAyAIQXhqIggNAAsLQaiJARADIAVBgAlqIQIgACAFayEACwJAIABBwABJDQADQCACEAMgAkHAAGohAiAAQUBqIgBBP0sNAAsLIABFDQAgAUGoiQFqIQMCQAJAIABBB3EiCA0AIAAhBAwBCyAAQThxIQQDQCADIAItAAA6AAAgA0EBaiEDIAJBAWohAiAIQX9qIggNAAsLIABBCEkNAANAIAMgAi0AADoAACADIAItAAE6AAEgAyACLQACOgACIAMgAi0AAzoAAyADIAItAAQ6AAQgAyACLQAFOgAFIAMgAi0ABjoABiADIAItAAc6AAcgA0EIaiEDIAJBCGohAiAEQXhqIgQNAAsLC+wLARl/IwBBkAJrIgEkACABIAAoAhgiAkEYdCACQYD+A3FBCHRyIAJBCHZBgP4DcSACQRh2cnIiAzYCGCABIAAoAhQiAkEYdCACQYD+A3FBCHRyIAJBCHZBgP4DcSACQRh2cnIiBDYCFCABIAAoAggiAkEYdCACQYD+A3FBCHRyIAJBCHZBgP4DcSACQRh2cnIiBTYCCCABIAAoAhAiAkEYdCACQYD+A3FBCHRyIAJBCHZBgP4DcSACQRh2cnIiBjYCECABIAAoAiAiAkEYdCACQYD+A3FBCHRyIAJBCHZBgP4DcSACQRh2cnIiBzYCICABIAAoAgQiAkEYdCACQYD+A3FBCHRyIAJBCHZBgP4DcSACQRh2cnIiCDYCBCABIAAoAgwiAkEYdCACQYD+A3FBCHRyIAJBCHZBgP4DcSACQRh2cnIiCTYCDCABIAAoAhwiAkEYdCACQYD+A3FBCHRyIAJBCHZBgP4DcSACQRh2cnIiCjYCHCABIAAoAgAiAkEYdCACQYD+A3FBCHRyIAJBCHZBgP4DcSACQRh2cnIiCzYCACAAKAIkIQIgASAAKAI0IgxBGHQgDEGA/gNxQQh0ciAMQQh2QYD+A3EgDEEYdnJyIg02AjQgASAAKAIoIgxBGHQgDEGA/gNxQQh0ciAMQQh2QYD+A3EgDEEYdnJyIg42AiggASALIA1BD3dzIApzIgxBF3cgDEEPd3MgCUEHd3MgDnMgDHMiCjYCQCABIAAoAjgiDEEYdCAMQYD+A3FBCHRyIAxBCHZBgP4DcSAMQRh2cnIiCzYCOCABIAAoAiwiDEEYdCAMQYD+A3FBCHRyIAxBCHZBgP4DcSAMQRh2cnIiDzYCLCABIAggC0EPd3MgB3MiDEEXdyAMQQ93cyAGQQd3cyAPcyAMczYCRCABIAAoAjwiDEEYdCAMQYD+A3FBCHRyIAxBCHZBgP4DcSAMQRh2cnIiDDYCPCABIAJBGHQgAkGA/gNxQQh0ciACQQh2QYD+A3EgAkEYdnJyIgI2AiQgASAAKAIwIgBBGHQgAEGA/gNxQQh0ciAAQQh2QYD+A3EgAEEYdnJyIgY2AjAgASAFIAxBD3dzIAJzIgBBF3cgAEEPd3MgBEEHd3MgBnMgAHM2AkggASAOIApBD3dzIAlzIgBBF3cgAEEPd3MgA0EHd3MgDXMgAHM2AkxBACEGQSAhByABIQxBACgCiIkBIhAhCUEAKAKkiQEiESEPQQAoAqCJASISIQ1BACgCnIkBIhMhCEEAKAKYiQEiFCEOQQAoApSJASIVIRZBACgCkIkBIhchA0EAKAKMiQEiGCELA0AgCCAOIgJzIA0iBHMgD2ogCSIAQQx3Ig0gAmpBmYqxzgcgB3ZBmYqxzgcgBnRyakEHdyIPaiAMKAIAIhlqIglBEXcgCUEJd3MgCXMhDiADIgUgC3MgAHMgFmogDyANc2ogDEEQaigCACAZc2ohCSAMQQRqIQwgB0F/aiEHIAhBE3chDSALQQl3IQMgBCEPIAIhCCAFIRYgACELIAZBAWoiBkEQRw0AC0EAIQZBECEHA0AgASAGaiIMQdAAaiAMQThqKAIAIAxBLGooAgAgDEEQaigCAHMgDEHEAGooAgAiFkEPd3MiCEEXd3MgCEEPd3MgDEEcaigCAEEHd3MgCHMiGTYCACANIg8gDiIMQX9zcSACIAxxciAEaiAJIghBDHciDSAMakGKu57UByAHd2pBB3ciBGogCmoiCUERdyAJQQl3cyAJcyEOIAggAyILIABycSALIABxciAFaiAEIA1zaiAZIApzaiEJIAZBBGohBiACQRN3IQ0gAEEJdyEDIBYhCiAPIQQgDCECIAshBSAIIQAgB0EBaiIHQcAARw0AC0EAIA8gEXM2AqSJAUEAIA0gEnM2AqCJAUEAIAwgE3M2ApyJAUEAIA4gFHM2ApiJAUEAIAsgFXM2ApSJAUEAIAMgF3M2ApCJAUEAIAggGHM2AoyJAUEAIAkgEHM2AoiJASABQZACaiQAC4ILAQp/IwBBEGsiACQAIABBACgCgIkBIgFBG3QgAUELdEGAgPwHcXIgAUEFdkGA/gNxIAFBA3RBGHZycjYCDCAAQQAoAoSJASICQQN0IgMgAUEddnIiBEEYdCAEQYD+A3FBCHRyIAJBBXZBgP4DcSADQRh2cnI2AggCQEE4QfgAIAFBP3EiBUE4SRsgBWsiA0UNAEEAIAMgAWoiATYCgIkBAkAgASADTw0AQQAgAkEBajYChIkBC0GQCCEBQQAhBgJAIAVFDQACQCADQcAAIAVrIgdPDQAgBSEGDAELIAVBP3MhCCAFQaiJAWohAUGQCCECAkACQCAHQQdxIgkNACAHIQQMAQsgCSEEA0AgASACLQAAOgAAIAFBAWohASACQQFqIQIgBEF/aiIEDQALQcAAIAkgBWprIQQLAkAgCEEHSQ0AA0AgASACKQAANwAAIAFBCGohASACQQhqIQIgBEF4aiIEDQALC0GoiQEQAyAHQZAIaiEBIAMgB2shAwsCQCADQcAASQ0AA0AgARADIAFBwABqIQEgA0FAaiIDQT9LDQALCyADRQ0AIAZBqIkBaiECAkACQCADQQdxIgQNACADIQUMAQsgA0E4cSEFA0AgAiABLQAAOgAAIAJBAWohAiABQQFqIQEgBEF/aiIEDQALCyADQQhJDQADQCACIAEtAAA6AAAgAiABLQABOgABIAIgAS0AAjoAAiACIAEtAAM6AAMgAiABLQAEOgAEIAIgAS0ABToABSACIAEtAAY6AAYgAiABLQAHOgAHIAJBCGohAiABQQhqIQEgBUF4aiIFDQALC0EAQQAoAoCJASICQQhqNgKAiQEgAkE/cSEBAkAgAkF4SQ0AQQBBACgChIkBQQFqNgKEiQELAkACQAJAAkAgAQ0AQQAhAQwBCyABQThJDQAgAUGoiQFqIAAtAAg6AAACQCABQT9GDQAgAUGpiQFqIAAtAAk6AAAgAUE+Rg0AIAFBqokBaiAALQAKOgAAIAFBPUYNACABQauJAWogAC0ACzoAACABQTxGDQAgAUGsiQFqIAAtAAw6AAAgAUE7Rg0AIAFBrYkBaiAALQANOgAAIAFBOkYNACABQa6JAWogAC0ADjoAACABQTlGDQAgAUGviQFqIAAtAA86AABBqIkBEAMMAwtBqIkBEAMgAkEHcSIERQ0CIAFBR2ohBSAAQQhqQcAAIAFraiECIAFBSGohBkGoiQEhASAEIQMDQCABIAItAAA6AAAgAUEBaiEBIAJBAWohAiADQX9qIgMNAAsgBUEHSQ0CIAYgBGshAwwBCyABQaiJAWohASAAQQhqIQJBCCEDCwNAIAEgAikAADcAACABQQhqIQEgAkEIaiECIANBeGoiAw0ACwtBAEEAKAKIiQEiAUEYdCABQYD+A3FBCHRyIAFBCHZBgP4DcSABQRh2cnI2AoAJQQBBACgCjIkBIgFBGHQgAUGA/gNxQQh0ciABQQh2QYD+A3EgAUEYdnJyNgKECUEAQQAoApCJASIBQRh0IAFBgP4DcUEIdHIgAUEIdkGA/gNxIAFBGHZycjYCiAlBAEEAKAKUiQEiAUEYdCABQYD+A3FBCHRyIAFBCHZBgP4DcSABQRh2cnI2AowJQQBBACgCmIkBIgFBGHQgAUGA/gNxQQh0ciABQQh2QYD+A3EgAUEYdnJyNgKQCUEAQQAoApyJASIBQRh0IAFBgP4DcUEIdHIgAUEIdkGA/gNxIAFBGHZycjYClAlBAEEAKAKgiQEiAUEYdCABQYD+A3FBCHRyIAFBCHZBgP4DcSABQRh2cnI2ApgJQQBBACgCpIkBIgFBGHQgAUGA/gNxQQh0ciABQQh2QYD+A3EgAUEYdnJyNgKcCSAAQRBqJAALBgBBgIkBC5UCAQR/QQBCzdy3nO7Jw/2wfzcCoIkBQQBCvOG8y6qVzpgWNwKYiQFBAELXhZG5gcCBxVo3ApCJAUEAQu+sgJyX16yKyQA3AoiJAUEAQgA3AoCJAQJAIABFDQBBACAANgKAiQFBgAkhAQJAIABBwABJDQBBgAkhAQNAIAEQAyABQcAAaiEBIABBQGoiAEE/Sw0ACyAARQ0BCyAAQX9qIQICQAJAIABBB3EiAw0AQaiJASEEDAELIABBeHEhAEGoiQEhBANAIAQgAS0AADoAACAEQQFqIQQgAUEBaiEBIANBf2oiAw0ACwsgAkEHSQ0AA0AgBCABKQAANwAAIARBCGohBCABQQhqIQEgAEF4aiIADQALCxAECwtRAgBBgAgLBGgAAAAAQZAIC0CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
|
|
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];
|
|
@@ -22316,6 +24361,20 @@ const result_Result = {
|
|
|
22316
24361
|
},
|
|
22317
24362
|
};
|
|
22318
24363
|
|
|
24364
|
+
;// CONCATENATED MODULE: ./packages/core/utils/safe-alloc-uint8array.ts
|
|
24365
|
+
// about 2GB, the maximum ArrayBuffer length on Chrome confirmed by several sources:
|
|
24366
|
+
// - https://issues.chromium.org/issues/40055619
|
|
24367
|
+
// - https://stackoverflow.com/a/72124984
|
|
24368
|
+
// - https://onnxruntime.ai/docs/tutorials/web/large-models.html#maximum-size-of-arraybuffer
|
|
24369
|
+
const MAX_LENGTH = 2145386496;
|
|
24370
|
+
function safe_alloc_uint8array_safeAllocUint8Array(length) {
|
|
24371
|
+
if (length > MAX_LENGTH) {
|
|
24372
|
+
// biome-ignore lint/suspicious/noConsole: can't have a dependency on logger here
|
|
24373
|
+
console.warn(`Trying to allocate ${length} bytes, which is greater than the maximum of ${MAX_LENGTH}.`);
|
|
24374
|
+
}
|
|
24375
|
+
return new Uint8Array(Math.min(MAX_LENGTH, length));
|
|
24376
|
+
}
|
|
24377
|
+
|
|
22319
24378
|
;// CONCATENATED MODULE: external "node:assert"
|
|
22320
24379
|
const external_node_assert_namespaceObject = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("node:assert");
|
|
22321
24380
|
;// CONCATENATED MODULE: ./packages/core/utils/test.ts
|
|
@@ -22559,6 +24618,7 @@ function isResult(x) {
|
|
|
22559
24618
|
|
|
22560
24619
|
|
|
22561
24620
|
|
|
24621
|
+
|
|
22562
24622
|
;// CONCATENATED MODULE: ./packages/core/bytes/bitvec.ts
|
|
22563
24623
|
|
|
22564
24624
|
/**
|
|
@@ -22580,7 +24640,7 @@ class bitvec_BitVec {
|
|
|
22580
24640
|
* Create new [`BitVec`] with all values set to `false`.
|
|
22581
24641
|
*/
|
|
22582
24642
|
static empty(bitLength) {
|
|
22583
|
-
const data =
|
|
24643
|
+
const data = safe_alloc_uint8array_safeAllocUint8Array(Math.ceil(bitLength / 8));
|
|
22584
24644
|
return new bitvec_BitVec(data, bitLength);
|
|
22585
24645
|
}
|
|
22586
24646
|
byteLength;
|
|
@@ -22780,7 +24840,7 @@ class bytes_BytesBlob {
|
|
|
22780
24840
|
static blobFromParts(v, ...rest) {
|
|
22781
24841
|
const vArr = v instanceof Uint8Array ? [v] : v;
|
|
22782
24842
|
const totalLength = vArr.reduce((a, v) => a + v.length, 0) + rest.reduce((a, v) => a + v.length, 0);
|
|
22783
|
-
const buffer =
|
|
24843
|
+
const buffer = safe_alloc_uint8array_safeAllocUint8Array(totalLength);
|
|
22784
24844
|
let offset = 0;
|
|
22785
24845
|
for (const r of vArr) {
|
|
22786
24846
|
buffer.set(r, offset);
|
|
@@ -22853,7 +24913,7 @@ class bytes_Bytes extends bytes_BytesBlob {
|
|
|
22853
24913
|
}
|
|
22854
24914
|
/** Create an empty [`Bytes<X>`] of given length. */
|
|
22855
24915
|
static zero(len) {
|
|
22856
|
-
return new bytes_Bytes(
|
|
24916
|
+
return new bytes_Bytes(safe_alloc_uint8array_safeAllocUint8Array(len), len);
|
|
22857
24917
|
}
|
|
22858
24918
|
// TODO [ToDr] `fill` should have the argments swapped to align with the rest.
|
|
22859
24919
|
/** Create a [`Bytes<X>`] with all bytes filled with given input number. */
|
|
@@ -23523,7 +25583,7 @@ function addSizeHints(a, b) {
|
|
|
23523
25583
|
};
|
|
23524
25584
|
}
|
|
23525
25585
|
const DEFAULT_START_LENGTH = 512; // 512B
|
|
23526
|
-
const
|
|
25586
|
+
const encoder_MAX_LENGTH = 10 * 1024 * 1024; // 10MB
|
|
23527
25587
|
/**
|
|
23528
25588
|
* JAM encoder.
|
|
23529
25589
|
*/
|
|
@@ -23539,7 +25599,7 @@ class encoder_Encoder {
|
|
|
23539
25599
|
return new encoder_Encoder(options.destination);
|
|
23540
25600
|
}
|
|
23541
25601
|
const startLength = options?.expectedLength ?? DEFAULT_START_LENGTH;
|
|
23542
|
-
const buffer = new ArrayBuffer(Math.min(
|
|
25602
|
+
const buffer = new ArrayBuffer(Math.min(encoder_MAX_LENGTH, startLength), { maxByteLength: encoder_MAX_LENGTH });
|
|
23543
25603
|
const destination = new Uint8Array(buffer);
|
|
23544
25604
|
return new encoder_Encoder(destination, buffer);
|
|
23545
25605
|
}
|
|
@@ -23872,11 +25932,11 @@ class encoder_Encoder {
|
|
|
23872
25932
|
ensureBigEnough(length, options = { silent: false }) {
|
|
23873
25933
|
debug_check `${length >= 0} Negative length given`;
|
|
23874
25934
|
const newLength = this.offset + length;
|
|
23875
|
-
if (newLength >
|
|
25935
|
+
if (newLength > encoder_MAX_LENGTH) {
|
|
23876
25936
|
if (options.silent) {
|
|
23877
25937
|
return;
|
|
23878
25938
|
}
|
|
23879
|
-
throw new Error(`The encoded size would reach the maximum of ${
|
|
25939
|
+
throw new Error(`The encoded size would reach the maximum of ${encoder_MAX_LENGTH}.`);
|
|
23880
25940
|
}
|
|
23881
25941
|
if (newLength > this.destination.length) {
|
|
23882
25942
|
// we can try to resize the underlying buffer
|
|
@@ -23884,7 +25944,7 @@ class encoder_Encoder {
|
|
|
23884
25944
|
// make sure we at least double the size of the buffer every time.
|
|
23885
25945
|
const minExtend = Math.max(newLength, this.buffer.byteLength << 1);
|
|
23886
25946
|
// but we must never exceed the max length.
|
|
23887
|
-
this.buffer.resize(Math.min(
|
|
25947
|
+
this.buffer.resize(Math.min(encoder_MAX_LENGTH, minExtend));
|
|
23888
25948
|
}
|
|
23889
25949
|
// and then check again
|
|
23890
25950
|
if (newLength > this.destination.length) {
|
|
@@ -25644,7 +27704,7 @@ async function ed25519_verify(input) {
|
|
|
25644
27704
|
return Promise.resolve([]);
|
|
25645
27705
|
}
|
|
25646
27706
|
const dataLength = input.reduce((acc, { message, key, signature }) => acc + key.length + signature.length + message.length + 1, 0);
|
|
25647
|
-
const data =
|
|
27707
|
+
const data = safe_alloc_uint8array_safeAllocUint8Array(dataLength);
|
|
25648
27708
|
let offset = 0;
|
|
25649
27709
|
for (const { key, message, signature } of input) {
|
|
25650
27710
|
data.set(key.raw, offset);
|
|
@@ -25679,6 +27739,64 @@ async function verifyBatch(input) {
|
|
|
25679
27739
|
return Promise.resolve(ed25519_wasm_exports.verify_ed25519_batch(data));
|
|
25680
27740
|
}
|
|
25681
27741
|
|
|
27742
|
+
;// CONCATENATED MODULE: ./packages/core/crypto/key-derivation.ts
|
|
27743
|
+
|
|
27744
|
+
|
|
27745
|
+
|
|
27746
|
+
|
|
27747
|
+
const SEED_SIZE = 32;
|
|
27748
|
+
const ED25519_SECRET_KEY = bytes_Bytes.blobFromString("jam_val_key_ed25519");
|
|
27749
|
+
const BANDERSNATCH_SECRET_KEY = bytes_Bytes.blobFromString("jam_val_key_bandersnatch");
|
|
27750
|
+
/**
|
|
27751
|
+
* JIP-5: Secret key derivation
|
|
27752
|
+
*
|
|
27753
|
+
* https://github.com/polkadot-fellows/JIPs/blob/7048f79edf4f4eb8bfe6fb42e6bbf61900f44c65/JIP-5.md */
|
|
27754
|
+
/**
|
|
27755
|
+
* Deriving a 32-byte seed from a 32-bit unsigned integer
|
|
27756
|
+
* https://github.com/polkadot-fellows/JIPs/blob/7048f79edf4f4eb8bfe6fb42e6bbf61900f44c65/JIP-5.md#trivial-seeds
|
|
27757
|
+
*/
|
|
27758
|
+
function trivialSeed(s) {
|
|
27759
|
+
const s_le = u32AsLeBytes(s);
|
|
27760
|
+
return Bytes.fromBlob(BytesBlob.blobFromParts([s_le, s_le, s_le, s_le, s_le, s_le, s_le, s_le]).raw, SEED_SIZE).asOpaque();
|
|
27761
|
+
}
|
|
27762
|
+
/**
|
|
27763
|
+
* Derives a Ed25519 secret key from a seed.
|
|
27764
|
+
* https://github.com/polkadot-fellows/JIPs/blob/7048f79edf4f4eb8bfe6fb42e6bbf61900f44c65/JIP-5.md#derivation-method
|
|
27765
|
+
*/
|
|
27766
|
+
function deriveEd25519SecretKey(seed, blake2b) {
|
|
27767
|
+
return blake2b.hashBytes(BytesBlob.blobFromParts([ED25519_SECRET_KEY.raw, seed.raw])).asOpaque();
|
|
27768
|
+
}
|
|
27769
|
+
/**
|
|
27770
|
+
* Derives a Bandersnatch secret key from a seed.
|
|
27771
|
+
* https://github.com/polkadot-fellows/JIPs/blob/7048f79edf4f4eb8bfe6fb42e6bbf61900f44c65/JIP-5.md#derivation-method
|
|
27772
|
+
*/
|
|
27773
|
+
function deriveBandersnatchSecretKey(seed, blake2b) {
|
|
27774
|
+
return blake2b.hashBytes(BytesBlob.blobFromParts([BANDERSNATCH_SECRET_KEY.raw, seed.raw])).asOpaque();
|
|
27775
|
+
}
|
|
27776
|
+
/**
|
|
27777
|
+
* Derive Ed25519 public key from secret seed
|
|
27778
|
+
*/
|
|
27779
|
+
async function deriveEd25519PublicKey(seed) {
|
|
27780
|
+
return (await privateKey(seed)).pubKey;
|
|
27781
|
+
}
|
|
27782
|
+
/**
|
|
27783
|
+
* Derive Bandersnatch public key from secret seed
|
|
27784
|
+
*/
|
|
27785
|
+
function deriveBandersnatchPublicKey(seed) {
|
|
27786
|
+
return publicKey(seed.raw);
|
|
27787
|
+
}
|
|
27788
|
+
|
|
27789
|
+
;// CONCATENATED MODULE: ./packages/core/crypto/index.ts
|
|
27790
|
+
|
|
27791
|
+
|
|
27792
|
+
|
|
27793
|
+
|
|
27794
|
+
|
|
27795
|
+
|
|
27796
|
+
|
|
27797
|
+
|
|
27798
|
+
// EXTERNAL MODULE: ./node_modules/hash-wasm/dist/index.umd.js
|
|
27799
|
+
var index_umd = __nccwpck_require__(1681);
|
|
25682
27800
|
;// CONCATENATED MODULE: ./packages/core/hash/hash.ts
|
|
25683
27801
|
|
|
25684
27802
|
|
|
@@ -25718,82 +27836,45 @@ class WithHashAndBytes extends WithHash {
|
|
|
25718
27836
|
}
|
|
25719
27837
|
}
|
|
25720
27838
|
|
|
25721
|
-
;// CONCATENATED MODULE: ./packages/core/hash/
|
|
27839
|
+
;// CONCATENATED MODULE: ./packages/core/hash/blake2b.ts
|
|
25722
27840
|
|
|
25723
27841
|
|
|
25724
27842
|
|
|
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();
|
|
27843
|
+
const zero = bytes_Bytes.zero(hash_HASH_SIZE);
|
|
27844
|
+
class blake2b_Blake2b {
|
|
27845
|
+
hasher;
|
|
27846
|
+
static async createHasher() {
|
|
27847
|
+
return new blake2b_Blake2b(await (0,index_umd.createBLAKE2b)(hash_HASH_SIZE * 8));
|
|
25741
27848
|
}
|
|
25742
|
-
|
|
25743
|
-
|
|
25744
|
-
this.currentHash = 0;
|
|
25745
|
-
this.page = new Uint8Array(pageSizeBytes);
|
|
27849
|
+
constructor(hasher) {
|
|
27850
|
+
this.hasher = hasher;
|
|
25746
27851
|
}
|
|
25747
|
-
|
|
25748
|
-
|
|
25749
|
-
|
|
25750
|
-
|
|
25751
|
-
|
|
25752
|
-
|
|
27852
|
+
/**
|
|
27853
|
+
* Hash given collection of blobs.
|
|
27854
|
+
*
|
|
27855
|
+
* If empty array is given a zero-hash is returned.
|
|
27856
|
+
*/
|
|
27857
|
+
hashBlobs(r) {
|
|
27858
|
+
if (r.length === 0) {
|
|
27859
|
+
return zero.asOpaque();
|
|
25753
27860
|
}
|
|
25754
|
-
|
|
27861
|
+
const hasher = this.hasher.init();
|
|
27862
|
+
for (const v of r) {
|
|
27863
|
+
hasher.update(v instanceof bytes_BytesBlob ? v.raw : v);
|
|
27864
|
+
}
|
|
27865
|
+
return bytes_Bytes.fromBlob(hasher.digest("binary"), hash_HASH_SIZE).asOpaque();
|
|
25755
27866
|
}
|
|
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();
|
|
27867
|
+
/** Hash given blob of bytes. */
|
|
27868
|
+
hashBytes(blob) {
|
|
27869
|
+
const hasher = this.hasher.init();
|
|
27870
|
+
const bytes = blob instanceof bytes_BytesBlob ? blob.raw : blob;
|
|
27871
|
+
hasher.update(bytes);
|
|
27872
|
+
return bytes_Bytes.fromBlob(hasher.digest("binary"), hash_HASH_SIZE).asOpaque();
|
|
25777
27873
|
}
|
|
25778
|
-
|
|
25779
|
-
|
|
25780
|
-
|
|
27874
|
+
/** Convert given string into bytes and hash it. */
|
|
27875
|
+
hashString(str) {
|
|
27876
|
+
return this.hashBytes(bytes_BytesBlob.blobFromString(str));
|
|
25781
27877
|
}
|
|
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
27878
|
}
|
|
25798
27879
|
|
|
25799
27880
|
;// CONCATENATED MODULE: ./packages/core/hash/keccak.ts
|
|
@@ -25819,70 +27900,12 @@ function keccak_hashBlobs(hasher, blobs) {
|
|
|
25819
27900
|
}
|
|
25820
27901
|
|
|
25821
27902
|
;// CONCATENATED MODULE: ./packages/core/hash/index.ts
|
|
25822
|
-
|
|
25823
27903
|
// TODO [ToDr] (#213) this should most likely be moved to a separate
|
|
25824
27904
|
// package to avoid pulling in unnecessary deps.
|
|
25825
27905
|
|
|
25826
27906
|
|
|
25827
27907
|
|
|
25828
27908
|
|
|
25829
|
-
;// CONCATENATED MODULE: ./packages/core/crypto/key-derivation.ts
|
|
25830
|
-
|
|
25831
|
-
|
|
25832
|
-
|
|
25833
|
-
|
|
25834
|
-
|
|
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
|
-
/**
|
|
25851
|
-
* Derives a Ed25519 secret key from a seed.
|
|
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
|
|
25872
|
-
*/
|
|
25873
|
-
function deriveBandersnatchPublicKey(seed) {
|
|
25874
|
-
return publicKey(seed.raw);
|
|
25875
|
-
}
|
|
25876
|
-
|
|
25877
|
-
;// CONCATENATED MODULE: ./packages/core/crypto/index.ts
|
|
25878
|
-
|
|
25879
|
-
|
|
25880
|
-
|
|
25881
|
-
|
|
25882
|
-
|
|
25883
|
-
|
|
25884
|
-
|
|
25885
|
-
|
|
25886
27909
|
;// CONCATENATED MODULE: ./packages/core/collections/hash-dictionary.ts
|
|
25887
27910
|
/** A map which uses hashes as keys. */
|
|
25888
27911
|
class hash_dictionary_HashDictionary {
|
|
@@ -29557,43 +31580,43 @@ var stateKeys;
|
|
|
29557
31580
|
}
|
|
29558
31581
|
stateKeys.serviceInfo = serviceInfo;
|
|
29559
31582
|
/** https://graypaper.fluffylabs.dev/#/1c979cb/3bba033bba03?v=0.7.1 */
|
|
29560
|
-
function serviceStorage(serviceId, key) {
|
|
31583
|
+
function serviceStorage(blake2b, serviceId, key) {
|
|
29561
31584
|
if (compatibility_Compatibility.isLessThan(compatibility_GpVersion.V0_6_7)) {
|
|
29562
31585
|
const out = bytes_Bytes.zero(hash_HASH_SIZE);
|
|
29563
31586
|
out.raw.set(numbers_u32AsLeBytes(numbers_tryAsU32(2 ** 32 - 1)), 0);
|
|
29564
31587
|
out.raw.set(key.raw.subarray(0, hash_HASH_SIZE - U32_BYTES), U32_BYTES);
|
|
29565
31588
|
return legacyServiceNested(serviceId, out);
|
|
29566
31589
|
}
|
|
29567
|
-
return serviceNested(serviceId, numbers_tryAsU32(2 ** 32 - 1), key);
|
|
31590
|
+
return serviceNested(blake2b, serviceId, numbers_tryAsU32(2 ** 32 - 1), key);
|
|
29568
31591
|
}
|
|
29569
31592
|
stateKeys.serviceStorage = serviceStorage;
|
|
29570
31593
|
/** https://graypaper.fluffylabs.dev/#/1c979cb/3bd7033bd703?v=0.7.1 */
|
|
29571
|
-
function servicePreimage(serviceId, hash) {
|
|
31594
|
+
function servicePreimage(blake2b, serviceId, hash) {
|
|
29572
31595
|
if (compatibility_Compatibility.isLessThan(compatibility_GpVersion.V0_6_7)) {
|
|
29573
31596
|
const out = bytes_Bytes.zero(hash_HASH_SIZE);
|
|
29574
31597
|
out.raw.set(numbers_u32AsLeBytes(numbers_tryAsU32(2 ** 32 - 2)), 0);
|
|
29575
31598
|
out.raw.set(hash.raw.subarray(1, hash_HASH_SIZE - U32_BYTES + 1), U32_BYTES);
|
|
29576
31599
|
return legacyServiceNested(serviceId, out);
|
|
29577
31600
|
}
|
|
29578
|
-
return serviceNested(serviceId, numbers_tryAsU32(2 ** 32 - 2), hash);
|
|
31601
|
+
return serviceNested(blake2b, serviceId, numbers_tryAsU32(2 ** 32 - 2), hash);
|
|
29579
31602
|
}
|
|
29580
31603
|
stateKeys.servicePreimage = servicePreimage;
|
|
29581
31604
|
/** https://graypaper.fluffylabs.dev/#/1c979cb/3b0a043b0a04?v=0.7.1 */
|
|
29582
|
-
function serviceLookupHistory(serviceId, hash, preimageLength) {
|
|
31605
|
+
function serviceLookupHistory(blake2b, serviceId, hash, preimageLength) {
|
|
29583
31606
|
if (compatibility_Compatibility.isLessThan(compatibility_GpVersion.V0_6_7)) {
|
|
29584
|
-
const doubleHash = hashBytes(hash);
|
|
31607
|
+
const doubleHash = blake2b.hashBytes(hash);
|
|
29585
31608
|
const out = bytes_Bytes.zero(hash_HASH_SIZE);
|
|
29586
31609
|
out.raw.set(numbers_u32AsLeBytes(preimageLength), 0);
|
|
29587
31610
|
out.raw.set(doubleHash.raw.subarray(2, hash_HASH_SIZE - U32_BYTES + 2), U32_BYTES);
|
|
29588
31611
|
return legacyServiceNested(serviceId, out);
|
|
29589
31612
|
}
|
|
29590
|
-
return serviceNested(serviceId, preimageLength, hash);
|
|
31613
|
+
return serviceNested(blake2b, serviceId, preimageLength, hash);
|
|
29591
31614
|
}
|
|
29592
31615
|
stateKeys.serviceLookupHistory = serviceLookupHistory;
|
|
29593
31616
|
/** https://graypaper.fluffylabs.dev/#/1c979cb/3b88003b8800?v=0.7.1 */
|
|
29594
|
-
function serviceNested(serviceId, numberPrefix, hash) {
|
|
31617
|
+
function serviceNested(blake2b, serviceId, numberPrefix, hash) {
|
|
29595
31618
|
const inputToHash = bytes_BytesBlob.blobFromParts(numbers_u32AsLeBytes(numberPrefix), hash.raw);
|
|
29596
|
-
const newHash = hashBytes(inputToHash).raw.subarray(0, 28);
|
|
31619
|
+
const newHash = blake2b.hashBytes(inputToHash).raw.subarray(0, 28);
|
|
29597
31620
|
const key = bytes_Bytes.zero(hash_HASH_SIZE);
|
|
29598
31621
|
let i = 0;
|
|
29599
31622
|
for (const byte of numbers_u32AsLeBytes(serviceId)) {
|
|
@@ -29662,13 +31685,6 @@ function accumulationOutputComparator(a, b) {
|
|
|
29662
31685
|
|
|
29663
31686
|
|
|
29664
31687
|
|
|
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
31688
|
/**
|
|
29673
31689
|
* Assignment of particular work report to a core.
|
|
29674
31690
|
*
|
|
@@ -29681,7 +31697,7 @@ class AvailabilityAssignment extends WithDebug {
|
|
|
29681
31697
|
workReport;
|
|
29682
31698
|
timeout;
|
|
29683
31699
|
static Codec = descriptors_codec.Class(AvailabilityAssignment, {
|
|
29684
|
-
workReport:
|
|
31700
|
+
workReport: WorkReport.Codec,
|
|
29685
31701
|
timeout: descriptors_codec.u32.asOpaque(),
|
|
29686
31702
|
});
|
|
29687
31703
|
static create({ workReport, timeout }) {
|
|
@@ -29741,6 +31757,10 @@ class DisputesRecords {
|
|
|
29741
31757
|
static create({ goodSet, badSet, wonkySet, punishSet }) {
|
|
29742
31758
|
return new DisputesRecords(goodSet, badSet, wonkySet, punishSet);
|
|
29743
31759
|
}
|
|
31760
|
+
goodSetDict;
|
|
31761
|
+
badSetDict;
|
|
31762
|
+
wonkySetDict;
|
|
31763
|
+
punishSetDict;
|
|
29744
31764
|
constructor(
|
|
29745
31765
|
/** `goodSet`: all work-reports hashes which were judged to be correct */
|
|
29746
31766
|
goodSet,
|
|
@@ -29754,6 +31774,18 @@ class DisputesRecords {
|
|
|
29754
31774
|
this.badSet = badSet;
|
|
29755
31775
|
this.wonkySet = wonkySet;
|
|
29756
31776
|
this.punishSet = punishSet;
|
|
31777
|
+
this.goodSetDict = HashSet.from(goodSet.array);
|
|
31778
|
+
this.badSetDict = HashSet.from(badSet.array);
|
|
31779
|
+
this.wonkySetDict = HashSet.from(wonkySet.array);
|
|
31780
|
+
this.punishSetDict = HashSet.from(punishSet.array);
|
|
31781
|
+
}
|
|
31782
|
+
asDictionaries() {
|
|
31783
|
+
return {
|
|
31784
|
+
goodSet: this.goodSetDict,
|
|
31785
|
+
badSet: this.badSetDict,
|
|
31786
|
+
wonkySet: this.wonkySetDict,
|
|
31787
|
+
punishSet: this.punishSetDict,
|
|
31788
|
+
};
|
|
29757
31789
|
}
|
|
29758
31790
|
static fromSortedArrays({ goodSet, badSet, wonkySet, punishSet, }) {
|
|
29759
31791
|
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));
|
|
@@ -31380,18 +33412,18 @@ var serialize_serialize;
|
|
|
31380
33412
|
Codec: ServiceAccountInfo.Codec,
|
|
31381
33413
|
});
|
|
31382
33414
|
/** https://graypaper.fluffylabs.dev/#/85129da/384803384803?v=0.6.3 */
|
|
31383
|
-
serialize.serviceStorage = (serviceId, key) => ({
|
|
31384
|
-
key: stateKeys.serviceStorage(serviceId, key),
|
|
33415
|
+
serialize.serviceStorage = (blake2b, serviceId, key) => ({
|
|
33416
|
+
key: stateKeys.serviceStorage(blake2b, serviceId, key),
|
|
31385
33417
|
Codec: dumpCodec,
|
|
31386
33418
|
});
|
|
31387
33419
|
/** https://graypaper.fluffylabs.dev/#/85129da/385b03385b03?v=0.6.3 */
|
|
31388
|
-
serialize.servicePreimages = (serviceId, hash) => ({
|
|
31389
|
-
key: stateKeys.servicePreimage(serviceId, hash),
|
|
33420
|
+
serialize.servicePreimages = (blake2b, serviceId, hash) => ({
|
|
33421
|
+
key: stateKeys.servicePreimage(blake2b, serviceId, hash),
|
|
31390
33422
|
Codec: dumpCodec,
|
|
31391
33423
|
});
|
|
31392
33424
|
/** https://graypaper.fluffylabs.dev/#/85129da/387603387603?v=0.6.3 */
|
|
31393
|
-
serialize.serviceLookupHistory = (serviceId, hash, len) => ({
|
|
31394
|
-
key: stateKeys.serviceLookupHistory(serviceId, hash, len),
|
|
33425
|
+
serialize.serviceLookupHistory = (blake2b, serviceId, hash, len) => ({
|
|
33426
|
+
key: stateKeys.serviceLookupHistory(blake2b, serviceId, hash, len),
|
|
31395
33427
|
Codec: readonlyArray(descriptors_codec.sequenceVarLen(descriptors_codec.u32)),
|
|
31396
33428
|
});
|
|
31397
33429
|
})(serialize_serialize || (serialize_serialize = {}));
|
|
@@ -31412,7 +33444,6 @@ const dumpCodec = descriptor_Descriptor.new("Dump", { bytes: 64, isExact: false
|
|
|
31412
33444
|
|
|
31413
33445
|
|
|
31414
33446
|
|
|
31415
|
-
|
|
31416
33447
|
/**
|
|
31417
33448
|
* State object which reads it's entries from some backend.
|
|
31418
33449
|
*
|
|
@@ -31423,20 +33454,22 @@ const dumpCodec = descriptor_Descriptor.new("Dump", { bytes: 64, isExact: false
|
|
|
31423
33454
|
*/
|
|
31424
33455
|
class serialized_state_SerializedState {
|
|
31425
33456
|
spec;
|
|
33457
|
+
blake2b;
|
|
31426
33458
|
backend;
|
|
31427
33459
|
_recentServiceIds;
|
|
31428
33460
|
/** 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);
|
|
33461
|
+
static fromStateEntries(spec, blake2b, state, recentServices = []) {
|
|
33462
|
+
return new serialized_state_SerializedState(spec, blake2b, state, recentServices);
|
|
31431
33463
|
}
|
|
31432
33464
|
/** Create a state-like object backed by some DB. */
|
|
31433
|
-
static new(spec, db, recentServices = []) {
|
|
31434
|
-
return new serialized_state_SerializedState(spec, db, recentServices);
|
|
33465
|
+
static new(spec, blake2b, db, recentServices = []) {
|
|
33466
|
+
return new serialized_state_SerializedState(spec, blake2b, db, recentServices);
|
|
31435
33467
|
}
|
|
31436
|
-
constructor(spec, backend,
|
|
33468
|
+
constructor(spec, blake2b, backend,
|
|
31437
33469
|
/** Best-effort list of recently active services. */
|
|
31438
33470
|
_recentServiceIds) {
|
|
31439
33471
|
this.spec = spec;
|
|
33472
|
+
this.blake2b = blake2b;
|
|
31440
33473
|
this.backend = backend;
|
|
31441
33474
|
this._recentServiceIds = _recentServiceIds;
|
|
31442
33475
|
}
|
|
@@ -31460,7 +33493,7 @@ class serialized_state_SerializedState {
|
|
|
31460
33493
|
if (!this._recentServiceIds.includes(id)) {
|
|
31461
33494
|
this._recentServiceIds.push(id);
|
|
31462
33495
|
}
|
|
31463
|
-
return new SerializedService(id, serviceData, (key) => this.retrieveOptional(key));
|
|
33496
|
+
return new SerializedService(this.blake2b, id, serviceData, (key) => this.retrieveOptional(key));
|
|
31464
33497
|
}
|
|
31465
33498
|
retrieve({ key, Codec }, description) {
|
|
31466
33499
|
const bytes = this.backend.get(key);
|
|
@@ -31536,12 +33569,14 @@ class serialized_state_SerializedState {
|
|
|
31536
33569
|
}
|
|
31537
33570
|
/** Service data representation on a serialized state. */
|
|
31538
33571
|
class SerializedService {
|
|
33572
|
+
blake2b;
|
|
31539
33573
|
serviceId;
|
|
31540
33574
|
accountInfo;
|
|
31541
33575
|
retrieveOptional;
|
|
31542
|
-
constructor(
|
|
33576
|
+
constructor(blake2b,
|
|
31543
33577
|
/** Service id */
|
|
31544
33578
|
serviceId, accountInfo, retrieveOptional) {
|
|
33579
|
+
this.blake2b = blake2b;
|
|
31545
33580
|
this.serviceId = serviceId;
|
|
31546
33581
|
this.accountInfo = accountInfo;
|
|
31547
33582
|
this.retrieveOptional = retrieveOptional;
|
|
@@ -31554,13 +33589,13 @@ class SerializedService {
|
|
|
31554
33589
|
getStorage(rawKey) {
|
|
31555
33590
|
if (Compatibility.isLessThan(GpVersion.V0_6_7)) {
|
|
31556
33591
|
const SERVICE_ID_BYTES = 4;
|
|
31557
|
-
const serviceIdAndKey =
|
|
33592
|
+
const serviceIdAndKey = safeAllocUint8Array(SERVICE_ID_BYTES + rawKey.length);
|
|
31558
33593
|
serviceIdAndKey.set(u32AsLeBytes(this.serviceId));
|
|
31559
33594
|
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;
|
|
33595
|
+
const key = asOpaqueType(BytesBlob.blobFrom(this.blake2b.hashBytes(serviceIdAndKey).raw));
|
|
33596
|
+
return this.retrieveOptional(serialize.serviceStorage(this.blake2b, this.serviceId, key)) ?? null;
|
|
31562
33597
|
}
|
|
31563
|
-
return this.retrieveOptional(serialize.serviceStorage(this.serviceId, rawKey)) ?? null;
|
|
33598
|
+
return this.retrieveOptional(serialize.serviceStorage(this.blake2b, this.serviceId, rawKey)) ?? null;
|
|
31564
33599
|
}
|
|
31565
33600
|
/**
|
|
31566
33601
|
* Check if preimage is present in the DB.
|
|
@@ -31569,15 +33604,15 @@ class SerializedService {
|
|
|
31569
33604
|
*/
|
|
31570
33605
|
hasPreimage(hash) {
|
|
31571
33606
|
// TODO [ToDr] consider optimizing to avoid fetching the whole data.
|
|
31572
|
-
return this.retrieveOptional(serialize.servicePreimages(this.serviceId, hash)) !== undefined;
|
|
33607
|
+
return this.retrieveOptional(serialize.servicePreimages(this.blake2b, this.serviceId, hash)) !== undefined;
|
|
31573
33608
|
}
|
|
31574
33609
|
/** Retrieve preimage from the DB. */
|
|
31575
33610
|
getPreimage(hash) {
|
|
31576
|
-
return this.retrieveOptional(serialize.servicePreimages(this.serviceId, hash)) ?? null;
|
|
33611
|
+
return this.retrieveOptional(serialize.servicePreimages(this.blake2b, this.serviceId, hash)) ?? null;
|
|
31577
33612
|
}
|
|
31578
33613
|
/** Retrieve preimage lookup history. */
|
|
31579
33614
|
getLookupHistory(hash, len) {
|
|
31580
|
-
const rawSlots = this.retrieveOptional(serialize.serviceLookupHistory(this.serviceId, hash, len));
|
|
33615
|
+
const rawSlots = this.retrieveOptional(serialize.serviceLookupHistory(this.blake2b, this.serviceId, hash, len));
|
|
31581
33616
|
if (rawSlots === undefined) {
|
|
31582
33617
|
return null;
|
|
31583
33618
|
}
|
|
@@ -31645,7 +33680,7 @@ class nodes_TrieNode {
|
|
|
31645
33680
|
raw;
|
|
31646
33681
|
constructor(
|
|
31647
33682
|
/** Exactly 512 bits / 64 bytes */
|
|
31648
|
-
raw =
|
|
33683
|
+
raw = safe_alloc_uint8array_safeAllocUint8Array(nodes_TRIE_NODE_BYTES)) {
|
|
31649
33684
|
this.raw = raw;
|
|
31650
33685
|
}
|
|
31651
33686
|
/** Returns the type of the node */
|
|
@@ -31863,7 +33898,7 @@ class WriteableNodesDb extends NodesDb {
|
|
|
31863
33898
|
|
|
31864
33899
|
/** Compare two trie `LeafNode`s only by their key. */
|
|
31865
33900
|
const trie_leafComparator = (x, y) => x.getKey().compare(y.getKey());
|
|
31866
|
-
const
|
|
33901
|
+
const trie_zero = bytes_Bytes.zero(hash_HASH_SIZE).asOpaque();
|
|
31867
33902
|
class trie_InMemoryTrie {
|
|
31868
33903
|
nodes;
|
|
31869
33904
|
root;
|
|
@@ -31876,7 +33911,7 @@ class trie_InMemoryTrie {
|
|
|
31876
33911
|
const sorted = leaves.slice();
|
|
31877
33912
|
const firstSorted = sorted.shift();
|
|
31878
33913
|
if (firstSorted === undefined) {
|
|
31879
|
-
return
|
|
33914
|
+
return trie_zero;
|
|
31880
33915
|
}
|
|
31881
33916
|
const nodes = [
|
|
31882
33917
|
{
|
|
@@ -31912,7 +33947,7 @@ class trie_InMemoryTrie {
|
|
|
31912
33947
|
const startDepth = isLastNode ? prevDepth : prevDepth + 1;
|
|
31913
33948
|
for (let i = startDepth; i <= currentDepth; i++) {
|
|
31914
33949
|
if (getBit(key, i) === false) {
|
|
31915
|
-
stack.push(
|
|
33950
|
+
stack.push(trie_zero);
|
|
31916
33951
|
}
|
|
31917
33952
|
}
|
|
31918
33953
|
// now let's push the hash of the current leaf
|
|
@@ -31928,16 +33963,16 @@ class trie_InMemoryTrie {
|
|
|
31928
33963
|
const endDepth = isLastNode ? currentDepth - 1 : currentDepth;
|
|
31929
33964
|
for (let i = prevDepth; i > endDepth; i--) {
|
|
31930
33965
|
if (getBit(key, i) === true) {
|
|
31931
|
-
stack.push(
|
|
33966
|
+
stack.push(trie_zero);
|
|
31932
33967
|
}
|
|
31933
|
-
const current = stack.pop() ??
|
|
31934
|
-
const next = stack.pop() ??
|
|
33968
|
+
const current = stack.pop() ?? trie_zero;
|
|
33969
|
+
const next = stack.pop() ?? trie_zero;
|
|
31935
33970
|
const branchNode = BranchNode.fromSubNodes(current, next);
|
|
31936
33971
|
const hash = hasher.hashConcat(branchNode.node.raw);
|
|
31937
33972
|
stack.push(hash);
|
|
31938
33973
|
}
|
|
31939
33974
|
}
|
|
31940
|
-
return stack.pop() ??
|
|
33975
|
+
return stack.pop() ?? trie_zero;
|
|
31941
33976
|
}
|
|
31942
33977
|
/**
|
|
31943
33978
|
* Construct a `LeafNode` from given `key` and `value`.
|
|
@@ -32070,7 +34105,7 @@ function findNodeToReplace(root, nodes, key) {
|
|
|
32070
34105
|
traversedPath.branchingHistory.push([branch, currentNodeHash, currBit]);
|
|
32071
34106
|
const nextNode = nodes.get(nextHash);
|
|
32072
34107
|
if (nextNode === null) {
|
|
32073
|
-
if (nextHash.isEqualTo(
|
|
34108
|
+
if (nextHash.isEqualTo(trie_zero)) {
|
|
32074
34109
|
return traversedPath;
|
|
32075
34110
|
}
|
|
32076
34111
|
throw new Error(`Missing trie node '${nextHash}' with key prefix: ${key}[0..${traversedPath.bitIndex}]`);
|
|
@@ -32221,12 +34256,13 @@ const bitLookup = [
|
|
|
32221
34256
|
;// CONCATENATED MODULE: ./packages/core/trie/hasher.ts
|
|
32222
34257
|
|
|
32223
34258
|
|
|
32224
|
-
|
|
32225
|
-
|
|
32226
|
-
|
|
32227
|
-
|
|
32228
|
-
|
|
32229
|
-
};
|
|
34259
|
+
function hasher_getBlake2bTrieHasher(hasher) {
|
|
34260
|
+
return {
|
|
34261
|
+
hashConcat(n, rest = []) {
|
|
34262
|
+
return hasher.hashBlobs([n, ...rest]);
|
|
34263
|
+
},
|
|
34264
|
+
};
|
|
34265
|
+
}
|
|
32230
34266
|
function getKeccakTrieHasher(hasher) {
|
|
32231
34267
|
return {
|
|
32232
34268
|
hashConcat(n, rest = []) {
|
|
@@ -32252,14 +34288,14 @@ var serialize_state_update_StateEntryUpdateAction;
|
|
|
32252
34288
|
})(serialize_state_update_StateEntryUpdateAction || (serialize_state_update_StateEntryUpdateAction = {}));
|
|
32253
34289
|
const EMPTY_BLOB = bytes_BytesBlob.empty();
|
|
32254
34290
|
/** Serialize given state update into a series of key-value pairs. */
|
|
32255
|
-
function* serialize_state_update_serializeStateUpdate(spec, update) {
|
|
34291
|
+
function* serialize_state_update_serializeStateUpdate(spec, blake2b, update) {
|
|
32256
34292
|
// first let's serialize all of the simple entries (if present!)
|
|
32257
34293
|
yield* serializeBasicKeys(spec, update);
|
|
32258
34294
|
const encode = (codec, val) => Encoder.encodeObject(codec, val, spec);
|
|
32259
34295
|
// then let's proceed with service updates
|
|
32260
|
-
yield* serializeServiceUpdates(update.servicesUpdates, encode);
|
|
32261
|
-
yield* serializePreimages(update.preimages, encode);
|
|
32262
|
-
yield* serializeStorage(update.storage);
|
|
34296
|
+
yield* serializeServiceUpdates(update.servicesUpdates, encode, blake2b);
|
|
34297
|
+
yield* serializePreimages(update.preimages, encode, blake2b);
|
|
34298
|
+
yield* serializeStorage(update.storage, blake2b);
|
|
32263
34299
|
yield* serializeRemovedServices(update.servicesRemoved);
|
|
32264
34300
|
}
|
|
32265
34301
|
function* serializeRemovedServices(servicesRemoved) {
|
|
@@ -32269,18 +34305,18 @@ function* serializeRemovedServices(servicesRemoved) {
|
|
|
32269
34305
|
yield [serialize_state_update_StateEntryUpdateAction.Remove, codec.key, EMPTY_BLOB];
|
|
32270
34306
|
}
|
|
32271
34307
|
}
|
|
32272
|
-
function* serializeStorage(storage) {
|
|
34308
|
+
function* serializeStorage(storage, blake2b) {
|
|
32273
34309
|
for (const { action, serviceId } of storage ?? []) {
|
|
32274
34310
|
switch (action.kind) {
|
|
32275
34311
|
case UpdateStorageKind.Set: {
|
|
32276
34312
|
const key = action.storage.key;
|
|
32277
|
-
const codec = serialize.serviceStorage(serviceId, key);
|
|
34313
|
+
const codec = serialize.serviceStorage(blake2b, serviceId, key);
|
|
32278
34314
|
yield [serialize_state_update_StateEntryUpdateAction.Insert, codec.key, action.storage.value];
|
|
32279
34315
|
break;
|
|
32280
34316
|
}
|
|
32281
34317
|
case UpdateStorageKind.Remove: {
|
|
32282
34318
|
const key = action.key;
|
|
32283
|
-
const codec = serialize.serviceStorage(serviceId, key);
|
|
34319
|
+
const codec = serialize.serviceStorage(blake2b, serviceId, key);
|
|
32284
34320
|
yield [serialize_state_update_StateEntryUpdateAction.Remove, codec.key, EMPTY_BLOB];
|
|
32285
34321
|
break;
|
|
32286
34322
|
}
|
|
@@ -32289,15 +34325,15 @@ function* serializeStorage(storage) {
|
|
|
32289
34325
|
}
|
|
32290
34326
|
}
|
|
32291
34327
|
}
|
|
32292
|
-
function* serializePreimages(preimages, encode) {
|
|
34328
|
+
function* serializePreimages(preimages, encode, blake2b) {
|
|
32293
34329
|
for (const { action, serviceId } of preimages ?? []) {
|
|
32294
34330
|
switch (action.kind) {
|
|
32295
34331
|
case UpdatePreimageKind.Provide: {
|
|
32296
34332
|
const { hash, blob } = action.preimage;
|
|
32297
|
-
const codec = serialize.servicePreimages(serviceId, hash);
|
|
34333
|
+
const codec = serialize.servicePreimages(blake2b, serviceId, hash);
|
|
32298
34334
|
yield [serialize_state_update_StateEntryUpdateAction.Insert, codec.key, blob];
|
|
32299
34335
|
if (action.slot !== null) {
|
|
32300
|
-
const codec2 = serialize.serviceLookupHistory(serviceId, hash, tryAsU32(blob.length));
|
|
34336
|
+
const codec2 = serialize.serviceLookupHistory(blake2b, serviceId, hash, tryAsU32(blob.length));
|
|
32301
34337
|
yield [
|
|
32302
34338
|
serialize_state_update_StateEntryUpdateAction.Insert,
|
|
32303
34339
|
codec2.key,
|
|
@@ -32308,15 +34344,15 @@ function* serializePreimages(preimages, encode) {
|
|
|
32308
34344
|
}
|
|
32309
34345
|
case UpdatePreimageKind.UpdateOrAdd: {
|
|
32310
34346
|
const { hash, length, slots } = action.item;
|
|
32311
|
-
const codec = serialize.serviceLookupHistory(serviceId, hash, length);
|
|
34347
|
+
const codec = serialize.serviceLookupHistory(blake2b, serviceId, hash, length);
|
|
32312
34348
|
yield [serialize_state_update_StateEntryUpdateAction.Insert, codec.key, encode(codec.Codec, slots)];
|
|
32313
34349
|
break;
|
|
32314
34350
|
}
|
|
32315
34351
|
case UpdatePreimageKind.Remove: {
|
|
32316
34352
|
const { hash, length } = action;
|
|
32317
|
-
const codec = serialize.servicePreimages(serviceId, hash);
|
|
34353
|
+
const codec = serialize.servicePreimages(blake2b, serviceId, hash);
|
|
32318
34354
|
yield [serialize_state_update_StateEntryUpdateAction.Remove, codec.key, EMPTY_BLOB];
|
|
32319
|
-
const codec2 = serialize.serviceLookupHistory(serviceId, hash, length);
|
|
34355
|
+
const codec2 = serialize.serviceLookupHistory(blake2b, serviceId, hash, length);
|
|
32320
34356
|
yield [serialize_state_update_StateEntryUpdateAction.Remove, codec2.key, EMPTY_BLOB];
|
|
32321
34357
|
break;
|
|
32322
34358
|
}
|
|
@@ -32325,7 +34361,7 @@ function* serializePreimages(preimages, encode) {
|
|
|
32325
34361
|
}
|
|
32326
34362
|
}
|
|
32327
34363
|
}
|
|
32328
|
-
function* serializeServiceUpdates(servicesUpdates, encode) {
|
|
34364
|
+
function* serializeServiceUpdates(servicesUpdates, encode, blake2b) {
|
|
32329
34365
|
for (const { action, serviceId } of servicesUpdates ?? []) {
|
|
32330
34366
|
// new service being created or updated
|
|
32331
34367
|
const codec = serialize.serviceData(serviceId);
|
|
@@ -32333,7 +34369,7 @@ function* serializeServiceUpdates(servicesUpdates, encode) {
|
|
|
32333
34369
|
// additional lookup history update
|
|
32334
34370
|
if (action.kind === UpdateServiceKind.Create && action.lookupHistory !== null) {
|
|
32335
34371
|
const { lookupHistory } = action;
|
|
32336
|
-
const codec2 = serialize.serviceLookupHistory(serviceId, lookupHistory.hash, lookupHistory.length);
|
|
34372
|
+
const codec2 = serialize.serviceLookupHistory(blake2b, serviceId, lookupHistory.hash, lookupHistory.length);
|
|
32337
34373
|
yield [serialize_state_update_StateEntryUpdateAction.Insert, codec2.key, encode(codec2.Codec, lookupHistory.slots)];
|
|
32338
34374
|
}
|
|
32339
34375
|
}
|
|
@@ -32437,8 +34473,8 @@ class state_entries_StateEntries {
|
|
|
32437
34473
|
},
|
|
32438
34474
|
}, (e, v) => stateEntriesSequenceCodec.encode(e, Array.from(v.entries)), (d) => state_entries_StateEntries.fromEntriesUnsafe(stateEntriesSequenceCodec.decode(d)), (s) => stateEntriesSequenceCodec.skip(s));
|
|
32439
34475
|
/** Turn in-memory state into it's serialized form. */
|
|
32440
|
-
static serializeInMemory(spec, state) {
|
|
32441
|
-
return new state_entries_StateEntries(convertInMemoryStateToDictionary(spec, state));
|
|
34476
|
+
static serializeInMemory(spec, blake2b, state) {
|
|
34477
|
+
return new state_entries_StateEntries(convertInMemoryStateToDictionary(spec, blake2b, state));
|
|
32442
34478
|
}
|
|
32443
34479
|
/**
|
|
32444
34480
|
* Wrap a collection of truncated state entries and treat it as state.
|
|
@@ -32487,16 +34523,17 @@ class state_entries_StateEntries {
|
|
|
32487
34523
|
}
|
|
32488
34524
|
}
|
|
32489
34525
|
/** https://graypaper.fluffylabs.dev/#/68eaa1f/391600391600?v=0.6.4 */
|
|
32490
|
-
getRootHash() {
|
|
34526
|
+
getRootHash(blake2b) {
|
|
34527
|
+
const blake2bTrieHasher = hasher_getBlake2bTrieHasher(blake2b);
|
|
32491
34528
|
const leaves = sorted_set_SortedSet.fromArray(trie_leafComparator);
|
|
32492
34529
|
for (const [key, value] of this) {
|
|
32493
|
-
leaves.insert(trie_InMemoryTrie.constructLeaf(
|
|
34530
|
+
leaves.insert(trie_InMemoryTrie.constructLeaf(blake2bTrieHasher, key.asOpaque(), value));
|
|
32494
34531
|
}
|
|
32495
|
-
return trie_InMemoryTrie.computeStateRoot(
|
|
34532
|
+
return trie_InMemoryTrie.computeStateRoot(blake2bTrieHasher, leaves).asOpaque();
|
|
32496
34533
|
}
|
|
32497
34534
|
}
|
|
32498
34535
|
/** https://graypaper.fluffylabs.dev/#/68eaa1f/38a50038a500?v=0.6.4 */
|
|
32499
|
-
function convertInMemoryStateToDictionary(spec, state) {
|
|
34536
|
+
function convertInMemoryStateToDictionary(spec, blake2b, state) {
|
|
32500
34537
|
const serialized = truncated_hash_dictionary_TruncatedHashDictionary.fromEntries([]);
|
|
32501
34538
|
function doSerialize(codec) {
|
|
32502
34539
|
serialized.set(codec.key, encoder_Encoder.encodeObject(codec.Codec, codec.extract(state), spec));
|
|
@@ -32524,18 +34561,18 @@ function convertInMemoryStateToDictionary(spec, state) {
|
|
|
32524
34561
|
serialized.set(key, encoder_Encoder.encodeObject(Codec, service.getInfo()));
|
|
32525
34562
|
// preimages
|
|
32526
34563
|
for (const preimage of service.data.preimages.values()) {
|
|
32527
|
-
const { key, Codec } = serialize_serialize.servicePreimages(serviceId, preimage.hash);
|
|
34564
|
+
const { key, Codec } = serialize_serialize.servicePreimages(blake2b, serviceId, preimage.hash);
|
|
32528
34565
|
serialized.set(key, encoder_Encoder.encodeObject(Codec, preimage.blob));
|
|
32529
34566
|
}
|
|
32530
34567
|
// storage
|
|
32531
34568
|
for (const storage of service.data.storage.values()) {
|
|
32532
|
-
const { key, Codec } = serialize_serialize.serviceStorage(serviceId, storage.key);
|
|
34569
|
+
const { key, Codec } = serialize_serialize.serviceStorage(blake2b, serviceId, storage.key);
|
|
32533
34570
|
serialized.set(key, encoder_Encoder.encodeObject(Codec, storage.value));
|
|
32534
34571
|
}
|
|
32535
34572
|
// lookup history
|
|
32536
34573
|
for (const lookupHistoryList of service.data.lookupHistory.values()) {
|
|
32537
34574
|
for (const lookupHistory of lookupHistoryList) {
|
|
32538
|
-
const { key, Codec } = serialize_serialize.serviceLookupHistory(serviceId, lookupHistory.hash, lookupHistory.length);
|
|
34575
|
+
const { key, Codec } = serialize_serialize.serviceLookupHistory(blake2b, serviceId, lookupHistory.hash, lookupHistory.length);
|
|
32539
34576
|
serialized.set(key, encoder_Encoder.encodeObject(Codec, lookupHistory.slots.slice()));
|
|
32540
34577
|
}
|
|
32541
34578
|
}
|
|
@@ -32546,9 +34583,9 @@ function convertInMemoryStateToDictionary(spec, state) {
|
|
|
32546
34583
|
;// CONCATENATED MODULE: ./packages/jam/state-merkleization/loader.ts
|
|
32547
34584
|
|
|
32548
34585
|
|
|
32549
|
-
function loadState(spec, entries) {
|
|
34586
|
+
function loadState(spec, blake2b, entries) {
|
|
32550
34587
|
const stateEntries = StateEntries.fromEntriesUnsafe(entries);
|
|
32551
|
-
return SerializedState.fromStateEntries(spec, stateEntries);
|
|
34588
|
+
return SerializedState.fromStateEntries(spec, blake2b, stateEntries);
|
|
32552
34589
|
}
|
|
32553
34590
|
|
|
32554
34591
|
;// CONCATENATED MODULE: ./packages/jam/state-merkleization/index.ts
|
|
@@ -32655,7 +34692,8 @@ class leaf_db_LeafDb {
|
|
|
32655
34692
|
}
|
|
32656
34693
|
assertNever(val);
|
|
32657
34694
|
}
|
|
32658
|
-
getStateRoot() {
|
|
34695
|
+
getStateRoot(blake2b) {
|
|
34696
|
+
const blake2bTrieHasher = getBlake2bTrieHasher(blake2b);
|
|
32659
34697
|
return InMemoryTrie.computeStateRoot(blake2bTrieHasher, this.leaves).asOpaque();
|
|
32660
34698
|
}
|
|
32661
34699
|
intoStateEntries() {
|
|
@@ -32837,6 +34875,7 @@ const in_memory_state_codec_inMemoryStateCodec = descriptors_codec.Class(InMemor
|
|
|
32837
34875
|
|
|
32838
34876
|
|
|
32839
34877
|
|
|
34878
|
+
|
|
32840
34879
|
/** A potential error that occured during state update. */
|
|
32841
34880
|
var states_StateUpdateError;
|
|
32842
34881
|
(function (StateUpdateError) {
|
|
@@ -32866,7 +34905,8 @@ class InMemoryStates {
|
|
|
32866
34905
|
}
|
|
32867
34906
|
}
|
|
32868
34907
|
async getStateRoot(state) {
|
|
32869
|
-
|
|
34908
|
+
const blake2b = await Blake2b.createHasher();
|
|
34909
|
+
return StateEntries.serializeInMemory(this.spec, blake2b, state).getRootHash(blake2b);
|
|
32870
34910
|
}
|
|
32871
34911
|
/** Insert a full state into the database. */
|
|
32872
34912
|
async insertState(headerHash, state) {
|
|
@@ -32948,11 +34988,13 @@ const states_logger = Logger.new(import.meta.filename, "db");
|
|
|
32948
34988
|
*/
|
|
32949
34989
|
class LmdbStates {
|
|
32950
34990
|
spec;
|
|
34991
|
+
blake2b;
|
|
32951
34992
|
root;
|
|
32952
34993
|
states;
|
|
32953
34994
|
values;
|
|
32954
|
-
constructor(spec, root) {
|
|
34995
|
+
constructor(spec, blake2b, root) {
|
|
32955
34996
|
this.spec = spec;
|
|
34997
|
+
this.blake2b = blake2b;
|
|
32956
34998
|
this.root = root;
|
|
32957
34999
|
this.states = this.root.subDb("states");
|
|
32958
35000
|
this.values = this.root.subDb("values");
|
|
@@ -32966,6 +35008,7 @@ class LmdbStates {
|
|
|
32966
35008
|
return await this.updateAndCommit(headerHash, SortedSet.fromArray(leafComparator, []), Array.from(serializedState, (x) => [StateEntryUpdateAction.Insert, x[0], x[1]]));
|
|
32967
35009
|
}
|
|
32968
35010
|
async updateAndCommit(headerHash, leafs, data) {
|
|
35011
|
+
const blake2bTrieHasher = getBlake2bTrieHasher(this.blake2b);
|
|
32969
35012
|
// We will collect all values that don't fit directly into leaf nodes.
|
|
32970
35013
|
const values = [];
|
|
32971
35014
|
for (const [action, key, value] of data) {
|
|
@@ -33007,12 +35050,12 @@ class LmdbStates {
|
|
|
33007
35050
|
async updateAndSetState(headerHash, state, update) {
|
|
33008
35051
|
// TODO [ToDr] We should probably detect a conflicting state (i.e. two services
|
|
33009
35052
|
// updated at once, etc), for now we're just ignoring it.
|
|
33010
|
-
const updatedValues = serializeStateUpdate(this.spec, update);
|
|
35053
|
+
const updatedValues = serializeStateUpdate(this.spec, this.blake2b, update);
|
|
33011
35054
|
// and finally we insert new values and store leaves in the DB.
|
|
33012
35055
|
return await this.updateAndCommit(headerHash, state.backend.leaves, updatedValues);
|
|
33013
35056
|
}
|
|
33014
35057
|
async getStateRoot(state) {
|
|
33015
|
-
return state.backend.getStateRoot();
|
|
35058
|
+
return state.backend.getStateRoot(this.blake2b);
|
|
33016
35059
|
}
|
|
33017
35060
|
getState(root) {
|
|
33018
35061
|
const leafNodes = this.states.get(root.raw);
|
|
@@ -33033,7 +35076,7 @@ class LmdbStates {
|
|
|
33033
35076
|
if (leafDbResult.isError) {
|
|
33034
35077
|
throw new Error(`Inconsistent DB. Invalid leaf nodes for ${root}: ${resultToString(leafDbResult)}`);
|
|
33035
35078
|
}
|
|
33036
|
-
return SerializedState.new(this.spec, leafDbResult.ok);
|
|
35079
|
+
return SerializedState.new(this.spec, this.blake2b, leafDbResult.ok);
|
|
33037
35080
|
}
|
|
33038
35081
|
}
|
|
33039
35082
|
|
|
@@ -35983,14 +38026,15 @@ const sync_logger = Logger.new(import.meta.filename, "net:sync");
|
|
|
35983
38026
|
const MAX_BLOCK_SEQUENCE = 128;
|
|
35984
38027
|
class SyncTask {
|
|
35985
38028
|
spec;
|
|
38029
|
+
blake2b;
|
|
35986
38030
|
streamManager;
|
|
35987
38031
|
connections;
|
|
35988
38032
|
blocks;
|
|
35989
38033
|
onNewBlocks;
|
|
35990
|
-
static start(spec, streamManager, connections, blocks,
|
|
38034
|
+
static start(spec, blake2b, streamManager, connections, blocks,
|
|
35991
38035
|
// TODO [ToDr] Use listener instead of a callback maybe?
|
|
35992
38036
|
onNewBlocks) {
|
|
35993
|
-
const syncTask = new SyncTask(spec, streamManager, connections, blocks, onNewBlocks);
|
|
38037
|
+
const syncTask = new SyncTask(spec, blake2b, streamManager, connections, blocks, onNewBlocks);
|
|
35994
38038
|
const getPeerForStream = (streamId) => {
|
|
35995
38039
|
// NOTE [ToDr] Needing to query stream manager for a peer might be a bit
|
|
35996
38040
|
// wasteful, since we probably know the peer when we dispatch the
|
|
@@ -36026,8 +38070,9 @@ class SyncTask {
|
|
|
36026
38070
|
}
|
|
36027
38071
|
// Other's best header hash with timeslot
|
|
36028
38072
|
othersBest;
|
|
36029
|
-
constructor(spec, streamManager, connections, blocks, onNewBlocks) {
|
|
38073
|
+
constructor(spec, blake2b, streamManager, connections, blocks, onNewBlocks) {
|
|
36030
38074
|
this.spec = spec;
|
|
38075
|
+
this.blake2b = blake2b;
|
|
36031
38076
|
this.streamManager = streamManager;
|
|
36032
38077
|
this.connections = connections;
|
|
36033
38078
|
this.blocks = blocks;
|
|
@@ -36064,7 +38109,7 @@ class SyncTask {
|
|
|
36064
38109
|
}
|
|
36065
38110
|
onUp0Annoucement(peer, announcement) {
|
|
36066
38111
|
const { hash, slot } = announcement.final;
|
|
36067
|
-
const bestHeader = hashHeader(announcement.header, this.spec);
|
|
38112
|
+
const bestHeader = hashHeader(this.blake2b, announcement.header, this.spec);
|
|
36068
38113
|
sync_logger.info `[${peer.id}] --> Received new header #${announcement.header.timeSlotIndex}: ${bestHeader.hash}`;
|
|
36069
38114
|
// NOTE [ToDr] Instead of having `Connections` store aux data perhaps
|
|
36070
38115
|
// we should maintain that directly? However that would require
|
|
@@ -36244,9 +38289,9 @@ var SyncResult;
|
|
|
36244
38289
|
/** Sent request to some peers. */
|
|
36245
38290
|
SyncResult[SyncResult["BlocksRequested"] = 3] = "BlocksRequested";
|
|
36246
38291
|
})(SyncResult || (SyncResult = {}));
|
|
36247
|
-
function hashHeader(header, spec) {
|
|
38292
|
+
function hashHeader(blake2b, header, spec) {
|
|
36248
38293
|
const encoded = encoder_Encoder.encodeObject(header_Header.Codec, header, spec);
|
|
36249
|
-
return new WithHash(hashBytes(encoded).asOpaque(), header);
|
|
38294
|
+
return new WithHash(blake2b.hashBytes(encoded).asOpaque(), header);
|
|
36250
38295
|
}
|
|
36251
38296
|
|
|
36252
38297
|
;// CONCATENATED MODULE: ./packages/jam/jamnp-s/network.ts
|
|
@@ -36258,8 +38303,10 @@ function hashHeader(header, spec) {
|
|
|
36258
38303
|
|
|
36259
38304
|
|
|
36260
38305
|
|
|
38306
|
+
|
|
36261
38307
|
const network_logger = Logger.new(import.meta.filename, "jamnps");
|
|
36262
38308
|
async function setup(bind, genesisHash, key, bootnodes, spec, blocks, onNewBlocks) {
|
|
38309
|
+
const blake2b = await blake2b_Blake2b.createHasher();
|
|
36263
38310
|
const genesisFirstBytes = genesisHash.toString().substring(2, 10);
|
|
36264
38311
|
const network = await Quic.setup({
|
|
36265
38312
|
host: bind.host,
|
|
@@ -36271,7 +38318,7 @@ async function setup(bind, genesisHash, key, bootnodes, spec, blocks, onNewBlock
|
|
|
36271
38318
|
connections.addPersistentRetry(bootnodes);
|
|
36272
38319
|
const streamManager = new StreamManager();
|
|
36273
38320
|
// start the networking tasks
|
|
36274
|
-
const syncTask = SyncTask.start(spec, streamManager, connections, blocks, onNewBlocks);
|
|
38321
|
+
const syncTask = SyncTask.start(spec, blake2b, streamManager, connections, blocks, onNewBlocks);
|
|
36275
38322
|
setImmediate(async () => {
|
|
36276
38323
|
while (network.isRunning) {
|
|
36277
38324
|
await (0,promises_namespaceObject.setTimeout)(3000);
|