@typeberry/jam 0.1.3-707962d → 0.1.3-8fd7637
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 +371 -5232
- package/bootstrap-generator.mjs.map +1 -1
- package/bootstrap-importer.mjs +6656 -7158
- package/bootstrap-importer.mjs.map +1 -1
- package/bootstrap-network.mjs +2961 -850
- package/bootstrap-network.mjs.map +1 -1
- package/index.js +9496 -9979
- package/index.js.map +1 -1
- package/package.json +1 -1
package/bootstrap-network.mjs
CHANGED
|
@@ -15436,694 +15436,2739 @@ exports.verifySchema = verifySchema;
|
|
|
15436
15436
|
|
|
15437
15437
|
/***/ }),
|
|
15438
15438
|
|
|
15439
|
-
/***/
|
|
15440
|
-
/***/ ((
|
|
15441
|
-
|
|
15442
|
-
function isBuffer (value) {
|
|
15443
|
-
return Buffer.isBuffer(value) || value instanceof Uint8Array
|
|
15444
|
-
}
|
|
15445
|
-
|
|
15446
|
-
function isEncoding (encoding) {
|
|
15447
|
-
return Buffer.isEncoding(encoding)
|
|
15448
|
-
}
|
|
15449
|
-
|
|
15450
|
-
function alloc (size, fill, encoding) {
|
|
15451
|
-
return Buffer.alloc(size, fill, encoding)
|
|
15452
|
-
}
|
|
15453
|
-
|
|
15454
|
-
function allocUnsafe (size) {
|
|
15455
|
-
return Buffer.allocUnsafe(size)
|
|
15456
|
-
}
|
|
15457
|
-
|
|
15458
|
-
function allocUnsafeSlow (size) {
|
|
15459
|
-
return Buffer.allocUnsafeSlow(size)
|
|
15460
|
-
}
|
|
15461
|
-
|
|
15462
|
-
function byteLength (string, encoding) {
|
|
15463
|
-
return Buffer.byteLength(string, encoding)
|
|
15464
|
-
}
|
|
15465
|
-
|
|
15466
|
-
function compare (a, b) {
|
|
15467
|
-
return Buffer.compare(a, b)
|
|
15468
|
-
}
|
|
15469
|
-
|
|
15470
|
-
function concat (buffers, totalLength) {
|
|
15471
|
-
return Buffer.concat(buffers, totalLength)
|
|
15472
|
-
}
|
|
15473
|
-
|
|
15474
|
-
function copy (source, target, targetStart, start, end) {
|
|
15475
|
-
return toBuffer(source).copy(target, targetStart, start, end)
|
|
15476
|
-
}
|
|
15477
|
-
|
|
15478
|
-
function equals (a, b) {
|
|
15479
|
-
return toBuffer(a).equals(b)
|
|
15480
|
-
}
|
|
15481
|
-
|
|
15482
|
-
function fill (buffer, value, offset, end, encoding) {
|
|
15483
|
-
return toBuffer(buffer).fill(value, offset, end, encoding)
|
|
15484
|
-
}
|
|
15485
|
-
|
|
15486
|
-
function from (value, encodingOrOffset, length) {
|
|
15487
|
-
return Buffer.from(value, encodingOrOffset, length)
|
|
15488
|
-
}
|
|
15489
|
-
|
|
15490
|
-
function includes (buffer, value, byteOffset, encoding) {
|
|
15491
|
-
return toBuffer(buffer).includes(value, byteOffset, encoding)
|
|
15492
|
-
}
|
|
15493
|
-
|
|
15494
|
-
function indexOf (buffer, value, byfeOffset, encoding) {
|
|
15495
|
-
return toBuffer(buffer).indexOf(value, byfeOffset, encoding)
|
|
15496
|
-
}
|
|
15497
|
-
|
|
15498
|
-
function lastIndexOf (buffer, value, byteOffset, encoding) {
|
|
15499
|
-
return toBuffer(buffer).lastIndexOf(value, byteOffset, encoding)
|
|
15500
|
-
}
|
|
15501
|
-
|
|
15502
|
-
function swap16 (buffer) {
|
|
15503
|
-
return toBuffer(buffer).swap16()
|
|
15504
|
-
}
|
|
15505
|
-
|
|
15506
|
-
function swap32 (buffer) {
|
|
15507
|
-
return toBuffer(buffer).swap32()
|
|
15508
|
-
}
|
|
15509
|
-
|
|
15510
|
-
function swap64 (buffer) {
|
|
15511
|
-
return toBuffer(buffer).swap64()
|
|
15512
|
-
}
|
|
15513
|
-
|
|
15514
|
-
function toBuffer (buffer) {
|
|
15515
|
-
if (Buffer.isBuffer(buffer)) return buffer
|
|
15516
|
-
return Buffer.from(buffer.buffer, buffer.byteOffset, buffer.byteLength)
|
|
15517
|
-
}
|
|
15518
|
-
|
|
15519
|
-
function toString (buffer, encoding, start, end) {
|
|
15520
|
-
return toBuffer(buffer).toString(encoding, start, end)
|
|
15521
|
-
}
|
|
15522
|
-
|
|
15523
|
-
function write (buffer, string, offset, length, encoding) {
|
|
15524
|
-
return toBuffer(buffer).write(string, offset, length, encoding)
|
|
15525
|
-
}
|
|
15526
|
-
|
|
15527
|
-
function writeDoubleLE (buffer, value, offset) {
|
|
15528
|
-
return toBuffer(buffer).writeDoubleLE(value, offset)
|
|
15529
|
-
}
|
|
15530
|
-
|
|
15531
|
-
function writeFloatLE (buffer, value, offset) {
|
|
15532
|
-
return toBuffer(buffer).writeFloatLE(value, offset)
|
|
15533
|
-
}
|
|
15534
|
-
|
|
15535
|
-
function writeUInt32LE (buffer, value, offset) {
|
|
15536
|
-
return toBuffer(buffer).writeUInt32LE(value, offset)
|
|
15537
|
-
}
|
|
15538
|
-
|
|
15539
|
-
function writeInt32LE (buffer, value, offset) {
|
|
15540
|
-
return toBuffer(buffer).writeInt32LE(value, offset)
|
|
15541
|
-
}
|
|
15542
|
-
|
|
15543
|
-
function readDoubleLE (buffer, offset) {
|
|
15544
|
-
return toBuffer(buffer).readDoubleLE(offset)
|
|
15545
|
-
}
|
|
15546
|
-
|
|
15547
|
-
function readFloatLE (buffer, offset) {
|
|
15548
|
-
return toBuffer(buffer).readFloatLE(offset)
|
|
15549
|
-
}
|
|
15550
|
-
|
|
15551
|
-
function readUInt32LE (buffer, offset) {
|
|
15552
|
-
return toBuffer(buffer).readUInt32LE(offset)
|
|
15553
|
-
}
|
|
15554
|
-
|
|
15555
|
-
function readInt32LE (buffer, offset) {
|
|
15556
|
-
return toBuffer(buffer).readInt32LE(offset)
|
|
15557
|
-
}
|
|
15558
|
-
|
|
15559
|
-
module.exports = {
|
|
15560
|
-
isBuffer,
|
|
15561
|
-
isEncoding,
|
|
15562
|
-
alloc,
|
|
15563
|
-
allocUnsafe,
|
|
15564
|
-
allocUnsafeSlow,
|
|
15565
|
-
byteLength,
|
|
15566
|
-
compare,
|
|
15567
|
-
concat,
|
|
15568
|
-
copy,
|
|
15569
|
-
equals,
|
|
15570
|
-
fill,
|
|
15571
|
-
from,
|
|
15572
|
-
includes,
|
|
15573
|
-
indexOf,
|
|
15574
|
-
lastIndexOf,
|
|
15575
|
-
swap16,
|
|
15576
|
-
swap32,
|
|
15577
|
-
swap64,
|
|
15578
|
-
toBuffer,
|
|
15579
|
-
toString,
|
|
15580
|
-
write,
|
|
15581
|
-
writeDoubleLE,
|
|
15582
|
-
writeFloatLE,
|
|
15583
|
-
writeUInt32LE,
|
|
15584
|
-
writeInt32LE,
|
|
15585
|
-
readDoubleLE,
|
|
15586
|
-
readFloatLE,
|
|
15587
|
-
readUInt32LE,
|
|
15588
|
-
readInt32LE
|
|
15589
|
-
}
|
|
15590
|
-
|
|
15591
|
-
|
|
15592
|
-
/***/ }),
|
|
15593
|
-
|
|
15594
|
-
/***/ 656:
|
|
15595
|
-
/***/ ((module) => {
|
|
15596
|
-
|
|
15597
|
-
var __commonJS = (cb, mod) => function __require() {
|
|
15598
|
-
return mod || (0, cb[Object.keys(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
|
15599
|
-
};
|
|
15600
|
-
var __toBinary = /* @__PURE__ */ (() => {
|
|
15601
|
-
var table = new Uint8Array(128);
|
|
15602
|
-
for (var i = 0; i < 64; i++)
|
|
15603
|
-
table[i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i * 4 - 205] = i;
|
|
15604
|
-
return (base64) => {
|
|
15605
|
-
var n = base64.length, bytes2 = new Uint8Array((n - (base64[n - 1] == "=") - (base64[n - 2] == "=")) * 3 / 4 | 0);
|
|
15606
|
-
for (var i2 = 0, j = 0; i2 < n; ) {
|
|
15607
|
-
var c0 = table[base64.charCodeAt(i2++)], c1 = table[base64.charCodeAt(i2++)];
|
|
15608
|
-
var c2 = table[base64.charCodeAt(i2++)], c3 = table[base64.charCodeAt(i2++)];
|
|
15609
|
-
bytes2[j++] = c0 << 2 | c1 >> 4;
|
|
15610
|
-
bytes2[j++] = c1 << 4 | c2 >> 2;
|
|
15611
|
-
bytes2[j++] = c2 << 6 | c3;
|
|
15612
|
-
}
|
|
15613
|
-
return bytes2;
|
|
15614
|
-
};
|
|
15615
|
-
})();
|
|
15616
|
-
|
|
15617
|
-
// wasm-binary:./blake2b.wat
|
|
15618
|
-
var require_blake2b = __commonJS({
|
|
15619
|
-
"wasm-binary:./blake2b.wat"(exports2, module2) {
|
|
15620
|
-
module2.exports = __toBinary("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");
|
|
15621
|
-
}
|
|
15622
|
-
});
|
|
15623
|
-
|
|
15624
|
-
// wasm-module:./blake2b.wat
|
|
15625
|
-
var bytes = require_blake2b();
|
|
15626
|
-
var compiled = WebAssembly.compile(bytes);
|
|
15627
|
-
module.exports = async (imports) => {
|
|
15628
|
-
const instance = await WebAssembly.instantiate(await compiled, imports);
|
|
15629
|
-
return instance.exports;
|
|
15630
|
-
};
|
|
15439
|
+
/***/ 1681:
|
|
15440
|
+
/***/ (function(__unused_webpack_module, exports) {
|
|
15631
15441
|
|
|
15442
|
+
/*!
|
|
15443
|
+
* hash-wasm (https://www.npmjs.com/package/hash-wasm)
|
|
15444
|
+
* (c) Dani Biro
|
|
15445
|
+
* @license MIT
|
|
15446
|
+
*/
|
|
15632
15447
|
|
|
15633
|
-
|
|
15448
|
+
(function (global, factory) {
|
|
15449
|
+
true ? factory(exports) :
|
|
15450
|
+
0;
|
|
15451
|
+
})(this, (function (exports) { 'use strict';
|
|
15452
|
+
|
|
15453
|
+
var name$l = "adler32";
|
|
15454
|
+
var data$l = "AGFzbQEAAAABDANgAAF/YAAAYAF/AAMHBgABAgEAAgUEAQECAgYOAn8BQYCJBQt/AEGACAsHcAgGbWVtb3J5AgAOSGFzaF9HZXRCdWZmZXIAAAlIYXNoX0luaXQAAQtIYXNoX1VwZGF0ZQACCkhhc2hfRmluYWwAAw1IYXNoX0dldFN0YXRlAAQOSGFzaF9DYWxjdWxhdGUABQpTVEFURV9TSVpFAwEK6wkGBQBBgAkLCgBBAEEBNgKECAvjCAEHf0EAKAKECCIBQf//A3EhAiABQRB2IQMCQAJAIABBAUcNACACQQAtAIAJaiIBQY+AfGogASABQfD/A0sbIgEgA2oiBEEQdCIFQYCAPGogBSAEQfD/A0sbIAFyIQEMAQsCQAJAAkACQAJAIABBEEkNAEGACSEGIABBsCtJDQFBgAkhBgNAQQAhBQNAIAYgBWoiASgCACIEQf8BcSACaiICIANqIAIgBEEIdkH/AXFqIgJqIAIgBEEQdkH/AXFqIgJqIAIgBEEYdmoiAmogAiABQQRqKAIAIgRB/wFxaiICaiACIARBCHZB/wFxaiICaiACIARBEHZB/wFxaiICaiACIARBGHZqIgJqIAIgAUEIaigCACIEQf8BcWoiAmogAiAEQQh2Qf8BcWoiAmogAiAEQRB2Qf8BcWoiAmogAiAEQRh2aiIEaiAEIAFBDGooAgAiAUH/AXFqIgRqIAQgAUEIdkH/AXFqIgRqIAQgAUEQdkH/AXFqIgRqIAQgAUEYdmoiAmohAyAFQRBqIgVBsCtHDQALIANB8f8DcCEDIAJB8f8DcCECIAZBsCtqIQYgAEHQVGoiAEGvK0sNAAsgAEUNBCAAQQ9LDQEMAgsCQCAARQ0AAkACQCAAQQNxIgUNAEGACSEBIAAhBAwBCyAAQXxxIQRBACEBA0AgAiABQYAJai0AAGoiAiADaiEDIAUgAUEBaiIBRw0ACyAFQYAJaiEBCyAAQQRJDQADQCACIAEtAABqIgUgAS0AAWoiBiABLQACaiIAIAFBA2otAABqIgIgACAGIAUgA2pqamohAyABQQRqIQEgBEF8aiIEDQALCyACQY+AfGogAiACQfD/A0sbIANB8f8DcEEQdHIhAQwECwNAIAYoAgAiAUH/AXEgAmoiBCADaiAEIAFBCHZB/wFxaiIEaiAEIAFBEHZB/wFxaiIEaiAEIAFBGHZqIgRqIAQgBkEEaigCACIBQf8BcWoiBGogBCABQQh2Qf8BcWoiBGogBCABQRB2Qf8BcWoiBGogBCABQRh2aiIEaiAEIAZBCGooAgAiAUH/AXFqIgRqIAQgAUEIdkH/AXFqIgRqIAQgAUEQdkH/AXFqIgRqIAQgAUEYdmoiBGogBCAGQQxqKAIAIgFB/wFxaiIEaiAEIAFBCHZB/wFxaiIEaiAEIAFBEHZB/wFxaiIEaiAEIAFBGHZqIgJqIQMgBkEQaiEGIABBcGoiAEEPSw0ACyAARQ0BCyAAQX9qIQcCQCAAQQNxIgVFDQAgAEF8cSEAIAUhBCAGIQEDQCACIAEtAABqIgIgA2ohAyABQQFqIQEgBEF/aiIEDQALIAYgBWohBgsgB0EDSQ0AA0AgAiAGLQAAaiIBIAYtAAFqIgQgBi0AAmoiBSAGQQNqLQAAaiICIAUgBCABIANqampqIQMgBkEEaiEGIABBfGoiAA0ACwsgA0Hx/wNwIQMgAkHx/wNwIQILIAIgA0EQdHIhAQtBACABNgKECAsxAQF/QQBBACgChAgiAEEYdCAAQYD+A3FBCHRyIABBCHZBgP4DcSAAQRh2cnI2AoAJCwUAQYQICzsAQQBBATYChAggABACQQBBACgChAgiAEEYdCAAQYD+A3FBCHRyIABBCHZBgP4DcSAAQRh2cnI2AoAJCwsVAgBBgAgLBAQAAAAAQYQICwQBAAAA";
|
|
15455
|
+
var hash$l = "02ddbd17";
|
|
15456
|
+
var wasmJson$l = {
|
|
15457
|
+
name: name$l,
|
|
15458
|
+
data: data$l,
|
|
15459
|
+
hash: hash$l
|
|
15460
|
+
};
|
|
15634
15461
|
|
|
15635
|
-
|
|
15636
|
-
|
|
15462
|
+
/******************************************************************************
|
|
15463
|
+
Copyright (c) Microsoft Corporation.
|
|
15464
|
+
|
|
15465
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
|
15466
|
+
purpose with or without fee is hereby granted.
|
|
15467
|
+
|
|
15468
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
15469
|
+
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
15470
|
+
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
15471
|
+
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
15472
|
+
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
15473
|
+
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
15474
|
+
PERFORMANCE OF THIS SOFTWARE.
|
|
15475
|
+
***************************************************************************** */
|
|
15476
|
+
/* global Reflect, Promise, SuppressedError, Symbol, Iterator */
|
|
15477
|
+
|
|
15478
|
+
|
|
15479
|
+
function __awaiter(thisArg, _arguments, P, generator) {
|
|
15480
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
15481
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
15482
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
15483
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
15484
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
15485
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
15486
|
+
});
|
|
15487
|
+
}
|
|
15488
|
+
|
|
15489
|
+
typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
|
15490
|
+
var e = new Error(message);
|
|
15491
|
+
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
15492
|
+
};
|
|
15637
15493
|
|
|
15638
|
-
|
|
15639
|
-
|
|
15640
|
-
|
|
15641
|
-
|
|
15642
|
-
|
|
15643
|
-
|
|
15644
|
-
|
|
15645
|
-
|
|
15646
|
-
|
|
15647
|
-
|
|
15648
|
-
|
|
15649
|
-
|
|
15650
|
-
|
|
15651
|
-
|
|
15652
|
-
|
|
15653
|
-
|
|
15654
|
-
|
|
15655
|
-
|
|
15656
|
-
|
|
15657
|
-
|
|
15658
|
-
|
|
15659
|
-
|
|
15660
|
-
if (!(this instanceof Blake2b)) return new Blake2b(digestLength, key, salt, personal, noAssert)
|
|
15661
|
-
if (!wasm) throw new Error('WASM not loaded. Wait for Blake2b.ready(cb)')
|
|
15662
|
-
if (!digestLength) digestLength = 32
|
|
15663
|
-
|
|
15664
|
-
if (noAssert !== true) {
|
|
15665
|
-
assert(digestLength >= BYTES_MIN, 'digestLength must be at least ' + BYTES_MIN + ', was given ' + digestLength)
|
|
15666
|
-
assert(digestLength <= BYTES_MAX, 'digestLength must be at most ' + BYTES_MAX + ', was given ' + digestLength)
|
|
15667
|
-
if (key != null) {
|
|
15668
|
-
assert(key instanceof Uint8Array, 'key must be Uint8Array or Buffer')
|
|
15669
|
-
assert(key.length >= KEYBYTES_MIN, 'key must be at least ' + KEYBYTES_MIN + ', was given ' + key.length)
|
|
15670
|
-
assert(key.length <= KEYBYTES_MAX, 'key must be at least ' + KEYBYTES_MAX + ', was given ' + key.length)
|
|
15671
|
-
}
|
|
15672
|
-
if (salt != null) {
|
|
15673
|
-
assert(salt instanceof Uint8Array, 'salt must be Uint8Array or Buffer')
|
|
15674
|
-
assert(salt.length === SALTBYTES, 'salt must be exactly ' + SALTBYTES + ', was given ' + salt.length)
|
|
15675
|
-
}
|
|
15676
|
-
if (personal != null) {
|
|
15677
|
-
assert(personal instanceof Uint8Array, 'personal must be Uint8Array or Buffer')
|
|
15678
|
-
assert(personal.length === PERSONALBYTES, 'personal must be exactly ' + PERSONALBYTES + ', was given ' + personal.length)
|
|
15494
|
+
class Mutex {
|
|
15495
|
+
constructor() {
|
|
15496
|
+
this.mutex = Promise.resolve();
|
|
15497
|
+
}
|
|
15498
|
+
lock() {
|
|
15499
|
+
let begin = () => { };
|
|
15500
|
+
this.mutex = this.mutex.then(() => new Promise(begin));
|
|
15501
|
+
return new Promise((res) => {
|
|
15502
|
+
begin = res;
|
|
15503
|
+
});
|
|
15504
|
+
}
|
|
15505
|
+
dispatch(fn) {
|
|
15506
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
15507
|
+
const unlock = yield this.lock();
|
|
15508
|
+
try {
|
|
15509
|
+
return yield Promise.resolve(fn());
|
|
15510
|
+
}
|
|
15511
|
+
finally {
|
|
15512
|
+
unlock();
|
|
15513
|
+
}
|
|
15514
|
+
});
|
|
15515
|
+
}
|
|
15679
15516
|
}
|
|
15680
|
-
}
|
|
15681
15517
|
|
|
15682
|
-
|
|
15683
|
-
|
|
15684
|
-
|
|
15685
|
-
|
|
15518
|
+
var _a;
|
|
15519
|
+
function getGlobal() {
|
|
15520
|
+
if (typeof globalThis !== "undefined")
|
|
15521
|
+
return globalThis;
|
|
15522
|
+
if (typeof self !== "undefined")
|
|
15523
|
+
return self;
|
|
15524
|
+
if (typeof window !== "undefined")
|
|
15525
|
+
return window;
|
|
15526
|
+
return global;
|
|
15527
|
+
}
|
|
15528
|
+
const globalObject = getGlobal();
|
|
15529
|
+
const nodeBuffer = (_a = globalObject.Buffer) !== null && _a !== void 0 ? _a : null;
|
|
15530
|
+
const textEncoder = globalObject.TextEncoder
|
|
15531
|
+
? new globalObject.TextEncoder()
|
|
15532
|
+
: null;
|
|
15533
|
+
function intArrayToString(arr, len) {
|
|
15534
|
+
return String.fromCharCode(...arr.subarray(0, len));
|
|
15535
|
+
}
|
|
15536
|
+
function hexCharCodesToInt(a, b) {
|
|
15537
|
+
return ((((a & 0xf) + ((a >> 6) | ((a >> 3) & 0x8))) << 4) |
|
|
15538
|
+
((b & 0xf) + ((b >> 6) | ((b >> 3) & 0x8))));
|
|
15539
|
+
}
|
|
15540
|
+
function writeHexToUInt8(buf, str) {
|
|
15541
|
+
const size = str.length >> 1;
|
|
15542
|
+
for (let i = 0; i < size; i++) {
|
|
15543
|
+
const index = i << 1;
|
|
15544
|
+
buf[i] = hexCharCodesToInt(str.charCodeAt(index), str.charCodeAt(index + 1));
|
|
15545
|
+
}
|
|
15546
|
+
}
|
|
15547
|
+
function hexStringEqualsUInt8(str, buf) {
|
|
15548
|
+
if (str.length !== buf.length * 2) {
|
|
15549
|
+
return false;
|
|
15550
|
+
}
|
|
15551
|
+
for (let i = 0; i < buf.length; i++) {
|
|
15552
|
+
const strIndex = i << 1;
|
|
15553
|
+
if (buf[i] !==
|
|
15554
|
+
hexCharCodesToInt(str.charCodeAt(strIndex), str.charCodeAt(strIndex + 1))) {
|
|
15555
|
+
return false;
|
|
15556
|
+
}
|
|
15557
|
+
}
|
|
15558
|
+
return true;
|
|
15559
|
+
}
|
|
15560
|
+
const alpha = "a".charCodeAt(0) - 10;
|
|
15561
|
+
const digit = "0".charCodeAt(0);
|
|
15562
|
+
function getDigestHex(tmpBuffer, input, hashLength) {
|
|
15563
|
+
let p = 0;
|
|
15564
|
+
for (let i = 0; i < hashLength; i++) {
|
|
15565
|
+
let nibble = input[i] >>> 4;
|
|
15566
|
+
tmpBuffer[p++] = nibble > 9 ? nibble + alpha : nibble + digit;
|
|
15567
|
+
nibble = input[i] & 0xf;
|
|
15568
|
+
tmpBuffer[p++] = nibble > 9 ? nibble + alpha : nibble + digit;
|
|
15569
|
+
}
|
|
15570
|
+
return String.fromCharCode.apply(null, tmpBuffer);
|
|
15571
|
+
}
|
|
15572
|
+
const getUInt8Buffer = nodeBuffer !== null
|
|
15573
|
+
? (data) => {
|
|
15574
|
+
if (typeof data === "string") {
|
|
15575
|
+
const buf = nodeBuffer.from(data, "utf8");
|
|
15576
|
+
return new Uint8Array(buf.buffer, buf.byteOffset, buf.length);
|
|
15577
|
+
}
|
|
15578
|
+
if (nodeBuffer.isBuffer(data)) {
|
|
15579
|
+
return new Uint8Array(data.buffer, data.byteOffset, data.length);
|
|
15580
|
+
}
|
|
15581
|
+
if (ArrayBuffer.isView(data)) {
|
|
15582
|
+
return new Uint8Array(data.buffer, data.byteOffset, data.byteLength);
|
|
15583
|
+
}
|
|
15584
|
+
throw new Error("Invalid data type!");
|
|
15585
|
+
}
|
|
15586
|
+
: (data) => {
|
|
15587
|
+
if (typeof data === "string") {
|
|
15588
|
+
return textEncoder.encode(data);
|
|
15589
|
+
}
|
|
15590
|
+
if (ArrayBuffer.isView(data)) {
|
|
15591
|
+
return new Uint8Array(data.buffer, data.byteOffset, data.byteLength);
|
|
15592
|
+
}
|
|
15593
|
+
throw new Error("Invalid data type!");
|
|
15594
|
+
};
|
|
15595
|
+
const base64Chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
|
|
15596
|
+
const base64Lookup = new Uint8Array(256);
|
|
15597
|
+
for (let i = 0; i < base64Chars.length; i++) {
|
|
15598
|
+
base64Lookup[base64Chars.charCodeAt(i)] = i;
|
|
15599
|
+
}
|
|
15600
|
+
function encodeBase64(data, pad = true) {
|
|
15601
|
+
const len = data.length;
|
|
15602
|
+
const extraBytes = len % 3;
|
|
15603
|
+
const parts = [];
|
|
15604
|
+
const len2 = len - extraBytes;
|
|
15605
|
+
for (let i = 0; i < len2; i += 3) {
|
|
15606
|
+
const tmp = ((data[i] << 16) & 0xff0000) +
|
|
15607
|
+
((data[i + 1] << 8) & 0xff00) +
|
|
15608
|
+
(data[i + 2] & 0xff);
|
|
15609
|
+
const triplet = base64Chars.charAt((tmp >> 18) & 0x3f) +
|
|
15610
|
+
base64Chars.charAt((tmp >> 12) & 0x3f) +
|
|
15611
|
+
base64Chars.charAt((tmp >> 6) & 0x3f) +
|
|
15612
|
+
base64Chars.charAt(tmp & 0x3f);
|
|
15613
|
+
parts.push(triplet);
|
|
15614
|
+
}
|
|
15615
|
+
if (extraBytes === 1) {
|
|
15616
|
+
const tmp = data[len - 1];
|
|
15617
|
+
const a = base64Chars.charAt(tmp >> 2);
|
|
15618
|
+
const b = base64Chars.charAt((tmp << 4) & 0x3f);
|
|
15619
|
+
parts.push(`${a}${b}`);
|
|
15620
|
+
if (pad) {
|
|
15621
|
+
parts.push("==");
|
|
15622
|
+
}
|
|
15623
|
+
}
|
|
15624
|
+
else if (extraBytes === 2) {
|
|
15625
|
+
const tmp = (data[len - 2] << 8) + data[len - 1];
|
|
15626
|
+
const a = base64Chars.charAt(tmp >> 10);
|
|
15627
|
+
const b = base64Chars.charAt((tmp >> 4) & 0x3f);
|
|
15628
|
+
const c = base64Chars.charAt((tmp << 2) & 0x3f);
|
|
15629
|
+
parts.push(`${a}${b}${c}`);
|
|
15630
|
+
if (pad) {
|
|
15631
|
+
parts.push("=");
|
|
15632
|
+
}
|
|
15633
|
+
}
|
|
15634
|
+
return parts.join("");
|
|
15635
|
+
}
|
|
15636
|
+
function getDecodeBase64Length(data) {
|
|
15637
|
+
let bufferLength = Math.floor(data.length * 0.75);
|
|
15638
|
+
const len = data.length;
|
|
15639
|
+
if (data[len - 1] === "=") {
|
|
15640
|
+
bufferLength -= 1;
|
|
15641
|
+
if (data[len - 2] === "=") {
|
|
15642
|
+
bufferLength -= 1;
|
|
15643
|
+
}
|
|
15644
|
+
}
|
|
15645
|
+
return bufferLength;
|
|
15646
|
+
}
|
|
15647
|
+
function decodeBase64(data) {
|
|
15648
|
+
const bufferLength = getDecodeBase64Length(data);
|
|
15649
|
+
const len = data.length;
|
|
15650
|
+
const bytes = new Uint8Array(bufferLength);
|
|
15651
|
+
let p = 0;
|
|
15652
|
+
for (let i = 0; i < len; i += 4) {
|
|
15653
|
+
const encoded1 = base64Lookup[data.charCodeAt(i)];
|
|
15654
|
+
const encoded2 = base64Lookup[data.charCodeAt(i + 1)];
|
|
15655
|
+
const encoded3 = base64Lookup[data.charCodeAt(i + 2)];
|
|
15656
|
+
const encoded4 = base64Lookup[data.charCodeAt(i + 3)];
|
|
15657
|
+
bytes[p] = (encoded1 << 2) | (encoded2 >> 4);
|
|
15658
|
+
p += 1;
|
|
15659
|
+
bytes[p] = ((encoded2 & 15) << 4) | (encoded3 >> 2);
|
|
15660
|
+
p += 1;
|
|
15661
|
+
bytes[p] = ((encoded3 & 3) << 6) | (encoded4 & 63);
|
|
15662
|
+
p += 1;
|
|
15663
|
+
}
|
|
15664
|
+
return bytes;
|
|
15665
|
+
}
|
|
15686
15666
|
|
|
15687
|
-
|
|
15688
|
-
|
|
15689
|
-
|
|
15690
|
-
|
|
15667
|
+
const MAX_HEAP = 16 * 1024;
|
|
15668
|
+
const WASM_FUNC_HASH_LENGTH = 4;
|
|
15669
|
+
const wasmMutex = new Mutex();
|
|
15670
|
+
const wasmModuleCache = new Map();
|
|
15671
|
+
function WASMInterface(binary, hashLength) {
|
|
15672
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
15673
|
+
let wasmInstance = null;
|
|
15674
|
+
let memoryView = null;
|
|
15675
|
+
let initialized = false;
|
|
15676
|
+
if (typeof WebAssembly === "undefined") {
|
|
15677
|
+
throw new Error("WebAssembly is not supported in this environment!");
|
|
15678
|
+
}
|
|
15679
|
+
const writeMemory = (data, offset = 0) => {
|
|
15680
|
+
memoryView.set(data, offset);
|
|
15681
|
+
};
|
|
15682
|
+
const getMemory = () => memoryView;
|
|
15683
|
+
const getExports = () => wasmInstance.exports;
|
|
15684
|
+
const setMemorySize = (totalSize) => {
|
|
15685
|
+
wasmInstance.exports.Hash_SetMemorySize(totalSize);
|
|
15686
|
+
const arrayOffset = wasmInstance.exports.Hash_GetBuffer();
|
|
15687
|
+
const memoryBuffer = wasmInstance.exports.memory.buffer;
|
|
15688
|
+
memoryView = new Uint8Array(memoryBuffer, arrayOffset, totalSize);
|
|
15689
|
+
};
|
|
15690
|
+
const getStateSize = () => {
|
|
15691
|
+
const view = new DataView(wasmInstance.exports.memory.buffer);
|
|
15692
|
+
const stateSize = view.getUint32(wasmInstance.exports.STATE_SIZE, true);
|
|
15693
|
+
return stateSize;
|
|
15694
|
+
};
|
|
15695
|
+
const loadWASMPromise = wasmMutex.dispatch(() => __awaiter(this, void 0, void 0, function* () {
|
|
15696
|
+
if (!wasmModuleCache.has(binary.name)) {
|
|
15697
|
+
const asm = decodeBase64(binary.data);
|
|
15698
|
+
const promise = WebAssembly.compile(asm);
|
|
15699
|
+
wasmModuleCache.set(binary.name, promise);
|
|
15700
|
+
}
|
|
15701
|
+
const module = yield wasmModuleCache.get(binary.name);
|
|
15702
|
+
wasmInstance = yield WebAssembly.instantiate(module, {
|
|
15703
|
+
// env: {
|
|
15704
|
+
// emscripten_memcpy_big: (dest, src, num) => {
|
|
15705
|
+
// const memoryBuffer = wasmInstance.exports.memory.buffer;
|
|
15706
|
+
// const memView = new Uint8Array(memoryBuffer, 0);
|
|
15707
|
+
// memView.set(memView.subarray(src, src + num), dest);
|
|
15708
|
+
// },
|
|
15709
|
+
// print_memory: (offset, len) => {
|
|
15710
|
+
// const memoryBuffer = wasmInstance.exports.memory.buffer;
|
|
15711
|
+
// const memView = new Uint8Array(memoryBuffer, 0);
|
|
15712
|
+
// console.log('print_int32', memView.subarray(offset, offset + len));
|
|
15713
|
+
// },
|
|
15714
|
+
// },
|
|
15715
|
+
});
|
|
15716
|
+
// wasmInstance.exports._start();
|
|
15717
|
+
}));
|
|
15718
|
+
const setupInterface = () => __awaiter(this, void 0, void 0, function* () {
|
|
15719
|
+
if (!wasmInstance) {
|
|
15720
|
+
yield loadWASMPromise;
|
|
15721
|
+
}
|
|
15722
|
+
const arrayOffset = wasmInstance.exports.Hash_GetBuffer();
|
|
15723
|
+
const memoryBuffer = wasmInstance.exports.memory.buffer;
|
|
15724
|
+
memoryView = new Uint8Array(memoryBuffer, arrayOffset, MAX_HEAP);
|
|
15725
|
+
});
|
|
15726
|
+
const init = (bits = null) => {
|
|
15727
|
+
initialized = true;
|
|
15728
|
+
wasmInstance.exports.Hash_Init(bits);
|
|
15729
|
+
};
|
|
15730
|
+
const updateUInt8Array = (data) => {
|
|
15731
|
+
let read = 0;
|
|
15732
|
+
while (read < data.length) {
|
|
15733
|
+
const chunk = data.subarray(read, read + MAX_HEAP);
|
|
15734
|
+
read += chunk.length;
|
|
15735
|
+
memoryView.set(chunk);
|
|
15736
|
+
wasmInstance.exports.Hash_Update(chunk.length);
|
|
15737
|
+
}
|
|
15738
|
+
};
|
|
15739
|
+
const update = (data) => {
|
|
15740
|
+
if (!initialized) {
|
|
15741
|
+
throw new Error("update() called before init()");
|
|
15742
|
+
}
|
|
15743
|
+
const Uint8Buffer = getUInt8Buffer(data);
|
|
15744
|
+
updateUInt8Array(Uint8Buffer);
|
|
15745
|
+
};
|
|
15746
|
+
const digestChars = new Uint8Array(hashLength * 2);
|
|
15747
|
+
const digest = (outputType, padding = null) => {
|
|
15748
|
+
if (!initialized) {
|
|
15749
|
+
throw new Error("digest() called before init()");
|
|
15750
|
+
}
|
|
15751
|
+
initialized = false;
|
|
15752
|
+
wasmInstance.exports.Hash_Final(padding);
|
|
15753
|
+
if (outputType === "binary") {
|
|
15754
|
+
// the data is copied to allow GC of the original memory object
|
|
15755
|
+
return memoryView.slice(0, hashLength);
|
|
15756
|
+
}
|
|
15757
|
+
return getDigestHex(digestChars, memoryView, hashLength);
|
|
15758
|
+
};
|
|
15759
|
+
const save = () => {
|
|
15760
|
+
if (!initialized) {
|
|
15761
|
+
throw new Error("save() can only be called after init() and before digest()");
|
|
15762
|
+
}
|
|
15763
|
+
const stateOffset = wasmInstance.exports.Hash_GetState();
|
|
15764
|
+
const stateLength = getStateSize();
|
|
15765
|
+
const memoryBuffer = wasmInstance.exports.memory.buffer;
|
|
15766
|
+
const internalState = new Uint8Array(memoryBuffer, stateOffset, stateLength);
|
|
15767
|
+
// prefix is 4 bytes from SHA1 hash of the WASM binary
|
|
15768
|
+
// it is used to detect incompatible internal states between different versions of hash-wasm
|
|
15769
|
+
const prefixedState = new Uint8Array(WASM_FUNC_HASH_LENGTH + stateLength);
|
|
15770
|
+
writeHexToUInt8(prefixedState, binary.hash);
|
|
15771
|
+
prefixedState.set(internalState, WASM_FUNC_HASH_LENGTH);
|
|
15772
|
+
return prefixedState;
|
|
15773
|
+
};
|
|
15774
|
+
const load = (state) => {
|
|
15775
|
+
if (!(state instanceof Uint8Array)) {
|
|
15776
|
+
throw new Error("load() expects an Uint8Array generated by save()");
|
|
15777
|
+
}
|
|
15778
|
+
const stateOffset = wasmInstance.exports.Hash_GetState();
|
|
15779
|
+
const stateLength = getStateSize();
|
|
15780
|
+
const overallLength = WASM_FUNC_HASH_LENGTH + stateLength;
|
|
15781
|
+
const memoryBuffer = wasmInstance.exports.memory.buffer;
|
|
15782
|
+
if (state.length !== overallLength) {
|
|
15783
|
+
throw new Error(`Bad state length (expected ${overallLength} bytes, got ${state.length})`);
|
|
15784
|
+
}
|
|
15785
|
+
if (!hexStringEqualsUInt8(binary.hash, state.subarray(0, WASM_FUNC_HASH_LENGTH))) {
|
|
15786
|
+
throw new Error("This state was written by an incompatible hash implementation");
|
|
15787
|
+
}
|
|
15788
|
+
const internalState = state.subarray(WASM_FUNC_HASH_LENGTH);
|
|
15789
|
+
new Uint8Array(memoryBuffer, stateOffset, stateLength).set(internalState);
|
|
15790
|
+
initialized = true;
|
|
15791
|
+
};
|
|
15792
|
+
const isDataShort = (data) => {
|
|
15793
|
+
if (typeof data === "string") {
|
|
15794
|
+
// worst case is 4 bytes / char
|
|
15795
|
+
return data.length < MAX_HEAP / 4;
|
|
15796
|
+
}
|
|
15797
|
+
return data.byteLength < MAX_HEAP;
|
|
15798
|
+
};
|
|
15799
|
+
let canSimplify = isDataShort;
|
|
15800
|
+
switch (binary.name) {
|
|
15801
|
+
case "argon2":
|
|
15802
|
+
case "scrypt":
|
|
15803
|
+
canSimplify = () => true;
|
|
15804
|
+
break;
|
|
15805
|
+
case "blake2b":
|
|
15806
|
+
case "blake2s":
|
|
15807
|
+
// if there is a key at blake2 then cannot simplify
|
|
15808
|
+
canSimplify = (data, initParam) => initParam <= 512 && isDataShort(data);
|
|
15809
|
+
break;
|
|
15810
|
+
case "blake3":
|
|
15811
|
+
// if there is a key at blake3 then cannot simplify
|
|
15812
|
+
canSimplify = (data, initParam) => initParam === 0 && isDataShort(data);
|
|
15813
|
+
break;
|
|
15814
|
+
case "xxhash64": // cannot simplify
|
|
15815
|
+
case "xxhash3":
|
|
15816
|
+
case "xxhash128":
|
|
15817
|
+
case "crc64":
|
|
15818
|
+
canSimplify = () => false;
|
|
15819
|
+
break;
|
|
15820
|
+
}
|
|
15821
|
+
// shorthand for (init + update + digest) for better performance
|
|
15822
|
+
const calculate = (data, initParam = null, digestParam = null) => {
|
|
15823
|
+
if (!canSimplify(data, initParam)) {
|
|
15824
|
+
init(initParam);
|
|
15825
|
+
update(data);
|
|
15826
|
+
return digest("hex", digestParam);
|
|
15827
|
+
}
|
|
15828
|
+
const buffer = getUInt8Buffer(data);
|
|
15829
|
+
memoryView.set(buffer);
|
|
15830
|
+
wasmInstance.exports.Hash_Calculate(buffer.length, initParam, digestParam);
|
|
15831
|
+
return getDigestHex(digestChars, memoryView, hashLength);
|
|
15832
|
+
};
|
|
15833
|
+
yield setupInterface();
|
|
15834
|
+
return {
|
|
15835
|
+
getMemory,
|
|
15836
|
+
writeMemory,
|
|
15837
|
+
getExports,
|
|
15838
|
+
setMemorySize,
|
|
15839
|
+
init,
|
|
15840
|
+
update,
|
|
15841
|
+
digest,
|
|
15842
|
+
save,
|
|
15843
|
+
load,
|
|
15844
|
+
calculate,
|
|
15845
|
+
hashLength,
|
|
15846
|
+
};
|
|
15847
|
+
});
|
|
15848
|
+
}
|
|
15691
15849
|
|
|
15692
|
-
|
|
15693
|
-
|
|
15694
|
-
|
|
15695
|
-
|
|
15696
|
-
|
|
15850
|
+
function lockedCreate(mutex, binary, hashLength) {
|
|
15851
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
15852
|
+
const unlock = yield mutex.lock();
|
|
15853
|
+
const wasm = yield WASMInterface(binary, hashLength);
|
|
15854
|
+
unlock();
|
|
15855
|
+
return wasm;
|
|
15856
|
+
});
|
|
15857
|
+
}
|
|
15697
15858
|
|
|
15698
|
-
|
|
15699
|
-
|
|
15859
|
+
const mutex$l = new Mutex();
|
|
15860
|
+
let wasmCache$l = null;
|
|
15861
|
+
/**
|
|
15862
|
+
* Calculates Adler-32 hash. The resulting 32-bit hash is stored in
|
|
15863
|
+
* network byte order (big-endian).
|
|
15864
|
+
*
|
|
15865
|
+
* @param data Input data (string, Buffer or TypedArray)
|
|
15866
|
+
* @returns Computed hash as a hexadecimal string
|
|
15867
|
+
*/
|
|
15868
|
+
function adler32(data) {
|
|
15869
|
+
if (wasmCache$l === null) {
|
|
15870
|
+
return lockedCreate(mutex$l, wasmJson$l, 4).then((wasm) => {
|
|
15871
|
+
wasmCache$l = wasm;
|
|
15872
|
+
return wasmCache$l.calculate(data);
|
|
15873
|
+
});
|
|
15874
|
+
}
|
|
15875
|
+
try {
|
|
15876
|
+
const hash = wasmCache$l.calculate(data);
|
|
15877
|
+
return Promise.resolve(hash);
|
|
15878
|
+
}
|
|
15879
|
+
catch (err) {
|
|
15880
|
+
return Promise.reject(err);
|
|
15881
|
+
}
|
|
15882
|
+
}
|
|
15883
|
+
/**
|
|
15884
|
+
* Creates a new Adler-32 hash instance
|
|
15885
|
+
*/
|
|
15886
|
+
function createAdler32() {
|
|
15887
|
+
return WASMInterface(wasmJson$l, 4).then((wasm) => {
|
|
15888
|
+
wasm.init();
|
|
15889
|
+
const obj = {
|
|
15890
|
+
init: () => {
|
|
15891
|
+
wasm.init();
|
|
15892
|
+
return obj;
|
|
15893
|
+
},
|
|
15894
|
+
update: (data) => {
|
|
15895
|
+
wasm.update(data);
|
|
15896
|
+
return obj;
|
|
15897
|
+
},
|
|
15898
|
+
// biome-ignore lint/suspicious/noExplicitAny: Conflict with IHasher type
|
|
15899
|
+
digest: (outputType) => wasm.digest(outputType),
|
|
15900
|
+
save: () => wasm.save(),
|
|
15901
|
+
load: (data) => {
|
|
15902
|
+
wasm.load(data);
|
|
15903
|
+
return obj;
|
|
15904
|
+
},
|
|
15905
|
+
blockSize: 4,
|
|
15906
|
+
digestSize: 4,
|
|
15907
|
+
};
|
|
15908
|
+
return obj;
|
|
15909
|
+
});
|
|
15910
|
+
}
|
|
15700
15911
|
|
|
15701
|
-
|
|
15702
|
-
|
|
15912
|
+
var name$k = "argon2";
|
|
15913
|
+
var data$k = "AGFzbQEAAAABKQVgAX8Bf2AAAX9gEH9/f39/f39/f39/f39/f38AYAR/f39/AGACf38AAwYFAAECAwQFBgEBAoCAAgYIAX8BQZCoBAsHQQQGbWVtb3J5AgASSGFzaF9TZXRNZW1vcnlTaXplAAAOSGFzaF9HZXRCdWZmZXIAAQ5IYXNoX0NhbGN1bGF0ZQAECvEyBVgBAn9BACEBAkAgAEEAKAKICCICRg0AAkAgACACayIAQRB2IABBgIB8cSAASWoiAEAAQX9HDQBB/wHADwtBACEBQQBBACkDiAggAEEQdK18NwOICAsgAcALcAECfwJAQQAoAoAIIgANAEEAPwBBEHQiADYCgAhBACgCiAgiAUGAgCBGDQACQEGAgCAgAWsiAEEQdiAAQYCAfHEgAElqIgBAAEF/Rw0AQQAPC0EAQQApA4gIIABBEHStfDcDiAhBACgCgAghAAsgAAvcDgECfiAAIAQpAwAiECAAKQMAIhF8IBFCAYZC/v///x+DIBBC/////w+DfnwiEDcDACAMIBAgDCkDAIVCIIkiEDcDACAIIBAgCCkDACIRfCARQgGGQv7///8fgyAQQv////8Pg358IhA3AwAgBCAQIAQpAwCFQiiJIhA3AwAgACAQIAApAwAiEXwgEEL/////D4MgEUIBhkL+////H4N+fCIQNwMAIAwgECAMKQMAhUIwiSIQNwMAIAggECAIKQMAIhF8IBBC/////w+DIBFCAYZC/v///x+DfnwiEDcDACAEIBAgBCkDAIVCAYk3AwAgASAFKQMAIhAgASkDACIRfCARQgGGQv7///8fgyAQQv////8Pg358IhA3AwAgDSAQIA0pAwCFQiCJIhA3AwAgCSAQIAkpAwAiEXwgEUIBhkL+////H4MgEEL/////D4N+fCIQNwMAIAUgECAFKQMAhUIoiSIQNwMAIAEgECABKQMAIhF8IBBC/////w+DIBFCAYZC/v///x+DfnwiEDcDACANIBAgDSkDAIVCMIkiEDcDACAJIBAgCSkDACIRfCAQQv////8PgyARQgGGQv7///8fg358IhA3AwAgBSAQIAUpAwCFQgGJNwMAIAIgBikDACIQIAIpAwAiEXwgEUIBhkL+////H4MgEEL/////D4N+fCIQNwMAIA4gECAOKQMAhUIgiSIQNwMAIAogECAKKQMAIhF8IBFCAYZC/v///x+DIBBC/////w+DfnwiEDcDACAGIBAgBikDAIVCKIkiEDcDACACIBAgAikDACIRfCAQQv////8PgyARQgGGQv7///8fg358IhA3AwAgDiAQIA4pAwCFQjCJIhA3AwAgCiAQIAopAwAiEXwgEEL/////D4MgEUIBhkL+////H4N+fCIQNwMAIAYgECAGKQMAhUIBiTcDACADIAcpAwAiECADKQMAIhF8IBFCAYZC/v///x+DIBBC/////w+DfnwiEDcDACAPIBAgDykDAIVCIIkiEDcDACALIBAgCykDACIRfCARQgGGQv7///8fgyAQQv////8Pg358IhA3AwAgByAQIAcpAwCFQiiJIhA3AwAgAyAQIAMpAwAiEXwgEEL/////D4MgEUIBhkL+////H4N+fCIQNwMAIA8gECAPKQMAhUIwiSIQNwMAIAsgECALKQMAIhF8IBBC/////w+DIBFCAYZC/v///x+DfnwiEDcDACAHIBAgBykDAIVCAYk3AwAgACAFKQMAIhAgACkDACIRfCARQgGGQv7///8fgyAQQv////8Pg358IhA3AwAgDyAQIA8pAwCFQiCJIhA3AwAgCiAQIAopAwAiEXwgEUIBhkL+////H4MgEEL/////D4N+fCIQNwMAIAUgECAFKQMAhUIoiSIQNwMAIAAgECAAKQMAIhF8IBBC/////w+DIBFCAYZC/v///x+DfnwiEDcDACAPIBAgDykDAIVCMIkiEDcDACAKIBAgCikDACIRfCAQQv////8PgyARQgGGQv7///8fg358IhA3AwAgBSAQIAUpAwCFQgGJNwMAIAEgBikDACIQIAEpAwAiEXwgEUIBhkL+////H4MgEEL/////D4N+fCIQNwMAIAwgECAMKQMAhUIgiSIQNwMAIAsgECALKQMAIhF8IBFCAYZC/v///x+DIBBC/////w+DfnwiEDcDACAGIBAgBikDAIVCKIkiEDcDACABIBAgASkDACIRfCAQQv////8PgyARQgGGQv7///8fg358IhA3AwAgDCAQIAwpAwCFQjCJIhA3AwAgCyAQIAspAwAiEXwgEEL/////D4MgEUIBhkL+////H4N+fCIQNwMAIAYgECAGKQMAhUIBiTcDACACIAcpAwAiECACKQMAIhF8IBFCAYZC/v///x+DIBBC/////w+DfnwiEDcDACANIBAgDSkDAIVCIIkiEDcDACAIIBAgCCkDACIRfCARQgGGQv7///8fgyAQQv////8Pg358IhA3AwAgByAQIAcpAwCFQiiJIhA3AwAgAiAQIAIpAwAiEXwgEEL/////D4MgEUIBhkL+////H4N+fCIQNwMAIA0gECANKQMAhUIwiSIQNwMAIAggECAIKQMAIhF8IBBC/////w+DIBFCAYZC/v///x+DfnwiEDcDACAHIBAgBykDAIVCAYk3AwAgAyAEKQMAIhAgAykDACIRfCARQgGGQv7///8fgyAQQv////8Pg358IhA3AwAgDiAQIA4pAwCFQiCJIhA3AwAgCSAQIAkpAwAiEXwgEUIBhkL+////H4MgEEL/////D4N+fCIQNwMAIAQgECAEKQMAhUIoiSIQNwMAIAMgECADKQMAIhF8IBBC/////w+DIBFCAYZC/v///x+DfnwiEDcDACAOIBAgDikDAIVCMIkiEDcDACAJIBAgCSkDACIRfCAQQv////8PgyARQgGGQv7///8fg358IhA3AwAgBCAQIAQpAwCFQgGJNwMAC98aAQN/QQAhBEEAIAIpAwAgASkDAIU3A5AIQQAgAikDCCABKQMIhTcDmAhBACACKQMQIAEpAxCFNwOgCEEAIAIpAxggASkDGIU3A6gIQQAgAikDICABKQMghTcDsAhBACACKQMoIAEpAyiFNwO4CEEAIAIpAzAgASkDMIU3A8AIQQAgAikDOCABKQM4hTcDyAhBACACKQNAIAEpA0CFNwPQCEEAIAIpA0ggASkDSIU3A9gIQQAgAikDUCABKQNQhTcD4AhBACACKQNYIAEpA1iFNwPoCEEAIAIpA2AgASkDYIU3A/AIQQAgAikDaCABKQNohTcD+AhBACACKQNwIAEpA3CFNwOACUEAIAIpA3ggASkDeIU3A4gJQQAgAikDgAEgASkDgAGFNwOQCUEAIAIpA4gBIAEpA4gBhTcDmAlBACACKQOQASABKQOQAYU3A6AJQQAgAikDmAEgASkDmAGFNwOoCUEAIAIpA6ABIAEpA6ABhTcDsAlBACACKQOoASABKQOoAYU3A7gJQQAgAikDsAEgASkDsAGFNwPACUEAIAIpA7gBIAEpA7gBhTcDyAlBACACKQPAASABKQPAAYU3A9AJQQAgAikDyAEgASkD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";
|
|
15914
|
+
var hash$k = "e4cdc523";
|
|
15915
|
+
var wasmJson$k = {
|
|
15916
|
+
name: name$k,
|
|
15917
|
+
data: data$k,
|
|
15918
|
+
hash: hash$k
|
|
15919
|
+
};
|
|
15703
15920
|
|
|
15704
|
-
|
|
15705
|
-
|
|
15706
|
-
|
|
15707
|
-
|
|
15708
|
-
|
|
15709
|
-
|
|
15921
|
+
var name$j = "blake2b";
|
|
15922
|
+
var data$j = "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";
|
|
15923
|
+
var hash$j = "c6f286e6";
|
|
15924
|
+
var wasmJson$j = {
|
|
15925
|
+
name: name$j,
|
|
15926
|
+
data: data$j,
|
|
15927
|
+
hash: hash$j
|
|
15928
|
+
};
|
|
15710
15929
|
|
|
15711
|
-
|
|
15712
|
-
|
|
15713
|
-
|
|
15714
|
-
|
|
15930
|
+
const mutex$k = new Mutex();
|
|
15931
|
+
let wasmCache$k = null;
|
|
15932
|
+
function validateBits$4(bits) {
|
|
15933
|
+
if (!Number.isInteger(bits) || bits < 8 || bits > 512 || bits % 8 !== 0) {
|
|
15934
|
+
return new Error("Invalid variant! Valid values: 8, 16, ..., 512");
|
|
15935
|
+
}
|
|
15936
|
+
return null;
|
|
15937
|
+
}
|
|
15938
|
+
function getInitParam$1(outputBits, keyBits) {
|
|
15939
|
+
return outputBits | (keyBits << 16);
|
|
15940
|
+
}
|
|
15941
|
+
/**
|
|
15942
|
+
* Calculates BLAKE2b hash
|
|
15943
|
+
* @param data Input data (string, Buffer or TypedArray)
|
|
15944
|
+
* @param bits Number of output bits, which has to be a number
|
|
15945
|
+
* divisible by 8, between 8 and 512. Defaults to 512.
|
|
15946
|
+
* @param key Optional key (string, Buffer or TypedArray). Maximum length is 64 bytes.
|
|
15947
|
+
* @returns Computed hash as a hexadecimal string
|
|
15948
|
+
*/
|
|
15949
|
+
function blake2b(data, bits = 512, key = null) {
|
|
15950
|
+
if (validateBits$4(bits)) {
|
|
15951
|
+
return Promise.reject(validateBits$4(bits));
|
|
15952
|
+
}
|
|
15953
|
+
let keyBuffer = null;
|
|
15954
|
+
let initParam = bits;
|
|
15955
|
+
if (key !== null) {
|
|
15956
|
+
keyBuffer = getUInt8Buffer(key);
|
|
15957
|
+
if (keyBuffer.length > 64) {
|
|
15958
|
+
return Promise.reject(new Error("Max key length is 64 bytes"));
|
|
15959
|
+
}
|
|
15960
|
+
initParam = getInitParam$1(bits, keyBuffer.length);
|
|
15961
|
+
}
|
|
15962
|
+
const hashLength = bits / 8;
|
|
15963
|
+
if (wasmCache$k === null || wasmCache$k.hashLength !== hashLength) {
|
|
15964
|
+
return lockedCreate(mutex$k, wasmJson$j, hashLength).then((wasm) => {
|
|
15965
|
+
wasmCache$k = wasm;
|
|
15966
|
+
if (initParam > 512) {
|
|
15967
|
+
wasmCache$k.writeMemory(keyBuffer);
|
|
15968
|
+
}
|
|
15969
|
+
return wasmCache$k.calculate(data, initParam);
|
|
15970
|
+
});
|
|
15971
|
+
}
|
|
15972
|
+
try {
|
|
15973
|
+
if (initParam > 512) {
|
|
15974
|
+
wasmCache$k.writeMemory(keyBuffer);
|
|
15975
|
+
}
|
|
15976
|
+
const hash = wasmCache$k.calculate(data, initParam);
|
|
15977
|
+
return Promise.resolve(hash);
|
|
15978
|
+
}
|
|
15979
|
+
catch (err) {
|
|
15980
|
+
return Promise.reject(err);
|
|
15981
|
+
}
|
|
15982
|
+
}
|
|
15983
|
+
/**
|
|
15984
|
+
* Creates a new BLAKE2b hash instance
|
|
15985
|
+
* @param bits Number of output bits, which has to be a number
|
|
15986
|
+
* divisible by 8, between 8 and 512. Defaults to 512.
|
|
15987
|
+
* @param key Optional key (string, Buffer or TypedArray). Maximum length is 64 bytes.
|
|
15988
|
+
*/
|
|
15989
|
+
function createBLAKE2b(bits = 512, key = null) {
|
|
15990
|
+
if (validateBits$4(bits)) {
|
|
15991
|
+
return Promise.reject(validateBits$4(bits));
|
|
15992
|
+
}
|
|
15993
|
+
let keyBuffer = null;
|
|
15994
|
+
let initParam = bits;
|
|
15995
|
+
if (key !== null) {
|
|
15996
|
+
keyBuffer = getUInt8Buffer(key);
|
|
15997
|
+
if (keyBuffer.length > 64) {
|
|
15998
|
+
return Promise.reject(new Error("Max key length is 64 bytes"));
|
|
15999
|
+
}
|
|
16000
|
+
initParam = getInitParam$1(bits, keyBuffer.length);
|
|
16001
|
+
}
|
|
16002
|
+
const outputSize = bits / 8;
|
|
16003
|
+
return WASMInterface(wasmJson$j, outputSize).then((wasm) => {
|
|
16004
|
+
if (initParam > 512) {
|
|
16005
|
+
wasm.writeMemory(keyBuffer);
|
|
16006
|
+
}
|
|
16007
|
+
wasm.init(initParam);
|
|
16008
|
+
const obj = {
|
|
16009
|
+
init: initParam > 512
|
|
16010
|
+
? () => {
|
|
16011
|
+
wasm.writeMemory(keyBuffer);
|
|
16012
|
+
wasm.init(initParam);
|
|
16013
|
+
return obj;
|
|
16014
|
+
}
|
|
16015
|
+
: () => {
|
|
16016
|
+
wasm.init(initParam);
|
|
16017
|
+
return obj;
|
|
16018
|
+
},
|
|
16019
|
+
update: (data) => {
|
|
16020
|
+
wasm.update(data);
|
|
16021
|
+
return obj;
|
|
16022
|
+
},
|
|
16023
|
+
// biome-ignore lint/suspicious/noExplicitAny: Conflict with IHasher type
|
|
16024
|
+
digest: (outputType) => wasm.digest(outputType),
|
|
16025
|
+
save: () => wasm.save(),
|
|
16026
|
+
load: (data) => {
|
|
16027
|
+
wasm.load(data);
|
|
16028
|
+
return obj;
|
|
16029
|
+
},
|
|
16030
|
+
blockSize: 128,
|
|
16031
|
+
digestSize: outputSize,
|
|
16032
|
+
};
|
|
16033
|
+
return obj;
|
|
16034
|
+
});
|
|
16035
|
+
}
|
|
15715
16036
|
|
|
15716
|
-
|
|
15717
|
-
|
|
15718
|
-
|
|
16037
|
+
function encodeResult(salt, options, res) {
|
|
16038
|
+
const parameters = [
|
|
16039
|
+
`m=${options.memorySize}`,
|
|
16040
|
+
`t=${options.iterations}`,
|
|
16041
|
+
`p=${options.parallelism}`,
|
|
16042
|
+
].join(",");
|
|
16043
|
+
return `$argon2${options.hashType}$v=19$${parameters}$${encodeBase64(salt, false)}$${encodeBase64(res, false)}`;
|
|
16044
|
+
}
|
|
16045
|
+
const uint32View = new DataView(new ArrayBuffer(4));
|
|
16046
|
+
function int32LE(x) {
|
|
16047
|
+
uint32View.setInt32(0, x, true);
|
|
16048
|
+
return new Uint8Array(uint32View.buffer);
|
|
16049
|
+
}
|
|
16050
|
+
function hashFunc(blake512, buf, len) {
|
|
16051
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
16052
|
+
if (len <= 64) {
|
|
16053
|
+
const blake = yield createBLAKE2b(len * 8);
|
|
16054
|
+
blake.update(int32LE(len));
|
|
16055
|
+
blake.update(buf);
|
|
16056
|
+
return blake.digest("binary");
|
|
16057
|
+
}
|
|
16058
|
+
const r = Math.ceil(len / 32) - 2;
|
|
16059
|
+
const ret = new Uint8Array(len);
|
|
16060
|
+
blake512.init();
|
|
16061
|
+
blake512.update(int32LE(len));
|
|
16062
|
+
blake512.update(buf);
|
|
16063
|
+
let vp = blake512.digest("binary");
|
|
16064
|
+
ret.set(vp.subarray(0, 32), 0);
|
|
16065
|
+
for (let i = 1; i < r; i++) {
|
|
16066
|
+
blake512.init();
|
|
16067
|
+
blake512.update(vp);
|
|
16068
|
+
vp = blake512.digest("binary");
|
|
16069
|
+
ret.set(vp.subarray(0, 32), i * 32);
|
|
16070
|
+
}
|
|
16071
|
+
const partialBytesNeeded = len - 32 * r;
|
|
16072
|
+
let blakeSmall;
|
|
16073
|
+
if (partialBytesNeeded === 64) {
|
|
16074
|
+
blakeSmall = blake512;
|
|
16075
|
+
blakeSmall.init();
|
|
16076
|
+
}
|
|
16077
|
+
else {
|
|
16078
|
+
blakeSmall = yield createBLAKE2b(partialBytesNeeded * 8);
|
|
16079
|
+
}
|
|
16080
|
+
blakeSmall.update(vp);
|
|
16081
|
+
vp = blakeSmall.digest("binary");
|
|
16082
|
+
ret.set(vp.subarray(0, partialBytesNeeded), r * 32);
|
|
16083
|
+
return ret;
|
|
16084
|
+
});
|
|
16085
|
+
}
|
|
16086
|
+
function getHashType(type) {
|
|
16087
|
+
switch (type) {
|
|
16088
|
+
case "d":
|
|
16089
|
+
return 0;
|
|
16090
|
+
case "i":
|
|
16091
|
+
return 1;
|
|
16092
|
+
default:
|
|
16093
|
+
return 2;
|
|
16094
|
+
}
|
|
16095
|
+
}
|
|
16096
|
+
function argon2Internal(options) {
|
|
16097
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
16098
|
+
var _a;
|
|
16099
|
+
const { parallelism, iterations, hashLength } = options;
|
|
16100
|
+
const password = getUInt8Buffer(options.password);
|
|
16101
|
+
const salt = getUInt8Buffer(options.salt);
|
|
16102
|
+
const version = 0x13;
|
|
16103
|
+
const hashType = getHashType(options.hashType);
|
|
16104
|
+
const { memorySize } = options; // in KB
|
|
16105
|
+
const secret = getUInt8Buffer((_a = options.secret) !== null && _a !== void 0 ? _a : "");
|
|
16106
|
+
const [argon2Interface, blake512] = yield Promise.all([
|
|
16107
|
+
WASMInterface(wasmJson$k, 1024),
|
|
16108
|
+
createBLAKE2b(512),
|
|
16109
|
+
]);
|
|
16110
|
+
// last block is for storing the init vector
|
|
16111
|
+
argon2Interface.setMemorySize(memorySize * 1024 + 1024);
|
|
16112
|
+
const initVector = new Uint8Array(24);
|
|
16113
|
+
const initVectorView = new DataView(initVector.buffer);
|
|
16114
|
+
initVectorView.setInt32(0, parallelism, true);
|
|
16115
|
+
initVectorView.setInt32(4, hashLength, true);
|
|
16116
|
+
initVectorView.setInt32(8, memorySize, true);
|
|
16117
|
+
initVectorView.setInt32(12, iterations, true);
|
|
16118
|
+
initVectorView.setInt32(16, version, true);
|
|
16119
|
+
initVectorView.setInt32(20, hashType, true);
|
|
16120
|
+
argon2Interface.writeMemory(initVector, memorySize * 1024);
|
|
16121
|
+
blake512.init();
|
|
16122
|
+
blake512.update(initVector);
|
|
16123
|
+
blake512.update(int32LE(password.length));
|
|
16124
|
+
blake512.update(password);
|
|
16125
|
+
blake512.update(int32LE(salt.length));
|
|
16126
|
+
blake512.update(salt);
|
|
16127
|
+
blake512.update(int32LE(secret.length));
|
|
16128
|
+
blake512.update(secret);
|
|
16129
|
+
blake512.update(int32LE(0)); // associatedData length + associatedData
|
|
16130
|
+
const segments = Math.floor(memorySize / (parallelism * 4)); // length of each lane
|
|
16131
|
+
const lanes = segments * 4;
|
|
16132
|
+
const param = new Uint8Array(72);
|
|
16133
|
+
const H0 = blake512.digest("binary");
|
|
16134
|
+
param.set(H0);
|
|
16135
|
+
for (let lane = 0; lane < parallelism; lane++) {
|
|
16136
|
+
param.set(int32LE(0), 64);
|
|
16137
|
+
param.set(int32LE(lane), 68);
|
|
16138
|
+
let position = lane * lanes;
|
|
16139
|
+
let chunk = yield hashFunc(blake512, param, 1024);
|
|
16140
|
+
argon2Interface.writeMemory(chunk, position * 1024);
|
|
16141
|
+
position += 1;
|
|
16142
|
+
param.set(int32LE(1), 64);
|
|
16143
|
+
chunk = yield hashFunc(blake512, param, 1024);
|
|
16144
|
+
argon2Interface.writeMemory(chunk, position * 1024);
|
|
16145
|
+
}
|
|
16146
|
+
const C = new Uint8Array(1024);
|
|
16147
|
+
writeHexToUInt8(C, argon2Interface.calculate(new Uint8Array([]), memorySize));
|
|
16148
|
+
const res = yield hashFunc(blake512, C, hashLength);
|
|
16149
|
+
if (options.outputType === "hex") {
|
|
16150
|
+
const digestChars = new Uint8Array(hashLength * 2);
|
|
16151
|
+
return getDigestHex(digestChars, res, hashLength);
|
|
16152
|
+
}
|
|
16153
|
+
if (options.outputType === "encoded") {
|
|
16154
|
+
return encodeResult(salt, options, res);
|
|
16155
|
+
}
|
|
16156
|
+
// return binary format
|
|
16157
|
+
return res;
|
|
16158
|
+
});
|
|
16159
|
+
}
|
|
16160
|
+
const validateOptions$3 = (options) => {
|
|
16161
|
+
var _a;
|
|
16162
|
+
if (!options || typeof options !== "object") {
|
|
16163
|
+
throw new Error("Invalid options parameter. It requires an object.");
|
|
16164
|
+
}
|
|
16165
|
+
if (!options.password) {
|
|
16166
|
+
throw new Error("Password must be specified");
|
|
16167
|
+
}
|
|
16168
|
+
options.password = getUInt8Buffer(options.password);
|
|
16169
|
+
if (options.password.length < 1) {
|
|
16170
|
+
throw new Error("Password must be specified");
|
|
16171
|
+
}
|
|
16172
|
+
if (!options.salt) {
|
|
16173
|
+
throw new Error("Salt must be specified");
|
|
16174
|
+
}
|
|
16175
|
+
options.salt = getUInt8Buffer(options.salt);
|
|
16176
|
+
if (options.salt.length < 8) {
|
|
16177
|
+
throw new Error("Salt should be at least 8 bytes long");
|
|
16178
|
+
}
|
|
16179
|
+
options.secret = getUInt8Buffer((_a = options.secret) !== null && _a !== void 0 ? _a : "");
|
|
16180
|
+
if (!Number.isInteger(options.iterations) || options.iterations < 1) {
|
|
16181
|
+
throw new Error("Iterations should be a positive number");
|
|
16182
|
+
}
|
|
16183
|
+
if (!Number.isInteger(options.parallelism) || options.parallelism < 1) {
|
|
16184
|
+
throw new Error("Parallelism should be a positive number");
|
|
16185
|
+
}
|
|
16186
|
+
if (!Number.isInteger(options.hashLength) || options.hashLength < 4) {
|
|
16187
|
+
throw new Error("Hash length should be at least 4 bytes.");
|
|
16188
|
+
}
|
|
16189
|
+
if (!Number.isInteger(options.memorySize)) {
|
|
16190
|
+
throw new Error("Memory size should be specified.");
|
|
16191
|
+
}
|
|
16192
|
+
if (options.memorySize < 8 * options.parallelism) {
|
|
16193
|
+
throw new Error("Memory size should be at least 8 * parallelism.");
|
|
16194
|
+
}
|
|
16195
|
+
if (options.outputType === undefined) {
|
|
16196
|
+
options.outputType = "hex";
|
|
16197
|
+
}
|
|
16198
|
+
if (!["hex", "binary", "encoded"].includes(options.outputType)) {
|
|
16199
|
+
throw new Error(`Insupported output type ${options.outputType}. Valid values: ['hex', 'binary', 'encoded']`);
|
|
16200
|
+
}
|
|
16201
|
+
};
|
|
16202
|
+
/**
|
|
16203
|
+
* Calculates hash using the argon2i password-hashing function
|
|
16204
|
+
* @returns Computed hash
|
|
16205
|
+
*/
|
|
16206
|
+
function argon2i(options) {
|
|
16207
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
16208
|
+
validateOptions$3(options);
|
|
16209
|
+
return argon2Internal(Object.assign(Object.assign({}, options), { hashType: "i" }));
|
|
16210
|
+
});
|
|
16211
|
+
}
|
|
16212
|
+
/**
|
|
16213
|
+
* Calculates hash using the argon2id password-hashing function
|
|
16214
|
+
* @returns Computed hash
|
|
16215
|
+
*/
|
|
16216
|
+
function argon2id(options) {
|
|
16217
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
16218
|
+
validateOptions$3(options);
|
|
16219
|
+
return argon2Internal(Object.assign(Object.assign({}, options), { hashType: "id" }));
|
|
16220
|
+
});
|
|
16221
|
+
}
|
|
16222
|
+
/**
|
|
16223
|
+
* Calculates hash using the argon2d password-hashing function
|
|
16224
|
+
* @returns Computed hash
|
|
16225
|
+
*/
|
|
16226
|
+
function argon2d(options) {
|
|
16227
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
16228
|
+
validateOptions$3(options);
|
|
16229
|
+
return argon2Internal(Object.assign(Object.assign({}, options), { hashType: "d" }));
|
|
16230
|
+
});
|
|
16231
|
+
}
|
|
16232
|
+
const getHashParameters = (password, encoded, secret) => {
|
|
16233
|
+
const regex = /^\$argon2(id|i|d)\$v=([0-9]+)\$((?:[mtp]=[0-9]+,){2}[mtp]=[0-9]+)\$([A-Za-z0-9+/]+)\$([A-Za-z0-9+/]+)$/;
|
|
16234
|
+
const match = encoded.match(regex);
|
|
16235
|
+
if (!match) {
|
|
16236
|
+
throw new Error("Invalid hash");
|
|
16237
|
+
}
|
|
16238
|
+
const [, hashType, version, parameters, salt, hash] = match;
|
|
16239
|
+
if (version !== "19") {
|
|
16240
|
+
throw new Error(`Unsupported version: ${version}`);
|
|
16241
|
+
}
|
|
16242
|
+
const parsedParameters = {};
|
|
16243
|
+
const paramMap = { m: "memorySize", p: "parallelism", t: "iterations" };
|
|
16244
|
+
for (const x of parameters.split(",")) {
|
|
16245
|
+
const [n, v] = x.split("=");
|
|
16246
|
+
parsedParameters[paramMap[n]] = Number(v);
|
|
16247
|
+
}
|
|
16248
|
+
return Object.assign(Object.assign({}, parsedParameters), { password,
|
|
16249
|
+
secret, hashType: hashType, salt: decodeBase64(salt), hashLength: getDecodeBase64Length(hash), outputType: "encoded" });
|
|
16250
|
+
};
|
|
16251
|
+
const validateVerifyOptions$1 = (options) => {
|
|
16252
|
+
if (!options || typeof options !== "object") {
|
|
16253
|
+
throw new Error("Invalid options parameter. It requires an object.");
|
|
16254
|
+
}
|
|
16255
|
+
if (options.hash === undefined || typeof options.hash !== "string") {
|
|
16256
|
+
throw new Error("Hash should be specified");
|
|
16257
|
+
}
|
|
16258
|
+
};
|
|
16259
|
+
/**
|
|
16260
|
+
* Verifies password using the argon2 password-hashing function
|
|
16261
|
+
* @returns True if the encoded hash matches the password
|
|
16262
|
+
*/
|
|
16263
|
+
function argon2Verify(options) {
|
|
16264
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
16265
|
+
validateVerifyOptions$1(options);
|
|
16266
|
+
const params = getHashParameters(options.password, options.hash, options.secret);
|
|
16267
|
+
validateOptions$3(params);
|
|
16268
|
+
const hashStart = options.hash.lastIndexOf("$") + 1;
|
|
16269
|
+
const result = (yield argon2Internal(params));
|
|
16270
|
+
return result.substring(hashStart) === options.hash.substring(hashStart);
|
|
16271
|
+
});
|
|
16272
|
+
}
|
|
15719
16273
|
|
|
15720
|
-
|
|
15721
|
-
|
|
15722
|
-
|
|
15723
|
-
|
|
15724
|
-
|
|
16274
|
+
var name$i = "blake2s";
|
|
16275
|
+
var data$i = "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";
|
|
16276
|
+
var hash$i = "5c0ff166";
|
|
16277
|
+
var wasmJson$i = {
|
|
16278
|
+
name: name$i,
|
|
16279
|
+
data: data$i,
|
|
16280
|
+
hash: hash$i
|
|
16281
|
+
};
|
|
15725
16282
|
|
|
15726
|
-
|
|
15727
|
-
|
|
15728
|
-
|
|
16283
|
+
const mutex$j = new Mutex();
|
|
16284
|
+
let wasmCache$j = null;
|
|
16285
|
+
function validateBits$3(bits) {
|
|
16286
|
+
if (!Number.isInteger(bits) || bits < 8 || bits > 256 || bits % 8 !== 0) {
|
|
16287
|
+
return new Error("Invalid variant! Valid values: 8, 16, ..., 256");
|
|
16288
|
+
}
|
|
16289
|
+
return null;
|
|
16290
|
+
}
|
|
16291
|
+
function getInitParam(outputBits, keyBits) {
|
|
16292
|
+
return outputBits | (keyBits << 16);
|
|
16293
|
+
}
|
|
16294
|
+
/**
|
|
16295
|
+
* Calculates BLAKE2s hash
|
|
16296
|
+
* @param data Input data (string, Buffer or TypedArray)
|
|
16297
|
+
* @param bits Number of output bits, which has to be a number
|
|
16298
|
+
* divisible by 8, between 8 and 256. Defaults to 256.
|
|
16299
|
+
* @param key Optional key (string, Buffer or TypedArray). Maximum length is 32 bytes.
|
|
16300
|
+
* @returns Computed hash as a hexadecimal string
|
|
16301
|
+
*/
|
|
16302
|
+
function blake2s(data, bits = 256, key = null) {
|
|
16303
|
+
if (validateBits$3(bits)) {
|
|
16304
|
+
return Promise.reject(validateBits$3(bits));
|
|
16305
|
+
}
|
|
16306
|
+
let keyBuffer = null;
|
|
16307
|
+
let initParam = bits;
|
|
16308
|
+
if (key !== null) {
|
|
16309
|
+
keyBuffer = getUInt8Buffer(key);
|
|
16310
|
+
if (keyBuffer.length > 32) {
|
|
16311
|
+
return Promise.reject(new Error("Max key length is 32 bytes"));
|
|
16312
|
+
}
|
|
16313
|
+
initParam = getInitParam(bits, keyBuffer.length);
|
|
16314
|
+
}
|
|
16315
|
+
const hashLength = bits / 8;
|
|
16316
|
+
if (wasmCache$j === null || wasmCache$j.hashLength !== hashLength) {
|
|
16317
|
+
return lockedCreate(mutex$j, wasmJson$i, hashLength).then((wasm) => {
|
|
16318
|
+
wasmCache$j = wasm;
|
|
16319
|
+
if (initParam > 512) {
|
|
16320
|
+
wasmCache$j.writeMemory(keyBuffer);
|
|
16321
|
+
}
|
|
16322
|
+
return wasmCache$j.calculate(data, initParam);
|
|
16323
|
+
});
|
|
16324
|
+
}
|
|
16325
|
+
try {
|
|
16326
|
+
if (initParam > 512) {
|
|
16327
|
+
wasmCache$j.writeMemory(keyBuffer);
|
|
16328
|
+
}
|
|
16329
|
+
const hash = wasmCache$j.calculate(data, initParam);
|
|
16330
|
+
return Promise.resolve(hash);
|
|
16331
|
+
}
|
|
16332
|
+
catch (err) {
|
|
16333
|
+
return Promise.reject(err);
|
|
16334
|
+
}
|
|
16335
|
+
}
|
|
16336
|
+
/**
|
|
16337
|
+
* Creates a new BLAKE2s hash instance
|
|
16338
|
+
* @param bits Number of output bits, which has to be a number
|
|
16339
|
+
* divisible by 8, between 8 and 256. Defaults to 256.
|
|
16340
|
+
* @param key Optional key (string, Buffer or TypedArray). Maximum length is 32 bytes.
|
|
16341
|
+
*/
|
|
16342
|
+
function createBLAKE2s(bits = 256, key = null) {
|
|
16343
|
+
if (validateBits$3(bits)) {
|
|
16344
|
+
return Promise.reject(validateBits$3(bits));
|
|
16345
|
+
}
|
|
16346
|
+
let keyBuffer = null;
|
|
16347
|
+
let initParam = bits;
|
|
16348
|
+
if (key !== null) {
|
|
16349
|
+
keyBuffer = getUInt8Buffer(key);
|
|
16350
|
+
if (keyBuffer.length > 32) {
|
|
16351
|
+
return Promise.reject(new Error("Max key length is 32 bytes"));
|
|
16352
|
+
}
|
|
16353
|
+
initParam = getInitParam(bits, keyBuffer.length);
|
|
16354
|
+
}
|
|
16355
|
+
const outputSize = bits / 8;
|
|
16356
|
+
return WASMInterface(wasmJson$i, outputSize).then((wasm) => {
|
|
16357
|
+
if (initParam > 512) {
|
|
16358
|
+
wasm.writeMemory(keyBuffer);
|
|
16359
|
+
}
|
|
16360
|
+
wasm.init(initParam);
|
|
16361
|
+
const obj = {
|
|
16362
|
+
init: initParam > 512
|
|
16363
|
+
? () => {
|
|
16364
|
+
wasm.writeMemory(keyBuffer);
|
|
16365
|
+
wasm.init(initParam);
|
|
16366
|
+
return obj;
|
|
16367
|
+
}
|
|
16368
|
+
: () => {
|
|
16369
|
+
wasm.init(initParam);
|
|
16370
|
+
return obj;
|
|
16371
|
+
},
|
|
16372
|
+
update: (data) => {
|
|
16373
|
+
wasm.update(data);
|
|
16374
|
+
return obj;
|
|
16375
|
+
},
|
|
16376
|
+
// biome-ignore lint/suspicious/noExplicitAny: Conflict with IHasher type
|
|
16377
|
+
digest: (outputType) => wasm.digest(outputType),
|
|
16378
|
+
save: () => wasm.save(),
|
|
16379
|
+
load: (data) => {
|
|
16380
|
+
wasm.load(data);
|
|
16381
|
+
return obj;
|
|
16382
|
+
},
|
|
16383
|
+
blockSize: 64,
|
|
16384
|
+
digestSize: outputSize,
|
|
16385
|
+
};
|
|
16386
|
+
return obj;
|
|
16387
|
+
});
|
|
16388
|
+
}
|
|
15729
16389
|
|
|
15730
|
-
|
|
15731
|
-
wasm.blake2b_final(this.pointer)
|
|
16390
|
+
var name$h = "blake3";
|
|
16391
|
+
var data$h = "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IQEgAkFAaiICQcAASw0ACwsCQEHAACAHQf8BcSIGayIFIAIgBSACSRsiCUUNACAJQQNxIQtBACEFAkAgCUEESQ0AIAAgBmohByAJQfwAcSEIQQAhBQNAIAcgBWoiAkEoaiABIAVqIgotAAA6AAAgAkEpaiAKQQFqLQAAOgAAIAJBKmogCkECai0AADoAACACQStqIApBA2otAAA6AAAgCCAFQQRqIgVHDQALCwJAIAtFDQAgASAFaiEBIAUgBmogAGpBKGohBQNAIAUgAS0AADoAACABQQFqIQEgBUEBaiEFIAtBf2oiCw0ACwsgAC0AaCEHCyAAIAcgCWo6AGggA0HAAGokAAveAwQFfwN+BX8GfiMAQdABayIBJAACQCAAe6ciAkEALQCQigEiA08NAEEALQCKigFBBHIhBCABQShqIQVBACkDmIkBIQBBACkDkIkBIQZBACkDiIkBIQdBACkDgIkBIQggAyEJA0AgASAANwMYIAEgBjcDECABIAc3AwggASAINwMAIAEgA0EFdCIDQdGJAWoiCikDADcDKCABIANB2YkBaiILKQMANwMwIAEgA0HhiQFqIgwpAwA3AzggASADQemJAWoiDSkDADcDQCABIANB8YkBaikDADcDSCABIANB+YkBaikDADcDUCABIANBgYoBaikDADcDWCADQYmKAWopAwAhDiABQcAAOgBoIAEgDjcDYCABQgA3AyAgASAEOgBpIAEgADcDiAEgASAGNwOAASABIAc3A3ggASAINwNwIAFBkAFqIAFB8ABqIAVBwABCACAEQf8BcRACIAEpA7ABIQ4gASkDkAEhDyABKQO4ASEQIAEpA5gBIREgASkDwAEhEiABKQOgASETIA0gASkDyAEgASkDqAGFNwMAIAwgEiAThTcDACALIBAgEYU3AwAgCiAOIA+FNwMAIAlBf2oiCUH/AXEiAyACSw0AC0EAIAk6AJCKAQsgAUHQAWokAAvHCQIKfwV+IwBB4AJrIgUkAAJAAkAgAUGACEsNACAFIAA2AvwBIAVB/AFqIAFBgAhGIgZBECACQQEgA0EBQQIgBBABIAZBCnQiByABTw0BIAVB4ABqIgZCADcDACAFQdgAaiIIQgA3AwAgBUHQAGoiCUIANwMAIAVByABqIgpCADcDACAFQcAAaiILQgA3AwAgBUE4aiIMQgA3AwAgBUEwaiINQgA3AwAgBSADOgBqIAVCADcDKCAFQQA7AWggBUEAKQOAiQE3AwAgBUEAKQOIiQE3AwggBUEAKQOQiQE3AxAgBUEAKQOYiQE3AxggBSABQYAIRiIOrSACfDcDICAFIAAgB2pBACABIA4bEAQgBUGIAWpBMGogDSkDADcDACAFQYgBakE4aiAMKQMANwMAIAUgBSkDACIPNwOIASAFIAUpAwgiEDcDkAEgBSAFKQMQIhE3A5gBIAUgBSkDGCISNwOgASAFIAUpAyg3A7ABIAUtAGohACAFLQBpIQcgBSkDICECIAUtAGghASAFQYgBakHAAGogCykDADcDACAFQYgBakHIAGogCikDADcDACAFQYgBakHQAGogCSkDADcDACAFQYgBakHYAGogCCkDADcDACAFQYgBakHgAGogBikDADcDACAFIAE6APABIAUgAjcDqAEgBSAAIAdFckECciIAOgDxASAFIBI3A5gCIAUgETcDkAIgBSAQNwOIAiAFIA83A4ACIAVBoAJqIAVBgAJqIAVBsAFqIAEgAiAAQf8BcRACIAUpA8ACIQIgBSkDoAIhDyAFKQPIAiEQIAUpA6gCIREgBSkD0AIhEiAFKQOwAiETIAQgDkEFdGoiASAFKQPYAiAFKQO4AoU3AxggASASIBOFNwMQIAEgECARhTcDCCABIAIgD4U3AwBBAkEBIA4bIQYMAQsgAEIBIAFBf2pBCnZBAXKteUI/hYYiD6dBCnQiDiACIAMgBRAGIQcgACAOaiABIA5rIA9C////AYMgAnwgAyAFQcAAQSAgDkGACEsbahAGIQECQCAHQQFHDQAgBCAFKQMANwMAIAQgBSkDCDcDCCAEIAUpAxA3AxAgBCAFKQMYNwMYIAQgBSkDIDcDICAEIAUpAyg3AyggBCAFKQMwNwMwIAQgBSkDODcDOEECIQYMAQtBACEGQQAhAAJAIAEgB2oiCUECSQ0AIAlBfmoiCkEBdkEBaiIGQQNxIQ5BACEHAkAgCkEGSQ0AIAZB/P///wdxIQhBACEHIAVBiAFqIQEgBSEAA0AgASAANgIAIAFBDGogAEHAAWo2AgAgAUEIaiAAQYABajYCACABQQRqIABBwABqNgIAIABBgAJqIQAgAUEQaiEBIAggB0EEaiIHRw0ACwsgCkF+cSEIAkAgDkUNACAFIAdBBnRqIQEgBUGIAWogB0ECdGohAANAIAAgATYCACABQcAAaiEBIABBBGohACAOQX9qIg4NAAsLIAhBAmohAAsgBUGIAWogBkEBQgBBACADQQRyQQBBACAEEAEgACAJTw0AIAQgBkEFdGoiASAFIAZBBnRqIgApAwA3AwAgASAAKQMINwMIIAEgACkDEDcDECABIAApAxg3AxggBkEBaiEGCyAFQeACaiQAIAYLrRAIAn8EfgF/AX4EfwR+BH8EfiMAQfABayIBJAACQCAARQ0AAkBBAC0AkIoBIgINACABQTBqQQApA9CJATcDACABQThqQQApA9iJATcDACABQQApA6CJASIDNwMAIAFBACkDqIkBIgQ3AwggAUEAKQOwiQEiBTcDECABQQApA7iJASIGNwMYIAFBACkDyIkBNwMoQQAtAIqKASECQQAtAImKASEHQQApA8CJASEIQQAtAIiKASEJIAFBwABqQQApA+CJATcDACABQcgAakEAKQPoiQE3AwAgAUHQAGpBACkD8IkBNwMAIAFB2ABqQQApA/iJATcDACABQeAAakEAKQOAigE3AwAgASAJOgBoIAEgCDcDICABIAIgB0VyIgJBAnI6AGkgAUEoaiEKQgAhCEGACSELIAJBCnJB/wFxIQwDQCABQbABaiABIAogCUH/AXEgCCAMEAIgASABKQPQASINIAEpA7ABhTcDcCABIAEpA9gBIg4gASkDuAGFNwN4IAEgASkD4AEiDyABKQPAAYU3A4ABIAEgASkD6AEiECAGhTcDqAEgASAPIAWFNwOgASABIA4gBIU3A5gBIAEgDSADhTcDkAEgASAQIAEpA8gBhTcDiAEgAEHAACAAQcAASRsiEUF/aiESAkACQCARQQdxIhMNACABQfAAaiECIAshByARIRQMAQsgEUH4AHEhFCABQfAAaiECIAshBwNAIAcgAi0AADoAACAHQQFqIQcgAkEBaiECIBNBf2oiEw0ACwsCQCASQQdJDQADQCAHIAIpAAA3AAAgB0EIaiEHIAJBCGohAiAUQXhqIhQNAAsLIAhCAXwhCCALIBFqIQsgACARayIADQAMAgsLAkACQAJAQQAtAImKASIHQQZ0QQBBAC0AiIoBIhFrRg0AIAEgEToAaCABQQApA4CKATcDYCABQQApA/iJATcDWCABQQApA/CJATcDUCABQQApA+iJATcDSCABQQApA+CJATcDQCABQQApA9iJATcDOCABQQApA9CJATcDMCABQQApA8iJATcDKCABQQApA8CJASIINwMgIAFBACkDuIkBIgM3AxggAUEAKQOwiQEiBDcDECABQQApA6iJASIFNwMIIAFBACkDoIkBIgY3AwAgAUEALQCKigEiEyAHRXJBAnIiCzoAaSATQQRyIRNBACkDmIkBIQ1BACkDkIkBIQ5BACkDiIkBIQ9BACkDgIkBIRAMAQtBwAAhESABQcAAOgBoQgAhCCABQgA3AyAgAUEAKQOYiQEiDTcDGCABQQApA5CJASIONwMQIAFBACkDiIkBIg83AwggAUEAKQOAiQEiEDcDACABQQAtAIqKAUEEciITOgBpIAEgAkF+aiICQQV0IgdByYoBaikDADcDYCABIAdBwYoBaikDADcDWCABIAdBuYoBaikDADcDUCABIAdBsYoBaikDADcDSCABIAdBqYoBaikDADcDQCABIAdBoYoBaikDADcDOCABIAdBmYoBaikDADcDMCABIAdBkYoBaikDADcDKCATIQsgECEGIA8hBSAOIQQgDSEDIAJFDQELIAJBf2oiB0EFdCIUQZGKAWopAwAhFSAUQZmKAWopAwAhFiAUQaGKAWopAwAhFyAUQamKAWopAwAhGCABIAM3A4gBIAEgBDcDgAEgASAFNwN4IAEgBjcDcCABQbABaiABQfAAaiABQShqIhQgESAIIAtB/wFxEAIgASATOgBpIAFBwAA6AGggASAYNwNAIAEgFzcDOCABIBY3AzAgASAVNwMoIAFCADcDICABIA03AxggASAONwMQIAEgDzcDCCABIBA3AwAgASABKQPoASABKQPIAYU3A2AgASABKQPgASABKQPAAYU3A1ggASABKQPYASABKQO4AYU3A1AgASABKQPQASABKQOwAYU3A0ggB0UNACACQQV0QemJAWohAiATQf8BcSERA0AgAkFoaikDACEIIAJBcGopAwAhAyACQXhqKQMAIQQgAikDACEFIAEgDTcDiAEgASAONwOAASABIA83A3ggASAQNwNwIAFBsAFqIAFB8ABqIBRBwABCACAREAIgASATOgBpIAFBwAA6AGggASAFNwNAIAEgBDcDOCABIAM3AzAgASAINwMoIAFCADcDICABIA03AxggASAONwMQIAEgDzcDCCABIBA3AwAgASABKQPoASABKQPIAYU3A2AgASABKQPgASABKQPAAYU3A1ggASABKQPYASABKQO4AYU3A1AgASABKQPQASABKQOwAYU3A0ggAkFgaiECIAdBf2oiBw0ACwsgAUEoaiEJQgAhCEGACSELIBNBCHJB/wFxIQoDQCABQbABaiABIAlBwAAgCCAKEAIgASABKQPQASIDIAEpA7ABhTcDcCABIAEpA9gBIgQgASkDuAGFNwN4IAEgASkD4AEiBSABKQPAAYU3A4ABIAEgDSABKQPoASIGhTcDqAEgASAOIAWFNwOgASABIA8gBIU3A5gBIAEgECADhTcDkAEgASAGIAEpA8gBhTcDiAEgAEHAACAAQcAASRsiEUF/aiESAkACQCARQQdxIhMNACABQfAAaiECIAshByARIRQMAQsgEUH4AHEhFCABQfAAaiECIAshBwNAIAcgAi0AADoAACAHQQFqIQcgAkEBaiECIBNBf2oiEw0ACwsCQCASQQdJDQADQCAHIAIpAAA3AAAgB0EIaiEHIAJBCGohAiAUQXhqIhQNAAsLIAhCAXwhCCALIBFqIQsgACARayIADQALCyABQfABaiQAC6MCAQR+AkACQCAAQSBGDQBCq7OP/JGjs/DbACEBQv+kuYjFkdqCm38hAkLy5rvjo6f9p6V/IQNC58yn0NbQ67O7fyEEQQAhAAwBC0EAKQOYCSEBQQApA5AJIQJBACkDiAkhA0EAKQOACSEEQRAhAAtBACAAOgCKigFBAEIANwOAigFBAEIANwP4iQFBAEIANwPwiQFBAEIANwPoiQFBAEIANwPgiQFBAEIANwPYiQFBAEIANwPQiQFBAEIANwPIiQFBAEIANwPAiQFBACABNwO4iQFBACACNwOwiQFBACADNwOoiQFBACAENwOgiQFBACABNwOYiQFBACACNwOQiQFBACADNwOIiQFBACAENwOAiQFBAEEAOgCQigFBAEEAOwGIigELBgAgABADCwYAIAAQBwsGAEGAiQELqwIBBH4CQAJAIAFBIEYNAEKrs4/8kaOz8NsAIQNC/6S5iMWR2oKbfyEEQvLmu+Ojp/2npX8hBULnzKfQ1tDrs7t/IQZBACEBDAELQQApA5gJIQNBACkDkAkhBEEAKQOICSEFQQApA4AJIQZBECEBC0EAIAE6AIqKAUEAQgA3A4CKAUEAQgA3A/iJAUEAQgA3A/CJAUEAQgA3A+iJAUEAQgA3A+CJAUEAQgA3A9iJAUEAQgA3A9CJAUEAQgA3A8iJAUEAQgA3A8CJAUEAIAM3A7iJAUEAIAQ3A7CJAUEAIAU3A6iJAUEAIAY3A6CJAUEAIAM3A5iJAUEAIAQ3A5CJAUEAIAU3A4iJAUEAIAY3A4CJAUEAQQA6AJCKAUEAQQA7AYiKASAAEAMgAhAHCwsLAQBBgAgLBHgHAAA=";
|
|
16392
|
+
var hash$h = "215d875f";
|
|
16393
|
+
var wasmJson$h = {
|
|
16394
|
+
name: name$h,
|
|
16395
|
+
data: data$h,
|
|
16396
|
+
hash: hash$h
|
|
16397
|
+
};
|
|
15732
16398
|
|
|
15733
|
-
|
|
15734
|
-
|
|
15735
|
-
|
|
16399
|
+
const mutex$i = new Mutex();
|
|
16400
|
+
let wasmCache$i = null;
|
|
16401
|
+
function validateBits$2(bits) {
|
|
16402
|
+
if (!Number.isInteger(bits) || bits < 8 || bits % 8 !== 0) {
|
|
16403
|
+
return new Error("Invalid variant! Valid values: 8, 16, ...");
|
|
16404
|
+
}
|
|
16405
|
+
return null;
|
|
16406
|
+
}
|
|
16407
|
+
/**
|
|
16408
|
+
* Calculates BLAKE3 hash
|
|
16409
|
+
* @param data Input data (string, Buffer or TypedArray)
|
|
16410
|
+
* @param bits Number of output bits, which has to be a number
|
|
16411
|
+
* divisible by 8. Defaults to 256.
|
|
16412
|
+
* @param key Optional key (string, Buffer or TypedArray). Length should be 32 bytes.
|
|
16413
|
+
* @returns Computed hash as a hexadecimal string
|
|
16414
|
+
*/
|
|
16415
|
+
function blake3(data, bits = 256, key = null) {
|
|
16416
|
+
if (validateBits$2(bits)) {
|
|
16417
|
+
return Promise.reject(validateBits$2(bits));
|
|
16418
|
+
}
|
|
16419
|
+
let keyBuffer = null;
|
|
16420
|
+
let initParam = 0; // key is empty by default
|
|
16421
|
+
if (key !== null) {
|
|
16422
|
+
keyBuffer = getUInt8Buffer(key);
|
|
16423
|
+
if (keyBuffer.length !== 32) {
|
|
16424
|
+
return Promise.reject(new Error("Key length must be exactly 32 bytes"));
|
|
16425
|
+
}
|
|
16426
|
+
initParam = 32;
|
|
16427
|
+
}
|
|
16428
|
+
const hashLength = bits / 8;
|
|
16429
|
+
const digestParam = hashLength;
|
|
16430
|
+
if (wasmCache$i === null || wasmCache$i.hashLength !== hashLength) {
|
|
16431
|
+
return lockedCreate(mutex$i, wasmJson$h, hashLength).then((wasm) => {
|
|
16432
|
+
wasmCache$i = wasm;
|
|
16433
|
+
if (initParam === 32) {
|
|
16434
|
+
wasmCache$i.writeMemory(keyBuffer);
|
|
16435
|
+
}
|
|
16436
|
+
return wasmCache$i.calculate(data, initParam, digestParam);
|
|
16437
|
+
});
|
|
16438
|
+
}
|
|
16439
|
+
try {
|
|
16440
|
+
if (initParam === 32) {
|
|
16441
|
+
wasmCache$i.writeMemory(keyBuffer);
|
|
16442
|
+
}
|
|
16443
|
+
const hash = wasmCache$i.calculate(data, initParam, digestParam);
|
|
16444
|
+
return Promise.resolve(hash);
|
|
16445
|
+
}
|
|
16446
|
+
catch (err) {
|
|
16447
|
+
return Promise.reject(err);
|
|
16448
|
+
}
|
|
16449
|
+
}
|
|
16450
|
+
/**
|
|
16451
|
+
* Creates a new BLAKE3 hash instance
|
|
16452
|
+
* @param bits Number of output bits, which has to be a number
|
|
16453
|
+
* divisible by 8. Defaults to 256.
|
|
16454
|
+
* @param key Optional key (string, Buffer or TypedArray). Length should be 32 bytes.
|
|
16455
|
+
*/
|
|
16456
|
+
function createBLAKE3(bits = 256, key = null) {
|
|
16457
|
+
if (validateBits$2(bits)) {
|
|
16458
|
+
return Promise.reject(validateBits$2(bits));
|
|
16459
|
+
}
|
|
16460
|
+
let keyBuffer = null;
|
|
16461
|
+
let initParam = 0; // key is empty by default
|
|
16462
|
+
if (key !== null) {
|
|
16463
|
+
keyBuffer = getUInt8Buffer(key);
|
|
16464
|
+
if (keyBuffer.length !== 32) {
|
|
16465
|
+
return Promise.reject(new Error("Key length must be exactly 32 bytes"));
|
|
16466
|
+
}
|
|
16467
|
+
initParam = 32;
|
|
16468
|
+
}
|
|
16469
|
+
const outputSize = bits / 8;
|
|
16470
|
+
const digestParam = outputSize;
|
|
16471
|
+
return WASMInterface(wasmJson$h, outputSize).then((wasm) => {
|
|
16472
|
+
if (initParam === 32) {
|
|
16473
|
+
wasm.writeMemory(keyBuffer);
|
|
16474
|
+
}
|
|
16475
|
+
wasm.init(initParam);
|
|
16476
|
+
const obj = {
|
|
16477
|
+
init: initParam === 32
|
|
16478
|
+
? () => {
|
|
16479
|
+
wasm.writeMemory(keyBuffer);
|
|
16480
|
+
wasm.init(initParam);
|
|
16481
|
+
return obj;
|
|
16482
|
+
}
|
|
16483
|
+
: () => {
|
|
16484
|
+
wasm.init(initParam);
|
|
16485
|
+
return obj;
|
|
16486
|
+
},
|
|
16487
|
+
update: (data) => {
|
|
16488
|
+
wasm.update(data);
|
|
16489
|
+
return obj;
|
|
16490
|
+
},
|
|
16491
|
+
// biome-ignore lint/suspicious/noExplicitAny: Conflict with IHasher type
|
|
16492
|
+
digest: (outputType) => wasm.digest(outputType, digestParam),
|
|
16493
|
+
save: () => wasm.save(),
|
|
16494
|
+
load: (data) => {
|
|
16495
|
+
wasm.load(data);
|
|
16496
|
+
return obj;
|
|
16497
|
+
},
|
|
16498
|
+
blockSize: 64,
|
|
16499
|
+
digestSize: outputSize,
|
|
16500
|
+
};
|
|
16501
|
+
return obj;
|
|
16502
|
+
});
|
|
16503
|
+
}
|
|
15736
16504
|
|
|
15737
|
-
|
|
15738
|
-
|
|
15739
|
-
|
|
16505
|
+
var name$g = "crc32";
|
|
16506
|
+
var data$g = "AGFzbQEAAAABEQRgAAF/YAF/AGAAAGACf38AAwgHAAEBAQIAAwUEAQECAgYOAn8BQZDJBQt/AEGACAsHcAgGbWVtb3J5AgAOSGFzaF9HZXRCdWZmZXIAAAlIYXNoX0luaXQAAgtIYXNoX1VwZGF0ZQADCkhhc2hfRmluYWwABA1IYXNoX0dldFN0YXRlAAUOSGFzaF9DYWxjdWxhdGUABgpTVEFURV9TSVpFAwEKkggHBQBBgAkLwwMBA39BgIkBIQFBACECA0AgAUEAQQBBAEEAQQBBAEEAQQAgAkEBcWsgAHEgAkEBdnMiA0EBcWsgAHEgA0EBdnMiA0EBcWsgAHEgA0EBdnMiA0EBcWsgAHEgA0EBdnMiA0EBcWsgAHEgA0EBdnMiA0EBcWsgAHEgA0EBdnMiA0EBcWsgAHEgA0EBdnMiA0EBcWsgAHEgA0EBdnM2AgAgAUEEaiEBIAJBAWoiAkGAAkcNAAtBACEAA0AgAEGEkQFqIABBhIkBaigCACICQf8BcUECdEGAiQFqKAIAIAJBCHZzIgI2AgAgAEGEmQFqIAJB/wFxQQJ0QYCJAWooAgAgAkEIdnMiAjYCACAAQYShAWogAkH/AXFBAnRBgIkBaigCACACQQh2cyICNgIAIABBhKkBaiACQf8BcUECdEGAiQFqKAIAIAJBCHZzIgI2AgAgAEGEsQFqIAJB/wFxQQJ0QYCJAWooAgAgAkEIdnMiAjYCACAAQYS5AWogAkH/AXFBAnRBgIkBaigCACACQQh2cyICNgIAIABBhMEBaiACQf8BcUECdEGAiQFqKAIAIAJBCHZzNgIAIABBBGoiAEH8B0cNAAsLJwACQEEAKAKAyQEgAEYNACAAEAFBACAANgKAyQELQQBBADYChMkBC4gDAQN/QQAoAoTJAUF/cyEBQYAJIQICQCAAQQhJDQBBgAkhAgNAIAJBBGooAgAiA0EOdkH8B3FBgJEBaigCACADQRZ2QfwHcUGAiQFqKAIAcyADQQZ2QfwHcUGAmQFqKAIAcyADQf8BcUECdEGAoQFqKAIAcyACKAIAIAFzIgFBFnZB/AdxQYCpAWooAgBzIAFBDnZB/AdxQYCxAWooAgBzIAFBBnZB/AdxQYC5AWooAgBzIAFB/wFxQQJ0QYDBAWooAgBzIQEgAkEIaiECIABBeGoiAEEHSw0ACwsCQCAARQ0AAkACQCAAQQFxDQAgACEDDAELIAFB/wFxIAItAABzQQJ0QYCJAWooAgAgAUEIdnMhASACQQFqIQIgAEF/aiEDCyAAQQFGDQADQCABQf8BcSACLQAAc0ECdEGAiQFqKAIAIAFBCHZzIgFB/wFxIAJBAWotAABzQQJ0QYCJAWooAgAgAUEIdnMhASACQQJqIQIgA0F+aiIDDQALC0EAIAFBf3M2AoTJAQsyAQF/QQBBACgChMkBIgBBGHQgAEGA/gNxQQh0ciAAQQh2QYD+A3EgAEEYdnJyNgKACQsGAEGEyQELWQACQEEAKAKAyQEgAUYNACABEAFBACABNgKAyQELQQBBADYChMkBIAAQA0EAQQAoAoTJASIBQRh0IAFBgP4DcUEIdHIgAUEIdkGA/gNxIAFBGHZycjYCgAkLCwsBAEGACAsEBAAAAA==";
|
|
16507
|
+
var hash$g = "d2eba587";
|
|
16508
|
+
var wasmJson$g = {
|
|
16509
|
+
name: name$g,
|
|
16510
|
+
data: data$g,
|
|
16511
|
+
hash: hash$g
|
|
16512
|
+
};
|
|
15740
16513
|
|
|
15741
|
-
|
|
15742
|
-
|
|
15743
|
-
|
|
15744
|
-
|
|
16514
|
+
const mutex$h = new Mutex();
|
|
16515
|
+
let wasmCache$h = null;
|
|
16516
|
+
function validatePoly(poly) {
|
|
16517
|
+
if (!Number.isInteger(poly) || poly < 0 || poly > 0xffffffff) {
|
|
16518
|
+
return new Error("Polynomial must be a valid 32-bit long unsigned integer");
|
|
16519
|
+
}
|
|
16520
|
+
return null;
|
|
16521
|
+
}
|
|
16522
|
+
/**
|
|
16523
|
+
* Calculates CRC-32 hash
|
|
16524
|
+
* @param data Input data (string, Buffer or TypedArray)
|
|
16525
|
+
* @param polynomial Input polynomial (defaults to 0xedb88320, for CRC32C use 0x82f63b78)
|
|
16526
|
+
* @returns Computed hash as a hexadecimal string
|
|
16527
|
+
*/
|
|
16528
|
+
function crc32(data, polynomial = 0xedb88320) {
|
|
16529
|
+
if (validatePoly(polynomial)) {
|
|
16530
|
+
return Promise.reject(validatePoly(polynomial));
|
|
16531
|
+
}
|
|
16532
|
+
if (wasmCache$h === null) {
|
|
16533
|
+
return lockedCreate(mutex$h, wasmJson$g, 4).then((wasm) => {
|
|
16534
|
+
wasmCache$h = wasm;
|
|
16535
|
+
return wasmCache$h.calculate(data, polynomial);
|
|
16536
|
+
});
|
|
16537
|
+
}
|
|
16538
|
+
try {
|
|
16539
|
+
const hash = wasmCache$h.calculate(data, polynomial);
|
|
16540
|
+
return Promise.resolve(hash);
|
|
16541
|
+
}
|
|
16542
|
+
catch (err) {
|
|
16543
|
+
return Promise.reject(err);
|
|
16544
|
+
}
|
|
16545
|
+
}
|
|
16546
|
+
/**
|
|
16547
|
+
* Creates a new CRC-32 hash instance
|
|
16548
|
+
* @param polynomial Input polynomial (defaults to 0xedb88320, for CRC32C use 0x82f63b78)
|
|
16549
|
+
*/
|
|
16550
|
+
function createCRC32(polynomial = 0xedb88320) {
|
|
16551
|
+
if (validatePoly(polynomial)) {
|
|
16552
|
+
return Promise.reject(validatePoly(polynomial));
|
|
16553
|
+
}
|
|
16554
|
+
return WASMInterface(wasmJson$g, 4).then((wasm) => {
|
|
16555
|
+
wasm.init(polynomial);
|
|
16556
|
+
const obj = {
|
|
16557
|
+
init: () => {
|
|
16558
|
+
wasm.init(polynomial);
|
|
16559
|
+
return obj;
|
|
16560
|
+
},
|
|
16561
|
+
update: (data) => {
|
|
16562
|
+
wasm.update(data);
|
|
16563
|
+
return obj;
|
|
16564
|
+
},
|
|
16565
|
+
// biome-ignore lint/suspicious/noExplicitAny: Conflict with IHasher type
|
|
16566
|
+
digest: (outputType) => wasm.digest(outputType),
|
|
16567
|
+
save: () => wasm.save(),
|
|
16568
|
+
load: (data) => {
|
|
16569
|
+
wasm.load(data);
|
|
16570
|
+
return obj;
|
|
16571
|
+
},
|
|
16572
|
+
blockSize: 4,
|
|
16573
|
+
digestSize: 4,
|
|
16574
|
+
};
|
|
16575
|
+
return obj;
|
|
16576
|
+
});
|
|
16577
|
+
}
|
|
15745
16578
|
|
|
15746
|
-
|
|
15747
|
-
|
|
16579
|
+
var name$f = "crc64";
|
|
16580
|
+
var data$f = "AGFzbQEAAAABDANgAAF/YAAAYAF/AAMHBgABAgEAAQUEAQECAgYOAn8BQZCJBgt/AEGACAsHcAgGbWVtb3J5AgAOSGFzaF9HZXRCdWZmZXIAAAlIYXNoX0luaXQAAQtIYXNoX1VwZGF0ZQACCkhhc2hfRmluYWwAAw1IYXNoX0dldFN0YXRlAAQOSGFzaF9DYWxjdWxhdGUABQpTVEFURV9TSVpFAwEKgwgGBQBBgAkL9QMDAX4BfwJ+AkBBACkDgIkCQQApA4AJIgBRDQBBgIkBIQFCACECA0AgAUIAQgBCAEIAQgBCAEIAQgAgAkIBg30gAIMgAkIBiIUiA0IBg30gAIMgA0IBiIUiA0IBg30gAIMgA0IBiIUiA0IBg30gAIMgA0IBiIUiA0IBg30gAIMgA0IBiIUiA0IBg30gAIMgA0IBiIUiA0IBg30gAIMgA0IBiIUiA0IBg30gAIMgA0IBiIU3AwAgAUEIaiEBIAJCAXwiAkKAAlINAAtBACEBA0AgAUGImQFqIAFBiIkBaikDACICp0H/AXFBA3RBgIkBaikDACACQgiIhSICNwMAIAFBiKkBaiACp0H/AXFBA3RBgIkBaikDACACQgiIhSICNwMAIAFBiLkBaiACp0H/AXFBA3RBgIkBaikDACACQgiIhSICNwMAIAFBiMkBaiACp0H/AXFBA3RBgIkBaikDACACQgiIhSICNwMAIAFBiNkBaiACp0H/AXFBA3RBgIkBaikDACACQgiIhSICNwMAIAFBiOkBaiACp0H/AXFBA3RBgIkBaikDACACQgiIhSICNwMAIAFBiPkBaiACp0H/AXFBA3RBgIkBaikDACACQgiIhTcDACABQQhqIgFB+A9HDQALQQAgADcDgIkCC0EAQgA3A4iJAguUAwIBfgJ/QQApA4iJAkJ/hSEBQYAJIQICQCAAQQhJDQBBgAkhAgNAIAIpAwAgAYUiAUIwiKdB/wFxQQN0QYCZAWopAwAgAUI4iKdBA3RBgIkBaikDAIUgAUIoiKdB/wFxQQN0QYCpAWopAwCFIAFCIIinQf8BcUEDdEGAuQFqKQMAhSABpyIDQRV2QfgPcUGAyQFqKQMAhSADQQ12QfgPcUGA2QFqKQMAhSADQQV2QfgPcUGA6QFqKQMAhSADQf8BcUEDdEGA+QFqKQMAhSEBIAJBCGohAiAAQXhqIgBBB0sNAAsLAkAgAEUNAAJAAkAgAEEBcQ0AIAAhAwwBCyABQv8BgyACMQAAhadBA3RBgIkBaikDACABQgiIhSEBIAJBAWohAiAAQX9qIQMLIABBAUYNAANAIAFC/wGDIAIxAACFp0EDdEGAiQFqKQMAIAFCCIiFIgFC/wGDIAJBAWoxAACFp0EDdEGAiQFqKQMAIAFCCIiFIQEgAkECaiECIANBfmoiAw0ACwtBACABQn+FNwOIiQILZAEBfkEAQQApA4iJAiIAQjiGIABCgP4Dg0IohoQgAEKAgPwHg0IYhiAAQoCAgPgPg0IIhoSEIABCCIhCgICA+A+DIABCGIhCgID8B4OEIABCKIhCgP4DgyAAQjiIhISENwOACQsGAEGIiQILAgALCwsBAEGACAsECAAAAA==";
|
|
16581
|
+
var hash$f = "c5ac6c16";
|
|
16582
|
+
var wasmJson$f = {
|
|
16583
|
+
name: name$f,
|
|
16584
|
+
data: data$f,
|
|
16585
|
+
hash: hash$f
|
|
16586
|
+
};
|
|
15748
16587
|
|
|
15749
|
-
|
|
15750
|
-
|
|
16588
|
+
const mutex$g = new Mutex();
|
|
16589
|
+
let wasmCache$g = null;
|
|
16590
|
+
const polyBuffer = new Uint8Array(8);
|
|
16591
|
+
function parsePoly(poly) {
|
|
16592
|
+
const errText = "Polynomial must be provided as a 16 char long hex string";
|
|
16593
|
+
if (typeof poly !== "string" || poly.length !== 16) {
|
|
16594
|
+
return { hi: 0, lo: 0, err: new Error(errText) };
|
|
16595
|
+
}
|
|
16596
|
+
const hi = Number(`0x${poly.slice(0, 8)}`);
|
|
16597
|
+
const lo = Number(`0x${poly.slice(8)}`);
|
|
16598
|
+
if (Number.isNaN(hi) || Number.isNaN(lo)) {
|
|
16599
|
+
return { hi, lo, err: new Error(errText) };
|
|
16600
|
+
}
|
|
16601
|
+
return { hi, lo, err: null };
|
|
16602
|
+
}
|
|
16603
|
+
function writePoly(arr, lo, hi) {
|
|
16604
|
+
// write in little-endian format
|
|
16605
|
+
const buffer = new DataView(arr);
|
|
16606
|
+
buffer.setUint32(0, lo, true);
|
|
16607
|
+
buffer.setUint32(4, hi, true);
|
|
16608
|
+
}
|
|
16609
|
+
/**
|
|
16610
|
+
* Calculates CRC-64 hash
|
|
16611
|
+
* @param data Input data (string, Buffer or TypedArray)
|
|
16612
|
+
* @param polynomial Input polynomial (defaults to 'c96c5795d7870f42' - ECMA)
|
|
16613
|
+
* @returns Computed hash as a hexadecimal string
|
|
16614
|
+
*/
|
|
16615
|
+
function crc64(data, polynomial = "c96c5795d7870f42") {
|
|
16616
|
+
const { hi, lo, err } = parsePoly(polynomial);
|
|
16617
|
+
if (err !== null) {
|
|
16618
|
+
return Promise.reject(err);
|
|
16619
|
+
}
|
|
16620
|
+
if (wasmCache$g === null) {
|
|
16621
|
+
return lockedCreate(mutex$g, wasmJson$f, 8).then((wasm) => {
|
|
16622
|
+
wasmCache$g = wasm;
|
|
16623
|
+
writePoly(polyBuffer.buffer, lo, hi);
|
|
16624
|
+
wasmCache$g.writeMemory(polyBuffer);
|
|
16625
|
+
return wasmCache$g.calculate(data);
|
|
16626
|
+
});
|
|
16627
|
+
}
|
|
16628
|
+
try {
|
|
16629
|
+
writePoly(polyBuffer.buffer, lo, hi);
|
|
16630
|
+
wasmCache$g.writeMemory(polyBuffer);
|
|
16631
|
+
const hash = wasmCache$g.calculate(data);
|
|
16632
|
+
return Promise.resolve(hash);
|
|
16633
|
+
}
|
|
16634
|
+
catch (err) {
|
|
16635
|
+
return Promise.reject(err);
|
|
16636
|
+
}
|
|
16637
|
+
}
|
|
16638
|
+
/**
|
|
16639
|
+
* Creates a new CRC-64 hash instance
|
|
16640
|
+
* @param polynomial Input polynomial (defaults to 'c96c5795d7870f42' - ECMA)
|
|
16641
|
+
*/
|
|
16642
|
+
function createCRC64(polynomial = "c96c5795d7870f42") {
|
|
16643
|
+
const { hi, lo, err } = parsePoly(polynomial);
|
|
16644
|
+
if (err !== null) {
|
|
16645
|
+
return Promise.reject(err);
|
|
16646
|
+
}
|
|
16647
|
+
return WASMInterface(wasmJson$f, 8).then((wasm) => {
|
|
16648
|
+
const instanceBuffer = new Uint8Array(8);
|
|
16649
|
+
writePoly(instanceBuffer.buffer, lo, hi);
|
|
16650
|
+
wasm.writeMemory(instanceBuffer);
|
|
16651
|
+
wasm.init();
|
|
16652
|
+
const obj = {
|
|
16653
|
+
init: () => {
|
|
16654
|
+
wasm.writeMemory(instanceBuffer);
|
|
16655
|
+
wasm.init();
|
|
16656
|
+
return obj;
|
|
16657
|
+
},
|
|
16658
|
+
update: (data) => {
|
|
16659
|
+
wasm.update(data);
|
|
16660
|
+
return obj;
|
|
16661
|
+
},
|
|
16662
|
+
// biome-ignore lint/suspicious/noExplicitAny: Conflict with IHasher type
|
|
16663
|
+
digest: (outputType) => wasm.digest(outputType),
|
|
16664
|
+
save: () => wasm.save(),
|
|
16665
|
+
load: (data) => {
|
|
16666
|
+
wasm.load(data);
|
|
16667
|
+
return obj;
|
|
16668
|
+
},
|
|
16669
|
+
blockSize: 8,
|
|
16670
|
+
digestSize: 8,
|
|
16671
|
+
};
|
|
16672
|
+
return obj;
|
|
16673
|
+
});
|
|
16674
|
+
}
|
|
15751
16675
|
|
|
15752
|
-
|
|
15753
|
-
|
|
16676
|
+
var name$e = "md4";
|
|
16677
|
+
var data$e = "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";
|
|
16678
|
+
var hash$e = "bd8ce7c7";
|
|
16679
|
+
var wasmJson$e = {
|
|
16680
|
+
name: name$e,
|
|
16681
|
+
data: data$e,
|
|
16682
|
+
hash: hash$e
|
|
16683
|
+
};
|
|
15754
16684
|
|
|
15755
|
-
|
|
15756
|
-
|
|
15757
|
-
|
|
15758
|
-
|
|
15759
|
-
|
|
16685
|
+
const mutex$f = new Mutex();
|
|
16686
|
+
let wasmCache$f = null;
|
|
16687
|
+
/**
|
|
16688
|
+
* Calculates MD4 hash
|
|
16689
|
+
* @param data Input data (string, Buffer or TypedArray)
|
|
16690
|
+
* @returns Computed hash as a hexadecimal string
|
|
16691
|
+
*/
|
|
16692
|
+
function md4(data) {
|
|
16693
|
+
if (wasmCache$f === null) {
|
|
16694
|
+
return lockedCreate(mutex$f, wasmJson$e, 16).then((wasm) => {
|
|
16695
|
+
wasmCache$f = wasm;
|
|
16696
|
+
return wasmCache$f.calculate(data);
|
|
16697
|
+
});
|
|
16698
|
+
}
|
|
16699
|
+
try {
|
|
16700
|
+
const hash = wasmCache$f.calculate(data);
|
|
16701
|
+
return Promise.resolve(hash);
|
|
16702
|
+
}
|
|
16703
|
+
catch (err) {
|
|
16704
|
+
return Promise.reject(err);
|
|
16705
|
+
}
|
|
16706
|
+
}
|
|
16707
|
+
/**
|
|
16708
|
+
* Creates a new MD4 hash instance
|
|
16709
|
+
*/
|
|
16710
|
+
function createMD4() {
|
|
16711
|
+
return WASMInterface(wasmJson$e, 16).then((wasm) => {
|
|
16712
|
+
wasm.init();
|
|
16713
|
+
const obj = {
|
|
16714
|
+
init: () => {
|
|
16715
|
+
wasm.init();
|
|
16716
|
+
return obj;
|
|
16717
|
+
},
|
|
16718
|
+
update: (data) => {
|
|
16719
|
+
wasm.update(data);
|
|
16720
|
+
return obj;
|
|
16721
|
+
},
|
|
16722
|
+
// biome-ignore lint/suspicious/noExplicitAny: Conflict with IHasher type
|
|
16723
|
+
digest: (outputType) => wasm.digest(outputType),
|
|
16724
|
+
save: () => wasm.save(),
|
|
16725
|
+
load: (data) => {
|
|
16726
|
+
wasm.load(data);
|
|
16727
|
+
return obj;
|
|
16728
|
+
},
|
|
16729
|
+
blockSize: 64,
|
|
16730
|
+
digestSize: 16,
|
|
16731
|
+
};
|
|
16732
|
+
return obj;
|
|
16733
|
+
});
|
|
16734
|
+
}
|
|
15760
16735
|
|
|
15761
|
-
|
|
16736
|
+
var name$d = "md5";
|
|
16737
|
+
var data$d = "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";
|
|
16738
|
+
var hash$d = "e6508e4b";
|
|
16739
|
+
var wasmJson$d = {
|
|
16740
|
+
name: name$d,
|
|
16741
|
+
data: data$d,
|
|
16742
|
+
hash: hash$d
|
|
16743
|
+
};
|
|
15762
16744
|
|
|
15763
|
-
|
|
15764
|
-
|
|
15765
|
-
|
|
16745
|
+
const mutex$e = new Mutex();
|
|
16746
|
+
let wasmCache$e = null;
|
|
16747
|
+
/**
|
|
16748
|
+
* Calculates MD5 hash
|
|
16749
|
+
* @param data Input data (string, Buffer or TypedArray)
|
|
16750
|
+
* @returns Computed hash as a hexadecimal string
|
|
16751
|
+
*/
|
|
16752
|
+
function md5(data) {
|
|
16753
|
+
if (wasmCache$e === null) {
|
|
16754
|
+
return lockedCreate(mutex$e, wasmJson$d, 16).then((wasm) => {
|
|
16755
|
+
wasmCache$e = wasm;
|
|
16756
|
+
return wasmCache$e.calculate(data);
|
|
16757
|
+
});
|
|
16758
|
+
}
|
|
16759
|
+
try {
|
|
16760
|
+
const hash = wasmCache$e.calculate(data);
|
|
16761
|
+
return Promise.resolve(hash);
|
|
16762
|
+
}
|
|
16763
|
+
catch (err) {
|
|
16764
|
+
return Promise.reject(err);
|
|
16765
|
+
}
|
|
16766
|
+
}
|
|
16767
|
+
/**
|
|
16768
|
+
* Creates a new MD5 hash instance
|
|
16769
|
+
*/
|
|
16770
|
+
function createMD5() {
|
|
16771
|
+
return WASMInterface(wasmJson$d, 16).then((wasm) => {
|
|
16772
|
+
wasm.init();
|
|
16773
|
+
const obj = {
|
|
16774
|
+
init: () => {
|
|
16775
|
+
wasm.init();
|
|
16776
|
+
return obj;
|
|
16777
|
+
},
|
|
16778
|
+
update: (data) => {
|
|
16779
|
+
wasm.update(data);
|
|
16780
|
+
return obj;
|
|
16781
|
+
},
|
|
16782
|
+
// biome-ignore lint/suspicious/noExplicitAny: Conflict with IHasher type
|
|
16783
|
+
digest: (outputType) => wasm.digest(outputType),
|
|
16784
|
+
save: () => wasm.save(),
|
|
16785
|
+
load: (data) => {
|
|
16786
|
+
wasm.load(data);
|
|
16787
|
+
return obj;
|
|
16788
|
+
},
|
|
16789
|
+
blockSize: 64,
|
|
16790
|
+
digestSize: 16,
|
|
16791
|
+
};
|
|
16792
|
+
return obj;
|
|
16793
|
+
});
|
|
16794
|
+
}
|
|
15766
16795
|
|
|
15767
|
-
|
|
15768
|
-
|
|
15769
|
-
|
|
16796
|
+
var name$c = "sha1";
|
|
16797
|
+
var data$c = "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";
|
|
16798
|
+
var hash$c = "6b530c24";
|
|
16799
|
+
var wasmJson$c = {
|
|
16800
|
+
name: name$c,
|
|
16801
|
+
data: data$c,
|
|
16802
|
+
hash: hash$c
|
|
16803
|
+
};
|
|
15770
16804
|
|
|
15771
|
-
|
|
16805
|
+
const mutex$d = new Mutex();
|
|
16806
|
+
let wasmCache$d = null;
|
|
16807
|
+
/**
|
|
16808
|
+
* Calculates SHA-1 hash
|
|
16809
|
+
* @param data Input data (string, Buffer or TypedArray)
|
|
16810
|
+
* @returns Computed hash as a hexadecimal string
|
|
16811
|
+
*/
|
|
16812
|
+
function sha1(data) {
|
|
16813
|
+
if (wasmCache$d === null) {
|
|
16814
|
+
return lockedCreate(mutex$d, wasmJson$c, 20).then((wasm) => {
|
|
16815
|
+
wasmCache$d = wasm;
|
|
16816
|
+
return wasmCache$d.calculate(data);
|
|
16817
|
+
});
|
|
16818
|
+
}
|
|
16819
|
+
try {
|
|
16820
|
+
const hash = wasmCache$d.calculate(data);
|
|
16821
|
+
return Promise.resolve(hash);
|
|
16822
|
+
}
|
|
16823
|
+
catch (err) {
|
|
16824
|
+
return Promise.reject(err);
|
|
16825
|
+
}
|
|
16826
|
+
}
|
|
16827
|
+
/**
|
|
16828
|
+
* Creates a new SHA-1 hash instance
|
|
16829
|
+
*/
|
|
16830
|
+
function createSHA1() {
|
|
16831
|
+
return WASMInterface(wasmJson$c, 20).then((wasm) => {
|
|
16832
|
+
wasm.init();
|
|
16833
|
+
const obj = {
|
|
16834
|
+
init: () => {
|
|
16835
|
+
wasm.init();
|
|
16836
|
+
return obj;
|
|
16837
|
+
},
|
|
16838
|
+
update: (data) => {
|
|
16839
|
+
wasm.update(data);
|
|
16840
|
+
return obj;
|
|
16841
|
+
},
|
|
16842
|
+
// biome-ignore lint/suspicious/noExplicitAny: Conflict with IHasher type
|
|
16843
|
+
digest: (outputType) => wasm.digest(outputType),
|
|
16844
|
+
save: () => wasm.save(),
|
|
16845
|
+
load: (data) => {
|
|
16846
|
+
wasm.load(data);
|
|
16847
|
+
return obj;
|
|
16848
|
+
},
|
|
16849
|
+
blockSize: 64,
|
|
16850
|
+
digestSize: 20,
|
|
16851
|
+
};
|
|
16852
|
+
return obj;
|
|
16853
|
+
});
|
|
16854
|
+
}
|
|
15772
16855
|
|
|
16856
|
+
var name$b = "sha3";
|
|
16857
|
+
var data$b = "AGFzbQEAAAABFARgAAF/YAF/AGACf38AYAN/f38AAwgHAAEBAgEAAwUEAQECAgYOAn8BQZCNBQt/AEGACAsHcAgGbWVtb3J5AgAOSGFzaF9HZXRCdWZmZXIAAAlIYXNoX0luaXQAAQtIYXNoX1VwZGF0ZQACCkhhc2hfRmluYWwABA1IYXNoX0dldFN0YXRlAAUOSGFzaF9DYWxjdWxhdGUABgpTVEFURV9TSVpFAwEKpBwHBQBBgAoL1wMAQQBCADcDgI0BQQBCADcD+IwBQQBCADcD8IwBQQBCADcD6IwBQQBCADcD4IwBQQBCADcD2IwBQQBCADcD0IwBQQBCADcDyIwBQQBCADcDwIwBQQBCADcDuIwBQQBCADcDsIwBQQBCADcDqIwBQQBCADcDoIwBQQBCADcDmIwBQQBCADcDkIwBQQBCADcDiIwBQQBCADcDgIwBQQBCADcD+IsBQQBCADcD8IsBQQBCADcD6IsBQQBCADcD4IsBQQBCADcD2IsBQQBCADcD0IsBQQBCADcDyIsBQQBCADcDwIsBQQBCADcDuIsBQQBCADcDsIsBQQBCADcDqIsBQQBCADcDoIsBQQBCADcDmIsBQQBCADcDkIsBQQBCADcDiIsBQQBCADcDgIsBQQBCADcD+IoBQQBCADcD8IoBQQBCADcD6IoBQQBCADcD4IoBQQBCADcD2IoBQQBCADcD0IoBQQBCADcDyIoBQQBCADcDwIoBQQBCADcDuIoBQQBCADcDsIoBQQBCADcDqIoBQQBCADcDoIoBQQBCADcDmIoBQQBCADcDkIoBQQBCADcDiIoBQQBCADcDgIoBQQBBwAwgAEEBdGtBA3Y2AoyNAUEAQQA2AoiNAQuMAwEIfwJAQQAoAoiNASIBQQBIDQBBACABIABqQQAoAoyNASICcDYCiI0BAkACQCABDQBBgAohAwwBCwJAIAIgAWsiBCAAIAQgAEkbIgNFDQAgA0EDcSEFQQAhBgJAIANBBEkNACABQYCKAWohByADQXxxIQhBACEGA0AgByAGaiIDQcgBaiAGQYAKai0AADoAACADQckBaiAGQYEKai0AADoAACADQcoBaiAGQYIKai0AADoAACADQcsBaiAGQYMKai0AADoAACAIIAZBBGoiBkcNAAsLIAVFDQAgAUHIiwFqIQMDQCADIAZqIAZBgApqLQAAOgAAIAZBAWohBiAFQX9qIgUNAAsLIAAgBEkNAUHIiwEgAhADIAAgBGshACAEQYAKaiEDCwJAIAAgAkkNAANAIAMgAhADIAMgAmohAyAAIAJrIgAgAk8NAAsLIABFDQBBACECQcgBIQYDQCAGQYCKAWogAyAGakG4fmotAAA6AAAgBkEBaiEGIAAgAkEBaiICQf8BcUsNAAsLC+ALAS1+IAApA0AhAkEAKQPAigEhAyAAKQM4IQRBACkDuIoBIQUgACkDMCEGQQApA7CKASEHIAApAyghCEEAKQOoigEhCSAAKQMgIQpBACkDoIoBIQsgACkDGCEMQQApA5iKASENIAApAxAhDkEAKQOQigEhDyAAKQMIIRBBACkDiIoBIREgACkDACESQQApA4CKASETQQApA8iKASEUAkACQCABQcgASw0AQQApA+iKASEVQQApA/iKASEWQQApA/CKASEXQQApA4CLASEYQQApA9CKASEZQQApA+CKASEaQQApA9iKASEbDAELQQApA+CKASAAKQNghSEaQQApA9iKASAAKQNYhSEbQQApA9CKASAAKQNQhSEZIBQgACkDSIUhFEEAKQPoigEhFUEAKQP4igEhFkEAKQPwigEhF0EAKQOAiwEhGCABQekASQ0AIBggACkDgAGFIRggFiAAKQN4hSEWIBcgACkDcIUhFyAVIAApA2iFIRUgAUGJAUkNAEEAQQApA4iLASAAKQOIAYU3A4iLAQsgAyAChSEcIAUgBIUhHSAHIAaFIQcgCSAIhSEIIAsgCoUhHiANIAyFIQkgDyAOhSEKIBEgEIUhCyATIBKFIQxBACkDuIsBIRBBACkDkIsBIRFBACkDoIsBIRJBACkDsIsBIRNBACkDiIsBIQ1BACkDwIsBIQ5BACkDmIsBIR9BACkDqIsBIQ9BwH4hAANAIB4gByALhSAbhSAYhSAPhUIBiYUgFIUgF4UgH4UgDoUhAiAMIB0gCoUgGoUgDYUgE4VCAYmFIAiFIBmFIBaFIBKFIgMgB4UhICAJIAggDIUgGYUgFoUgEoVCAYmFIByFIBWFIBGFIBCFIgQgDoUhISAcIAogFCAehSAXhSAfhSAOhUIBiYUgHYUgGoUgDYUgE4UiBYVCN4kiIiALIBwgCYUgFYUgEYUgEIVCAYmFIAeFIBuFIBiFIA+FIgYgCoVCPokiI0J/hYMgAyAPhUICiSIkhSEOIBYgAoVCKYkiJSAEIBeFQieJIiZCf4WDICKFIQ8gECAFhUI4iSIQIAYgDYVCD4kiJ0J/hYMgAyAbhUIKiSIohSENIAQgHoVCG4kiKSAoIAggAoVCJIkiKkJ/hYOFIRYgBiAdhUIGiSIrIAMgC4VCAYkiLEJ/hYMgEiAChUISiSIthSEXICsgBCAfhUIIiSIuIBUgBYVCGYkiFUJ/hYOFIRsgBiAThUI9iSIdIAQgFIVCFIkiBCAJIAWFQhyJIghCf4WDhSEUIAggHUJ/hYMgAyAYhUItiSIDhSEcIB0gA0J/hYMgGSAChUIDiSIJhSEdIAQgAyAJQn+Fg4UhByAJIARCf4WDIAiFIQggDCAChSICICFCDokiA0J/hYMgESAFhUIViSIEhSEJIAYgGoVCK4kiBSADIARCf4WDhSEKIAQgBUJ/hYMgIEIsiSIEhSELIABB0AlqKQMAIAUgBEJ/hYOFIAKFIQwgJyAoQn+FgyAqhSIFIRggAyAEIAJCf4WDhSICIR4gKiApQn+FgyAQhSIDIR8gLSAuQn+FgyAVhSIEIRogJiAkICVCf4WDhSIGIRMgFSArQn+FgyAshSIoIRkgIyAmICJCf4WDhSIiIRIgLiAsIC1Cf4WDhSImIRUgJyApIBBCf4WDhSInIREgIyAkQn+FgyAlhSIjIRAgAEEIaiIADQALQQAgDzcDqIsBQQAgBTcDgIsBQQAgGzcD2IoBQQAgBzcDsIoBQQAgCzcDiIoBQQAgDjcDwIsBQQAgAzcDmIsBQQAgFzcD8IoBQQAgFDcDyIoBQQAgAjcDoIoBQQAgBjcDsIsBQQAgDTcDiIsBQQAgBDcD4IoBQQAgHTcDuIoBQQAgCjcDkIoBQQAgIjcDoIsBQQAgFjcD+IoBQQAgKDcD0IoBQQAgCDcDqIoBQQAgDDcDgIoBQQAgIzcDuIsBQQAgJzcDkIsBQQAgJjcD6IoBQQAgHDcDwIoBQQAgCTcDmIoBC/gCAQV/QeQAQQAoAoyNASIBQQF2ayECAkBBACgCiI0BIgNBAEgNACABIQQCQCABIANGDQAgA0HIiwFqIQVBACEDA0AgBSADakEAOgAAIANBAWoiAyABQQAoAoiNASIEa0kNAAsLIARByIsBaiIDIAMtAAAgAHI6AAAgAUHHiwFqIgMgAy0AAEGAAXI6AABByIsBIAEQA0EAQYCAgIB4NgKIjQELAkAgAkEESQ0AIAJBAnYiA0EDcSEFQQAhBAJAIANBf2pBA0kNACADQfz///8DcSEBQQAhA0EAIQQDQCADQYAKaiADQYCKAWooAgA2AgAgA0GECmogA0GEigFqKAIANgIAIANBiApqIANBiIoBaigCADYCACADQYwKaiADQYyKAWooAgA2AgAgA0EQaiEDIAEgBEEEaiIERw0ACwsgBUUNACAFQQJ0IQEgBEECdCEDA0AgA0GACmogA0GAigFqKAIANgIAIANBBGohAyABQXxqIgENAAsLCwYAQYCKAQvRBgEDf0EAQgA3A4CNAUEAQgA3A/iMAUEAQgA3A/CMAUEAQgA3A+iMAUEAQgA3A+CMAUEAQgA3A9iMAUEAQgA3A9CMAUEAQgA3A8iMAUEAQgA3A8CMAUEAQgA3A7iMAUEAQgA3A7CMAUEAQgA3A6iMAUEAQgA3A6CMAUEAQgA3A5iMAUEAQgA3A5CMAUEAQgA3A4iMAUEAQgA3A4CMAUEAQgA3A/iLAUEAQgA3A/CLAUEAQgA3A+iLAUEAQgA3A+CLAUEAQgA3A9iLAUEAQgA3A9CLAUEAQgA3A8iLAUEAQgA3A8CLAUEAQgA3A7iLAUEAQgA3A7CLAUEAQgA3A6iLAUEAQgA3A6CLAUEAQgA3A5iLAUEAQgA3A5CLAUEAQgA3A4iLAUEAQgA3A4CLAUEAQgA3A/iKAUEAQgA3A/CKAUEAQgA3A+iKAUEAQgA3A+CKAUEAQgA3A9iKAUEAQgA3A9CKAUEAQgA3A8iKAUEAQgA3A8CKAUEAQgA3A7iKAUEAQgA3A7CKAUEAQgA3A6iKAUEAQgA3A6CKAUEAQgA3A5iKAUEAQgA3A5CKAUEAQgA3A4iKAUEAQgA3A4CKAUEAQcAMIAFBAXRrQQN2NgKMjQFBAEEANgKIjQEgABACQeQAQQAoAoyNASIAQQF2ayEDAkBBACgCiI0BIgFBAEgNACAAIQQCQCAAIAFGDQAgAUHIiwFqIQVBACEBA0AgBSABakEAOgAAIAFBAWoiASAAQQAoAoiNASIEa0kNAAsLIARByIsBaiIBIAEtAAAgAnI6AAAgAEHHiwFqIgEgAS0AAEGAAXI6AABByIsBIAAQA0EAQYCAgIB4NgKIjQELAkAgA0EESQ0AIANBAnYiAUEDcSEFQQAhBAJAIAFBf2pBA0kNACABQfz///8DcSEAQQAhAUEAIQQDQCABQYAKaiABQYCKAWooAgA2AgAgAUGECmogAUGEigFqKAIANgIAIAFBiApqIAFBiIoBaigCADYCACABQYwKaiABQYyKAWooAgA2AgAgAUEQaiEBIAAgBEEEaiIERw0ACwsgBUUNACAFQQJ0IQAgBEECdCEBA0AgAUGACmogAUGAigFqKAIANgIAIAFBBGohASAAQXxqIgANAAsLCwvYAQEAQYAIC9ABkAEAAAAAAAAAAAAAAAAAAAEAAAAAAAAAgoAAAAAAAACKgAAAAAAAgACAAIAAAACAi4AAAAAAAAABAACAAAAAAIGAAIAAAACACYAAAAAAAICKAAAAAAAAAIgAAAAAAAAACYAAgAAAAAAKAACAAAAAAIuAAIAAAAAAiwAAAAAAAICJgAAAAAAAgAOAAAAAAACAAoAAAAAAAICAAAAAAAAAgAqAAAAAAAAACgAAgAAAAICBgACAAAAAgICAAAAAAACAAQAAgAAAAAAIgACAAAAAgA==";
|
|
16858
|
+
var hash$b = "fb24e536";
|
|
16859
|
+
var wasmJson$b = {
|
|
16860
|
+
name: name$b,
|
|
16861
|
+
data: data$b,
|
|
16862
|
+
hash: hash$b
|
|
16863
|
+
};
|
|
15773
16864
|
|
|
15774
|
-
|
|
16865
|
+
const mutex$c = new Mutex();
|
|
16866
|
+
let wasmCache$c = null;
|
|
16867
|
+
function validateBits$1(bits) {
|
|
16868
|
+
if (![224, 256, 384, 512].includes(bits)) {
|
|
16869
|
+
return new Error("Invalid variant! Valid values: 224, 256, 384, 512");
|
|
16870
|
+
}
|
|
16871
|
+
return null;
|
|
16872
|
+
}
|
|
16873
|
+
/**
|
|
16874
|
+
* Calculates SHA-3 hash
|
|
16875
|
+
* @param data Input data (string, Buffer or TypedArray)
|
|
16876
|
+
* @param bits Number of output bits. Valid values: 224, 256, 384, 512
|
|
16877
|
+
* @returns Computed hash as a hexadecimal string
|
|
16878
|
+
*/
|
|
16879
|
+
function sha3(data, bits = 512) {
|
|
16880
|
+
if (validateBits$1(bits)) {
|
|
16881
|
+
return Promise.reject(validateBits$1(bits));
|
|
16882
|
+
}
|
|
16883
|
+
const hashLength = bits / 8;
|
|
16884
|
+
if (wasmCache$c === null || wasmCache$c.hashLength !== hashLength) {
|
|
16885
|
+
return lockedCreate(mutex$c, wasmJson$b, hashLength).then((wasm) => {
|
|
16886
|
+
wasmCache$c = wasm;
|
|
16887
|
+
return wasmCache$c.calculate(data, bits, 0x06);
|
|
16888
|
+
});
|
|
16889
|
+
}
|
|
16890
|
+
try {
|
|
16891
|
+
const hash = wasmCache$c.calculate(data, bits, 0x06);
|
|
16892
|
+
return Promise.resolve(hash);
|
|
16893
|
+
}
|
|
16894
|
+
catch (err) {
|
|
16895
|
+
return Promise.reject(err);
|
|
16896
|
+
}
|
|
16897
|
+
}
|
|
16898
|
+
/**
|
|
16899
|
+
* Creates a new SHA-3 hash instance
|
|
16900
|
+
* @param bits Number of output bits. Valid values: 224, 256, 384, 512
|
|
16901
|
+
*/
|
|
16902
|
+
function createSHA3(bits = 512) {
|
|
16903
|
+
if (validateBits$1(bits)) {
|
|
16904
|
+
return Promise.reject(validateBits$1(bits));
|
|
16905
|
+
}
|
|
16906
|
+
const outputSize = bits / 8;
|
|
16907
|
+
return WASMInterface(wasmJson$b, outputSize).then((wasm) => {
|
|
16908
|
+
wasm.init(bits);
|
|
16909
|
+
const obj = {
|
|
16910
|
+
init: () => {
|
|
16911
|
+
wasm.init(bits);
|
|
16912
|
+
return obj;
|
|
16913
|
+
},
|
|
16914
|
+
update: (data) => {
|
|
16915
|
+
wasm.update(data);
|
|
16916
|
+
return obj;
|
|
16917
|
+
},
|
|
16918
|
+
// biome-ignore lint/suspicious/noExplicitAny: Conflict with IHasher type
|
|
16919
|
+
digest: (outputType) => wasm.digest(outputType, 0x06),
|
|
16920
|
+
save: () => wasm.save(),
|
|
16921
|
+
load: (data) => {
|
|
16922
|
+
wasm.load(data);
|
|
16923
|
+
return obj;
|
|
16924
|
+
},
|
|
16925
|
+
blockSize: 200 - 2 * outputSize,
|
|
16926
|
+
digestSize: outputSize,
|
|
16927
|
+
};
|
|
16928
|
+
return obj;
|
|
16929
|
+
});
|
|
16930
|
+
}
|
|
15775
16931
|
|
|
15776
|
-
|
|
15777
|
-
|
|
16932
|
+
const mutex$b = new Mutex();
|
|
16933
|
+
let wasmCache$b = null;
|
|
16934
|
+
function validateBits(bits) {
|
|
16935
|
+
if (![224, 256, 384, 512].includes(bits)) {
|
|
16936
|
+
return new Error("Invalid variant! Valid values: 224, 256, 384, 512");
|
|
16937
|
+
}
|
|
16938
|
+
return null;
|
|
16939
|
+
}
|
|
16940
|
+
/**
|
|
16941
|
+
* Calculates Keccak hash
|
|
16942
|
+
* @param data Input data (string, Buffer or TypedArray)
|
|
16943
|
+
* @param bits Number of output bits. Valid values: 224, 256, 384, 512
|
|
16944
|
+
* @returns Computed hash as a hexadecimal string
|
|
16945
|
+
*/
|
|
16946
|
+
function keccak(data, bits = 512) {
|
|
16947
|
+
if (validateBits(bits)) {
|
|
16948
|
+
return Promise.reject(validateBits(bits));
|
|
16949
|
+
}
|
|
16950
|
+
const hashLength = bits / 8;
|
|
16951
|
+
if (wasmCache$b === null || wasmCache$b.hashLength !== hashLength) {
|
|
16952
|
+
return lockedCreate(mutex$b, wasmJson$b, hashLength).then((wasm) => {
|
|
16953
|
+
wasmCache$b = wasm;
|
|
16954
|
+
return wasmCache$b.calculate(data, bits, 0x01);
|
|
16955
|
+
});
|
|
16956
|
+
}
|
|
16957
|
+
try {
|
|
16958
|
+
const hash = wasmCache$b.calculate(data, bits, 0x01);
|
|
16959
|
+
return Promise.resolve(hash);
|
|
16960
|
+
}
|
|
16961
|
+
catch (err) {
|
|
16962
|
+
return Promise.reject(err);
|
|
16963
|
+
}
|
|
16964
|
+
}
|
|
16965
|
+
/**
|
|
16966
|
+
* Creates a new Keccak hash instance
|
|
16967
|
+
* @param bits Number of output bits. Valid values: 224, 256, 384, 512
|
|
16968
|
+
*/
|
|
16969
|
+
function createKeccak(bits = 512) {
|
|
16970
|
+
if (validateBits(bits)) {
|
|
16971
|
+
return Promise.reject(validateBits(bits));
|
|
16972
|
+
}
|
|
16973
|
+
const outputSize = bits / 8;
|
|
16974
|
+
return WASMInterface(wasmJson$b, outputSize).then((wasm) => {
|
|
16975
|
+
wasm.init(bits);
|
|
16976
|
+
const obj = {
|
|
16977
|
+
init: () => {
|
|
16978
|
+
wasm.init(bits);
|
|
16979
|
+
return obj;
|
|
16980
|
+
},
|
|
16981
|
+
update: (data) => {
|
|
16982
|
+
wasm.update(data);
|
|
16983
|
+
return obj;
|
|
16984
|
+
},
|
|
16985
|
+
// biome-ignore lint/suspicious/noExplicitAny: Conflict with IHasher type
|
|
16986
|
+
digest: (outputType) => wasm.digest(outputType, 0x01),
|
|
16987
|
+
save: () => wasm.save(),
|
|
16988
|
+
load: (data) => {
|
|
16989
|
+
wasm.load(data);
|
|
16990
|
+
return obj;
|
|
16991
|
+
},
|
|
16992
|
+
blockSize: 200 - 2 * outputSize,
|
|
16993
|
+
digestSize: outputSize,
|
|
16994
|
+
};
|
|
16995
|
+
return obj;
|
|
16996
|
+
});
|
|
16997
|
+
}
|
|
15778
16998
|
|
|
15779
|
-
var
|
|
15780
|
-
var b2wasm = __nccwpck_require__(1625)
|
|
15781
|
-
|
|
15782
|
-
|
|
15783
|
-
|
|
15784
|
-
|
|
15785
|
-
|
|
15786
|
-
|
|
15787
|
-
var o1 = v[a + 1] + v[b + 1]
|
|
15788
|
-
if (o0 >= 0x100000000) {
|
|
15789
|
-
o1++
|
|
15790
|
-
}
|
|
15791
|
-
v[a] = o0
|
|
15792
|
-
v[a + 1] = o1
|
|
15793
|
-
}
|
|
16999
|
+
var name$a = "sha256";
|
|
17000
|
+
var data$a = "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c2pBx6KerX1qIhkgASADcyACcSABIANxcyABQR53IAFBE3dzIAFBCndzaiAaaiICaiIJIBMgEnNxIBJzaiAJQRp3IAlBFXdzIAlBB3dzakHRxqk2aiIaIAIgAXMgA3EgAiABcXMgAkEedyACQRN3cyACQQp3c2ogGGoiA2oiESAJIBNzcSATc2ogEUEadyARQRV3cyARQQd3c2pB59KkoQFqIhggAyACcyABcSADIAJxcyADQR53IANBE3dzIANBCndzaiAUaiIBaiISIBEgCXNxIAlzaiASQRp3IBJBFXdzIBJBB3dzakGFldy9AmoiFCABIANzIAJxIAEgA3FzIAFBHncgAUETd3MgAUEKd3NqIBdqIgJqIhMgI2ogJiASaiAiIBFqICUgCWogEyASIBFzcSARc2ogE0EadyATQRV3cyATQQd3c2pBuMLs8AJqIhcgAiABcyADcSACIAFxcyACQR53IAJBE3dzIAJBCndzaiAZaiIDaiIJIBMgEnNxIBJzaiAJQRp3IAlBFXdzIAlBB3dzakH827HpBGoiGSADIAJzIAFxIAMgAnFzIANBHncgA0ETd3MgA0EKd3NqIBpqIgFqIhEgCSATc3EgE3NqIBFBGncgEUEVd3MgEUEHd3NqQZOa4JkFaiIaIAEgA3MgAnEgASADcXMgAUEedyABQRN3cyABQQp3c2ogGGoiAmoiEiARIAlzcSAJc2ogEkEadyASQRV3cyASQQd3c2pB1OapqAZqIhggAiABcyADcSACIAFxcyACQR53IAJBE3dzIAJBCndzaiAUaiIDaiITaiAoIBJqICQgEWogJyAJaiATIBIgEXNxIBFzaiATQRp3IBNBFXdzIBNBB3dzakG7laizB2oiFCADIAJzIAFxIAMgAnFzIANBHncgA0ETd3MgA0EKd3NqIBdqIgFqIgkgEyASc3EgEnNqIAlBGncgCUEVd3MgCUEHd3NqQa6Si454aiIXIAEgA3MgAnEgASADcXMgAUEedyABQRN3cyABQQp3c2ogGWoiAmoiESAJIBNzcSATc2ogEUEadyARQRV3cyARQQd3c2pBhdnIk3lqIhkgAiABcyADcSACIAFxcyACQR53IAJBE3dzIAJBCndzaiAaaiIDaiISIBEgCXNxIAlzaiASQRp3IBJBFXdzIBJBB3dzakGh0f+VemoiGiADIAJz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";
|
|
17001
|
+
var hash$a = "8c18dd94";
|
|
17002
|
+
var wasmJson$a = {
|
|
17003
|
+
name: name$a,
|
|
17004
|
+
data: data$a,
|
|
17005
|
+
hash: hash$a
|
|
17006
|
+
};
|
|
15794
17007
|
|
|
15795
|
-
|
|
15796
|
-
|
|
15797
|
-
|
|
15798
|
-
|
|
15799
|
-
|
|
15800
|
-
|
|
15801
|
-
|
|
15802
|
-
|
|
15803
|
-
|
|
15804
|
-
|
|
15805
|
-
|
|
15806
|
-
|
|
15807
|
-
|
|
15808
|
-
|
|
15809
|
-
|
|
15810
|
-
|
|
15811
|
-
|
|
15812
|
-
|
|
15813
|
-
|
|
15814
|
-
|
|
15815
|
-
|
|
15816
|
-
|
|
15817
|
-
|
|
15818
|
-
|
|
15819
|
-
|
|
15820
|
-
|
|
15821
|
-
|
|
15822
|
-
|
|
15823
|
-
|
|
15824
|
-
|
|
15825
|
-
|
|
15826
|
-
|
|
15827
|
-
|
|
15828
|
-
|
|
15829
|
-
|
|
15830
|
-
|
|
15831
|
-
|
|
15832
|
-
|
|
15833
|
-
|
|
15834
|
-
|
|
15835
|
-
|
|
15836
|
-
|
|
15837
|
-
|
|
15838
|
-
|
|
15839
|
-
|
|
15840
|
-
|
|
15841
|
-
|
|
15842
|
-
|
|
15843
|
-
|
|
15844
|
-
|
|
15845
|
-
ADD64AC(v, a, y0, y1)
|
|
15846
|
-
|
|
15847
|
-
// v[d,d+1] = (v[d,d+1] xor v[a,a+1]) rotated right by 16 bits
|
|
15848
|
-
xor0 = v[d] ^ v[a]
|
|
15849
|
-
xor1 = v[d + 1] ^ v[a + 1]
|
|
15850
|
-
v[d] = (xor0 >>> 16) ^ (xor1 << 16)
|
|
15851
|
-
v[d + 1] = (xor1 >>> 16) ^ (xor0 << 16)
|
|
15852
|
-
|
|
15853
|
-
ADD64AA(v, c, d)
|
|
15854
|
-
|
|
15855
|
-
// v[b,b+1] = (v[b,b+1] xor v[c,c+1]) rotated right by 63 bits
|
|
15856
|
-
xor0 = v[b] ^ v[c]
|
|
15857
|
-
xor1 = v[b + 1] ^ v[c + 1]
|
|
15858
|
-
v[b] = (xor1 >>> 31) ^ (xor0 << 1)
|
|
15859
|
-
v[b + 1] = (xor0 >>> 31) ^ (xor1 << 1)
|
|
15860
|
-
}
|
|
15861
|
-
|
|
15862
|
-
// Initialization Vector
|
|
15863
|
-
var BLAKE2B_IV32 = new Uint32Array([
|
|
15864
|
-
0xF3BCC908, 0x6A09E667, 0x84CAA73B, 0xBB67AE85,
|
|
15865
|
-
0xFE94F82B, 0x3C6EF372, 0x5F1D36F1, 0xA54FF53A,
|
|
15866
|
-
0xADE682D1, 0x510E527F, 0x2B3E6C1F, 0x9B05688C,
|
|
15867
|
-
0xFB41BD6B, 0x1F83D9AB, 0x137E2179, 0x5BE0CD19
|
|
15868
|
-
])
|
|
15869
|
-
|
|
15870
|
-
var SIGMA8 = [
|
|
15871
|
-
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
|
|
15872
|
-
14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3,
|
|
15873
|
-
11, 8, 12, 0, 5, 2, 15, 13, 10, 14, 3, 6, 7, 1, 9, 4,
|
|
15874
|
-
7, 9, 3, 1, 13, 12, 11, 14, 2, 6, 5, 10, 4, 0, 15, 8,
|
|
15875
|
-
9, 0, 5, 7, 2, 4, 10, 15, 14, 1, 11, 12, 6, 8, 3, 13,
|
|
15876
|
-
2, 12, 6, 10, 0, 11, 8, 3, 4, 13, 7, 5, 15, 14, 1, 9,
|
|
15877
|
-
12, 5, 1, 15, 14, 13, 4, 10, 0, 7, 6, 3, 9, 2, 8, 11,
|
|
15878
|
-
13, 11, 7, 14, 12, 1, 3, 9, 5, 0, 15, 4, 8, 6, 2, 10,
|
|
15879
|
-
6, 15, 14, 9, 11, 3, 0, 8, 12, 2, 13, 7, 1, 4, 10, 5,
|
|
15880
|
-
10, 2, 8, 4, 7, 6, 1, 5, 15, 11, 9, 14, 3, 12, 13, 0,
|
|
15881
|
-
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
|
|
15882
|
-
14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3
|
|
15883
|
-
]
|
|
15884
|
-
|
|
15885
|
-
// These are offsets into a uint64 buffer.
|
|
15886
|
-
// Multiply them all by 2 to make them offsets into a uint32 buffer,
|
|
15887
|
-
// because this is Javascript and we don't have uint64s
|
|
15888
|
-
var SIGMA82 = new Uint8Array(SIGMA8.map(function (x) { return x * 2 }))
|
|
15889
|
-
|
|
15890
|
-
// Compression function. 'last' flag indicates last block.
|
|
15891
|
-
// Note we're representing 16 uint64s as 32 uint32s
|
|
15892
|
-
var v = new Uint32Array(32)
|
|
15893
|
-
var m = new Uint32Array(32)
|
|
15894
|
-
function blake2bCompress (ctx, last) {
|
|
15895
|
-
var i = 0
|
|
15896
|
-
|
|
15897
|
-
// init work variables
|
|
15898
|
-
for (i = 0; i < 16; i++) {
|
|
15899
|
-
v[i] = ctx.h[i]
|
|
15900
|
-
v[i + 16] = BLAKE2B_IV32[i]
|
|
15901
|
-
}
|
|
17008
|
+
const mutex$a = new Mutex();
|
|
17009
|
+
let wasmCache$a = null;
|
|
17010
|
+
/**
|
|
17011
|
+
* Calculates SHA-2 (SHA-224) hash
|
|
17012
|
+
* @param data Input data (string, Buffer or TypedArray)
|
|
17013
|
+
* @returns Computed hash as a hexadecimal string
|
|
17014
|
+
*/
|
|
17015
|
+
function sha224(data) {
|
|
17016
|
+
if (wasmCache$a === null) {
|
|
17017
|
+
return lockedCreate(mutex$a, wasmJson$a, 28).then((wasm) => {
|
|
17018
|
+
wasmCache$a = wasm;
|
|
17019
|
+
return wasmCache$a.calculate(data, 224);
|
|
17020
|
+
});
|
|
17021
|
+
}
|
|
17022
|
+
try {
|
|
17023
|
+
const hash = wasmCache$a.calculate(data, 224);
|
|
17024
|
+
return Promise.resolve(hash);
|
|
17025
|
+
}
|
|
17026
|
+
catch (err) {
|
|
17027
|
+
return Promise.reject(err);
|
|
17028
|
+
}
|
|
17029
|
+
}
|
|
17030
|
+
/**
|
|
17031
|
+
* Creates a new SHA-2 (SHA-224) hash instance
|
|
17032
|
+
*/
|
|
17033
|
+
function createSHA224() {
|
|
17034
|
+
return WASMInterface(wasmJson$a, 28).then((wasm) => {
|
|
17035
|
+
wasm.init(224);
|
|
17036
|
+
const obj = {
|
|
17037
|
+
init: () => {
|
|
17038
|
+
wasm.init(224);
|
|
17039
|
+
return obj;
|
|
17040
|
+
},
|
|
17041
|
+
update: (data) => {
|
|
17042
|
+
wasm.update(data);
|
|
17043
|
+
return obj;
|
|
17044
|
+
},
|
|
17045
|
+
// biome-ignore lint/suspicious/noExplicitAny: Conflict with IHasher type
|
|
17046
|
+
digest: (outputType) => wasm.digest(outputType),
|
|
17047
|
+
save: () => wasm.save(),
|
|
17048
|
+
load: (data) => {
|
|
17049
|
+
wasm.load(data);
|
|
17050
|
+
return obj;
|
|
17051
|
+
},
|
|
17052
|
+
blockSize: 64,
|
|
17053
|
+
digestSize: 28,
|
|
17054
|
+
};
|
|
17055
|
+
return obj;
|
|
17056
|
+
});
|
|
17057
|
+
}
|
|
15902
17058
|
|
|
15903
|
-
|
|
15904
|
-
|
|
15905
|
-
|
|
15906
|
-
|
|
17059
|
+
const mutex$9 = new Mutex();
|
|
17060
|
+
let wasmCache$9 = null;
|
|
17061
|
+
/**
|
|
17062
|
+
* Calculates SHA-2 (SHA-256) hash
|
|
17063
|
+
* @param data Input data (string, Buffer or TypedArray)
|
|
17064
|
+
* @returns Computed hash as a hexadecimal string
|
|
17065
|
+
*/
|
|
17066
|
+
function sha256(data) {
|
|
17067
|
+
if (wasmCache$9 === null) {
|
|
17068
|
+
return lockedCreate(mutex$9, wasmJson$a, 32).then((wasm) => {
|
|
17069
|
+
wasmCache$9 = wasm;
|
|
17070
|
+
return wasmCache$9.calculate(data, 256);
|
|
17071
|
+
});
|
|
17072
|
+
}
|
|
17073
|
+
try {
|
|
17074
|
+
const hash = wasmCache$9.calculate(data, 256);
|
|
17075
|
+
return Promise.resolve(hash);
|
|
17076
|
+
}
|
|
17077
|
+
catch (err) {
|
|
17078
|
+
return Promise.reject(err);
|
|
17079
|
+
}
|
|
17080
|
+
}
|
|
17081
|
+
/**
|
|
17082
|
+
* Creates a new SHA-2 (SHA-256) hash instance
|
|
17083
|
+
*/
|
|
17084
|
+
function createSHA256() {
|
|
17085
|
+
return WASMInterface(wasmJson$a, 32).then((wasm) => {
|
|
17086
|
+
wasm.init(256);
|
|
17087
|
+
const obj = {
|
|
17088
|
+
init: () => {
|
|
17089
|
+
wasm.init(256);
|
|
17090
|
+
return obj;
|
|
17091
|
+
},
|
|
17092
|
+
update: (data) => {
|
|
17093
|
+
wasm.update(data);
|
|
17094
|
+
return obj;
|
|
17095
|
+
},
|
|
17096
|
+
// biome-ignore lint/suspicious/noExplicitAny: Conflict with IHasher type
|
|
17097
|
+
digest: (outputType) => wasm.digest(outputType),
|
|
17098
|
+
save: () => wasm.save(),
|
|
17099
|
+
load: (data) => {
|
|
17100
|
+
wasm.load(data);
|
|
17101
|
+
return obj;
|
|
17102
|
+
},
|
|
17103
|
+
blockSize: 64,
|
|
17104
|
+
digestSize: 32,
|
|
17105
|
+
};
|
|
17106
|
+
return obj;
|
|
17107
|
+
});
|
|
17108
|
+
}
|
|
15907
17109
|
|
|
15908
|
-
|
|
15909
|
-
if (last) {
|
|
15910
|
-
|
|
15911
|
-
|
|
15912
|
-
|
|
17110
|
+
var name$9 = "sha512";
|
|
17111
|
+
var data$9 = "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";
|
|
17112
|
+
var hash$9 = "f2e40eb1";
|
|
17113
|
+
var wasmJson$9 = {
|
|
17114
|
+
name: name$9,
|
|
17115
|
+
data: data$9,
|
|
17116
|
+
hash: hash$9
|
|
17117
|
+
};
|
|
15913
17118
|
|
|
15914
|
-
|
|
15915
|
-
|
|
15916
|
-
|
|
15917
|
-
|
|
17119
|
+
const mutex$8 = new Mutex();
|
|
17120
|
+
let wasmCache$8 = null;
|
|
17121
|
+
/**
|
|
17122
|
+
* Calculates SHA-2 (SHA-384) hash
|
|
17123
|
+
* @param data Input data (string, Buffer or TypedArray)
|
|
17124
|
+
* @returns Computed hash as a hexadecimal string
|
|
17125
|
+
*/
|
|
17126
|
+
function sha384(data) {
|
|
17127
|
+
if (wasmCache$8 === null) {
|
|
17128
|
+
return lockedCreate(mutex$8, wasmJson$9, 48).then((wasm) => {
|
|
17129
|
+
wasmCache$8 = wasm;
|
|
17130
|
+
return wasmCache$8.calculate(data, 384);
|
|
17131
|
+
});
|
|
17132
|
+
}
|
|
17133
|
+
try {
|
|
17134
|
+
const hash = wasmCache$8.calculate(data, 384);
|
|
17135
|
+
return Promise.resolve(hash);
|
|
17136
|
+
}
|
|
17137
|
+
catch (err) {
|
|
17138
|
+
return Promise.reject(err);
|
|
17139
|
+
}
|
|
17140
|
+
}
|
|
17141
|
+
/**
|
|
17142
|
+
* Creates a new SHA-2 (SHA-384) hash instance
|
|
17143
|
+
*/
|
|
17144
|
+
function createSHA384() {
|
|
17145
|
+
return WASMInterface(wasmJson$9, 48).then((wasm) => {
|
|
17146
|
+
wasm.init(384);
|
|
17147
|
+
const obj = {
|
|
17148
|
+
init: () => {
|
|
17149
|
+
wasm.init(384);
|
|
17150
|
+
return obj;
|
|
17151
|
+
},
|
|
17152
|
+
update: (data) => {
|
|
17153
|
+
wasm.update(data);
|
|
17154
|
+
return obj;
|
|
17155
|
+
},
|
|
17156
|
+
// biome-ignore lint/suspicious/noExplicitAny: Conflict with IHasher type
|
|
17157
|
+
digest: (outputType) => wasm.digest(outputType),
|
|
17158
|
+
save: () => wasm.save(),
|
|
17159
|
+
load: (data) => {
|
|
17160
|
+
wasm.load(data);
|
|
17161
|
+
return obj;
|
|
17162
|
+
},
|
|
17163
|
+
blockSize: 128,
|
|
17164
|
+
digestSize: 48,
|
|
17165
|
+
};
|
|
17166
|
+
return obj;
|
|
17167
|
+
});
|
|
17168
|
+
}
|
|
15918
17169
|
|
|
15919
|
-
|
|
15920
|
-
|
|
15921
|
-
|
|
15922
|
-
|
|
15923
|
-
|
|
15924
|
-
|
|
15925
|
-
|
|
15926
|
-
|
|
15927
|
-
|
|
15928
|
-
|
|
15929
|
-
|
|
17170
|
+
const mutex$7 = new Mutex();
|
|
17171
|
+
let wasmCache$7 = null;
|
|
17172
|
+
/**
|
|
17173
|
+
* Calculates SHA-2 (SHA-512) hash
|
|
17174
|
+
* @param data Input data (string, Buffer or TypedArray)
|
|
17175
|
+
* @returns Computed hash as a hexadecimal string
|
|
17176
|
+
*/
|
|
17177
|
+
function sha512(data) {
|
|
17178
|
+
if (wasmCache$7 === null) {
|
|
17179
|
+
return lockedCreate(mutex$7, wasmJson$9, 64).then((wasm) => {
|
|
17180
|
+
wasmCache$7 = wasm;
|
|
17181
|
+
return wasmCache$7.calculate(data, 512);
|
|
17182
|
+
});
|
|
17183
|
+
}
|
|
17184
|
+
try {
|
|
17185
|
+
const hash = wasmCache$7.calculate(data, 512);
|
|
17186
|
+
return Promise.resolve(hash);
|
|
17187
|
+
}
|
|
17188
|
+
catch (err) {
|
|
17189
|
+
return Promise.reject(err);
|
|
17190
|
+
}
|
|
17191
|
+
}
|
|
17192
|
+
/**
|
|
17193
|
+
* Creates a new SHA-2 (SHA-512) hash instance
|
|
17194
|
+
*/
|
|
17195
|
+
function createSHA512() {
|
|
17196
|
+
return WASMInterface(wasmJson$9, 64).then((wasm) => {
|
|
17197
|
+
wasm.init(512);
|
|
17198
|
+
const obj = {
|
|
17199
|
+
init: () => {
|
|
17200
|
+
wasm.init(512);
|
|
17201
|
+
return obj;
|
|
17202
|
+
},
|
|
17203
|
+
update: (data) => {
|
|
17204
|
+
wasm.update(data);
|
|
17205
|
+
return obj;
|
|
17206
|
+
},
|
|
17207
|
+
// biome-ignore lint/suspicious/noExplicitAny: Conflict with IHasher type
|
|
17208
|
+
digest: (outputType) => wasm.digest(outputType),
|
|
17209
|
+
save: () => wasm.save(),
|
|
17210
|
+
load: (data) => {
|
|
17211
|
+
wasm.load(data);
|
|
17212
|
+
return obj;
|
|
17213
|
+
},
|
|
17214
|
+
blockSize: 128,
|
|
17215
|
+
digestSize: 64,
|
|
17216
|
+
};
|
|
17217
|
+
return obj;
|
|
17218
|
+
});
|
|
17219
|
+
}
|
|
15930
17220
|
|
|
15931
|
-
|
|
15932
|
-
|
|
15933
|
-
|
|
15934
|
-
|
|
17221
|
+
var name$8 = "xxhash32";
|
|
17222
|
+
var data$8 = "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";
|
|
17223
|
+
var hash$8 = "4bb12485";
|
|
17224
|
+
var wasmJson$8 = {
|
|
17225
|
+
name: name$8,
|
|
17226
|
+
data: data$8,
|
|
17227
|
+
hash: hash$8
|
|
17228
|
+
};
|
|
15935
17229
|
|
|
15936
|
-
|
|
15937
|
-
|
|
15938
|
-
|
|
15939
|
-
|
|
15940
|
-
|
|
15941
|
-
|
|
15942
|
-
|
|
15943
|
-
|
|
15944
|
-
|
|
15945
|
-
|
|
15946
|
-
|
|
15947
|
-
|
|
15948
|
-
|
|
15949
|
-
|
|
15950
|
-
|
|
15951
|
-
|
|
15952
|
-
|
|
15953
|
-
|
|
15954
|
-
|
|
15955
|
-
|
|
15956
|
-
|
|
15957
|
-
|
|
15958
|
-
|
|
15959
|
-
|
|
15960
|
-
|
|
15961
|
-
|
|
15962
|
-
|
|
15963
|
-
|
|
15964
|
-
|
|
15965
|
-
|
|
15966
|
-
|
|
15967
|
-
|
|
15968
|
-
|
|
15969
|
-
|
|
15970
|
-
|
|
15971
|
-
|
|
15972
|
-
|
|
15973
|
-
|
|
15974
|
-
|
|
15975
|
-
|
|
15976
|
-
|
|
15977
|
-
|
|
15978
|
-
|
|
15979
|
-
|
|
15980
|
-
|
|
15981
|
-
|
|
17230
|
+
const mutex$6 = new Mutex();
|
|
17231
|
+
let wasmCache$6 = null;
|
|
17232
|
+
function validateSeed$3(seed) {
|
|
17233
|
+
if (!Number.isInteger(seed) || seed < 0 || seed > 0xffffffff) {
|
|
17234
|
+
return new Error("Seed must be a valid 32-bit long unsigned integer.");
|
|
17235
|
+
}
|
|
17236
|
+
return null;
|
|
17237
|
+
}
|
|
17238
|
+
/**
|
|
17239
|
+
* Calculates xxHash32 hash
|
|
17240
|
+
* @param data Input data (string, Buffer or TypedArray)
|
|
17241
|
+
* @param seed Number used to initialize the internal state of the algorithm (defaults to 0)
|
|
17242
|
+
* @returns Computed hash as a hexadecimal string
|
|
17243
|
+
*/
|
|
17244
|
+
function xxhash32(data, seed = 0) {
|
|
17245
|
+
if (validateSeed$3(seed)) {
|
|
17246
|
+
return Promise.reject(validateSeed$3(seed));
|
|
17247
|
+
}
|
|
17248
|
+
if (wasmCache$6 === null) {
|
|
17249
|
+
return lockedCreate(mutex$6, wasmJson$8, 4).then((wasm) => {
|
|
17250
|
+
wasmCache$6 = wasm;
|
|
17251
|
+
return wasmCache$6.calculate(data, seed);
|
|
17252
|
+
});
|
|
17253
|
+
}
|
|
17254
|
+
try {
|
|
17255
|
+
const hash = wasmCache$6.calculate(data, seed);
|
|
17256
|
+
return Promise.resolve(hash);
|
|
17257
|
+
}
|
|
17258
|
+
catch (err) {
|
|
17259
|
+
return Promise.reject(err);
|
|
17260
|
+
}
|
|
17261
|
+
}
|
|
17262
|
+
/**
|
|
17263
|
+
* Creates a new xxHash32 hash instance
|
|
17264
|
+
* @param data Input data (string, Buffer or TypedArray)
|
|
17265
|
+
* @param seed Number used to initialize the internal state of the algorithm (defaults to 0)
|
|
17266
|
+
*/
|
|
17267
|
+
function createXXHash32(seed = 0) {
|
|
17268
|
+
if (validateSeed$3(seed)) {
|
|
17269
|
+
return Promise.reject(validateSeed$3(seed));
|
|
17270
|
+
}
|
|
17271
|
+
return WASMInterface(wasmJson$8, 4).then((wasm) => {
|
|
17272
|
+
wasm.init(seed);
|
|
17273
|
+
const obj = {
|
|
17274
|
+
init: () => {
|
|
17275
|
+
wasm.init(seed);
|
|
17276
|
+
return obj;
|
|
17277
|
+
},
|
|
17278
|
+
update: (data) => {
|
|
17279
|
+
wasm.update(data);
|
|
17280
|
+
return obj;
|
|
17281
|
+
},
|
|
17282
|
+
// biome-ignore lint/suspicious/noExplicitAny: Conflict with IHasher type
|
|
17283
|
+
digest: (outputType) => wasm.digest(outputType),
|
|
17284
|
+
save: () => wasm.save(),
|
|
17285
|
+
load: (data) => {
|
|
17286
|
+
wasm.load(data);
|
|
17287
|
+
return obj;
|
|
17288
|
+
},
|
|
17289
|
+
blockSize: 16,
|
|
17290
|
+
digestSize: 4,
|
|
17291
|
+
};
|
|
17292
|
+
return obj;
|
|
17293
|
+
});
|
|
17294
|
+
}
|
|
15982
17295
|
|
|
15983
|
-
|
|
15984
|
-
|
|
15985
|
-
|
|
15986
|
-
|
|
15987
|
-
|
|
15988
|
-
|
|
15989
|
-
|
|
17296
|
+
var name$7 = "xxhash64";
|
|
17297
|
+
var data$7 = "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";
|
|
17298
|
+
var hash$7 = "177fbfa3";
|
|
17299
|
+
var wasmJson$7 = {
|
|
17300
|
+
name: name$7,
|
|
17301
|
+
data: data$7,
|
|
17302
|
+
hash: hash$7
|
|
17303
|
+
};
|
|
15990
17304
|
|
|
15991
|
-
|
|
15992
|
-
|
|
15993
|
-
|
|
15994
|
-
|
|
15995
|
-
|
|
17305
|
+
const mutex$5 = new Mutex();
|
|
17306
|
+
let wasmCache$5 = null;
|
|
17307
|
+
const seedBuffer$2 = new Uint8Array(8);
|
|
17308
|
+
function validateSeed$2(seed) {
|
|
17309
|
+
if (!Number.isInteger(seed) || seed < 0 || seed > 0xffffffff) {
|
|
17310
|
+
return new Error("Seed must be given as two valid 32-bit long unsigned integers (lo + high).");
|
|
17311
|
+
}
|
|
17312
|
+
return null;
|
|
17313
|
+
}
|
|
17314
|
+
function writeSeed$2(arr, low, high) {
|
|
17315
|
+
// write in little-endian format
|
|
17316
|
+
const buffer = new DataView(arr);
|
|
17317
|
+
buffer.setUint32(0, low, true);
|
|
17318
|
+
buffer.setUint32(4, high, true);
|
|
17319
|
+
}
|
|
17320
|
+
/**
|
|
17321
|
+
* Calculates xxHash64 hash
|
|
17322
|
+
* @param data Input data (string, Buffer or TypedArray)
|
|
17323
|
+
* @param seedLow Lower 32 bits of the number used to
|
|
17324
|
+
* initialize the internal state of the algorithm (defaults to 0)
|
|
17325
|
+
* @param seedHigh Higher 32 bits of the number used to
|
|
17326
|
+
* initialize the internal state of the algorithm (defaults to 0)
|
|
17327
|
+
* @returns Computed hash as a hexadecimal string
|
|
17328
|
+
*/
|
|
17329
|
+
function xxhash64(data, seedLow = 0, seedHigh = 0) {
|
|
17330
|
+
if (validateSeed$2(seedLow)) {
|
|
17331
|
+
return Promise.reject(validateSeed$2(seedLow));
|
|
17332
|
+
}
|
|
17333
|
+
if (validateSeed$2(seedHigh)) {
|
|
17334
|
+
return Promise.reject(validateSeed$2(seedHigh));
|
|
17335
|
+
}
|
|
17336
|
+
if (wasmCache$5 === null) {
|
|
17337
|
+
return lockedCreate(mutex$5, wasmJson$7, 8).then((wasm) => {
|
|
17338
|
+
wasmCache$5 = wasm;
|
|
17339
|
+
writeSeed$2(seedBuffer$2.buffer, seedLow, seedHigh);
|
|
17340
|
+
wasmCache$5.writeMemory(seedBuffer$2);
|
|
17341
|
+
return wasmCache$5.calculate(data);
|
|
17342
|
+
});
|
|
17343
|
+
}
|
|
17344
|
+
try {
|
|
17345
|
+
writeSeed$2(seedBuffer$2.buffer, seedLow, seedHigh);
|
|
17346
|
+
wasmCache$5.writeMemory(seedBuffer$2);
|
|
17347
|
+
const hash = wasmCache$5.calculate(data);
|
|
17348
|
+
return Promise.resolve(hash);
|
|
17349
|
+
}
|
|
17350
|
+
catch (err) {
|
|
17351
|
+
return Promise.reject(err);
|
|
17352
|
+
}
|
|
17353
|
+
}
|
|
17354
|
+
/**
|
|
17355
|
+
* Creates a new xxHash64 hash instance
|
|
17356
|
+
* @param seedLow Lower 32 bits of the number used to
|
|
17357
|
+
* initialize the internal state of the algorithm (defaults to 0)
|
|
17358
|
+
* @param seedHigh Higher 32 bits of the number used to
|
|
17359
|
+
* initialize the internal state of the algorithm (defaults to 0)
|
|
17360
|
+
*/
|
|
17361
|
+
function createXXHash64(seedLow = 0, seedHigh = 0) {
|
|
17362
|
+
if (validateSeed$2(seedLow)) {
|
|
17363
|
+
return Promise.reject(validateSeed$2(seedLow));
|
|
17364
|
+
}
|
|
17365
|
+
if (validateSeed$2(seedHigh)) {
|
|
17366
|
+
return Promise.reject(validateSeed$2(seedHigh));
|
|
17367
|
+
}
|
|
17368
|
+
return WASMInterface(wasmJson$7, 8).then((wasm) => {
|
|
17369
|
+
const instanceBuffer = new Uint8Array(8);
|
|
17370
|
+
writeSeed$2(instanceBuffer.buffer, seedLow, seedHigh);
|
|
17371
|
+
wasm.writeMemory(instanceBuffer);
|
|
17372
|
+
wasm.init();
|
|
17373
|
+
const obj = {
|
|
17374
|
+
init: () => {
|
|
17375
|
+
wasm.writeMemory(instanceBuffer);
|
|
17376
|
+
wasm.init();
|
|
17377
|
+
return obj;
|
|
17378
|
+
},
|
|
17379
|
+
update: (data) => {
|
|
17380
|
+
wasm.update(data);
|
|
17381
|
+
return obj;
|
|
17382
|
+
},
|
|
17383
|
+
// biome-ignore lint/suspicious/noExplicitAny: Conflict with IHasher type
|
|
17384
|
+
digest: (outputType) => wasm.digest(outputType),
|
|
17385
|
+
save: () => wasm.save(),
|
|
17386
|
+
load: (data) => {
|
|
17387
|
+
wasm.load(data);
|
|
17388
|
+
return obj;
|
|
17389
|
+
},
|
|
17390
|
+
blockSize: 32,
|
|
17391
|
+
digestSize: 8,
|
|
17392
|
+
};
|
|
17393
|
+
return obj;
|
|
17394
|
+
});
|
|
17395
|
+
}
|
|
15996
17396
|
|
|
15997
|
-
|
|
15998
|
-
var buf = (!out || out === 'binary' || out === 'hex') ? new Uint8Array(this.outlen) : out
|
|
15999
|
-
|
|
16000
|
-
|
|
16001
|
-
|
|
16002
|
-
|
|
16003
|
-
|
|
16004
|
-
}
|
|
17397
|
+
var name$6 = "xxhash3";
|
|
17398
|
+
var data$6 = "AGFzbQEAAAABNAhgAAF/YAR/f39/AGAHf39/f39/fwBgBH9+fn4BfmAEf39/fgF+YAN/f34BfmAAAGABfwADDg0AAQIDBAUFBQYHBgAGBQQBAQICBg4CfwFBwI4FC38AQcAJCwdwCAZtZW1vcnkCAA5IYXNoX0dldEJ1ZmZlcgAACUhhc2hfSW5pdAAIC0hhc2hfVXBkYXRlAAkKSGFzaF9GaW5hbAAKDUhhc2hfR2V0U3RhdGUACw5IYXNoX0NhbGN1bGF0ZQAMClNUQVRFX1NJWkUDAQr6QQ0FAEGACgvkAwMPfgF/AX4CQCADRQ0AIAApAzAhBCAAKQM4IQUgACkDICEGIAApAyghByAAKQMQIQggACkDGCEJIAApAwAhCiAAKQMIIQsDQCAFIAFBMGopAwAiDHwgAkE4aikDACABQThqKQMAIg2FIgVCIIggBUL/////D4N+fCEFIAcgAUEgaikDACIOfCACQShqKQMAIAFBKGopAwAiD4UiB0IgiCAHQv////8Pg358IQcgCSABQRBqKQMAIhB8IAJBGGopAwAgAUEYaikDACIRhSIJQiCIIAlC/////w+DfnwhCSALIAEpAwAiEnwgAkEIaiITKQMAIAFBCGopAwAiFIUiC0IgiCALQv////8Pg358IQsgAkEwaikDACAMhSIMQiCIIAxC/////w+DfiAEfCANfCEEIAJBIGopAwAgDoUiDEIgiCAMQv////8Pg34gBnwgD3whBiACQRBqKQMAIBCFIgxCIIggDEL/////D4N+IAh8IBF8IQggAikDACAShSIMQiCIIAxC/////w+DfiAKfCAUfCEKIAFBwABqIQEgEyECIANBf2oiAw0ACyAAIAk3AxggACAKNwMAIAAgCzcDCCAAIAc3AyggACAINwMQIAAgBTcDOCAAIAY3AyAgACAENwMwCwveAgIBfwF+AkAgBCACIAEoAgAiB2siAkkNACAAIAMgBSAHQQN0aiACEAEgACAFIAZqIgcpAwAgACkDACIIQi+IhSAIhUKx893xCX43AwAgACAHKQMIIAApAwgiCEIviIUgCIVCsfPd8Ql+NwMIIAAgBykDECAAKQMQIghCL4iFIAiFQrHz3fEJfjcDECAAIAcpAxggACkDGCIIQi+IhSAIhUKx893xCX43AxggACAHKQMgIAApAyAiCEIviIUgCIVCsfPd8Ql+NwMgIAAgBykDKCAAKQMoIghCL4iFIAiFQrHz3fEJfjcDKCAAIAcpAzAgACkDMCIIQi+IhSAIhUKx893xCX43AzAgACAHKQM4IAApAzgiCEIviIUgCIVCsfPd8Ql+NwM4IAAgAyACQQZ0aiAFIAQgAmsiBxABIAEgBzYCAA8LIAAgAyAFIAdBA3RqIAQQASABIAcgBGo2AgALhQEBAX8gAiABhSADpyIEQRh0IARBgP4DcUEIdHIgBEEIdkGA/gNxIARBGHZycq1CIIYgA4V9QQA1AoCMAUIghiAAQfyLAWo1AgCEhSIDQjGJIANCGImFIAOFQqW+4/TRjIfZn39+IgNCI4ggAK18IAOFQqW+4/TRjIfZn39+IgNCHIggA4ULZwAgAiABc60gA3wiA0IhiEEALQCAjAFBEHQgAEEIdHIgAEEBdkGAjAFqLQAAQRh0ciAAQf+LAWotAAByrYUgA4VCz9bTvtLHq9lCfiIDQh2IIAOFQvnz3fGZ9pmrFn4iA0IgiCADhQuJAwEEfgJAIABBCUkNAEEAKQOAjAEgASkDICABKQMYhSACfIUiA0I4hiADQoD+A4NCKIaEIANCgID8B4NCGIYgA0KAgID4D4NCCIaEhCADQgiIQoCAgPgPgyADQhiIQoCA/AeDhCADQiiIQoD+A4MgA0I4iISEhCAArXwgAEH4iwFqKQMAIAEpAzAgASkDKIUgAn2FIgJ8IAJC/////w+DIgQgA0IgiCIFfiIGQv////8PgyACQiCIIgIgA0L/////D4MiA358IAQgA34iA0IgiHwiBEIghiADQv////8Pg4QgBkIgiCACIAV+fCAEQiCIfIV8IgNCJYggA4VC+fPd8ZnymasWfiIDQiCIIAOFDwsCQCAAQQRJDQAgACABQQhqKQMAIAFBEGopAwAgAhADDwsCQCAARQ0AIAAgASgCACABQQRqKAIAIAIQBA8LIAEpAzggASkDQIUgAoUiA0IhiCADhULP1tO+0ser2UJ+IgNCHYggA4VC+fPd8Zn2masWfiIDQiCIIAOFC94IAQZ+IACtQoeVr6+Ytt6bnn9+IQMCQCAAQSFJDQACQCAAQcEASQ0AAkAgAEHhAEkNACABKQNoIAJ9QQApA7iMAYUiBEL/////D4MiBSABKQNgIAJ8QQApA7CMAYUiBkIgiCIHfiIIQv////8PgyAEQiCIIgQgBkL/////D4MiBn58IAUgBn4iBUIgiHwiBkIghiAFQv////8Pg4QgCEIgiCAEIAd+fCAGQiCIfIUgA3wgASkDeCACfSAAQciLAWopAwCFIgNC/////w+DIgQgASkDcCACfCAAQcCLAWopAwCFIgVCIIgiBn4iB0L/////D4MgA0IgiCIDIAVC/////w+DIgV+fCAEIAV+IgRCIIh8IgVCIIYgBEL/////D4OEIAdCIIggAyAGfnwgBUIgiHyFfCEDCyABKQNIIAJ9QQApA6iMAYUiBEL/////D4MiBSABKQNAIAJ8QQApA6CMAYUiBkIgiCIHfiIIQv////8PgyAEQiCIIgQgBkL/////D4MiBn58IAUgBn4iBUIgiHwiBkIghiAFQv////8Pg4QgCEIgiCAEIAd+fCAGQiCIfIUgA3wgASkDWCACfSAAQdiLAWopAwCFIgNC/////w+DIgQgASkDUCACfCAAQdCLAWopAwCFIgVCIIgiBn4iB0L/////D4MgA0IgiCIDIAVC/////w+DIgV+fCAEIAV+IgRCIIh8IgVCIIYgBEL/////D4OEIAdCIIggAyAGfnwgBUIgiHyFfCEDCyABKQMoIAJ9QQApA5iMAYUiBEL/////D4MiBSABKQMgIAJ8QQApA5CMAYUiBkIgiCIHfiIIQv////8PgyAEQiCIIgQgBkL/////D4MiBn58IAUgBn4iBUIgiHwiBkIghiAFQv////8Pg4QgCEIgiCAEIAd+fCAGQiCIfIUgA3wgASkDOCACfSAAQeiLAWopAwCFIgNC/////w+DIgQgASkDMCACfCAAQeCLAWopAwCFIgVCIIgiBn4iB0L/////D4MgA0IgiCIDIAVC/////w+DIgV+fCAEIAV+IgRCIIh8IgVCIIYgBEL/////D4OEIAdCIIggAyAGfnwgBUIgiHyFfCEDCyABKQMIIAJ9QQApA4iMAYUiBEL/////D4MiBSABKQMAIAJ8QQApA4CMAYUiBkIgiCIHfiIIQv////8PgyAEQiCIIgQgBkL/////D4MiBn58IAUgBn4iBUIgiHwiBkIghiAFQv////8Pg4QgCEIgiCAEIAd+fCAGQiCIfIUgA3wgASkDGCACfSAAQfiLAWopAwCFIgNC/////w+DIgQgASkDECACfCAAQfCLAWopAwCFIgJCIIgiBX4iBkL/////D4MgA0IgiCIDIAJC/////w+DIgJ+fCAEIAJ+IgJCIIh8IgRCIIYgAkL/////D4OEIAZCIIggAyAFfnwgBEIgiHyFfCICQiWIIAKFQvnz3fGZ8pmrFn4iAkIgiCAChQv8CgQBfwV+An8BfkEAIQMgASkDeCACfUEAKQP4jAGFIgRC/////w+DIgUgASkDcCACfEEAKQPwjAGFIgZCIIgiB34iCEL/////D4MgBEIgiCIEIAZC/////w+DIgZ+fCAFIAZ+IgVCIIh8IgZCIIYgBUL/////D4OEIAhCIIggBCAHfnwgBkIgiHyFIAEpA2ggAn1BACkD6IwBhSIEQv////8PgyIFIAEpA2AgAnxBACkD4IwBhSIGQiCIIgd+IghC/////w+DIARCIIgiBCAGQv////8PgyIGfnwgBSAGfiIFQiCIfCIGQiCGIAVC/////w+DhCAIQiCIIAQgB358IAZCIIh8hSABKQNYIAJ9QQApA9iMAYUiBEL/////D4MiBSABKQNQIAJ8QQApA9CMAYUiBkIgiCIHfiIIQv////8PgyAEQiCIIgQgBkL/////D4MiBn58IAUgBn4iBUIgiHwiBkIghiAFQv////8Pg4QgCEIgiCAEIAd+fCAGQiCIfIUgASkDSCACfUEAKQPIjAGFIgRC/////w+DIgUgASkDQCACfEEAKQPAjAGFIgZCIIgiB34iCEL/////D4MgBEIgiCIEIAZC/////w+DIgZ+fCAFIAZ+IgVCIIh8IgZCIIYgBUL/////D4OEIAhCIIggBCAHfnwgBkIgiHyFIAEpAzggAn1BACkDuIwBhSIEQv////8PgyIFIAEpAzAgAnxBACkDsIwBhSIGQiCIIgd+IghC/////w+DIARCIIgiBCAGQv////8PgyIGfnwgBSAGfiIFQiCIfCIGQiCGIAVC/////w+DhCAIQiCIIAQgB358IAZCIIh8hSABKQMoIAJ9QQApA6iMAYUiBEL/////D4MiBSABKQMgIAJ8QQApA6CMAYUiBkIgiCIHfiIIQv////8PgyAEQiCIIgQgBkL/////D4MiBn58IAUgBn4iBUIgiHwiBkIghiAFQv////8Pg4QgCEIgiCAEIAd+fCAGQiCIfIUgASkDGCACfUEAKQOYjAGFIgRC/////w+DIgUgASkDECACfEEAKQOQjAGFIgZCIIgiB34iCEL/////D4MgBEIgiCIEIAZC/////w+DIgZ+fCAFIAZ+IgVCIIh8IgZCIIYgBUL/////D4OEIAhCIIggBCAHfnwgBkIgiHyFIAEpAwggAn1BACkDiIwBhSIEQv////8PgyIFIAEpAwAgAnxBACkDgIwBhSIGQiCIIgd+IghC/////w+DIARCIIgiBCAGQv////8PgyIGfnwgBSAGfiIFQiCIfCIGQiCGIAVC/////w+DhCAIQiCIIAQgB358IAZCIIh8hSAArUKHla+vmLbem55/fnx8fHx8fHx8IgRCJYggBIVC+fPd8ZnymasWfiIEQiCIIASFIQQCQCAAQZABSA0AIABBBHZBeGohCQNAIAEgA2oiCkELaikDACACfSADQYiNAWopAwCFIgVC/////w+DIgYgCkEDaikDACACfCADQYCNAWopAwCFIgdCIIgiCH4iC0L/////D4MgBUIgiCIFIAdC/////w+DIgd+fCAGIAd+IgZCIIh8IgdCIIYgBkL/////D4OEIAtCIIggBSAIfnwgB0IgiHyFIAR8IQQgA0EQaiEDIAlBf2oiCQ0ACwsgASkDfyACfSAAQfiLAWopAwCFIgVC/////w+DIgYgASkDdyACfCAAQfCLAWopAwCFIgJCIIgiB34iCEL/////D4MgBUIgiCIFIAJC/////w+DIgJ+fCAGIAJ+IgJCIIh8IgZCIIYgAkL/////D4OEIAhCIIggBSAHfnwgBkIgiHyFIAR8IgJCJYggAoVC+fPd8ZnymasWfiICQiCIIAKFC98FAgF+AX8CQAJAQQApA4AKIgBQRQ0AQYAIIQFCACEADAELAkBBACkDoI4BIABSDQBBACEBDAELQQAhAUEAQq+v79e895Kg/gAgAH03A/iLAUEAIABCxZbr+djShYIofDcD8IsBQQBCj/Hjja2P9JhOIAB9NwPoiwFBACAAQqus+MXV79HQfHw3A+CLAUEAQtOt1LKShbW0nn8gAH03A9iLAUEAIABCl5r0jvWWvO3JAHw3A9CLAUEAQsWDgv2v/8SxayAAfTcDyIsBQQAgAELqi7OdyOb09UN8NwPAiwFBAELIv/rLnJveueQAIAB9NwO4iwFBACAAQoqjgd/Ume2sMXw3A7CLAUEAQvm57738+MKnHSAA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QQApA4CKATcDACACQQApA4iKATcDCCACQQApA5CKATcDECACQQApA5iKATcDGCACQQApA6CKATcDICACQQApA6iKATcDKCACQQApA7CKASIFNwMwIAJBACkDuIoBIgY3AzgCQAJAQQAoAoCOASIHQcAASQ0AIAJBACgCiI4BNgJAIAIgAkHAAGpBACgCmI4BQYCMASAHQX9qQQZ2IANBACgCnI4BIgAQAiADIABqIgBBeWopAwAhCCAAKQMJIQkgACkDGSEKIAApAykhCyAHQcCLAWopAwAhBSAAKQMBIQwgB0HIiwFqKQMAIQYgB0HQiwFqKQMAIQ0gACkDESEOIAdB2IsBaikDACEPIAdB4IsBaikDACEQIAApAyEhESAHQeiLAWopAwAhEiACKQMAIRMgAikDECEUIAIpAyAhFSACKQMwIRYgAikDCCEXIAIpAxghGCACKQMoIRkgAiACKQM4IAdB8IsBaikDACIafCAAKQMxIAdB+IsBaikDACIbhSIcQiCIIBxC/////w+Dfnw3AzggGSAQfCARIBKFIhFCIIggEUL/////D4N+fCERIBggDXwgDiAPhSIOQiCIIA5C/////w+DfnwhDiAXIAV8IAwgBoUiDEIgiCAMQv////8Pg358IQwgGyAWIAsgGoUiC0IgiCALQv////8Pg358fCELIBIgFSAKIBCFIhBCIIggEEL/////D4N+fHwhECAPIBQgCSANhSINQiCIIA1C/////w+Dfnx8IRIgBiATIAggBYUiBUIgiCAFQv////8Pg358fCEIDAELIAdBwI0BaiEdQcAAIAdrIR4gAkHAAGohAAJAAkACQCAHQThNDQAgHiEfDAELAkACQEE4IAdrQQN2QQFqQQdxIh8NACACQcAAaiEAIB4hHwwBCyACQcAAaiEAIB9BA3QiICEfA0AgACAdKQMANwMAIABBCGohACAdQQhqIR0gH0F4aiIfDQALQcAAIAcgIGprIR8LAkAgBw0AA0AgACAdKQMANwMAIABBCGogHUEIaikDADcDACAAQRBqIB1BEGopAwA3AwAgAEEYaiAdQRhqKQMANwMAIABBIGogHUEgaikDADcDACAAQShqIB1BKGopAwA3AwAgAEEwaiAdQTBqKQMANwMAIABBOGogHUE4aikDADcDACAAQcAAaiEAIB1BwABqIR0gH0FAaiIfQQdLDQALCyAfRQ0BCyAfQX9qISECQCAfQQdxIiBFDQAgH0F4cSEfA0AgACAdLQAAOgAAIABBAWohACAdQQFqIR0gIEF/aiIgDQALCyAhQQdJDQADQCAAIB0pAAA3AAAgAEEIaiEAIB1BCGohHSAfQXhqIh8NAAsLIAJBwABqIB5qIR1BgIwBIQACQAJAAkAgB0EISQ0AAkAgB0E4akEDdkEBakEHcSIfDQAMAgsgH0EDdCEgQYCMASEAA0AgHSAAKQMANwMAIB1BCGohHSAAQQhqIQAgH0F/aiIfDQALIAcgIGshBwsgB0UNAQJAAkAgB0EHcSIgDQAgByEfDAELIAdBeHEhHwNAIB0gAC0AADoAACAdQQFqIR0gAEEBaiEAICBBf2oiIA0ACwsgB0EISQ0BCwNAIB0gACkAADcAACAdQQhqIR0gAEEIaiEAIB9BeGoiHw0ACwsgA0EAKAKcjgFqIgBBeWopAwAhCiAAKQMJIRMgACkDGSEUIAApAykhCyAAKQMBIQwgACkDESEOIAApAyEhESACKQMAIRUgAikDECEWIAIpAyAhFyACKQMIIRggAikDQCENIAIpA0ghDyACKQMYIRkgAikDUCESIAIpA1ghCCACKQMoIRogAikDYCEQIAIpA2ghCSACIAYgAikDcCIbfCAAKQMxIAIpA3giBoUiHEIgiCAcQv////8Pg358NwM4IBogEHwgESAJhSIRQiCIIBFC/////w+DfnwhESAZIBJ8IA4gCIUiDkIgiCAOQv////8Pg358IQ4gGCANfCAMIA+FIgxCIIggDEL/////D4N+fCEMIAYgCyAbhSILQiCIIAtC/////w+DfiAFfHwhCyAJIBcgFCAQhSIFQiCIIAVC/////w+Dfnx8IRAgCCAWIBMgEoUiBUIgiCAFQv////8Pg358fCESIA8gFSAKIA2FIgVCIIggBUL/////D4N+fHwhCAsgAykDQyACKQM4hSIFQv////8PgyIGIAMpAzsgC4UiC0IgiCINfiIPQv////8PgyAFQiCIIgUgC0L/////D4MiC358IAYgC34iBkIgiHwiC0IghiAGQv////8Pg4QgD0IgiCAFIA1+fCALQiCIfIUgAykDMyARhSIFQv////8PgyIGIAMpAysgEIUiC0IgiCINfiIPQv////8PgyAFQiCIIgUgC0L/////D4MiC358IAYgC34iBkIgiHwiC0IghiAGQv////8Pg4QgD0IgiCAFIA1+fCALQiCIfIUgAykDIyAOhSIFQv////8PgyIGIAMpAxsgEoUiC0IgiCINfiIPQv////8PgyAFQiCIIgUgC0L/////D4MiC358IAYgC34iBkIgiHwiC0IghiAGQv////8Pg4QgD0IgiCAFIA1+fCALQiCIfIUgAykDEyAMhSIFQv////8PgyIGIAMpAwsgCIUiC0IgiCINfiIPQv////8PgyAFQiCIIgUgC0L/////D4MiC358IAYgC34iBkIgiHwiC0IghiAGQv////8Pg4QgD0IgiCAFIA1+fCALQiCIfIUgBEKHla+vmLbem55/fnx8fHwiBEIliCAEhUL5893xmfKZqxZ+IgRCIIggBIUhBAwBCyAEpyEAAkBBACkDoI4BIgRQDQACQCAAQRBLDQAgAEGACCAEEAUhBAwCCwJAIABBgAFLDQAgAEGACCAEEAYhBAwCCyAAQYAIIAQQByEEDAELAkAgAEEQSw0AIAAgA0IAEAUhBAwBCwJAIABBgAFLDQAgACADQgAQBiEEDAELIAAgA0IAEAchBAtBACAEQjiGIARCgP4Dg0IohoQgBEKAgPwHg0IYhiAEQoCAgPgPg0IIhoSEIARCCIhCgICA+A+DIARCGIhCgID8B4OEIARCKIhCgP4DgyAEQjiIhISENwOACiABJAALBgBBgIoBCwIACwvMAQEAQYAIC8QBuP5sOSOkS758AYEs9yGtHN7UbemDkJfbckCkpLezZx/LeeZOzMDleIJa0H3M/3IhuAhGdPdDJI7gNZDmgTomTDwoUruRwwDLiNBlixtTLqNxZEiXog35TjgZ70ap3qzYqPp2P+OcND/53LvHxwtPHYpR4EvNtFkxyJ9+ydl4c2TqxayDNNPrw8WBoP/6E2PrFw3dUbfw2knTFlUmKdRonisWvlh9R6H8j/i40XrQMc5FyzqPlRYEKK/X+8q7S0B+QAIAAA==";
|
|
17399
|
+
var hash$6 = "5a2fbdbb";
|
|
17400
|
+
var wasmJson$6 = {
|
|
17401
|
+
name: name$6,
|
|
17402
|
+
data: data$6,
|
|
17403
|
+
hash: hash$6
|
|
17404
|
+
};
|
|
16005
17405
|
|
|
16006
|
-
|
|
17406
|
+
const mutex$4 = new Mutex();
|
|
17407
|
+
let wasmCache$4 = null;
|
|
17408
|
+
const seedBuffer$1 = new Uint8Array(8);
|
|
17409
|
+
function validateSeed$1(seed) {
|
|
17410
|
+
if (!Number.isInteger(seed) || seed < 0 || seed > 0xffffffff) {
|
|
17411
|
+
return new Error("Seed must be given as two valid 32-bit long unsigned integers (lo + high).");
|
|
17412
|
+
}
|
|
17413
|
+
return null;
|
|
17414
|
+
}
|
|
17415
|
+
function writeSeed$1(arr, low, high) {
|
|
17416
|
+
// write in little-endian format
|
|
17417
|
+
const buffer = new DataView(arr);
|
|
17418
|
+
buffer.setUint32(0, low, true);
|
|
17419
|
+
buffer.setUint32(4, high, true);
|
|
17420
|
+
}
|
|
17421
|
+
/**
|
|
17422
|
+
* Calculates xxHash3 hash
|
|
17423
|
+
* @param data Input data (string, Buffer or TypedArray)
|
|
17424
|
+
* @param seedLow Lower 32 bits of the number used to
|
|
17425
|
+
* initialize the internal state of the algorithm (defaults to 0)
|
|
17426
|
+
* @param seedHigh Higher 32 bits of the number used to
|
|
17427
|
+
* initialize the internal state of the algorithm (defaults to 0)
|
|
17428
|
+
* @returns Computed hash as a hexadecimal string
|
|
17429
|
+
*/
|
|
17430
|
+
function xxhash3(data, seedLow = 0, seedHigh = 0) {
|
|
17431
|
+
if (validateSeed$1(seedLow)) {
|
|
17432
|
+
return Promise.reject(validateSeed$1(seedLow));
|
|
17433
|
+
}
|
|
17434
|
+
if (validateSeed$1(seedHigh)) {
|
|
17435
|
+
return Promise.reject(validateSeed$1(seedHigh));
|
|
17436
|
+
}
|
|
17437
|
+
if (wasmCache$4 === null) {
|
|
17438
|
+
return lockedCreate(mutex$4, wasmJson$6, 8).then((wasm) => {
|
|
17439
|
+
wasmCache$4 = wasm;
|
|
17440
|
+
writeSeed$1(seedBuffer$1.buffer, seedLow, seedHigh);
|
|
17441
|
+
wasmCache$4.writeMemory(seedBuffer$1);
|
|
17442
|
+
return wasmCache$4.calculate(data);
|
|
17443
|
+
});
|
|
17444
|
+
}
|
|
17445
|
+
try {
|
|
17446
|
+
writeSeed$1(seedBuffer$1.buffer, seedLow, seedHigh);
|
|
17447
|
+
wasmCache$4.writeMemory(seedBuffer$1);
|
|
17448
|
+
const hash = wasmCache$4.calculate(data);
|
|
17449
|
+
return Promise.resolve(hash);
|
|
17450
|
+
}
|
|
17451
|
+
catch (err) {
|
|
17452
|
+
return Promise.reject(err);
|
|
17453
|
+
}
|
|
17454
|
+
}
|
|
17455
|
+
/**
|
|
17456
|
+
* Creates a new xxHash3 hash instance
|
|
17457
|
+
* @param seedLow Lower 32 bits of the number used to
|
|
17458
|
+
* initialize the internal state of the algorithm (defaults to 0)
|
|
17459
|
+
* @param seedHigh Higher 32 bits of the number used to
|
|
17460
|
+
* initialize the internal state of the algorithm (defaults to 0)
|
|
17461
|
+
*/
|
|
17462
|
+
function createXXHash3(seedLow = 0, seedHigh = 0) {
|
|
17463
|
+
if (validateSeed$1(seedLow)) {
|
|
17464
|
+
return Promise.reject(validateSeed$1(seedLow));
|
|
17465
|
+
}
|
|
17466
|
+
if (validateSeed$1(seedHigh)) {
|
|
17467
|
+
return Promise.reject(validateSeed$1(seedHigh));
|
|
17468
|
+
}
|
|
17469
|
+
return WASMInterface(wasmJson$6, 8).then((wasm) => {
|
|
17470
|
+
const instanceBuffer = new Uint8Array(8);
|
|
17471
|
+
writeSeed$1(instanceBuffer.buffer, seedLow, seedHigh);
|
|
17472
|
+
wasm.writeMemory(instanceBuffer);
|
|
17473
|
+
wasm.init();
|
|
17474
|
+
const obj = {
|
|
17475
|
+
init: () => {
|
|
17476
|
+
wasm.writeMemory(instanceBuffer);
|
|
17477
|
+
wasm.init();
|
|
17478
|
+
return obj;
|
|
17479
|
+
},
|
|
17480
|
+
update: (data) => {
|
|
17481
|
+
wasm.update(data);
|
|
17482
|
+
return obj;
|
|
17483
|
+
},
|
|
17484
|
+
// biome-ignore lint/suspicious/noExplicitAny: Conflict with IHasher type
|
|
17485
|
+
digest: (outputType) => wasm.digest(outputType),
|
|
17486
|
+
save: () => wasm.save(),
|
|
17487
|
+
load: (data) => {
|
|
17488
|
+
wasm.load(data);
|
|
17489
|
+
return obj;
|
|
17490
|
+
},
|
|
17491
|
+
blockSize: 512,
|
|
17492
|
+
digestSize: 8,
|
|
17493
|
+
};
|
|
17494
|
+
return obj;
|
|
17495
|
+
});
|
|
17496
|
+
}
|
|
16007
17497
|
|
|
16008
|
-
|
|
16009
|
-
b2wasm.ready(function () {
|
|
16010
|
-
|
|
16011
|
-
|
|
16012
|
-
|
|
17498
|
+
var name$5 = "xxhash128";
|
|
17499
|
+
var data$5 = "AGFzbQEAAAABKwdgAAF/YAR/f39/AGAHf39/f39/fwBgA39/fgF+YAR/f39+AGAAAGABfwADDQwAAQIDBAQEBQYFAAUFBAEBAgIGDgJ/AUHAjgULfwBBwAkLB3AIBm1lbW9yeQIADkhhc2hfR2V0QnVmZmVyAAAJSGFzaF9Jbml0AAcLSGFzaF9VcGRhdGUACApIYXNoX0ZpbmFsAAkNSGFzaF9HZXRTdGF0ZQAKDkhhc2hfQ2FsY3VsYXRlAAsKU1RBVEVfU0laRQMBCqBNDAUAQYAKC+QDAw9+AX8BfgJAIANFDQAgACkDMCEEIAApAzghBSAAKQMgIQYgACkDKCEHIAApAxAhCCAAKQMYIQkgACkDACEKIAApAwghCwNAIAUgAUEwaikDACIMfCACQThqKQMAIAFBOGopAwAiDYUiBUIgiCAFQv////8Pg358IQUgByABQSBqKQMAIg58IAJBKGopAwAgAUEoaikDACIPhSIHQiCIIAdC/////w+DfnwhByAJIAFBEGopAwAiEHwgAkEYaikDACABQRhqKQMAIhGFIglCIIggCUL/////D4N+fCEJIAsgASkDACISfCACQQhqIhMpAwAgAUEIaikDACIUhSILQiCIIAtC/////w+DfnwhCyACQTBqKQMAIAyFIgxCIIggDEL/////D4N+IAR8IA18IQQgAkEgaikDACAOhSIMQiCIIAxC/////w+DfiAGfCAPfCEGIAJBEGopAwAgEIUiDEIgiCAMQv////8Pg34gCHwgEXwhCCACKQMAIBKFIgxCIIggDEL/////D4N+IAp8IBR8IQogAUHAAGohASATIQIgA0F/aiIDDQALIAAgCTcDGCAAIAo3AwAgACALNwMIIAAgBzcDKCAAIAg3AxAgACAFNwM4IAAgBjcDICAAIAQ3AzALC94CAgF/AX4CQCAEIAIgASgCACIHayICSQ0AIAAgAyAFIAdBA3RqIAIQASAAIAUgBmoiBykDACAAKQMAIghCL4iFIAiFQrHz3fEJfjcDACAAIAcpAwggACkDCCIIQi+IhSAIhUKx893xCX43AwggACAHKQMQIAApAxAiCEIviIUgCIVCsfPd8Ql+NwMQIAAgBykDGCAAKQMYIghCL4iFIAiFQrHz3fEJfjcDGCAAIAcpAyAgACkDICIIQi+IhSAIhUKx893xCX43AyAgACAHKQMoIAApAygiCEIviIUgCIVCsfPd8Ql+NwMoIAAgBykDMCAAKQMwIghCL4iFIAiFQrHz3fEJfjcDMCAAIAcpAzggACkDOCIIQi+IhSAIhUKx893xCX43AzggACADIAJBBnRqIAUgBCACayIHEAEgASAHNgIADwsgACADIAUgB0EDdGogBBABIAEgByAEajYCAAvtAwEFfiABKQM4IAApAziFIgNC/////w+DIgQgASkDMCAAKQMwhSIFQiCIIgZ+IgdC/////w+DIANCIIgiAyAFQv////8PgyIFfnwgBCAFfiIEQiCIfCIFQiCGIARC/////w+DhCAHQiCIIAMgBn58IAVCIIh8hSABKQMoIAApAyiFIgNC/////w+DIgQgASkDICAAKQMghSIFQiCIIgZ+IgdC/////w+DIANCIIgiAyAFQv////8PgyIFfnwgBCAFfiIEQiCIfCIFQiCGIARC/////w+DhCAHQiCIIAMgBn58IAVCIIh8hSABKQMYIAApAxiFIgNC/////w+DIgQgASkDECAAKQMQhSIFQiCIIgZ+IgdC/////w+DIANCIIgiAyAFQv////8PgyIFfnwgBCAFfiIEQiCIfCIFQiCGIARC/////w+DhCAHQiCIIAMgBn58IAVCIIh8hSABKQMIIAApAwiFIgNC/////w+DIgQgASkDACAAKQMAhSIFQiCIIgZ+IgdC/////w+DIANCIIgiAyAFQv////8PgyIFfnwgBCAFfiIEQiCIfCIFQiCGIARC/////w+DhCAHQiCIIAMgBn58IAVCIIh8hSACfHx8fCICQiWIIAKFQvnz3fGZ8pmrFn4iAkIgiCAChQu6CAIFfgN/AkAgAUEJSQ0AIAAgAUH4iwFqKQMAIgQgAikDOCACKQMwhSADfIUiBUL/////D4NC95Svrwh+IAVCgICAgHCDfEEAKQOAjAEgAikDKCACKQMghSADfYUgBIUiA0IgiCIEQrHz3fEJfnwgBEKHla+vCH4iBEIgiHwgBEL/////D4MgA0L/////D4MiA0Kx893xCX58IANCh5Wvrwh+IgRCIIh8IgVCIIh8IgNCOIYgA0KA/gODQiiGhCADQoCA/AeDQhiGIANCgICA+A+DQgiGhIQgA0IIiEKAgID4D4MgA0IYiEKAgPwHg4QgA0IoiEKA/gODIANCOIiEhIQgBEL/////D4MgAUF/aq1CNoaEIAVCIIZ8hSIEQiCIIgVCz9bTvgJ+IgZC/////w+DIARC/////w+DIgRCvdzKlQx+fCAEQs/W074CfiIEQiCIfCIHQiCGIghCJYggCCAEQv////8Pg4SFQvnz3fGZ8pmrFn4iBEIgiCAEhTcDACAAIAVCvdzKlQx+IANCz9bTvtLHq9lCfnwgBkIgiHwgB0IgiHwiA0IliCADhUL5893xmfKZqxZ+IgNCIIggA4U3AwgPCwJAIAFBBEkNACAAIAIpAxggAikDEIUgA6ciAkEYdCACQYD+A3FBCHRyIAJBCHZBgP4DcSACQRh2cnKtQiCGIAOFfCABQfyLAWo1AgBCIIZBADUCgIwBhIUiA0IgiCIEIAFBAnRBh5Wvr3hqrSIFfiIGQiCIIARCsfPd8Ql+fCAGQv////8PgyADQv////8PgyIDQrHz3fEJfnwgAyAFfiIDQiCIfCIEQiCIfCAEQiCGIANC/////w+DhCIEQgGGfCIDQiWIIAOFQvnz3fGZ8pmrFn4iBUIgiCAFhTcDCCAAIANCA4ggBIUiA0IjiCADhUKlvuP00YyH2Z9/fiIDQhyIIAOFNwMADwsCQCABRQ0AIAAgAigCBCACKAIAc60gA3wiBEIhiEEALQCAjAFBEHQgAUEIdHIiCSABQQF2QYCMAWotAABBGHRyIgogAUH/iwFqLQAAIgFyIguthSAEhULP1tO+0ser2UJ+IgRCHYggBIVC+fPd8Zn2masWfiIEQiCIIASFNwMAIAAgAigCDCACKAIIc60gA30iA0IhiCABQRh0IAtBgP4DcUEIdHIgCUEIdkGA/gNxIApBGHZyckENd62FIAOFQs/W077Sx6vZQn4iA0IdiCADhUL5893xmfaZqxZ+IgNCIIggA4U3AwgPCyAAIAIpA1AgAikDWIUgA4UiBEIhiCAEhULP1tO+0ser2UJ+IgRCHYggBIVC+fPd8Zn2masWfiIEQiCIIASFNwMIIAAgAikDQCACKQNIhSADhSIDQiGIIAOFQs/W077Sx6vZQn4iA0IdiCADhUL5893xmfaZqxZ+IgNCIIggA4U3AwALwwoBCn4gAa0iBEKHla+vmLbem55/fiEFAkACQCABQSFPDQBCACEGDAELQgAhBwJAIAFBwQBJDQBCACEHAkAgAUHhAEkNACACQfgAaikDACADfSABQciLAWopAwAiCIUiB0L/////D4MiCSACKQNwIAN8IAFBwIsBaikDACIKhSILQiCIIgx+Ig1CIIggB0IgiCIHIAx+fCANQv////8PgyAHIAtC/////w+DIgt+fCAJIAt+IgdCIIh8IglCIIh8QQApA7iMASILQQApA7CMASIMfIUgCUIghiAHQv////8Pg4SFIQcgAkHoAGopAwAgA30gC4UiCUL/////D4MiCyACKQNgIAN8IAyFIgxCIIgiDX4iBkL/////D4MgCUIgiCIJIAxC/////w+DIgx+fCALIAx+IgtCIIh8IgxCIIYgC0L/////D4OEIAZCIIggCSANfnwgDEIgiHyFIAV8IAggCnyFIQULIAJB2ABqKQMAIAN9IAFB2IsBaikDACIIhSIJQv////8PgyIKIAIpA1AgA3wgAUHQiwFqKQMAIguFIgxCIIgiDX4iBkL/////D4MgCUIgiCIJIAxC/////w+DIgx+fCAKIAx+IgpCIIh8IgxCIIYgCkL/////D4OEIAZCIIggCSANfnwgDEIgiHyFIAd8QQApA6iMASIJQQApA6CMASIKfIUhByACQcgAaikDACADfSAJhSIJQv////8PgyIMIAIpA0AgA3wgCoUiCkIgiCINfiIGQv////8PgyAJQiCIIgkgCkL/////D4MiCn58IAwgCn4iCkIgiHwiDEIghiAKQv////8Pg4QgBkIgiCAJIA1+fCAMQiCIfIUgBXwgCCALfIUhBQsgAkE4aikDACADfSABQeiLAWopAwAiCIUiCUL/////D4MiCiACKQMwIAN8IAFB4IsBaikDACILhSIMQiCIIg1+IgZC/////w+DIAlCIIgiCSAMQv////8PgyIMfnwgCiAMfiIKQiCIfCIMQiCGIApC/////w+DhCAGQiCIIAkgDX58IAxCIIh8hSAHfEEAKQOYjAEiB0EAKQOQjAEiCXyFIQYgAkEoaikDACADfSAHhSIHQv////8PgyIKIAIpAyAgA3wgCYUiCUIgiCIMfiINQv////8PgyAHQiCIIgcgCUL/////D4MiCX58IAogCX4iCUIgiHwiCkIghiAJQv////8Pg4QgDUIgiCAHIAx+fCAKQiCIfIUgBXwgCCALfIUhBQsgACACQRhqKQMAIAN9IAFB+IsBaikDACIHhSIIQv////8PgyIJIAIpAxAgA3wgAUHwiwFqKQMAIgqFIgtCIIgiDH4iDUL/////D4MgCEIgiCIIIAtC/////w+DIgt+fCAJIAt+IglCIIh8IgtCIIYgCUL/////D4OEIA1CIIggCCAMfnwgC0IgiHyFIAZ8QQApA4iMASIIQQApA4CMASIJfIUiCyACQQhqKQMAIAN9IAiFIghC/////w+DIgwgAikDACADfCAJhSIJQiCIIg1+IgZC/////w+DIAhCIIgiCCAJQv////8PgyIJfnwgDCAJfiIJQiCIfCIMQiCGIAlC/////w+DhCAGQiCIIAggDX58IAxCIIh8hSAFfCAHIAp8hSIFfCIHQiWIIAeFQvnz3fGZ8pmrFn4iB0IgiCAHhTcDACAAQgAgBUKHla+vmLbem55/fiAEIAN9Qs/W077Sx6vZQn58IAtC49zKlfzO8vWFf358IgNCJYggA4VC+fPd8ZnymasWfiIDQiCIIAOFfTcDCAuhDwMBfxR+An9BACEEIAJB+ABqKQMAIAN9QQApA/iMASIFhSIGQv////8PgyIHIAIpA3AgA3xBACkD8IwBIgiFIglCIIgiCn4iC0L/////D4MgBkIgiCIGIAlC/////w+DIgl+fCAHIAl+IgdCIIh8IglCIIYgB0L/////D4OEIAtCIIggBiAKfnwgCUIgiHyFIAJB2ABqKQMAIAN9QQApA9iMASIHhSIGQv////8PgyIJIAIpA1AgA3xBACkD0IwBIgqFIgtCIIgiDH4iDUL/////D4MgBkIgiCIGIAtC/////w+DIgt+fCAJIAt+IglCIIh8IgtCIIYgCUL/////D4OEIA1CIIggBiAMfnwgC0IgiHyFIAJBOGopAwAgA31BACkDuIwBIgmFIgZC/////w+DIgsgAikDMCADfEEAKQOwjAEiDIUiDUIgiCIOfiIPQv////8PgyAGQiCIIgYgDUL/////D4MiDX58IAsgDX4iC0IgiHwiDUIghiALQv////8Pg4QgD0IgiCAGIA5+fCANQiCIfIUgAkEYaikDACADfUEAKQOYjAEiC4UiBkL/////D4MiDSACKQMQIAN8QQApA5CMASIOhSIPQiCIIhB+IhFC/////w+DIAZCIIgiBiAPQv////8PgyIPfnwgDSAPfiINQiCIfCIPQiCGIA1C/////w+DhCARQiCIIAYgEH58IA9CIIh8hUEAKQOIjAEiDUEAKQOAjAEiD3yFfEEAKQOojAEiEEEAKQOgjAEiEXyFfEEAKQPIjAEiEkEAKQPAjAEiE3yFfEEAKQPojAEiFEEAKQPgjAEiFXyFIgZCJYggBoVC+fPd8ZnymasWfiIGQiCIIAaFIQYgAkHoAGopAwAgA30gFIUiFEL/////D4MiFiACKQNgIAN8IBWFIhVCIIgiF34iGEL/////D4MgFEIgiCIUIBVC/////w+DIhV+fCAWIBV+IhVCIIh8IhZCIIYgFUL/////D4OEIBhCIIggFCAXfnwgFkIgiHyFIAJByABqKQMAIAN9IBKFIhJC/////w+DIhQgAikDQCADfCAThSITQiCIIhV+IhZC/////w+DIBJCIIgiEiATQv////8PgyITfnwgFCATfiITQiCIfCIUQiCGIBNC/////w+DhCAWQiCIIBIgFX58IBRCIIh8hSACQShqKQMAIAN9IBCFIhBC/////w+DIhIgAikDICADfCARhSIRQiCIIhN+IhRC/////w+DIBBCIIgiECARQv////8PgyIRfnwgEiARfiIRQiCIfCISQiCGIBFC/////w+DhCAUQiCIIBAgE358IBJCIIh8hSACQQhqKQMAIAN9IA2FIg1C/////w+DIhAgAikDACADfCAPhSIPQiCIIhF+IhJC/////w+DIA1CIIgiDSAPQv////8PgyIPfnwgECAPfiIPQiCIfCIQQiCGIA9C/////w+DhCASQiCIIA0gEX58IBBCIIh8hSABrSIPQoeVr6+Ytt6bnn9+fCALIA58hXwgCSAMfIV8IAcgCnyFfCAFIAh8hSIFQiWIIAWFQvnz3fGZ8pmrFn4iBUIgiCAFhSEFAkAgAUGgAUgNACABQQV2QXxqIRkDQCACIARqIhpBG2opAwAgA30gBEGYjQFqKQMAIgeFIghC/////w+DIgkgGkETaikDACADfCAEQZCNAWopAwAiCoUiC0IgiCIMfiINQv////8PgyAIQiCIIgggC0L/////D4MiC358IAkgC34iCUIgiHwiC0IghiAJQv////8Pg4QgDUIgiCAIIAx+fCALQiCIfIUgBnwgBEGIjQFqKQMAIgggBEGAjQFqKQMAIgl8hSEGIBpBC2opAwAgA30gCIUiCEL/////D4MiCyAaQQNqKQMAIAN8IAmFIglCIIgiDH4iDUL/////D4MgCEIgiCIIIAlC/////w+DIgl+fCALIAl+IglCIIh8IgtCIIYgCUL/////D4OEIA1CIIggCCAMfnwgC0IgiHyFIAV8IAcgCnyFIQUgBEEgaiEEIBlBf2oiGQ0ACwsgACACQf8AaikDACADfCABQeiLAWopAwAiB4UiCEL/////D4MiCSACKQN3IAN9IAFB4IsBaikDACIKhSILQiCIIgx+Ig1C/////w+DIAhCIIgiCCALQv////8PgyILfnwgCSALfiIJQiCIfCILQiCGIAlC/////w+DhCANQiCIIAggDH58IAtCIIh8hSAGfCABQfiLAWopAwAiBiABQfCLAWopAwAiCHyFIgkgAkHvAGopAwAgA3wgBoUiBkL/////D4MiCyACKQNnIAN9IAiFIghCIIgiDH4iDUL/////D4MgBkIgiCIGIAhC/////w+DIgh+fCALIAh+IghCIIh8IgtCIIYgCEL/////D4OEIA1CIIggBiAMfnwgC0IgiHyFIAV8IAcgCnyFIgZ8IgVCJYggBYVC+fPd8ZnymasWfiIFQiCIIAWFNwMAIABCACAGQoeVr6+Ytt6bnn9+IA8gA31Cz9bTvtLHq9lCfnwgCULj3MqV/M7y9YV/fnwiA0IliCADhUL5893xmfKZqxZ+IgNCIIggA4V9NwMIC98FAgF+AX8CQAJAQQApA4AKIgBQRQ0AQYAIIQFCACEADAELAkBBACkDoI4BIABSDQBBACEBDAELQQAhAUEAQq+v79e895Kg/gAgAH03A/iLAUEAIABCxZbr+djShYIofDcD8IsBQQBCj/Hjja2P9JhOIAB9NwPoiwFBACAAQqus+MXV79HQfHw3A+CLAUEAQtOt1LKShbW0nn8gAH03A9iLAUEAIABCl5r0jvWWvO3JAHw3A9CLAUEAQsWDgv2v/8SxayAAfTcDyIsBQQAgAELqi7OdyOb09UN8NwPAiwFBAELIv/rLnJveueQAIAB9NwO4iwFBACAAQoqjgd/Ume2sMXw3A7CLAUEAQvm57738+MKnHSAAfTcDqIsBQQAgAEKo9dv7s5ynmj98NwOgiwFBAEK4sry3lNW31lggAH03A5iLAUEAIABC8cihuqm0w/zOAHw3A5CLAUEAQoihl9u445SXo38gAH03A4iL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AkHAAGogDGohC0GAjAEhAAJAAkACQCAHQQhJDQACQCAHQThqQQN2QQFqQQdxIg0NAAwCCyANQQN0IQ5BgIwBIQADQCALIAApAwA3AwAgC0EIaiELIABBCGohACANQX9qIg0NAAsgByAOayEHCyAHRQ0BAkACQCAHQQdxIg4NACAHIQ0MAQsgB0F4cSENA0AgCyAALQAAOgAAIAtBAWohCyAAQQFqIQAgDkF/aiIODQALCyAHQQhJDQELA0AgCyAAKQAANwAAIAtBCGohCyAAQQhqIQAgDUF4aiINDQALCyACIAIpAwggAikDQCIIfCADQQAoApyOAWoiACkDASACKQNIIgmFIgpCIIggCkL/////D4N+fDcDCCACIAIpAxggAikDUCIKfCAAKQMRIAIpA1giEIUiEUIgiCARQv////8Pg358NwMYIAIgECAKIAApAwmFIgpCIIggCkL/////D4N+IAIpAxB8fDcDECACIAkgCCAAQXlqKQMAhSIIQiCIIAhC/////w+DfiACKQMAfHw3AwAgACkDGSEIIAIpAyAhCSACIAIpAyggAikDYCIKfCAAKQMhIAIpA2giEIUiEUIgiCARQv////8Pg358NwMoIAIgECAJIAggCoUiCEIgiCAIQv////8Pg358fDcDICACIAYgAikDcCIIfCAAKQMxIAIpA3giBoUiCUIgiCAJQv////8Pg358NwM4IAIgBiAIIAApAymFIghCIIggCEL/////D4N+IAV8fDcDMAsgAiACIANBC2ogBEKHla+vmLbem55/fhADNwNAIAIgAiADQQAoApyOAWpBdWogBELP1tO+0ser2UJ+Qn+FEAM3A0gMAQsgBKchAAJAQQApA6COASIEUA0AAkAgAEEQSw0AIAJBwABqIABBgAggBBAEDAILAkAgAEGAAUsNACACQcAAaiAAQYAIIAQQBQwCCyACQcAAaiAAQYAIIAQQBgwBCwJAIABBEEsNACACQcAAaiAAIANCABAEDAELAkAgAEGAAUsNACACQcAAaiAAIANCABAFDAELIAJBwABqIAAgA0IAEAYLQQAgAikDcDcDuApBACACKQNgNwOoCkEAIAIpA1A3A5gKQQAgAkH4AGopAwA3A8AKQQAgAkHoAGopAwA3A7AKQQAgAkHYAGopAwA3A6AKQQAgAikDSCIEQjiGIARCgP4Dg0IohoQgBEKAgPwHg0IYhiAEQoCAgPgPg0IIhoSEIARCCIhCgICA+A+DIARCGIhCgID8B4OEIARCKIhCgP4DgyAEQjiIhISEIgQ3A4AKQQAgBDcDkApBACACKQNAIgRCOIYgBEKA/gODQiiGhCAEQoCA/AeDQhiGIARCgICA+A+DQgiGhIQgBEIIiEKAgID4D4MgBEIYiEKAgPwHg4QgBEIoiEKA/gODIARCOIiEhIQ3A4gKIAEkAAsGAEGAigELAgALC8wBAQBBgAgLxAG4/mw5I6RLvnwBgSz3Ia0c3tRt6YOQl9tyQKSkt7NnH8t55k7MwOV4glrQfcz/ciG4CEZ090MkjuA1kOaBOiZMPChSu5HDAMuI0GWLG1Muo3FkSJeiDflOOBnvRqnerNio+nY/45w0P/ncu8fHC08dilHgS820WTHIn37J2XhzZOrFrIM00+vDxYGg//oTY+sXDd1Rt/DaSdMWVSYp1GieKxa+WH1HofyP+LjRetAxzkXLOo+VFgQor9f7yrtLQH5AAgAA";
|
|
17500
|
+
var hash$5 = "b9ab74e2";
|
|
17501
|
+
var wasmJson$5 = {
|
|
17502
|
+
name: name$5,
|
|
17503
|
+
data: data$5,
|
|
17504
|
+
hash: hash$5
|
|
17505
|
+
};
|
|
16013
17506
|
|
|
16014
|
-
|
|
16015
|
-
|
|
16016
|
-
|
|
16017
|
-
|
|
16018
|
-
|
|
16019
|
-
|
|
16020
|
-
|
|
16021
|
-
|
|
17507
|
+
const mutex$3 = new Mutex();
|
|
17508
|
+
let wasmCache$3 = null;
|
|
17509
|
+
const seedBuffer = new Uint8Array(8);
|
|
17510
|
+
function validateSeed(seed) {
|
|
17511
|
+
if (!Number.isInteger(seed) || seed < 0 || seed > 0xffffffff) {
|
|
17512
|
+
return new Error("Seed must be given as two valid 32-bit long unsigned integers (lo + high).");
|
|
17513
|
+
}
|
|
17514
|
+
return null;
|
|
17515
|
+
}
|
|
17516
|
+
function writeSeed(arr, low, high) {
|
|
17517
|
+
// write in little-endian format
|
|
17518
|
+
const buffer = new DataView(arr);
|
|
17519
|
+
buffer.setUint32(0, low, true);
|
|
17520
|
+
buffer.setUint32(4, high, true);
|
|
17521
|
+
}
|
|
17522
|
+
/**
|
|
17523
|
+
* Calculates xxHash128 hash
|
|
17524
|
+
* @param data Input data (string, Buffer or TypedArray)
|
|
17525
|
+
* @param seedLow Lower 32 bits of the number used to
|
|
17526
|
+
* initialize the internal state of the algorithm (defaults to 0)
|
|
17527
|
+
* @param seedHigh Higher 32 bits of the number used to
|
|
17528
|
+
* initialize the internal state of the algorithm (defaults to 0)
|
|
17529
|
+
* @returns Computed hash as a hexadecimal string
|
|
17530
|
+
*/
|
|
17531
|
+
function xxhash128(data, seedLow = 0, seedHigh = 0) {
|
|
17532
|
+
if (validateSeed(seedLow)) {
|
|
17533
|
+
return Promise.reject(validateSeed(seedLow));
|
|
17534
|
+
}
|
|
17535
|
+
if (validateSeed(seedHigh)) {
|
|
17536
|
+
return Promise.reject(validateSeed(seedHigh));
|
|
17537
|
+
}
|
|
17538
|
+
if (wasmCache$3 === null) {
|
|
17539
|
+
return lockedCreate(mutex$3, wasmJson$5, 16).then((wasm) => {
|
|
17540
|
+
wasmCache$3 = wasm;
|
|
17541
|
+
writeSeed(seedBuffer.buffer, seedLow, seedHigh);
|
|
17542
|
+
wasmCache$3.writeMemory(seedBuffer);
|
|
17543
|
+
return wasmCache$3.calculate(data);
|
|
17544
|
+
});
|
|
17545
|
+
}
|
|
17546
|
+
try {
|
|
17547
|
+
writeSeed(seedBuffer.buffer, seedLow, seedHigh);
|
|
17548
|
+
wasmCache$3.writeMemory(seedBuffer);
|
|
17549
|
+
const hash = wasmCache$3.calculate(data);
|
|
17550
|
+
return Promise.resolve(hash);
|
|
17551
|
+
}
|
|
17552
|
+
catch (err) {
|
|
17553
|
+
return Promise.reject(err);
|
|
17554
|
+
}
|
|
17555
|
+
}
|
|
17556
|
+
/**
|
|
17557
|
+
* Creates a new xxHash128 hash instance
|
|
17558
|
+
* @param seedLow Lower 32 bits of the number used to
|
|
17559
|
+
* initialize the internal state of the algorithm (defaults to 0)
|
|
17560
|
+
* @param seedHigh Higher 32 bits of the number used to
|
|
17561
|
+
* initialize the internal state of the algorithm (defaults to 0)
|
|
17562
|
+
*/
|
|
17563
|
+
function createXXHash128(seedLow = 0, seedHigh = 0) {
|
|
17564
|
+
if (validateSeed(seedLow)) {
|
|
17565
|
+
return Promise.reject(validateSeed(seedLow));
|
|
17566
|
+
}
|
|
17567
|
+
if (validateSeed(seedHigh)) {
|
|
17568
|
+
return Promise.reject(validateSeed(seedHigh));
|
|
17569
|
+
}
|
|
17570
|
+
return WASMInterface(wasmJson$5, 16).then((wasm) => {
|
|
17571
|
+
const instanceBuffer = new Uint8Array(8);
|
|
17572
|
+
writeSeed(instanceBuffer.buffer, seedLow, seedHigh);
|
|
17573
|
+
wasm.writeMemory(instanceBuffer);
|
|
17574
|
+
wasm.init();
|
|
17575
|
+
const obj = {
|
|
17576
|
+
init: () => {
|
|
17577
|
+
wasm.writeMemory(instanceBuffer);
|
|
17578
|
+
wasm.init();
|
|
17579
|
+
return obj;
|
|
17580
|
+
},
|
|
17581
|
+
update: (data) => {
|
|
17582
|
+
wasm.update(data);
|
|
17583
|
+
return obj;
|
|
17584
|
+
},
|
|
17585
|
+
// biome-ignore lint/suspicious/noExplicitAny: Conflict with IHasher type
|
|
17586
|
+
digest: (outputType) => wasm.digest(outputType),
|
|
17587
|
+
save: () => wasm.save(),
|
|
17588
|
+
load: (data) => {
|
|
17589
|
+
wasm.load(data);
|
|
17590
|
+
return obj;
|
|
17591
|
+
},
|
|
17592
|
+
blockSize: 512,
|
|
17593
|
+
digestSize: 16,
|
|
17594
|
+
};
|
|
17595
|
+
return obj;
|
|
17596
|
+
});
|
|
16022
17597
|
}
|
|
16023
|
-
ctx.b[ctx.c++] = input[i]
|
|
16024
|
-
}
|
|
16025
|
-
}
|
|
16026
17598
|
|
|
16027
|
-
|
|
16028
|
-
|
|
16029
|
-
|
|
16030
|
-
|
|
17599
|
+
var name$4 = "ripemd160";
|
|
17600
|
+
var data$4 = "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";
|
|
17601
|
+
var hash$4 = "6abbce74";
|
|
17602
|
+
var wasmJson$4 = {
|
|
17603
|
+
name: name$4,
|
|
17604
|
+
data: data$4,
|
|
17605
|
+
hash: hash$4
|
|
17606
|
+
};
|
|
16031
17607
|
|
|
16032
|
-
|
|
16033
|
-
|
|
16034
|
-
|
|
16035
|
-
|
|
17608
|
+
const mutex$2 = new Mutex();
|
|
17609
|
+
let wasmCache$2 = null;
|
|
17610
|
+
/**
|
|
17611
|
+
* Calculates RIPEMD-160 hash
|
|
17612
|
+
* @param data Input data (string, Buffer or TypedArray)
|
|
17613
|
+
* @returns Computed hash as a hexadecimal string
|
|
17614
|
+
*/
|
|
17615
|
+
function ripemd160(data) {
|
|
17616
|
+
if (wasmCache$2 === null) {
|
|
17617
|
+
return lockedCreate(mutex$2, wasmJson$4, 20).then((wasm) => {
|
|
17618
|
+
wasmCache$2 = wasm;
|
|
17619
|
+
return wasmCache$2.calculate(data);
|
|
17620
|
+
});
|
|
17621
|
+
}
|
|
17622
|
+
try {
|
|
17623
|
+
const hash = wasmCache$2.calculate(data);
|
|
17624
|
+
return Promise.resolve(hash);
|
|
17625
|
+
}
|
|
17626
|
+
catch (err) {
|
|
17627
|
+
return Promise.reject(err);
|
|
17628
|
+
}
|
|
17629
|
+
}
|
|
17630
|
+
/**
|
|
17631
|
+
* Creates a new RIPEMD-160 hash instance
|
|
17632
|
+
*/
|
|
17633
|
+
function createRIPEMD160() {
|
|
17634
|
+
return WASMInterface(wasmJson$4, 20).then((wasm) => {
|
|
17635
|
+
wasm.init();
|
|
17636
|
+
const obj = {
|
|
17637
|
+
init: () => {
|
|
17638
|
+
wasm.init();
|
|
17639
|
+
return obj;
|
|
17640
|
+
},
|
|
17641
|
+
update: (data) => {
|
|
17642
|
+
wasm.update(data);
|
|
17643
|
+
return obj;
|
|
17644
|
+
},
|
|
17645
|
+
// biome-ignore lint/suspicious/noExplicitAny: Conflict with IHasher type
|
|
17646
|
+
digest: (outputType) => wasm.digest(outputType),
|
|
17647
|
+
save: () => wasm.save(),
|
|
17648
|
+
load: (data) => {
|
|
17649
|
+
wasm.load(data);
|
|
17650
|
+
return obj;
|
|
17651
|
+
},
|
|
17652
|
+
blockSize: 64,
|
|
17653
|
+
digestSize: 20,
|
|
17654
|
+
};
|
|
17655
|
+
return obj;
|
|
17656
|
+
});
|
|
17657
|
+
}
|
|
16036
17658
|
|
|
16037
|
-
|
|
16038
|
-
|
|
16039
|
-
|
|
16040
|
-
|
|
16041
|
-
|
|
17659
|
+
function calculateKeyBuffer(hasher, key) {
|
|
17660
|
+
const { blockSize } = hasher;
|
|
17661
|
+
const buf = getUInt8Buffer(key);
|
|
17662
|
+
if (buf.length > blockSize) {
|
|
17663
|
+
hasher.update(buf);
|
|
17664
|
+
const uintArr = hasher.digest("binary");
|
|
17665
|
+
hasher.init();
|
|
17666
|
+
return uintArr;
|
|
17667
|
+
}
|
|
17668
|
+
return new Uint8Array(buf.buffer, buf.byteOffset, buf.length);
|
|
17669
|
+
}
|
|
17670
|
+
function calculateHmac(hasher, key) {
|
|
17671
|
+
hasher.init();
|
|
17672
|
+
const { blockSize } = hasher;
|
|
17673
|
+
const keyBuf = calculateKeyBuffer(hasher, key);
|
|
17674
|
+
const keyBuffer = new Uint8Array(blockSize);
|
|
17675
|
+
keyBuffer.set(keyBuf);
|
|
17676
|
+
const opad = new Uint8Array(blockSize);
|
|
17677
|
+
for (let i = 0; i < blockSize; i++) {
|
|
17678
|
+
const v = keyBuffer[i];
|
|
17679
|
+
opad[i] = v ^ 0x5c;
|
|
17680
|
+
keyBuffer[i] = v ^ 0x36;
|
|
17681
|
+
}
|
|
17682
|
+
hasher.update(keyBuffer);
|
|
17683
|
+
const obj = {
|
|
17684
|
+
init: () => {
|
|
17685
|
+
hasher.init();
|
|
17686
|
+
hasher.update(keyBuffer);
|
|
17687
|
+
return obj;
|
|
17688
|
+
},
|
|
17689
|
+
update: (data) => {
|
|
17690
|
+
hasher.update(data);
|
|
17691
|
+
return obj;
|
|
17692
|
+
},
|
|
17693
|
+
digest: ((outputType) => {
|
|
17694
|
+
const uintArr = hasher.digest("binary");
|
|
17695
|
+
hasher.init();
|
|
17696
|
+
hasher.update(opad);
|
|
17697
|
+
hasher.update(uintArr);
|
|
17698
|
+
return hasher.digest(outputType);
|
|
17699
|
+
// biome-ignore lint/suspicious/noExplicitAny: Conflict with IHasher type
|
|
17700
|
+
}),
|
|
17701
|
+
save: () => {
|
|
17702
|
+
throw new Error("save() not supported");
|
|
17703
|
+
},
|
|
17704
|
+
load: () => {
|
|
17705
|
+
throw new Error("load() not supported");
|
|
17706
|
+
},
|
|
17707
|
+
blockSize: hasher.blockSize,
|
|
17708
|
+
digestSize: hasher.digestSize,
|
|
17709
|
+
};
|
|
17710
|
+
return obj;
|
|
17711
|
+
}
|
|
17712
|
+
/**
|
|
17713
|
+
* Calculates HMAC hash
|
|
17714
|
+
* @param hash Hash algorithm to use. It has to be the return value of a function like createSHA1()
|
|
17715
|
+
* @param key Key (string, Buffer or TypedArray)
|
|
17716
|
+
*/
|
|
17717
|
+
function createHMAC(hash, key) {
|
|
17718
|
+
if (!hash || !hash.then) {
|
|
17719
|
+
throw new Error('Invalid hash function is provided! Usage: createHMAC(createMD5(), "key").');
|
|
17720
|
+
}
|
|
17721
|
+
return hash.then((hasher) => calculateHmac(hasher, key));
|
|
17722
|
+
}
|
|
17723
|
+
|
|
17724
|
+
function calculatePBKDF2(digest, salt, iterations, hashLength, outputType) {
|
|
17725
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
17726
|
+
const DK = new Uint8Array(hashLength);
|
|
17727
|
+
const block1 = new Uint8Array(salt.length + 4);
|
|
17728
|
+
const block1View = new DataView(block1.buffer);
|
|
17729
|
+
const saltBuffer = getUInt8Buffer(salt);
|
|
17730
|
+
const saltUIntBuffer = new Uint8Array(saltBuffer.buffer, saltBuffer.byteOffset, saltBuffer.length);
|
|
17731
|
+
block1.set(saltUIntBuffer);
|
|
17732
|
+
let destPos = 0;
|
|
17733
|
+
const hLen = digest.digestSize;
|
|
17734
|
+
const l = Math.ceil(hashLength / hLen);
|
|
17735
|
+
let T = null;
|
|
17736
|
+
let U = null;
|
|
17737
|
+
for (let i = 1; i <= l; i++) {
|
|
17738
|
+
block1View.setUint32(salt.length, i);
|
|
17739
|
+
digest.init();
|
|
17740
|
+
digest.update(block1);
|
|
17741
|
+
T = digest.digest("binary");
|
|
17742
|
+
U = T.slice();
|
|
17743
|
+
for (let j = 1; j < iterations; j++) {
|
|
17744
|
+
digest.init();
|
|
17745
|
+
digest.update(U);
|
|
17746
|
+
U = digest.digest("binary");
|
|
17747
|
+
for (let k = 0; k < hLen; k++) {
|
|
17748
|
+
T[k] ^= U[k];
|
|
17749
|
+
}
|
|
17750
|
+
}
|
|
17751
|
+
DK.set(T.subarray(0, hashLength - destPos), destPos);
|
|
17752
|
+
destPos += hLen;
|
|
17753
|
+
}
|
|
17754
|
+
if (outputType === "binary") {
|
|
17755
|
+
return DK;
|
|
17756
|
+
}
|
|
17757
|
+
const digestChars = new Uint8Array(hashLength * 2);
|
|
17758
|
+
return getDigestHex(digestChars, DK, hashLength);
|
|
17759
|
+
});
|
|
17760
|
+
}
|
|
17761
|
+
const validateOptions$2 = (options) => {
|
|
17762
|
+
if (!options || typeof options !== "object") {
|
|
17763
|
+
throw new Error("Invalid options parameter. It requires an object.");
|
|
17764
|
+
}
|
|
17765
|
+
if (!options.hashFunction || !options.hashFunction.then) {
|
|
17766
|
+
throw new Error('Invalid hash function is provided! Usage: pbkdf2("password", "salt", 1000, 32, createSHA1()).');
|
|
17767
|
+
}
|
|
17768
|
+
if (!Number.isInteger(options.iterations) || options.iterations < 1) {
|
|
17769
|
+
throw new Error("Iterations should be a positive number");
|
|
17770
|
+
}
|
|
17771
|
+
if (!Number.isInteger(options.hashLength) || options.hashLength < 1) {
|
|
17772
|
+
throw new Error("Hash length should be a positive number");
|
|
17773
|
+
}
|
|
17774
|
+
if (options.outputType === undefined) {
|
|
17775
|
+
options.outputType = "hex";
|
|
17776
|
+
}
|
|
17777
|
+
if (!["hex", "binary"].includes(options.outputType)) {
|
|
17778
|
+
throw new Error(`Insupported output type ${options.outputType}. Valid values: ['hex', 'binary']`);
|
|
17779
|
+
}
|
|
17780
|
+
};
|
|
17781
|
+
/**
|
|
17782
|
+
* Generates a new PBKDF2 hash for the supplied password
|
|
17783
|
+
*/
|
|
17784
|
+
function pbkdf2(options) {
|
|
17785
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
17786
|
+
validateOptions$2(options);
|
|
17787
|
+
const hmac = yield createHMAC(options.hashFunction, options.password);
|
|
17788
|
+
return calculatePBKDF2(hmac, options.salt, options.iterations, options.hashLength, options.outputType);
|
|
17789
|
+
});
|
|
17790
|
+
}
|
|
16042
17791
|
|
|
16043
|
-
|
|
16044
|
-
|
|
16045
|
-
|
|
16046
|
-
|
|
16047
|
-
|
|
17792
|
+
var name$3 = "scrypt";
|
|
17793
|
+
var data$3 = "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cyICajYCOCAAIAAoAjwgAiAKakESdyAGc2o2AjwLvxIDFX8Bfg5/AkAgAkUNACAAQQd0IgNBQGoiBEEAKAKACCIFIAMgAmwiBmogAyABbGoiByADaiIIaiEJIAAgAkEHdCIKIAFBB3RqIgtsIQwgACALQYABamwhDSAAQQV0IgtBASALQQFLGyILQWBxIQ4gC0EBcSEPIAdBeGohECAHQXBqIREgB0FoaiESIAdBYGohEyAHQVhqIRQgB0FQaiEVIAdBSGohFiAHQUBqIRcgAa1Cf3whGCAEIAdqIRkgByAAQQh0IhpqIRsgACAKQYABamwhHCALQQRJIR1BACEeQQAhHwNAQQAoAoAIIiAgAyAfbGohIQJAIABFDQBBACEiAkAgHQ0AICAgHmohI0EAIQtBACEiA0AgByALaiIEICMgC2oiJCgCADYCACAEQQRqICRBBGooAgA2AgAgBEEIaiAkQQhqKAIANgIAIARBDGogJEEMaigCADYCACALQRBqIQsgDiAiQQRqIiJHDQALCyAPRQ0AIAcgIkECdCILaiAhIAtqKAIANgIACwJAIAFFDQBBACElIBwhIyAGISYDQCAFISQgACEiAkACQCAADQAgGyAXKQMANwMAIBsgFikDADcDCCAbIBUpAwA3AxAgGyAUKQMANwMYIBsgEykDADcDICAbIBIpAwA3AyggGyARKQMANwMwIBsgECkDADcDOAwBCwNAICQgJmoiCyAkIAxqIgQpAwA3AwAgC0EIaiAEQQhqKQMANwMAIAtBEGogBEEQaikDADcDACALQRhqIARBGGopAwA3AwAgC0EgaiAEQSBqKQMANwMAIAtBKGogBEEoaikDADcDACALQTBqIARBMGopAwA3AwAgC0E4aiAEQThqKQMANwMAIAtBwABqIARBwABqKQMANwMAIAtByABqIARByABqKQMANwMAIAtB0ABqIARB0ABqKQMANwMAIAtB2ABqIARB2ABqKQMANwMAIAtB4ABqIARB4ABqKQMANwMAIAtB6ABqIARB6ABqKQMANwMAIAtB8ABqIARB8ABqKQMANwMAIAtB+ABqIARB+ABqKQMANwMAICRBgAFqISQgIkF/aiIiDQALIAcgCCAbIAAQAiAFISQgACEiA0AgJCAjaiILICQgDWoiBCkDADcDACALQQhqIARBCGopAwA3AwAgC0EQaiAEQRBqKQMANwMAIAtBGGogBEEYaikDADcDACALQSBqIARBIGopAwA3AwAgC0EoaiAEQShqKQMANwMAIAtBMGogBEEwaikDADcDACALQThqIARBOGopAwA3AwAgC0HAAGogBEHAAGopAwA3AwAgC0HIAGogBEHIAGopAwA3AwAgC0HQAGogBEHQAGopAwA3AwAgC0HYAGogBEHYAGopAwA3AwAgC0HgAGogBEHgAGopAwA3AwAgC0HoAGogBEHoAGopAwA3AwAgC0HwAGogBEHwAGopAwA3AwAgC0H4AGogBEH4AGopAwA3AwAgJEGAAWohJCAiQX9qIiINAAsLIAggByAbIAAQAiAjIBpqISMgJiAaaiEmICVBAmoiJSABSQ0AC0EAISUDQAJAAkAgAA0AIBsgFykDADcDACAbIBYpAwA3AwggGyAVKQMANwMQIBsgFCkDADcDGCAbIBMpAwA3AyAgGyASKQMANwMoIBsgESkDADcDMCAbIBApAwA3AzgMAQsgACAKIBkpAgAgGIOnQQd0amwhJiAFISQgACEiA0AgJCAMaiILIAspAwAgJCAmaiIEKQMAhTcDACALQQhqIiMgIykDACAEQQhqKQMAhTcDACALQRBqIiMgIykDACAEQRBqKQMAhTcDACALQRhqIiMgIykDACAEQRhqKQMAhTcDACALQSBqIiMgIykDACAEQSBqKQMAhTcDACALQShqIiMgIykDACAEQShqKQMAhTcDACALQTBqIiMgIykDACAEQTBqKQMAhTcDACALQThqIiMgIykDACAEQThqKQMAhTcDACALQcAAaiIjICMpAwAgBEHAAGopAwCFNwMAIAtByABqIiMgIykDACAEQcgAaikDAIU3AwAgC0HQAGoiIyAjKQMAIARB0ABqKQMAhTcDACALQdgAaiIjICMpAwAgBEHYAGopAwCFNwMAIAtB4ABqIiMgIykDACAEQeAAaikDAIU3AwAgC0HoAGoiIyAjKQMAIARB6ABqKQMAhTcDACALQfAAaiIjICMpAwAgBEHwAGopAwCFNwMAIAtB+ABqIgsgCykDACAEQfgAaikDAIU3AwAgJEGAAWohJCAiQX9qIiINAAsgByAIIBsgABACIAAgCiAJKQIAIBiDp0EHdGpsISYgBSEkIAAhIgNAICQgDWoiCyALKQMAICQgJmoiBCkDAIU3AwAgC0EIaiIjICMpAwAgBEEIaikDAIU3AwAgC0EQaiIjICMpAwAgBEEQaikDAIU3AwAgC0EYaiIjICMpAwAgBEEYaikDAIU3AwAgC0EgaiIjICMpAwAgBEEgaikDAIU3AwAgC0EoaiIjICMpAwAgBEEoaikDAIU3AwAgC0EwaiIjICMpAwAgBEEwaikDAIU3AwAgC0E4aiIjICMpAwAgBEE4aikDAIU3AwAgC0HAAGoiIyAjKQMAIARBwABqKQMAhTcDACALQcgAaiIjICMpAwAgBEHIAGopAwCFNwMAIAtB0ABqIiMgIykDACAEQdAAaikDAIU3AwAgC0HYAGoiIyAjKQMAIARB2ABqKQMAhTcDACALQeAAaiIjICMpAwAgBEHgAGopAwCFNwMAIAtB6ABqIiMgIykDACAEQegAaikDAIU3AwAgC0HwAGoiIyAjKQMAIARB8ABqKQMAhTcDACALQfgAaiILIAspAwAgBEH4AGopAwCFNwMAICRBgAFqISQgIkF/aiIiDQALCyAIIAcgGyAAEAIgJUECaiIlIAFJDQALCwJAIABFDQBBACEiAkAgHQ0AICAgHmohI0EAIQtBACEiA0AgIyALaiIEIAcgC2oiJCgCADYCACAEQQRqICRBBGooAgA2AgAgBEEIaiAkQQhqKAIANgIAIARBDGogJEEMaigCADYCACALQRBqIQsgDiAiQQRqIiJHDQALCyAPRQ0AICEgIkECdCILaiAHIAtqKAIANgIACyAeIANqIR4gH0EBaiIfIAJHDQALCws=";
|
|
17794
|
+
var hash$3 = "b32721f8";
|
|
17795
|
+
var wasmJson$3 = {
|
|
17796
|
+
name: name$3,
|
|
17797
|
+
data: data$3,
|
|
17798
|
+
hash: hash$3
|
|
17799
|
+
};
|
|
16048
17800
|
|
|
16049
|
-
function
|
|
16050
|
-
|
|
16051
|
-
|
|
16052
|
-
|
|
17801
|
+
function scryptInternal(options) {
|
|
17802
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
17803
|
+
const { costFactor, blockSize, parallelism, hashLength } = options;
|
|
17804
|
+
const SHA256Hasher = createSHA256();
|
|
17805
|
+
const blockData = yield pbkdf2({
|
|
17806
|
+
password: options.password,
|
|
17807
|
+
salt: options.salt,
|
|
17808
|
+
iterations: 1,
|
|
17809
|
+
hashLength: 128 * blockSize * parallelism,
|
|
17810
|
+
hashFunction: SHA256Hasher,
|
|
17811
|
+
outputType: "binary",
|
|
17812
|
+
});
|
|
17813
|
+
const scryptInterface = yield WASMInterface(wasmJson$3, 0);
|
|
17814
|
+
// last block is for storing the temporary vectors
|
|
17815
|
+
const VSize = 128 * blockSize * costFactor;
|
|
17816
|
+
const XYSize = 256 * blockSize;
|
|
17817
|
+
scryptInterface.setMemorySize(blockData.length + VSize + XYSize);
|
|
17818
|
+
scryptInterface.writeMemory(blockData, 0);
|
|
17819
|
+
// mix blocks
|
|
17820
|
+
scryptInterface.getExports().scrypt(blockSize, costFactor, parallelism);
|
|
17821
|
+
const expensiveSalt = scryptInterface
|
|
17822
|
+
.getMemory()
|
|
17823
|
+
.subarray(0, 128 * blockSize * parallelism);
|
|
17824
|
+
const outputData = yield pbkdf2({
|
|
17825
|
+
password: options.password,
|
|
17826
|
+
salt: expensiveSalt,
|
|
17827
|
+
iterations: 1,
|
|
17828
|
+
hashLength,
|
|
17829
|
+
hashFunction: SHA256Hasher,
|
|
17830
|
+
outputType: "binary",
|
|
17831
|
+
});
|
|
17832
|
+
if (options.outputType === "hex") {
|
|
17833
|
+
const digestChars = new Uint8Array(hashLength * 2);
|
|
17834
|
+
return getDigestHex(digestChars, outputData, hashLength);
|
|
17835
|
+
}
|
|
17836
|
+
// return binary format
|
|
17837
|
+
return outputData;
|
|
17838
|
+
});
|
|
17839
|
+
}
|
|
17840
|
+
const isPowerOfTwo = (v) => v && !(v & (v - 1));
|
|
17841
|
+
const validateOptions$1 = (options) => {
|
|
17842
|
+
if (!options || typeof options !== "object") {
|
|
17843
|
+
throw new Error("Invalid options parameter. It requires an object.");
|
|
17844
|
+
}
|
|
17845
|
+
if (!Number.isInteger(options.blockSize) || options.blockSize < 1) {
|
|
17846
|
+
throw new Error("Block size should be a positive number");
|
|
17847
|
+
}
|
|
17848
|
+
if (!Number.isInteger(options.costFactor) ||
|
|
17849
|
+
options.costFactor < 2 ||
|
|
17850
|
+
!isPowerOfTwo(options.costFactor)) {
|
|
17851
|
+
throw new Error("Cost factor should be a power of 2, greater than 1");
|
|
17852
|
+
}
|
|
17853
|
+
if (!Number.isInteger(options.parallelism) || options.parallelism < 1) {
|
|
17854
|
+
throw new Error("Parallelism should be a positive number");
|
|
17855
|
+
}
|
|
17856
|
+
if (!Number.isInteger(options.hashLength) || options.hashLength < 1) {
|
|
17857
|
+
throw new Error("Hash length should be a positive number.");
|
|
17858
|
+
}
|
|
17859
|
+
if (options.outputType === undefined) {
|
|
17860
|
+
options.outputType = "hex";
|
|
17861
|
+
}
|
|
17862
|
+
if (!["hex", "binary"].includes(options.outputType)) {
|
|
17863
|
+
throw new Error(`Insupported output type ${options.outputType}. Valid values: ['hex', 'binary']`);
|
|
17864
|
+
}
|
|
17865
|
+
};
|
|
17866
|
+
/**
|
|
17867
|
+
* Calculates hash using the scrypt password-based key derivation function
|
|
17868
|
+
* @returns Computed hash as a hexadecimal string or as
|
|
17869
|
+
* Uint8Array depending on the outputType option
|
|
17870
|
+
*/
|
|
17871
|
+
function scrypt(options) {
|
|
17872
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
17873
|
+
validateOptions$1(options);
|
|
17874
|
+
return scryptInternal(options);
|
|
17875
|
+
});
|
|
17876
|
+
}
|
|
16053
17877
|
|
|
16054
|
-
var
|
|
17878
|
+
var name$2 = "bcrypt";
|
|
17879
|
+
var data$2 = "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";
|
|
17880
|
+
var hash$2 = "8bd8822d";
|
|
17881
|
+
var wasmJson$2 = {
|
|
17882
|
+
name: name$2,
|
|
17883
|
+
data: data$2,
|
|
17884
|
+
hash: hash$2
|
|
17885
|
+
};
|
|
16055
17886
|
|
|
16056
|
-
|
|
16057
|
-
|
|
16058
|
-
|
|
16059
|
-
|
|
16060
|
-
|
|
16061
|
-
|
|
16062
|
-
|
|
16063
|
-
|
|
17887
|
+
function bcryptInternal(options) {
|
|
17888
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
17889
|
+
const { costFactor, password, salt } = options;
|
|
17890
|
+
const bcryptInterface = yield WASMInterface(wasmJson$2, 0);
|
|
17891
|
+
bcryptInterface.writeMemory(getUInt8Buffer(salt), 0);
|
|
17892
|
+
const passwordBuffer = getUInt8Buffer(password);
|
|
17893
|
+
bcryptInterface.writeMemory(passwordBuffer, 16);
|
|
17894
|
+
const shouldEncode = options.outputType === "encoded" ? 1 : 0;
|
|
17895
|
+
bcryptInterface
|
|
17896
|
+
.getExports()
|
|
17897
|
+
.bcrypt(passwordBuffer.length, costFactor, shouldEncode);
|
|
17898
|
+
const memory = bcryptInterface.getMemory();
|
|
17899
|
+
if (options.outputType === "encoded") {
|
|
17900
|
+
return intArrayToString(memory, 60);
|
|
17901
|
+
}
|
|
17902
|
+
if (options.outputType === "hex") {
|
|
17903
|
+
const digestChars = new Uint8Array(24 * 2);
|
|
17904
|
+
return getDigestHex(digestChars, memory, 24);
|
|
17905
|
+
}
|
|
17906
|
+
// return binary format
|
|
17907
|
+
// the data is copied to allow GC of the original memory buffer
|
|
17908
|
+
return memory.slice(0, 24);
|
|
17909
|
+
});
|
|
16064
17910
|
}
|
|
16065
|
-
|
|
16066
|
-
|
|
16067
|
-
|
|
17911
|
+
const validateOptions = (options) => {
|
|
17912
|
+
if (!options || typeof options !== "object") {
|
|
17913
|
+
throw new Error("Invalid options parameter. It requires an object.");
|
|
17914
|
+
}
|
|
17915
|
+
if (!Number.isInteger(options.costFactor) ||
|
|
17916
|
+
options.costFactor < 4 ||
|
|
17917
|
+
options.costFactor > 31) {
|
|
17918
|
+
throw new Error("Cost factor should be a number between 4 and 31");
|
|
17919
|
+
}
|
|
17920
|
+
options.password = getUInt8Buffer(options.password);
|
|
17921
|
+
if (options.password.length < 1) {
|
|
17922
|
+
throw new Error("Password should be at least 1 byte long");
|
|
17923
|
+
}
|
|
17924
|
+
if (options.password.length > 72) {
|
|
17925
|
+
throw new Error("Password should be at most 72 bytes long");
|
|
17926
|
+
}
|
|
17927
|
+
options.salt = getUInt8Buffer(options.salt);
|
|
17928
|
+
if (options.salt.length !== 16) {
|
|
17929
|
+
throw new Error("Salt should be 16 bytes long");
|
|
17930
|
+
}
|
|
17931
|
+
if (options.outputType === undefined) {
|
|
17932
|
+
options.outputType = "encoded";
|
|
17933
|
+
}
|
|
17934
|
+
if (!["hex", "binary", "encoded"].includes(options.outputType)) {
|
|
17935
|
+
throw new Error(`Insupported output type ${options.outputType}. Valid values: ['hex', 'binary', 'encoded']`);
|
|
17936
|
+
}
|
|
17937
|
+
};
|
|
17938
|
+
/**
|
|
17939
|
+
* Calculates hash using the bcrypt password-hashing function
|
|
17940
|
+
* @returns Computed hash
|
|
17941
|
+
*/
|
|
17942
|
+
function bcrypt(options) {
|
|
17943
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
17944
|
+
validateOptions(options);
|
|
17945
|
+
return bcryptInternal(options);
|
|
17946
|
+
});
|
|
16068
17947
|
}
|
|
16069
|
-
|
|
16070
|
-
|
|
16071
|
-
|
|
17948
|
+
const validateHashCharacters = (hash) => {
|
|
17949
|
+
if (!/^\$2[axyb]\$[0-3][0-9]\$[./A-Za-z0-9]{53}$/.test(hash)) {
|
|
17950
|
+
return false;
|
|
17951
|
+
}
|
|
17952
|
+
if (hash[4] === "0" && Number(hash[5]) < 4) {
|
|
17953
|
+
return false;
|
|
17954
|
+
}
|
|
17955
|
+
if (hash[4] === "3" && Number(hash[5]) > 1) {
|
|
17956
|
+
return false;
|
|
17957
|
+
}
|
|
17958
|
+
return true;
|
|
17959
|
+
};
|
|
17960
|
+
const validateVerifyOptions = (options) => {
|
|
17961
|
+
if (!options || typeof options !== "object") {
|
|
17962
|
+
throw new Error("Invalid options parameter. It requires an object.");
|
|
17963
|
+
}
|
|
17964
|
+
if (options.hash === undefined || typeof options.hash !== "string") {
|
|
17965
|
+
throw new Error("Hash should be specified");
|
|
17966
|
+
}
|
|
17967
|
+
if (options.hash.length !== 60) {
|
|
17968
|
+
throw new Error("Hash should be 60 bytes long");
|
|
17969
|
+
}
|
|
17970
|
+
if (!validateHashCharacters(options.hash)) {
|
|
17971
|
+
throw new Error("Invalid hash");
|
|
17972
|
+
}
|
|
17973
|
+
options.password = getUInt8Buffer(options.password);
|
|
17974
|
+
if (options.password.length < 1) {
|
|
17975
|
+
throw new Error("Password should be at least 1 byte long");
|
|
17976
|
+
}
|
|
17977
|
+
if (options.password.length > 72) {
|
|
17978
|
+
throw new Error("Password should be at most 72 bytes long");
|
|
17979
|
+
}
|
|
17980
|
+
};
|
|
17981
|
+
/**
|
|
17982
|
+
* Verifies password using bcrypt password-hashing function
|
|
17983
|
+
* @returns True if the encoded hash matches the password
|
|
17984
|
+
*/
|
|
17985
|
+
function bcryptVerify(options) {
|
|
17986
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
17987
|
+
validateVerifyOptions(options);
|
|
17988
|
+
const { hash, password } = options;
|
|
17989
|
+
const bcryptInterface = yield WASMInterface(wasmJson$2, 0);
|
|
17990
|
+
bcryptInterface.writeMemory(getUInt8Buffer(hash), 0);
|
|
17991
|
+
const passwordBuffer = getUInt8Buffer(password);
|
|
17992
|
+
bcryptInterface.writeMemory(passwordBuffer, 60);
|
|
17993
|
+
return !!bcryptInterface.getExports().bcrypt_verify(passwordBuffer.length);
|
|
17994
|
+
});
|
|
16072
17995
|
}
|
|
16073
|
-
}
|
|
16074
|
-
|
|
16075
|
-
return new Proto(outlen, key, salt, personal)
|
|
16076
|
-
}
|
|
16077
|
-
|
|
16078
|
-
module.exports.ready = function (cb) {
|
|
16079
|
-
b2wasm.ready(function () { // ignore errors
|
|
16080
|
-
cb()
|
|
16081
|
-
})
|
|
16082
|
-
}
|
|
16083
|
-
|
|
16084
|
-
module.exports.WASM_SUPPORTED = b2wasm.SUPPORTED
|
|
16085
|
-
module.exports.WASM_LOADED = false
|
|
16086
|
-
|
|
16087
|
-
var BYTES_MIN = module.exports.BYTES_MIN = 16
|
|
16088
|
-
var BYTES_MAX = module.exports.BYTES_MAX = 64
|
|
16089
|
-
var BYTES = module.exports.BYTES = 32
|
|
16090
|
-
var KEYBYTES_MIN = module.exports.KEYBYTES_MIN = 16
|
|
16091
|
-
var KEYBYTES_MAX = module.exports.KEYBYTES_MAX = 64
|
|
16092
|
-
var KEYBYTES = module.exports.KEYBYTES = 32
|
|
16093
|
-
var SALTBYTES = module.exports.SALTBYTES = 16
|
|
16094
|
-
var PERSONALBYTES = module.exports.PERSONALBYTES = 16
|
|
16095
|
-
|
|
16096
|
-
b2wasm.ready(function (err) {
|
|
16097
|
-
if (!err) {
|
|
16098
|
-
module.exports.WASM_LOADED = true
|
|
16099
|
-
module.exports = b2wasm
|
|
16100
|
-
}
|
|
16101
|
-
})
|
|
16102
17996
|
|
|
17997
|
+
var name$1 = "whirlpool";
|
|
17998
|
+
var data$1 = "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";
|
|
17999
|
+
var hash$1 = "8d8f6035";
|
|
18000
|
+
var wasmJson$1 = {
|
|
18001
|
+
name: name$1,
|
|
18002
|
+
data: data$1,
|
|
18003
|
+
hash: hash$1
|
|
18004
|
+
};
|
|
16103
18005
|
|
|
16104
|
-
|
|
18006
|
+
const mutex$1 = new Mutex();
|
|
18007
|
+
let wasmCache$1 = null;
|
|
18008
|
+
/**
|
|
18009
|
+
* Calculates Whirlpool hash
|
|
18010
|
+
* @param data Input data (string, Buffer or TypedArray)
|
|
18011
|
+
* @returns Computed hash as a hexadecimal string
|
|
18012
|
+
*/
|
|
18013
|
+
function whirlpool(data) {
|
|
18014
|
+
if (wasmCache$1 === null) {
|
|
18015
|
+
return lockedCreate(mutex$1, wasmJson$1, 64).then((wasm) => {
|
|
18016
|
+
wasmCache$1 = wasm;
|
|
18017
|
+
return wasmCache$1.calculate(data);
|
|
18018
|
+
});
|
|
18019
|
+
}
|
|
18020
|
+
try {
|
|
18021
|
+
const hash = wasmCache$1.calculate(data);
|
|
18022
|
+
return Promise.resolve(hash);
|
|
18023
|
+
}
|
|
18024
|
+
catch (err) {
|
|
18025
|
+
return Promise.reject(err);
|
|
18026
|
+
}
|
|
18027
|
+
}
|
|
18028
|
+
/**
|
|
18029
|
+
* Creates a new Whirlpool hash instance
|
|
18030
|
+
*/
|
|
18031
|
+
function createWhirlpool() {
|
|
18032
|
+
return WASMInterface(wasmJson$1, 64).then((wasm) => {
|
|
18033
|
+
wasm.init();
|
|
18034
|
+
const obj = {
|
|
18035
|
+
init: () => {
|
|
18036
|
+
wasm.init();
|
|
18037
|
+
return obj;
|
|
18038
|
+
},
|
|
18039
|
+
update: (data) => {
|
|
18040
|
+
wasm.update(data);
|
|
18041
|
+
return obj;
|
|
18042
|
+
},
|
|
18043
|
+
// biome-ignore lint/suspicious/noExplicitAny: Conflict with IHasher type
|
|
18044
|
+
digest: (outputType) => wasm.digest(outputType),
|
|
18045
|
+
save: () => wasm.save(),
|
|
18046
|
+
load: (data) => {
|
|
18047
|
+
wasm.load(data);
|
|
18048
|
+
return obj;
|
|
18049
|
+
},
|
|
18050
|
+
blockSize: 64,
|
|
18051
|
+
digestSize: 64,
|
|
18052
|
+
};
|
|
18053
|
+
return obj;
|
|
18054
|
+
});
|
|
18055
|
+
}
|
|
16105
18056
|
|
|
16106
|
-
|
|
16107
|
-
|
|
18057
|
+
var name = "sm3";
|
|
18058
|
+
var data = "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";
|
|
18059
|
+
var hash = "b6fb4b8e";
|
|
18060
|
+
var wasmJson = {
|
|
18061
|
+
name: name,
|
|
18062
|
+
data: data,
|
|
18063
|
+
hash: hash
|
|
18064
|
+
};
|
|
16108
18065
|
|
|
16109
|
-
|
|
18066
|
+
const mutex = new Mutex();
|
|
18067
|
+
let wasmCache = null;
|
|
18068
|
+
/**
|
|
18069
|
+
* Calculates SM3 hash
|
|
18070
|
+
* @param data Input data (string, Buffer or TypedArray)
|
|
18071
|
+
* @returns Computed hash as a hexadecimal string
|
|
18072
|
+
*/
|
|
18073
|
+
function sm3(data) {
|
|
18074
|
+
if (wasmCache === null) {
|
|
18075
|
+
return lockedCreate(mutex, wasmJson, 32).then((wasm) => {
|
|
18076
|
+
wasmCache = wasm;
|
|
18077
|
+
return wasmCache.calculate(data);
|
|
18078
|
+
});
|
|
18079
|
+
}
|
|
18080
|
+
try {
|
|
18081
|
+
const hash = wasmCache.calculate(data);
|
|
18082
|
+
return Promise.resolve(hash);
|
|
18083
|
+
}
|
|
18084
|
+
catch (err) {
|
|
18085
|
+
return Promise.reject(err);
|
|
18086
|
+
}
|
|
18087
|
+
}
|
|
18088
|
+
/**
|
|
18089
|
+
* Creates a new SM3 hash instance
|
|
18090
|
+
*/
|
|
18091
|
+
function createSM3() {
|
|
18092
|
+
return WASMInterface(wasmJson, 32).then((wasm) => {
|
|
18093
|
+
wasm.init();
|
|
18094
|
+
const obj = {
|
|
18095
|
+
init: () => {
|
|
18096
|
+
wasm.init();
|
|
18097
|
+
return obj;
|
|
18098
|
+
},
|
|
18099
|
+
update: (data) => {
|
|
18100
|
+
wasm.update(data);
|
|
18101
|
+
return obj;
|
|
18102
|
+
},
|
|
18103
|
+
// biome-ignore lint/suspicious/noExplicitAny: Conflict with IHasher type
|
|
18104
|
+
digest: (outputType) => wasm.digest(outputType),
|
|
18105
|
+
save: () => wasm.save(),
|
|
18106
|
+
load: (data) => {
|
|
18107
|
+
wasm.load(data);
|
|
18108
|
+
return obj;
|
|
18109
|
+
},
|
|
18110
|
+
blockSize: 64,
|
|
18111
|
+
digestSize: 32,
|
|
18112
|
+
};
|
|
18113
|
+
return obj;
|
|
18114
|
+
});
|
|
18115
|
+
}
|
|
16110
18116
|
|
|
16111
|
-
|
|
16112
|
-
|
|
18117
|
+
exports.adler32 = adler32;
|
|
18118
|
+
exports.argon2Verify = argon2Verify;
|
|
18119
|
+
exports.argon2d = argon2d;
|
|
18120
|
+
exports.argon2i = argon2i;
|
|
18121
|
+
exports.argon2id = argon2id;
|
|
18122
|
+
exports.bcrypt = bcrypt;
|
|
18123
|
+
exports.bcryptVerify = bcryptVerify;
|
|
18124
|
+
exports.blake2b = blake2b;
|
|
18125
|
+
exports.blake2s = blake2s;
|
|
18126
|
+
exports.blake3 = blake3;
|
|
18127
|
+
exports.crc32 = crc32;
|
|
18128
|
+
exports.crc64 = crc64;
|
|
18129
|
+
exports.createAdler32 = createAdler32;
|
|
18130
|
+
exports.createBLAKE2b = createBLAKE2b;
|
|
18131
|
+
exports.createBLAKE2s = createBLAKE2s;
|
|
18132
|
+
exports.createBLAKE3 = createBLAKE3;
|
|
18133
|
+
exports.createCRC32 = createCRC32;
|
|
18134
|
+
exports.createCRC64 = createCRC64;
|
|
18135
|
+
exports.createHMAC = createHMAC;
|
|
18136
|
+
exports.createKeccak = createKeccak;
|
|
18137
|
+
exports.createMD4 = createMD4;
|
|
18138
|
+
exports.createMD5 = createMD5;
|
|
18139
|
+
exports.createRIPEMD160 = createRIPEMD160;
|
|
18140
|
+
exports.createSHA1 = createSHA1;
|
|
18141
|
+
exports.createSHA224 = createSHA224;
|
|
18142
|
+
exports.createSHA256 = createSHA256;
|
|
18143
|
+
exports.createSHA3 = createSHA3;
|
|
18144
|
+
exports.createSHA384 = createSHA384;
|
|
18145
|
+
exports.createSHA512 = createSHA512;
|
|
18146
|
+
exports.createSM3 = createSM3;
|
|
18147
|
+
exports.createWhirlpool = createWhirlpool;
|
|
18148
|
+
exports.createXXHash128 = createXXHash128;
|
|
18149
|
+
exports.createXXHash3 = createXXHash3;
|
|
18150
|
+
exports.createXXHash32 = createXXHash32;
|
|
18151
|
+
exports.createXXHash64 = createXXHash64;
|
|
18152
|
+
exports.keccak = keccak;
|
|
18153
|
+
exports.md4 = md4;
|
|
18154
|
+
exports.md5 = md5;
|
|
18155
|
+
exports.pbkdf2 = pbkdf2;
|
|
18156
|
+
exports.ripemd160 = ripemd160;
|
|
18157
|
+
exports.scrypt = scrypt;
|
|
18158
|
+
exports.sha1 = sha1;
|
|
18159
|
+
exports.sha224 = sha224;
|
|
18160
|
+
exports.sha256 = sha256;
|
|
18161
|
+
exports.sha3 = sha3;
|
|
18162
|
+
exports.sha384 = sha384;
|
|
18163
|
+
exports.sha512 = sha512;
|
|
18164
|
+
exports.sm3 = sm3;
|
|
18165
|
+
exports.whirlpool = whirlpool;
|
|
18166
|
+
exports.xxhash128 = xxhash128;
|
|
18167
|
+
exports.xxhash3 = xxhash3;
|
|
18168
|
+
exports.xxhash32 = xxhash32;
|
|
18169
|
+
exports.xxhash64 = xxhash64;
|
|
16113
18170
|
|
|
16114
|
-
|
|
16115
|
-
* Minimal assert function
|
|
16116
|
-
* @param {any} t Value to check if falsy
|
|
16117
|
-
* @param {string=} m Optional assertion error message
|
|
16118
|
-
* @throws {AssertionError}
|
|
16119
|
-
*/
|
|
16120
|
-
function assert (t, m) {
|
|
16121
|
-
if (!t) {
|
|
16122
|
-
var err = new AssertionError(m)
|
|
16123
|
-
if (Error.captureStackTrace) Error.captureStackTrace(err, assert)
|
|
16124
|
-
throw err
|
|
16125
|
-
}
|
|
16126
|
-
}
|
|
18171
|
+
}));
|
|
16127
18172
|
|
|
16128
18173
|
|
|
16129
18174
|
/***/ }),
|
|
@@ -21890,7 +23935,7 @@ var Reflect;
|
|
|
21890
23935
|
/******/ // Execute the module function
|
|
21891
23936
|
/******/ var threw = true;
|
|
21892
23937
|
/******/ try {
|
|
21893
|
-
/******/ __webpack_modules__[moduleId](module, module.exports, __nccwpck_require__);
|
|
23938
|
+
/******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __nccwpck_require__);
|
|
21894
23939
|
/******/ threw = false;
|
|
21895
23940
|
/******/ } finally {
|
|
21896
23941
|
/******/ if(threw) delete __webpack_module_cache__[moduleId];
|
|
@@ -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();
|
|
27860
|
+
}
|
|
27861
|
+
const hasher = this.hasher.init();
|
|
27862
|
+
for (const v of r) {
|
|
27863
|
+
hasher.update(v instanceof bytes_BytesBlob ? v.raw : v);
|
|
25753
27864
|
}
|
|
25754
|
-
return
|
|
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,55 @@ 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/
|
|
25830
|
-
|
|
25831
|
-
|
|
25832
|
-
|
|
25833
|
-
|
|
27909
|
+
;// CONCATENATED MODULE: ./packages/core/collections/array-view.ts
|
|
25834
27910
|
|
|
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
27911
|
/**
|
|
25871
|
-
*
|
|
27912
|
+
* A utility class providing a readonly view over a portion of an array without copying it.
|
|
25872
27913
|
*/
|
|
25873
|
-
|
|
25874
|
-
|
|
27914
|
+
class ArrayView {
|
|
27915
|
+
start;
|
|
27916
|
+
end;
|
|
27917
|
+
source;
|
|
27918
|
+
length;
|
|
27919
|
+
constructor(source, start, end) {
|
|
27920
|
+
this.start = start;
|
|
27921
|
+
this.end = end;
|
|
27922
|
+
this.source = source;
|
|
27923
|
+
this.length = end - start;
|
|
27924
|
+
}
|
|
27925
|
+
static from(source, start = 0, end = source.length) {
|
|
27926
|
+
debug_check `
|
|
27927
|
+
${start >= 0 && end <= source.length && start <= end}
|
|
27928
|
+
Invalid start (${start})/end (${end}) for ArrayView
|
|
27929
|
+
`;
|
|
27930
|
+
return new ArrayView(source, start, end);
|
|
27931
|
+
}
|
|
27932
|
+
get(i) {
|
|
27933
|
+
debug_check `
|
|
27934
|
+
${i >= 0 && i < this.length}
|
|
27935
|
+
Index out of bounds: ${i} < ${this.length}
|
|
27936
|
+
`;
|
|
27937
|
+
return this.source[this.start + i];
|
|
27938
|
+
}
|
|
27939
|
+
subview(from, to = this.length) {
|
|
27940
|
+
return ArrayView.from(this.source, this.start + from, this.start + to);
|
|
27941
|
+
}
|
|
27942
|
+
toArray() {
|
|
27943
|
+
return this.source.slice(this.start, this.end);
|
|
27944
|
+
}
|
|
27945
|
+
*[Symbol.iterator]() {
|
|
27946
|
+
for (let i = this.start; i < this.end; i++) {
|
|
27947
|
+
yield this.source[i];
|
|
27948
|
+
}
|
|
27949
|
+
}
|
|
25875
27950
|
}
|
|
25876
27951
|
|
|
25877
|
-
;// CONCATENATED MODULE: ./packages/core/crypto/index.ts
|
|
25878
|
-
|
|
25879
|
-
|
|
25880
|
-
|
|
25881
|
-
|
|
25882
|
-
|
|
25883
|
-
|
|
25884
|
-
|
|
25885
|
-
|
|
25886
27952
|
;// CONCATENATED MODULE: ./packages/core/collections/hash-dictionary.ts
|
|
25887
27953
|
/** A map which uses hashes as keys. */
|
|
25888
27954
|
class hash_dictionary_HashDictionary {
|
|
@@ -26494,6 +28560,7 @@ class truncated_hash_dictionary_TruncatedHashDictionary {
|
|
|
26494
28560
|
|
|
26495
28561
|
|
|
26496
28562
|
|
|
28563
|
+
|
|
26497
28564
|
;// CONCATENATED MODULE: ./packages/jam/config/chain-spec.ts
|
|
26498
28565
|
|
|
26499
28566
|
|
|
@@ -29557,43 +31624,43 @@ var stateKeys;
|
|
|
29557
31624
|
}
|
|
29558
31625
|
stateKeys.serviceInfo = serviceInfo;
|
|
29559
31626
|
/** https://graypaper.fluffylabs.dev/#/1c979cb/3bba033bba03?v=0.7.1 */
|
|
29560
|
-
function serviceStorage(serviceId, key) {
|
|
31627
|
+
function serviceStorage(blake2b, serviceId, key) {
|
|
29561
31628
|
if (compatibility_Compatibility.isLessThan(compatibility_GpVersion.V0_6_7)) {
|
|
29562
31629
|
const out = bytes_Bytes.zero(hash_HASH_SIZE);
|
|
29563
31630
|
out.raw.set(numbers_u32AsLeBytes(numbers_tryAsU32(2 ** 32 - 1)), 0);
|
|
29564
31631
|
out.raw.set(key.raw.subarray(0, hash_HASH_SIZE - U32_BYTES), U32_BYTES);
|
|
29565
31632
|
return legacyServiceNested(serviceId, out);
|
|
29566
31633
|
}
|
|
29567
|
-
return serviceNested(serviceId, numbers_tryAsU32(2 ** 32 - 1), key);
|
|
31634
|
+
return serviceNested(blake2b, serviceId, numbers_tryAsU32(2 ** 32 - 1), key);
|
|
29568
31635
|
}
|
|
29569
31636
|
stateKeys.serviceStorage = serviceStorage;
|
|
29570
31637
|
/** https://graypaper.fluffylabs.dev/#/1c979cb/3bd7033bd703?v=0.7.1 */
|
|
29571
|
-
function servicePreimage(serviceId, hash) {
|
|
31638
|
+
function servicePreimage(blake2b, serviceId, hash) {
|
|
29572
31639
|
if (compatibility_Compatibility.isLessThan(compatibility_GpVersion.V0_6_7)) {
|
|
29573
31640
|
const out = bytes_Bytes.zero(hash_HASH_SIZE);
|
|
29574
31641
|
out.raw.set(numbers_u32AsLeBytes(numbers_tryAsU32(2 ** 32 - 2)), 0);
|
|
29575
31642
|
out.raw.set(hash.raw.subarray(1, hash_HASH_SIZE - U32_BYTES + 1), U32_BYTES);
|
|
29576
31643
|
return legacyServiceNested(serviceId, out);
|
|
29577
31644
|
}
|
|
29578
|
-
return serviceNested(serviceId, numbers_tryAsU32(2 ** 32 - 2), hash);
|
|
31645
|
+
return serviceNested(blake2b, serviceId, numbers_tryAsU32(2 ** 32 - 2), hash);
|
|
29579
31646
|
}
|
|
29580
31647
|
stateKeys.servicePreimage = servicePreimage;
|
|
29581
31648
|
/** https://graypaper.fluffylabs.dev/#/1c979cb/3b0a043b0a04?v=0.7.1 */
|
|
29582
|
-
function serviceLookupHistory(serviceId, hash, preimageLength) {
|
|
31649
|
+
function serviceLookupHistory(blake2b, serviceId, hash, preimageLength) {
|
|
29583
31650
|
if (compatibility_Compatibility.isLessThan(compatibility_GpVersion.V0_6_7)) {
|
|
29584
|
-
const doubleHash = hashBytes(hash);
|
|
31651
|
+
const doubleHash = blake2b.hashBytes(hash);
|
|
29585
31652
|
const out = bytes_Bytes.zero(hash_HASH_SIZE);
|
|
29586
31653
|
out.raw.set(numbers_u32AsLeBytes(preimageLength), 0);
|
|
29587
31654
|
out.raw.set(doubleHash.raw.subarray(2, hash_HASH_SIZE - U32_BYTES + 2), U32_BYTES);
|
|
29588
31655
|
return legacyServiceNested(serviceId, out);
|
|
29589
31656
|
}
|
|
29590
|
-
return serviceNested(serviceId, preimageLength, hash);
|
|
31657
|
+
return serviceNested(blake2b, serviceId, preimageLength, hash);
|
|
29591
31658
|
}
|
|
29592
31659
|
stateKeys.serviceLookupHistory = serviceLookupHistory;
|
|
29593
31660
|
/** https://graypaper.fluffylabs.dev/#/1c979cb/3b88003b8800?v=0.7.1 */
|
|
29594
|
-
function serviceNested(serviceId, numberPrefix, hash) {
|
|
31661
|
+
function serviceNested(blake2b, serviceId, numberPrefix, hash) {
|
|
29595
31662
|
const inputToHash = bytes_BytesBlob.blobFromParts(numbers_u32AsLeBytes(numberPrefix), hash.raw);
|
|
29596
|
-
const newHash = hashBytes(inputToHash).raw.subarray(0, 28);
|
|
31663
|
+
const newHash = blake2b.hashBytes(inputToHash).raw.subarray(0, 28);
|
|
29597
31664
|
const key = bytes_Bytes.zero(hash_HASH_SIZE);
|
|
29598
31665
|
let i = 0;
|
|
29599
31666
|
for (const byte of numbers_u32AsLeBytes(serviceId)) {
|
|
@@ -29662,13 +31729,6 @@ function accumulationOutputComparator(a, b) {
|
|
|
29662
31729
|
|
|
29663
31730
|
|
|
29664
31731
|
|
|
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
31732
|
/**
|
|
29673
31733
|
* Assignment of particular work report to a core.
|
|
29674
31734
|
*
|
|
@@ -29681,7 +31741,7 @@ class AvailabilityAssignment extends WithDebug {
|
|
|
29681
31741
|
workReport;
|
|
29682
31742
|
timeout;
|
|
29683
31743
|
static Codec = descriptors_codec.Class(AvailabilityAssignment, {
|
|
29684
|
-
workReport:
|
|
31744
|
+
workReport: WorkReport.Codec,
|
|
29685
31745
|
timeout: descriptors_codec.u32.asOpaque(),
|
|
29686
31746
|
});
|
|
29687
31747
|
static create({ workReport, timeout }) {
|
|
@@ -29741,6 +31801,10 @@ class DisputesRecords {
|
|
|
29741
31801
|
static create({ goodSet, badSet, wonkySet, punishSet }) {
|
|
29742
31802
|
return new DisputesRecords(goodSet, badSet, wonkySet, punishSet);
|
|
29743
31803
|
}
|
|
31804
|
+
goodSetDict;
|
|
31805
|
+
badSetDict;
|
|
31806
|
+
wonkySetDict;
|
|
31807
|
+
punishSetDict;
|
|
29744
31808
|
constructor(
|
|
29745
31809
|
/** `goodSet`: all work-reports hashes which were judged to be correct */
|
|
29746
31810
|
goodSet,
|
|
@@ -29754,6 +31818,18 @@ class DisputesRecords {
|
|
|
29754
31818
|
this.badSet = badSet;
|
|
29755
31819
|
this.wonkySet = wonkySet;
|
|
29756
31820
|
this.punishSet = punishSet;
|
|
31821
|
+
this.goodSetDict = HashSet.from(goodSet.array);
|
|
31822
|
+
this.badSetDict = HashSet.from(badSet.array);
|
|
31823
|
+
this.wonkySetDict = HashSet.from(wonkySet.array);
|
|
31824
|
+
this.punishSetDict = HashSet.from(punishSet.array);
|
|
31825
|
+
}
|
|
31826
|
+
asDictionaries() {
|
|
31827
|
+
return {
|
|
31828
|
+
goodSet: this.goodSetDict,
|
|
31829
|
+
badSet: this.badSetDict,
|
|
31830
|
+
wonkySet: this.wonkySetDict,
|
|
31831
|
+
punishSet: this.punishSetDict,
|
|
31832
|
+
};
|
|
29757
31833
|
}
|
|
29758
31834
|
static fromSortedArrays({ goodSet, badSet, wonkySet, punishSet, }) {
|
|
29759
31835
|
return new DisputesRecords(sorted_set_SortedSet.fromSortedArray(hashComparator, goodSet), sorted_set_SortedSet.fromSortedArray(hashComparator, badSet), sorted_set_SortedSet.fromSortedArray(hashComparator, wonkySet), sorted_set_SortedSet.fromSortedArray(hashComparator, punishSet));
|
|
@@ -30187,6 +32263,23 @@ const zeroSizeHint = {
|
|
|
30187
32263
|
};
|
|
30188
32264
|
/** 0-byte read, return given default value */
|
|
30189
32265
|
const ignoreValueWithDefault = (defaultValue) => Descriptor.new("ignoreValue", zeroSizeHint, (_e, _v) => { }, (_d) => defaultValue, (_s) => { });
|
|
32266
|
+
/** Encode and decode object with leading version number. */
|
|
32267
|
+
const codecWithVersion = (val) => descriptor_Descriptor.new("withVersion", {
|
|
32268
|
+
bytes: val.sizeHint.bytes + 8,
|
|
32269
|
+
isExact: false,
|
|
32270
|
+
}, (e, v) => {
|
|
32271
|
+
e.varU64(0n);
|
|
32272
|
+
val.encode(e, v);
|
|
32273
|
+
}, (d) => {
|
|
32274
|
+
const version = d.varU64();
|
|
32275
|
+
if (version !== 0n) {
|
|
32276
|
+
throw new Error("Non-zero version is not supported!");
|
|
32277
|
+
}
|
|
32278
|
+
return val.decode(d);
|
|
32279
|
+
}, (s) => {
|
|
32280
|
+
s.varU64();
|
|
32281
|
+
val.skip(s);
|
|
32282
|
+
});
|
|
30190
32283
|
/**
|
|
30191
32284
|
* Service account details.
|
|
30192
32285
|
*
|
|
@@ -31263,6 +33356,7 @@ class NotYetAccumulatedReport extends WithDebug {
|
|
|
31263
33356
|
|
|
31264
33357
|
|
|
31265
33358
|
|
|
33359
|
+
|
|
31266
33360
|
/** Serialization for particular state entries. */
|
|
31267
33361
|
var serialize_serialize;
|
|
31268
33362
|
(function (serialize) {
|
|
@@ -31377,21 +33471,23 @@ var serialize_serialize;
|
|
|
31377
33471
|
/** C(255, s): https://graypaper.fluffylabs.dev/#/85129da/383103383103?v=0.6.3 */
|
|
31378
33472
|
serialize.serviceData = (serviceId) => ({
|
|
31379
33473
|
key: stateKeys.serviceInfo(serviceId),
|
|
31380
|
-
Codec:
|
|
33474
|
+
Codec: compatibility_Compatibility.isGreaterOrEqual(compatibility_GpVersion.V0_7_1)
|
|
33475
|
+
? codecWithVersion(ServiceAccountInfo.Codec)
|
|
33476
|
+
: ServiceAccountInfo.Codec,
|
|
31381
33477
|
});
|
|
31382
33478
|
/** https://graypaper.fluffylabs.dev/#/85129da/384803384803?v=0.6.3 */
|
|
31383
|
-
serialize.serviceStorage = (serviceId, key) => ({
|
|
31384
|
-
key: stateKeys.serviceStorage(serviceId, key),
|
|
33479
|
+
serialize.serviceStorage = (blake2b, serviceId, key) => ({
|
|
33480
|
+
key: stateKeys.serviceStorage(blake2b, serviceId, key),
|
|
31385
33481
|
Codec: dumpCodec,
|
|
31386
33482
|
});
|
|
31387
33483
|
/** https://graypaper.fluffylabs.dev/#/85129da/385b03385b03?v=0.6.3 */
|
|
31388
|
-
serialize.servicePreimages = (serviceId, hash) => ({
|
|
31389
|
-
key: stateKeys.servicePreimage(serviceId, hash),
|
|
33484
|
+
serialize.servicePreimages = (blake2b, serviceId, hash) => ({
|
|
33485
|
+
key: stateKeys.servicePreimage(blake2b, serviceId, hash),
|
|
31390
33486
|
Codec: dumpCodec,
|
|
31391
33487
|
});
|
|
31392
33488
|
/** https://graypaper.fluffylabs.dev/#/85129da/387603387603?v=0.6.3 */
|
|
31393
|
-
serialize.serviceLookupHistory = (serviceId, hash, len) => ({
|
|
31394
|
-
key: stateKeys.serviceLookupHistory(serviceId, hash, len),
|
|
33489
|
+
serialize.serviceLookupHistory = (blake2b, serviceId, hash, len) => ({
|
|
33490
|
+
key: stateKeys.serviceLookupHistory(blake2b, serviceId, hash, len),
|
|
31395
33491
|
Codec: readonlyArray(descriptors_codec.sequenceVarLen(descriptors_codec.u32)),
|
|
31396
33492
|
});
|
|
31397
33493
|
})(serialize_serialize || (serialize_serialize = {}));
|
|
@@ -31412,7 +33508,6 @@ const dumpCodec = descriptor_Descriptor.new("Dump", { bytes: 64, isExact: false
|
|
|
31412
33508
|
|
|
31413
33509
|
|
|
31414
33510
|
|
|
31415
|
-
|
|
31416
33511
|
/**
|
|
31417
33512
|
* State object which reads it's entries from some backend.
|
|
31418
33513
|
*
|
|
@@ -31423,20 +33518,22 @@ const dumpCodec = descriptor_Descriptor.new("Dump", { bytes: 64, isExact: false
|
|
|
31423
33518
|
*/
|
|
31424
33519
|
class serialized_state_SerializedState {
|
|
31425
33520
|
spec;
|
|
33521
|
+
blake2b;
|
|
31426
33522
|
backend;
|
|
31427
33523
|
_recentServiceIds;
|
|
31428
33524
|
/** 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);
|
|
33525
|
+
static fromStateEntries(spec, blake2b, state, recentServices = []) {
|
|
33526
|
+
return new serialized_state_SerializedState(spec, blake2b, state, recentServices);
|
|
31431
33527
|
}
|
|
31432
33528
|
/** Create a state-like object backed by some DB. */
|
|
31433
|
-
static new(spec, db, recentServices = []) {
|
|
31434
|
-
return new serialized_state_SerializedState(spec, db, recentServices);
|
|
33529
|
+
static new(spec, blake2b, db, recentServices = []) {
|
|
33530
|
+
return new serialized_state_SerializedState(spec, blake2b, db, recentServices);
|
|
31435
33531
|
}
|
|
31436
|
-
constructor(spec, backend,
|
|
33532
|
+
constructor(spec, blake2b, backend,
|
|
31437
33533
|
/** Best-effort list of recently active services. */
|
|
31438
33534
|
_recentServiceIds) {
|
|
31439
33535
|
this.spec = spec;
|
|
33536
|
+
this.blake2b = blake2b;
|
|
31440
33537
|
this.backend = backend;
|
|
31441
33538
|
this._recentServiceIds = _recentServiceIds;
|
|
31442
33539
|
}
|
|
@@ -31460,7 +33557,7 @@ class serialized_state_SerializedState {
|
|
|
31460
33557
|
if (!this._recentServiceIds.includes(id)) {
|
|
31461
33558
|
this._recentServiceIds.push(id);
|
|
31462
33559
|
}
|
|
31463
|
-
return new SerializedService(id, serviceData, (key) => this.retrieveOptional(key));
|
|
33560
|
+
return new SerializedService(this.blake2b, id, serviceData, (key) => this.retrieveOptional(key));
|
|
31464
33561
|
}
|
|
31465
33562
|
retrieve({ key, Codec }, description) {
|
|
31466
33563
|
const bytes = this.backend.get(key);
|
|
@@ -31536,12 +33633,14 @@ class serialized_state_SerializedState {
|
|
|
31536
33633
|
}
|
|
31537
33634
|
/** Service data representation on a serialized state. */
|
|
31538
33635
|
class SerializedService {
|
|
33636
|
+
blake2b;
|
|
31539
33637
|
serviceId;
|
|
31540
33638
|
accountInfo;
|
|
31541
33639
|
retrieveOptional;
|
|
31542
|
-
constructor(
|
|
33640
|
+
constructor(blake2b,
|
|
31543
33641
|
/** Service id */
|
|
31544
33642
|
serviceId, accountInfo, retrieveOptional) {
|
|
33643
|
+
this.blake2b = blake2b;
|
|
31545
33644
|
this.serviceId = serviceId;
|
|
31546
33645
|
this.accountInfo = accountInfo;
|
|
31547
33646
|
this.retrieveOptional = retrieveOptional;
|
|
@@ -31554,13 +33653,13 @@ class SerializedService {
|
|
|
31554
33653
|
getStorage(rawKey) {
|
|
31555
33654
|
if (Compatibility.isLessThan(GpVersion.V0_6_7)) {
|
|
31556
33655
|
const SERVICE_ID_BYTES = 4;
|
|
31557
|
-
const serviceIdAndKey =
|
|
33656
|
+
const serviceIdAndKey = safeAllocUint8Array(SERVICE_ID_BYTES + rawKey.length);
|
|
31558
33657
|
serviceIdAndKey.set(u32AsLeBytes(this.serviceId));
|
|
31559
33658
|
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;
|
|
33659
|
+
const key = asOpaqueType(BytesBlob.blobFrom(this.blake2b.hashBytes(serviceIdAndKey).raw));
|
|
33660
|
+
return this.retrieveOptional(serialize.serviceStorage(this.blake2b, this.serviceId, key)) ?? null;
|
|
31562
33661
|
}
|
|
31563
|
-
return this.retrieveOptional(serialize.serviceStorage(this.serviceId, rawKey)) ?? null;
|
|
33662
|
+
return this.retrieveOptional(serialize.serviceStorage(this.blake2b, this.serviceId, rawKey)) ?? null;
|
|
31564
33663
|
}
|
|
31565
33664
|
/**
|
|
31566
33665
|
* Check if preimage is present in the DB.
|
|
@@ -31569,15 +33668,15 @@ class SerializedService {
|
|
|
31569
33668
|
*/
|
|
31570
33669
|
hasPreimage(hash) {
|
|
31571
33670
|
// TODO [ToDr] consider optimizing to avoid fetching the whole data.
|
|
31572
|
-
return this.retrieveOptional(serialize.servicePreimages(this.serviceId, hash)) !== undefined;
|
|
33671
|
+
return this.retrieveOptional(serialize.servicePreimages(this.blake2b, this.serviceId, hash)) !== undefined;
|
|
31573
33672
|
}
|
|
31574
33673
|
/** Retrieve preimage from the DB. */
|
|
31575
33674
|
getPreimage(hash) {
|
|
31576
|
-
return this.retrieveOptional(serialize.servicePreimages(this.serviceId, hash)) ?? null;
|
|
33675
|
+
return this.retrieveOptional(serialize.servicePreimages(this.blake2b, this.serviceId, hash)) ?? null;
|
|
31577
33676
|
}
|
|
31578
33677
|
/** Retrieve preimage lookup history. */
|
|
31579
33678
|
getLookupHistory(hash, len) {
|
|
31580
|
-
const rawSlots = this.retrieveOptional(serialize.serviceLookupHistory(this.serviceId, hash, len));
|
|
33679
|
+
const rawSlots = this.retrieveOptional(serialize.serviceLookupHistory(this.blake2b, this.serviceId, hash, len));
|
|
31581
33680
|
if (rawSlots === undefined) {
|
|
31582
33681
|
return null;
|
|
31583
33682
|
}
|
|
@@ -31645,7 +33744,7 @@ class nodes_TrieNode {
|
|
|
31645
33744
|
raw;
|
|
31646
33745
|
constructor(
|
|
31647
33746
|
/** Exactly 512 bits / 64 bytes */
|
|
31648
|
-
raw =
|
|
33747
|
+
raw = safe_alloc_uint8array_safeAllocUint8Array(nodes_TRIE_NODE_BYTES)) {
|
|
31649
33748
|
this.raw = raw;
|
|
31650
33749
|
}
|
|
31651
33750
|
/** Returns the type of the node */
|
|
@@ -31863,7 +33962,7 @@ class WriteableNodesDb extends NodesDb {
|
|
|
31863
33962
|
|
|
31864
33963
|
/** Compare two trie `LeafNode`s only by their key. */
|
|
31865
33964
|
const trie_leafComparator = (x, y) => x.getKey().compare(y.getKey());
|
|
31866
|
-
const
|
|
33965
|
+
const trie_zero = bytes_Bytes.zero(hash_HASH_SIZE).asOpaque();
|
|
31867
33966
|
class trie_InMemoryTrie {
|
|
31868
33967
|
nodes;
|
|
31869
33968
|
root;
|
|
@@ -31876,7 +33975,7 @@ class trie_InMemoryTrie {
|
|
|
31876
33975
|
const sorted = leaves.slice();
|
|
31877
33976
|
const firstSorted = sorted.shift();
|
|
31878
33977
|
if (firstSorted === undefined) {
|
|
31879
|
-
return
|
|
33978
|
+
return trie_zero;
|
|
31880
33979
|
}
|
|
31881
33980
|
const nodes = [
|
|
31882
33981
|
{
|
|
@@ -31912,7 +34011,7 @@ class trie_InMemoryTrie {
|
|
|
31912
34011
|
const startDepth = isLastNode ? prevDepth : prevDepth + 1;
|
|
31913
34012
|
for (let i = startDepth; i <= currentDepth; i++) {
|
|
31914
34013
|
if (getBit(key, i) === false) {
|
|
31915
|
-
stack.push(
|
|
34014
|
+
stack.push(trie_zero);
|
|
31916
34015
|
}
|
|
31917
34016
|
}
|
|
31918
34017
|
// now let's push the hash of the current leaf
|
|
@@ -31928,16 +34027,16 @@ class trie_InMemoryTrie {
|
|
|
31928
34027
|
const endDepth = isLastNode ? currentDepth - 1 : currentDepth;
|
|
31929
34028
|
for (let i = prevDepth; i > endDepth; i--) {
|
|
31930
34029
|
if (getBit(key, i) === true) {
|
|
31931
|
-
stack.push(
|
|
34030
|
+
stack.push(trie_zero);
|
|
31932
34031
|
}
|
|
31933
|
-
const current = stack.pop() ??
|
|
31934
|
-
const next = stack.pop() ??
|
|
34032
|
+
const current = stack.pop() ?? trie_zero;
|
|
34033
|
+
const next = stack.pop() ?? trie_zero;
|
|
31935
34034
|
const branchNode = BranchNode.fromSubNodes(current, next);
|
|
31936
34035
|
const hash = hasher.hashConcat(branchNode.node.raw);
|
|
31937
34036
|
stack.push(hash);
|
|
31938
34037
|
}
|
|
31939
34038
|
}
|
|
31940
|
-
return stack.pop() ??
|
|
34039
|
+
return stack.pop() ?? trie_zero;
|
|
31941
34040
|
}
|
|
31942
34041
|
/**
|
|
31943
34042
|
* Construct a `LeafNode` from given `key` and `value`.
|
|
@@ -32070,7 +34169,7 @@ function findNodeToReplace(root, nodes, key) {
|
|
|
32070
34169
|
traversedPath.branchingHistory.push([branch, currentNodeHash, currBit]);
|
|
32071
34170
|
const nextNode = nodes.get(nextHash);
|
|
32072
34171
|
if (nextNode === null) {
|
|
32073
|
-
if (nextHash.isEqualTo(
|
|
34172
|
+
if (nextHash.isEqualTo(trie_zero)) {
|
|
32074
34173
|
return traversedPath;
|
|
32075
34174
|
}
|
|
32076
34175
|
throw new Error(`Missing trie node '${nextHash}' with key prefix: ${key}[0..${traversedPath.bitIndex}]`);
|
|
@@ -32221,12 +34320,13 @@ const bitLookup = [
|
|
|
32221
34320
|
;// CONCATENATED MODULE: ./packages/core/trie/hasher.ts
|
|
32222
34321
|
|
|
32223
34322
|
|
|
32224
|
-
|
|
32225
|
-
|
|
32226
|
-
|
|
32227
|
-
|
|
32228
|
-
|
|
32229
|
-
};
|
|
34323
|
+
function hasher_getBlake2bTrieHasher(hasher) {
|
|
34324
|
+
return {
|
|
34325
|
+
hashConcat(n, rest = []) {
|
|
34326
|
+
return hasher.hashBlobs([n, ...rest]);
|
|
34327
|
+
},
|
|
34328
|
+
};
|
|
34329
|
+
}
|
|
32230
34330
|
function getKeccakTrieHasher(hasher) {
|
|
32231
34331
|
return {
|
|
32232
34332
|
hashConcat(n, rest = []) {
|
|
@@ -32252,14 +34352,14 @@ var serialize_state_update_StateEntryUpdateAction;
|
|
|
32252
34352
|
})(serialize_state_update_StateEntryUpdateAction || (serialize_state_update_StateEntryUpdateAction = {}));
|
|
32253
34353
|
const EMPTY_BLOB = bytes_BytesBlob.empty();
|
|
32254
34354
|
/** Serialize given state update into a series of key-value pairs. */
|
|
32255
|
-
function* serialize_state_update_serializeStateUpdate(spec, update) {
|
|
34355
|
+
function* serialize_state_update_serializeStateUpdate(spec, blake2b, update) {
|
|
32256
34356
|
// first let's serialize all of the simple entries (if present!)
|
|
32257
34357
|
yield* serializeBasicKeys(spec, update);
|
|
32258
34358
|
const encode = (codec, val) => Encoder.encodeObject(codec, val, spec);
|
|
32259
34359
|
// then let's proceed with service updates
|
|
32260
|
-
yield* serializeServiceUpdates(update.servicesUpdates, encode);
|
|
32261
|
-
yield* serializePreimages(update.preimages, encode);
|
|
32262
|
-
yield* serializeStorage(update.storage);
|
|
34360
|
+
yield* serializeServiceUpdates(update.servicesUpdates, encode, blake2b);
|
|
34361
|
+
yield* serializePreimages(update.preimages, encode, blake2b);
|
|
34362
|
+
yield* serializeStorage(update.storage, blake2b);
|
|
32263
34363
|
yield* serializeRemovedServices(update.servicesRemoved);
|
|
32264
34364
|
}
|
|
32265
34365
|
function* serializeRemovedServices(servicesRemoved) {
|
|
@@ -32269,18 +34369,18 @@ function* serializeRemovedServices(servicesRemoved) {
|
|
|
32269
34369
|
yield [serialize_state_update_StateEntryUpdateAction.Remove, codec.key, EMPTY_BLOB];
|
|
32270
34370
|
}
|
|
32271
34371
|
}
|
|
32272
|
-
function* serializeStorage(storage) {
|
|
34372
|
+
function* serializeStorage(storage, blake2b) {
|
|
32273
34373
|
for (const { action, serviceId } of storage ?? []) {
|
|
32274
34374
|
switch (action.kind) {
|
|
32275
34375
|
case UpdateStorageKind.Set: {
|
|
32276
34376
|
const key = action.storage.key;
|
|
32277
|
-
const codec = serialize.serviceStorage(serviceId, key);
|
|
34377
|
+
const codec = serialize.serviceStorage(blake2b, serviceId, key);
|
|
32278
34378
|
yield [serialize_state_update_StateEntryUpdateAction.Insert, codec.key, action.storage.value];
|
|
32279
34379
|
break;
|
|
32280
34380
|
}
|
|
32281
34381
|
case UpdateStorageKind.Remove: {
|
|
32282
34382
|
const key = action.key;
|
|
32283
|
-
const codec = serialize.serviceStorage(serviceId, key);
|
|
34383
|
+
const codec = serialize.serviceStorage(blake2b, serviceId, key);
|
|
32284
34384
|
yield [serialize_state_update_StateEntryUpdateAction.Remove, codec.key, EMPTY_BLOB];
|
|
32285
34385
|
break;
|
|
32286
34386
|
}
|
|
@@ -32289,15 +34389,15 @@ function* serializeStorage(storage) {
|
|
|
32289
34389
|
}
|
|
32290
34390
|
}
|
|
32291
34391
|
}
|
|
32292
|
-
function* serializePreimages(preimages, encode) {
|
|
34392
|
+
function* serializePreimages(preimages, encode, blake2b) {
|
|
32293
34393
|
for (const { action, serviceId } of preimages ?? []) {
|
|
32294
34394
|
switch (action.kind) {
|
|
32295
34395
|
case UpdatePreimageKind.Provide: {
|
|
32296
34396
|
const { hash, blob } = action.preimage;
|
|
32297
|
-
const codec = serialize.servicePreimages(serviceId, hash);
|
|
34397
|
+
const codec = serialize.servicePreimages(blake2b, serviceId, hash);
|
|
32298
34398
|
yield [serialize_state_update_StateEntryUpdateAction.Insert, codec.key, blob];
|
|
32299
34399
|
if (action.slot !== null) {
|
|
32300
|
-
const codec2 = serialize.serviceLookupHistory(serviceId, hash, tryAsU32(blob.length));
|
|
34400
|
+
const codec2 = serialize.serviceLookupHistory(blake2b, serviceId, hash, tryAsU32(blob.length));
|
|
32301
34401
|
yield [
|
|
32302
34402
|
serialize_state_update_StateEntryUpdateAction.Insert,
|
|
32303
34403
|
codec2.key,
|
|
@@ -32308,15 +34408,15 @@ function* serializePreimages(preimages, encode) {
|
|
|
32308
34408
|
}
|
|
32309
34409
|
case UpdatePreimageKind.UpdateOrAdd: {
|
|
32310
34410
|
const { hash, length, slots } = action.item;
|
|
32311
|
-
const codec = serialize.serviceLookupHistory(serviceId, hash, length);
|
|
34411
|
+
const codec = serialize.serviceLookupHistory(blake2b, serviceId, hash, length);
|
|
32312
34412
|
yield [serialize_state_update_StateEntryUpdateAction.Insert, codec.key, encode(codec.Codec, slots)];
|
|
32313
34413
|
break;
|
|
32314
34414
|
}
|
|
32315
34415
|
case UpdatePreimageKind.Remove: {
|
|
32316
34416
|
const { hash, length } = action;
|
|
32317
|
-
const codec = serialize.servicePreimages(serviceId, hash);
|
|
34417
|
+
const codec = serialize.servicePreimages(blake2b, serviceId, hash);
|
|
32318
34418
|
yield [serialize_state_update_StateEntryUpdateAction.Remove, codec.key, EMPTY_BLOB];
|
|
32319
|
-
const codec2 = serialize.serviceLookupHistory(serviceId, hash, length);
|
|
34419
|
+
const codec2 = serialize.serviceLookupHistory(blake2b, serviceId, hash, length);
|
|
32320
34420
|
yield [serialize_state_update_StateEntryUpdateAction.Remove, codec2.key, EMPTY_BLOB];
|
|
32321
34421
|
break;
|
|
32322
34422
|
}
|
|
@@ -32325,7 +34425,7 @@ function* serializePreimages(preimages, encode) {
|
|
|
32325
34425
|
}
|
|
32326
34426
|
}
|
|
32327
34427
|
}
|
|
32328
|
-
function* serializeServiceUpdates(servicesUpdates, encode) {
|
|
34428
|
+
function* serializeServiceUpdates(servicesUpdates, encode, blake2b) {
|
|
32329
34429
|
for (const { action, serviceId } of servicesUpdates ?? []) {
|
|
32330
34430
|
// new service being created or updated
|
|
32331
34431
|
const codec = serialize.serviceData(serviceId);
|
|
@@ -32333,7 +34433,7 @@ function* serializeServiceUpdates(servicesUpdates, encode) {
|
|
|
32333
34433
|
// additional lookup history update
|
|
32334
34434
|
if (action.kind === UpdateServiceKind.Create && action.lookupHistory !== null) {
|
|
32335
34435
|
const { lookupHistory } = action;
|
|
32336
|
-
const codec2 = serialize.serviceLookupHistory(serviceId, lookupHistory.hash, lookupHistory.length);
|
|
34436
|
+
const codec2 = serialize.serviceLookupHistory(blake2b, serviceId, lookupHistory.hash, lookupHistory.length);
|
|
32337
34437
|
yield [serialize_state_update_StateEntryUpdateAction.Insert, codec2.key, encode(codec2.Codec, lookupHistory.slots)];
|
|
32338
34438
|
}
|
|
32339
34439
|
}
|
|
@@ -32437,8 +34537,8 @@ class state_entries_StateEntries {
|
|
|
32437
34537
|
},
|
|
32438
34538
|
}, (e, v) => stateEntriesSequenceCodec.encode(e, Array.from(v.entries)), (d) => state_entries_StateEntries.fromEntriesUnsafe(stateEntriesSequenceCodec.decode(d)), (s) => stateEntriesSequenceCodec.skip(s));
|
|
32439
34539
|
/** Turn in-memory state into it's serialized form. */
|
|
32440
|
-
static serializeInMemory(spec, state) {
|
|
32441
|
-
return new state_entries_StateEntries(convertInMemoryStateToDictionary(spec, state));
|
|
34540
|
+
static serializeInMemory(spec, blake2b, state) {
|
|
34541
|
+
return new state_entries_StateEntries(convertInMemoryStateToDictionary(spec, blake2b, state));
|
|
32442
34542
|
}
|
|
32443
34543
|
/**
|
|
32444
34544
|
* Wrap a collection of truncated state entries and treat it as state.
|
|
@@ -32487,16 +34587,17 @@ class state_entries_StateEntries {
|
|
|
32487
34587
|
}
|
|
32488
34588
|
}
|
|
32489
34589
|
/** https://graypaper.fluffylabs.dev/#/68eaa1f/391600391600?v=0.6.4 */
|
|
32490
|
-
getRootHash() {
|
|
34590
|
+
getRootHash(blake2b) {
|
|
34591
|
+
const blake2bTrieHasher = hasher_getBlake2bTrieHasher(blake2b);
|
|
32491
34592
|
const leaves = sorted_set_SortedSet.fromArray(trie_leafComparator);
|
|
32492
34593
|
for (const [key, value] of this) {
|
|
32493
|
-
leaves.insert(trie_InMemoryTrie.constructLeaf(
|
|
34594
|
+
leaves.insert(trie_InMemoryTrie.constructLeaf(blake2bTrieHasher, key.asOpaque(), value));
|
|
32494
34595
|
}
|
|
32495
|
-
return trie_InMemoryTrie.computeStateRoot(
|
|
34596
|
+
return trie_InMemoryTrie.computeStateRoot(blake2bTrieHasher, leaves).asOpaque();
|
|
32496
34597
|
}
|
|
32497
34598
|
}
|
|
32498
34599
|
/** https://graypaper.fluffylabs.dev/#/68eaa1f/38a50038a500?v=0.6.4 */
|
|
32499
|
-
function convertInMemoryStateToDictionary(spec, state) {
|
|
34600
|
+
function convertInMemoryStateToDictionary(spec, blake2b, state) {
|
|
32500
34601
|
const serialized = truncated_hash_dictionary_TruncatedHashDictionary.fromEntries([]);
|
|
32501
34602
|
function doSerialize(codec) {
|
|
32502
34603
|
serialized.set(codec.key, encoder_Encoder.encodeObject(codec.Codec, codec.extract(state), spec));
|
|
@@ -32524,18 +34625,18 @@ function convertInMemoryStateToDictionary(spec, state) {
|
|
|
32524
34625
|
serialized.set(key, encoder_Encoder.encodeObject(Codec, service.getInfo()));
|
|
32525
34626
|
// preimages
|
|
32526
34627
|
for (const preimage of service.data.preimages.values()) {
|
|
32527
|
-
const { key, Codec } = serialize_serialize.servicePreimages(serviceId, preimage.hash);
|
|
34628
|
+
const { key, Codec } = serialize_serialize.servicePreimages(blake2b, serviceId, preimage.hash);
|
|
32528
34629
|
serialized.set(key, encoder_Encoder.encodeObject(Codec, preimage.blob));
|
|
32529
34630
|
}
|
|
32530
34631
|
// storage
|
|
32531
34632
|
for (const storage of service.data.storage.values()) {
|
|
32532
|
-
const { key, Codec } = serialize_serialize.serviceStorage(serviceId, storage.key);
|
|
34633
|
+
const { key, Codec } = serialize_serialize.serviceStorage(blake2b, serviceId, storage.key);
|
|
32533
34634
|
serialized.set(key, encoder_Encoder.encodeObject(Codec, storage.value));
|
|
32534
34635
|
}
|
|
32535
34636
|
// lookup history
|
|
32536
34637
|
for (const lookupHistoryList of service.data.lookupHistory.values()) {
|
|
32537
34638
|
for (const lookupHistory of lookupHistoryList) {
|
|
32538
|
-
const { key, Codec } = serialize_serialize.serviceLookupHistory(serviceId, lookupHistory.hash, lookupHistory.length);
|
|
34639
|
+
const { key, Codec } = serialize_serialize.serviceLookupHistory(blake2b, serviceId, lookupHistory.hash, lookupHistory.length);
|
|
32539
34640
|
serialized.set(key, encoder_Encoder.encodeObject(Codec, lookupHistory.slots.slice()));
|
|
32540
34641
|
}
|
|
32541
34642
|
}
|
|
@@ -32546,9 +34647,9 @@ function convertInMemoryStateToDictionary(spec, state) {
|
|
|
32546
34647
|
;// CONCATENATED MODULE: ./packages/jam/state-merkleization/loader.ts
|
|
32547
34648
|
|
|
32548
34649
|
|
|
32549
|
-
function loadState(spec, entries) {
|
|
34650
|
+
function loadState(spec, blake2b, entries) {
|
|
32550
34651
|
const stateEntries = StateEntries.fromEntriesUnsafe(entries);
|
|
32551
|
-
return SerializedState.fromStateEntries(spec, stateEntries);
|
|
34652
|
+
return SerializedState.fromStateEntries(spec, blake2b, stateEntries);
|
|
32552
34653
|
}
|
|
32553
34654
|
|
|
32554
34655
|
;// CONCATENATED MODULE: ./packages/jam/state-merkleization/index.ts
|
|
@@ -32655,7 +34756,8 @@ class leaf_db_LeafDb {
|
|
|
32655
34756
|
}
|
|
32656
34757
|
assertNever(val);
|
|
32657
34758
|
}
|
|
32658
|
-
getStateRoot() {
|
|
34759
|
+
getStateRoot(blake2b) {
|
|
34760
|
+
const blake2bTrieHasher = getBlake2bTrieHasher(blake2b);
|
|
32659
34761
|
return InMemoryTrie.computeStateRoot(blake2bTrieHasher, this.leaves).asOpaque();
|
|
32660
34762
|
}
|
|
32661
34763
|
intoStateEntries() {
|
|
@@ -32837,6 +34939,7 @@ const in_memory_state_codec_inMemoryStateCodec = descriptors_codec.Class(InMemor
|
|
|
32837
34939
|
|
|
32838
34940
|
|
|
32839
34941
|
|
|
34942
|
+
|
|
32840
34943
|
/** A potential error that occured during state update. */
|
|
32841
34944
|
var states_StateUpdateError;
|
|
32842
34945
|
(function (StateUpdateError) {
|
|
@@ -32866,7 +34969,8 @@ class InMemoryStates {
|
|
|
32866
34969
|
}
|
|
32867
34970
|
}
|
|
32868
34971
|
async getStateRoot(state) {
|
|
32869
|
-
|
|
34972
|
+
const blake2b = await Blake2b.createHasher();
|
|
34973
|
+
return StateEntries.serializeInMemory(this.spec, blake2b, state).getRootHash(blake2b);
|
|
32870
34974
|
}
|
|
32871
34975
|
/** Insert a full state into the database. */
|
|
32872
34976
|
async insertState(headerHash, state) {
|
|
@@ -32948,11 +35052,13 @@ const states_logger = Logger.new(import.meta.filename, "db");
|
|
|
32948
35052
|
*/
|
|
32949
35053
|
class LmdbStates {
|
|
32950
35054
|
spec;
|
|
35055
|
+
blake2b;
|
|
32951
35056
|
root;
|
|
32952
35057
|
states;
|
|
32953
35058
|
values;
|
|
32954
|
-
constructor(spec, root) {
|
|
35059
|
+
constructor(spec, blake2b, root) {
|
|
32955
35060
|
this.spec = spec;
|
|
35061
|
+
this.blake2b = blake2b;
|
|
32956
35062
|
this.root = root;
|
|
32957
35063
|
this.states = this.root.subDb("states");
|
|
32958
35064
|
this.values = this.root.subDb("values");
|
|
@@ -32966,6 +35072,7 @@ class LmdbStates {
|
|
|
32966
35072
|
return await this.updateAndCommit(headerHash, SortedSet.fromArray(leafComparator, []), Array.from(serializedState, (x) => [StateEntryUpdateAction.Insert, x[0], x[1]]));
|
|
32967
35073
|
}
|
|
32968
35074
|
async updateAndCommit(headerHash, leafs, data) {
|
|
35075
|
+
const blake2bTrieHasher = getBlake2bTrieHasher(this.blake2b);
|
|
32969
35076
|
// We will collect all values that don't fit directly into leaf nodes.
|
|
32970
35077
|
const values = [];
|
|
32971
35078
|
for (const [action, key, value] of data) {
|
|
@@ -33007,12 +35114,12 @@ class LmdbStates {
|
|
|
33007
35114
|
async updateAndSetState(headerHash, state, update) {
|
|
33008
35115
|
// TODO [ToDr] We should probably detect a conflicting state (i.e. two services
|
|
33009
35116
|
// updated at once, etc), for now we're just ignoring it.
|
|
33010
|
-
const updatedValues = serializeStateUpdate(this.spec, update);
|
|
35117
|
+
const updatedValues = serializeStateUpdate(this.spec, this.blake2b, update);
|
|
33011
35118
|
// and finally we insert new values and store leaves in the DB.
|
|
33012
35119
|
return await this.updateAndCommit(headerHash, state.backend.leaves, updatedValues);
|
|
33013
35120
|
}
|
|
33014
35121
|
async getStateRoot(state) {
|
|
33015
|
-
return state.backend.getStateRoot();
|
|
35122
|
+
return state.backend.getStateRoot(this.blake2b);
|
|
33016
35123
|
}
|
|
33017
35124
|
getState(root) {
|
|
33018
35125
|
const leafNodes = this.states.get(root.raw);
|
|
@@ -33033,7 +35140,7 @@ class LmdbStates {
|
|
|
33033
35140
|
if (leafDbResult.isError) {
|
|
33034
35141
|
throw new Error(`Inconsistent DB. Invalid leaf nodes for ${root}: ${resultToString(leafDbResult)}`);
|
|
33035
35142
|
}
|
|
33036
|
-
return SerializedState.new(this.spec, leafDbResult.ok);
|
|
35143
|
+
return SerializedState.new(this.spec, this.blake2b, leafDbResult.ok);
|
|
33037
35144
|
}
|
|
33038
35145
|
}
|
|
33039
35146
|
|
|
@@ -35983,14 +38090,15 @@ const sync_logger = Logger.new(import.meta.filename, "net:sync");
|
|
|
35983
38090
|
const MAX_BLOCK_SEQUENCE = 128;
|
|
35984
38091
|
class SyncTask {
|
|
35985
38092
|
spec;
|
|
38093
|
+
blake2b;
|
|
35986
38094
|
streamManager;
|
|
35987
38095
|
connections;
|
|
35988
38096
|
blocks;
|
|
35989
38097
|
onNewBlocks;
|
|
35990
|
-
static start(spec, streamManager, connections, blocks,
|
|
38098
|
+
static start(spec, blake2b, streamManager, connections, blocks,
|
|
35991
38099
|
// TODO [ToDr] Use listener instead of a callback maybe?
|
|
35992
38100
|
onNewBlocks) {
|
|
35993
|
-
const syncTask = new SyncTask(spec, streamManager, connections, blocks, onNewBlocks);
|
|
38101
|
+
const syncTask = new SyncTask(spec, blake2b, streamManager, connections, blocks, onNewBlocks);
|
|
35994
38102
|
const getPeerForStream = (streamId) => {
|
|
35995
38103
|
// NOTE [ToDr] Needing to query stream manager for a peer might be a bit
|
|
35996
38104
|
// wasteful, since we probably know the peer when we dispatch the
|
|
@@ -36026,8 +38134,9 @@ class SyncTask {
|
|
|
36026
38134
|
}
|
|
36027
38135
|
// Other's best header hash with timeslot
|
|
36028
38136
|
othersBest;
|
|
36029
|
-
constructor(spec, streamManager, connections, blocks, onNewBlocks) {
|
|
38137
|
+
constructor(spec, blake2b, streamManager, connections, blocks, onNewBlocks) {
|
|
36030
38138
|
this.spec = spec;
|
|
38139
|
+
this.blake2b = blake2b;
|
|
36031
38140
|
this.streamManager = streamManager;
|
|
36032
38141
|
this.connections = connections;
|
|
36033
38142
|
this.blocks = blocks;
|
|
@@ -36064,7 +38173,7 @@ class SyncTask {
|
|
|
36064
38173
|
}
|
|
36065
38174
|
onUp0Annoucement(peer, announcement) {
|
|
36066
38175
|
const { hash, slot } = announcement.final;
|
|
36067
|
-
const bestHeader = hashHeader(announcement.header, this.spec);
|
|
38176
|
+
const bestHeader = hashHeader(this.blake2b, announcement.header, this.spec);
|
|
36068
38177
|
sync_logger.info `[${peer.id}] --> Received new header #${announcement.header.timeSlotIndex}: ${bestHeader.hash}`;
|
|
36069
38178
|
// NOTE [ToDr] Instead of having `Connections` store aux data perhaps
|
|
36070
38179
|
// we should maintain that directly? However that would require
|
|
@@ -36244,9 +38353,9 @@ var SyncResult;
|
|
|
36244
38353
|
/** Sent request to some peers. */
|
|
36245
38354
|
SyncResult[SyncResult["BlocksRequested"] = 3] = "BlocksRequested";
|
|
36246
38355
|
})(SyncResult || (SyncResult = {}));
|
|
36247
|
-
function hashHeader(header, spec) {
|
|
38356
|
+
function hashHeader(blake2b, header, spec) {
|
|
36248
38357
|
const encoded = encoder_Encoder.encodeObject(header_Header.Codec, header, spec);
|
|
36249
|
-
return new WithHash(hashBytes(encoded).asOpaque(), header);
|
|
38358
|
+
return new WithHash(blake2b.hashBytes(encoded).asOpaque(), header);
|
|
36250
38359
|
}
|
|
36251
38360
|
|
|
36252
38361
|
;// CONCATENATED MODULE: ./packages/jam/jamnp-s/network.ts
|
|
@@ -36258,8 +38367,10 @@ function hashHeader(header, spec) {
|
|
|
36258
38367
|
|
|
36259
38368
|
|
|
36260
38369
|
|
|
38370
|
+
|
|
36261
38371
|
const network_logger = Logger.new(import.meta.filename, "jamnps");
|
|
36262
38372
|
async function setup(bind, genesisHash, key, bootnodes, spec, blocks, onNewBlocks) {
|
|
38373
|
+
const blake2b = await blake2b_Blake2b.createHasher();
|
|
36263
38374
|
const genesisFirstBytes = genesisHash.toString().substring(2, 10);
|
|
36264
38375
|
const network = await Quic.setup({
|
|
36265
38376
|
host: bind.host,
|
|
@@ -36271,7 +38382,7 @@ async function setup(bind, genesisHash, key, bootnodes, spec, blocks, onNewBlock
|
|
|
36271
38382
|
connections.addPersistentRetry(bootnodes);
|
|
36272
38383
|
const streamManager = new StreamManager();
|
|
36273
38384
|
// start the networking tasks
|
|
36274
|
-
const syncTask = SyncTask.start(spec, streamManager, connections, blocks, onNewBlocks);
|
|
38385
|
+
const syncTask = SyncTask.start(spec, blake2b, streamManager, connections, blocks, onNewBlocks);
|
|
36275
38386
|
setImmediate(async () => {
|
|
36276
38387
|
while (network.isRunning) {
|
|
36277
38388
|
await (0,promises_namespaceObject.setTimeout)(3000);
|