@fireproof/core 0.10.0-dev → 0.10.1-dev

Sign up to get free protection for your applications and to get access to all the features.
Files changed (90) hide show
  1. package/package.json +5 -1
  2. package/.eslintrc.cjs +0 -37
  3. package/.vscode/launch.json +0 -12
  4. package/dist/crdt-helpers.browser.js +0 -4961
  5. package/dist/crdt-helpers.browser.js.map +0 -7
  6. package/dist/crdt-helpers.cjs.js +0 -4823
  7. package/dist/crdt-helpers.cjs.js.map +0 -7
  8. package/dist/crdt-helpers.esm.js +0 -4788
  9. package/dist/crdt-helpers.esm.js.map +0 -7
  10. package/dist/crdt.browser.js +0 -18214
  11. package/dist/crdt.browser.js.map +0 -7
  12. package/dist/crdt.cjs.js +0 -8692
  13. package/dist/crdt.cjs.js.map +0 -7
  14. package/dist/crdt.esm.js +0 -8682
  15. package/dist/crdt.esm.js.map +0 -7
  16. package/dist/database.browser.js +0 -18867
  17. package/dist/database.browser.js.map +0 -7
  18. package/dist/database.cjs.js +0 -9296
  19. package/dist/database.cjs.js.map +0 -7
  20. package/dist/database.esm.js +0 -9288
  21. package/dist/database.esm.js.map +0 -7
  22. package/dist/loader-helpers.browser.js +0 -6943
  23. package/dist/loader-helpers.browser.js.map +0 -7
  24. package/dist/loader-helpers.cjs.js +0 -4419
  25. package/dist/loader-helpers.cjs.js.map +0 -7
  26. package/dist/loader-helpers.esm.js +0 -4408
  27. package/dist/loader-helpers.esm.js.map +0 -7
  28. package/dist/loader.browser.js +0 -15968
  29. package/dist/loader.browser.js.map +0 -7
  30. package/dist/loader.cjs.js +0 -6667
  31. package/dist/loader.cjs.js.map +0 -7
  32. package/dist/loader.esm.js +0 -6657
  33. package/dist/loader.esm.js.map +0 -7
  34. package/dist/store-browser.browser.js +0 -1414
  35. package/dist/store-browser.browser.js.map +0 -7
  36. package/dist/store-browser.cjs.js +0 -1387
  37. package/dist/store-browser.cjs.js.map +0 -7
  38. package/dist/store-browser.esm.js +0 -1358
  39. package/dist/store-browser.esm.js.map +0 -7
  40. package/dist/store-fs.browser.js +0 -16142
  41. package/dist/store-fs.browser.js.map +0 -7
  42. package/dist/store-fs.cjs.js +0 -1171
  43. package/dist/store-fs.cjs.js.map +0 -7
  44. package/dist/store-fs.esm.js +0 -1143
  45. package/dist/store-fs.esm.js.map +0 -7
  46. package/dist/store.browser.js +0 -1113
  47. package/dist/store.browser.js.map +0 -7
  48. package/dist/store.cjs.js +0 -1126
  49. package/dist/store.cjs.js.map +0 -7
  50. package/dist/store.esm.js +0 -1097
  51. package/dist/store.esm.js.map +0 -7
  52. package/dist/transaction.browser.js +0 -17241
  53. package/dist/transaction.browser.js.map +0 -7
  54. package/dist/transaction.cjs.js +0 -7842
  55. package/dist/transaction.cjs.js.map +0 -7
  56. package/dist/transaction.esm.js +0 -7831
  57. package/dist/transaction.esm.js.map +0 -7
  58. package/dist/types.d.browser.js +0 -4
  59. package/dist/types.d.browser.js.map +0 -7
  60. package/dist/types.d.cjs.js +0 -19
  61. package/dist/types.d.cjs.js.map +0 -7
  62. package/dist/types.d.esm.js +0 -1
  63. package/dist/types.d.esm.js.map +0 -7
  64. package/scripts/analyze.js +0 -31
  65. package/scripts/build.js +0 -20
  66. package/scripts/serve.js +0 -20
  67. package/scripts/settings.js +0 -65
  68. package/scripts/test.js +0 -14
  69. package/src/crdt-helpers.ts +0 -89
  70. package/src/crdt.ts +0 -45
  71. package/src/database.ts +0 -61
  72. package/src/fireproof.ts +0 -6
  73. package/src/loader-helpers.ts +0 -53
  74. package/src/loader.ts +0 -66
  75. package/src/store-browser.ts +0 -76
  76. package/src/store-fs.ts +0 -51
  77. package/src/store.ts +0 -32
  78. package/src/transaction.ts +0 -68
  79. package/src/types.d.ts +0 -38
  80. package/test/crdt.test.js +0 -142
  81. package/test/database.test.js +0 -144
  82. package/test/fireproof.test.js +0 -50
  83. package/test/globals.d.ts +0 -4
  84. package/test/hello.test.js +0 -9
  85. package/test/helpers.js +0 -34
  86. package/test/loader.test.js +0 -112
  87. package/test/store-fs.test.js +0 -105
  88. package/test/transaction.test.js +0 -90
  89. package/tsconfig.json +0 -18
  90. package/webpack.config.cjs +0 -17
