@typeberry/jam 0.1.3-135961b → 0.1.3-6759174
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bootstrap-generator.mjs +334 -5242
- package/bootstrap-generator.mjs.map +1 -1
- package/bootstrap-importer.mjs +6587 -7168
- package/bootstrap-importer.mjs.map +1 -1
- package/bootstrap-network.mjs +2924 -849
- package/bootstrap-network.mjs.map +1 -1
- package/index.js +9449 -10011
- 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
|
-
}
|
|
15439
|
+
/***/ 1681:
|
|
15440
|
+
/***/ (function(__unused_webpack_module, exports) {
|
|
15554
15441
|
|
|
15555
|
-
|
|
15556
|
-
|
|
15557
|
-
|
|
15558
|
-
|
|
15559
|
-
|
|
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
|
-
}
|
|
15442
|
+
/*!
|
|
15443
|
+
* hash-wasm (https://www.npmjs.com/package/hash-wasm)
|
|
15444
|
+
* (c) Dani Biro
|
|
15445
|
+
* @license MIT
|
|
15446
|
+
*/
|
|
15590
15447
|
|
|
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
|
+
};
|
|
15591
15461
|
|
|
15592
|
-
|
|
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
|
+
};
|
|
15593
15493
|
|
|
15594
|
-
|
|
15595
|
-
|
|
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
|
+
}
|
|
15516
|
+
}
|
|
15596
15517
|
|
|
15597
|
-
var
|
|
15598
|
-
|
|
15599
|
-
|
|
15600
|
-
|
|
15601
|
-
|
|
15602
|
-
|
|
15603
|
-
|
|
15604
|
-
|
|
15605
|
-
|
|
15606
|
-
|
|
15607
|
-
|
|
15608
|
-
|
|
15609
|
-
|
|
15610
|
-
|
|
15611
|
-
|
|
15612
|
-
|
|
15613
|
-
|
|
15614
|
-
|
|
15615
|
-
|
|
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
|
+
}
|
|
15616
15666
|
|
|
15617
|
-
|
|
15618
|
-
|
|
15619
|
-
|
|
15620
|
-
module2.exports = __toBinary("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");
|
|
15621
|
-
|
|
15622
|
-
|
|
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
|
+
}
|
|
15623
15849
|
|
|
15624
|
-
|
|
15625
|
-
|
|
15626
|
-
|
|
15627
|
-
|
|
15628
|
-
|
|
15629
|
-
|
|
15630
|
-
};
|
|
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
|
+
}
|
|
15631
15858
|
|
|
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
|
+
}
|
|
15632
15911
|
|
|
15633
|
-
|
|
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
|
+
};
|
|
15634
15920
|
|
|
15635
|
-
|
|
15636
|
-
|
|
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
|
+
};
|
|
15637
15929
|
|
|
15638
|
-
|
|
15639
|
-
|
|
15640
|
-
|
|
15641
|
-
|
|
15642
|
-
|
|
15643
|
-
|
|
15644
|
-
|
|
15645
|
-
|
|
15646
|
-
|
|
15647
|
-
|
|
15648
|
-
|
|
15649
|
-
|
|
15650
|
-
|
|
15651
|
-
|
|
15652
|
-
|
|
15653
|
-
|
|
15654
|
-
|
|
15655
|
-
|
|
15656
|
-
|
|
15657
|
-
|
|
15658
|
-
|
|
15659
|
-
|
|
15660
|
-
|
|
15661
|
-
|
|
15662
|
-
|
|
15663
|
-
|
|
15664
|
-
|
|
15665
|
-
|
|
15666
|
-
|
|
15667
|
-
|
|
15668
|
-
|
|
15669
|
-
|
|
15670
|
-
|
|
15671
|
-
|
|
15672
|
-
|
|
15673
|
-
|
|
15674
|
-
|
|
15675
|
-
|
|
15676
|
-
|
|
15677
|
-
|
|
15678
|
-
|
|
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
|
+
});
|
|
15679
16035
|
}
|
|
15680
|
-
}
|
|
15681
|
-
|
|
15682
|
-
if (!freeList.length) {
|
|
15683
|
-
freeList.push(head)
|
|
15684
|
-
head += 216
|
|
15685
|
-
}
|
|
15686
|
-
|
|
15687
|
-
this.digestLength = digestLength
|
|
15688
|
-
this.finalized = false
|
|
15689
|
-
this.pointer = freeList.pop()
|
|
15690
|
-
this._memory = new Uint8Array(wasm.memory.buffer)
|
|
15691
16036
|
|
|
15692
|
-
|
|
15693
|
-
|
|
15694
|
-
|
|
15695
|
-
|
|
15696
|
-
|
|
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
|
+
}
|
|
15697
16273
|
|
|
15698
|
-
|
|
15699
|
-
|
|
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
|
+
};
|
|
15700
16282
|
|
|
15701
|
-
|
|
15702
|
-
|
|
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
|
+
}
|
|
15703
16389
|
|
|
15704
|
-
|
|
15705
|
-
this.update(key)
|
|
15706
|
-
|
|
15707
|
-
|
|
15708
|
-
|
|
15709
|
-
|
|
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
|
+
};
|
|
15710
16398
|
|
|
15711
|
-
|
|
15712
|
-
|
|
15713
|
-
|
|
15714
|
-
|
|
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
|
+
}
|
|
15715
16504
|
|
|
15716
|
-
|
|
15717
|
-
|
|
15718
|
-
|
|
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
|
+
};
|
|
15719
16513
|
|
|
15720
|
-
|
|
15721
|
-
|
|
15722
|
-
|
|
15723
|
-
|
|
15724
|
-
|
|
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
|
+
}
|
|
15725
16578
|
|
|
15726
|
-
|
|
15727
|
-
|
|
15728
|
-
|
|
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
|
+
};
|
|
15729
16587
|
|
|
15730
|
-
|
|
15731
|
-
|
|
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
|
+
}
|
|
15732
16675
|
|
|
15733
|
-
|
|
15734
|
-
|
|
15735
|
-
|
|
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
|
+
};
|
|
15736
16684
|
|
|
15737
|
-
|
|
15738
|
-
|
|
15739
|
-
|
|
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
|
+
}
|
|
15740
16735
|
|
|
15741
|
-
|
|
15742
|
-
|
|
15743
|
-
|
|
15744
|
-
|
|
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
|
+
};
|
|
15745
16744
|
|
|
15746
|
-
|
|
15747
|
-
|
|
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
|
+
}
|
|
15748
16795
|
|
|
15749
|
-
|
|
15750
|
-
|
|
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
|
+
};
|
|
15751
16804
|
|
|
15752
|
-
|
|
15753
|
-
|
|
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
|
+
}
|
|
15754
16855
|
|
|
15755
|
-
|
|
15756
|
-
|
|
15757
|
-
|
|
15758
|
-
|
|
15759
|
-
|
|
16856
|
+
var name$b = "sha3";
|
|
16857
|
+
var data$b = "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";
|
|
16858
|
+
var hash$b = "fb24e536";
|
|
16859
|
+
var wasmJson$b = {
|
|
16860
|
+
name: name$b,
|
|
16861
|
+
data: data$b,
|
|
16862
|
+
hash: hash$b
|
|
16863
|
+
};
|
|
15760
16864
|
|
|
15761
|
-
|
|
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
|
+
}
|
|
15762
16931
|
|
|
15763
|
-
|
|
15764
|
-
|
|
15765
|
-
|
|
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
|
+
}
|
|
15766
16998
|
|
|
15767
|
-
|
|
15768
|
-
this._memory.set(ph, this.pointer);
|
|
15769
|
-
|
|
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
|
+
};
|
|
15770
17007
|
|
|
15771
|
-
|
|
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
|
+
}
|
|
15772
17058
|
|
|
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
|
+
}
|
|
15773
17109
|
|
|
15774
|
-
|
|
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
|
+
};
|
|
15775
17118
|
|
|
15776
|
-
|
|
15777
|
-
|
|
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
|
+
}
|
|
15778
17169
|
|
|
15779
|
-
|
|
15780
|
-
|
|
15781
|
-
|
|
15782
|
-
|
|
15783
|
-
|
|
15784
|
-
|
|
15785
|
-
|
|
15786
|
-
|
|
15787
|
-
|
|
15788
|
-
|
|
15789
|
-
|
|
15790
|
-
|
|
15791
|
-
|
|
15792
|
-
|
|
15793
|
-
|
|
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
|
+
}
|
|
15794
17220
|
|
|
15795
|
-
|
|
15796
|
-
|
|
15797
|
-
|
|
15798
|
-
|
|
15799
|
-
|
|
15800
|
-
|
|
15801
|
-
|
|
15802
|
-
|
|
15803
|
-
var o1 = v[a + 1] + b1
|
|
15804
|
-
if (o0 >= 0x100000000) {
|
|
15805
|
-
o1++
|
|
15806
|
-
}
|
|
15807
|
-
v[a] = o0
|
|
15808
|
-
v[a + 1] = o1
|
|
15809
|
-
}
|
|
15810
|
-
|
|
15811
|
-
// Little-endian byte access
|
|
15812
|
-
function B2B_GET32 (arr, i) {
|
|
15813
|
-
return (arr[i] ^
|
|
15814
|
-
(arr[i + 1] << 8) ^
|
|
15815
|
-
(arr[i + 2] << 16) ^
|
|
15816
|
-
(arr[i + 3] << 24))
|
|
15817
|
-
}
|
|
15818
|
-
|
|
15819
|
-
// G Mixing function
|
|
15820
|
-
// The ROTRs are inlined for speed
|
|
15821
|
-
function B2B_G (a, b, c, d, ix, iy) {
|
|
15822
|
-
var x0 = m[ix]
|
|
15823
|
-
var x1 = m[ix + 1]
|
|
15824
|
-
var y0 = m[iy]
|
|
15825
|
-
var y1 = m[iy + 1]
|
|
15826
|
-
|
|
15827
|
-
ADD64AA(v, a, b) // v[a,a+1] += v[b,b+1] ... in JS we must store a uint64 as two uint32s
|
|
15828
|
-
ADD64AC(v, a, x0, x1) // v[a, a+1] += x ... x0 is the low 32 bits of x, x1 is the high 32 bits
|
|
15829
|
-
|
|
15830
|
-
// v[d,d+1] = (v[d,d+1] xor v[a,a+1]) rotated to the right by 32 bits
|
|
15831
|
-
var xor0 = v[d] ^ v[a]
|
|
15832
|
-
var xor1 = v[d + 1] ^ v[a + 1]
|
|
15833
|
-
v[d] = xor1
|
|
15834
|
-
v[d + 1] = xor0
|
|
15835
|
-
|
|
15836
|
-
ADD64AA(v, c, d)
|
|
15837
|
-
|
|
15838
|
-
// v[b,b+1] = (v[b,b+1] xor v[c,c+1]) rotated right by 24 bits
|
|
15839
|
-
xor0 = v[b] ^ v[c]
|
|
15840
|
-
xor1 = v[b + 1] ^ v[c + 1]
|
|
15841
|
-
v[b] = (xor0 >>> 24) ^ (xor1 << 8)
|
|
15842
|
-
v[b + 1] = (xor1 >>> 24) ^ (xor0 << 8)
|
|
15843
|
-
|
|
15844
|
-
ADD64AA(v, a, b)
|
|
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
|
-
}
|
|
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
|
+
};
|
|
15902
17229
|
|
|
15903
|
-
|
|
15904
|
-
|
|
15905
|
-
|
|
15906
|
-
|
|
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
|
+
}
|
|
15907
17295
|
|
|
15908
|
-
|
|
15909
|
-
|
|
15910
|
-
|
|
15911
|
-
|
|
15912
|
-
|
|
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
|
+
};
|
|
15913
17304
|
|
|
15914
|
-
|
|
15915
|
-
|
|
15916
|
-
|
|
15917
|
-
|
|
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
|
+
}
|
|
15918
17396
|
|
|
15919
|
-
|
|
15920
|
-
for (i = 0; i < 12; i++) {
|
|
15921
|
-
|
|
15922
|
-
|
|
15923
|
-
|
|
15924
|
-
|
|
15925
|
-
|
|
15926
|
-
|
|
15927
|
-
B2B_G(4, 14, 16, 26, SIGMA82[i * 16 + 12], SIGMA82[i * 16 + 13])
|
|
15928
|
-
B2B_G(6, 8, 18, 28, SIGMA82[i * 16 + 14], SIGMA82[i * 16 + 15])
|
|
15929
|
-
}
|
|
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
|
+
};
|
|
15930
17405
|
|
|
15931
|
-
|
|
15932
|
-
|
|
15933
|
-
|
|
15934
|
-
|
|
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
|
+
}
|
|
15935
17497
|
|
|
15936
|
-
|
|
15937
|
-
var parameter_block = new Uint8Array([
|
|
15938
|
-
|
|
15939
|
-
|
|
15940
|
-
|
|
15941
|
-
|
|
15942
|
-
|
|
15943
|
-
|
|
15944
|
-
0, 0, 0, 0, // 24: rfu
|
|
15945
|
-
0, 0, 0, 0, // 28: rfu
|
|
15946
|
-
0, 0, 0, 0, // 32: salt
|
|
15947
|
-
0, 0, 0, 0, // 36: salt
|
|
15948
|
-
0, 0, 0, 0, // 40: salt
|
|
15949
|
-
0, 0, 0, 0, // 44: salt
|
|
15950
|
-
0, 0, 0, 0, // 48: personal
|
|
15951
|
-
0, 0, 0, 0, // 52: personal
|
|
15952
|
-
0, 0, 0, 0, // 56: personal
|
|
15953
|
-
0, 0, 0, 0 // 60: personal
|
|
15954
|
-
])
|
|
15955
|
-
|
|
15956
|
-
// Creates a BLAKE2b hashing context
|
|
15957
|
-
// Requires an output length between 1 and 64 bytes
|
|
15958
|
-
// Takes an optional Uint8Array key
|
|
15959
|
-
function Blake2b (outlen, key, salt, personal) {
|
|
15960
|
-
// zero out parameter_block before usage
|
|
15961
|
-
parameter_block.fill(0)
|
|
15962
|
-
// state, 'param block'
|
|
15963
|
-
|
|
15964
|
-
this.b = new Uint8Array(128)
|
|
15965
|
-
this.h = new Uint32Array(16)
|
|
15966
|
-
this.t = 0 // input count
|
|
15967
|
-
this.c = 0 // pointer within buffer
|
|
15968
|
-
this.outlen = outlen // output length in bytes
|
|
15969
|
-
|
|
15970
|
-
parameter_block[0] = outlen
|
|
15971
|
-
if (key) parameter_block[1] = key.length
|
|
15972
|
-
parameter_block[2] = 1 // fanout
|
|
15973
|
-
parameter_block[3] = 1 // depth
|
|
15974
|
-
|
|
15975
|
-
if (salt) parameter_block.set(salt, 32)
|
|
15976
|
-
if (personal) parameter_block.set(personal, 48)
|
|
15977
|
-
|
|
15978
|
-
// initialize hash state
|
|
15979
|
-
for (var i = 0; i < 16; i++) {
|
|
15980
|
-
this.h[i] = BLAKE2B_IV32[i] ^ B2B_GET32(parameter_block, i * 4)
|
|
15981
|
-
}
|
|
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/zOAHw3A5CLAUEAQoihl9u445SXo38gAH03A4iLAUEAIABCvNDI2pvysIBLfDcDgIsBQQBC4OvAtJ7QjpPMACAAfTcD+IoBQQAgAEK4kZii9/6Qko5/fDcD8IoBQQBCgrXB7sf5v7khIAB9NwPoigFBACAAQsvzmffEmfDy+AB8NwPgigFBAELygJGl+vbssx8gAH03A9iKAUEAIABC3qm3y76Q5MtbfDcD0IoBQQBC/IKE5PK+yNYcIAB9NwPIigFBACAAQrj9s8uzhOmlvn98NwPAigELQQBCADcDkI4BQQBCADcDiI4BQQBCADcDgI4BQQBCvdzKlQw3A4CKAUEAQoeVr6+Ytt6bnn83A4iKAUEAQs/W077Sx6vZQjcDkIoBQQBC+fPd8Zn2masWNwOYigFBAELj3MqV/M7y9YV/NwOgigFBAEL3lK+vCDcDqIoBQQBCxc/ZsvHluuonNwOwigFBAEKx893xCTcDuIoBQQAgADcDoI4BQQAgATYCsI4BQQBCkICAgIAQNwOYjgEL9AkBCH9BAEEAKQOQjgEgAK18NwOQjgECQAJAAkBBACgCgI4BIgEgAGoiAkGAAksNACABQYCMAWohA0GACiEEAkAgAEEITw0AIAAhAQwCCwJAAkAgAEF4aiIFQQN2QQFqQQdxIgYNAEGACiEEIAAhAQwBCyAGQQN0IQFBgAohBANAIAMgBCkDADcDACADQQhqIQMgBEEIaiEEIAZBf2oiBg0ACyAAIAFrIQELIAVBOEkNAQNAIAMgBCkDADcDACADQQhqIARBCGopAwA3AwAgA0EQaiAEQRBqKQMANwMAIANBGGogBEEYaikDADcDACADQSBqIARBIGopAwA3AwAgA0EoaiAEQShqKQMANwMAIANBMGogBEEwaikDADcDACADQThqIARBOGopAwA3AwAgA0HAAGohAyAEQcAAaiEEIAFBQGoiAUEHSw0ADAILC0GACiEEIABBgApqIQVBACgCsI4BIgNBwIoBIAMbIQYCQCABRQ0AIAFBgIwBaiEDQYAKIQQCQAJAQYACIAFrIgdBCE8NACAHIQAMAQsCQAJAQfgBIAFrIghBA3ZBAWpBB3EiAg0AQYAKIQQgByEADAELQYAKIQQgAkEDdCIAIQIDQCADIAQpAwA3AwAgA0EIaiEDIARBCGohBCACQXhqIgINAAtBgAIgASAAamshAAsgCEE4SQ0AA0AgAyAEKQMANwMAIANBCGogBEEIaikDADcDACADQRBqIARBEGopAwA3AwAgA0EYaiAEQRhqKQMANwMAIANBIGogBEEgaikDADcDACADQShqIARBKGopAwA3AwAgA0EwaiAEQTBqKQMANwMAIANBOGogBEE4aikDADcDACADQcAAaiEDIARBwABqIQQgAEFAaiIAQQdLDQALCwJAIABFDQACQAJAIABBB3EiAg0AIAAhAQwBCyAAQXhxIQEDQCADIAQtAAA6AAAgA0EBaiEDIARBAWohBCACQX9qIgINAAsLIABBCEkNAANAIAMgBCkAADcAACADQQhqIQMgBEEIaiEEIAFBeGoiAQ0ACwtBgIoBQYiOAUEAKAKYjgFBgIwBQQQgBkEAKAKcjgEQAkEAQQA2AoCOASAHQYAKaiEECwJAIARBgAJqIAVPDQAgBUGAfmohAgNAQYCKAUGIjgFBACgCmI4BIAQiA0EEIAZBACgCnI4BEAIgA0GAAmoiBCACSQ0AC0EAIAMpA8ABNwPAjQFBACADKQPIATcDyI0BQQAgAykD0AE3A9CNAUEAIAMpA9gBNwPYjQFBACADKQPgATcD4I0BQQAgAykD6AE3A+iNAUEAIAMpA/ABNwPwjQFBACADKQP4ATcD+I0BC0GAjAEhAwJAAkAgBSAEayICQQhPDQAgAiEGDAELQYCMASEDIAIhBgNAIAMgBCkDADcDACADQQhqIQMgBEEIaiEEIAZBeGoiBkEHSw0ACwsgBkUNAQNAIAMgBC0AADoAACADQQFqIQMgBEEBaiEEIAZBf2oiBg0ADAILCyABRQ0AAkACQCABQQdxIgYNACABIQIMAQsgAUF4cSECA0AgAyAELQAAOgAAIANBAWohAyAEQQFqIQQgBkF/aiIGDQALCwJAIAFBCEkNAANAIAMgBCkAADcAACADQQhqIQMgBEEIaiEEIAJBeGoiAg0ACwtBACgCgI4BIABqIQILQQAgAjYCgI4BC90QBgR/A34BfwN+BX8CfiMAIgAhASAAQYABa0FAcSICJABBACgCsI4BIgBBwIoBIAAbIQMCQAJAQQApA5COASIEQvEBVA0AIAJBACkDgIoBNwMAIAJBACkDiIoBNwMIIAJBACkDkIoBNwMQIAJBACkDmIoBNwMYIAJBACkDoIoBNwMgIAJBACkDqIoBNwMoIAJBACkDsIoBIgU3AzAgAkEAKQO4igEiBjcDOAJAAkBBACgCgI4BIgdBwABJDQAgAkEAKAKIjgE2AkAgAiACQcAAakEAKAKYjgFBgIwBIAdBf2pBBnYgA0EAKAKcjgEiABACIAIgAikDCCAHQcCLAWopAwAiBXwgAyAAaiIAKQMBIAdByIsBaikDACIGhSIIQiCIIAhC/////w+Dfnw3AwggAiACKQMYIAdB0IsBaikDACIIfCAAKQMRIAdB2IsBaikDACIJhSIKQiCIIApC/////w+Dfnw3AxggAiAGIAUgAEF5aikDAIUiBUIgiCAFQv////8Pg34gAikDAHx8NwMAIAIgCSAIIAApAwmFIgVCIIggBUL/////D4N+IAIpAxB8fDcDECAAKQMZIQUgAikDICEGIAIgAikDKCAHQeCLAWopAwAiCHwgACkDISAHQeiLAWopAwAiCYUiCkIgiCAKQv////8Pg358NwMoIAIgCSAGIAUgCIUiBUIgiCAFQv////8Pg358fDcDICACIAIpAzggB0HwiwFqKQMAIgV8IAApAzEgB0H4iwFqKQMAIgaFIghCIIggCEL/////D4N+fDcDOCACIAYgBSAAKQMphSIFQiCIIAVC/////w+DfiACKQMwfHw3AzAMAQsgB0HAjQFqIQtBwAAgB2shDCACQcAAaiEAAkACQAJAIAdBOE0NACAMIQ0MAQsCQAJAQTggB2tBA3ZBAWpBB3EiDQ0AIAJBwABqIQAgDCENDAELIAJBwABqIQAgDUEDdCIOIQ0DQCAAIAspAwA3AwAgAEEIaiEAIAtBCGohCyANQXhqIg0NAAtBwAAgByAOamshDQsCQCAHDQADQCAAIAspAwA3AwAgAEEIaiALQQhqKQMANwMAIABBEGogC0EQaikDADcDACAAQRhqIAtBGGopAwA3AwAgAEEgaiALQSBqKQMANwMAIABBKGogC0EoaikDADcDACAAQTBqIAtBMGopAwA3AwAgAEE4aiALQThqKQMANwMAIABBwABqIQAgC0HAAGohCyANQUBqIg1BB0sNAAsLIA1FDQELIA1Bf2ohDwJAIA1BB3EiDkUNACANQXhxIQ0DQCAAIAstAAA6AAAgAEEBaiEAIAtBAWohCyAOQX9qIg4NAAsLIA9BB0kNAANAIAAgCykAADcAACAAQQhqIQAgC0EIaiELIA1BeGoiDQ0ACwsgAkHAAGogDGohC0GAjAEhAAJAAkACQCAHQQhJDQACQCAHQThqQQN2QQFqQQdxIg0NAAwCCyANQQN0IQ5BgIwBIQADQCALIAApAwA3AwAgC0EIaiELIABBCGohACANQX9qIg0NAAsgByAOayEHCyAHRQ0BAkACQCAHQQdxIg4NACAHIQ0MAQsgB0F4cSENA0AgCyAALQAAOgAAIAtBAWohCyAAQQFqIQAgDkF/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
|
+
};
|
|
15982
17506
|
|
|
15983
|
-
|
|
15984
|
-
|
|
15985
|
-
|
|
15986
|
-
|
|
15987
|
-
|
|
15988
|
-
|
|
15989
|
-
}
|
|
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
|
+
});
|
|
17597
|
+
}
|
|
15990
17598
|
|
|
15991
|
-
|
|
15992
|
-
|
|
15993
|
-
|
|
15994
|
-
|
|
15995
|
-
|
|
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
|
+
};
|
|
15996
17607
|
|
|
15997
|
-
|
|
15998
|
-
|
|
15999
|
-
|
|
16000
|
-
|
|
16001
|
-
|
|
16002
|
-
|
|
16003
|
-
|
|
16004
|
-
|
|
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
|
+
}
|
|
16005
17658
|
|
|
16006
|
-
|
|
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
|
+
}
|
|
16007
17791
|
|
|
16008
|
-
|
|
16009
|
-
|
|
16010
|
-
|
|
16011
|
-
|
|
16012
|
-
|
|
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
|
+
};
|
|
16013
17800
|
|
|
16014
|
-
|
|
16015
|
-
|
|
16016
|
-
|
|
16017
|
-
|
|
16018
|
-
|
|
16019
|
-
|
|
16020
|
-
|
|
16021
|
-
|
|
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
|
+
});
|
|
16022
17876
|
}
|
|
16023
|
-
ctx.b[ctx.c++] = input[i]
|
|
16024
|
-
}
|
|
16025
|
-
}
|
|
16026
|
-
|
|
16027
|
-
// Completes a BLAKE2b streaming hash
|
|
16028
|
-
// Returns a Uint8Array containing the message digest
|
|
16029
|
-
function blake2bFinal (ctx, out) {
|
|
16030
|
-
ctx.t += ctx.c // mark last block offset
|
|
16031
|
-
|
|
16032
|
-
while (ctx.c < 128) { // fill up with zeros
|
|
16033
|
-
ctx.b[ctx.c++] = 0
|
|
16034
|
-
}
|
|
16035
|
-
blake2bCompress(ctx, true) // final block flag = 1
|
|
16036
|
-
|
|
16037
|
-
for (var i = 0; i < ctx.outlen; i++) {
|
|
16038
|
-
out[i] = ctx.h[i >> 2] >> (8 * (i & 3))
|
|
16039
|
-
}
|
|
16040
|
-
return out
|
|
16041
|
-
}
|
|
16042
|
-
|
|
16043
|
-
function hexSlice (buf) {
|
|
16044
|
-
var str = ''
|
|
16045
|
-
for (var i = 0; i < buf.length; i++) str += toHex(buf[i])
|
|
16046
|
-
return str
|
|
16047
|
-
}
|
|
16048
|
-
|
|
16049
|
-
function toHex (n) {
|
|
16050
|
-
if (n < 16) return '0' + n.toString(16)
|
|
16051
|
-
return n.toString(16)
|
|
16052
|
-
}
|
|
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();
|
|
25753
27860
|
}
|
|
25754
|
-
|
|
27861
|
+
const hasher = this.hasher.init();
|
|
27862
|
+
for (const v of r) {
|
|
27863
|
+
hasher.update(v instanceof bytes_BytesBlob ? v.raw : v);
|
|
27864
|
+
}
|
|
27865
|
+
return bytes_Bytes.fromBlob(hasher.digest("binary"), hash_HASH_SIZE).asOpaque();
|
|
25755
27866
|
}
|
|
25756
|
-
|
|
25757
|
-
|
|
25758
|
-
|
|
25759
|
-
|
|
25760
|
-
|
|
25761
|
-
|
|
25762
|
-
;// CONCATENATED MODULE: ./packages/core/hash/blake2b.ts
|
|
25763
|
-
|
|
25764
|
-
// TODO [ToDr] (#212) compare with blake2b from hash-wasm?
|
|
25765
|
-
|
|
25766
|
-
|
|
25767
|
-
|
|
25768
|
-
/**
|
|
25769
|
-
* Hash given collection of blobs.
|
|
25770
|
-
*
|
|
25771
|
-
* If empty array is given a zero-hash is returned.
|
|
25772
|
-
*/
|
|
25773
|
-
function blake2b_hashBlobs(r, allocator = defaultAllocator) {
|
|
25774
|
-
const out = allocator.emptyHash();
|
|
25775
|
-
if (r.length === 0) {
|
|
25776
|
-
return out.asOpaque();
|
|
27867
|
+
/** Hash given blob of bytes. */
|
|
27868
|
+
hashBytes(blob) {
|
|
27869
|
+
const hasher = this.hasher.init();
|
|
27870
|
+
const bytes = blob instanceof bytes_BytesBlob ? blob.raw : blob;
|
|
27871
|
+
hasher.update(bytes);
|
|
27872
|
+
return bytes_Bytes.fromBlob(hasher.digest("binary"), hash_HASH_SIZE).asOpaque();
|
|
25777
27873
|
}
|
|
25778
|
-
|
|
25779
|
-
|
|
25780
|
-
|
|
27874
|
+
/** Convert given string into bytes and hash it. */
|
|
27875
|
+
hashString(str) {
|
|
27876
|
+
return this.hashBytes(bytes_BytesBlob.blobFromString(str));
|
|
25781
27877
|
}
|
|
25782
|
-
hasher?.digest(out.raw);
|
|
25783
|
-
return out.asOpaque();
|
|
25784
|
-
}
|
|
25785
|
-
/** Hash given blob of bytes. */
|
|
25786
|
-
function hashBytes(blob, allocator = defaultAllocator) {
|
|
25787
|
-
const hasher = blake2b_default()(hash_HASH_SIZE);
|
|
25788
|
-
const bytes = blob instanceof bytes_BytesBlob ? blob.raw : blob;
|
|
25789
|
-
hasher?.update(bytes);
|
|
25790
|
-
const out = allocator.emptyHash();
|
|
25791
|
-
hasher?.digest(out.raw);
|
|
25792
|
-
return out;
|
|
25793
|
-
}
|
|
25794
|
-
/** Convert given string into bytes and hash it. */
|
|
25795
|
-
function hashString(str, allocator = defaultAllocator) {
|
|
25796
|
-
return hashBytes(bytes_BytesBlob.blobFromString(str), allocator);
|
|
25797
27878
|
}
|
|
25798
27879
|
|
|
25799
27880
|
;// CONCATENATED MODULE: ./packages/core/hash/keccak.ts
|
|
@@ -25819,70 +27900,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
|
-
|
|
27909
|
+
;// CONCATENATED MODULE: ./packages/core/collections/array-view.ts
|
|
25833
27910
|
|
|
25834
|
-
|
|
25835
|
-
const SEED_SIZE = 32;
|
|
25836
|
-
const ED25519_SECRET_KEY = bytes_Bytes.blobFromString("jam_val_key_ed25519");
|
|
25837
|
-
const BANDERSNATCH_SECRET_KEY = bytes_Bytes.blobFromString("jam_val_key_bandersnatch");
|
|
25838
|
-
/**
|
|
25839
|
-
* JIP-5: Secret key derivation
|
|
25840
|
-
*
|
|
25841
|
-
* https://github.com/polkadot-fellows/JIPs/blob/7048f79edf4f4eb8bfe6fb42e6bbf61900f44c65/JIP-5.md */
|
|
25842
|
-
/**
|
|
25843
|
-
* Deriving a 32-byte seed from a 32-bit unsigned integer
|
|
25844
|
-
* https://github.com/polkadot-fellows/JIPs/blob/7048f79edf4f4eb8bfe6fb42e6bbf61900f44c65/JIP-5.md#trivial-seeds
|
|
25845
|
-
*/
|
|
25846
|
-
function trivialSeed(s) {
|
|
25847
|
-
const s_le = u32AsLeBytes(s);
|
|
25848
|
-
return Bytes.fromBlob(BytesBlob.blobFromParts([s_le, s_le, s_le, s_le, s_le, s_le, s_le, s_le]).raw, SEED_SIZE).asOpaque();
|
|
25849
|
-
}
|
|
25850
|
-
/**
|
|
25851
|
-
* Derives a Ed25519 secret key from a seed.
|
|
25852
|
-
* https://github.com/polkadot-fellows/JIPs/blob/7048f79edf4f4eb8bfe6fb42e6bbf61900f44c65/JIP-5.md#derivation-method
|
|
25853
|
-
*/
|
|
25854
|
-
function deriveEd25519SecretKey(seed, allocator = new SimpleAllocator()) {
|
|
25855
|
-
return blake2b.hashBytes(BytesBlob.blobFromParts([ED25519_SECRET_KEY.raw, seed.raw]), allocator).asOpaque();
|
|
25856
|
-
}
|
|
25857
|
-
/**
|
|
25858
|
-
* Derives a Bandersnatch secret key from a seed.
|
|
25859
|
-
* https://github.com/polkadot-fellows/JIPs/blob/7048f79edf4f4eb8bfe6fb42e6bbf61900f44c65/JIP-5.md#derivation-method
|
|
25860
|
-
*/
|
|
25861
|
-
function deriveBandersnatchSecretKey(seed, allocator = new SimpleAllocator()) {
|
|
25862
|
-
return blake2b.hashBytes(BytesBlob.blobFromParts([BANDERSNATCH_SECRET_KEY.raw, seed.raw]), allocator).asOpaque();
|
|
25863
|
-
}
|
|
25864
27911
|
/**
|
|
25865
|
-
*
|
|
25866
|
-
*/
|
|
25867
|
-
async function deriveEd25519PublicKey(seed) {
|
|
25868
|
-
return (await privateKey(seed)).pubKey;
|
|
25869
|
-
}
|
|
25870
|
-
/**
|
|
25871
|
-
* Derive Bandersnatch public key from secret seed
|
|
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 }) {
|
|
@@ -31396,18 +33456,18 @@ var serialize_serialize;
|
|
|
31396
33456
|
Codec: ServiceAccountInfo.Codec,
|
|
31397
33457
|
});
|
|
31398
33458
|
/** https://graypaper.fluffylabs.dev/#/85129da/384803384803?v=0.6.3 */
|
|
31399
|
-
serialize.serviceStorage = (serviceId, key) => ({
|
|
31400
|
-
key: stateKeys.serviceStorage(serviceId, key),
|
|
33459
|
+
serialize.serviceStorage = (blake2b, serviceId, key) => ({
|
|
33460
|
+
key: stateKeys.serviceStorage(blake2b, serviceId, key),
|
|
31401
33461
|
Codec: dumpCodec,
|
|
31402
33462
|
});
|
|
31403
33463
|
/** https://graypaper.fluffylabs.dev/#/85129da/385b03385b03?v=0.6.3 */
|
|
31404
|
-
serialize.servicePreimages = (serviceId, hash) => ({
|
|
31405
|
-
key: stateKeys.servicePreimage(serviceId, hash),
|
|
33464
|
+
serialize.servicePreimages = (blake2b, serviceId, hash) => ({
|
|
33465
|
+
key: stateKeys.servicePreimage(blake2b, serviceId, hash),
|
|
31406
33466
|
Codec: dumpCodec,
|
|
31407
33467
|
});
|
|
31408
33468
|
/** https://graypaper.fluffylabs.dev/#/85129da/387603387603?v=0.6.3 */
|
|
31409
|
-
serialize.serviceLookupHistory = (serviceId, hash, len) => ({
|
|
31410
|
-
key: stateKeys.serviceLookupHistory(serviceId, hash, len),
|
|
33469
|
+
serialize.serviceLookupHistory = (blake2b, serviceId, hash, len) => ({
|
|
33470
|
+
key: stateKeys.serviceLookupHistory(blake2b, serviceId, hash, len),
|
|
31411
33471
|
Codec: readonlyArray(descriptors_codec.sequenceVarLen(descriptors_codec.u32)),
|
|
31412
33472
|
});
|
|
31413
33473
|
})(serialize_serialize || (serialize_serialize = {}));
|
|
@@ -31428,7 +33488,6 @@ const dumpCodec = descriptor_Descriptor.new("Dump", { bytes: 64, isExact: false
|
|
|
31428
33488
|
|
|
31429
33489
|
|
|
31430
33490
|
|
|
31431
|
-
|
|
31432
33491
|
/**
|
|
31433
33492
|
* State object which reads it's entries from some backend.
|
|
31434
33493
|
*
|
|
@@ -31439,20 +33498,22 @@ const dumpCodec = descriptor_Descriptor.new("Dump", { bytes: 64, isExact: false
|
|
|
31439
33498
|
*/
|
|
31440
33499
|
class serialized_state_SerializedState {
|
|
31441
33500
|
spec;
|
|
33501
|
+
blake2b;
|
|
31442
33502
|
backend;
|
|
31443
33503
|
_recentServiceIds;
|
|
31444
33504
|
/** Create a state-like object from collection of serialized entries. */
|
|
31445
|
-
static fromStateEntries(spec, state, recentServices = []) {
|
|
31446
|
-
return new serialized_state_SerializedState(spec, state, recentServices);
|
|
33505
|
+
static fromStateEntries(spec, blake2b, state, recentServices = []) {
|
|
33506
|
+
return new serialized_state_SerializedState(spec, blake2b, state, recentServices);
|
|
31447
33507
|
}
|
|
31448
33508
|
/** Create a state-like object backed by some DB. */
|
|
31449
|
-
static new(spec, db, recentServices = []) {
|
|
31450
|
-
return new serialized_state_SerializedState(spec, db, recentServices);
|
|
33509
|
+
static new(spec, blake2b, db, recentServices = []) {
|
|
33510
|
+
return new serialized_state_SerializedState(spec, blake2b, db, recentServices);
|
|
31451
33511
|
}
|
|
31452
|
-
constructor(spec, backend,
|
|
33512
|
+
constructor(spec, blake2b, backend,
|
|
31453
33513
|
/** Best-effort list of recently active services. */
|
|
31454
33514
|
_recentServiceIds) {
|
|
31455
33515
|
this.spec = spec;
|
|
33516
|
+
this.blake2b = blake2b;
|
|
31456
33517
|
this.backend = backend;
|
|
31457
33518
|
this._recentServiceIds = _recentServiceIds;
|
|
31458
33519
|
}
|
|
@@ -31476,7 +33537,7 @@ class serialized_state_SerializedState {
|
|
|
31476
33537
|
if (!this._recentServiceIds.includes(id)) {
|
|
31477
33538
|
this._recentServiceIds.push(id);
|
|
31478
33539
|
}
|
|
31479
|
-
return new SerializedService(id, serviceData, (key) => this.retrieveOptional(key));
|
|
33540
|
+
return new SerializedService(this.blake2b, id, serviceData, (key) => this.retrieveOptional(key));
|
|
31480
33541
|
}
|
|
31481
33542
|
retrieve({ key, Codec }, description) {
|
|
31482
33543
|
const bytes = this.backend.get(key);
|
|
@@ -31552,12 +33613,14 @@ class serialized_state_SerializedState {
|
|
|
31552
33613
|
}
|
|
31553
33614
|
/** Service data representation on a serialized state. */
|
|
31554
33615
|
class SerializedService {
|
|
33616
|
+
blake2b;
|
|
31555
33617
|
serviceId;
|
|
31556
33618
|
accountInfo;
|
|
31557
33619
|
retrieveOptional;
|
|
31558
|
-
constructor(
|
|
33620
|
+
constructor(blake2b,
|
|
31559
33621
|
/** Service id */
|
|
31560
33622
|
serviceId, accountInfo, retrieveOptional) {
|
|
33623
|
+
this.blake2b = blake2b;
|
|
31561
33624
|
this.serviceId = serviceId;
|
|
31562
33625
|
this.accountInfo = accountInfo;
|
|
31563
33626
|
this.retrieveOptional = retrieveOptional;
|
|
@@ -31570,13 +33633,13 @@ class SerializedService {
|
|
|
31570
33633
|
getStorage(rawKey) {
|
|
31571
33634
|
if (Compatibility.isLessThan(GpVersion.V0_6_7)) {
|
|
31572
33635
|
const SERVICE_ID_BYTES = 4;
|
|
31573
|
-
const serviceIdAndKey =
|
|
33636
|
+
const serviceIdAndKey = safeAllocUint8Array(SERVICE_ID_BYTES + rawKey.length);
|
|
31574
33637
|
serviceIdAndKey.set(u32AsLeBytes(this.serviceId));
|
|
31575
33638
|
serviceIdAndKey.set(rawKey.raw, SERVICE_ID_BYTES);
|
|
31576
|
-
const key = asOpaqueType(BytesBlob.blobFrom(blake2b.hashBytes(serviceIdAndKey).raw));
|
|
31577
|
-
return this.retrieveOptional(serialize.serviceStorage(this.serviceId, key)) ?? null;
|
|
33639
|
+
const key = asOpaqueType(BytesBlob.blobFrom(this.blake2b.hashBytes(serviceIdAndKey).raw));
|
|
33640
|
+
return this.retrieveOptional(serialize.serviceStorage(this.blake2b, this.serviceId, key)) ?? null;
|
|
31578
33641
|
}
|
|
31579
|
-
return this.retrieveOptional(serialize.serviceStorage(this.serviceId, rawKey)) ?? null;
|
|
33642
|
+
return this.retrieveOptional(serialize.serviceStorage(this.blake2b, this.serviceId, rawKey)) ?? null;
|
|
31580
33643
|
}
|
|
31581
33644
|
/**
|
|
31582
33645
|
* Check if preimage is present in the DB.
|
|
@@ -31585,15 +33648,15 @@ class SerializedService {
|
|
|
31585
33648
|
*/
|
|
31586
33649
|
hasPreimage(hash) {
|
|
31587
33650
|
// TODO [ToDr] consider optimizing to avoid fetching the whole data.
|
|
31588
|
-
return this.retrieveOptional(serialize.servicePreimages(this.serviceId, hash)) !== undefined;
|
|
33651
|
+
return this.retrieveOptional(serialize.servicePreimages(this.blake2b, this.serviceId, hash)) !== undefined;
|
|
31589
33652
|
}
|
|
31590
33653
|
/** Retrieve preimage from the DB. */
|
|
31591
33654
|
getPreimage(hash) {
|
|
31592
|
-
return this.retrieveOptional(serialize.servicePreimages(this.serviceId, hash)) ?? null;
|
|
33655
|
+
return this.retrieveOptional(serialize.servicePreimages(this.blake2b, this.serviceId, hash)) ?? null;
|
|
31593
33656
|
}
|
|
31594
33657
|
/** Retrieve preimage lookup history. */
|
|
31595
33658
|
getLookupHistory(hash, len) {
|
|
31596
|
-
const rawSlots = this.retrieveOptional(serialize.serviceLookupHistory(this.serviceId, hash, len));
|
|
33659
|
+
const rawSlots = this.retrieveOptional(serialize.serviceLookupHistory(this.blake2b, this.serviceId, hash, len));
|
|
31597
33660
|
if (rawSlots === undefined) {
|
|
31598
33661
|
return null;
|
|
31599
33662
|
}
|
|
@@ -31661,7 +33724,7 @@ class nodes_TrieNode {
|
|
|
31661
33724
|
raw;
|
|
31662
33725
|
constructor(
|
|
31663
33726
|
/** Exactly 512 bits / 64 bytes */
|
|
31664
|
-
raw =
|
|
33727
|
+
raw = safe_alloc_uint8array_safeAllocUint8Array(nodes_TRIE_NODE_BYTES)) {
|
|
31665
33728
|
this.raw = raw;
|
|
31666
33729
|
}
|
|
31667
33730
|
/** Returns the type of the node */
|
|
@@ -31879,7 +33942,7 @@ class WriteableNodesDb extends NodesDb {
|
|
|
31879
33942
|
|
|
31880
33943
|
/** Compare two trie `LeafNode`s only by their key. */
|
|
31881
33944
|
const trie_leafComparator = (x, y) => x.getKey().compare(y.getKey());
|
|
31882
|
-
const
|
|
33945
|
+
const trie_zero = bytes_Bytes.zero(hash_HASH_SIZE).asOpaque();
|
|
31883
33946
|
class trie_InMemoryTrie {
|
|
31884
33947
|
nodes;
|
|
31885
33948
|
root;
|
|
@@ -31892,7 +33955,7 @@ class trie_InMemoryTrie {
|
|
|
31892
33955
|
const sorted = leaves.slice();
|
|
31893
33956
|
const firstSorted = sorted.shift();
|
|
31894
33957
|
if (firstSorted === undefined) {
|
|
31895
|
-
return
|
|
33958
|
+
return trie_zero;
|
|
31896
33959
|
}
|
|
31897
33960
|
const nodes = [
|
|
31898
33961
|
{
|
|
@@ -31928,7 +33991,7 @@ class trie_InMemoryTrie {
|
|
|
31928
33991
|
const startDepth = isLastNode ? prevDepth : prevDepth + 1;
|
|
31929
33992
|
for (let i = startDepth; i <= currentDepth; i++) {
|
|
31930
33993
|
if (getBit(key, i) === false) {
|
|
31931
|
-
stack.push(
|
|
33994
|
+
stack.push(trie_zero);
|
|
31932
33995
|
}
|
|
31933
33996
|
}
|
|
31934
33997
|
// now let's push the hash of the current leaf
|
|
@@ -31944,16 +34007,16 @@ class trie_InMemoryTrie {
|
|
|
31944
34007
|
const endDepth = isLastNode ? currentDepth - 1 : currentDepth;
|
|
31945
34008
|
for (let i = prevDepth; i > endDepth; i--) {
|
|
31946
34009
|
if (getBit(key, i) === true) {
|
|
31947
|
-
stack.push(
|
|
34010
|
+
stack.push(trie_zero);
|
|
31948
34011
|
}
|
|
31949
|
-
const current = stack.pop() ??
|
|
31950
|
-
const next = stack.pop() ??
|
|
34012
|
+
const current = stack.pop() ?? trie_zero;
|
|
34013
|
+
const next = stack.pop() ?? trie_zero;
|
|
31951
34014
|
const branchNode = BranchNode.fromSubNodes(current, next);
|
|
31952
34015
|
const hash = hasher.hashConcat(branchNode.node.raw);
|
|
31953
34016
|
stack.push(hash);
|
|
31954
34017
|
}
|
|
31955
34018
|
}
|
|
31956
|
-
return stack.pop() ??
|
|
34019
|
+
return stack.pop() ?? trie_zero;
|
|
31957
34020
|
}
|
|
31958
34021
|
/**
|
|
31959
34022
|
* Construct a `LeafNode` from given `key` and `value`.
|
|
@@ -32086,7 +34149,7 @@ function findNodeToReplace(root, nodes, key) {
|
|
|
32086
34149
|
traversedPath.branchingHistory.push([branch, currentNodeHash, currBit]);
|
|
32087
34150
|
const nextNode = nodes.get(nextHash);
|
|
32088
34151
|
if (nextNode === null) {
|
|
32089
|
-
if (nextHash.isEqualTo(
|
|
34152
|
+
if (nextHash.isEqualTo(trie_zero)) {
|
|
32090
34153
|
return traversedPath;
|
|
32091
34154
|
}
|
|
32092
34155
|
throw new Error(`Missing trie node '${nextHash}' with key prefix: ${key}[0..${traversedPath.bitIndex}]`);
|
|
@@ -32237,12 +34300,13 @@ const bitLookup = [
|
|
|
32237
34300
|
;// CONCATENATED MODULE: ./packages/core/trie/hasher.ts
|
|
32238
34301
|
|
|
32239
34302
|
|
|
32240
|
-
|
|
32241
|
-
|
|
32242
|
-
|
|
32243
|
-
|
|
32244
|
-
|
|
32245
|
-
};
|
|
34303
|
+
function hasher_getBlake2bTrieHasher(hasher) {
|
|
34304
|
+
return {
|
|
34305
|
+
hashConcat(n, rest = []) {
|
|
34306
|
+
return hasher.hashBlobs([n, ...rest]);
|
|
34307
|
+
},
|
|
34308
|
+
};
|
|
34309
|
+
}
|
|
32246
34310
|
function getKeccakTrieHasher(hasher) {
|
|
32247
34311
|
return {
|
|
32248
34312
|
hashConcat(n, rest = []) {
|
|
@@ -32268,14 +34332,14 @@ var serialize_state_update_StateEntryUpdateAction;
|
|
|
32268
34332
|
})(serialize_state_update_StateEntryUpdateAction || (serialize_state_update_StateEntryUpdateAction = {}));
|
|
32269
34333
|
const EMPTY_BLOB = bytes_BytesBlob.empty();
|
|
32270
34334
|
/** Serialize given state update into a series of key-value pairs. */
|
|
32271
|
-
function* serialize_state_update_serializeStateUpdate(spec, update) {
|
|
34335
|
+
function* serialize_state_update_serializeStateUpdate(spec, blake2b, update) {
|
|
32272
34336
|
// first let's serialize all of the simple entries (if present!)
|
|
32273
34337
|
yield* serializeBasicKeys(spec, update);
|
|
32274
34338
|
const encode = (codec, val) => Encoder.encodeObject(codec, val, spec);
|
|
32275
34339
|
// then let's proceed with service updates
|
|
32276
|
-
yield* serializeServiceUpdates(update.servicesUpdates, encode);
|
|
32277
|
-
yield* serializePreimages(update.preimages, encode);
|
|
32278
|
-
yield* serializeStorage(update.storage);
|
|
34340
|
+
yield* serializeServiceUpdates(update.servicesUpdates, encode, blake2b);
|
|
34341
|
+
yield* serializePreimages(update.preimages, encode, blake2b);
|
|
34342
|
+
yield* serializeStorage(update.storage, blake2b);
|
|
32279
34343
|
yield* serializeRemovedServices(update.servicesRemoved);
|
|
32280
34344
|
}
|
|
32281
34345
|
function* serializeRemovedServices(servicesRemoved) {
|
|
@@ -32285,18 +34349,18 @@ function* serializeRemovedServices(servicesRemoved) {
|
|
|
32285
34349
|
yield [serialize_state_update_StateEntryUpdateAction.Remove, codec.key, EMPTY_BLOB];
|
|
32286
34350
|
}
|
|
32287
34351
|
}
|
|
32288
|
-
function* serializeStorage(storage) {
|
|
34352
|
+
function* serializeStorage(storage, blake2b) {
|
|
32289
34353
|
for (const { action, serviceId } of storage ?? []) {
|
|
32290
34354
|
switch (action.kind) {
|
|
32291
34355
|
case UpdateStorageKind.Set: {
|
|
32292
34356
|
const key = action.storage.key;
|
|
32293
|
-
const codec = serialize.serviceStorage(serviceId, key);
|
|
34357
|
+
const codec = serialize.serviceStorage(blake2b, serviceId, key);
|
|
32294
34358
|
yield [serialize_state_update_StateEntryUpdateAction.Insert, codec.key, action.storage.value];
|
|
32295
34359
|
break;
|
|
32296
34360
|
}
|
|
32297
34361
|
case UpdateStorageKind.Remove: {
|
|
32298
34362
|
const key = action.key;
|
|
32299
|
-
const codec = serialize.serviceStorage(serviceId, key);
|
|
34363
|
+
const codec = serialize.serviceStorage(blake2b, serviceId, key);
|
|
32300
34364
|
yield [serialize_state_update_StateEntryUpdateAction.Remove, codec.key, EMPTY_BLOB];
|
|
32301
34365
|
break;
|
|
32302
34366
|
}
|
|
@@ -32305,15 +34369,15 @@ function* serializeStorage(storage) {
|
|
|
32305
34369
|
}
|
|
32306
34370
|
}
|
|
32307
34371
|
}
|
|
32308
|
-
function* serializePreimages(preimages, encode) {
|
|
34372
|
+
function* serializePreimages(preimages, encode, blake2b) {
|
|
32309
34373
|
for (const { action, serviceId } of preimages ?? []) {
|
|
32310
34374
|
switch (action.kind) {
|
|
32311
34375
|
case UpdatePreimageKind.Provide: {
|
|
32312
34376
|
const { hash, blob } = action.preimage;
|
|
32313
|
-
const codec = serialize.servicePreimages(serviceId, hash);
|
|
34377
|
+
const codec = serialize.servicePreimages(blake2b, serviceId, hash);
|
|
32314
34378
|
yield [serialize_state_update_StateEntryUpdateAction.Insert, codec.key, blob];
|
|
32315
34379
|
if (action.slot !== null) {
|
|
32316
|
-
const codec2 = serialize.serviceLookupHistory(serviceId, hash, tryAsU32(blob.length));
|
|
34380
|
+
const codec2 = serialize.serviceLookupHistory(blake2b, serviceId, hash, tryAsU32(blob.length));
|
|
32317
34381
|
yield [
|
|
32318
34382
|
serialize_state_update_StateEntryUpdateAction.Insert,
|
|
32319
34383
|
codec2.key,
|
|
@@ -32324,15 +34388,15 @@ function* serializePreimages(preimages, encode) {
|
|
|
32324
34388
|
}
|
|
32325
34389
|
case UpdatePreimageKind.UpdateOrAdd: {
|
|
32326
34390
|
const { hash, length, slots } = action.item;
|
|
32327
|
-
const codec = serialize.serviceLookupHistory(serviceId, hash, length);
|
|
34391
|
+
const codec = serialize.serviceLookupHistory(blake2b, serviceId, hash, length);
|
|
32328
34392
|
yield [serialize_state_update_StateEntryUpdateAction.Insert, codec.key, encode(codec.Codec, slots)];
|
|
32329
34393
|
break;
|
|
32330
34394
|
}
|
|
32331
34395
|
case UpdatePreimageKind.Remove: {
|
|
32332
34396
|
const { hash, length } = action;
|
|
32333
|
-
const codec = serialize.servicePreimages(serviceId, hash);
|
|
34397
|
+
const codec = serialize.servicePreimages(blake2b, serviceId, hash);
|
|
32334
34398
|
yield [serialize_state_update_StateEntryUpdateAction.Remove, codec.key, EMPTY_BLOB];
|
|
32335
|
-
const codec2 = serialize.serviceLookupHistory(serviceId, hash, length);
|
|
34399
|
+
const codec2 = serialize.serviceLookupHistory(blake2b, serviceId, hash, length);
|
|
32336
34400
|
yield [serialize_state_update_StateEntryUpdateAction.Remove, codec2.key, EMPTY_BLOB];
|
|
32337
34401
|
break;
|
|
32338
34402
|
}
|
|
@@ -32341,7 +34405,7 @@ function* serializePreimages(preimages, encode) {
|
|
|
32341
34405
|
}
|
|
32342
34406
|
}
|
|
32343
34407
|
}
|
|
32344
|
-
function* serializeServiceUpdates(servicesUpdates, encode) {
|
|
34408
|
+
function* serializeServiceUpdates(servicesUpdates, encode, blake2b) {
|
|
32345
34409
|
for (const { action, serviceId } of servicesUpdates ?? []) {
|
|
32346
34410
|
// new service being created or updated
|
|
32347
34411
|
const codec = serialize.serviceData(serviceId);
|
|
@@ -32349,7 +34413,7 @@ function* serializeServiceUpdates(servicesUpdates, encode) {
|
|
|
32349
34413
|
// additional lookup history update
|
|
32350
34414
|
if (action.kind === UpdateServiceKind.Create && action.lookupHistory !== null) {
|
|
32351
34415
|
const { lookupHistory } = action;
|
|
32352
|
-
const codec2 = serialize.serviceLookupHistory(serviceId, lookupHistory.hash, lookupHistory.length);
|
|
34416
|
+
const codec2 = serialize.serviceLookupHistory(blake2b, serviceId, lookupHistory.hash, lookupHistory.length);
|
|
32353
34417
|
yield [serialize_state_update_StateEntryUpdateAction.Insert, codec2.key, encode(codec2.Codec, lookupHistory.slots)];
|
|
32354
34418
|
}
|
|
32355
34419
|
}
|
|
@@ -32453,8 +34517,8 @@ class state_entries_StateEntries {
|
|
|
32453
34517
|
},
|
|
32454
34518
|
}, (e, v) => stateEntriesSequenceCodec.encode(e, Array.from(v.entries)), (d) => state_entries_StateEntries.fromEntriesUnsafe(stateEntriesSequenceCodec.decode(d)), (s) => stateEntriesSequenceCodec.skip(s));
|
|
32455
34519
|
/** Turn in-memory state into it's serialized form. */
|
|
32456
|
-
static serializeInMemory(spec, state) {
|
|
32457
|
-
return new state_entries_StateEntries(convertInMemoryStateToDictionary(spec, state));
|
|
34520
|
+
static serializeInMemory(spec, blake2b, state) {
|
|
34521
|
+
return new state_entries_StateEntries(convertInMemoryStateToDictionary(spec, blake2b, state));
|
|
32458
34522
|
}
|
|
32459
34523
|
/**
|
|
32460
34524
|
* Wrap a collection of truncated state entries and treat it as state.
|
|
@@ -32503,16 +34567,17 @@ class state_entries_StateEntries {
|
|
|
32503
34567
|
}
|
|
32504
34568
|
}
|
|
32505
34569
|
/** https://graypaper.fluffylabs.dev/#/68eaa1f/391600391600?v=0.6.4 */
|
|
32506
|
-
getRootHash() {
|
|
34570
|
+
getRootHash(blake2b) {
|
|
34571
|
+
const blake2bTrieHasher = hasher_getBlake2bTrieHasher(blake2b);
|
|
32507
34572
|
const leaves = sorted_set_SortedSet.fromArray(trie_leafComparator);
|
|
32508
34573
|
for (const [key, value] of this) {
|
|
32509
|
-
leaves.insert(trie_InMemoryTrie.constructLeaf(
|
|
34574
|
+
leaves.insert(trie_InMemoryTrie.constructLeaf(blake2bTrieHasher, key.asOpaque(), value));
|
|
32510
34575
|
}
|
|
32511
|
-
return trie_InMemoryTrie.computeStateRoot(
|
|
34576
|
+
return trie_InMemoryTrie.computeStateRoot(blake2bTrieHasher, leaves).asOpaque();
|
|
32512
34577
|
}
|
|
32513
34578
|
}
|
|
32514
34579
|
/** https://graypaper.fluffylabs.dev/#/68eaa1f/38a50038a500?v=0.6.4 */
|
|
32515
|
-
function convertInMemoryStateToDictionary(spec, state) {
|
|
34580
|
+
function convertInMemoryStateToDictionary(spec, blake2b, state) {
|
|
32516
34581
|
const serialized = truncated_hash_dictionary_TruncatedHashDictionary.fromEntries([]);
|
|
32517
34582
|
function doSerialize(codec) {
|
|
32518
34583
|
serialized.set(codec.key, encoder_Encoder.encodeObject(codec.Codec, codec.extract(state), spec));
|
|
@@ -32540,18 +34605,18 @@ function convertInMemoryStateToDictionary(spec, state) {
|
|
|
32540
34605
|
serialized.set(key, encoder_Encoder.encodeObject(Codec, service.getInfo()));
|
|
32541
34606
|
// preimages
|
|
32542
34607
|
for (const preimage of service.data.preimages.values()) {
|
|
32543
|
-
const { key, Codec } = serialize_serialize.servicePreimages(serviceId, preimage.hash);
|
|
34608
|
+
const { key, Codec } = serialize_serialize.servicePreimages(blake2b, serviceId, preimage.hash);
|
|
32544
34609
|
serialized.set(key, encoder_Encoder.encodeObject(Codec, preimage.blob));
|
|
32545
34610
|
}
|
|
32546
34611
|
// storage
|
|
32547
34612
|
for (const storage of service.data.storage.values()) {
|
|
32548
|
-
const { key, Codec } = serialize_serialize.serviceStorage(serviceId, storage.key);
|
|
34613
|
+
const { key, Codec } = serialize_serialize.serviceStorage(blake2b, serviceId, storage.key);
|
|
32549
34614
|
serialized.set(key, encoder_Encoder.encodeObject(Codec, storage.value));
|
|
32550
34615
|
}
|
|
32551
34616
|
// lookup history
|
|
32552
34617
|
for (const lookupHistoryList of service.data.lookupHistory.values()) {
|
|
32553
34618
|
for (const lookupHistory of lookupHistoryList) {
|
|
32554
|
-
const { key, Codec } = serialize_serialize.serviceLookupHistory(serviceId, lookupHistory.hash, lookupHistory.length);
|
|
34619
|
+
const { key, Codec } = serialize_serialize.serviceLookupHistory(blake2b, serviceId, lookupHistory.hash, lookupHistory.length);
|
|
32555
34620
|
serialized.set(key, encoder_Encoder.encodeObject(Codec, lookupHistory.slots.slice()));
|
|
32556
34621
|
}
|
|
32557
34622
|
}
|
|
@@ -32562,9 +34627,9 @@ function convertInMemoryStateToDictionary(spec, state) {
|
|
|
32562
34627
|
;// CONCATENATED MODULE: ./packages/jam/state-merkleization/loader.ts
|
|
32563
34628
|
|
|
32564
34629
|
|
|
32565
|
-
function loadState(spec, entries) {
|
|
34630
|
+
function loadState(spec, blake2b, entries) {
|
|
32566
34631
|
const stateEntries = StateEntries.fromEntriesUnsafe(entries);
|
|
32567
|
-
return SerializedState.fromStateEntries(spec, stateEntries);
|
|
34632
|
+
return SerializedState.fromStateEntries(spec, blake2b, stateEntries);
|
|
32568
34633
|
}
|
|
32569
34634
|
|
|
32570
34635
|
;// CONCATENATED MODULE: ./packages/jam/state-merkleization/index.ts
|
|
@@ -32671,7 +34736,8 @@ class leaf_db_LeafDb {
|
|
|
32671
34736
|
}
|
|
32672
34737
|
assertNever(val);
|
|
32673
34738
|
}
|
|
32674
|
-
getStateRoot() {
|
|
34739
|
+
getStateRoot(blake2b) {
|
|
34740
|
+
const blake2bTrieHasher = getBlake2bTrieHasher(blake2b);
|
|
32675
34741
|
return InMemoryTrie.computeStateRoot(blake2bTrieHasher, this.leaves).asOpaque();
|
|
32676
34742
|
}
|
|
32677
34743
|
intoStateEntries() {
|
|
@@ -32853,6 +34919,7 @@ const in_memory_state_codec_inMemoryStateCodec = descriptors_codec.Class(InMemor
|
|
|
32853
34919
|
|
|
32854
34920
|
|
|
32855
34921
|
|
|
34922
|
+
|
|
32856
34923
|
/** A potential error that occured during state update. */
|
|
32857
34924
|
var states_StateUpdateError;
|
|
32858
34925
|
(function (StateUpdateError) {
|
|
@@ -32882,7 +34949,8 @@ class InMemoryStates {
|
|
|
32882
34949
|
}
|
|
32883
34950
|
}
|
|
32884
34951
|
async getStateRoot(state) {
|
|
32885
|
-
|
|
34952
|
+
const blake2b = await Blake2b.createHasher();
|
|
34953
|
+
return StateEntries.serializeInMemory(this.spec, blake2b, state).getRootHash(blake2b);
|
|
32886
34954
|
}
|
|
32887
34955
|
/** Insert a full state into the database. */
|
|
32888
34956
|
async insertState(headerHash, state) {
|
|
@@ -32964,11 +35032,13 @@ const states_logger = Logger.new(import.meta.filename, "db");
|
|
|
32964
35032
|
*/
|
|
32965
35033
|
class LmdbStates {
|
|
32966
35034
|
spec;
|
|
35035
|
+
blake2b;
|
|
32967
35036
|
root;
|
|
32968
35037
|
states;
|
|
32969
35038
|
values;
|
|
32970
|
-
constructor(spec, root) {
|
|
35039
|
+
constructor(spec, blake2b, root) {
|
|
32971
35040
|
this.spec = spec;
|
|
35041
|
+
this.blake2b = blake2b;
|
|
32972
35042
|
this.root = root;
|
|
32973
35043
|
this.states = this.root.subDb("states");
|
|
32974
35044
|
this.values = this.root.subDb("values");
|
|
@@ -32982,6 +35052,7 @@ class LmdbStates {
|
|
|
32982
35052
|
return await this.updateAndCommit(headerHash, SortedSet.fromArray(leafComparator, []), Array.from(serializedState, (x) => [StateEntryUpdateAction.Insert, x[0], x[1]]));
|
|
32983
35053
|
}
|
|
32984
35054
|
async updateAndCommit(headerHash, leafs, data) {
|
|
35055
|
+
const blake2bTrieHasher = getBlake2bTrieHasher(this.blake2b);
|
|
32985
35056
|
// We will collect all values that don't fit directly into leaf nodes.
|
|
32986
35057
|
const values = [];
|
|
32987
35058
|
for (const [action, key, value] of data) {
|
|
@@ -33023,12 +35094,12 @@ class LmdbStates {
|
|
|
33023
35094
|
async updateAndSetState(headerHash, state, update) {
|
|
33024
35095
|
// TODO [ToDr] We should probably detect a conflicting state (i.e. two services
|
|
33025
35096
|
// updated at once, etc), for now we're just ignoring it.
|
|
33026
|
-
const updatedValues = serializeStateUpdate(this.spec, update);
|
|
35097
|
+
const updatedValues = serializeStateUpdate(this.spec, this.blake2b, update);
|
|
33027
35098
|
// and finally we insert new values and store leaves in the DB.
|
|
33028
35099
|
return await this.updateAndCommit(headerHash, state.backend.leaves, updatedValues);
|
|
33029
35100
|
}
|
|
33030
35101
|
async getStateRoot(state) {
|
|
33031
|
-
return state.backend.getStateRoot();
|
|
35102
|
+
return state.backend.getStateRoot(this.blake2b);
|
|
33032
35103
|
}
|
|
33033
35104
|
getState(root) {
|
|
33034
35105
|
const leafNodes = this.states.get(root.raw);
|
|
@@ -33049,7 +35120,7 @@ class LmdbStates {
|
|
|
33049
35120
|
if (leafDbResult.isError) {
|
|
33050
35121
|
throw new Error(`Inconsistent DB. Invalid leaf nodes for ${root}: ${resultToString(leafDbResult)}`);
|
|
33051
35122
|
}
|
|
33052
|
-
return SerializedState.new(this.spec, leafDbResult.ok);
|
|
35123
|
+
return SerializedState.new(this.spec, this.blake2b, leafDbResult.ok);
|
|
33053
35124
|
}
|
|
33054
35125
|
}
|
|
33055
35126
|
|
|
@@ -35999,14 +38070,15 @@ const sync_logger = Logger.new(import.meta.filename, "net:sync");
|
|
|
35999
38070
|
const MAX_BLOCK_SEQUENCE = 128;
|
|
36000
38071
|
class SyncTask {
|
|
36001
38072
|
spec;
|
|
38073
|
+
blake2b;
|
|
36002
38074
|
streamManager;
|
|
36003
38075
|
connections;
|
|
36004
38076
|
blocks;
|
|
36005
38077
|
onNewBlocks;
|
|
36006
|
-
static start(spec, streamManager, connections, blocks,
|
|
38078
|
+
static start(spec, blake2b, streamManager, connections, blocks,
|
|
36007
38079
|
// TODO [ToDr] Use listener instead of a callback maybe?
|
|
36008
38080
|
onNewBlocks) {
|
|
36009
|
-
const syncTask = new SyncTask(spec, streamManager, connections, blocks, onNewBlocks);
|
|
38081
|
+
const syncTask = new SyncTask(spec, blake2b, streamManager, connections, blocks, onNewBlocks);
|
|
36010
38082
|
const getPeerForStream = (streamId) => {
|
|
36011
38083
|
// NOTE [ToDr] Needing to query stream manager for a peer might be a bit
|
|
36012
38084
|
// wasteful, since we probably know the peer when we dispatch the
|
|
@@ -36042,8 +38114,9 @@ class SyncTask {
|
|
|
36042
38114
|
}
|
|
36043
38115
|
// Other's best header hash with timeslot
|
|
36044
38116
|
othersBest;
|
|
36045
|
-
constructor(spec, streamManager, connections, blocks, onNewBlocks) {
|
|
38117
|
+
constructor(spec, blake2b, streamManager, connections, blocks, onNewBlocks) {
|
|
36046
38118
|
this.spec = spec;
|
|
38119
|
+
this.blake2b = blake2b;
|
|
36047
38120
|
this.streamManager = streamManager;
|
|
36048
38121
|
this.connections = connections;
|
|
36049
38122
|
this.blocks = blocks;
|
|
@@ -36080,7 +38153,7 @@ class SyncTask {
|
|
|
36080
38153
|
}
|
|
36081
38154
|
onUp0Annoucement(peer, announcement) {
|
|
36082
38155
|
const { hash, slot } = announcement.final;
|
|
36083
|
-
const bestHeader = hashHeader(announcement.header, this.spec);
|
|
38156
|
+
const bestHeader = hashHeader(this.blake2b, announcement.header, this.spec);
|
|
36084
38157
|
sync_logger.info `[${peer.id}] --> Received new header #${announcement.header.timeSlotIndex}: ${bestHeader.hash}`;
|
|
36085
38158
|
// NOTE [ToDr] Instead of having `Connections` store aux data perhaps
|
|
36086
38159
|
// we should maintain that directly? However that would require
|
|
@@ -36260,9 +38333,9 @@ var SyncResult;
|
|
|
36260
38333
|
/** Sent request to some peers. */
|
|
36261
38334
|
SyncResult[SyncResult["BlocksRequested"] = 3] = "BlocksRequested";
|
|
36262
38335
|
})(SyncResult || (SyncResult = {}));
|
|
36263
|
-
function hashHeader(header, spec) {
|
|
38336
|
+
function hashHeader(blake2b, header, spec) {
|
|
36264
38337
|
const encoded = encoder_Encoder.encodeObject(header_Header.Codec, header, spec);
|
|
36265
|
-
return new WithHash(hashBytes(encoded).asOpaque(), header);
|
|
38338
|
+
return new WithHash(blake2b.hashBytes(encoded).asOpaque(), header);
|
|
36266
38339
|
}
|
|
36267
38340
|
|
|
36268
38341
|
;// CONCATENATED MODULE: ./packages/jam/jamnp-s/network.ts
|
|
@@ -36274,8 +38347,10 @@ function hashHeader(header, spec) {
|
|
|
36274
38347
|
|
|
36275
38348
|
|
|
36276
38349
|
|
|
38350
|
+
|
|
36277
38351
|
const network_logger = Logger.new(import.meta.filename, "jamnps");
|
|
36278
38352
|
async function setup(bind, genesisHash, key, bootnodes, spec, blocks, onNewBlocks) {
|
|
38353
|
+
const blake2b = await blake2b_Blake2b.createHasher();
|
|
36279
38354
|
const genesisFirstBytes = genesisHash.toString().substring(2, 10);
|
|
36280
38355
|
const network = await Quic.setup({
|
|
36281
38356
|
host: bind.host,
|
|
@@ -36287,7 +38362,7 @@ async function setup(bind, genesisHash, key, bootnodes, spec, blocks, onNewBlock
|
|
|
36287
38362
|
connections.addPersistentRetry(bootnodes);
|
|
36288
38363
|
const streamManager = new StreamManager();
|
|
36289
38364
|
// start the networking tasks
|
|
36290
|
-
const syncTask = SyncTask.start(spec, streamManager, connections, blocks, onNewBlocks);
|
|
38365
|
+
const syncTask = SyncTask.start(spec, blake2b, streamManager, connections, blocks, onNewBlocks);
|
|
36291
38366
|
setImmediate(async () => {
|
|
36292
38367
|
while (network.isRunning) {
|
|
36293
38368
|
await (0,promises_namespaceObject.setTimeout)(3000);
|