@loaders.gl/crypto 4.0.0-beta.1 → 4.0.0-beta.3

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.
Files changed (101) hide show
  1. package/dist/crypto-worker-node.js +1 -1
  2. package/dist/crypto-worker-node.js.map +2 -2
  3. package/dist/crypto-worker.js +1 -1
  4. package/dist/crypto-worker.js.map +2 -2
  5. package/dist/dist.dev.js +871 -0
  6. package/dist/index.cjs +1341 -0
  7. package/dist/index.d.ts +1 -1
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +28 -0
  10. package/dist/index.js.map +1 -0
  11. package/dist/{esm/lib → lib}/algorithms/crc32.js +1 -2
  12. package/dist/lib/algorithms/crc32.js.map +1 -0
  13. package/dist/{esm/lib → lib}/algorithms/crc32c.js +2 -3
  14. package/dist/lib/algorithms/crc32c.js.map +1 -0
  15. package/dist/lib/algorithms/md5-wasm.js.map +1 -0
  16. package/dist/{esm/lib → lib}/crc32-hash.js +6 -7
  17. package/dist/lib/crc32-hash.js.map +1 -0
  18. package/dist/{esm/lib → lib}/crc32c-hash.js +6 -7
  19. package/dist/lib/crc32c-hash.js.map +1 -0
  20. package/dist/lib/crypto-hash.d.ts.map +1 -1
  21. package/dist/{esm/lib → lib}/crypto-hash.js +8 -9
  22. package/dist/lib/crypto-hash.js.map +1 -0
  23. package/dist/{esm/lib → lib}/hash.js +2 -3
  24. package/dist/lib/hash.js.map +1 -0
  25. package/dist/{esm/lib → lib}/md5-hash.js +5 -6
  26. package/dist/lib/md5-hash.js.map +1 -0
  27. package/dist/{esm/lib → lib}/sha256-hash.js +1 -1
  28. package/dist/lib/sha256-hash.js.map +1 -0
  29. package/dist/{esm/lib → lib}/utils/base64-utils.js +2 -2
  30. package/dist/lib/utils/base64-utils.js.map +1 -0
  31. package/dist/{esm/lib → lib}/utils/digest-utils.js +3 -3
  32. package/dist/lib/utils/digest-utils.js.map +1 -0
  33. package/dist/types.js.map +1 -0
  34. package/dist/{esm/workers → workers}/worker.js +4 -4
  35. package/dist/workers/worker.js.map +1 -0
  36. package/package.json +16 -8
  37. package/src/index.ts +4 -1
  38. package/src/lib/crypto-hash.ts +4 -8
  39. package/dist/bundle.d.ts +0 -2
  40. package/dist/bundle.d.ts.map +0 -1
  41. package/dist/dist.min.js +0 -2
  42. package/dist/dist.min.js.map +0 -7
  43. package/dist/es5/bundle.js +0 -6
  44. package/dist/es5/bundle.js.map +0 -1
  45. package/dist/es5/index.js +0 -102
  46. package/dist/es5/index.js.map +0 -1
  47. package/dist/es5/lib/algorithms/crc32.js +0 -41
  48. package/dist/es5/lib/algorithms/crc32.js.map +0 -1
  49. package/dist/es5/lib/algorithms/crc32c.js +0 -44
  50. package/dist/es5/lib/algorithms/crc32c.js.map +0 -1
  51. package/dist/es5/lib/algorithms/md5-wasm.js +0 -436
  52. package/dist/es5/lib/algorithms/md5-wasm.js.map +0 -1
  53. package/dist/es5/lib/crc32-hash.js +0 -148
  54. package/dist/es5/lib/crc32-hash.js.map +0 -1
  55. package/dist/es5/lib/crc32c-hash.js +0 -147
  56. package/dist/es5/lib/crc32c-hash.js.map +0 -1
  57. package/dist/es5/lib/crypto-hash.js +0 -189
  58. package/dist/es5/lib/crypto-hash.js.map +0 -1
  59. package/dist/es5/lib/hash.js +0 -150
  60. package/dist/es5/lib/hash.js.map +0 -1
  61. package/dist/es5/lib/md5-hash.js +0 -66
  62. package/dist/es5/lib/md5-hash.js.map +0 -1
  63. package/dist/es5/lib/node-hash.js +0 -155
  64. package/dist/es5/lib/node-hash.js.map +0 -1
  65. package/dist/es5/lib/sha256-hash.js +0 -33
  66. package/dist/es5/lib/sha256-hash.js.map +0 -1
  67. package/dist/es5/lib/utils/base64-utils.js +0 -94
  68. package/dist/es5/lib/utils/base64-utils.js.map +0 -1
  69. package/dist/es5/lib/utils/digest-utils.js +0 -61
  70. package/dist/es5/lib/utils/digest-utils.js.map +0 -1
  71. package/dist/es5/types.js +0 -2
  72. package/dist/es5/types.js.map +0 -1
  73. package/dist/es5/workers/worker.js +0 -67
  74. package/dist/es5/workers/worker.js.map +0 -1
  75. package/dist/esm/bundle.js +0 -4
  76. package/dist/esm/bundle.js.map +0 -1
  77. package/dist/esm/index.js +0 -28
  78. package/dist/esm/index.js.map +0 -1
  79. package/dist/esm/lib/algorithms/crc32.js.map +0 -1
  80. package/dist/esm/lib/algorithms/crc32c.js.map +0 -1
  81. package/dist/esm/lib/algorithms/md5-wasm.js.map +0 -1
  82. package/dist/esm/lib/crc32-hash.js.map +0 -1
  83. package/dist/esm/lib/crc32c-hash.js.map +0 -1
  84. package/dist/esm/lib/crypto-hash.js.map +0 -1
  85. package/dist/esm/lib/hash.js.map +0 -1
  86. package/dist/esm/lib/md5-hash.js.map +0 -1
  87. package/dist/esm/lib/node-hash.js +0 -52
  88. package/dist/esm/lib/node-hash.js.map +0 -1
  89. package/dist/esm/lib/sha256-hash.js.map +0 -1
  90. package/dist/esm/lib/utils/base64-utils.js.map +0 -1
  91. package/dist/esm/lib/utils/digest-utils.js.map +0 -1
  92. package/dist/esm/types.js.map +0 -1
  93. package/dist/esm/workers/cryptojs-worker.ts.disabled +0 -26
  94. package/dist/esm/workers/worker.js.map +0 -1
  95. package/dist/lib/node-hash.d.ts +0 -28
  96. package/dist/lib/node-hash.d.ts.map +0 -1
  97. package/src/bundle.ts +0 -4
  98. package/src/lib/node-hash.ts +0 -65
  99. /package/dist/{esm/lib → lib}/algorithms/md5-wasm.js +0 -0
  100. /package/dist/{esm/types.js → types.js} +0 -0
  101. /package/dist/{es5/workers → workers}/cryptojs-worker.ts.disabled +0 -0