@@ -1,4961 +0,0 @@
1
- "use strict";
2
- (() => {
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
- var __knownSymbol = (name2, symbol) => {
8
- if (symbol = Symbol[name2])
9
- return symbol;
10
- throw Error("Symbol." + name2 + " is not defined");
11
- };
12
- var __pow = Math.pow;
13
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
14
- var __spreadValues = (a, b) => {
15
- for (var prop in b || (b = {}))
16
- if (__hasOwnProp.call(b, prop))
17
- __defNormalProp(a, prop, b[prop]);
18
- if (__getOwnPropSymbols)
19
- for (var prop of __getOwnPropSymbols(b)) {
20
- if (__propIsEnum.call(b, prop))
21
- __defNormalProp(a, prop, b[prop]);
22
- }
23
- return a;
24
- };
25
- var __export = (target, all) => {
26
- for (var name2 in all)
27
- __defProp(target, name2, { get: all[name2], enumerable: true });
28
- };
29
- var __accessCheck = (obj, member, msg) => {
30
- if (!member.has(obj))
31
- throw TypeError("Cannot " + msg);
32
- };
33
- var __privateGet = (obj, member, getter) => {
34
- __accessCheck(obj, member, "read from private field");
35
- return getter ? getter.call(obj) : member.get(obj);
36
- };
37
- var __privateAdd = (obj, member, value) => {
38
- if (member.has(obj))
39
- throw TypeError("Cannot add the same private member more than once");
40
- member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
41
- };
42
- var __privateSet = (obj, member, value, setter) => {
43
- __accessCheck(obj, member, "write to private field");
44
- setter ? setter.call(obj, value) : member.set(obj, value);
45
- return value;
46
- };
47
- var __async = (__this, __arguments, generator) => {
48
- return new Promise((resolve, reject) => {
49
- var fulfilled = (value) => {
50
- try {
51
- step(generator.next(value));
52
- } catch (e) {
53
- reject(e);
54
- }
55
- };
56
- var rejected = (value) => {
57
- try {
58
- step(generator.throw(value));
59
- } catch (e) {
60
- reject(e);
61
- }
62
- };
63
- var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
64
- step((generator = generator.apply(__this, __arguments)).next());
65
- });
66
- };
67
- var __await = function(promise, isYieldStar) {
68
- this[0] = promise;
69
- this[1] = isYieldStar;
70
- };
71
- var __yieldStar = (value) => {
72
- var obj = value[__knownSymbol("asyncIterator")];
73
- var isAwait = false;
74
- var method;
75
- var it = {};
76
- if (obj == null) {
77
- obj = value[__knownSymbol("iterator")]();
78
- method = (k) => it[k] = (x) => obj[k](x);
79
- } else {
80
- obj = obj.call(value);
81
- method = (k) => it[k] = (v) => {
82
- if (isAwait) {
83
- isAwait = false;
84
- if (k === "throw")
85
- throw v;
86
- return v;
87
- }
88
- isAwait = true;
89
- return {
90
- done: false,
91
- value: new __await(new Promise((resolve) => {
92
- var x = obj[k](v);
93
- if (!(x instanceof Object))
94
- throw TypeError("Object expected");
95
- resolve(x);
96
- }), 1)
97
- };
98
- };
99
- }
100
- return it[__knownSymbol("iterator")] = () => it, method("next"), "throw" in obj ? method("throw") : it.throw = (x) => {
101
- throw x;
102
- }, "return" in obj && method("return"), it;
103
- };
104
-
105
- // node_modules/multiformats/vendor/varint.js
106
- var encode_1 = encode;
107
- var MSB = 128;
108
- var REST = 127;
109
- var MSBALL = ~REST;
110
- var INT = Math.pow(2, 31);
111
- function encode(num, out, offset) {
112
- out = out || [];
113
- offset = offset || 0;
114
- var oldOffset = offset;
115
- while (num >= INT) {
116
- out[offset++] = num & 255 | MSB;
117
- num /= 128;
118
- }
119
- while (num & MSBALL) {
120
- out[offset++] = num & 255 | MSB;
121
- num >>>= 7;
122
- }
123
- out[offset] = num | 0;
124
- encode.bytes = offset - oldOffset + 1;
125
- return out;
126
- }
127
- var decode = read;
128
- var MSB$1 = 128;
129
- var REST$1 = 127;
130
- function read(buf2, offset) {
131
- var res = 0, offset = offset || 0, shift = 0, counter = offset, b, l = buf2.length;
132
- do {
133
- if (counter >= l) {
134
- read.bytes = 0;
135
- throw new RangeError("Could not decode varint");
136
- }
137
- b = buf2[counter++];
138
- res += shift < 28 ? (b & REST$1) << shift : (b & REST$1) * Math.pow(2, shift);
139
- shift += 7;
140
- } while (b >= MSB$1);
141
- read.bytes = counter - offset;
142
- return res;
143
- }
144
- var N1 = Math.pow(2, 7);
145
- var N2 = Math.pow(2, 14);
146
- var N3 = Math.pow(2, 21);
147
- var N4 = Math.pow(2, 28);
148
- var N5 = Math.pow(2, 35);
149
- var N6 = Math.pow(2, 42);
150
- var N7 = Math.pow(2, 49);
151
- var N8 = Math.pow(2, 56);
152
- var N9 = Math.pow(2, 63);
153
- var length = function(value) {
154
- return value < N1 ? 1 : value < N2 ? 2 : value < N3 ? 3 : value < N4 ? 4 : value < N5 ? 5 : value < N6 ? 6 : value < N7 ? 7 : value < N8 ? 8 : value < N9 ? 9 : 10;
155
- };
156
- var varint = {
157
- encode: encode_1,
158
- decode,
159
- encodingLength: length
160
- };
161
- var _brrp_varint = varint;
162
- var varint_default = _brrp_varint;
163
-
164
- // node_modules/multiformats/src/varint.js
165
- var decode2 = (data, offset = 0) => {
166
- const code2 = varint_default.decode(data, offset);
167
- return [code2, varint_default.decode.bytes];
168
- };
169
- var encodeTo = (int, target, offset = 0) => {
170
- varint_default.encode(int, target, offset);
171
- return target;
172
- };
173
- var encodingLength = (int) => {
174
- return varint_default.encodingLength(int);
175
- };
176
-
177
- // node_modules/multiformats/src/bytes.js
178
- var bytes_exports = {};
179
- __export(bytes_exports, {
180
- coerce: () => coerce,
181
- empty: () => empty,
182
- equals: () => equals,
183
- fromHex: () => fromHex,
184
- fromString: () => fromString,
185
- isBinary: () => isBinary,
186
- toHex: () => toHex,
187
- toString: () => toString
188
- });
189
- var empty = new Uint8Array(0);
190
- var toHex = (d) => d.reduce((hex, byte) => hex + byte.toString(16).padStart(2, "0"), "");
191
- var fromHex = (hex) => {
192
- const hexes = hex.match(/../g);
193
- return hexes ? new Uint8Array(hexes.map((b) => parseInt(b, 16))) : empty;
194
- };
195
- var equals = (aa, bb) => {
196
- if (aa === bb)
197
- return true;
198
- if (aa.byteLength !== bb.byteLength) {
199
- return false;
200
- }
201
- for (let ii = 0; ii < aa.byteLength; ii++) {
202
- if (aa[ii] !== bb[ii]) {
203
- return false;
204
- }
205
- }
206
- return true;
207
- };
208
- var coerce = (o) => {
209
- if (o instanceof Uint8Array && o.constructor.name === "Uint8Array")
210
- return o;
211
- if (o instanceof ArrayBuffer)
212
- return new Uint8Array(o);
213
- if (ArrayBuffer.isView(o)) {
214
- return new Uint8Array(o.buffer, o.byteOffset, o.byteLength);
215
- }
216
- throw new Error("Unknown type, must be binary type");
217
- };
218
- var isBinary = (o) => o instanceof ArrayBuffer || ArrayBuffer.isView(o);
219
- var fromString = (str) => new TextEncoder().encode(str);
220
- var toString = (b) => new TextDecoder().decode(b);
221
-
222
- // node_modules/multiformats/src/hashes/digest.js
223
- var create = (code2, digest) => {
224
- const size = digest.byteLength;
225
- const sizeOffset = encodingLength(code2);
226
- const digestOffset = sizeOffset + encodingLength(size);
227
- const bytes = new Uint8Array(digestOffset + size);
228
- encodeTo(code2, bytes, 0);
229
- encodeTo(size, bytes, sizeOffset);
230
- bytes.set(digest, digestOffset);
231
- return new Digest(code2, size, digest, bytes);
232
- };
233
- var decode3 = (multihash) => {
234
- const bytes = coerce(multihash);
235
- const [code2, sizeOffset] = decode2(bytes);
236
- const [size, digestOffset] = decode2(bytes.subarray(sizeOffset));
237
- const digest = bytes.subarray(sizeOffset + digestOffset);
238
- if (digest.byteLength !== size) {
239
- throw new Error("Incorrect length");
240
- }
241
- return new Digest(code2, size, digest, bytes);
242
- };
243
- var equals2 = (a, b) => {
244
- if (a === b) {
245
- return true;
246
- } else {
247
- const data = (
248
- /** @type {{code?:unknown, size?:unknown, bytes?:unknown}} */
249
- b
250
- );
251
- return a.code === data.code && a.size === data.size && data.bytes instanceof Uint8Array && equals(a.bytes, data.bytes);
252
- }
253
- };
254
- var Digest = class {
255
- /**
256
- * Creates a multihash digest.
257
- *
258
- * @param {Code} code
259
- * @param {Size} size
260
- * @param {Uint8Array} digest
261
- * @param {Uint8Array} bytes
262
- */
263
- constructor(code2, size, digest, bytes) {
264
- this.code = code2;
265
- this.size = size;
266
- this.digest = digest;
267
- this.bytes = bytes;
268
- }
269
- };
270
-
271
- // node_modules/multiformats/vendor/base-x.js
272
- function base(ALPHABET, name2) {
273
- if (ALPHABET.length >= 255) {
274
- throw new TypeError("Alphabet too long");
275
- }
276
- var BASE_MAP = new Uint8Array(256);
277
- for (var j = 0; j < BASE_MAP.length; j++) {
278
- BASE_MAP[j] = 255;
279
- }
280
- for (var i = 0; i < ALPHABET.length; i++) {
281
- var x = ALPHABET.charAt(i);
282
- var xc = x.charCodeAt(0);
283
- if (BASE_MAP[xc] !== 255) {
284
- throw new TypeError(x + " is ambiguous");
285
- }
286
- BASE_MAP[xc] = i;
287
- }
288
- var BASE = ALPHABET.length;
289
- var LEADER = ALPHABET.charAt(0);
290
- var FACTOR = Math.log(BASE) / Math.log(256);
291
- var iFACTOR = Math.log(256) / Math.log(BASE);
292
- function encode9(source) {
293
- if (source instanceof Uint8Array)
294
- ;
295
- else if (ArrayBuffer.isView(source)) {
296
- source = new Uint8Array(source.buffer, source.byteOffset, source.byteLength);
297
- } else if (Array.isArray(source)) {
298
- source = Uint8Array.from(source);
299
- }
300
- if (!(source instanceof Uint8Array)) {
301
- throw new TypeError("Expected Uint8Array");
302
- }
303
- if (source.length === 0) {
304
- return "";
305
- }
306
- var zeroes = 0;
307
- var length3 = 0;
308
- var pbegin = 0;
309
- var pend = source.length;
310
- while (pbegin !== pend && source[pbegin] === 0) {
311
- pbegin++;
312
- zeroes++;
313
- }
314
- var size = (pend - pbegin) * iFACTOR + 1 >>> 0;
315
- var b58 = new Uint8Array(size);
316
- while (pbegin !== pend) {
317
- var carry = source[pbegin];
318
- var i2 = 0;
319
- for (var it1 = size - 1; (carry !== 0 || i2 < length3) && it1 !== -1; it1--, i2++) {
320
- carry += 256 * b58[it1] >>> 0;
321
- b58[it1] = carry % BASE >>> 0;
322
- carry = carry / BASE >>> 0;
323
- }
324
- if (carry !== 0) {
325
- throw new Error("Non-zero carry");
326
- }
327
- length3 = i2;
328
- pbegin++;
329
- }
330
- var it2 = size - length3;
331
- while (it2 !== size && b58[it2] === 0) {
332
- it2++;
333
- }
334
- var str = LEADER.repeat(zeroes);
335
- for (; it2 < size; ++it2) {
336
- str += ALPHABET.charAt(b58[it2]);
337
- }
338
- return str;
339
- }
340
- function decodeUnsafe(source) {
341
- if (typeof source !== "string") {
342
- throw new TypeError("Expected String");
343
- }
344
- if (source.length === 0) {
345
- return new Uint8Array();
346
- }
347
- var psz = 0;
348
- if (source[psz] === " ") {
349
- return;
350
- }
351
- var zeroes = 0;
352
- var length3 = 0;
353
- while (source[psz] === LEADER) {
354
- zeroes++;
355
- psz++;
356
- }
357
- var size = (source.length - psz) * FACTOR + 1 >>> 0;
358
- var b256 = new Uint8Array(size);
359
- while (source[psz]) {
360
- var carry = BASE_MAP[source.charCodeAt(psz)];
361
- if (carry === 255) {
362
- return;
363
- }
364
- var i2 = 0;
365
- for (var it3 = size - 1; (carry !== 0 || i2 < length3) && it3 !== -1; it3--, i2++) {
366
- carry += BASE * b256[it3] >>> 0;
367
- b256[it3] = carry % 256 >>> 0;
368
- carry = carry / 256 >>> 0;
369
- }
370
- if (carry !== 0) {
371
- throw new Error("Non-zero carry");
372
- }
373
- length3 = i2;
374
- psz++;
375
- }
376
- if (source[psz] === " ") {
377
- return;
378
- }
379
- var it4 = size - length3;
380
- while (it4 !== size && b256[it4] === 0) {
381
- it4++;
382
- }
383
- var vch = new Uint8Array(zeroes + (size - it4));
384
- var j2 = zeroes;
385
- while (it4 !== size) {
386
- vch[j2++] = b256[it4++];
387
- }
388
- return vch;
389
- }
390
- function decode13(string) {
391
- var buffer2 = decodeUnsafe(string);
392
- if (buffer2) {
393
- return buffer2;
394
- }
395
- throw new Error(`Non-${name2} character`);
396
- }
397
- return {
398
- encode: encode9,
399
- decodeUnsafe,
400
- decode: decode13
401
- };
402
- }
403
- var src = base;
404
- var _brrp__multiformats_scope_baseX = src;
405
- var base_x_default = _brrp__multiformats_scope_baseX;
406
-
407
- // node_modules/multiformats/src/bases/base.js
408
- var Encoder = class {
409
- /**
410
- * @param {Base} name
411
- * @param {Prefix} prefix
412
- * @param {(bytes:Uint8Array) => string} baseEncode
413
- */
414
- constructor(name2, prefix, baseEncode) {
415
- this.name = name2;
416
- this.prefix = prefix;
417
- this.baseEncode = baseEncode;
418
- }
419
- /**
420
- * @param {Uint8Array} bytes
421
- * @returns {API.Multibase<Prefix>}
422
- */
423
- encode(bytes) {
424
- if (bytes instanceof Uint8Array) {
425
- return `${this.prefix}${this.baseEncode(bytes)}`;
426
- } else {
427
- throw Error("Unknown type, must be binary type");
428
- }
429
- }
430
- };
431
- var Decoder = class {
432
- /**
433
- * @param {Base} name
434
- * @param {Prefix} prefix
435
- * @param {(text:string) => Uint8Array} baseDecode
436
- */
437
- constructor(name2, prefix, baseDecode) {
438
- this.name = name2;
439
- this.prefix = prefix;
440
- if (prefix.codePointAt(0) === void 0) {
441
- throw new Error("Invalid prefix character");
442
- }
443
- this.prefixCodePoint = /** @type {number} */
444
- prefix.codePointAt(0);
445
- this.baseDecode = baseDecode;
446
- }
447
- /**
448
- * @param {string} text
449
- */
450
- decode(text) {
451
- if (typeof text === "string") {
452
- if (text.codePointAt(0) !== this.prefixCodePoint) {
453
- throw Error(`Unable to decode multibase string ${JSON.stringify(text)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);
454
- }
455
- return this.baseDecode(text.slice(this.prefix.length));
456
- } else {
457
- throw Error("Can only multibase decode strings");
458
- }
459
- }
460
- /**
461
- * @template {string} OtherPrefix
462
- * @param {API.UnibaseDecoder<OtherPrefix>|ComposedDecoder<OtherPrefix>} decoder
463
- * @returns {ComposedDecoder<Prefix|OtherPrefix>}
464
- */
465
- or(decoder) {
466
- return or(this, decoder);
467
- }
468
- };
469
- var ComposedDecoder = class {
470
- /**
471
- * @param {Decoders<Prefix>} decoders
472
- */
473
- constructor(decoders) {
474
- this.decoders = decoders;
475
- }
476
- /**
477
- * @template {string} OtherPrefix
478
- * @param {API.UnibaseDecoder<OtherPrefix>|ComposedDecoder<OtherPrefix>} decoder
479
- * @returns {ComposedDecoder<Prefix|OtherPrefix>}
480
- */
481
- or(decoder) {
482
- return or(this, decoder);
483
- }
484
- /**
485
- * @param {string} input
486
- * @returns {Uint8Array}
487
- */
488
- decode(input) {
489
- const prefix = (
490
- /** @type {Prefix} */
491
- input[0]
492
- );
493
- const decoder = this.decoders[prefix];
494
- if (decoder) {
495
- return decoder.decode(input);
496
- } else {
497
- throw RangeError(`Unable to decode multibase string ${JSON.stringify(input)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`);
498
- }
499
- }
500
- };
501
- var or = (left, right) => new ComposedDecoder(
502
- /** @type {Decoders<L|R>} */
503
- __spreadValues(__spreadValues({}, left.decoders || { [
504
- /** @type API.UnibaseDecoder<L> */
505
- left.prefix
506
- ]: left }), right.decoders || { [
507
- /** @type API.UnibaseDecoder<R> */
508
- right.prefix
509
- ]: right })
510
- );
511
- var Codec = class {
512
- /**
513
- * @param {Base} name
514
- * @param {Prefix} prefix
515
- * @param {(bytes:Uint8Array) => string} baseEncode
516
- * @param {(text:string) => Uint8Array} baseDecode
517
- */
518
- constructor(name2, prefix, baseEncode, baseDecode) {
519
- this.name = name2;
520
- this.prefix = prefix;
521
- this.baseEncode = baseEncode;
522
- this.baseDecode = baseDecode;
523
- this.encoder = new Encoder(name2, prefix, baseEncode);
524
- this.decoder = new Decoder(name2, prefix, baseDecode);
525
- }
526
- /**
527
- * @param {Uint8Array} input
528
- */
529
- encode(input) {
530
- return this.encoder.encode(input);
531
- }
532
- /**
533
- * @param {string} input
534
- */
535
- decode(input) {
536
- return this.decoder.decode(input);
537
- }
538
- };
539
- var from = ({ name: name2, prefix, encode: encode9, decode: decode13 }) => new Codec(name2, prefix, encode9, decode13);
540
- var baseX = ({ prefix, name: name2, alphabet }) => {
541
- const { encode: encode9, decode: decode13 } = base_x_default(alphabet, name2);
542
- return from({
543
- prefix,
544
- name: name2,
545
- encode: encode9,
546
- /**
547
- * @param {string} text
548
- */
549
- decode: (text) => coerce(decode13(text))
550
- });
551
- };
552
- var decode4 = (string, alphabet, bitsPerChar, name2) => {
553
- const codes = {};
554
- for (let i = 0; i < alphabet.length; ++i) {
555
- codes[alphabet[i]] = i;
556
- }
557
- let end = string.length;
558
- while (string[end - 1] === "=") {
559
- --end;
560
- }
561
- const out = new Uint8Array(end * bitsPerChar / 8 | 0);
562
- let bits = 0;
563
- let buffer2 = 0;
564
- let written = 0;
565
- for (let i = 0; i < end; ++i) {
566
- const value = codes[string[i]];
567
- if (value === void 0) {
568
- throw new SyntaxError(`Non-${name2} character`);
569
- }
570
- buffer2 = buffer2 << bitsPerChar | value;
571
- bits += bitsPerChar;
572
- if (bits >= 8) {
573
- bits -= 8;
574
- out[written++] = 255 & buffer2 >> bits;
575
- }
576
- }
577
- if (bits >= bitsPerChar || 255 & buffer2 << 8 - bits) {
578
- throw new SyntaxError("Unexpected end of data");
579
- }
580
- return out;
581
- };
582
- var encode2 = (data, alphabet, bitsPerChar) => {
583
- const pad = alphabet[alphabet.length - 1] === "=";
584
- const mask = (1 << bitsPerChar) - 1;
585
- let out = "";
586
- let bits = 0;
587
- let buffer2 = 0;
588
- for (let i = 0; i < data.length; ++i) {
589
- buffer2 = buffer2 << 8 | data[i];
590
- bits += 8;
591
- while (bits > bitsPerChar) {
592
- bits -= bitsPerChar;
593
- out += alphabet[mask & buffer2 >> bits];
594
- }
595
- }
596
- if (bits) {
597
- out += alphabet[mask & buffer2 << bitsPerChar - bits];
598
- }
599
- if (pad) {
600
- while (out.length * bitsPerChar & 7) {
601
- out += "=";
602
- }
603
- }
604
- return out;
605
- };
606
- var rfc4648 = ({ name: name2, prefix, bitsPerChar, alphabet }) => {
607
- return from({
608
- prefix,
609
- name: name2,
610
- encode(input) {
611
- return encode2(input, alphabet, bitsPerChar);
612
- },
613
- decode(input) {
614
- return decode4(input, alphabet, bitsPerChar, name2);
615
- }
616
- });
617
- };
618
-
619
- // node_modules/multiformats/src/bases/base58.js
620
- var base58btc = baseX({
621
- name: "base58btc",
622
- prefix: "z",
623
- alphabet: "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"
624
- });
625
- var base58flickr = baseX({
626
- name: "base58flickr",
627
- prefix: "Z",
628
- alphabet: "123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"
629
- });
630
-
631
- // node_modules/multiformats/src/bases/base32.js
632
- var base32 = rfc4648({
633
- prefix: "b",
634
- name: "base32",
635
- alphabet: "abcdefghijklmnopqrstuvwxyz234567",
636
- bitsPerChar: 5
637
- });
638
- var base32upper = rfc4648({
639
- prefix: "B",
640
- name: "base32upper",
641
- alphabet: "ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",
642
- bitsPerChar: 5
643
- });
644
- var base32pad = rfc4648({
645
- prefix: "c",
646
- name: "base32pad",
647
- alphabet: "abcdefghijklmnopqrstuvwxyz234567=",
648
- bitsPerChar: 5
649
- });
650
- var base32padupper = rfc4648({
651
- prefix: "C",
652
- name: "base32padupper",
653
- alphabet: "ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",
654
- bitsPerChar: 5
655
- });
656
- var base32hex = rfc4648({
657
- prefix: "v",
658
- name: "base32hex",
659
- alphabet: "0123456789abcdefghijklmnopqrstuv",
660
- bitsPerChar: 5
661
- });
662
- var base32hexupper = rfc4648({
663
- prefix: "V",
664
- name: "base32hexupper",
665
- alphabet: "0123456789ABCDEFGHIJKLMNOPQRSTUV",
666
- bitsPerChar: 5
667
- });
668
- var base32hexpad = rfc4648({
669
- prefix: "t",
670
- name: "base32hexpad",
671
- alphabet: "0123456789abcdefghijklmnopqrstuv=",
672
- bitsPerChar: 5
673
- });
674
- var base32hexpadupper = rfc4648({
675
- prefix: "T",
676
- name: "base32hexpadupper",
677
- alphabet: "0123456789ABCDEFGHIJKLMNOPQRSTUV=",
678
- bitsPerChar: 5
679
- });
680
- var base32z = rfc4648({
681
- prefix: "h",
682
- name: "base32z",
683
- alphabet: "ybndrfg8ejkmcpqxot1uwisza345h769",
684
- bitsPerChar: 5
685
- });
686
-
687
- // node_modules/multiformats/src/cid.js
688
- var format = (link, base3) => {
689
- const { bytes, version } = link;
690
- switch (version) {
691
- case 0:
692
- return toStringV0(
693
- bytes,
694
- baseCache(link),
695
- /** @type {API.MultibaseEncoder<"z">} */
696
- base3 || base58btc.encoder
697
- );
698
- default:
699
- return toStringV1(
700
- bytes,
701
- baseCache(link),
702
- /** @type {API.MultibaseEncoder<Prefix>} */
703
- base3 || base32.encoder
704
- );
705
- }
706
- };
707
- var cache = /* @__PURE__ */ new WeakMap();
708
- var baseCache = (cid) => {
709
- const baseCache3 = cache.get(cid);
710
- if (baseCache3 == null) {
711
- const baseCache4 = /* @__PURE__ */ new Map();
712
- cache.set(cid, baseCache4);
713
- return baseCache4;
714
- }
715
- return baseCache3;
716
- };
717
- var CID = class _CID {
718
- /**
719
- * @param {Version} version - Version of the CID
720
- * @param {Format} code - Code of the codec content is encoded in, see https://github.com/multiformats/multicodec/blob/master/table.csv
721
- * @param {API.MultihashDigest<Alg>} multihash - (Multi)hash of the of the content.
722
- * @param {Uint8Array} bytes
723
- *
724
- */
725
- constructor(version, code2, multihash, bytes) {
726
- this.code = code2;
727
- this.version = version;
728
- this.multihash = multihash;
729
- this.bytes = bytes;
730
- this["/"] = bytes;
731
- }
732
- /**
733
- * Signalling `cid.asCID === cid` has been replaced with `cid['/'] === cid.bytes`
734
- * please either use `CID.asCID(cid)` or switch to new signalling mechanism
735
- *
736
- * @deprecated
737
- */
738
- get asCID() {
739
- return this;
740
- }
741
- // ArrayBufferView
742
- get byteOffset() {
743
- return this.bytes.byteOffset;
744
- }
745
- // ArrayBufferView
746
- get byteLength() {
747
- return this.bytes.byteLength;
748
- }
749
- /**
750
- * @returns {CID<Data, API.DAG_PB, API.SHA_256, 0>}
751
- */
752
- toV0() {
753
- switch (this.version) {
754
- case 0: {
755
- return (
756
- /** @type {CID<Data, API.DAG_PB, API.SHA_256, 0>} */
757
- this
758
- );
759
- }
760
- case 1: {
761
- const { code: code2, multihash } = this;
762
- if (code2 !== DAG_PB_CODE) {
763
- throw new Error("Cannot convert a non dag-pb CID to CIDv0");
764
- }
765
- if (multihash.code !== SHA_256_CODE) {
766
- throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");
767
- }
768
- return (
769
- /** @type {CID<Data, API.DAG_PB, API.SHA_256, 0>} */
770
- _CID.createV0(
771
- /** @type {API.MultihashDigest<API.SHA_256>} */
772
- multihash
773
- )
774
- );
775
- }
776
- default: {
777
- throw Error(
778
- `Can not convert CID version ${this.version} to version 0. This is a bug please report`
779
- );
780
- }
781
- }
782
- }
783
- /**
784
- * @returns {CID<Data, Format, Alg, 1>}
785
- */
786
- toV1() {
787
- switch (this.version) {
788
- case 0: {
789
- const { code: code2, digest } = this.multihash;
790
- const multihash = create(code2, digest);
791
- return (
792
- /** @type {CID<Data, Format, Alg, 1>} */
793
- _CID.createV1(this.code, multihash)
794
- );
795
- }
796
- case 1: {
797
- return (
798
- /** @type {CID<Data, Format, Alg, 1>} */
799
- this
800
- );
801
- }
802
- default: {
803
- throw Error(
804
- `Can not convert CID version ${this.version} to version 1. This is a bug please report`
805
- );
806
- }
807
- }
808
- }
809
- /**
810
- * @param {unknown} other
811
- * @returns {other is CID<Data, Format, Alg, Version>}
812
- */
813
- equals(other) {
814
- return _CID.equals(this, other);
815
- }
816
- /**
817
- * @template {unknown} Data
818
- * @template {number} Format
819
- * @template {number} Alg
820
- * @template {API.Version} Version
821
- * @param {API.Link<Data, Format, Alg, Version>} self
822
- * @param {unknown} other
823
- * @returns {other is CID}
824
- */
825
- static equals(self, other) {
826
- const unknown = (
827
- /** @type {{code?:unknown, version?:unknown, multihash?:unknown}} */
828
- other
829
- );
830
- return unknown && self.code === unknown.code && self.version === unknown.version && equals2(self.multihash, unknown.multihash);
831
- }
832
- /**
833
- * @param {API.MultibaseEncoder<string>} [base]
834
- * @returns {string}
835
- */
836
- toString(base3) {
837
- return format(this, base3);
838
- }
839
- toJSON() {
840
- return { "/": format(this) };
841
- }
842
- link() {
843
- return this;
844
- }
845
- get [Symbol.toStringTag]() {
846
- return "CID";
847
- }
848
- // Legacy
849
- [Symbol.for("nodejs.util.inspect.custom")]() {
850
- return `CID(${this.toString()})`;
851
- }
852
- /**
853
- * Takes any input `value` and returns a `CID` instance if it was
854
- * a `CID` otherwise returns `null`. If `value` is instanceof `CID`
855
- * it will return value back. If `value` is not instance of this CID
856
- * class, but is compatible CID it will return new instance of this
857
- * `CID` class. Otherwise returns null.
858
- *
859
- * This allows two different incompatible versions of CID library to
860
- * co-exist and interop as long as binary interface is compatible.
861
- *
862
- * @template {unknown} Data
863
- * @template {number} Format
864
- * @template {number} Alg
865
- * @template {API.Version} Version
866
- * @template {unknown} U
867
- * @param {API.Link<Data, Format, Alg, Version>|U} input
868
- * @returns {CID<Data, Format, Alg, Version>|null}
869
- */
870
- static asCID(input) {
871
- if (input == null) {
872
- return null;
873
- }
874
- const value = (
875
- /** @type {any} */
876
- input
877
- );
878
- if (value instanceof _CID) {
879
- return value;
880
- } else if (value["/"] != null && value["/"] === value.bytes || value.asCID === value) {
881
- const { version, code: code2, multihash, bytes } = value;
882
- return new _CID(
883
- version,
884
- code2,
885
- /** @type {API.MultihashDigest<Alg>} */
886
- multihash,
887
- bytes || encodeCID(version, code2, multihash.bytes)
888
- );
889
- } else if (value[cidSymbol] === true) {
890
- const { version, multihash, code: code2 } = value;
891
- const digest = (
892
- /** @type {API.MultihashDigest<Alg>} */
893
- decode3(multihash)
894
- );
895
- return _CID.create(version, code2, digest);
896
- } else {
897
- return null;
898
- }
899
- }
900
- /**
901
- *
902
- * @template {unknown} Data
903
- * @template {number} Format
904
- * @template {number} Alg
905
- * @template {API.Version} Version
906
- * @param {Version} version - Version of the CID
907
- * @param {Format} code - Code of the codec content is encoded in, see https://github.com/multiformats/multicodec/blob/master/table.csv
908
- * @param {API.MultihashDigest<Alg>} digest - (Multi)hash of the of the content.
909
- * @returns {CID<Data, Format, Alg, Version>}
910
- */
911
- static create(version, code2, digest) {
912
- if (typeof code2 !== "number") {
913
- throw new Error("String codecs are no longer supported");
914
- }
915
- if (!(digest.bytes instanceof Uint8Array)) {
916
- throw new Error("Invalid digest");
917
- }
918
- switch (version) {
919
- case 0: {
920
- if (code2 !== DAG_PB_CODE) {
921
- throw new Error(
922
- `Version 0 CID must use dag-pb (code: ${DAG_PB_CODE}) block encoding`
923
- );
924
- } else {
925
- return new _CID(version, code2, digest, digest.bytes);
926
- }
927
- }
928
- case 1: {
929
- const bytes = encodeCID(version, code2, digest.bytes);
930
- return new _CID(version, code2, digest, bytes);
931
- }
932
- default: {
933
- throw new Error("Invalid version");
934
- }
935
- }
936
- }
937
- /**
938
- * Simplified version of `create` for CIDv0.
939
- *
940
- * @template {unknown} [T=unknown]
941
- * @param {API.MultihashDigest<typeof SHA_256_CODE>} digest - Multihash.
942
- * @returns {CID<T, typeof DAG_PB_CODE, typeof SHA_256_CODE, 0>}
943
- */
944
- static createV0(digest) {
945
- return _CID.create(0, DAG_PB_CODE, digest);
946
- }
947
- /**
948
- * Simplified version of `create` for CIDv1.
949
- *
950
- * @template {unknown} Data
951
- * @template {number} Code
952
- * @template {number} Alg
953
- * @param {Code} code - Content encoding format code.
954
- * @param {API.MultihashDigest<Alg>} digest - Miltihash of the content.
955
- * @returns {CID<Data, Code, Alg, 1>}
956
- */
957
- static createV1(code2, digest) {
958
- return _CID.create(1, code2, digest);
959
- }
960
- /**
961
- * Decoded a CID from its binary representation. The byte array must contain
962
- * only the CID with no additional bytes.
963
- *
964
- * An error will be thrown if the bytes provided do not contain a valid
965
- * binary representation of a CID.
966
- *
967
- * @template {unknown} Data
968
- * @template {number} Code
969
- * @template {number} Alg
970
- * @template {API.Version} Ver
971
- * @param {API.ByteView<API.Link<Data, Code, Alg, Ver>>} bytes
972
- * @returns {CID<Data, Code, Alg, Ver>}
973
- */
974
- static decode(bytes) {
975
- const [cid, remainder] = _CID.decodeFirst(bytes);
976
- if (remainder.length) {
977
- throw new Error("Incorrect length");
978
- }
979
- return cid;
980
- }
981
- /**
982
- * Decoded a CID from its binary representation at the beginning of a byte
983
- * array.
984
- *
985
- * Returns an array with the first element containing the CID and the second
986
- * element containing the remainder of the original byte array. The remainder
987
- * will be a zero-length byte array if the provided bytes only contained a
988
- * binary CID representation.
989
- *
990
- * @template {unknown} T
991
- * @template {number} C
992
- * @template {number} A
993
- * @template {API.Version} V
994
- * @param {API.ByteView<API.Link<T, C, A, V>>} bytes
995
- * @returns {[CID<T, C, A, V>, Uint8Array]}
996
- */
997
- static decodeFirst(bytes) {
998
- const specs = _CID.inspectBytes(bytes);
999
- const prefixSize = specs.size - specs.multihashSize;
1000
- const multihashBytes = coerce(
1001
- bytes.subarray(prefixSize, prefixSize + specs.multihashSize)
1002
- );
1003
- if (multihashBytes.byteLength !== specs.multihashSize) {
1004
- throw new Error("Incorrect length");
1005
- }
1006
- const digestBytes = multihashBytes.subarray(
1007
- specs.multihashSize - specs.digestSize
1008
- );
1009
- const digest = new Digest(
1010
- specs.multihashCode,
1011
- specs.digestSize,
1012
- digestBytes,
1013
- multihashBytes
1014
- );
1015
- const cid = specs.version === 0 ? _CID.createV0(
1016
- /** @type {API.MultihashDigest<API.SHA_256>} */
1017
- digest
1018
- ) : _CID.createV1(specs.codec, digest);
1019
- return [
1020
- /** @type {CID<T, C, A, V>} */
1021
- cid,
1022
- bytes.subarray(specs.size)
1023
- ];
1024
- }
1025
- /**
1026
- * Inspect the initial bytes of a CID to determine its properties.
1027
- *
1028
- * Involves decoding up to 4 varints. Typically this will require only 4 to 6
1029
- * bytes but for larger multicodec code values and larger multihash digest
1030
- * lengths these varints can be quite large. It is recommended that at least
1031
- * 10 bytes be made available in the `initialBytes` argument for a complete
1032
- * inspection.
1033
- *
1034
- * @template {unknown} T
1035
- * @template {number} C
1036
- * @template {number} A
1037
- * @template {API.Version} V
1038
- * @param {API.ByteView<API.Link<T, C, A, V>>} initialBytes
1039
- * @returns {{ version:V, codec:C, multihashCode:A, digestSize:number, multihashSize:number, size:number }}
1040
- */
1041
- static inspectBytes(initialBytes) {
1042
- let offset = 0;
1043
- const next = () => {
1044
- const [i, length3] = decode2(initialBytes.subarray(offset));
1045
- offset += length3;
1046
- return i;
1047
- };
1048
- let version = (
1049
- /** @type {V} */
1050
- next()
1051
- );
1052
- let codec = (
1053
- /** @type {C} */
1054
- DAG_PB_CODE
1055
- );
1056
- if (
1057
- /** @type {number} */
1058
- version === 18
1059
- ) {
1060
- version = /** @type {V} */
1061
- 0;
1062
- offset = 0;
1063
- } else {
1064
- codec = /** @type {C} */
1065
- next();
1066
- }
1067
- if (version !== 0 && version !== 1) {
1068
- throw new RangeError(`Invalid CID version ${version}`);
1069
- }
1070
- const prefixSize = offset;
1071
- const multihashCode = (
1072
- /** @type {A} */
1073
- next()
1074
- );
1075
- const digestSize = next();
1076
- const size = offset + digestSize;
1077
- const multihashSize = size - prefixSize;
1078
- return { version, codec, multihashCode, digestSize, multihashSize, size };
1079
- }
1080
- /**
1081
- * Takes cid in a string representation and creates an instance. If `base`
1082
- * decoder is not provided will use a default from the configuration. It will
1083
- * throw an error if encoding of the CID is not compatible with supplied (or
1084
- * a default decoder).
1085
- *
1086
- * @template {string} Prefix
1087
- * @template {unknown} Data
1088
- * @template {number} Code
1089
- * @template {number} Alg
1090
- * @template {API.Version} Ver
1091
- * @param {API.ToString<API.Link<Data, Code, Alg, Ver>, Prefix>} source
1092
- * @param {API.MultibaseDecoder<Prefix>} [base]
1093
- * @returns {CID<Data, Code, Alg, Ver>}
1094
- */
1095
- static parse(source, base3) {
1096
- const [prefix, bytes] = parseCIDtoBytes(source, base3);
1097
- const cid = _CID.decode(bytes);
1098
- if (cid.version === 0 && source[0] !== "Q") {
1099
- throw Error("Version 0 CID string must not include multibase prefix");
1100
- }
1101
- baseCache(cid).set(prefix, source);
1102
- return cid;
1103
- }
1104
- };
1105
- var parseCIDtoBytes = (source, base3) => {
1106
- switch (source[0]) {
1107
- case "Q": {
1108
- const decoder = base3 || base58btc;
1109
- return [
1110
- /** @type {Prefix} */
1111
- base58btc.prefix,
1112
- decoder.decode(`${base58btc.prefix}${source}`)
1113
- ];
1114
- }
1115
- case base58btc.prefix: {
1116
- const decoder = base3 || base58btc;
1117
- return [
1118
- /** @type {Prefix} */
1119
- base58btc.prefix,
1120
- decoder.decode(source)
1121
- ];
1122
- }
1123
- case base32.prefix: {
1124
- const decoder = base3 || base32;
1125
- return [
1126
- /** @type {Prefix} */
1127
- base32.prefix,
1128
- decoder.decode(source)
1129
- ];
1130
- }
1131
- default: {
1132
- if (base3 == null) {
1133
- throw Error(
1134
- "To parse non base32 or base58btc encoded CID multibase decoder must be provided"
1135
- );
1136
- }
1137
- return [
1138
- /** @type {Prefix} */
1139
- source[0],
1140
- base3.decode(source)
1141
- ];
1142
- }
1143
- }
1144
- };
1145
- var toStringV0 = (bytes, cache3, base3) => {
1146
- const { prefix } = base3;
1147
- if (prefix !== base58btc.prefix) {
1148
- throw Error(`Cannot string encode V0 in ${base3.name} encoding`);
1149
- }
1150
- const cid = cache3.get(prefix);
1151
- if (cid == null) {
1152
- const cid2 = base3.encode(bytes).slice(1);
1153
- cache3.set(prefix, cid2);
1154
- return cid2;
1155
- } else {
1156
- return cid;
1157
- }
1158
- };
1159
- var toStringV1 = (bytes, cache3, base3) => {
1160
- const { prefix } = base3;
1161
- const cid = cache3.get(prefix);
1162
- if (cid == null) {
1163
- const cid2 = base3.encode(bytes);
1164
- cache3.set(prefix, cid2);
1165
- return cid2;
1166
- } else {
1167
- return cid;
1168
- }
1169
- };
1170
- var DAG_PB_CODE = 112;
1171
- var SHA_256_CODE = 18;
1172
- var encodeCID = (version, code2, multihash) => {
1173
- const codeOffset = encodingLength(version);
1174
- const hashOffset = codeOffset + encodingLength(code2);
1175
- const bytes = new Uint8Array(hashOffset + multihash.byteLength);
1176
- encodeTo(version, bytes, 0);
1177
- encodeTo(code2, bytes, codeOffset);
1178
- bytes.set(multihash, hashOffset);
1179
- return bytes;
1180
- };
1181
- var cidSymbol = Symbol.for("@ipld/js-cid/CID");
1182
-
1183
- // node_modules/multiformats/src/hashes/hasher.js
1184
- var from2 = ({ name: name2, code: code2, encode: encode9 }) => new Hasher(name2, code2, encode9);
1185
- var Hasher = class {
1186
- /**
1187
- *
1188
- * @param {Name} name
1189
- * @param {Code} code
1190
- * @param {(input: Uint8Array) => Await<Uint8Array>} encode
1191
- */
1192
- constructor(name2, code2, encode9) {
1193
- this.name = name2;
1194
- this.code = code2;
1195
- this.encode = encode9;
1196
- }
1197
- /**
1198
- * @param {Uint8Array} input
1199
- * @returns {Await<Digest.Digest<Code, number>>}
1200
- */
1201
- digest(input) {
1202
- if (input instanceof Uint8Array) {
1203
- const result = this.encode(input);
1204
- return result instanceof Uint8Array ? create(this.code, result) : result.then((digest) => create(this.code, digest));
1205
- } else {
1206
- throw Error("Unknown type, must be binary type");
1207
- }
1208
- }
1209
- };
1210
-
1211
- // node_modules/multiformats/src/block.js
1212
- function readonly({ enumerable = true, configurable = false } = {}) {
1213
- return { enumerable, configurable, writable: false };
1214
- }
1215
- function* linksWithin(path, value) {
1216
- if (value != null && typeof value === "object") {
1217
- if (Array.isArray(value)) {
1218
- for (const [index, element] of value.entries()) {
1219
- const elementPath = [...path, index];
1220
- const cid = CID.asCID(element);
1221
- if (cid) {
1222
- yield [elementPath.join("/"), cid];
1223
- } else if (typeof element === "object") {
1224
- yield* __yieldStar(links(element, elementPath));
1225
- }
1226
- }
1227
- } else {
1228
- const cid = CID.asCID(value);
1229
- if (cid) {
1230
- yield [path.join("/"), cid];
1231
- } else {
1232
- yield* __yieldStar(links(value, path));
1233
- }
1234
- }
1235
- }
1236
- }
1237
- function* links(source, base3) {
1238
- if (source == null || source instanceof Uint8Array) {
1239
- return;
1240
- }
1241
- const cid = CID.asCID(source);
1242
- if (cid) {
1243
- yield [base3.join("/"), cid];
1244
- }
1245
- for (const [key, value] of Object.entries(source)) {
1246
- const path = (
1247
- /** @type {[string|number, string]} */
1248
- [...base3, key]
1249
- );
1250
- yield* __yieldStar(linksWithin(path, value));
1251
- }
1252
- }
1253
- function* treeWithin(path, value) {
1254
- if (Array.isArray(value)) {
1255
- for (const [index, element] of value.entries()) {
1256
- const elementPath = [...path, index];
1257
- yield elementPath.join("/");
1258
- if (typeof element === "object" && !CID.asCID(element)) {
1259
- yield* __yieldStar(tree(element, elementPath));
1260
- }
1261
- }
1262
- } else {
1263
- yield* __yieldStar(tree(value, path));
1264
- }
1265
- }
1266
- function* tree(source, base3) {
1267
- if (source == null || typeof source !== "object") {
1268
- return;
1269
- }
1270
- for (const [key, value] of Object.entries(source)) {
1271
- const path = (
1272
- /** @type {[string|number, string]} */
1273
- [...base3, key]
1274
- );
1275
- yield path.join("/");
1276
- if (value != null && !(value instanceof Uint8Array) && typeof value === "object" && !CID.asCID(value)) {
1277
- yield* __yieldStar(treeWithin(path, value));
1278
- }
1279
- }
1280
- }
1281
- function get(source, path) {
1282
- let node = (
1283
- /** @type {Record<string, any>} */
1284
- source
1285
- );
1286
- for (const [index, key] of path.entries()) {
1287
- node = node[key];
1288
- if (node == null) {
1289
- throw new Error(`Object has no property at ${path.slice(0, index + 1).map((part) => `[${JSON.stringify(part)}]`).join("")}`);
1290
- }
1291
- const cid = CID.asCID(node);
1292
- if (cid) {
1293
- return { value: cid, remaining: path.slice(index + 1).join("/") };
1294
- }
1295
- }
1296
- return { value: node };
1297
- }
1298
- var Block = class {
1299
- /**
1300
- * @param {object} options
1301
- * @param {CID<T, C, A, V>} options.cid
1302
- * @param {API.ByteView<T>} options.bytes
1303
- * @param {T} options.value
1304
- */
1305
- constructor({ cid, bytes, value }) {
1306
- if (!cid || !bytes || typeof value === "undefined") {
1307
- throw new Error("Missing required argument");
1308
- }
1309
- this.cid = cid;
1310
- this.bytes = bytes;
1311
- this.value = value;
1312
- this.asBlock = this;
1313
- Object.defineProperties(this, {
1314
- cid: readonly(),
1315
- bytes: readonly(),
1316
- value: readonly(),
1317
- asBlock: readonly()
1318
- });
1319
- }
1320
- links() {
1321
- return links(this.value, []);
1322
- }
1323
- tree() {
1324
- return tree(this.value, []);
1325
- }
1326
- /**
1327
- *
1328
- * @param {string} [path]
1329
- * @returns {API.BlockCursorView<unknown>}
1330
- */
1331
- get(path = "/") {
1332
- return get(this.value, path.split("/").filter(Boolean));
1333
- }
1334
- };
1335
- function encode3(_0) {
1336
- return __async(this, arguments, function* ({ value, codec, hasher }) {
1337
- if (typeof value === "undefined")
1338
- throw new Error('Missing required argument "value"');
1339
- if (!codec || !hasher)
1340
- throw new Error("Missing required argument: codec or hasher");
1341
- const bytes = codec.encode(value);
1342
- const hash = yield hasher.digest(bytes);
1343
- const cid = CID.create(
1344
- 1,
1345
- codec.code,
1346
- hash
1347
- );
1348
- return new Block({ value, bytes, cid });
1349
- });
1350
- }
1351
- function decode5(_0) {
1352
- return __async(this, arguments, function* ({ bytes, codec, hasher }) {
1353
- if (!bytes)
1354
- throw new Error('Missing required argument "bytes"');
1355
- if (!codec || !hasher)
1356
- throw new Error("Missing required argument: codec or hasher");
1357
- const value = codec.decode(bytes);
1358
- const hash = yield hasher.digest(bytes);
1359
- const cid = CID.create(1, codec.code, hash);
1360
- return new Block({ value, bytes, cid });
1361
- });
1362
- }
1363
- function createUnsafe({ bytes, cid, value: maybeValue, codec }) {
1364
- const value = maybeValue !== void 0 ? maybeValue : codec && codec.decode(bytes);
1365
- if (value === void 0)
1366
- throw new Error('Missing required argument, must either provide "value" or "codec"');
1367
- return new Block({
1368
- // eslint-disable-next-line object-shorthand
1369
- cid: (
1370
- /** @type {CID<T, Code, Alg, V>} */
1371
- cid
1372
- ),
1373
- bytes,
1374
- value
1375
- });
1376
- }
1377
- function create2(_0) {
1378
- return __async(this, arguments, function* ({ bytes, cid, hasher, codec }) {
1379
- if (!bytes)
1380
- throw new Error('Missing required argument "bytes"');
1381
- if (!hasher)
1382
- throw new Error('Missing required argument "hasher"');
1383
- const value = codec.decode(bytes);
1384
- const hash = yield hasher.digest(bytes);
1385
- if (!bytes_exports.equals(cid.multihash.bytes, hash.bytes)) {
1386
- throw new Error("CID hash does not match bytes");
1387
- }
1388
- return createUnsafe({
1389
- bytes,
1390
- cid,
1391
- value,
1392
- codec
1393
- });
1394
- });
1395
- }
1396
-
1397
- // node_modules/multiformats/src/hashes/sha2-browser.js
1398
- var sha = (name2) => (
1399
- /**
1400
- * @param {Uint8Array} data
1401
- */
1402
- (data) => __async(void 0, null, function* () {
1403
- return new Uint8Array(yield crypto.subtle.digest(name2, data));
1404
- })
1405
- );
1406
- var sha256 = from2({
1407
- name: "sha2-256",
1408
- code: 18,
1409
- encode: sha("SHA-256")
1410
- });
1411
- var sha512 = from2({
1412
- name: "sha2-512",
1413
- code: 19,
1414
- encode: sha("SHA-512")
1415
- });
1416
-
1417
- // node_modules/@ipld/dag-cbor/src/index.js
1418
- var src_exports = {};
1419
- __export(src_exports, {
1420
- code: () => code,
1421
- decode: () => decode7,
1422
- encode: () => encode5,
1423
- name: () => name
1424
- });
1425
-
1426
- // node_modules/@ipld/dag-cbor/node_modules/cborg/esm/lib/is.js
1427
- var typeofs = [
1428
- "string",
1429
- "number",
1430
- "bigint",
1431
- "symbol"
1432
- ];
1433
- var objectTypeNames = [
1434
- "Function",
1435
- "Generator",
1436
- "AsyncGenerator",
1437
- "GeneratorFunction",
1438
- "AsyncGeneratorFunction",
1439
- "AsyncFunction",
1440
- "Observable",
1441
- "Array",
1442
- "Buffer",
1443
- "Object",
1444
- "RegExp",
1445
- "Date",
1446
- "Error",
1447
- "Map",
1448
- "Set",
1449
- "WeakMap",
1450
- "WeakSet",
1451
- "ArrayBuffer",
1452
- "SharedArrayBuffer",
1453
- "DataView",
1454
- "Promise",
1455
- "URL",
1456
- "HTMLElement",
1457
- "Int8Array",
1458
- "Uint8Array",
1459
- "Uint8ClampedArray",
1460
- "Int16Array",
1461
- "Uint16Array",
1462
- "Int32Array",
1463
- "Uint32Array",
1464
- "Float32Array",
1465
- "Float64Array",
1466
- "BigInt64Array",
1467
- "BigUint64Array"
1468
- ];
1469
- function is(value) {
1470
- if (value === null) {
1471
- return "null";
1472
- }
1473
- if (value === void 0) {
1474
- return "undefined";
1475
- }
1476
- if (value === true || value === false) {
1477
- return "boolean";
1478
- }
1479
- const typeOf = typeof value;
1480
- if (typeofs.includes(typeOf)) {
1481
- return typeOf;
1482
- }
1483
- if (typeOf === "function") {
1484
- return "Function";
1485
- }
1486
- if (Array.isArray(value)) {
1487
- return "Array";
1488
- }
1489
- if (isBuffer(value)) {
1490
- return "Buffer";
1491
- }
1492
- const objectType = getObjectType(value);
1493
- if (objectType) {
1494
- return objectType;
1495
- }
1496
- return "Object";
1497
- }
1498
- function isBuffer(value) {
1499
- return value && value.constructor && value.constructor.isBuffer && value.constructor.isBuffer.call(null, value);
1500
- }
1501
- function getObjectType(value) {
1502
- const objectTypeName = Object.prototype.toString.call(value).slice(8, -1);
1503
- if (objectTypeNames.includes(objectTypeName)) {
1504
- return objectTypeName;
1505
- }
1506
- return void 0;
1507
- }
1508
-
1509
- // node_modules/@ipld/dag-cbor/node_modules/cborg/esm/lib/token.js
1510
- var Type = class {
1511
- constructor(major, name2, terminal) {
1512
- this.major = major;
1513
- this.majorEncoded = major << 5;
1514
- this.name = name2;
1515
- this.terminal = terminal;
1516
- }
1517
- toString() {
1518
- return `Type[${this.major}].${this.name}`;
1519
- }
1520
- compare(typ) {
1521
- return this.major < typ.major ? -1 : this.major > typ.major ? 1 : 0;
1522
- }
1523
- };
1524
- Type.uint = new Type(0, "uint", true);
1525
- Type.negint = new Type(1, "negint", true);
1526
- Type.bytes = new Type(2, "bytes", true);
1527
- Type.string = new Type(3, "string", true);
1528
- Type.array = new Type(4, "array", false);
1529
- Type.map = new Type(5, "map", false);
1530
- Type.tag = new Type(6, "tag", false);
1531
- Type.float = new Type(7, "float", true);
1532
- Type.false = new Type(7, "false", true);
1533
- Type.true = new Type(7, "true", true);
1534
- Type.null = new Type(7, "null", true);
1535
- Type.undefined = new Type(7, "undefined", true);
1536
- Type.break = new Type(7, "break", true);
1537
- var Token = class {
1538
- constructor(type, value, encodedLength) {
1539
- this.type = type;
1540
- this.value = value;
1541
- this.encodedLength = encodedLength;
1542
- this.encodedBytes = void 0;
1543
- this.byteValue = void 0;
1544
- }
1545
- toString() {
1546
- return `Token[${this.type}].${this.value}`;
1547
- }
1548
- };
1549
-
1550
- // node_modules/@ipld/dag-cbor/node_modules/cborg/esm/lib/byte-utils.js
1551
- var useBuffer = globalThis.process && !globalThis.process.browser && globalThis.Buffer && typeof globalThis.Buffer.isBuffer === "function";
1552
- var textDecoder = new TextDecoder();
1553
- var textEncoder = new TextEncoder();
1554
- function isBuffer2(buf2) {
1555
- return useBuffer && globalThis.Buffer.isBuffer(buf2);
1556
- }
1557
- function asU8A(buf2) {
1558
- if (!(buf2 instanceof Uint8Array)) {
1559
- return Uint8Array.from(buf2);
1560
- }
1561
- return isBuffer2(buf2) ? new Uint8Array(buf2.buffer, buf2.byteOffset, buf2.byteLength) : buf2;
1562
- }
1563
- var toString2 = useBuffer ? (bytes, start, end) => {
1564
- return end - start > 64 ? globalThis.Buffer.from(bytes.subarray(start, end)).toString("utf8") : utf8Slice(bytes, start, end);
1565
- } : (bytes, start, end) => {
1566
- return end - start > 64 ? textDecoder.decode(bytes.subarray(start, end)) : utf8Slice(bytes, start, end);
1567
- };
1568
- var fromString2 = useBuffer ? (string) => {
1569
- return string.length > 64 ? globalThis.Buffer.from(string) : utf8ToBytes(string);
1570
- } : (string) => {
1571
- return string.length > 64 ? textEncoder.encode(string) : utf8ToBytes(string);
1572
- };
1573
- var fromArray = (arr) => {
1574
- return Uint8Array.from(arr);
1575
- };
1576
- var slice = useBuffer ? (bytes, start, end) => {
1577
- if (isBuffer2(bytes)) {
1578
- return new Uint8Array(bytes.subarray(start, end));
1579
- }
1580
- return bytes.slice(start, end);
1581
- } : (bytes, start, end) => {
1582
- return bytes.slice(start, end);
1583
- };
1584
- var concat = useBuffer ? (chunks, length3) => {
1585
- chunks = chunks.map((c) => c instanceof Uint8Array ? c : globalThis.Buffer.from(c));
1586
- return asU8A(globalThis.Buffer.concat(chunks, length3));
1587
- } : (chunks, length3) => {
1588
- const out = new Uint8Array(length3);
1589
- let off = 0;
1590
- for (let b of chunks) {
1591
- if (off + b.length > out.length) {
1592
- b = b.subarray(0, out.length - off);
1593
- }
1594
- out.set(b, off);
1595
- off += b.length;
1596
- }
1597
- return out;
1598
- };
1599
- var alloc = useBuffer ? (size) => {
1600
- return globalThis.Buffer.allocUnsafe(size);
1601
- } : (size) => {
1602
- return new Uint8Array(size);
1603
- };
1604
- function compare(b1, b2) {
1605
- if (isBuffer2(b1) && isBuffer2(b2)) {
1606
- return b1.compare(b2);
1607
- }
1608
- for (let i = 0; i < b1.length; i++) {
1609
- if (b1[i] === b2[i]) {
1610
- continue;
1611
- }
1612
- return b1[i] < b2[i] ? -1 : 1;
1613
- }
1614
- return 0;
1615
- }
1616
- function utf8ToBytes(string, units = Infinity) {
1617
- let codePoint;
1618
- const length3 = string.length;
1619
- let leadSurrogate = null;
1620
- const bytes = [];
1621
- for (let i = 0; i < length3; ++i) {
1622
- codePoint = string.charCodeAt(i);
1623
- if (codePoint > 55295 && codePoint < 57344) {
1624
- if (!leadSurrogate) {
1625
- if (codePoint > 56319) {
1626
- if ((units -= 3) > -1)
1627
- bytes.push(239, 191, 189);
1628
- continue;
1629
- } else if (i + 1 === length3) {
1630
- if ((units -= 3) > -1)
1631
- bytes.push(239, 191, 189);
1632
- continue;
1633
- }
1634
- leadSurrogate = codePoint;
1635
- continue;
1636
- }
1637
- if (codePoint < 56320) {
1638
- if ((units -= 3) > -1)
1639
- bytes.push(239, 191, 189);
1640
- leadSurrogate = codePoint;
1641
- continue;
1642
- }
1643
- codePoint = (leadSurrogate - 55296 << 10 | codePoint - 56320) + 65536;
1644
- } else if (leadSurrogate) {
1645
- if ((units -= 3) > -1)
1646
- bytes.push(239, 191, 189);
1647
- }
1648
- leadSurrogate = null;
1649
- if (codePoint < 128) {
1650
- if ((units -= 1) < 0)
1651
- break;
1652
- bytes.push(codePoint);
1653
- } else if (codePoint < 2048) {
1654
- if ((units -= 2) < 0)
1655
- break;
1656
- bytes.push(codePoint >> 6 | 192, codePoint & 63 | 128);
1657
- } else if (codePoint < 65536) {
1658
- if ((units -= 3) < 0)
1659
- break;
1660
- bytes.push(codePoint >> 12 | 224, codePoint >> 6 & 63 | 128, codePoint & 63 | 128);
1661
- } else if (codePoint < 1114112) {
1662
- if ((units -= 4) < 0)
1663
- break;
1664
- bytes.push(codePoint >> 18 | 240, codePoint >> 12 & 63 | 128, codePoint >> 6 & 63 | 128, codePoint & 63 | 128);
1665
- } else {
1666
- throw new Error("Invalid code point");
1667
- }
1668
- }
1669
- return bytes;
1670
- }
1671
- function utf8Slice(buf2, offset, end) {
1672
- const res = [];
1673
- while (offset < end) {
1674
- const firstByte = buf2[offset];
1675
- let codePoint = null;
1676
- let bytesPerSequence = firstByte > 239 ? 4 : firstByte > 223 ? 3 : firstByte > 191 ? 2 : 1;
1677
- if (offset + bytesPerSequence <= end) {
1678
- let secondByte, thirdByte, fourthByte, tempCodePoint;
1679
- switch (bytesPerSequence) {
1680
- case 1:
1681
- if (firstByte < 128) {
1682
- codePoint = firstByte;
1683
- }
1684
- break;
1685
- case 2:
1686
- secondByte = buf2[offset + 1];
1687
- if ((secondByte & 192) === 128) {
1688
- tempCodePoint = (firstByte & 31) << 6 | secondByte & 63;
1689
- if (tempCodePoint > 127) {
1690
- codePoint = tempCodePoint;
1691
- }
1692
- }
1693
- break;
1694
- case 3:
1695
- secondByte = buf2[offset + 1];
1696
- thirdByte = buf2[offset + 2];
1697
- if ((secondByte & 192) === 128 && (thirdByte & 192) === 128) {
1698
- tempCodePoint = (firstByte & 15) << 12 | (secondByte & 63) << 6 | thirdByte & 63;
1699
- if (tempCodePoint > 2047 && (tempCodePoint < 55296 || tempCodePoint > 57343)) {
1700
- codePoint = tempCodePoint;
1701
- }
1702
- }
1703
- break;
1704
- case 4:
1705
- secondByte = buf2[offset + 1];
1706
- thirdByte = buf2[offset + 2];
1707
- fourthByte = buf2[offset + 3];
1708
- if ((secondByte & 192) === 128 && (thirdByte & 192) === 128 && (fourthByte & 192) === 128) {
1709
- tempCodePoint = (firstByte & 15) << 18 | (secondByte & 63) << 12 | (thirdByte & 63) << 6 | fourthByte & 63;
1710
- if (tempCodePoint > 65535 && tempCodePoint < 1114112) {
1711
- codePoint = tempCodePoint;
1712
- }
1713
- }
1714
- }
1715
- }
1716
- if (codePoint === null) {
1717
- codePoint = 65533;
1718
- bytesPerSequence = 1;
1719
- } else if (codePoint > 65535) {
1720
- codePoint -= 65536;
1721
- res.push(codePoint >>> 10 & 1023 | 55296);
1722
- codePoint = 56320 | codePoint & 1023;
1723
- }
1724
- res.push(codePoint);
1725
- offset += bytesPerSequence;
1726
- }
1727
- return decodeCodePointsArray(res);
1728
- }
1729
- var MAX_ARGUMENTS_LENGTH = 4096;
1730
- function decodeCodePointsArray(codePoints) {
1731
- const len = codePoints.length;
1732
- if (len <= MAX_ARGUMENTS_LENGTH) {
1733
- return String.fromCharCode.apply(String, codePoints);
1734
- }
1735
- let res = "";
1736
- let i = 0;
1737
- while (i < len) {
1738
- res += String.fromCharCode.apply(String, codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH));
1739
- }
1740
- return res;
1741
- }
1742
-
1743
- // node_modules/@ipld/dag-cbor/node_modules/cborg/esm/lib/bl.js
1744
- var defaultChunkSize = 256;
1745
- var Bl = class {
1746
- constructor(chunkSize = defaultChunkSize) {
1747
- this.chunkSize = chunkSize;
1748
- this.cursor = 0;
1749
- this.maxCursor = -1;
1750
- this.chunks = [];
1751
- this._initReuseChunk = null;
1752
- }
1753
- reset() {
1754
- this.cursor = 0;
1755
- this.maxCursor = -1;
1756
- if (this.chunks.length) {
1757
- this.chunks = [];
1758
- }
1759
- if (this._initReuseChunk !== null) {
1760
- this.chunks.push(this._initReuseChunk);
1761
- this.maxCursor = this._initReuseChunk.length - 1;
1762
- }
1763
- }
1764
- push(bytes) {
1765
- let topChunk = this.chunks[this.chunks.length - 1];
1766
- const newMax = this.cursor + bytes.length;
1767
- if (newMax <= this.maxCursor + 1) {
1768
- const chunkPos = topChunk.length - (this.maxCursor - this.cursor) - 1;
1769
- topChunk.set(bytes, chunkPos);
1770
- } else {
1771
- if (topChunk) {
1772
- const chunkPos = topChunk.length - (this.maxCursor - this.cursor) - 1;
1773
- if (chunkPos < topChunk.length) {
1774
- this.chunks[this.chunks.length - 1] = topChunk.subarray(0, chunkPos);
1775
- this.maxCursor = this.cursor - 1;
1776
- }
1777
- }
1778
- if (bytes.length < 64 && bytes.length < this.chunkSize) {
1779
- topChunk = alloc(this.chunkSize);
1780
- this.chunks.push(topChunk);
1781
- this.maxCursor += topChunk.length;
1782
- if (this._initReuseChunk === null) {
1783
- this._initReuseChunk = topChunk;
1784
- }
1785
- topChunk.set(bytes, 0);
1786
- } else {
1787
- this.chunks.push(bytes);
1788
- this.maxCursor += bytes.length;
1789
- }
1790
- }
1791
- this.cursor += bytes.length;
1792
- }
1793
- toBytes(reset = false) {
1794
- let byts;
1795
- if (this.chunks.length === 1) {
1796
- const chunk = this.chunks[0];
1797
- if (reset && this.cursor > chunk.length / 2) {
1798
- byts = this.cursor === chunk.length ? chunk : chunk.subarray(0, this.cursor);
1799
- this._initReuseChunk = null;
1800
- this.chunks = [];
1801
- } else {
1802
- byts = slice(chunk, 0, this.cursor);
1803
- }
1804
- } else {
1805
- byts = concat(this.chunks, this.cursor);
1806
- }
1807
- if (reset) {
1808
- this.reset();
1809
- }
1810
- return byts;
1811
- }
1812
- };
1813
-
1814
- // node_modules/@ipld/dag-cbor/node_modules/cborg/esm/lib/common.js
1815
- var decodeErrPrefix = "CBOR decode error:";
1816
- var encodeErrPrefix = "CBOR encode error:";
1817
- var uintMinorPrefixBytes = [];
1818
- uintMinorPrefixBytes[23] = 1;
1819
- uintMinorPrefixBytes[24] = 2;
1820
- uintMinorPrefixBytes[25] = 3;
1821
- uintMinorPrefixBytes[26] = 5;
1822
- uintMinorPrefixBytes[27] = 9;
1823
- function assertEnoughData(data, pos, need) {
1824
- if (data.length - pos < need) {
1825
- throw new Error(`${decodeErrPrefix} not enough data for type`);
1826
- }
1827
- }
1828
-
1829
- // node_modules/@ipld/dag-cbor/node_modules/cborg/esm/lib/0uint.js
1830
- var uintBoundaries = [
1831
- 24,
1832
- 256,
1833
- 65536,
1834
- 4294967296,
1835
- BigInt("18446744073709551616")
1836
- ];
1837
- function readUint8(data, offset, options) {
1838
- assertEnoughData(data, offset, 1);
1839
- const value = data[offset];
1840
- if (options.strict === true && value < uintBoundaries[0]) {
1841
- throw new Error(`${decodeErrPrefix} integer encoded in more bytes than necessary (strict decode)`);
1842
- }
1843
- return value;
1844
- }
1845
- function readUint16(data, offset, options) {
1846
- assertEnoughData(data, offset, 2);
1847
- const value = data[offset] << 8 | data[offset + 1];
1848
- if (options.strict === true && value < uintBoundaries[1]) {
1849
- throw new Error(`${decodeErrPrefix} integer encoded in more bytes than necessary (strict decode)`);
1850
- }
1851
- return value;
1852
- }
1853
- function readUint32(data, offset, options) {
1854
- assertEnoughData(data, offset, 4);
1855
- const value = data[offset] * 16777216 + (data[offset + 1] << 16) + (data[offset + 2] << 8) + data[offset + 3];
1856
- if (options.strict === true && value < uintBoundaries[2]) {
1857
- throw new Error(`${decodeErrPrefix} integer encoded in more bytes than necessary (strict decode)`);
1858
- }
1859
- return value;
1860
- }
1861
- function readUint64(data, offset, options) {
1862
- assertEnoughData(data, offset, 8);
1863
- const hi = data[offset] * 16777216 + (data[offset + 1] << 16) + (data[offset + 2] << 8) + data[offset + 3];
1864
- const lo = data[offset + 4] * 16777216 + (data[offset + 5] << 16) + (data[offset + 6] << 8) + data[offset + 7];
1865
- const value = (BigInt(hi) << BigInt(32)) + BigInt(lo);
1866
- if (options.strict === true && value < uintBoundaries[3]) {
1867
- throw new Error(`${decodeErrPrefix} integer encoded in more bytes than necessary (strict decode)`);
1868
- }
1869
- if (value <= Number.MAX_SAFE_INTEGER) {
1870
- return Number(value);
1871
- }
1872
- if (options.allowBigInt === true) {
1873
- return value;
1874
- }
1875
- throw new Error(`${decodeErrPrefix} integers outside of the safe integer range are not supported`);
1876
- }
1877
- function decodeUint8(data, pos, _minor, options) {
1878
- return new Token(Type.uint, readUint8(data, pos + 1, options), 2);
1879
- }
1880
- function decodeUint16(data, pos, _minor, options) {
1881
- return new Token(Type.uint, readUint16(data, pos + 1, options), 3);
1882
- }
1883
- function decodeUint32(data, pos, _minor, options) {
1884
- return new Token(Type.uint, readUint32(data, pos + 1, options), 5);
1885
- }
1886
- function decodeUint64(data, pos, _minor, options) {
1887
- return new Token(Type.uint, readUint64(data, pos + 1, options), 9);
1888
- }
1889
- function encodeUint(buf2, token) {
1890
- return encodeUintValue(buf2, 0, token.value);
1891
- }
1892
- function encodeUintValue(buf2, major, uint) {
1893
- if (uint < uintBoundaries[0]) {
1894
- const nuint = Number(uint);
1895
- buf2.push([major | nuint]);
1896
- } else if (uint < uintBoundaries[1]) {
1897
- const nuint = Number(uint);
1898
- buf2.push([
1899
- major | 24,
1900
- nuint
1901
- ]);
1902
- } else if (uint < uintBoundaries[2]) {
1903
- const nuint = Number(uint);
1904
- buf2.push([
1905
- major | 25,
1906
- nuint >>> 8,
1907
- nuint & 255
1908
- ]);
1909
- } else if (uint < uintBoundaries[3]) {
1910
- const nuint = Number(uint);
1911
- buf2.push([
1912
- major | 26,
1913
- nuint >>> 24 & 255,
1914
- nuint >>> 16 & 255,
1915
- nuint >>> 8 & 255,
1916
- nuint & 255
1917
- ]);
1918
- } else {
1919
- const buint = BigInt(uint);
1920
- if (buint < uintBoundaries[4]) {
1921
- const set = [
1922
- major | 27,
1923
- 0,
1924
- 0,
1925
- 0,
1926
- 0,
1927
- 0,
1928
- 0,
1929
- 0
1930
- ];
1931
- let lo = Number(buint & BigInt(4294967295));
1932
- let hi = Number(buint >> BigInt(32) & BigInt(4294967295));
1933
- set[8] = lo & 255;
1934
- lo = lo >> 8;
1935
- set[7] = lo & 255;
1936
- lo = lo >> 8;
1937
- set[6] = lo & 255;
1938
- lo = lo >> 8;
1939
- set[5] = lo & 255;
1940
- set[4] = hi & 255;
1941
- hi = hi >> 8;
1942
- set[3] = hi & 255;
1943
- hi = hi >> 8;
1944
- set[2] = hi & 255;
1945
- hi = hi >> 8;
1946
- set[1] = hi & 255;
1947
- buf2.push(set);
1948
- } else {
1949
- throw new Error(`${decodeErrPrefix} encountered BigInt larger than allowable range`);
1950
- }
1951
- }
1952
- }
1953
- encodeUint.encodedSize = function encodedSize(token) {
1954
- return encodeUintValue.encodedSize(token.value);
1955
- };
1956
- encodeUintValue.encodedSize = function encodedSize2(uint) {
1957
- if (uint < uintBoundaries[0]) {
1958
- return 1;
1959
- }
1960
- if (uint < uintBoundaries[1]) {
1961
- return 2;
1962
- }
1963
- if (uint < uintBoundaries[2]) {
1964
- return 3;
1965
- }
1966
- if (uint < uintBoundaries[3]) {
1967
- return 5;
1968
- }
1969
- return 9;
1970
- };
1971
- encodeUint.compareTokens = function compareTokens(tok1, tok2) {
1972
- return tok1.value < tok2.value ? -1 : tok1.value > tok2.value ? 1 : 0;
1973
- };
1974
-
1975
- // node_modules/@ipld/dag-cbor/node_modules/cborg/esm/lib/1negint.js
1976
- function decodeNegint8(data, pos, _minor, options) {
1977
- return new Token(Type.negint, -1 - readUint8(data, pos + 1, options), 2);
1978
- }
1979
- function decodeNegint16(data, pos, _minor, options) {
1980
- return new Token(Type.negint, -1 - readUint16(data, pos + 1, options), 3);
1981
- }
1982
- function decodeNegint32(data, pos, _minor, options) {
1983
- return new Token(Type.negint, -1 - readUint32(data, pos + 1, options), 5);
1984
- }
1985
- var neg1b = BigInt(-1);
1986
- var pos1b = BigInt(1);
1987
- function decodeNegint64(data, pos, _minor, options) {
1988
- const int = readUint64(data, pos + 1, options);
1989
- if (typeof int !== "bigint") {
1990
- const value = -1 - int;
1991
- if (value >= Number.MIN_SAFE_INTEGER) {
1992
- return new Token(Type.negint, value, 9);
1993
- }
1994
- }
1995
- if (options.allowBigInt !== true) {
1996
- throw new Error(`${decodeErrPrefix} integers outside of the safe integer range are not supported`);
1997
- }
1998
- return new Token(Type.negint, neg1b - BigInt(int), 9);
1999
- }
2000
- function encodeNegint(buf2, token) {
2001
- const negint = token.value;
2002
- const unsigned = typeof negint === "bigint" ? negint * neg1b - pos1b : negint * -1 - 1;
2003
- encodeUintValue(buf2, token.type.majorEncoded, unsigned);
2004
- }
2005
- encodeNegint.encodedSize = function encodedSize3(token) {
2006
- const negint = token.value;
2007
- const unsigned = typeof negint === "bigint" ? negint * neg1b - pos1b : negint * -1 - 1;
2008
- if (unsigned < uintBoundaries[0]) {
2009
- return 1;
2010
- }
2011
- if (unsigned < uintBoundaries[1]) {
2012
- return 2;
2013
- }
2014
- if (unsigned < uintBoundaries[2]) {
2015
- return 3;
2016
- }
2017
- if (unsigned < uintBoundaries[3]) {
2018
- return 5;
2019
- }
2020
- return 9;
2021
- };
2022
- encodeNegint.compareTokens = function compareTokens2(tok1, tok2) {
2023
- return tok1.value < tok2.value ? 1 : tok1.value > tok2.value ? -1 : 0;
2024
- };
2025
-
2026
- // node_modules/@ipld/dag-cbor/node_modules/cborg/esm/lib/2bytes.js
2027
- function toToken(data, pos, prefix, length3) {
2028
- assertEnoughData(data, pos, prefix + length3);
2029
- const buf2 = slice(data, pos + prefix, pos + prefix + length3);
2030
- return new Token(Type.bytes, buf2, prefix + length3);
2031
- }
2032
- function decodeBytesCompact(data, pos, minor, _options) {
2033
- return toToken(data, pos, 1, minor);
2034
- }
2035
- function decodeBytes8(data, pos, _minor, options) {
2036
- return toToken(data, pos, 2, readUint8(data, pos + 1, options));
2037
- }
2038
- function decodeBytes16(data, pos, _minor, options) {
2039
- return toToken(data, pos, 3, readUint16(data, pos + 1, options));
2040
- }
2041
- function decodeBytes32(data, pos, _minor, options) {
2042
- return toToken(data, pos, 5, readUint32(data, pos + 1, options));
2043
- }
2044
- function decodeBytes64(data, pos, _minor, options) {
2045
- const l = readUint64(data, pos + 1, options);
2046
- if (typeof l === "bigint") {
2047
- throw new Error(`${decodeErrPrefix} 64-bit integer bytes lengths not supported`);
2048
- }
2049
- return toToken(data, pos, 9, l);
2050
- }
2051
- function tokenBytes(token) {
2052
- if (token.encodedBytes === void 0) {
2053
- token.encodedBytes = token.type === Type.string ? fromString2(token.value) : token.value;
2054
- }
2055
- return token.encodedBytes;
2056
- }
2057
- function encodeBytes(buf2, token) {
2058
- const bytes = tokenBytes(token);
2059
- encodeUintValue(buf2, token.type.majorEncoded, bytes.length);
2060
- buf2.push(bytes);
2061
- }
2062
- encodeBytes.encodedSize = function encodedSize4(token) {
2063
- const bytes = tokenBytes(token);
2064
- return encodeUintValue.encodedSize(bytes.length) + bytes.length;
2065
- };
2066
- encodeBytes.compareTokens = function compareTokens3(tok1, tok2) {
2067
- return compareBytes(tokenBytes(tok1), tokenBytes(tok2));
2068
- };
2069
- function compareBytes(b1, b2) {
2070
- return b1.length < b2.length ? -1 : b1.length > b2.length ? 1 : compare(b1, b2);
2071
- }
2072
-
2073
- // node_modules/@ipld/dag-cbor/node_modules/cborg/esm/lib/3string.js
2074
- function toToken2(data, pos, prefix, length3, options) {
2075
- const totLength = prefix + length3;
2076
- assertEnoughData(data, pos, totLength);
2077
- const tok = new Token(Type.string, toString2(data, pos + prefix, pos + totLength), totLength);
2078
- if (options.retainStringBytes === true) {
2079
- tok.byteValue = slice(data, pos + prefix, pos + totLength);
2080
- }
2081
- return tok;
2082
- }
2083
- function decodeStringCompact(data, pos, minor, options) {
2084
- return toToken2(data, pos, 1, minor, options);
2085
- }
2086
- function decodeString8(data, pos, _minor, options) {
2087
- return toToken2(data, pos, 2, readUint8(data, pos + 1, options), options);
2088
- }
2089
- function decodeString16(data, pos, _minor, options) {
2090
- return toToken2(data, pos, 3, readUint16(data, pos + 1, options), options);
2091
- }
2092
- function decodeString32(data, pos, _minor, options) {
2093
- return toToken2(data, pos, 5, readUint32(data, pos + 1, options), options);
2094
- }
2095
- function decodeString64(data, pos, _minor, options) {
2096
- const l = readUint64(data, pos + 1, options);
2097
- if (typeof l === "bigint") {
2098
- throw new Error(`${decodeErrPrefix} 64-bit integer string lengths not supported`);
2099
- }
2100
- return toToken2(data, pos, 9, l, options);
2101
- }
2102
- var encodeString = encodeBytes;
2103
-
2104
- // node_modules/@ipld/dag-cbor/node_modules/cborg/esm/lib/4array.js
2105
- function toToken3(_data, _pos, prefix, length3) {
2106
- return new Token(Type.array, length3, prefix);
2107
- }
2108
- function decodeArrayCompact(data, pos, minor, _options) {
2109
- return toToken3(data, pos, 1, minor);
2110
- }
2111
- function decodeArray8(data, pos, _minor, options) {
2112
- return toToken3(data, pos, 2, readUint8(data, pos + 1, options));
2113
- }
2114
- function decodeArray16(data, pos, _minor, options) {
2115
- return toToken3(data, pos, 3, readUint16(data, pos + 1, options));
2116
- }
2117
- function decodeArray32(data, pos, _minor, options) {
2118
- return toToken3(data, pos, 5, readUint32(data, pos + 1, options));
2119
- }
2120
- function decodeArray64(data, pos, _minor, options) {
2121
- const l = readUint64(data, pos + 1, options);
2122
- if (typeof l === "bigint") {
2123
- throw new Error(`${decodeErrPrefix} 64-bit integer array lengths not supported`);
2124
- }
2125
- return toToken3(data, pos, 9, l);
2126
- }
2127
- function decodeArrayIndefinite(data, pos, _minor, options) {
2128
- if (options.allowIndefinite === false) {
2129
- throw new Error(`${decodeErrPrefix} indefinite length items not allowed`);
2130
- }
2131
- return toToken3(data, pos, 1, Infinity);
2132
- }
2133
- function encodeArray(buf2, token) {
2134
- encodeUintValue(buf2, Type.array.majorEncoded, token.value);
2135
- }
2136
- encodeArray.compareTokens = encodeUint.compareTokens;
2137
- encodeArray.encodedSize = function encodedSize5(token) {
2138
- return encodeUintValue.encodedSize(token.value);
2139
- };
2140
-
2141
- // node_modules/@ipld/dag-cbor/node_modules/cborg/esm/lib/5map.js
2142
- function toToken4(_data, _pos, prefix, length3) {
2143
- return new Token(Type.map, length3, prefix);
2144
- }
2145
- function decodeMapCompact(data, pos, minor, _options) {
2146
- return toToken4(data, pos, 1, minor);
2147
- }
2148
- function decodeMap8(data, pos, _minor, options) {
2149
- return toToken4(data, pos, 2, readUint8(data, pos + 1, options));
2150
- }
2151
- function decodeMap16(data, pos, _minor, options) {
2152
- return toToken4(data, pos, 3, readUint16(data, pos + 1, options));
2153
- }
2154
- function decodeMap32(data, pos, _minor, options) {
2155
- return toToken4(data, pos, 5, readUint32(data, pos + 1, options));
2156
- }
2157
- function decodeMap64(data, pos, _minor, options) {
2158
- const l = readUint64(data, pos + 1, options);
2159
- if (typeof l === "bigint") {
2160
- throw new Error(`${decodeErrPrefix} 64-bit integer map lengths not supported`);
2161
- }
2162
- return toToken4(data, pos, 9, l);
2163
- }
2164
- function decodeMapIndefinite(data, pos, _minor, options) {
2165
- if (options.allowIndefinite === false) {
2166
- throw new Error(`${decodeErrPrefix} indefinite length items not allowed`);
2167
- }
2168
- return toToken4(data, pos, 1, Infinity);
2169
- }
2170
- function encodeMap(buf2, token) {
2171
- encodeUintValue(buf2, Type.map.majorEncoded, token.value);
2172
- }
2173
- encodeMap.compareTokens = encodeUint.compareTokens;
2174
- encodeMap.encodedSize = function encodedSize6(token) {
2175
- return encodeUintValue.encodedSize(token.value);
2176
- };
2177
-
2178
- // node_modules/@ipld/dag-cbor/node_modules/cborg/esm/lib/6tag.js
2179
- function decodeTagCompact(_data, _pos, minor, _options) {
2180
- return new Token(Type.tag, minor, 1);
2181
- }
2182
- function decodeTag8(data, pos, _minor, options) {
2183
- return new Token(Type.tag, readUint8(data, pos + 1, options), 2);
2184
- }
2185
- function decodeTag16(data, pos, _minor, options) {
2186
- return new Token(Type.tag, readUint16(data, pos + 1, options), 3);
2187
- }
2188
- function decodeTag32(data, pos, _minor, options) {
2189
- return new Token(Type.tag, readUint32(data, pos + 1, options), 5);
2190
- }
2191
- function decodeTag64(data, pos, _minor, options) {
2192
- return new Token(Type.tag, readUint64(data, pos + 1, options), 9);
2193
- }
2194
- function encodeTag(buf2, token) {
2195
- encodeUintValue(buf2, Type.tag.majorEncoded, token.value);
2196
- }
2197
- encodeTag.compareTokens = encodeUint.compareTokens;
2198
- encodeTag.encodedSize = function encodedSize7(token) {
2199
- return encodeUintValue.encodedSize(token.value);
2200
- };
2201
-
2202
- // node_modules/@ipld/dag-cbor/node_modules/cborg/esm/lib/7float.js
2203
- var MINOR_FALSE = 20;
2204
- var MINOR_TRUE = 21;
2205
- var MINOR_NULL = 22;
2206
- var MINOR_UNDEFINED = 23;
2207
- function decodeUndefined(_data, _pos, _minor, options) {
2208
- if (options.allowUndefined === false) {
2209
- throw new Error(`${decodeErrPrefix} undefined values are not supported`);
2210
- } else if (options.coerceUndefinedToNull === true) {
2211
- return new Token(Type.null, null, 1);
2212
- }
2213
- return new Token(Type.undefined, void 0, 1);
2214
- }
2215
- function decodeBreak(_data, _pos, _minor, options) {
2216
- if (options.allowIndefinite === false) {
2217
- throw new Error(`${decodeErrPrefix} indefinite length items not allowed`);
2218
- }
2219
- return new Token(Type.break, void 0, 1);
2220
- }
2221
- function createToken(value, bytes, options) {
2222
- if (options) {
2223
- if (options.allowNaN === false && Number.isNaN(value)) {
2224
- throw new Error(`${decodeErrPrefix} NaN values are not supported`);
2225
- }
2226
- if (options.allowInfinity === false && (value === Infinity || value === -Infinity)) {
2227
- throw new Error(`${decodeErrPrefix} Infinity values are not supported`);
2228
- }
2229
- }
2230
- return new Token(Type.float, value, bytes);
2231
- }
2232
- function decodeFloat16(data, pos, _minor, options) {
2233
- return createToken(readFloat16(data, pos + 1), 3, options);
2234
- }
2235
- function decodeFloat32(data, pos, _minor, options) {
2236
- return createToken(readFloat32(data, pos + 1), 5, options);
2237
- }
2238
- function decodeFloat64(data, pos, _minor, options) {
2239
- return createToken(readFloat64(data, pos + 1), 9, options);
2240
- }
2241
- function encodeFloat(buf2, token, options) {
2242
- const float = token.value;
2243
- if (float === false) {
2244
- buf2.push([Type.float.majorEncoded | MINOR_FALSE]);
2245
- } else if (float === true) {
2246
- buf2.push([Type.float.majorEncoded | MINOR_TRUE]);
2247
- } else if (float === null) {
2248
- buf2.push([Type.float.majorEncoded | MINOR_NULL]);
2249
- } else if (float === void 0) {
2250
- buf2.push([Type.float.majorEncoded | MINOR_UNDEFINED]);
2251
- } else {
2252
- let decoded;
2253
- let success = false;
2254
- if (!options || options.float64 !== true) {
2255
- encodeFloat16(float);
2256
- decoded = readFloat16(ui8a, 1);
2257
- if (float === decoded || Number.isNaN(float)) {
2258
- ui8a[0] = 249;
2259
- buf2.push(ui8a.slice(0, 3));
2260
- success = true;
2261
- } else {
2262
- encodeFloat32(float);
2263
- decoded = readFloat32(ui8a, 1);
2264
- if (float === decoded) {
2265
- ui8a[0] = 250;
2266
- buf2.push(ui8a.slice(0, 5));
2267
- success = true;
2268
- }
2269
- }
2270
- }
2271
- if (!success) {
2272
- encodeFloat64(float);
2273
- decoded = readFloat64(ui8a, 1);
2274
- ui8a[0] = 251;
2275
- buf2.push(ui8a.slice(0, 9));
2276
- }
2277
- }
2278
- }
2279
- encodeFloat.encodedSize = function encodedSize8(token, options) {
2280
- const float = token.value;
2281
- if (float === false || float === true || float === null || float === void 0) {
2282
- return 1;
2283
- }
2284
- if (!options || options.float64 !== true) {
2285
- encodeFloat16(float);
2286
- let decoded = readFloat16(ui8a, 1);
2287
- if (float === decoded || Number.isNaN(float)) {
2288
- return 3;
2289
- }
2290
- encodeFloat32(float);
2291
- decoded = readFloat32(ui8a, 1);
2292
- if (float === decoded) {
2293
- return 5;
2294
- }
2295
- }
2296
- return 9;
2297
- };
2298
- var buffer = new ArrayBuffer(9);
2299
- var dataView = new DataView(buffer, 1);
2300
- var ui8a = new Uint8Array(buffer, 0);
2301
- function encodeFloat16(inp) {
2302
- if (inp === Infinity) {
2303
- dataView.setUint16(0, 31744, false);
2304
- } else if (inp === -Infinity) {
2305
- dataView.setUint16(0, 64512, false);
2306
- } else if (Number.isNaN(inp)) {
2307
- dataView.setUint16(0, 32256, false);
2308
- } else {
2309
- dataView.setFloat32(0, inp);
2310
- const valu32 = dataView.getUint32(0);
2311
- const exponent = (valu32 & 2139095040) >> 23;
2312
- const mantissa = valu32 & 8388607;
2313
- if (exponent === 255) {
2314
- dataView.setUint16(0, 31744, false);
2315
- } else if (exponent === 0) {
2316
- dataView.setUint16(0, (inp & 2147483648) >> 16 | mantissa >> 13, false);
2317
- } else {
2318
- const logicalExponent = exponent - 127;
2319
- if (logicalExponent < -24) {
2320
- dataView.setUint16(0, 0);
2321
- } else if (logicalExponent < -14) {
2322
- dataView.setUint16(0, (valu32 & 2147483648) >> 16 | 1 << 24 + logicalExponent, false);
2323
- } else {
2324
- dataView.setUint16(0, (valu32 & 2147483648) >> 16 | logicalExponent + 15 << 10 | mantissa >> 13, false);
2325
- }
2326
- }
2327
- }
2328
- }
2329
- function readFloat16(ui8a2, pos) {
2330
- if (ui8a2.length - pos < 2) {
2331
- throw new Error(`${decodeErrPrefix} not enough data for float16`);
2332
- }
2333
- const half = (ui8a2[pos] << 8) + ui8a2[pos + 1];
2334
- if (half === 31744) {
2335
- return Infinity;
2336
- }
2337
- if (half === 64512) {
2338
- return -Infinity;
2339
- }
2340
- if (half === 32256) {
2341
- return NaN;
2342
- }
2343
- const exp = half >> 10 & 31;
2344
- const mant = half & 1023;
2345
- let val;
2346
- if (exp === 0) {
2347
- val = mant * __pow(2, -24);
2348
- } else if (exp !== 31) {
2349
- val = (mant + 1024) * __pow(2, exp - 25);
2350
- } else {
2351
- val = mant === 0 ? Infinity : NaN;
2352
- }
2353
- return half & 32768 ? -val : val;
2354
- }
2355
- function encodeFloat32(inp) {
2356
- dataView.setFloat32(0, inp, false);
2357
- }
2358
- function readFloat32(ui8a2, pos) {
2359
- if (ui8a2.length - pos < 4) {
2360
- throw new Error(`${decodeErrPrefix} not enough data for float32`);
2361
- }
2362
- const offset = (ui8a2.byteOffset || 0) + pos;
2363
- return new DataView(ui8a2.buffer, offset, 4).getFloat32(0, false);
2364
- }
2365
- function encodeFloat64(inp) {
2366
- dataView.setFloat64(0, inp, false);
2367
- }
2368
- function readFloat64(ui8a2, pos) {
2369
- if (ui8a2.length - pos < 8) {
2370
- throw new Error(`${decodeErrPrefix} not enough data for float64`);
2371
- }
2372
- const offset = (ui8a2.byteOffset || 0) + pos;
2373
- return new DataView(ui8a2.buffer, offset, 8).getFloat64(0, false);
2374
- }
2375
- encodeFloat.compareTokens = encodeUint.compareTokens;
2376
-
2377
- // node_modules/@ipld/dag-cbor/node_modules/cborg/esm/lib/jump.js
2378
- function invalidMinor(data, pos, minor) {
2379
- throw new Error(`${decodeErrPrefix} encountered invalid minor (${minor}) for major ${data[pos] >>> 5}`);
2380
- }
2381
- function errorer(msg) {
2382
- return () => {
2383
- throw new Error(`${decodeErrPrefix} ${msg}`);
2384
- };
2385
- }
2386
- var jump = [];
2387
- for (let i = 0; i <= 23; i++) {
2388
- jump[i] = invalidMinor;
2389
- }
2390
- jump[24] = decodeUint8;
2391
- jump[25] = decodeUint16;
2392
- jump[26] = decodeUint32;
2393
- jump[27] = decodeUint64;
2394
- jump[28] = invalidMinor;
2395
- jump[29] = invalidMinor;
2396
- jump[30] = invalidMinor;
2397
- jump[31] = invalidMinor;
2398
- for (let i = 32; i <= 55; i++) {
2399
- jump[i] = invalidMinor;
2400
- }
2401
- jump[56] = decodeNegint8;
2402
- jump[57] = decodeNegint16;
2403
- jump[58] = decodeNegint32;
2404
- jump[59] = decodeNegint64;
2405
- jump[60] = invalidMinor;
2406
- jump[61] = invalidMinor;
2407
- jump[62] = invalidMinor;
2408
- jump[63] = invalidMinor;
2409
- for (let i = 64; i <= 87; i++) {
2410
- jump[i] = decodeBytesCompact;
2411
- }
2412
- jump[88] = decodeBytes8;
2413
- jump[89] = decodeBytes16;
2414
- jump[90] = decodeBytes32;
2415
- jump[91] = decodeBytes64;
2416
- jump[92] = invalidMinor;
2417
- jump[93] = invalidMinor;
2418
- jump[94] = invalidMinor;
2419
- jump[95] = errorer("indefinite length bytes/strings are not supported");
2420
- for (let i = 96; i <= 119; i++) {
2421
- jump[i] = decodeStringCompact;
2422
- }
2423
- jump[120] = decodeString8;
2424
- jump[121] = decodeString16;
2425
- jump[122] = decodeString32;
2426
- jump[123] = decodeString64;
2427
- jump[124] = invalidMinor;
2428
- jump[125] = invalidMinor;
2429
- jump[126] = invalidMinor;
2430
- jump[127] = errorer("indefinite length bytes/strings are not supported");
2431
- for (let i = 128; i <= 151; i++) {
2432
- jump[i] = decodeArrayCompact;
2433
- }
2434
- jump[152] = decodeArray8;
2435
- jump[153] = decodeArray16;
2436
- jump[154] = decodeArray32;
2437
- jump[155] = decodeArray64;
2438
- jump[156] = invalidMinor;
2439
- jump[157] = invalidMinor;
2440
- jump[158] = invalidMinor;
2441
- jump[159] = decodeArrayIndefinite;
2442
- for (let i = 160; i <= 183; i++) {
2443
- jump[i] = decodeMapCompact;
2444
- }
2445
- jump[184] = decodeMap8;
2446
- jump[185] = decodeMap16;
2447
- jump[186] = decodeMap32;
2448
- jump[187] = decodeMap64;
2449
- jump[188] = invalidMinor;
2450
- jump[189] = invalidMinor;
2451
- jump[190] = invalidMinor;
2452
- jump[191] = decodeMapIndefinite;
2453
- for (let i = 192; i <= 215; i++) {
2454
- jump[i] = decodeTagCompact;
2455
- }
2456
- jump[216] = decodeTag8;
2457
- jump[217] = decodeTag16;
2458
- jump[218] = decodeTag32;
2459
- jump[219] = decodeTag64;
2460
- jump[220] = invalidMinor;
2461
- jump[221] = invalidMinor;
2462
- jump[222] = invalidMinor;
2463
- jump[223] = invalidMinor;
2464
- for (let i = 224; i <= 243; i++) {
2465
- jump[i] = errorer("simple values are not supported");
2466
- }
2467
- jump[244] = invalidMinor;
2468
- jump[245] = invalidMinor;
2469
- jump[246] = invalidMinor;
2470
- jump[247] = decodeUndefined;
2471
- jump[248] = errorer("simple values are not supported");
2472
- jump[249] = decodeFloat16;
2473
- jump[250] = decodeFloat32;
2474
- jump[251] = decodeFloat64;
2475
- jump[252] = invalidMinor;
2476
- jump[253] = invalidMinor;
2477
- jump[254] = invalidMinor;
2478
- jump[255] = decodeBreak;
2479
- var quick = [];
2480
- for (let i = 0; i < 24; i++) {
2481
- quick[i] = new Token(Type.uint, i, 1);
2482
- }
2483
- for (let i = -1; i >= -24; i--) {
2484
- quick[31 - i] = new Token(Type.negint, i, 1);
2485
- }
2486
- quick[64] = new Token(Type.bytes, new Uint8Array(0), 1);
2487
- quick[96] = new Token(Type.string, "", 1);
2488
- quick[128] = new Token(Type.array, 0, 1);
2489
- quick[160] = new Token(Type.map, 0, 1);
2490
- quick[244] = new Token(Type.false, false, 1);
2491
- quick[245] = new Token(Type.true, true, 1);
2492
- quick[246] = new Token(Type.null, null, 1);
2493
- function quickEncodeToken(token) {
2494
- switch (token.type) {
2495
- case Type.false:
2496
- return fromArray([244]);
2497
- case Type.true:
2498
- return fromArray([245]);
2499
- case Type.null:
2500
- return fromArray([246]);
2501
- case Type.bytes:
2502
- if (!token.value.length) {
2503
- return fromArray([64]);
2504
- }
2505
- return;
2506
- case Type.string:
2507
- if (token.value === "") {
2508
- return fromArray([96]);
2509
- }
2510
- return;
2511
- case Type.array:
2512
- if (token.value === 0) {
2513
- return fromArray([128]);
2514
- }
2515
- return;
2516
- case Type.map:
2517
- if (token.value === 0) {
2518
- return fromArray([160]);
2519
- }
2520
- return;
2521
- case Type.uint:
2522
- if (token.value < 24) {
2523
- return fromArray([Number(token.value)]);
2524
- }
2525
- return;
2526
- case Type.negint:
2527
- if (token.value >= -24) {
2528
- return fromArray([31 - Number(token.value)]);
2529
- }
2530
- }
2531
- }
2532
-
2533
- // node_modules/@ipld/dag-cbor/node_modules/cborg/esm/lib/encode.js
2534
- var defaultEncodeOptions = {
2535
- float64: false,
2536
- mapSorter,
2537
- quickEncodeToken
2538
- };
2539
- function makeCborEncoders() {
2540
- const encoders = [];
2541
- encoders[Type.uint.major] = encodeUint;
2542
- encoders[Type.negint.major] = encodeNegint;
2543
- encoders[Type.bytes.major] = encodeBytes;
2544
- encoders[Type.string.major] = encodeString;
2545
- encoders[Type.array.major] = encodeArray;
2546
- encoders[Type.map.major] = encodeMap;
2547
- encoders[Type.tag.major] = encodeTag;
2548
- encoders[Type.float.major] = encodeFloat;
2549
- return encoders;
2550
- }
2551
- var cborEncoders = makeCborEncoders();
2552
- var buf = new Bl();
2553
- var Ref = class _Ref {
2554
- constructor(obj, parent) {
2555
- this.obj = obj;
2556
- this.parent = parent;
2557
- }
2558
- includes(obj) {
2559
- let p = this;
2560
- do {
2561
- if (p.obj === obj) {
2562
- return true;
2563
- }
2564
- } while (p = p.parent);
2565
- return false;
2566
- }
2567
- static createCheck(stack, obj) {
2568
- if (stack && stack.includes(obj)) {
2569
- throw new Error(`${encodeErrPrefix} object contains circular references`);
2570
- }
2571
- return new _Ref(obj, stack);
2572
- }
2573
- };
2574
- var simpleTokens = {
2575
- null: new Token(Type.null, null),
2576
- undefined: new Token(Type.undefined, void 0),
2577
- true: new Token(Type.true, true),
2578
- false: new Token(Type.false, false),
2579
- emptyArray: new Token(Type.array, 0),
2580
- emptyMap: new Token(Type.map, 0)
2581
- };
2582
- var typeEncoders = {
2583
- number(obj, _typ, _options, _refStack) {
2584
- if (!Number.isInteger(obj) || !Number.isSafeInteger(obj)) {
2585
- return new Token(Type.float, obj);
2586
- } else if (obj >= 0) {
2587
- return new Token(Type.uint, obj);
2588
- } else {
2589
- return new Token(Type.negint, obj);
2590
- }
2591
- },
2592
- bigint(obj, _typ, _options, _refStack) {
2593
- if (obj >= BigInt(0)) {
2594
- return new Token(Type.uint, obj);
2595
- } else {
2596
- return new Token(Type.negint, obj);
2597
- }
2598
- },
2599
- Uint8Array(obj, _typ, _options, _refStack) {
2600
- return new Token(Type.bytes, obj);
2601
- },
2602
- string(obj, _typ, _options, _refStack) {
2603
- return new Token(Type.string, obj);
2604
- },
2605
- boolean(obj, _typ, _options, _refStack) {
2606
- return obj ? simpleTokens.true : simpleTokens.false;
2607
- },
2608
- null(_obj, _typ, _options, _refStack) {
2609
- return simpleTokens.null;
2610
- },
2611
- undefined(_obj, _typ, _options, _refStack) {
2612
- return simpleTokens.undefined;
2613
- },
2614
- ArrayBuffer(obj, _typ, _options, _refStack) {
2615
- return new Token(Type.bytes, new Uint8Array(obj));
2616
- },
2617
- DataView(obj, _typ, _options, _refStack) {
2618
- return new Token(Type.bytes, new Uint8Array(obj.buffer, obj.byteOffset, obj.byteLength));
2619
- },
2620
- Array(obj, _typ, options, refStack) {
2621
- if (!obj.length) {
2622
- if (options.addBreakTokens === true) {
2623
- return [
2624
- simpleTokens.emptyArray,
2625
- new Token(Type.break)
2626
- ];
2627
- }
2628
- return simpleTokens.emptyArray;
2629
- }
2630
- refStack = Ref.createCheck(refStack, obj);
2631
- const entries2 = [];
2632
- let i = 0;
2633
- for (const e of obj) {
2634
- entries2[i++] = objectToTokens(e, options, refStack);
2635
- }
2636
- if (options.addBreakTokens) {
2637
- return [
2638
- new Token(Type.array, obj.length),
2639
- entries2,
2640
- new Token(Type.break)
2641
- ];
2642
- }
2643
- return [
2644
- new Token(Type.array, obj.length),
2645
- entries2
2646
- ];
2647
- },
2648
- Object(obj, typ, options, refStack) {
2649
- const isMap = typ !== "Object";
2650
- const keys = isMap ? obj.keys() : Object.keys(obj);
2651
- const length3 = isMap ? obj.size : keys.length;
2652
- if (!length3) {
2653
- if (options.addBreakTokens === true) {
2654
- return [
2655
- simpleTokens.emptyMap,
2656
- new Token(Type.break)
2657
- ];
2658
- }
2659
- return simpleTokens.emptyMap;
2660
- }
2661
- refStack = Ref.createCheck(refStack, obj);
2662
- const entries2 = [];
2663
- let i = 0;
2664
- for (const key of keys) {
2665
- entries2[i++] = [
2666
- objectToTokens(key, options, refStack),
2667
- objectToTokens(isMap ? obj.get(key) : obj[key], options, refStack)
2668
- ];
2669
- }
2670
- sortMapEntries(entries2, options);
2671
- if (options.addBreakTokens) {
2672
- return [
2673
- new Token(Type.map, length3),
2674
- entries2,
2675
- new Token(Type.break)
2676
- ];
2677
- }
2678
- return [
2679
- new Token(Type.map, length3),
2680
- entries2
2681
- ];
2682
- }
2683
- };
2684
- typeEncoders.Map = typeEncoders.Object;
2685
- typeEncoders.Buffer = typeEncoders.Uint8Array;
2686
- for (const typ of "Uint8Clamped Uint16 Uint32 Int8 Int16 Int32 BigUint64 BigInt64 Float32 Float64".split(" ")) {
2687
- typeEncoders[`${typ}Array`] = typeEncoders.DataView;
2688
- }
2689
- function objectToTokens(obj, options = {}, refStack) {
2690
- const typ = is(obj);
2691
- const customTypeEncoder = options && options.typeEncoders && options.typeEncoders[typ] || typeEncoders[typ];
2692
- if (typeof customTypeEncoder === "function") {
2693
- const tokens = customTypeEncoder(obj, typ, options, refStack);
2694
- if (tokens != null) {
2695
- return tokens;
2696
- }
2697
- }
2698
- const typeEncoder = typeEncoders[typ];
2699
- if (!typeEncoder) {
2700
- throw new Error(`${encodeErrPrefix} unsupported type: ${typ}`);
2701
- }
2702
- return typeEncoder(obj, typ, options, refStack);
2703
- }
2704
- function sortMapEntries(entries2, options) {
2705
- if (options.mapSorter) {
2706
- entries2.sort(options.mapSorter);
2707
- }
2708
- }
2709
- function mapSorter(e1, e2) {
2710
- const keyToken1 = Array.isArray(e1[0]) ? e1[0][0] : e1[0];
2711
- const keyToken2 = Array.isArray(e2[0]) ? e2[0][0] : e2[0];
2712
- if (keyToken1.type !== keyToken2.type) {
2713
- return keyToken1.type.compare(keyToken2.type);
2714
- }
2715
- const major = keyToken1.type.major;
2716
- const tcmp = cborEncoders[major].compareTokens(keyToken1, keyToken2);
2717
- if (tcmp === 0) {
2718
- console.warn("WARNING: complex key types used, CBOR key sorting guarantees are gone");
2719
- }
2720
- return tcmp;
2721
- }
2722
- function tokensToEncoded(buf2, tokens, encoders, options) {
2723
- if (Array.isArray(tokens)) {
2724
- for (const token of tokens) {
2725
- tokensToEncoded(buf2, token, encoders, options);
2726
- }
2727
- } else {
2728
- encoders[tokens.type.major](buf2, tokens, options);
2729
- }
2730
- }
2731
- function encodeCustom(data, encoders, options) {
2732
- const tokens = objectToTokens(data, options);
2733
- if (!Array.isArray(tokens) && options.quickEncodeToken) {
2734
- const quickBytes = options.quickEncodeToken(tokens);
2735
- if (quickBytes) {
2736
- return quickBytes;
2737
- }
2738
- const encoder = encoders[tokens.type.major];
2739
- if (encoder.encodedSize) {
2740
- const size = encoder.encodedSize(tokens, options);
2741
- const buf2 = new Bl(size);
2742
- encoder(buf2, tokens, options);
2743
- if (buf2.chunks.length !== 1) {
2744
- throw new Error(`Unexpected error: pre-calculated length for ${tokens} was wrong`);
2745
- }
2746
- return asU8A(buf2.chunks[0]);
2747
- }
2748
- }
2749
- buf.reset();
2750
- tokensToEncoded(buf, tokens, encoders, options);
2751
- return buf.toBytes(true);
2752
- }
2753
- function encode4(data, options) {
2754
- options = Object.assign({}, defaultEncodeOptions, options);
2755
- return encodeCustom(data, cborEncoders, options);
2756
- }
2757
-
2758
- // node_modules/@ipld/dag-cbor/node_modules/cborg/esm/lib/decode.js
2759
- var defaultDecodeOptions = {
2760
- strict: false,
2761
- allowIndefinite: true,
2762
- allowUndefined: true,
2763
- allowBigInt: true
2764
- };
2765
- var Tokeniser = class {
2766
- constructor(data, options = {}) {
2767
- this.pos = 0;
2768
- this.data = data;
2769
- this.options = options;
2770
- }
2771
- done() {
2772
- return this.pos >= this.data.length;
2773
- }
2774
- next() {
2775
- const byt = this.data[this.pos];
2776
- let token = quick[byt];
2777
- if (token === void 0) {
2778
- const decoder = jump[byt];
2779
- if (!decoder) {
2780
- throw new Error(`${decodeErrPrefix} no decoder for major type ${byt >>> 5} (byte 0x${byt.toString(16).padStart(2, "0")})`);
2781
- }
2782
- const minor = byt & 31;
2783
- token = decoder(this.data, this.pos, minor, this.options);
2784
- }
2785
- this.pos += token.encodedLength;
2786
- return token;
2787
- }
2788
- };
2789
- var DONE = Symbol.for("DONE");
2790
- var BREAK = Symbol.for("BREAK");
2791
- function tokenToArray(token, tokeniser, options) {
2792
- const arr = [];
2793
- for (let i = 0; i < token.value; i++) {
2794
- const value = tokensToObject(tokeniser, options);
2795
- if (value === BREAK) {
2796
- if (token.value === Infinity) {
2797
- break;
2798
- }
2799
- throw new Error(`${decodeErrPrefix} got unexpected break to lengthed array`);
2800
- }
2801
- if (value === DONE) {
2802
- throw new Error(`${decodeErrPrefix} found array but not enough entries (got ${i}, expected ${token.value})`);
2803
- }
2804
- arr[i] = value;
2805
- }
2806
- return arr;
2807
- }
2808
- function tokenToMap(token, tokeniser, options) {
2809
- const useMaps = options.useMaps === true;
2810
- const obj = useMaps ? void 0 : {};
2811
- const m = useMaps ? /* @__PURE__ */ new Map() : void 0;
2812
- for (let i = 0; i < token.value; i++) {
2813
- const key = tokensToObject(tokeniser, options);
2814
- if (key === BREAK) {
2815
- if (token.value === Infinity) {
2816
- break;
2817
- }
2818
- throw new Error(`${decodeErrPrefix} got unexpected break to lengthed map`);
2819
- }
2820
- if (key === DONE) {
2821
- throw new Error(`${decodeErrPrefix} found map but not enough entries (got ${i} [no key], expected ${token.value})`);
2822
- }
2823
- if (useMaps !== true && typeof key !== "string") {
2824
- throw new Error(`${decodeErrPrefix} non-string keys not supported (got ${typeof key})`);
2825
- }
2826
- if (options.rejectDuplicateMapKeys === true) {
2827
- if (useMaps && m.has(key) || !useMaps && key in obj) {
2828
- throw new Error(`${decodeErrPrefix} found repeat map key "${key}"`);
2829
- }
2830
- }
2831
- const value = tokensToObject(tokeniser, options);
2832
- if (value === DONE) {
2833
- throw new Error(`${decodeErrPrefix} found map but not enough entries (got ${i} [no value], expected ${token.value})`);
2834
- }
2835
- if (useMaps) {
2836
- m.set(key, value);
2837
- } else {
2838
- obj[key] = value;
2839
- }
2840
- }
2841
- return useMaps ? m : obj;
2842
- }
2843
- function tokensToObject(tokeniser, options) {
2844
- if (tokeniser.done()) {
2845
- return DONE;
2846
- }
2847
- const token = tokeniser.next();
2848
- if (token.type === Type.break) {
2849
- return BREAK;
2850
- }
2851
- if (token.type.terminal) {
2852
- return token.value;
2853
- }
2854
- if (token.type === Type.array) {
2855
- return tokenToArray(token, tokeniser, options);
2856
- }
2857
- if (token.type === Type.map) {
2858
- return tokenToMap(token, tokeniser, options);
2859
- }
2860
- if (token.type === Type.tag) {
2861
- if (options.tags && typeof options.tags[token.value] === "function") {
2862
- const tagged = tokensToObject(tokeniser, options);
2863
- return options.tags[token.value](tagged);
2864
- }
2865
- throw new Error(`${decodeErrPrefix} tag not supported (${token.value})`);
2866
- }
2867
- throw new Error("unsupported");
2868
- }
2869
- function decode6(data, options) {
2870
- if (!(data instanceof Uint8Array)) {
2871
- throw new Error(`${decodeErrPrefix} data to decode must be a Uint8Array`);
2872
- }
2873
- options = Object.assign({}, defaultDecodeOptions, options);
2874
- const tokeniser = options.tokenizer || new Tokeniser(data, options);
2875
- const decoded = tokensToObject(tokeniser, options);
2876
- if (decoded === DONE) {
2877
- throw new Error(`${decodeErrPrefix} did not find any content to decode`);
2878
- }
2879
- if (decoded === BREAK) {
2880
- throw new Error(`${decodeErrPrefix} got unexpected break`);
2881
- }
2882
- if (!tokeniser.done()) {
2883
- throw new Error(`${decodeErrPrefix} too many terminals, data makes no sense`);
2884
- }
2885
- return decoded;
2886
- }
2887
-
2888
- // node_modules/@ipld/dag-cbor/src/index.js
2889
- var CID_CBOR_TAG = 42;
2890
- function cidEncoder(obj) {
2891
- if (obj.asCID !== obj && obj["/"] !== obj.bytes) {
2892
- return null;
2893
- }
2894
- const cid = CID.asCID(obj);
2895
- if (!cid) {
2896
- return null;
2897
- }
2898
- const bytes = new Uint8Array(cid.bytes.byteLength + 1);
2899
- bytes.set(cid.bytes, 1);
2900
- return [
2901
- new Token(Type.tag, CID_CBOR_TAG),
2902
- new Token(Type.bytes, bytes)
2903
- ];
2904
- }
2905
- function undefinedEncoder() {
2906
- throw new Error("`undefined` is not supported by the IPLD Data Model and cannot be encoded");
2907
- }
2908
- function numberEncoder(num) {
2909
- if (Number.isNaN(num)) {
2910
- throw new Error("`NaN` is not supported by the IPLD Data Model and cannot be encoded");
2911
- }
2912
- if (num === Infinity || num === -Infinity) {
2913
- throw new Error("`Infinity` and `-Infinity` is not supported by the IPLD Data Model and cannot be encoded");
2914
- }
2915
- return null;
2916
- }
2917
- var encodeOptions = {
2918
- float64: true,
2919
- typeEncoders: {
2920
- Object: cidEncoder,
2921
- undefined: undefinedEncoder,
2922
- number: numberEncoder
2923
- }
2924
- };
2925
- function cidDecoder(bytes) {
2926
- if (bytes[0] !== 0) {
2927
- throw new Error("Invalid CID for CBOR tag 42; expected leading 0x00");
2928
- }
2929
- return CID.decode(bytes.subarray(1));
2930
- }
2931
- var decodeOptions = {
2932
- allowIndefinite: false,
2933
- coerceUndefinedToNull: true,
2934
- allowNaN: false,
2935
- allowInfinity: false,
2936
- allowBigInt: true,
2937
- // this will lead to BigInt for ints outside of
2938
- // safe-integer range, which may surprise users
2939
- strict: true,
2940
- useMaps: false,
2941
- rejectDuplicateMapKeys: true,
2942
- /** @type {import('cborg').TagDecoder[]} */
2943
- tags: []
2944
- };
2945
- decodeOptions.tags[CID_CBOR_TAG] = cidDecoder;
2946
- var name = "dag-cbor";
2947
- var code = 113;
2948
- var encode5 = (node) => encode4(node, encodeOptions);
2949
- var decode7 = (data) => decode6(data, decodeOptions);
2950
-
2951
- // node_modules/@alanshaw/pail/node_modules/multiformats/vendor/varint.js
2952
- var encode_12 = encode6;
2953
- var MSB2 = 128;
2954
- var REST2 = 127;
2955
- var MSBALL2 = ~REST2;
2956
- var INT2 = Math.pow(2, 31);
2957
- function encode6(num, out, offset) {
2958
- out = out || [];
2959
- offset = offset || 0;
2960
- var oldOffset = offset;
2961
- while (num >= INT2) {
2962
- out[offset++] = num & 255 | MSB2;
2963
- num /= 128;
2964
- }
2965
- while (num & MSBALL2) {
2966
- out[offset++] = num & 255 | MSB2;
2967
- num >>>= 7;
2968
- }
2969
- out[offset] = num | 0;
2970
- encode6.bytes = offset - oldOffset + 1;
2971
- return out;
2972
- }
2973
- var decode8 = read2;
2974
- var MSB$12 = 128;
2975
- var REST$12 = 127;
2976
- function read2(buf2, offset) {
2977
- var res = 0, offset = offset || 0, shift = 0, counter = offset, b, l = buf2.length;
2978
- do {
2979
- if (counter >= l) {
2980
- read2.bytes = 0;
2981
- throw new RangeError("Could not decode varint");
2982
- }
2983
- b = buf2[counter++];
2984
- res += shift < 28 ? (b & REST$12) << shift : (b & REST$12) * Math.pow(2, shift);
2985
- shift += 7;
2986
- } while (b >= MSB$12);
2987
- read2.bytes = counter - offset;
2988
- return res;
2989
- }
2990
- var N12 = Math.pow(2, 7);
2991
- var N22 = Math.pow(2, 14);
2992
- var N32 = Math.pow(2, 21);
2993
- var N42 = Math.pow(2, 28);
2994
- var N52 = Math.pow(2, 35);
2995
- var N62 = Math.pow(2, 42);
2996
- var N72 = Math.pow(2, 49);
2997
- var N82 = Math.pow(2, 56);
2998
- var N92 = Math.pow(2, 63);
2999
- var length2 = function(value) {
3000
- return value < N12 ? 1 : value < N22 ? 2 : value < N32 ? 3 : value < N42 ? 4 : value < N52 ? 5 : value < N62 ? 6 : value < N72 ? 7 : value < N82 ? 8 : value < N92 ? 9 : 10;
3001
- };
3002
- var varint2 = {
3003
- encode: encode_12,
3004
- decode: decode8,
3005
- encodingLength: length2
3006
- };
3007
- var _brrp_varint2 = varint2;
3008
- var varint_default2 = _brrp_varint2;
3009
-
3010
- // node_modules/@alanshaw/pail/node_modules/multiformats/src/varint.js
3011
- var decode9 = (data, offset = 0) => {
3012
- const code2 = varint_default2.decode(data, offset);
3013
- return [code2, varint_default2.decode.bytes];
3014
- };
3015
- var encodeTo2 = (int, target, offset = 0) => {
3016
- varint_default2.encode(int, target, offset);
3017
- return target;
3018
- };
3019
- var encodingLength2 = (int) => {
3020
- return varint_default2.encodingLength(int);
3021
- };
3022
-
3023
- // node_modules/@alanshaw/pail/node_modules/multiformats/src/bytes.js
3024
- var empty2 = new Uint8Array(0);
3025
- var equals3 = (aa, bb) => {
3026
- if (aa === bb)
3027
- return true;
3028
- if (aa.byteLength !== bb.byteLength) {
3029
- return false;
3030
- }
3031
- for (let ii = 0; ii < aa.byteLength; ii++) {
3032
- if (aa[ii] !== bb[ii]) {
3033
- return false;
3034
- }
3035
- }
3036
- return true;
3037
- };
3038
- var coerce2 = (o) => {
3039
- if (o instanceof Uint8Array && o.constructor.name === "Uint8Array")
3040
- return o;
3041
- if (o instanceof ArrayBuffer)
3042
- return new Uint8Array(o);
3043
- if (ArrayBuffer.isView(o)) {
3044
- return new Uint8Array(o.buffer, o.byteOffset, o.byteLength);
3045
- }
3046
- throw new Error("Unknown type, must be binary type");
3047
- };
3048
-
3049
- // node_modules/@alanshaw/pail/node_modules/multiformats/src/hashes/digest.js
3050
- var create3 = (code2, digest) => {
3051
- const size = digest.byteLength;
3052
- const sizeOffset = encodingLength2(code2);
3053
- const digestOffset = sizeOffset + encodingLength2(size);
3054
- const bytes = new Uint8Array(digestOffset + size);
3055
- encodeTo2(code2, bytes, 0);
3056
- encodeTo2(size, bytes, sizeOffset);
3057
- bytes.set(digest, digestOffset);
3058
- return new Digest2(code2, size, digest, bytes);
3059
- };
3060
- var decode10 = (multihash) => {
3061
- const bytes = coerce2(multihash);
3062
- const [code2, sizeOffset] = decode9(bytes);
3063
- const [size, digestOffset] = decode9(bytes.subarray(sizeOffset));
3064
- const digest = bytes.subarray(sizeOffset + digestOffset);
3065
- if (digest.byteLength !== size) {
3066
- throw new Error("Incorrect length");
3067
- }
3068
- return new Digest2(code2, size, digest, bytes);
3069
- };
3070
- var equals4 = (a, b) => {
3071
- if (a === b) {
3072
- return true;
3073
- } else {
3074
- const data = (
3075
- /** @type {{code?:unknown, size?:unknown, bytes?:unknown}} */
3076
- b
3077
- );
3078
- return a.code === data.code && a.size === data.size && data.bytes instanceof Uint8Array && equals3(a.bytes, data.bytes);
3079
- }
3080
- };
3081
- var Digest2 = class {
3082
- /**
3083
- * Creates a multihash digest.
3084
- *
3085
- * @param {Code} code
3086
- * @param {Size} size
3087
- * @param {Uint8Array} digest
3088
- * @param {Uint8Array} bytes
3089
- */
3090
- constructor(code2, size, digest, bytes) {
3091
- this.code = code2;
3092
- this.size = size;
3093
- this.digest = digest;
3094
- this.bytes = bytes;
3095
- }
3096
- };
3097
-
3098
- // node_modules/@alanshaw/pail/node_modules/multiformats/vendor/base-x.js
3099
- function base2(ALPHABET, name2) {
3100
- if (ALPHABET.length >= 255) {
3101
- throw new TypeError("Alphabet too long");
3102
- }
3103
- var BASE_MAP = new Uint8Array(256);
3104
- for (var j = 0; j < BASE_MAP.length; j++) {
3105
- BASE_MAP[j] = 255;
3106
- }
3107
- for (var i = 0; i < ALPHABET.length; i++) {
3108
- var x = ALPHABET.charAt(i);
3109
- var xc = x.charCodeAt(0);
3110
- if (BASE_MAP[xc] !== 255) {
3111
- throw new TypeError(x + " is ambiguous");
3112
- }
3113
- BASE_MAP[xc] = i;
3114
- }
3115
- var BASE = ALPHABET.length;
3116
- var LEADER = ALPHABET.charAt(0);
3117
- var FACTOR = Math.log(BASE) / Math.log(256);
3118
- var iFACTOR = Math.log(256) / Math.log(BASE);
3119
- function encode9(source) {
3120
- if (source instanceof Uint8Array)
3121
- ;
3122
- else if (ArrayBuffer.isView(source)) {
3123
- source = new Uint8Array(source.buffer, source.byteOffset, source.byteLength);
3124
- } else if (Array.isArray(source)) {
3125
- source = Uint8Array.from(source);
3126
- }
3127
- if (!(source instanceof Uint8Array)) {
3128
- throw new TypeError("Expected Uint8Array");
3129
- }
3130
- if (source.length === 0) {
3131
- return "";
3132
- }
3133
- var zeroes = 0;
3134
- var length3 = 0;
3135
- var pbegin = 0;
3136
- var pend = source.length;
3137
- while (pbegin !== pend && source[pbegin] === 0) {
3138
- pbegin++;
3139
- zeroes++;
3140
- }
3141
- var size = (pend - pbegin) * iFACTOR + 1 >>> 0;
3142
- var b58 = new Uint8Array(size);
3143
- while (pbegin !== pend) {
3144
- var carry = source[pbegin];
3145
- var i2 = 0;
3146
- for (var it1 = size - 1; (carry !== 0 || i2 < length3) && it1 !== -1; it1--, i2++) {
3147
- carry += 256 * b58[it1] >>> 0;
3148
- b58[it1] = carry % BASE >>> 0;
3149
- carry = carry / BASE >>> 0;
3150
- }
3151
- if (carry !== 0) {
3152
- throw new Error("Non-zero carry");
3153
- }
3154
- length3 = i2;
3155
- pbegin++;
3156
- }
3157
- var it2 = size - length3;
3158
- while (it2 !== size && b58[it2] === 0) {
3159
- it2++;
3160
- }
3161
- var str = LEADER.repeat(zeroes);
3162
- for (; it2 < size; ++it2) {
3163
- str += ALPHABET.charAt(b58[it2]);
3164
- }
3165
- return str;
3166
- }
3167
- function decodeUnsafe(source) {
3168
- if (typeof source !== "string") {
3169
- throw new TypeError("Expected String");
3170
- }
3171
- if (source.length === 0) {
3172
- return new Uint8Array();
3173
- }
3174
- var psz = 0;
3175
- if (source[psz] === " ") {
3176
- return;
3177
- }
3178
- var zeroes = 0;
3179
- var length3 = 0;
3180
- while (source[psz] === LEADER) {
3181
- zeroes++;
3182
- psz++;
3183
- }
3184
- var size = (source.length - psz) * FACTOR + 1 >>> 0;
3185
- var b256 = new Uint8Array(size);
3186
- while (source[psz]) {
3187
- var carry = BASE_MAP[source.charCodeAt(psz)];
3188
- if (carry === 255) {
3189
- return;
3190
- }
3191
- var i2 = 0;
3192
- for (var it3 = size - 1; (carry !== 0 || i2 < length3) && it3 !== -1; it3--, i2++) {
3193
- carry += BASE * b256[it3] >>> 0;
3194
- b256[it3] = carry % 256 >>> 0;
3195
- carry = carry / 256 >>> 0;
3196
- }
3197
- if (carry !== 0) {
3198
- throw new Error("Non-zero carry");
3199
- }
3200
- length3 = i2;
3201
- psz++;
3202
- }
3203
- if (source[psz] === " ") {
3204
- return;
3205
- }
3206
- var it4 = size - length3;
3207
- while (it4 !== size && b256[it4] === 0) {
3208
- it4++;
3209
- }
3210
- var vch = new Uint8Array(zeroes + (size - it4));
3211
- var j2 = zeroes;
3212
- while (it4 !== size) {
3213
- vch[j2++] = b256[it4++];
3214
- }
3215
- return vch;
3216
- }
3217
- function decode13(string) {
3218
- var buffer2 = decodeUnsafe(string);
3219
- if (buffer2) {
3220
- return buffer2;
3221
- }
3222
- throw new Error(`Non-${name2} character`);
3223
- }
3224
- return {
3225
- encode: encode9,
3226
- decodeUnsafe,
3227
- decode: decode13
3228
- };
3229
- }
3230
- var src2 = base2;
3231
- var _brrp__multiformats_scope_baseX2 = src2;
3232
- var base_x_default2 = _brrp__multiformats_scope_baseX2;
3233
-
3234
- // node_modules/@alanshaw/pail/node_modules/multiformats/src/bases/base.js
3235
- var Encoder2 = class {
3236
- /**
3237
- * @param {Base} name
3238
- * @param {Prefix} prefix
3239
- * @param {(bytes:Uint8Array) => string} baseEncode
3240
- */
3241
- constructor(name2, prefix, baseEncode) {
3242
- this.name = name2;
3243
- this.prefix = prefix;
3244
- this.baseEncode = baseEncode;
3245
- }
3246
- /**
3247
- * @param {Uint8Array} bytes
3248
- * @returns {API.Multibase<Prefix>}
3249
- */
3250
- encode(bytes) {
3251
- if (bytes instanceof Uint8Array) {
3252
- return `${this.prefix}${this.baseEncode(bytes)}`;
3253
- } else {
3254
- throw Error("Unknown type, must be binary type");
3255
- }
3256
- }
3257
- };
3258
- var Decoder2 = class {
3259
- /**
3260
- * @param {Base} name
3261
- * @param {Prefix} prefix
3262
- * @param {(text:string) => Uint8Array} baseDecode
3263
- */
3264
- constructor(name2, prefix, baseDecode) {
3265
- this.name = name2;
3266
- this.prefix = prefix;
3267
- if (prefix.codePointAt(0) === void 0) {
3268
- throw new Error("Invalid prefix character");
3269
- }
3270
- this.prefixCodePoint = /** @type {number} */
3271
- prefix.codePointAt(0);
3272
- this.baseDecode = baseDecode;
3273
- }
3274
- /**
3275
- * @param {string} text
3276
- */
3277
- decode(text) {
3278
- if (typeof text === "string") {
3279
- if (text.codePointAt(0) !== this.prefixCodePoint) {
3280
- throw Error(`Unable to decode multibase string ${JSON.stringify(text)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);
3281
- }
3282
- return this.baseDecode(text.slice(this.prefix.length));
3283
- } else {
3284
- throw Error("Can only multibase decode strings");
3285
- }
3286
- }
3287
- /**
3288
- * @template {string} OtherPrefix
3289
- * @param {API.UnibaseDecoder<OtherPrefix>|ComposedDecoder<OtherPrefix>} decoder
3290
- * @returns {ComposedDecoder<Prefix|OtherPrefix>}
3291
- */
3292
- or(decoder) {
3293
- return or2(this, decoder);
3294
- }
3295
- };
3296
- var ComposedDecoder2 = class {
3297
- /**
3298
- * @param {Decoders<Prefix>} decoders
3299
- */
3300
- constructor(decoders) {
3301
- this.decoders = decoders;
3302
- }
3303
- /**
3304
- * @template {string} OtherPrefix
3305
- * @param {API.UnibaseDecoder<OtherPrefix>|ComposedDecoder<OtherPrefix>} decoder
3306
- * @returns {ComposedDecoder<Prefix|OtherPrefix>}
3307
- */
3308
- or(decoder) {
3309
- return or2(this, decoder);
3310
- }
3311
- /**
3312
- * @param {string} input
3313
- * @returns {Uint8Array}
3314
- */
3315
- decode(input) {
3316
- const prefix = (
3317
- /** @type {Prefix} */
3318
- input[0]
3319
- );
3320
- const decoder = this.decoders[prefix];
3321
- if (decoder) {
3322
- return decoder.decode(input);
3323
- } else {
3324
- throw RangeError(`Unable to decode multibase string ${JSON.stringify(input)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`);
3325
- }
3326
- }
3327
- };
3328
- var or2 = (left, right) => new ComposedDecoder2(
3329
- /** @type {Decoders<L|R>} */
3330
- __spreadValues(__spreadValues({}, left.decoders || { [
3331
- /** @type API.UnibaseDecoder<L> */
3332
- left.prefix
3333
- ]: left }), right.decoders || { [
3334
- /** @type API.UnibaseDecoder<R> */
3335
- right.prefix
3336
- ]: right })
3337
- );
3338
- var Codec2 = class {
3339
- /**
3340
- * @param {Base} name
3341
- * @param {Prefix} prefix
3342
- * @param {(bytes:Uint8Array) => string} baseEncode
3343
- * @param {(text:string) => Uint8Array} baseDecode
3344
- */
3345
- constructor(name2, prefix, baseEncode, baseDecode) {
3346
- this.name = name2;
3347
- this.prefix = prefix;
3348
- this.baseEncode = baseEncode;
3349
- this.baseDecode = baseDecode;
3350
- this.encoder = new Encoder2(name2, prefix, baseEncode);
3351
- this.decoder = new Decoder2(name2, prefix, baseDecode);
3352
- }
3353
- /**
3354
- * @param {Uint8Array} input
3355
- */
3356
- encode(input) {
3357
- return this.encoder.encode(input);
3358
- }
3359
- /**
3360
- * @param {string} input
3361
- */
3362
- decode(input) {
3363
- return this.decoder.decode(input);
3364
- }
3365
- };
3366
- var from3 = ({ name: name2, prefix, encode: encode9, decode: decode13 }) => new Codec2(name2, prefix, encode9, decode13);
3367
- var baseX2 = ({ prefix, name: name2, alphabet }) => {
3368
- const { encode: encode9, decode: decode13 } = base_x_default2(alphabet, name2);
3369
- return from3({
3370
- prefix,
3371
- name: name2,
3372
- encode: encode9,
3373
- /**
3374
- * @param {string} text
3375
- */
3376
- decode: (text) => coerce2(decode13(text))
3377
- });
3378
- };
3379
- var decode11 = (string, alphabet, bitsPerChar, name2) => {
3380
- const codes = {};
3381
- for (let i = 0; i < alphabet.length; ++i) {
3382
- codes[alphabet[i]] = i;
3383
- }
3384
- let end = string.length;
3385
- while (string[end - 1] === "=") {
3386
- --end;
3387
- }
3388
- const out = new Uint8Array(end * bitsPerChar / 8 | 0);
3389
- let bits = 0;
3390
- let buffer2 = 0;
3391
- let written = 0;
3392
- for (let i = 0; i < end; ++i) {
3393
- const value = codes[string[i]];
3394
- if (value === void 0) {
3395
- throw new SyntaxError(`Non-${name2} character`);
3396
- }
3397
- buffer2 = buffer2 << bitsPerChar | value;
3398
- bits += bitsPerChar;
3399
- if (bits >= 8) {
3400
- bits -= 8;
3401
- out[written++] = 255 & buffer2 >> bits;
3402
- }
3403
- }
3404
- if (bits >= bitsPerChar || 255 & buffer2 << 8 - bits) {
3405
- throw new SyntaxError("Unexpected end of data");
3406
- }
3407
- return out;
3408
- };
3409
- var encode7 = (data, alphabet, bitsPerChar) => {
3410
- const pad = alphabet[alphabet.length - 1] === "=";
3411
- const mask = (1 << bitsPerChar) - 1;
3412
- let out = "";
3413
- let bits = 0;
3414
- let buffer2 = 0;
3415
- for (let i = 0; i < data.length; ++i) {
3416
- buffer2 = buffer2 << 8 | data[i];
3417
- bits += 8;
3418
- while (bits > bitsPerChar) {
3419
- bits -= bitsPerChar;
3420
- out += alphabet[mask & buffer2 >> bits];
3421
- }
3422
- }
3423
- if (bits) {
3424
- out += alphabet[mask & buffer2 << bitsPerChar - bits];
3425
- }
3426
- if (pad) {
3427
- while (out.length * bitsPerChar & 7) {
3428
- out += "=";
3429
- }
3430
- }
3431
- return out;
3432
- };
3433
- var rfc46482 = ({ name: name2, prefix, bitsPerChar, alphabet }) => {
3434
- return from3({
3435
- prefix,
3436
- name: name2,
3437
- encode(input) {
3438
- return encode7(input, alphabet, bitsPerChar);
3439
- },
3440
- decode(input) {
3441
- return decode11(input, alphabet, bitsPerChar, name2);
3442
- }
3443
- });
3444
- };
3445
-
3446
- // node_modules/@alanshaw/pail/node_modules/multiformats/src/bases/base58.js
3447
- var base58btc2 = baseX2({
3448
- name: "base58btc",
3449
- prefix: "z",
3450
- alphabet: "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"
3451
- });
3452
- var base58flickr2 = baseX2({
3453
- name: "base58flickr",
3454
- prefix: "Z",
3455
- alphabet: "123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"
3456
- });
3457
-
3458
- // node_modules/@alanshaw/pail/node_modules/multiformats/src/bases/base32.js
3459
- var base322 = rfc46482({
3460
- prefix: "b",
3461
- name: "base32",
3462
- alphabet: "abcdefghijklmnopqrstuvwxyz234567",
3463
- bitsPerChar: 5
3464
- });
3465
- var base32upper2 = rfc46482({
3466
- prefix: "B",
3467
- name: "base32upper",
3468
- alphabet: "ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",
3469
- bitsPerChar: 5
3470
- });
3471
- var base32pad2 = rfc46482({
3472
- prefix: "c",
3473
- name: "base32pad",
3474
- alphabet: "abcdefghijklmnopqrstuvwxyz234567=",
3475
- bitsPerChar: 5
3476
- });
3477
- var base32padupper2 = rfc46482({
3478
- prefix: "C",
3479
- name: "base32padupper",
3480
- alphabet: "ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",
3481
- bitsPerChar: 5
3482
- });
3483
- var base32hex2 = rfc46482({
3484
- prefix: "v",
3485
- name: "base32hex",
3486
- alphabet: "0123456789abcdefghijklmnopqrstuv",
3487
- bitsPerChar: 5
3488
- });
3489
- var base32hexupper2 = rfc46482({
3490
- prefix: "V",
3491
- name: "base32hexupper",
3492
- alphabet: "0123456789ABCDEFGHIJKLMNOPQRSTUV",
3493
- bitsPerChar: 5
3494
- });
3495
- var base32hexpad2 = rfc46482({
3496
- prefix: "t",
3497
- name: "base32hexpad",
3498
- alphabet: "0123456789abcdefghijklmnopqrstuv=",
3499
- bitsPerChar: 5
3500
- });
3501
- var base32hexpadupper2 = rfc46482({
3502
- prefix: "T",
3503
- name: "base32hexpadupper",
3504
- alphabet: "0123456789ABCDEFGHIJKLMNOPQRSTUV=",
3505
- bitsPerChar: 5
3506
- });
3507
- var base32z2 = rfc46482({
3508
- prefix: "h",
3509
- name: "base32z",
3510
- alphabet: "ybndrfg8ejkmcpqxot1uwisza345h769",
3511
- bitsPerChar: 5
3512
- });
3513
-
3514
- // node_modules/@alanshaw/pail/node_modules/multiformats/src/cid.js
3515
- var format2 = (link, base3) => {
3516
- const { bytes, version } = link;
3517
- switch (version) {
3518
- case 0:
3519
- return toStringV02(
3520
- bytes,
3521
- baseCache2(link),
3522
- /** @type {API.MultibaseEncoder<"z">} */
3523
- base3 || base58btc2.encoder
3524
- );
3525
- default:
3526
- return toStringV12(
3527
- bytes,
3528
- baseCache2(link),
3529
- /** @type {API.MultibaseEncoder<Prefix>} */
3530
- base3 || base322.encoder
3531
- );
3532
- }
3533
- };
3534
- var cache2 = /* @__PURE__ */ new WeakMap();
3535
- var baseCache2 = (cid) => {
3536
- const baseCache3 = cache2.get(cid);
3537
- if (baseCache3 == null) {
3538
- const baseCache4 = /* @__PURE__ */ new Map();
3539
- cache2.set(cid, baseCache4);
3540
- return baseCache4;
3541
- }
3542
- return baseCache3;
3543
- };
3544
- var CID2 = class _CID {
3545
- /**
3546
- * @param {Version} version - Version of the CID
3547
- * @param {Format} code - Code of the codec content is encoded in, see https://github.com/multiformats/multicodec/blob/master/table.csv
3548
- * @param {API.MultihashDigest<Alg>} multihash - (Multi)hash of the of the content.
3549
- * @param {Uint8Array} bytes
3550
- *
3551
- */
3552
- constructor(version, code2, multihash, bytes) {
3553
- this.code = code2;
3554
- this.version = version;
3555
- this.multihash = multihash;
3556
- this.bytes = bytes;
3557
- this["/"] = bytes;
3558
- }
3559
- /**
3560
- * Signalling `cid.asCID === cid` has been replaced with `cid['/'] === cid.bytes`
3561
- * please either use `CID.asCID(cid)` or switch to new signalling mechanism
3562
- *
3563
- * @deprecated
3564
- */
3565
- get asCID() {
3566
- return this;
3567
- }
3568
- // ArrayBufferView
3569
- get byteOffset() {
3570
- return this.bytes.byteOffset;
3571
- }
3572
- // ArrayBufferView
3573
- get byteLength() {
3574
- return this.bytes.byteLength;
3575
- }
3576
- /**
3577
- * @returns {CID<Data, API.DAG_PB, API.SHA_256, 0>}
3578
- */
3579
- toV0() {
3580
- switch (this.version) {
3581
- case 0: {
3582
- return (
3583
- /** @type {CID<Data, API.DAG_PB, API.SHA_256, 0>} */
3584
- this
3585
- );
3586
- }
3587
- case 1: {
3588
- const { code: code2, multihash } = this;
3589
- if (code2 !== DAG_PB_CODE2) {
3590
- throw new Error("Cannot convert a non dag-pb CID to CIDv0");
3591
- }
3592
- if (multihash.code !== SHA_256_CODE2) {
3593
- throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");
3594
- }
3595
- return (
3596
- /** @type {CID<Data, API.DAG_PB, API.SHA_256, 0>} */
3597
- _CID.createV0(
3598
- /** @type {API.MultihashDigest<API.SHA_256>} */
3599
- multihash
3600
- )
3601
- );
3602
- }
3603
- default: {
3604
- throw Error(
3605
- `Can not convert CID version ${this.version} to version 0. This is a bug please report`
3606
- );
3607
- }
3608
- }
3609
- }
3610
- /**
3611
- * @returns {CID<Data, Format, Alg, 1>}
3612
- */
3613
- toV1() {
3614
- switch (this.version) {
3615
- case 0: {
3616
- const { code: code2, digest } = this.multihash;
3617
- const multihash = create3(code2, digest);
3618
- return (
3619
- /** @type {CID<Data, Format, Alg, 1>} */
3620
- _CID.createV1(this.code, multihash)
3621
- );
3622
- }
3623
- case 1: {
3624
- return (
3625
- /** @type {CID<Data, Format, Alg, 1>} */
3626
- this
3627
- );
3628
- }
3629
- default: {
3630
- throw Error(
3631
- `Can not convert CID version ${this.version} to version 1. This is a bug please report`
3632
- );
3633
- }
3634
- }
3635
- }
3636
- /**
3637
- * @param {unknown} other
3638
- * @returns {other is CID<Data, Format, Alg, Version>}
3639
- */
3640
- equals(other) {
3641
- return _CID.equals(this, other);
3642
- }
3643
- /**
3644
- * @template {unknown} Data
3645
- * @template {number} Format
3646
- * @template {number} Alg
3647
- * @template {API.Version} Version
3648
- * @param {API.Link<Data, Format, Alg, Version>} self
3649
- * @param {unknown} other
3650
- * @returns {other is CID}
3651
- */
3652
- static equals(self, other) {
3653
- const unknown = (
3654
- /** @type {{code?:unknown, version?:unknown, multihash?:unknown}} */
3655
- other
3656
- );
3657
- return unknown && self.code === unknown.code && self.version === unknown.version && equals4(self.multihash, unknown.multihash);
3658
- }
3659
- /**
3660
- * @param {API.MultibaseEncoder<string>} [base]
3661
- * @returns {string}
3662
- */
3663
- toString(base3) {
3664
- return format2(this, base3);
3665
- }
3666
- toJSON() {
3667
- return { "/": format2(this) };
3668
- }
3669
- link() {
3670
- return this;
3671
- }
3672
- get [Symbol.toStringTag]() {
3673
- return "CID";
3674
- }
3675
- // Legacy
3676
- [Symbol.for("nodejs.util.inspect.custom")]() {
3677
- return `CID(${this.toString()})`;
3678
- }
3679
- /**
3680
- * Takes any input `value` and returns a `CID` instance if it was
3681
- * a `CID` otherwise returns `null`. If `value` is instanceof `CID`
3682
- * it will return value back. If `value` is not instance of this CID
3683
- * class, but is compatible CID it will return new instance of this
3684
- * `CID` class. Otherwise returns null.
3685
- *
3686
- * This allows two different incompatible versions of CID library to
3687
- * co-exist and interop as long as binary interface is compatible.
3688
- *
3689
- * @template {unknown} Data
3690
- * @template {number} Format
3691
- * @template {number} Alg
3692
- * @template {API.Version} Version
3693
- * @template {unknown} U
3694
- * @param {API.Link<Data, Format, Alg, Version>|U} input
3695
- * @returns {CID<Data, Format, Alg, Version>|null}
3696
- */
3697
- static asCID(input) {
3698
- if (input == null) {
3699
- return null;
3700
- }
3701
- const value = (
3702
- /** @type {any} */
3703
- input
3704
- );
3705
- if (value instanceof _CID) {
3706
- return value;
3707
- } else if (value["/"] != null && value["/"] === value.bytes || value.asCID === value) {
3708
- const { version, code: code2, multihash, bytes } = value;
3709
- return new _CID(
3710
- version,
3711
- code2,
3712
- /** @type {API.MultihashDigest<Alg>} */
3713
- multihash,
3714
- bytes || encodeCID2(version, code2, multihash.bytes)
3715
- );
3716
- } else if (value[cidSymbol2] === true) {
3717
- const { version, multihash, code: code2 } = value;
3718
- const digest = (
3719
- /** @type {API.MultihashDigest<Alg>} */
3720
- decode10(multihash)
3721
- );
3722
- return _CID.create(version, code2, digest);
3723
- } else {
3724
- return null;
3725
- }
3726
- }
3727
- /**
3728
- *
3729
- * @template {unknown} Data
3730
- * @template {number} Format
3731
- * @template {number} Alg
3732
- * @template {API.Version} Version
3733
- * @param {Version} version - Version of the CID
3734
- * @param {Format} code - Code of the codec content is encoded in, see https://github.com/multiformats/multicodec/blob/master/table.csv
3735
- * @param {API.MultihashDigest<Alg>} digest - (Multi)hash of the of the content.
3736
- * @returns {CID<Data, Format, Alg, Version>}
3737
- */
3738
- static create(version, code2, digest) {
3739
- if (typeof code2 !== "number") {
3740
- throw new Error("String codecs are no longer supported");
3741
- }
3742
- if (!(digest.bytes instanceof Uint8Array)) {
3743
- throw new Error("Invalid digest");
3744
- }
3745
- switch (version) {
3746
- case 0: {
3747
- if (code2 !== DAG_PB_CODE2) {
3748
- throw new Error(
3749
- `Version 0 CID must use dag-pb (code: ${DAG_PB_CODE2}) block encoding`
3750
- );
3751
- } else {
3752
- return new _CID(version, code2, digest, digest.bytes);
3753
- }
3754
- }
3755
- case 1: {
3756
- const bytes = encodeCID2(version, code2, digest.bytes);
3757
- return new _CID(version, code2, digest, bytes);
3758
- }
3759
- default: {
3760
- throw new Error("Invalid version");
3761
- }
3762
- }
3763
- }
3764
- /**
3765
- * Simplified version of `create` for CIDv0.
3766
- *
3767
- * @template {unknown} [T=unknown]
3768
- * @param {API.MultihashDigest<typeof SHA_256_CODE>} digest - Multihash.
3769
- * @returns {CID<T, typeof DAG_PB_CODE, typeof SHA_256_CODE, 0>}
3770
- */
3771
- static createV0(digest) {
3772
- return _CID.create(0, DAG_PB_CODE2, digest);
3773
- }
3774
- /**
3775
- * Simplified version of `create` for CIDv1.
3776
- *
3777
- * @template {unknown} Data
3778
- * @template {number} Code
3779
- * @template {number} Alg
3780
- * @param {Code} code - Content encoding format code.
3781
- * @param {API.MultihashDigest<Alg>} digest - Miltihash of the content.
3782
- * @returns {CID<Data, Code, Alg, 1>}
3783
- */
3784
- static createV1(code2, digest) {
3785
- return _CID.create(1, code2, digest);
3786
- }
3787
- /**
3788
- * Decoded a CID from its binary representation. The byte array must contain
3789
- * only the CID with no additional bytes.
3790
- *
3791
- * An error will be thrown if the bytes provided do not contain a valid
3792
- * binary representation of a CID.
3793
- *
3794
- * @template {unknown} Data
3795
- * @template {number} Code
3796
- * @template {number} Alg
3797
- * @template {API.Version} Ver
3798
- * @param {API.ByteView<API.Link<Data, Code, Alg, Ver>>} bytes
3799
- * @returns {CID<Data, Code, Alg, Ver>}
3800
- */
3801
- static decode(bytes) {
3802
- const [cid, remainder] = _CID.decodeFirst(bytes);
3803
- if (remainder.length) {
3804
- throw new Error("Incorrect length");
3805
- }
3806
- return cid;
3807
- }
3808
- /**
3809
- * Decoded a CID from its binary representation at the beginning of a byte
3810
- * array.
3811
- *
3812
- * Returns an array with the first element containing the CID and the second
3813
- * element containing the remainder of the original byte array. The remainder
3814
- * will be a zero-length byte array if the provided bytes only contained a
3815
- * binary CID representation.
3816
- *
3817
- * @template {unknown} T
3818
- * @template {number} C
3819
- * @template {number} A
3820
- * @template {API.Version} V
3821
- * @param {API.ByteView<API.Link<T, C, A, V>>} bytes
3822
- * @returns {[CID<T, C, A, V>, Uint8Array]}
3823
- */
3824
- static decodeFirst(bytes) {
3825
- const specs = _CID.inspectBytes(bytes);
3826
- const prefixSize = specs.size - specs.multihashSize;
3827
- const multihashBytes = coerce2(
3828
- bytes.subarray(prefixSize, prefixSize + specs.multihashSize)
3829
- );
3830
- if (multihashBytes.byteLength !== specs.multihashSize) {
3831
- throw new Error("Incorrect length");
3832
- }
3833
- const digestBytes = multihashBytes.subarray(
3834
- specs.multihashSize - specs.digestSize
3835
- );
3836
- const digest = new Digest2(
3837
- specs.multihashCode,
3838
- specs.digestSize,
3839
- digestBytes,
3840
- multihashBytes
3841
- );
3842
- const cid = specs.version === 0 ? _CID.createV0(
3843
- /** @type {API.MultihashDigest<API.SHA_256>} */
3844
- digest
3845
- ) : _CID.createV1(specs.codec, digest);
3846
- return [
3847
- /** @type {CID<T, C, A, V>} */
3848
- cid,
3849
- bytes.subarray(specs.size)
3850
- ];
3851
- }
3852
- /**
3853
- * Inspect the initial bytes of a CID to determine its properties.
3854
- *
3855
- * Involves decoding up to 4 varints. Typically this will require only 4 to 6
3856
- * bytes but for larger multicodec code values and larger multihash digest
3857
- * lengths these varints can be quite large. It is recommended that at least
3858
- * 10 bytes be made available in the `initialBytes` argument for a complete
3859
- * inspection.
3860
- *
3861
- * @template {unknown} T
3862
- * @template {number} C
3863
- * @template {number} A
3864
- * @template {API.Version} V
3865
- * @param {API.ByteView<API.Link<T, C, A, V>>} initialBytes
3866
- * @returns {{ version:V, codec:C, multihashCode:A, digestSize:number, multihashSize:number, size:number }}
3867
- */
3868
- static inspectBytes(initialBytes) {
3869
- let offset = 0;
3870
- const next = () => {
3871
- const [i, length3] = decode9(initialBytes.subarray(offset));
3872
- offset += length3;
3873
- return i;
3874
- };
3875
- let version = (
3876
- /** @type {V} */
3877
- next()
3878
- );
3879
- let codec = (
3880
- /** @type {C} */
3881
- DAG_PB_CODE2
3882
- );
3883
- if (
3884
- /** @type {number} */
3885
- version === 18
3886
- ) {
3887
- version = /** @type {V} */
3888
- 0;
3889
- offset = 0;
3890
- } else {
3891
- codec = /** @type {C} */
3892
- next();
3893
- }
3894
- if (version !== 0 && version !== 1) {
3895
- throw new RangeError(`Invalid CID version ${version}`);
3896
- }
3897
- const prefixSize = offset;
3898
- const multihashCode = (
3899
- /** @type {A} */
3900
- next()
3901
- );
3902
- const digestSize = next();
3903
- const size = offset + digestSize;
3904
- const multihashSize = size - prefixSize;
3905
- return { version, codec, multihashCode, digestSize, multihashSize, size };
3906
- }
3907
- /**
3908
- * Takes cid in a string representation and creates an instance. If `base`
3909
- * decoder is not provided will use a default from the configuration. It will
3910
- * throw an error if encoding of the CID is not compatible with supplied (or
3911
- * a default decoder).
3912
- *
3913
- * @template {string} Prefix
3914
- * @template {unknown} Data
3915
- * @template {number} Code
3916
- * @template {number} Alg
3917
- * @template {API.Version} Ver
3918
- * @param {API.ToString<API.Link<Data, Code, Alg, Ver>, Prefix>} source
3919
- * @param {API.MultibaseDecoder<Prefix>} [base]
3920
- * @returns {CID<Data, Code, Alg, Ver>}
3921
- */
3922
- static parse(source, base3) {
3923
- const [prefix, bytes] = parseCIDtoBytes2(source, base3);
3924
- const cid = _CID.decode(bytes);
3925
- if (cid.version === 0 && source[0] !== "Q") {
3926
- throw Error("Version 0 CID string must not include multibase prefix");
3927
- }
3928
- baseCache2(cid).set(prefix, source);
3929
- return cid;
3930
- }
3931
- };
3932
- var parseCIDtoBytes2 = (source, base3) => {
3933
- switch (source[0]) {
3934
- case "Q": {
3935
- const decoder = base3 || base58btc2;
3936
- return [
3937
- /** @type {Prefix} */
3938
- base58btc2.prefix,
3939
- decoder.decode(`${base58btc2.prefix}${source}`)
3940
- ];
3941
- }
3942
- case base58btc2.prefix: {
3943
- const decoder = base3 || base58btc2;
3944
- return [
3945
- /** @type {Prefix} */
3946
- base58btc2.prefix,
3947
- decoder.decode(source)
3948
- ];
3949
- }
3950
- case base322.prefix: {
3951
- const decoder = base3 || base322;
3952
- return [
3953
- /** @type {Prefix} */
3954
- base322.prefix,
3955
- decoder.decode(source)
3956
- ];
3957
- }
3958
- default: {
3959
- if (base3 == null) {
3960
- throw Error(
3961
- "To parse non base32 or base58btc encoded CID multibase decoder must be provided"
3962
- );
3963
- }
3964
- return [
3965
- /** @type {Prefix} */
3966
- source[0],
3967
- base3.decode(source)
3968
- ];
3969
- }
3970
- }
3971
- };
3972
- var toStringV02 = (bytes, cache3, base3) => {
3973
- const { prefix } = base3;
3974
- if (prefix !== base58btc2.prefix) {
3975
- throw Error(`Cannot string encode V0 in ${base3.name} encoding`);
3976
- }
3977
- const cid = cache3.get(prefix);
3978
- if (cid == null) {
3979
- const cid2 = base3.encode(bytes).slice(1);
3980
- cache3.set(prefix, cid2);
3981
- return cid2;
3982
- } else {
3983
- return cid;
3984
- }
3985
- };
3986
- var toStringV12 = (bytes, cache3, base3) => {
3987
- const { prefix } = base3;
3988
- const cid = cache3.get(prefix);
3989
- if (cid == null) {
3990
- const cid2 = base3.encode(bytes);
3991
- cache3.set(prefix, cid2);
3992
- return cid2;
3993
- } else {
3994
- return cid;
3995
- }
3996
- };
3997
- var DAG_PB_CODE2 = 112;
3998
- var SHA_256_CODE2 = 18;
3999
- var encodeCID2 = (version, code2, multihash) => {
4000
- const codeOffset = encodingLength2(version);
4001
- const hashOffset = codeOffset + encodingLength2(code2);
4002
- const bytes = new Uint8Array(hashOffset + multihash.byteLength);
4003
- encodeTo2(version, bytes, 0);
4004
- encodeTo2(code2, bytes, codeOffset);
4005
- bytes.set(multihash, hashOffset);
4006
- return bytes;
4007
- };
4008
- var cidSymbol2 = Symbol.for("@ipld/js-cid/CID");
4009
-
4010
- // node_modules/@alanshaw/pail/node_modules/multiformats/src/hashes/hasher.js
4011
- var from4 = ({ name: name2, code: code2, encode: encode9 }) => new Hasher2(name2, code2, encode9);
4012
- var Hasher2 = class {
4013
- /**
4014
- *
4015
- * @param {Name} name
4016
- * @param {Code} code
4017
- * @param {(input: Uint8Array) => Await<Uint8Array>} encode
4018
- */
4019
- constructor(name2, code2, encode9) {
4020
- this.name = name2;
4021
- this.code = code2;
4022
- this.encode = encode9;
4023
- }
4024
- /**
4025
- * @param {Uint8Array} input
4026
- * @returns {Await<Digest.Digest<Code, number>>}
4027
- */
4028
- digest(input) {
4029
- if (input instanceof Uint8Array) {
4030
- const result = this.encode(input);
4031
- return result instanceof Uint8Array ? create3(this.code, result) : result.then((digest) => create3(this.code, digest));
4032
- } else {
4033
- throw Error("Unknown type, must be binary type");
4034
- }
4035
- }
4036
- };
4037
-
4038
- // node_modules/@alanshaw/pail/node_modules/multiformats/src/block.js
4039
- function readonly2({ enumerable = true, configurable = false } = {}) {
4040
- return { enumerable, configurable, writable: false };
4041
- }
4042
- function* linksWithin2(path, value) {
4043
- if (value != null && typeof value === "object") {
4044
- if (Array.isArray(value)) {
4045
- for (const [index, element] of value.entries()) {
4046
- const elementPath = [...path, index];
4047
- const cid = CID2.asCID(element);
4048
- if (cid) {
4049
- yield [elementPath.join("/"), cid];
4050
- } else if (typeof element === "object") {
4051
- yield* __yieldStar(links2(element, elementPath));
4052
- }
4053
- }
4054
- } else {
4055
- const cid = CID2.asCID(value);
4056
- if (cid) {
4057
- yield [path.join("/"), cid];
4058
- } else {
4059
- yield* __yieldStar(links2(value, path));
4060
- }
4061
- }
4062
- }
4063
- }
4064
- function* links2(source, base3) {
4065
- if (source == null || source instanceof Uint8Array) {
4066
- return;
4067
- }
4068
- const cid = CID2.asCID(source);
4069
- if (cid) {
4070
- yield [base3.join("/"), cid];
4071
- }
4072
- for (const [key, value] of Object.entries(source)) {
4073
- const path = (
4074
- /** @type {[string|number, string]} */
4075
- [...base3, key]
4076
- );
4077
- yield* __yieldStar(linksWithin2(path, value));
4078
- }
4079
- }
4080
- function* treeWithin2(path, value) {
4081
- if (Array.isArray(value)) {
4082
- for (const [index, element] of value.entries()) {
4083
- const elementPath = [...path, index];
4084
- yield elementPath.join("/");
4085
- if (typeof element === "object" && !CID2.asCID(element)) {
4086
- yield* __yieldStar(tree2(element, elementPath));
4087
- }
4088
- }
4089
- } else {
4090
- yield* __yieldStar(tree2(value, path));
4091
- }
4092
- }
4093
- function* tree2(source, base3) {
4094
- if (source == null || typeof source !== "object") {
4095
- return;
4096
- }
4097
- for (const [key, value] of Object.entries(source)) {
4098
- const path = (
4099
- /** @type {[string|number, string]} */
4100
- [...base3, key]
4101
- );
4102
- yield path.join("/");
4103
- if (value != null && !(value instanceof Uint8Array) && typeof value === "object" && !CID2.asCID(value)) {
4104
- yield* __yieldStar(treeWithin2(path, value));
4105
- }
4106
- }
4107
- }
4108
- function get2(source, path) {
4109
- let node = (
4110
- /** @type {Record<string, any>} */
4111
- source
4112
- );
4113
- for (const [index, key] of path.entries()) {
4114
- node = node[key];
4115
- if (node == null) {
4116
- throw new Error(`Object has no property at ${path.slice(0, index + 1).map((part) => `[${JSON.stringify(part)}]`).join("")}`);
4117
- }
4118
- const cid = CID2.asCID(node);
4119
- if (cid) {
4120
- return { value: cid, remaining: path.slice(index + 1).join("/") };
4121
- }
4122
- }
4123
- return { value: node };
4124
- }
4125
- var Block2 = class {
4126
- /**
4127
- * @param {object} options
4128
- * @param {CID<T, C, A, V>} options.cid
4129
- * @param {API.ByteView<T>} options.bytes
4130
- * @param {T} options.value
4131
- */
4132
- constructor({ cid, bytes, value }) {
4133
- if (!cid || !bytes || typeof value === "undefined") {
4134
- throw new Error("Missing required argument");
4135
- }
4136
- this.cid = cid;
4137
- this.bytes = bytes;
4138
- this.value = value;
4139
- this.asBlock = this;
4140
- Object.defineProperties(this, {
4141
- cid: readonly2(),
4142
- bytes: readonly2(),
4143
- value: readonly2(),
4144
- asBlock: readonly2()
4145
- });
4146
- }
4147
- links() {
4148
- return links2(this.value, []);
4149
- }
4150
- tree() {
4151
- return tree2(this.value, []);
4152
- }
4153
- /**
4154
- *
4155
- * @param {string} [path]
4156
- * @returns {API.BlockCursorView<unknown>}
4157
- */
4158
- get(path = "/") {
4159
- return get2(this.value, path.split("/").filter(Boolean));
4160
- }
4161
- };
4162
- function encode8(_0) {
4163
- return __async(this, arguments, function* ({ value, codec, hasher }) {
4164
- if (typeof value === "undefined")
4165
- throw new Error('Missing required argument "value"');
4166
- if (!codec || !hasher)
4167
- throw new Error("Missing required argument: codec or hasher");
4168
- const bytes = codec.encode(value);
4169
- const hash = yield hasher.digest(bytes);
4170
- const cid = CID2.create(
4171
- 1,
4172
- codec.code,
4173
- hash
4174
- );
4175
- return new Block2({ value, bytes, cid });
4176
- });
4177
- }
4178
- function decode12(_0) {
4179
- return __async(this, arguments, function* ({ bytes, codec, hasher }) {
4180
- if (!bytes)
4181
- throw new Error('Missing required argument "bytes"');
4182
- if (!codec || !hasher)
4183
- throw new Error("Missing required argument: codec or hasher");
4184
- const value = codec.decode(bytes);
4185
- const hash = yield hasher.digest(bytes);
4186
- const cid = CID2.create(1, codec.code, hash);
4187
- return new Block2({ value, bytes, cid });
4188
- });
4189
- }
4190
-
4191
- // node_modules/@alanshaw/pail/node_modules/multiformats/src/hashes/sha2-browser.js
4192
- var sha2 = (name2) => (
4193
- /**
4194
- * @param {Uint8Array} data
4195
- */
4196
- (data) => __async(void 0, null, function* () {
4197
- return new Uint8Array(yield crypto.subtle.digest(name2, data));
4198
- })
4199
- );
4200
- var sha2562 = from4({
4201
- name: "sha2-256",
4202
- code: 18,
4203
- encode: sha2("SHA-256")
4204
- });
4205
- var sha5122 = from4({
4206
- name: "sha2-512",
4207
- code: 19,
4208
- encode: sha2("SHA-512")
4209
- });
4210
-
4211
- // node_modules/@alanshaw/pail/src/clock.js
4212
- function advance(blocks, head, event) {
4213
- return __async(this, null, function* () {
4214
- const events = new EventFetcher(blocks);
4215
- const headmap = new Map(head.map((cid) => [cid.toString(), cid]));
4216
- if (headmap.has(event.toString()))
4217
- return head;
4218
- let changed = false;
4219
- for (const cid of head) {
4220
- if (yield contains(events, event, cid)) {
4221
- headmap.delete(cid.toString());
4222
- headmap.set(event.toString(), event);
4223
- changed = true;
4224
- }
4225
- }
4226
- if (changed) {
4227
- return [...headmap.values()];
4228
- }
4229
- for (const p of head) {
4230
- if (yield contains(events, p, event)) {
4231
- return head;
4232
- }
4233
- }
4234
- return head.concat(event);
4235
- });
4236
- }
4237
- var EventBlock = class extends Block2 {
4238
- /**
4239
- * @param {object} config
4240
- * @param {EventLink<T>} config.cid
4241
- * @param {Event} config.value
4242
- * @param {Uint8Array} config.bytes
4243
- * @param {string} config.prefix
4244
- */
4245
- constructor({ cid, value, bytes, prefix }) {
4246
- super({ cid, value, bytes });
4247
- this.prefix = prefix;
4248
- }
4249
- /**
4250
- * @template T
4251
- * @param {T} data
4252
- * @param {EventLink<T>[]} [parents]
4253
- */
4254
- static create(data, parents) {
4255
- return encodeEventBlock({ data, parents: parents != null ? parents : [] });
4256
- }
4257
- };
4258
- var EventFetcher = class {
4259
- /** @param {import('./block').BlockFetcher} blocks */
4260
- constructor(blocks) {
4261
- this._blocks = blocks;
4262
- }
4263
- /**
4264
- * @param {EventLink<T>} link
4265
- * @returns {Promise<EventBlockView<T>>}
4266
- */
4267
- get(link) {
4268
- return __async(this, null, function* () {
4269
- const block = yield this._blocks.get(link);
4270
- if (!block)
4271
- throw new Error(`missing block: ${link}`);
4272
- return decodeEventBlock(block.bytes);
4273
- });
4274
- }
4275
- };
4276
- function encodeEventBlock(value) {
4277
- return __async(this, null, function* () {
4278
- const { cid, bytes } = yield encode8({ value, codec: src_exports, hasher: sha2562 });
4279
- return new Block2({ cid, value, bytes });
4280
- });
4281
- }
4282
- function decodeEventBlock(bytes) {
4283
- return __async(this, null, function* () {
4284
- const { cid, value } = yield decode12({ bytes, codec: src_exports, hasher: sha2562 });
4285
- return new Block2({ cid, value, bytes });
4286
- });
4287
- }
4288
- function contains(events, a, b) {
4289
- return __async(this, null, function* () {
4290
- if (a.toString() === b.toString())
4291
- return true;
4292
- const [{ value: aevent }, { value: bevent }] = yield Promise.all([events.get(a), events.get(b)]);
4293
- const links3 = [...aevent.parents];
4294
- while (links3.length) {
4295
- const link = links3.shift();
4296
- if (!link)
4297
- break;
4298
- if (link.toString() === b.toString())
4299
- return true;
4300
- if (bevent.parents.some((p) => link.toString() === p.toString()))
4301
- continue;
4302
- const { value: event } = yield events.get(link);
4303
- links3.push(...event.parents);
4304
- }
4305
- return false;
4306
- });
4307
- }
4308
-
4309
- // node_modules/@alanshaw/pail/src/shard.js
4310
- var ShardBlock = class extends Block2 {
4311
- /**
4312
- * @param {object} config
4313
- * @param {ShardLink} config.cid
4314
- * @param {Shard} config.value
4315
- * @param {Uint8Array} config.bytes
4316
- * @param {string} config.prefix
4317
- */
4318
- constructor({ cid, value, bytes, prefix }) {
4319
- super({ cid, value, bytes });
4320
- this.prefix = prefix;
4321
- }
4322
- static create() {
4323
- return encodeShardBlock([]);
4324
- }
4325
- };
4326
- function encodeShardBlock(value, prefix) {
4327
- return __async(this, null, function* () {
4328
- const { cid, bytes } = yield encode8({ value, codec: src_exports, hasher: sha2562 });
4329
- return new ShardBlock({ cid, value, bytes, prefix: prefix != null ? prefix : "" });
4330
- });
4331
- }
4332
- function decodeShardBlock(bytes, prefix) {
4333
- return __async(this, null, function* () {
4334
- const { cid, value } = yield decode12({ bytes, codec: src_exports, hasher: sha2562 });
4335
- if (!Array.isArray(value))
4336
- throw new Error(`invalid shard: ${cid}`);
4337
- return new ShardBlock({ cid, value, bytes, prefix: prefix != null ? prefix : "" });
4338
- });
4339
- }
4340
- var ShardFetcher = class {
4341
- /** @param {import('./block').BlockFetcher} blocks */
4342
- constructor(blocks) {
4343
- this._blocks = blocks;
4344
- }
4345
- /**
4346
- * @param {ShardLink} link
4347
- * @param {string} [prefix]
4348
- * @returns {Promise<ShardBlockView>}
4349
- */
4350
- get(link, prefix = "") {
4351
- return __async(this, null, function* () {
4352
- const block = yield this._blocks.get(link);
4353
- if (!block)
4354
- throw new Error(`missing block: ${link}`);
4355
- return decodeShardBlock(block.bytes, prefix);
4356
- });
4357
- }
4358
- };
4359
- function putEntry(target, entry) {
4360
- if (!target.length)
4361
- return [entry];
4362
- const shard = [];
4363
- for (const [i, [k, v]] of target.entries()) {
4364
- if (entry[0] === k) {
4365
- if (Array.isArray(entry[1])) {
4366
- if (Array.isArray(v) && v[1] != null && entry[1][1] == null) {
4367
- shard.push([k, [entry[1][0], v[1]]]);
4368
- } else {
4369
- shard.push(entry);
4370
- }
4371
- } else {
4372
- const newEntry = Array.isArray(v) ? [k, [v[0], entry[1]]] : entry;
4373
- shard.push(newEntry);
4374
- }
4375
- for (let j = i + 1; j < target.length; j++) {
4376
- shard.push(target[j]);
4377
- }
4378
- return shard;
4379
- }
4380
- if (i === 0 && entry[0] < k) {
4381
- shard.push(entry);
4382
- for (let j = i; j < target.length; j++) {
4383
- shard.push(target[j]);
4384
- }
4385
- return shard;
4386
- }
4387
- if (i > 0 && entry[0] > target[i - 1][0] && entry[0] < k) {
4388
- shard.push(entry);
4389
- for (let j = i; j < target.length; j++) {
4390
- shard.push(target[j]);
4391
- }
4392
- return shard;
4393
- }
4394
- shard.push([k, v]);
4395
- }
4396
- shard.push(entry);
4397
- return shard;
4398
- }
4399
- function findCommonPrefix(shard, skey) {
4400
- const startidx = shard.findIndex(([k]) => skey === k);
4401
- if (startidx === -1)
4402
- throw new Error(`key not found in shard: ${skey}`);
4403
- let i = startidx;
4404
- let pfx;
4405
- while (true) {
4406
- pfx = shard[i][0].slice(0, -1);
4407
- if (pfx.length) {
4408
- while (true) {
4409
- const matches = shard.filter((entry) => entry[0].startsWith(pfx));
4410
- if (matches.length > 1)
4411
- return { prefix: pfx, matches };
4412
- pfx = pfx.slice(0, -1);
4413
- if (!pfx.length)
4414
- break;
4415
- }
4416
- }
4417
- i++;
4418
- if (i >= shard.length) {
4419
- i = 0;
4420
- }
4421
- if (i === startidx) {
4422
- return;
4423
- }
4424
- }
4425
- }
4426
-
4427
- // node_modules/@alanshaw/pail/src/index.js
4428
- var MaxKeyLength = 64;
4429
- var MaxShardSize = 512 * 1024;
4430
- function put(_0, _1, _2, _3) {
4431
- return __async(this, arguments, function* (blocks, root2, key, value, options = {}) {
4432
- var _a;
4433
- const shards = new ShardFetcher(blocks);
4434
- const rshard = yield shards.get(root2);
4435
- const path = yield traverse(shards, rshard, key);
4436
- const target = path[path.length - 1];
4437
- const skey = key.slice(target.prefix.length);
4438
- let entry = [skey, value];
4439
- const additions = [];
4440
- if (skey.length > MaxKeyLength) {
4441
- const pfxskeys = Array.from(Array(Math.ceil(skey.length / MaxKeyLength)), (_, i) => {
4442
- const start = i * MaxKeyLength;
4443
- return {
4444
- prefix: target.prefix + skey.slice(0, start),
4445
- skey: skey.slice(start, start + MaxKeyLength)
4446
- };
4447
- });
4448
- let child2 = yield encodeShardBlock([[pfxskeys[pfxskeys.length - 1].skey, value]], pfxskeys[pfxskeys.length - 1].prefix);
4449
- additions.push(child2);
4450
- for (let i = pfxskeys.length - 2; i > 0; i--) {
4451
- child2 = yield encodeShardBlock([[pfxskeys[i].skey, [child2.cid]]], pfxskeys[i].prefix);
4452
- additions.push(child2);
4453
- }
4454
- entry = [pfxskeys[0].skey, [child2.cid]];
4455
- }
4456
- let shard = putEntry(target.value, entry);
4457
- let child = yield encodeShardBlock(shard, target.prefix);
4458
- if (child.bytes.length > ((_a = options.maxShardSize) != null ? _a : MaxShardSize)) {
4459
- const common = findCommonPrefix(shard, entry[0]);
4460
- if (!common)
4461
- throw new Error("shard limit reached");
4462
- const { prefix, matches } = common;
4463
- const block = yield encodeShardBlock(
4464
- matches.filter(([k]) => k !== prefix).map(([k, v]) => [k.slice(prefix.length), v]),
4465
- target.prefix + prefix
4466
- );
4467
- additions.push(block);
4468
- let value2;
4469
- const pfxmatch = matches.find(([k]) => k === prefix);
4470
- if (pfxmatch) {
4471
- if (Array.isArray(pfxmatch[1])) {
4472
- throw new Error(`expected "${prefix}" to be a shard value but found a shard link`);
4473
- }
4474
- value2 = [block.cid, pfxmatch[1]];
4475
- } else {
4476
- value2 = [block.cid];
4477
- }
4478
- shard = shard.filter((e) => matches.every((m) => e[0] !== m[0]));
4479
- shard = putEntry(shard, [prefix, value2]);
4480
- child = yield encodeShardBlock(shard, target.prefix);
4481
- }
4482
- additions.push(child);
4483
- for (let i = path.length - 2; i >= 0; i--) {
4484
- const parent = path[i];
4485
- const key2 = child.prefix.slice(parent.prefix.length);
4486
- const value2 = parent.value.map((entry2) => {
4487
- const [k, v] = entry2;
4488
- if (k !== key2)
4489
- return entry2;
4490
- if (!Array.isArray(v))
4491
- throw new Error(`"${key2}" is not a shard link in: ${parent.cid}`);
4492
- return (
4493
- /** @type {import('./shard').ShardEntry} */
4494
- v[1] == null ? [k, [child.cid]] : [k, [child.cid, v[1]]]
4495
- );
4496
- });
4497
- child = yield encodeShardBlock(value2, parent.prefix);
4498
- additions.push(child);
4499
- }
4500
- return { root: additions[additions.length - 1].cid, additions, removals: path };
4501
- });
4502
- }
4503
- function get3(blocks, root2, key) {
4504
- return __async(this, null, function* () {
4505
- const shards = new ShardFetcher(blocks);
4506
- const rshard = yield shards.get(root2);
4507
- const path = yield traverse(shards, rshard, key);
4508
- const target = path[path.length - 1];
4509
- const skey = key.slice(target.prefix.length);
4510
- const entry = target.value.find(([k]) => k === skey);
4511
- if (!entry)
4512
- return;
4513
- return Array.isArray(entry[1]) ? entry[1][1] : entry[1];
4514
- });
4515
- }
4516
- function del(blocks, root2, key) {
4517
- return __async(this, null, function* () {
4518
- const shards = new ShardFetcher(blocks);
4519
- const rshard = yield shards.get(root2);
4520
- const path = yield traverse(shards, rshard, key);
4521
- const target = path[path.length - 1];
4522
- const skey = key.slice(target.prefix.length);
4523
- const entryidx = target.value.findIndex(([k]) => k === skey);
4524
- if (entryidx === -1)
4525
- return { root: root2, additions: [], removals: [] };
4526
- const entry = target.value[entryidx];
4527
- if (Array.isArray(entry[1]) && entry[1][1] == null)
4528
- return { root: root2, additions: [], removals: [] };
4529
- const additions = [];
4530
- const removals = [...path];
4531
- let shard = [...target.value];
4532
- if (Array.isArray(entry[1])) {
4533
- shard[entryidx] = [entry[0], [entry[1][0]]];
4534
- } else {
4535
- shard.splice(entryidx, 1);
4536
- while (!shard.length) {
4537
- const child2 = path[path.length - 1];
4538
- const parent = path[path.length - 2];
4539
- if (!parent)
4540
- break;
4541
- path.pop();
4542
- shard = parent.value.filter((e) => {
4543
- if (!Array.isArray(e[1]))
4544
- return true;
4545
- return e[1][0].toString() !== child2.cid.toString();
4546
- });
4547
- }
4548
- }
4549
- let child = yield encodeShardBlock(shard, path[path.length - 1].prefix);
4550
- additions.push(child);
4551
- for (let i = path.length - 2; i >= 0; i--) {
4552
- const parent = path[i];
4553
- const key2 = child.prefix.slice(parent.prefix.length);
4554
- const value = parent.value.map((entry2) => {
4555
- const [k, v] = entry2;
4556
- if (k !== key2)
4557
- return entry2;
4558
- if (!Array.isArray(v))
4559
- throw new Error(`"${key2}" is not a shard link in: ${parent.cid}`);
4560
- return (
4561
- /** @type {import('./shard').ShardEntry} */
4562
- v[1] == null ? [k, [child.cid]] : [k, [child.cid, v[1]]]
4563
- );
4564
- });
4565
- child = yield encodeShardBlock(value, parent.prefix);
4566
- additions.push(child);
4567
- }
4568
- return { root: additions[additions.length - 1].cid, additions, removals };
4569
- });
4570
- }
4571
- function traverse(shards, shard, key) {
4572
- return __async(this, null, function* () {
4573
- for (const [k, v] of shard.value) {
4574
- if (key === k)
4575
- return [shard];
4576
- if (key.startsWith(k) && Array.isArray(v)) {
4577
- const path = yield traverse(shards, yield shards.get(v[0], shard.prefix + k), key.slice(k.length));
4578
- return [shard, ...path];
4579
- }
4580
- }
4581
- return [shard];
4582
- });
4583
- }
4584
-
4585
- // node_modules/@alanshaw/pail/node_modules/multiformats/src/link.js
4586
- var parse = (source, base3) => CID2.parse(source, base3);
4587
-
4588
- // node_modules/@alanshaw/pail/src/block.js
4589
- var _blocks;
4590
- var MemoryBlockstore = class {
4591
- /**
4592
- * @param {Array<AnyBlock>} [blocks]
4593
- */
4594
- constructor(blocks) {
4595
- /** @type {Map<string, Uint8Array>} */
4596
- __privateAdd(this, _blocks, /* @__PURE__ */ new Map());
4597
- if (blocks) {
4598
- __privateSet(this, _blocks, new Map(blocks.map((b) => [b.cid.toString(), b.bytes])));
4599
- }
4600
- }
4601
- /**
4602
- * @param {import('./link').AnyLink} cid
4603
- * @returns {Promise<AnyBlock | undefined>}
4604
- */
4605
- get(cid) {
4606
- return __async(this, null, function* () {
4607
- const bytes = __privateGet(this, _blocks).get(cid.toString());
4608
- if (!bytes)
4609
- return;
4610
- return { cid, bytes };
4611
- });
4612
- }
4613
- /**
4614
- * @param {import('./link').AnyLink} cid
4615
- * @param {Uint8Array} bytes
4616
- */
4617
- put(cid, bytes) {
4618
- return __async(this, null, function* () {
4619
- __privateGet(this, _blocks).set(cid.toString(), bytes);
4620
- });
4621
- }
4622
- /**
4623
- * @param {import('./link').AnyLink} cid
4624
- * @param {Uint8Array} bytes
4625
- */
4626
- putSync(cid, bytes) {
4627
- __privateGet(this, _blocks).set(cid.toString(), bytes);
4628
- }
4629
- /** @param {import('./link').AnyLink} cid */
4630
- delete(cid) {
4631
- return __async(this, null, function* () {
4632
- __privateGet(this, _blocks).delete(cid.toString());
4633
- });
4634
- }
4635
- /** @param {import('./link').AnyLink} cid */
4636
- deleteSync(cid) {
4637
- __privateGet(this, _blocks).delete(cid.toString());
4638
- }
4639
- *entries() {
4640
- for (const [str, bytes] of __privateGet(this, _blocks)) {
4641
- yield { cid: parse(str), bytes };
4642
- }
4643
- }
4644
- };
4645
- _blocks = new WeakMap();
4646
- var _fetchers;
4647
- var MultiBlockFetcher = class {
4648
- /** @param {BlockFetcher[]} fetchers */
4649
- constructor(...fetchers) {
4650
- /** @type {BlockFetcher[]} */
4651
- __privateAdd(this, _fetchers, void 0);
4652
- __privateSet(this, _fetchers, fetchers);
4653
- }
4654
- /** @param {import('./link').AnyLink} link */
4655
- get(link) {
4656
- return __async(this, null, function* () {
4657
- for (const f of __privateGet(this, _fetchers)) {
4658
- const v = yield f.get(link);
4659
- if (v)
4660
- return v;
4661
- }
4662
- });
4663
- }
4664
- };
4665
- _fetchers = new WeakMap();
4666
-
4667
- // node_modules/@alanshaw/pail/src/crdt.js
4668
- function put2(blocks, head, key, value, options) {
4669
- return __async(this, null, function* () {
4670
- const mblocks = new MemoryBlockstore();
4671
- blocks = new MultiBlockFetcher(mblocks, blocks);
4672
- if (!head.length) {
4673
- const shard = yield ShardBlock.create();
4674
- mblocks.putSync(shard.cid, shard.bytes);
4675
- const result2 = yield put(blocks, shard.cid, key, value, options);
4676
- const data2 = { type: "put", root: result2.root, key, value };
4677
- const event2 = yield EventBlock.create(data2, head);
4678
- head = yield advance(blocks, head, event2.cid);
4679
- return {
4680
- root: result2.root,
4681
- additions: [shard, ...result2.additions],
4682
- removals: result2.removals,
4683
- head,
4684
- event: event2
4685
- };
4686
- }
4687
- const events = new EventFetcher(blocks);
4688
- const ancestor = yield findCommonAncestor(events, head);
4689
- if (!ancestor)
4690
- throw new Error("failed to find common ancestor event");
4691
- const aevent = yield events.get(ancestor);
4692
- let { root: root2 } = aevent.value.data;
4693
- const sorted = yield findSortedEvents(events, head, ancestor);
4694
- const additions = /* @__PURE__ */ new Map();
4695
- const removals = /* @__PURE__ */ new Map();
4696
- for (const { value: event2 } of sorted) {
4697
- if (!["put", "del"].includes(event2.data.type)) {
4698
- throw new Error(`unknown event type: ${event2.data.type}`);
4699
- }
4700
- const result2 = event2.data.type === "put" ? yield put(blocks, root2, event2.data.key, event2.data.value) : yield del(blocks, root2, event2.data.key);
4701
- root2 = result2.root;
4702
- for (const a of result2.additions) {
4703
- mblocks.putSync(a.cid, a.bytes);
4704
- additions.set(a.cid.toString(), a);
4705
- }
4706
- for (const r of result2.removals) {
4707
- removals.set(r.cid.toString(), r);
4708
- }
4709
- }
4710
- const result = yield put(blocks, root2, key, value, options);
4711
- for (const a of result.additions) {
4712
- mblocks.putSync(a.cid, a.bytes);
4713
- additions.set(a.cid.toString(), a);
4714
- }
4715
- for (const r of result.removals) {
4716
- removals.set(r.cid.toString(), r);
4717
- }
4718
- const data = { type: "put", root: result.root, key, value };
4719
- const event = yield EventBlock.create(data, head);
4720
- mblocks.putSync(event.cid, event.bytes);
4721
- head = yield advance(blocks, head, event.cid);
4722
- for (const k of removals.keys()) {
4723
- if (additions.has(k)) {
4724
- additions.delete(k);
4725
- removals.delete(k);
4726
- }
4727
- }
4728
- return {
4729
- root: result.root,
4730
- additions: [...additions.values()],
4731
- removals: [...removals.values()],
4732
- head,
4733
- event
4734
- };
4735
- });
4736
- }
4737
- function root(blocks, head) {
4738
- return __async(this, null, function* () {
4739
- if (!head.length)
4740
- throw new Error("cannot determine root of headless clock");
4741
- const mblocks = new MemoryBlockstore();
4742
- blocks = new MultiBlockFetcher(mblocks, blocks);
4743
- const events = new EventFetcher(blocks);
4744
- if (head.length === 1) {
4745
- const event = yield events.get(head[0]);
4746
- const { root: root3 } = event.value.data;
4747
- return { root: root3, additions: [], removals: [] };
4748
- }
4749
- const ancestor = yield findCommonAncestor(events, head);
4750
- if (!ancestor)
4751
- throw new Error("failed to find common ancestor event");
4752
- const aevent = yield events.get(ancestor);
4753
- let { root: root2 } = aevent.value.data;
4754
- const sorted = yield findSortedEvents(events, head, ancestor);
4755
- const additions = /* @__PURE__ */ new Map();
4756
- const removals = /* @__PURE__ */ new Map();
4757
- for (const { value: event } of sorted) {
4758
- if (!["put", "del"].includes(event.data.type)) {
4759
- throw new Error(`unknown event type: ${event.data.type}`);
4760
- }
4761
- const result = event.data.type === "put" ? yield put(blocks, root2, event.data.key, event.data.value) : yield del(blocks, root2, event.data.key);
4762
- root2 = result.root;
4763
- for (const a of result.additions) {
4764
- mblocks.putSync(a.cid, a.bytes);
4765
- additions.set(a.cid.toString(), a);
4766
- }
4767
- for (const r of result.removals) {
4768
- removals.set(r.cid.toString(), r);
4769
- }
4770
- }
4771
- for (const k of removals.keys()) {
4772
- if (additions.has(k)) {
4773
- additions.delete(k);
4774
- removals.delete(k);
4775
- }
4776
- }
4777
- return {
4778
- root: root2,
4779
- additions: [...additions.values()],
4780
- removals: [...removals.values()]
4781
- };
4782
- });
4783
- }
4784
- function get4(blocks, head, key) {
4785
- return __async(this, null, function* () {
4786
- if (!head.length)
4787
- return;
4788
- const result = yield root(blocks, head);
4789
- if (result.additions.length) {
4790
- blocks = new MultiBlockFetcher(new MemoryBlockstore(result.additions), blocks);
4791
- }
4792
- return get3(blocks, result.root, key);
4793
- });
4794
- }
4795
- function findCommonAncestor(events, children) {
4796
- return __async(this, null, function* () {
4797
- if (!children.length)
4798
- return;
4799
- const candidates = children.map((c) => [c]);
4800
- while (true) {
4801
- let changed = false;
4802
- for (const c of candidates) {
4803
- const candidate = yield findAncestorCandidate(events, c[c.length - 1]);
4804
- if (!candidate)
4805
- continue;
4806
- changed = true;
4807
- c.push(candidate);
4808
- const ancestor = findCommonString(candidates);
4809
- if (ancestor)
4810
- return ancestor;
4811
- }
4812
- if (!changed)
4813
- return;
4814
- }
4815
- });
4816
- }
4817
- function findAncestorCandidate(events, root2) {
4818
- return __async(this, null, function* () {
4819
- const { value: event } = yield events.get(root2);
4820
- if (!event.parents.length)
4821
- return root2;
4822
- return event.parents.length === 1 ? event.parents[0] : findCommonAncestor(events, event.parents);
4823
- });
4824
- }
4825
- function findCommonString(arrays) {
4826
- arrays = arrays.map((a) => [...a]);
4827
- for (const arr of arrays) {
4828
- for (const item of arr) {
4829
- let matched = true;
4830
- for (const other of arrays) {
4831
- if (arr === other)
4832
- continue;
4833
- matched = other.some((i) => String(i) === String(item));
4834
- if (!matched)
4835
- break;
4836
- }
4837
- if (matched)
4838
- return item;
4839
- }
4840
- }
4841
- }
4842
- function findSortedEvents(events, head, tail) {
4843
- return __async(this, null, function* () {
4844
- const weights = /* @__PURE__ */ new Map();
4845
- const all = yield Promise.all(head.map((h) => findEvents(events, h, tail)));
4846
- for (const arr of all) {
4847
- for (const { event, depth } of arr) {
4848
- const info = weights.get(event.cid.toString());
4849
- if (info) {
4850
- info.weight += depth;
4851
- } else {
4852
- weights.set(event.cid.toString(), { event, weight: depth });
4853
- }
4854
- }
4855
- }
4856
- const buckets = /* @__PURE__ */ new Map();
4857
- for (const { event, weight } of weights.values()) {
4858
- const bucket = buckets.get(weight);
4859
- if (bucket) {
4860
- bucket.push(event);
4861
- } else {
4862
- buckets.set(weight, [event]);
4863
- }
4864
- }
4865
- return Array.from(buckets).sort((a, b) => b[0] - a[0]).flatMap(([, es]) => es.sort((a, b) => String(a.cid) < String(b.cid) ? -1 : 1));
4866
- });
4867
- }
4868
- function findEvents(events, start, end, depth = 0) {
4869
- return __async(this, null, function* () {
4870
- const event = yield events.get(start);
4871
- const acc = [{ event, depth }];
4872
- const { parents } = event.value;
4873
- if (parents.length === 1 && String(parents[0]) === String(end))
4874
- return acc;
4875
- const rest = yield Promise.all(parents.map((p) => findEvents(events, p, end, depth + 1)));
4876
- return acc.concat(...rest);
4877
- });
4878
- }
4879
-
4880
- // src/crdt-helpers.ts
4881
- function makeGetBlock(blocks) {
4882
- return (address) => __async(this, null, function* () {
4883
- const block = yield blocks.get(address);
4884
- if (!block)
4885
- throw new Error(`Missing block ${address.toString()}`);
4886
- const { cid, bytes } = block;
4887
- return create2({ cid, bytes, hasher: sha256, codec: src_exports });
4888
- });
4889
- }
4890
- function applyBulkUpdateToCrdt(tblocks, head, updates, options) {
4891
- return __async(this, null, function* () {
4892
- for (const update of updates) {
4893
- const link = yield makeLinkForDoc(tblocks, update);
4894
- const result = yield put2(tblocks, head, update.key, link, options);
4895
- for (const { cid, bytes } of [...result.additions, ...result.removals, result.event]) {
4896
- tblocks.putSync(cid, bytes);
4897
- }
4898
- head = result.head;
4899
- }
4900
- return { head };
4901
- });
4902
- }
4903
- function makeLinkForDoc(blocks, update) {
4904
- return __async(this, null, function* () {
4905
- let value;
4906
- if (update.del) {
4907
- value = { del: true };
4908
- } else {
4909
- value = { doc: update.value };
4910
- }
4911
- const block = yield encode3({ value, hasher: sha256, codec: src_exports });
4912
- blocks.putSync(block.cid, block.bytes);
4913
- return block.cid;
4914
- });
4915
- }
4916
- function getValueFromCrdt(blocks, head, key) {
4917
- return __async(this, null, function* () {
4918
- const link = yield get4(blocks, head, key);
4919
- if (!link)
4920
- throw new Error(`Missing key ${key}`);
4921
- return yield getValueFromLink(blocks, link);
4922
- });
4923
- }
4924
- function getValueFromLink(blocks, link) {
4925
- return __async(this, null, function* () {
4926
- const block = yield blocks.get(link);
4927
- if (!block)
4928
- throw new Error(`Missing block ${link.toString()}`);
4929
- const { value } = yield decode5({ bytes: block.bytes, hasher: sha256, codec: src_exports });
4930
- return value;
4931
- });
4932
- }
4933
- function clockChangesSince(blocks, _head, _since) {
4934
- return __async(this, null, function* () {
4935
- const eventsFetcher = new EventFetcher(blocks);
4936
- const updates = yield gatherUpdates(blocks, eventsFetcher, _head, _since);
4937
- return { result: updates.reverse() };
4938
- });
4939
- }
4940
- function gatherUpdates(_0, _1, _2, _3) {
4941
- return __async(this, arguments, function* (blocks, eventsFetcher, head, since, updates = []) {
4942
- for (const link of since) {
4943
- if (head.includes(link)) {
4944
- throw new Error("found since in head, this is good, remove this error " + updates.length);
4945
- return updates;
4946
- }
4947
- }
4948
- for (const link of head) {
4949
- const { value: event } = yield eventsFetcher.get(link);
4950
- const { key, value } = event.data;
4951
- const docValue = yield getValueFromLink(blocks, value);
4952
- updates.push({ key, value: docValue.doc, del: docValue.del });
4953
- if (event.parents) {
4954
- updates = yield gatherUpdates(blocks, eventsFetcher, event.parents, since, updates);
4955
- }
4956
- }
4957
- return updates;
4958
- });
4959
- }
4960
- })();
4961
- //# sourceMappingURL=crdt-helpers.browser.js.map