@@ -0,0 +1,871 @@
1
+ (function webpackUniversalModuleDefinition(root, factory) {
2
+ if (typeof exports === 'object' && typeof module === 'object')
3
+ module.exports = factory();
4
+ else if (typeof define === 'function' && define.amd) define([], factory);
5
+ else if (typeof exports === 'object') exports['loader'] = factory();
6
+ else root['loader'] = factory();})(globalThis, function () {
7
+ "use strict";
8
+ var __exports__ = (() => {
9
+ var __defProp = Object.defineProperty;
10
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
11
+ var __getOwnPropNames = Object.getOwnPropertyNames;
12
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
13
+ var __export = (target, all) => {
14
+ for (var name in all)
15
+ __defProp(target, name, { get: all[name], enumerable: true });
16
+ };
17
+ var __copyProps = (to, from, except, desc) => {
18
+ if (from && typeof from === "object" || typeof from === "function") {
19
+ for (let key of __getOwnPropNames(from))
20
+ if (!__hasOwnProp.call(to, key) && key !== except)
21
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
22
+ }
23
+ return to;
24
+ };
25
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
26
+
27
+ // src/index.ts
28
+ var src_exports = {};
29
+ __export(src_exports, {
30
+ CRC32CHash: () => CRC32CHash,
31
+ CRC32Hash: () => CRC32Hash,
32
+ CryptoHash: () => CryptoHash,
33
+ CryptoJSWorker: () => CryptoJSWorker,
34
+ CryptoWorker: () => CryptoWorker,
35
+ Hash: () => Hash,
36
+ MD5Hash: () => MD5Hash,
37
+ SHA256Hash: () => SHA256Hash,
38
+ asciiToBase64: () => asciiToBase64,
39
+ base64ToAscii: () => base64ToAscii,
40
+ encodeBase64: () => encodeBase64,
41
+ encodeHex: () => encodeHex,
42
+ encodeNumber: () => encodeNumber
43
+ });
44
+
45
+ // ../loader-utils/src/lib/binary-utils/array-buffer-utils.ts
46
+ function concatenateArrayBuffers(...sources) {
47
+ const sourceArrays = sources.map((source2) => source2 instanceof ArrayBuffer ? new Uint8Array(source2) : source2);
48
+ const byteLength = sourceArrays.reduce((length, typedArray) => length + typedArray.byteLength, 0);
49
+ const result = new Uint8Array(byteLength);
50
+ let offset = 0;
51
+ for (const sourceArray of sourceArrays) {
52
+ result.set(sourceArray, offset);
53
+ offset += sourceArray.byteLength;
54
+ }
55
+ return result.buffer;
56
+ }
57
+
58
+ // ../loader-utils/src/lib/iterators/async-iteration.ts
59
+ async function concatenateArrayBuffersAsync(asyncIterator) {
60
+ const arrayBuffers = [];
61
+ for await (const chunk of asyncIterator) {
62
+ arrayBuffers.push(chunk);
63
+ }
64
+ return concatenateArrayBuffers(...arrayBuffers);
65
+ }
66
+
67
+ // src/lib/hash.ts
68
+ var Hash = class {
69
+ constructor(options = {}) {
70
+ this.hashBatches = this.hashBatches.bind(this);
71
+ }
72
+ async preload() {
73
+ return;
74
+ }
75
+ async *hashBatches(asyncIterator, encoding = "base64") {
76
+ const arrayBuffers = [];
77
+ for await (const arrayBuffer of asyncIterator) {
78
+ arrayBuffers.push(arrayBuffer);
79
+ yield arrayBuffer;
80
+ }
81
+ const output = await this.concatenate(arrayBuffers);
82
+ const hash = await this.hash(output, encoding);
83
+ this.options.crypto?.onEnd?.({
84
+ hash
85
+ });
86
+ }
87
+ // HELPERS
88
+ async concatenate(asyncIterator) {
89
+ return await concatenateArrayBuffersAsync(asyncIterator);
90
+ }
91
+ };
92
+
93
+ // src/lib/algorithms/crc32.ts
94
+ var CRC32 = class {
95
+ constructor() {
96
+ this.crc = ~0;
97
+ }
98
+ update(arrayBuffer) {
99
+ const CRC32_TABLE = getCRC32Table();
100
+ const byteArray = new Uint8Array(arrayBuffer);
101
+ for (let i = 0; i < byteArray.byteLength; i++) {
102
+ this.crc = this.crc >>> 8 ^ CRC32_TABLE[(this.crc ^ byteArray[i]) & 255];
103
+ }
104
+ return this;
105
+ }
106
+ finalize() {
107
+ this.crc = Math.abs(this.crc ^ -1);
108
+ return this.crc;
109
+ }
110
+ };
111
+ var CRC32TAB = Uint32Array.of(0, 1996959894, 3993919788, 2567524794, 124634137, 1886057615, 3915621685, 2657392035, 249268274, 2044508324, 3772115230, 2547177864, 162941995, 2125561021, 3887607047, 2428444049, 498536548, 1789927666, 4089016648, 2227061214, 450548861, 1843258603, 4107580753, 2211677639, 325883990, 1684777152, 4251122042, 2321926636, 335633487, 1661365465, 4195302755, 2366115317, 997073096, 1281953886, 3579855332, 2724688242, 1006888145, 1258607687, 3524101629, 2768942443, 901097722, 1119000684, 3686517206, 2898065728, 853044451, 1172266101, 3705015759, 2882616665, 651767980, 1373503546, 3369554304, 3218104598, 565507253, 1454621731, 3485111705, 3099436303, 671266974, 1594198024, 3322730930, 2970347812, 795835527, 1483230225, 3244367275, 3060149565, 1994146192, 31158534, 2563907772, 4023717930, 1907459465, 112637215, 2680153253, 3904427059, 2013776290, 251722036, 2517215374, 3775830040, 2137656763, 141376813, 2439277719, 3865271297, 1802195444, 476864866, 2238001368, 4066508878, 1812370925, 453092731, 2181625025, 4111451223, 1706088902, 314042704, 2344532202, 4240017532, 1658658271, 366619977, 2362670323, 4224994405, 1303535960, 984961486, 2747007092, 3569037538, 1256170817, 1037604311, 2765210733, 3554079995, 1131014506, 879679996, 2909243462, 3663771856, 1141124467, 855842277, 2852801631, 3708648649, 1342533948, 654459306, 3188396048, 3373015174, 1466479909, 544179635, 3110523913, 3462522015, 1591671054, 702138776, 2966460450, 3352799412, 1504918807, 783551873, 3082640443, 3233442989, 3988292384, 2596254646, 62317068, 1957810842, 3939845945, 2647816111, 81470997, 1943803523, 3814918930, 2489596804, 225274430, 2053790376, 3826175755, 2466906013, 167816743, 2097651377, 4027552580, 2265490386, 503444072, 1762050814, 4150417245, 2154129355, 426522225, 1852507879, 4275313526, 2312317920, 282753626, 1742555852, 4189708143, 2394877945, 397917763, 1622183637, 3604390888, 2714866558, 953729732, 1340076626, 3518719985, 2797360999, 1068828381, 1219638859, 3624741850, 2936675148, 906185462, 1090812512, 3747672003, 2825379669, 829329135, 1181335161, 3412177804, 3160834842, 628085408, 1382605366, 3423369109, 3138078467, 570562233, 1426400815, 3317316542, 2998733608, 733239954, 1555261956, 3268935591, 3050360625, 752459403, 1541320221, 2607071920, 3965973030, 1969922972, 40735498, 2617837225, 3943577151, 1913087877, 83908371, 2512341634, 3803740692, 2075208622, 213261112, 2463272603, 3855990285, 2094854071, 198958881, 2262029012, 4057260610, 1759359992, 534414190, 2176718541, 4139329115, 1873836001, 414664567, 2282248934, 4279200368, 1711684554, 285281116, 2405801727, 4167216745, 1634467795, 376229701, 2685067896, 3608007406, 1308918612, 956543938, 2808555105, 3495958263, 1231636301, 1047427035, 2932959818, 3654703836, 1088359270, 936918e3, 2847714899, 3736837829, 1202900863, 817233897, 3183342108, 3401237130, 1404277552, 615818150, 3134207493, 3453421203, 1423857449, 601450431, 3009837614, 3294710456, 1567103746, 711928724, 3020668471, 3272380065, 1510334235, 755167117);
112
+ function getCRC32Table() {
113
+ return CRC32TAB;
114
+ }
115
+
116
+ // src/lib/utils/base64-utils.ts
117
+ function asciiToBase64(string) {
118
+ string = `${string}`;
119
+ for (let i = 0; i < string.length; i++) {
120
+ if (string.charCodeAt(i) > 255) {
121
+ return null;
122
+ }
123
+ }
124
+ let out = "";
125
+ for (let i = 0; i < string.length; i += 3) {
126
+ const groupsOfSix = [void 0, void 0, void 0, void 0];
127
+ groupsOfSix[0] = string.charCodeAt(i) >> 2;
128
+ groupsOfSix[1] = (string.charCodeAt(i) & 3) << 4;
129
+ if (string.length > i + 1) {
130
+ groupsOfSix[1] |= string.charCodeAt(i + 1) >> 4;
131
+ groupsOfSix[2] = (string.charCodeAt(i + 1) & 15) << 2;
132
+ }
133
+ if (string.length > i + 2) {
134
+ groupsOfSix[2] |= string.charCodeAt(i + 2) >> 6;
135
+ groupsOfSix[3] = string.charCodeAt(i + 2) & 63;
136
+ }
137
+ for (let j = 0; j < groupsOfSix.length; j++) {
138
+ if (typeof groupsOfSix[j] === "undefined") {
139
+ out += "=";
140
+ } else {
141
+ out += btoaLookup(groupsOfSix[j]);
142
+ }
143
+ }
144
+ }
145
+ return out;
146
+ }
147
+ function base64ToAscii(data) {
148
+ data = `${data}`;
149
+ data = data.replace(/[ \t\n\f\r]/g, "");
150
+ if (data.length % 4 === 0) {
151
+ data = data.replace(/[=]=?$/, "");
152
+ }
153
+ if (data.length % 4 === 1 || /[^+/0-9A-Za-z]/.test(data)) {
154
+ return "";
155
+ }
156
+ let output = "";
157
+ let buffer = 0;
158
+ let accumulatedBits = 0;
159
+ for (let i = 0; i < data.length; i++) {
160
+ buffer <<= 6;
161
+ buffer |= atobLookup(data[i]);
162
+ accumulatedBits += 6;
163
+ if (accumulatedBits === 24) {
164
+ output += String.fromCharCode((buffer & 16711680) >> 16);
165
+ output += String.fromCharCode((buffer & 65280) >> 8);
166
+ output += String.fromCharCode(buffer & 255);
167
+ buffer = accumulatedBits = 0;
168
+ }
169
+ }
170
+ if (accumulatedBits === 12) {
171
+ buffer >>= 4;
172
+ output += String.fromCharCode(buffer);
173
+ } else if (accumulatedBits === 18) {
174
+ buffer >>= 2;
175
+ output += String.fromCharCode((buffer & 65280) >> 8);
176
+ output += String.fromCharCode(buffer & 255);
177
+ }
178
+ return output;
179
+ }
180
+ var keystr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
181
+ function atobLookup(chr) {
182
+ const index = keystr.indexOf(chr);
183
+ return index < 0 ? void 0 : index;
184
+ }
185
+ function btoaLookup(idx) {
186
+ if (idx < 26) {
187
+ return String.fromCharCode(idx + "A".charCodeAt(0));
188
+ }
189
+ if (idx < 52) {
190
+ return String.fromCharCode(idx - 26 + "a".charCodeAt(0));
191
+ }
192
+ if (idx < 62) {
193
+ return String.fromCharCode(idx - 52 + "0".charCodeAt(0));
194
+ }
195
+ if (idx === 62) {
196
+ return "+";
197
+ }
198
+ if (idx === 63) {
199
+ return "/";
200
+ }
201
+ return void 0;
202
+ }
203
+
204
+ // src/lib/utils/digest-utils.ts
205
+ function encodeNumber(number, encoding) {
206
+ switch (encoding) {
207
+ case "hex":
208
+ return convertNumberToHex(number);
209
+ case "base64":
210
+ return convertHexToBase64(convertNumberToHex(number));
211
+ default:
212
+ throw new Error(encoding);
213
+ }
214
+ }
215
+ function encodeHex(hex, encoding) {
216
+ switch (encoding) {
217
+ case "hex":
218
+ return hex;
219
+ case "base64":
220
+ return convertHexToBase64(hex);
221
+ default:
222
+ throw new Error(encoding);
223
+ }
224
+ }
225
+ function encodeBase64(base64, encoding) {
226
+ switch (encoding) {
227
+ case "hex":
228
+ return convertBase64ToHex(base64);
229
+ case "base64":
230
+ return base64;
231
+ default:
232
+ throw new Error(encoding);
233
+ }
234
+ }
235
+ function convertHexToBase64(hexstring) {
236
+ if (hexstring.length % 2 !== 0) {
237
+ hexstring = `0${hexstring}`;
238
+ }
239
+ const matches = hexstring.match(/\w{2}/g) || [];
240
+ const string = matches.map((a) => String.fromCharCode(parseInt(a, 16))).join("");
241
+ return asciiToBase64(string) || "";
242
+ }
243
+ function convertBase64ToHex(base64String) {
244
+ return [...base64ToAscii(base64String)].map((c) => c.charCodeAt(0).toString(16).padStart(2, "0")).join("");
245
+ }
246
+ function convertNumberToHex(cipher) {
247
+ const hexString = cipher.toString(16);
248
+ return hexString === "0" ? `0${hexString}` : hexString;
249
+ }
250
+
251
+ // src/lib/crc32-hash.ts
252
+ var CRC32Hash = class extends Hash {
253
+ name = "crc32";
254
+ constructor(options = {}) {
255
+ super();
256
+ this.options = {
257
+ crypto: {},
258
+ ...options
259
+ };
260
+ this._hash = new CRC32();
261
+ this.hashBatches = this.hashBatches.bind(this);
262
+ }
263
+ /**
264
+ * Atomic hash calculation
265
+ * @returns base64 encoded hash
266
+ */
267
+ async hash(input, encoding) {
268
+ return this.hashSync(input, encoding);
269
+ }
270
+ hashSync(input, encoding) {
271
+ this._hash.update(input);
272
+ const digest = this._hash.finalize();
273
+ return encodeNumber(digest, encoding);
274
+ }
275
+ async *hashBatches(asyncIterator, encoding = "base64") {
276
+ for await (const chunk of asyncIterator) {
277
+ this._hash.update(chunk);
278
+ yield chunk;
279
+ }
280
+ const digest = this._hash.finalize();
281
+ const hash = encodeNumber(digest, encoding);
282
+ this.options.crypto?.onEnd?.({
283
+ hash
284
+ });
285
+ }
286
+ };
287
+
288
+ // src/lib/algorithms/crc32c.ts
289
+ var CRC32C = class {
290
+ constructor(options = {}) {
291
+ this.options = options;
292
+ this.crc = ~0;
293
+ }
294
+ update(arrayBuffer) {
295
+ const byteArray = new Uint8Array(arrayBuffer);
296
+ const CRC32_TABLE = getCRC32Table2();
297
+ for (let i = 0; i < byteArray.length; i++) {
298
+ this.crc = CRC32_TABLE[(this.crc ^ byteArray[i]) & 255] ^ this.crc >>> 8;
299
+ }
300
+ return this;
301
+ }
302
+ finalize() {
303
+ this.crc = (this.crc ^ -1) >>> 0;
304
+ return this.crc;
305
+ }
306
+ };
307
+ var CRC32C_TABLE = Int32Array.of(0, 4067132163, 3778769143, 324072436, 3348797215, 904991772, 648144872, 3570033899, 2329499855, 2024987596, 1809983544, 2575936315, 1296289744, 3207089363, 2893594407, 1578318884, 274646895, 3795141740, 4049975192, 51262619, 3619967088, 632279923, 922689671, 3298075524, 2592579488, 1760304291, 2075979607, 2312596564, 1562183871, 2943781820, 3156637768, 1313733451, 549293790, 3537243613, 3246849577, 871202090, 3878099393, 357341890, 102525238, 4101499445, 2858735121, 1477399826, 1264559846, 3107202533, 1845379342, 2677391885, 2361733625, 2125378298, 820201905, 3263744690, 3520608582, 598981189, 4151959214, 85089709, 373468761, 3827903834, 3124367742, 1213305469, 1526817161, 2842354314, 2107672161, 2412447074, 2627466902, 1861252501, 1098587580, 3004210879, 2688576843, 1378610760, 2262928035, 1955203488, 1742404180, 2511436119, 3416409459, 969524848, 714683780, 3639785095, 205050476, 4266873199, 3976438427, 526918040, 1361435347, 2739821008, 2954799652, 1114974503, 2529119692, 1691668175, 2005155131, 2247081528, 3690758684, 697762079, 986182379, 3366744552, 476452099, 3993867776, 4250756596, 255256311, 1640403810, 2477592673, 2164122517, 1922457750, 2791048317, 1412925310, 1197962378, 3037525897, 3944729517, 427051182, 170179418, 4165941337, 746937522, 3740196785, 3451792453, 1070968646, 1905808397, 2213795598, 2426610938, 1657317369, 3053634322, 1147748369, 1463399397, 2773627110, 4215344322, 153784257, 444234805, 3893493558, 1021025245, 3467647198, 3722505002, 797665321, 2197175160, 1889384571, 1674398607, 2443626636, 1164749927, 3070701412, 2757221520, 1446797203, 137323447, 4198817972, 3910406976, 461344835, 3484808360, 1037989803, 781091935, 3705997148, 2460548119, 1623424788, 1939049696, 2180517859, 1429367560, 2807687179, 3020495871, 1180866812, 410100952, 3927582683, 4182430767, 186734380, 3756733383, 763408580, 1053836080, 3434856499, 2722870694, 1344288421, 1131464017, 2971354706, 1708204729, 2545590714, 2229949006, 1988219213, 680717673, 3673779818, 3383336350, 1002577565, 4010310262, 493091189, 238226049, 4233660802, 2987750089, 1082061258, 1395524158, 2705686845, 1972364758, 2279892693, 2494862625, 1725896226, 952904198, 3399985413, 3656866545, 731699698, 4283874585, 222117402, 510512622, 3959836397, 3280807620, 837199303, 582374963, 3504198960, 68661723, 4135334616, 3844915500, 390545967, 1230274059, 3141532936, 2825850620, 1510247935, 2395924756, 2091215383, 1878366691, 2644384480, 3553878443, 565732008, 854102364, 3229815391, 340358836, 3861050807, 4117890627, 119113024, 1493875044, 2875275879, 3090270611, 1247431312, 2660249211, 1828433272, 2141937292, 2378227087, 3811616794, 291187481, 34330861, 4032846830, 615137029, 3603020806, 3314634738, 939183345, 1776939221, 2609017814, 2295496738, 2058945313, 2926798794, 1545135305, 1330124605, 3173225534, 4084100981, 17165430, 307568514, 3762199681, 888469610, 3332340585, 3587147933, 665062302, 2042050490, 2346497209, 2559330125, 1793573966, 3190661285, 1279665062, 1595330642, 2910671697);
308
+ function getCRC32Table2() {
309
+ return CRC32C_TABLE;
310
+ }
311
+
312
+ // src/lib/crc32c-hash.ts
313
+ var CRC32CHash = class extends Hash {
314
+ name = "crc32c";
315
+ /**
316
+ * Atomic hash calculation
317
+ * @returns base64 encoded hash
318
+ */
319
+ constructor(options = {}) {
320
+ super();
321
+ this.options = {
322
+ crypto: {},
323
+ ...options
324
+ };
325
+ this._hash = new CRC32C(options);
326
+ }
327
+ /**
328
+ * Atomic hash calculation
329
+ * @returns base64 encoded hash
330
+ */
331
+ async hash(input, encoding) {
332
+ return this.hashSync(input, encoding);
333
+ }
334
+ hashSync(input, encoding) {
335
+ this._hash.update(input);
336
+ const digest = this._hash.finalize();
337
+ return encodeNumber(digest, encoding);
338
+ }
339
+ // runInBatches inherited
340
+ async *hashBatches(asyncIterator, encoding = "base64") {
341
+ for await (const chunk of asyncIterator) {
342
+ this._hash.update(chunk);
343
+ yield chunk;
344
+ }
345
+ const digest = this._hash.finalize();
346
+ const hash = encodeNumber(digest, encoding);
347
+ this.options.crypto?.onEnd?.({
348
+ hash
349
+ });
350
+ }
351
+ };
352
+
353
+ // src/lib/algorithms/md5-wasm.ts
354
+ var atb = typeof atob === "function" ? atob : typeof Buffer === "function" ? nodeATOB : identity;
355
+ var wasmB64 = atb("AGFzbQEAAAABDANgAX8AYAAAYAABfwIeAgdpbXBvcnRzA2xvZwAAB2ltcG9ydHMDbWVtAgABAzIxAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAAAAAAAAAAAAgICAgIAAAAAAAaYARt/AUGBxpS6Bgt/AUGJ17b+fgt/AUH+uevFeQt/AUH2qMmBAQt/AUEAC38BQQALfwFBAAt/AUEAC38BQQALfwFBAAt/AUEAC38BQQALfwFBAAt/AUEAC38BQQALfwFBAAt/AUEAC38BQQALfwFBAAt/AUEAC38BQQALfwFBAAt/AUEAC38BQQALfwFBAAt/AUEAC38BQQALB7oCJQhvbmVGdWxsQQAYCG9uZUZ1bGxCABkIb25lRnVsbEMAGghvbmVGdWxsRAAbBWxvb3BzAAEEbG9vcAACBXByaW1lAAMFbG9vcEEABAZsb29wQTEABQZsb29wQTIABgZsb29wQTMABwZsb29wQTQACAVsb29wQgAJBmxvb3BCMQAKBmxvb3BCMgALBmxvb3BCMwAMBmxvb3BCNAANBWxvb3BDAA4GbG9vcEMxAA8GbG9vcEMyABAGbG9vcEMzABEGbG9vcEM0ABIFbG9vcEQAEwZsb29wRDEAFAZsb29wRDIAFQZsb29wRDMAFgZsb29wRDQAFwRnZXRBACgEZ2V0QgApBGdldEMAKgRnZXREACsEZ2V0WAAsBHNldEEALQRzZXRCAC4Ec2V0QwAvBHNldEQAMARzZXRYADEKzA0xWwEBf0EAJAggAEEGdCEBAkADQCMIIAFGDQEjACQEIwEkBSMCJAYjAyQHEAIjBCMAaiQAIwUjAWokASMGIwJqJAIjByMDaiQDIwhBwABqJAgMAAsLIwgjGmokGgsTACMIIxpqJAkQAxAEEAkQDhATC6IBAEEAIwlqKAIAJApBBCMJaigCACQLQQgjCWooAgAkDEEMIwlqKAIAJA1BECMJaigCACQOQRQjCWooAgAkD0EYIwlqKAIAJBBBHCMJaigCACQRQSAjCWooAgAkEkEkIwlqKAIAJBNBKCMJaigCACQUQSwjCWooAgAkFUEwIwlqKAIAJBZBNCMJaigCACQXQTgjCWooAgAkGEE8IwlqKAIAJBkLCgAQBRAGEAcQCAsuAEH4yKq7fSMKahAYQdbunsZ+IwtqEBtB2+GBoQIjDGoQGkHunfeNfCMNahAZCy0AQa+f8Kt/Iw5qEBhBqoyfvAQjD2oQG0GTjMHBeiMQahAaQYGqmmojEWoQGQssAEHYsYLMBiMSahAYQa/vk9p4IxNqEBtBsbd9IxRqEBpBvq/zyngjFWoQGQstAEGiosDcBiMWahAYQZPj4WwjF2oQG0GOh+WzeiMYahAaQaGQ0M0EIxlqEBkLCgAQChALEAwQDQsuAEHiyviwfyMLahAcQcDmgoJ8IxBqEB9B0bT5sgIjFWoQHkGqj9vNfiMKahAdCy0AQd2gvLF9Iw9qEBxB06iQEiMUahAfQYHNh8V9IxlqEB5ByPfPvn4jDmoQHQsuAEHmm4ePAiMTahAcQdaP3Jl8IxhqEB9Bh5vUpn8jDWoQHkHtqeiqBCMSahAdCy0AQYXSj896IxdqEBxB+Me+ZyMMahAfQdmFvLsGIxFqEB5Bipmp6XgjFmoQHQsKABAPEBAQERASCysAQcLyaCMPahAgQYHtx7t4IxJqECNBosL17AYjFWoQIkGM8JRvIxhqECELLgBBxNT7pXojC2oQIEGpn/veBCMOahAjQeCW7bV/IxFqECJB8Pj+9XsjFGoQIQstAEHG/e3EAiMXahAgQfrPhNV+IwpqECNBheG8p30jDWoQIkGFuqAkIxBqECELLgBBuaDTzn0jE2oQIEHls+62fiMWahAjQfj5if0BIxlqECJB5ayxpXwjDGoQIQsKABAUEBUQFhAXCy0AQcTEpKF/IwpqECRBl/+rmQQjEWoQJ0Gnx9DceiMYahAmQbnAzmQjD2oQJQstAEHDs+2qBiMWahAkQZKZs/h4Iw1qECdB/ei/fyMUahAmQdG7kax4IwtqECULLQBBz/yh/QYjEmoQJEHgzbNxIxlqECdBlIaFmHojEGoQJkGho6DwBCMXahAlCy4AQYL9zbp/Iw5qECRBteTr6XsjFWoQJ0G7pd/WAiMMahAmQZGnm9x+IxNqECULKAEBf0F/IwFzIwNxIwEjAnFyIwBqIABqIgFBB3QgAUEZdnIjAWokAAsoAQF/QX8jAnMjAHEjAiMDcXIjAWogAGoiAUEWdCABQQp2ciMCaiQBCygBAX9BfyMDcyMBcSMDIwBxciMCaiAAaiIBQRF0IAFBD3ZyIwNqJAILKAEBf0F/IwBzIwJxIwAjAXFyIwNqIABqIgFBDHQgAUEUdnIjAGokAwsoAQF/IwJBfyMDc3EjASMDcXIjAGogAGoiAUEFdCABQRt2ciMBaiQACygBAX8jA0F/IwBzcSMCIwBxciMBaiAAaiIBQRR0IAFBDHZyIwJqJAELKAEBfyMAQX8jAXNxIwMjAXFyIwJqIABqIgFBDnQgAUESdnIjA2okAgsoAQF/IwFBfyMCc3EjACMCcXIjA2ogAGoiAUEJdCABQRd2ciMAaiQDCyIBAX8jASMCcyMDcyMAaiAAaiIBQQR0IAFBHHZyIwFqJAALIgEBfyMCIwNzIwBzIwFqIABqIgFBF3QgAUEJdnIjAmokAQsiAQF/IwMjAHMjAXMjAmogAGoiAUEQdCABQRB2ciMDaiQCCyIBAX8jACMBcyMCcyMDaiAAaiIBQQt0IAFBFXZyIwBqJAMLJQEBf0F/IwNzIwFyIwJzIwBqIABqIgFBBnQgAUEadnIjAWokAAslAQF/QX8jAHMjAnIjA3MjAWogAGoiAUEVdCABQQt2ciMCaiQBCyUBAX9BfyMBcyMDciMAcyMCaiAAaiIBQQ90IAFBEXZyIwNqJAILJQEBf0F/IwJzIwByIwFzIwNqIABqIgFBCnQgAUEWdnIjAGokAwsEACMACwQAIwELBAAjAgsEACMDCwQAIxoLBgAgACQACwYAIAAkAQsGACAAJAILBgAgACQDCwYAIAAkGgsA6gQEbmFtZQGSAzIAA2xvZwEFbG9vcHMCBGxvb3ADBXByaW1lBAVsb29wQQUGbG9vcEExBgZsb29wQTIHBmxvb3BBMwgGbG9vcEE0CQVsb29wQgoGbG9vcEIxCwZsb29wQjIMBmxvb3BCMw0GbG9vcEI0DgVsb29wQw8GbG9vcEMxEAZsb29wQzIRBmxvb3BDMxIGbG9vcEM0EwVsb29wRBQGbG9vcEQxFQZsb29wRDIWBmxvb3BEMxcGbG9vcEQ0GAhvbmVGdWxsQRkIb25lRnVsbEIaCG9uZUZ1bGxDGwhvbmVGdWxsRBwIdHdvRnVsbEEdCHR3b0Z1bGxCHgh0d29GdWxsQx8IdHdvRnVsbEQgCHRyZUZ1bGxBIQh0cmVGdWxsQiIIdHJlRnVsbEMjCHRyZUZ1bGxEJAhxdWFGdWxsQSUIcXVhRnVsbEImCHF1YUZ1bGxDJwhxdWFGdWxsRCgEZ2V0QSkEZ2V0QioEZ2V0QysEZ2V0RCwEZ2V0WC0Ec2V0QS4Ec2V0Qi8Ec2V0QzAEc2V0RDEEc2V0WALNATIAAQAAAQIAAAEIbnVtbG9vcHMCAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8AEAARABIAEwAUABUAFgAXABgCAAABAW4ZAgAAAQFuGgIAAAEBbhsCAAABAW4cAgAAAQFuHQIAAAEBbh4CAAABAW4fAgAAAQFuIAIAAAEBbiECAAABAW4iAgAAAQFuIwIAAAEBbiQCAAABAW4lAgAAAQFuJgIAAAEBbicCAAABAW4oACkAKgArACwALQEAAC4BAAAvAQAAMAEAADEBAAA=");
356
+ var wasm = WebAssembly && atb !== identity ? str2AB(wasmB64).buffer : false;
357
+ var crypt = makeCrypt();
358
+ var biteSize = 240 * 16 * 16;
359
+ var bounder = Math.floor(biteSize * 16 * 1.066666667);
360
+ var upperLimit = 268435456 - 65536;
361
+ var parmTypeErrStr = "Parameter must be Buffer, ArrayBuffer or Uint8Array";
362
+ var tooBigErrStr = "Parameter exceeds max size of 255.9 Mbytes";
363
+ if (!wasm) {
364
+ console.log("WebAssembly not available or WASM module could not be decoded; md5WASM will fall back to JavaScript");
365
+ }
366
+ function md5WASM(data) {
367
+ var mem, memView, importObj, imports, len, buff, thenFun, catchFun, result, endTime;
368
+ const md5JS = makeMD5JS(), md5WA = makeMD5WA(), returnObj = {}, startTime = new Date().getTime();
369
+ returnObj["then"] = function(fun) {
370
+ thenFun = fun;
371
+ getThen();
372
+ return returnObj;
373
+ };
374
+ returnObj["catch"] = function(fun) {
375
+ catchFun = fun;
376
+ return returnObj;
377
+ };
378
+ if (true) {
379
+ if (data && typeof data === "object") {
380
+ if (typeof Buffer === "function" && data.constructor === Buffer) {
381
+ buff = data;
382
+ } else {
383
+ if (data.constructor === Uint8Array || data.constructor === ArrayBuffer) {
384
+ buff = data.constructor === ArrayBuffer ? new Uint8Array(data) : data;
385
+ } else {
386
+ getCatch(new TypeError(parmTypeErrStr));
387
+ }
388
+ }
389
+ } else {
390
+ getCatch(new TypeError(parmTypeErrStr));
391
+ }
392
+ }
393
+ if (buff) {
394
+ len = buff.length;
395
+ if (wasm && len > bounder) {
396
+ if (len > upperLimit) {
397
+ getCatch(new Error(tooBigErrStr));
398
+ } else {
399
+ mem = new WebAssembly.Memory({
400
+ initial: len > 32e6 ? len > 64e6 ? len > 128e6 ? 4096 : 2048 : 1024 : 512
401
+ });
402
+ memView = new Uint32Array(mem.buffer);
403
+ imports = {
404
+ mem,
405
+ log: console.log
406
+ };
407
+ importObj = {
408
+ imports
409
+ };
410
+ WebAssembly.instantiate(wasm, importObj).then(giterdone);
411
+ }
412
+ } else {
413
+ getThen(md5JS(buff));
414
+ }
415
+ }
416
+ return returnObj;
417
+ function giterdone(obj) {
418
+ getThen(md5WA(buff, obj.instance.exports, memView));
419
+ }
420
+ function getThen(r) {
421
+ var res = Boolean(r) ? r : result;
422
+ if (Boolean(r)) {
423
+ endTime = new Date().getTime();
424
+ }
425
+ if (typeof thenFun === "function") {
426
+ if (Boolean(res)) {
427
+ thenFun(res, endTime - startTime);
428
+ thenFun = catchFun = null;
429
+ }
430
+ } else {
431
+ if (Boolean(r)) {
432
+ result = r;
433
+ }
434
+ }
435
+ }
436
+ function getCatch(err) {
437
+ if (typeof catchFun === "function") {
438
+ catchFun(err);
439
+ }
440
+ }
441
+ }
442
+ function makeMD5WA() {
443
+ var loop, loops;
444
+ var getA, setA, getB, setB, getC, setC, getD, setD, getX, setX, memView;
445
+ var md5WA = function(message) {
446
+ var m00, m01, m02, m03, m04, m05, m06, m07, m08, m09, m10, m11, m12, m13, m14, m15, aa, bb, cc, dd, m, k;
447
+ var qwerty = new Date().getTime();
448
+ var md5Used = 0;
449
+ var a = 1732584193, b = -271733879, c = -1732584194, d = 271733878, i = 0, l = message.length * 8, len;
450
+ len = bytesToWordsNewer(message, memView);
451
+ memView[l >>> 5] |= 128 << l % 32;
452
+ memView[(l + 64 >>> 9 << 4) + 14] = l;
453
+ len = (l + 64 >>> 9 << 4) + 15;
454
+ m = memView;
455
+ while (i < len) {
456
+ if (len > i + bounder) {
457
+ setA(a);
458
+ setB(b);
459
+ setC(c);
460
+ setD(d);
461
+ loops(biteSize);
462
+ i = i + biteSize * 16;
463
+ a = getA();
464
+ b = getB();
465
+ c = getC();
466
+ d = getD();
467
+ md5Used++;
468
+ } else {
469
+ aa = a;
470
+ bb = b;
471
+ cc = c;
472
+ dd = d;
473
+ m00 = m[i + 0] >>> 0;
474
+ m01 = m[i + 1] >>> 0;
475
+ m02 = m[i + 2] >>> 0;
476
+ m03 = m[i + 3] >>> 0;
477
+ m04 = m[i + 4] >>> 0;
478
+ m05 = m[i + 5] >>> 0;
479
+ m06 = m[i + 6] >>> 0;
480
+ m07 = m[i + 7] >>> 0;
481
+ m08 = m[i + 8] >>> 0;
482
+ m09 = m[i + 9] >>> 0;
483
+ m10 = m[i + 10] >>> 0;
484
+ m11 = m[i + 11] >>> 0;
485
+ m12 = m[i + 12] >>> 0;
486
+ m13 = m[i + 13] >>> 0;
487
+ m14 = m[i + 14] >>> 0;
488
+ m15 = m[i + 15] >>> 0;
489
+ a = ____(7, 25, a + (b & c | ~b & d) + m00 - 680876936) + b;
490
+ d = ____(12, 20, d + (a & b | ~a & c) + m01 - 389564586) + a;
491
+ c = ____(17, 15, c + (d & a | ~d & b) + m02 + 606105819) + d;
492
+ b = ____(22, 10, b + (c & d | ~c & a) + m03 - 1044525330) + c;
493
+ a = ____(7, 25, a + (b & c | ~b & d) + m04 - 176418897) + b;
494
+ d = ____(12, 20, d + (a & b | ~a & c) + m05 + 1200080426) + a;
495
+ c = ____(17, 15, c + (d & a | ~d & b) + m06 - 1473231341) + d;
496
+ b = ____(22, 10, b + (c & d | ~c & a) + m07 - 45705983) + c;
497
+ a = ____(7, 25, a + (b & c | ~b & d) + m08 + 1770035416) + b;
498
+ d = ____(12, 20, d + (a & b | ~a & c) + m09 - 1958414417) + a;
499
+ c = ____(17, 15, c + (d & a | ~d & b) + m10 - 42063) + d;
500
+ b = ____(22, 10, b + (c & d | ~c & a) + m11 - 1990404162) + c;
501
+ a = ____(7, 25, a + (b & c | ~b & d) + m12 + 1804603682) + b;
502
+ d = ____(12, 20, d + (a & b | ~a & c) + m13 - 40341101) + a;
503
+ c = ____(17, 15, c + (d & a | ~d & b) + m14 - 1502002290) + d;
504
+ b = ____(22, 10, b + (c & d | ~c & a) + m15 + 1236535329) + c;
505
+ a = ____(5, 27, a + (b & d | c & ~d) + m01 - 165796510) + b;
506
+ d = ____(9, 23, d + (a & c | b & ~c) + m06 - 1069501632) + a;
507
+ c = ____(14, 18, c + (d & b | a & ~b) + m11 + 643717713) + d;
508
+ b = ____(20, 12, b + (c & a | d & ~a) + m00 - 373897302) + c;
509
+ a = ____(5, 27, a + (b & d | c & ~d) + m05 - 701558691) + b;
510
+ d = ____(9, 23, d + (a & c | b & ~c) + m10 + 38016083) + a;
511
+ c = ____(14, 18, c + (d & b | a & ~b) + m15 - 660478335) + d;
512
+ b = ____(20, 12, b + (c & a | d & ~a) + m04 - 405537848) + c;
513
+ a = ____(5, 27, a + (b & d | c & ~d) + m09 + 568446438) + b;
514
+ d = ____(9, 23, d + (a & c | b & ~c) + m14 - 1019803690) + a;
515
+ c = ____(14, 18, c + (d & b | a & ~b) + m03 - 187363961) + d;
516
+ b = ____(20, 12, b + (c & a | d & ~a) + m08 + 1163531501) + c;
517
+ a = ____(5, 27, a + (b & d | c & ~d) + m13 - 1444681467) + b;
518
+ d = ____(9, 23, d + (a & c | b & ~c) + m02 - 51403784) + a;
519
+ c = ____(14, 18, c + (d & b | a & ~b) + m07 + 1735328473) + d;
520
+ b = ____(20, 12, b + (c & a | d & ~a) + m12 - 1926607734) + c;
521
+ a = ____(4, 28, a + (b ^ c ^ d) + m05 - 378558) + b;
522
+ d = ____(11, 21, d + (a ^ b ^ c) + m08 - 2022574463) + a;
523
+ c = ____(16, 16, c + (d ^ a ^ b) + m11 + 1839030562) + d;
524
+ b = ____(23, 9, b + (c ^ d ^ a) + m14 - 35309556) + c;
525
+ a = ____(4, 28, a + (b ^ c ^ d) + m01 - 1530992060) + b;
526
+ d = ____(11, 21, d + (a ^ b ^ c) + m04 + 1272893353) + a;
527
+ c = ____(16, 16, c + (d ^ a ^ b) + m07 - 155497632) + d;
528
+ b = ____(23, 9, b + (c ^ d ^ a) + m10 - 1094730640) + c;
529
+ a = ____(4, 28, a + (b ^ c ^ d) + m13 + 681279174) + b;
530
+ d = ____(11, 21, d + (a ^ b ^ c) + m00 - 358537222) + a;
531
+ c = ____(16, 16, c + (d ^ a ^ b) + m03 - 722521979) + d;
532
+ b = ____(23, 9, b + (c ^ d ^ a) + m06 + 76029189) + c;
533
+ a = ____(4, 28, a + (b ^ c ^ d) + m09 - 640364487) + b;
534
+ d = ____(11, 21, d + (a ^ b ^ c) + m12 - 421815835) + a;
535
+ c = ____(16, 16, c + (d ^ a ^ b) + m15 + 530742520) + d;
536
+ b = ____(23, 9, b + (c ^ d ^ a) + m02 - 995338651) + c;
537
+ a = ____(6, 26, a + (c ^ (b | ~d)) + m00 - 198630844) + b;
538
+ d = ____(10, 22, d + (b ^ (a | ~c)) + m07 + 1126891415) + a;
539
+ c = ____(15, 17, c + (a ^ (d | ~b)) + m14 - 1416354905) + d;
540
+ b = ____(21, 11, b + (d ^ (c | ~a)) + m05 - 57434055) + c;
541
+ a = ____(6, 26, a + (c ^ (b | ~d)) + m12 + 1700485571) + b;
542
+ d = ____(10, 22, d + (b ^ (a | ~c)) + m03 - 1894986606) + a;
543
+ c = ____(15, 17, c + (a ^ (d | ~b)) + m10 - 1051523) + d;
544
+ b = ____(21, 11, b + (d ^ (c | ~a)) + m01 - 2054922799) + c;
545
+ a = ____(6, 26, a + (c ^ (b | ~d)) + m08 + 1873313359) + b;
546
+ d = ____(10, 22, d + (b ^ (a | ~c)) + m15 - 30611744) + a;
547
+ c = ____(15, 17, c + (a ^ (d | ~b)) + m06 - 1560198380) + d;
548
+ b = ____(21, 11, b + (d ^ (c | ~a)) + m13 + 1309151649) + c;
549
+ a = ____(6, 26, a + (c ^ (b | ~d)) + m04 - 145523070) + b;
550
+ d = ____(10, 22, d + (b ^ (a | ~c)) + m11 - 1120210379) + a;
551
+ c = ____(15, 17, c + (a ^ (d | ~b)) + m02 + 718787259) + d;
552
+ b = ____(21, 11, b + (d ^ (c | ~a)) + m09 - 343485551) + c;
553
+ i = i + 16;
554
+ a = a + aa >>> 0;
555
+ b = b + bb >>> 0;
556
+ c = c + cc >>> 0;
557
+ d = d + dd >>> 0;
558
+ }
559
+ }
560
+ return crypt.endian([a, b, c, d]);
561
+ function ____(s, t, n) {
562
+ return n << s | n >>> t;
563
+ }
564
+ function bytesToWordsNewer(bytes, words) {
565
+ var i2 = -1, l2 = Math.floor((bytes.length - 1) / 4), j = 0, b0, b1, b2, b3;
566
+ while (l2 - 8 > i2++) {
567
+ j = i2 << 2;
568
+ words[i2] = bytes[j + 0] | bytes[j + 1] << 8 | bytes[j + 2] << 16 | bytes[j + 3] << 24;
569
+ }
570
+ i2--;
571
+ while (l2 > i2++) {
572
+ j = i2 << 2;
573
+ b0 = typeof bytes[j + 0] === "undefined" ? 0 : bytes[j + 0];
574
+ b1 = typeof bytes[j + 1] === "undefined" ? 0 : bytes[j + 1];
575
+ b2 = typeof bytes[j + 2] === "undefined" ? 0 : bytes[j + 2];
576
+ b3 = typeof bytes[j + 3] === "undefined" ? 0 : bytes[j + 3];
577
+ words[i2] = b0 | b1 << 8 | b2 << 16 | b3 << 24;
578
+ }
579
+ return l2 + 1;
580
+ }
581
+ };
582
+ return function(message, exports, mView, options) {
583
+ var digestbytes;
584
+ loops = exports.loops;
585
+ loop = exports.loop;
586
+ getA = exports.getA;
587
+ getB = exports.getB;
588
+ getC = exports.getC;
589
+ getD = exports.getD;
590
+ getX = exports.getX;
591
+ setA = exports.setA;
592
+ setB = exports.setB;
593
+ setC = exports.setC;
594
+ setD = exports.setD;
595
+ setX = exports.setX;
596
+ memView = mView;
597
+ digestbytes = crypt.wordsToBytes(md5WA(message));
598
+ return options && options.asBytes ? digestbytes : crypt.bytesconvertNumberToHex(digestbytes);
599
+ };
600
+ }
601
+ function makeMD5JS() {
602
+ var md5JS = function(message, options) {
603
+ var m00, m01, m02, m03, m04, m05, m06, m07, m08, m09, m10, m11, m12, m13, m14, m15, aa, bb, cc, dd, m;
604
+ var qwerty = new Date().getTime();
605
+ var a = 1732584193, b = -271733879, c = -1732584194, d = 271733878, l = message.length * 8;
606
+ m = crypt.bytesToWords(message);
607
+ for (var j = 0; j < m.length; j++) {
608
+ m[j] = (m[j] << 8 | m[j] >>> 24) & 16711935 | (m[j] << 24 | m[j] >>> 8) & 4278255360;
609
+ }
610
+ m[l >>> 5] |= 128 << l % 32;
611
+ m[(l + 64 >>> 9 << 4) + 14] = l;
612
+ for (var i = 0; i < m.length; i += 16) {
613
+ aa = a;
614
+ bb = b;
615
+ cc = c;
616
+ dd = d;
617
+ m00 = m[i + 0] >>> 0;
618
+ m01 = m[i + 1] >>> 0;
619
+ m02 = m[i + 2] >>> 0;
620
+ m03 = m[i + 3] >>> 0;
621
+ m04 = m[i + 4] >>> 0;
622
+ m05 = m[i + 5] >>> 0;
623
+ m06 = m[i + 6] >>> 0;
624
+ m07 = m[i + 7] >>> 0;
625
+ m08 = m[i + 8] >>> 0;
626
+ m09 = m[i + 9] >>> 0;
627
+ m10 = m[i + 10] >>> 0;
628
+ m11 = m[i + 11] >>> 0;
629
+ m12 = m[i + 12] >>> 0;
630
+ m13 = m[i + 13] >>> 0;
631
+ m14 = m[i + 14] >>> 0;
632
+ m15 = m[i + 15] >>> 0;
633
+ a = ____(7, 25, a + (b & c | ~b & d) + m00 - 680876936) + b;
634
+ d = ____(12, 20, d + (a & b | ~a & c) + m01 - 389564586) + a;
635
+ c = ____(17, 15, c + (d & a | ~d & b) + m02 + 606105819) + d;
636
+ b = ____(22, 10, b + (c & d | ~c & a) + m03 - 1044525330) + c;
637
+ a = ____(7, 25, a + (b & c | ~b & d) + m04 - 176418897) + b;
638
+ d = ____(12, 20, d + (a & b | ~a & c) + m05 + 1200080426) + a;
639
+ c = ____(17, 15, c + (d & a | ~d & b) + m06 - 1473231341) + d;
640
+ b = ____(22, 10, b + (c & d | ~c & a) + m07 - 45705983) + c;
641
+ a = ____(7, 25, a + (b & c | ~b & d) + m08 + 1770035416) + b;
642
+ d = ____(12, 20, d + (a & b | ~a & c) + m09 - 1958414417) + a;
643
+ c = ____(17, 15, c + (d & a | ~d & b) + m10 - 42063) + d;
644
+ b = ____(22, 10, b + (c & d | ~c & a) + m11 - 1990404162) + c;
645
+ a = ____(7, 25, a + (b & c | ~b & d) + m12 + 1804603682) + b;
646
+ d = ____(12, 20, d + (a & b | ~a & c) + m13 - 40341101) + a;
647
+ c = ____(17, 15, c + (d & a | ~d & b) + m14 - 1502002290) + d;
648
+ b = ____(22, 10, b + (c & d | ~c & a) + m15 + 1236535329) + c;
649
+ a = ____(5, 27, a + (b & d | c & ~d) + m01 - 165796510) + b;
650
+ d = ____(9, 23, d + (a & c | b & ~c) + m06 - 1069501632) + a;
651
+ c = ____(14, 18, c + (d & b | a & ~b) + m11 + 643717713) + d;
652
+ b = ____(20, 12, b + (c & a | d & ~a) + m00 - 373897302) + c;
653
+ a = ____(5, 27, a + (b & d | c & ~d) + m05 - 701558691) + b;
654
+ d = ____(9, 23, d + (a & c | b & ~c) + m10 + 38016083) + a;
655
+ c = ____(14, 18, c + (d & b | a & ~b) + m15 - 660478335) + d;
656
+ b = ____(20, 12, b + (c & a | d & ~a) + m04 - 405537848) + c;
657
+ a = ____(5, 27, a + (b & d | c & ~d) + m09 + 568446438) + b;
658
+ d = ____(9, 23, d + (a & c | b & ~c) + m14 - 1019803690) + a;
659
+ c = ____(14, 18, c + (d & b | a & ~b) + m03 - 187363961) + d;
660
+ b = ____(20, 12, b + (c & a | d & ~a) + m08 + 1163531501) + c;
661
+ a = ____(5, 27, a + (b & d | c & ~d) + m13 - 1444681467) + b;
662
+ d = ____(9, 23, d + (a & c | b & ~c) + m02 - 51403784) + a;
663
+ c = ____(14, 18, c + (d & b | a & ~b) + m07 + 1735328473) + d;
664
+ b = ____(20, 12, b + (c & a | d & ~a) + m12 - 1926607734) + c;
665
+ a = ____(4, 28, a + (b ^ c ^ d) + m05 - 378558) + b;
666
+ d = ____(11, 21, d + (a ^ b ^ c) + m08 - 2022574463) + a;
667
+ c = ____(16, 16, c + (d ^ a ^ b) + m11 + 1839030562) + d;
668
+ b = ____(23, 9, b + (c ^ d ^ a) + m14 - 35309556) + c;
669
+ a = ____(4, 28, a + (b ^ c ^ d) + m01 - 1530992060) + b;
670
+ d = ____(11, 21, d + (a ^ b ^ c) + m04 + 1272893353) + a;
671
+ c = ____(16, 16, c + (d ^ a ^ b) + m07 - 155497632) + d;
672
+ b = ____(23, 9, b + (c ^ d ^ a) + m10 - 1094730640) + c;
673
+ a = ____(4, 28, a + (b ^ c ^ d) + m13 + 681279174) + b;
674
+ d = ____(11, 21, d + (a ^ b ^ c) + m00 - 358537222) + a;
675
+ c = ____(16, 16, c + (d ^ a ^ b) + m03 - 722521979) + d;
676
+ b = ____(23, 9, b + (c ^ d ^ a) + m06 + 76029189) + c;
677
+ a = ____(4, 28, a + (b ^ c ^ d) + m09 - 640364487) + b;
678
+ d = ____(11, 21, d + (a ^ b ^ c) + m12 - 421815835) + a;
679
+ c = ____(16, 16, c + (d ^ a ^ b) + m15 + 530742520) + d;
680
+ b = ____(23, 9, b + (c ^ d ^ a) + m02 - 995338651) + c;
681
+ a = ____(6, 26, a + (c ^ (b | ~d)) + m00 - 198630844) + b;
682
+ d = ____(10, 22, d + (b ^ (a | ~c)) + m07 + 1126891415) + a;
683
+ c = ____(15, 17, c + (a ^ (d | ~b)) + m14 - 1416354905) + d;
684
+ b = ____(21, 11, b + (d ^ (c | ~a)) + m05 - 57434055) + c;
685
+ a = ____(6, 26, a + (c ^ (b | ~d)) + m12 + 1700485571) + b;
686
+ d = ____(10, 22, d + (b ^ (a | ~c)) + m03 - 1894986606) + a;
687
+ c = ____(15, 17, c + (a ^ (d | ~b)) + m10 - 1051523) + d;
688
+ b = ____(21, 11, b + (d ^ (c | ~a)) + m01 - 2054922799) + c;
689
+ a = ____(6, 26, a + (c ^ (b | ~d)) + m08 + 1873313359) + b;
690
+ d = ____(10, 22, d + (b ^ (a | ~c)) + m15 - 30611744) + a;
691
+ c = ____(15, 17, c + (a ^ (d | ~b)) + m06 - 1560198380) + d;
692
+ b = ____(21, 11, b + (d ^ (c | ~a)) + m13 + 1309151649) + c;
693
+ a = ____(6, 26, a + (c ^ (b | ~d)) + m04 - 145523070) + b;
694
+ d = ____(10, 22, d + (b ^ (a | ~c)) + m11 - 1120210379) + a;
695
+ c = ____(15, 17, c + (a ^ (d | ~b)) + m02 + 718787259) + d;
696
+ b = ____(21, 11, b + (d ^ (c | ~a)) + m09 - 343485551) + c;
697
+ a = a + aa >>> 0;
698
+ b = b + bb >>> 0;
699
+ c = c + cc >>> 0;
700
+ d = d + dd >>> 0;
701
+ }
702
+ return crypt.endian([a, b, c, d]);
703
+ function ____(s, t, n) {
704
+ return n << s | n >>> t;
705
+ }
706
+ };
707
+ return function(message, options) {
708
+ var digestbytes = crypt.wordsToBytes(md5JS(message, options)), result = options && options.asBytes ? digestbytes : crypt.bytesconvertNumberToHex(digestbytes);
709
+ return result;
710
+ };
711
+ }
712
+ function str2AB(str) {
713
+ var l, buff, buffView, i = -1;
714
+ l = str.length - 1;
715
+ buff = new ArrayBuffer(str.length);
716
+ buffView = new Uint8Array(buff);
717
+ while (l > i++) {
718
+ buffView[i] = str.charCodeAt(i);
719
+ }
720
+ return buffView;
721
+ }
722
+ function nodeATOB(str) {
723
+ return Buffer.from(str, "base64").toString("binary");
724
+ }
725
+ function identity(x) {
726
+ return x;
727
+ }
728
+ function makeCrypt() {
729
+ var base64map = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
730
+ return {
731
+ rotl: function(n, b) {
732
+ return n << b | n >>> 32 - b;
733
+ },
734
+ endian: function(n) {
735
+ if (n.constructor == Number) {
736
+ return crypt.rotl(n, 8) & 16711935 | crypt.rotl(n, 24) & 4278255360;
737
+ }
738
+ for (var i = 0; i < n.length; i++)
739
+ n[i] = crypt.endian(n[i]);
740
+ return n;
741
+ },
742
+ bytesToWords: function(bytes) {
743
+ for (var words = [], i = 0, b = 0; i < bytes.length; i++, b += 8)
744
+ words[b >>> 5] |= bytes[i] << 24 - b % 32;
745
+ return words;
746
+ },
747
+ wordsToBytes: function(words) {
748
+ for (var bytes = [], b = 0; b < words.length * 32; b += 8)
749
+ bytes.push(words[b >>> 5] >>> 24 - b % 32 & 255);
750
+ return bytes;
751
+ },
752
+ bytesconvertNumberToHex: function(bytes) {
753
+ for (var hex = [], i = 0; i < bytes.length; i++) {
754
+ hex.push((bytes[i] >>> 4).toString(16));
755
+ hex.push((bytes[i] & 15).toString(16));
756
+ }
757
+ return hex.join("");
758
+ }
759
+ };
760
+ }
761
+
762
+ // src/lib/md5-hash.ts
763
+ var MD5Hash = class extends Hash {
764
+ name = "md5";
765
+ constructor(options = {}) {
766
+ super();
767
+ this.options = options;
768
+ }
769
+ /**
770
+ * Atomic hash calculation
771
+ * @returns base64 encoded hash
772
+ */
773
+ async hash(input, encoding) {
774
+ const md5Promise = new Promise((resolve, reject) => (
775
+ // @ts-expect-error
776
+ md5WASM(input).then(resolve).catch(reject)
777
+ ));
778
+ const hex = await md5Promise;
779
+ return encodeHex(hex, encoding);
780
+ }
781
+ };
782
+
783
+ // src/lib/crypto-hash.ts
784
+ var CryptoJS;
785
+ var CryptoHash = class extends Hash {
786
+ constructor(options) {
787
+ super();
788
+ this.options = options;
789
+ this._algorithm = this.options?.crypto?.algorithm;
790
+ if (!this._algorithm) {
791
+ throw new Error(this.name);
792
+ }
793
+ this.name = this._algorithm.toLowerCase();
794
+ }
795
+ async preload() {
796
+ if (!CryptoJS) {
797
+ CryptoJS = this.options?.modules?.CryptoJS;
798
+ }
799
+ if (!CryptoJS) {
800
+ throw new Error(this.name);
801
+ }
802
+ if (!this._hash) {
803
+ const algo = CryptoJS.algo[this._algorithm];
804
+ this._hash = algo.create();
805
+ }
806
+ if (!this._hash) {
807
+ throw new Error(this.name);
808
+ }
809
+ }
810
+ /**
811
+ * Atomic hash calculation
812
+ * @returns base64 encoded hash
813
+ */
814
+ async hash(input, encoding) {
815
+ await this.preload();
816
+ const typedWordArray = CryptoJS.lib.WordArray.create(input);
817
+ const enc = encoding === "base64" ? CryptoJS.enc.Base64 : CryptoJS.enc.Hex;
818
+ return this._hash.update(typedWordArray).finalize().toString(enc);
819
+ }
820
+ async *hashBatches(asyncIterator, encoding = "base64") {
821
+ await this.preload();
822
+ for await (const chunk of asyncIterator) {
823
+ const typedWordArray = CryptoJS.lib.WordArray.create(chunk);
824
+ this._hash.update(typedWordArray);
825
+ yield chunk;
826
+ }
827
+ const enc = encoding === "base64" ? CryptoJS.enc.Base64 : CryptoJS.enc.Hex;
828
+ const digest = this._hash.finalize().toString(enc);
829
+ this.options?.crypto?.onEnd?.({
830
+ hash: digest
831
+ });
832
+ }
833
+ };
834
+
835
+ // src/lib/sha256-hash.ts
836
+ var SHA256Hash = class extends CryptoHash {
837
+ constructor(options) {
838
+ super({
839
+ ...options,
840
+ crypto: {
841
+ ...options.crypto,
842
+ algorithm: "SHA256"
843
+ }
844
+ });
845
+ }
846
+ };
847
+
848
+ // src/index.ts
849
+ var VERSION = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
850
+ var CryptoWorker = {
851
+ id: "crypto",
852
+ name: "CRC32, CRC32c and MD5 Hashes",
853
+ module: "crypto",
854
+ version: VERSION,
855
+ options: {
856
+ crypto: {}
857
+ }
858
+ };
859
+ var CryptoJSWorker = {
860
+ id: "cryptojs",
861
+ name: "Cryptographic Hashes",
862
+ module: "crypto",
863
+ version: VERSION,
864
+ options: {
865
+ cryptojs: {}
866
+ }
867
+ };
868
+ return __toCommonJS(src_exports);
869
+ })();
870
+ return __exports__;
871
+ });