@fireproof/core 0.19.99 → 0.19.100
Sign up to get free protection for your applications and to get access to all the features.
- package/deno.json +3 -1
- package/index.cjs +74 -63
- package/index.cjs.map +1 -1
- package/index.global.js +552 -85
- package/index.global.js.map +1 -1
- package/index.js +75 -64
- package/index.js.map +1 -1
- package/metafile-cjs.json +1 -1
- package/metafile-esm.json +1 -1
- package/metafile-iife.json +1 -1
- package/package.json +4 -2
package/index.global.js
CHANGED
@@ -12614,6 +12614,237 @@ ${end.comment}` : end.comment;
|
|
12614
12614
|
}
|
12615
12615
|
});
|
12616
12616
|
|
12617
|
+
// node_modules/.pnpm/retry@0.13.1/node_modules/retry/lib/retry_operation.js
|
12618
|
+
var require_retry_operation = __commonJS({
|
12619
|
+
"node_modules/.pnpm/retry@0.13.1/node_modules/retry/lib/retry_operation.js"(exports2, module2) {
|
12620
|
+
"use strict";
|
12621
|
+
function RetryOperation(timeouts, options) {
|
12622
|
+
if (typeof options === "boolean") {
|
12623
|
+
options = { forever: options };
|
12624
|
+
}
|
12625
|
+
this._originalTimeouts = JSON.parse(JSON.stringify(timeouts));
|
12626
|
+
this._timeouts = timeouts;
|
12627
|
+
this._options = options || {};
|
12628
|
+
this._maxRetryTime = options && options.maxRetryTime || Infinity;
|
12629
|
+
this._fn = null;
|
12630
|
+
this._errors = [];
|
12631
|
+
this._attempts = 1;
|
12632
|
+
this._operationTimeout = null;
|
12633
|
+
this._operationTimeoutCb = null;
|
12634
|
+
this._timeout = null;
|
12635
|
+
this._operationStart = null;
|
12636
|
+
this._timer = null;
|
12637
|
+
if (this._options.forever) {
|
12638
|
+
this._cachedTimeouts = this._timeouts.slice(0);
|
12639
|
+
}
|
12640
|
+
}
|
12641
|
+
module2.exports = RetryOperation;
|
12642
|
+
RetryOperation.prototype.reset = function() {
|
12643
|
+
this._attempts = 1;
|
12644
|
+
this._timeouts = this._originalTimeouts.slice(0);
|
12645
|
+
};
|
12646
|
+
RetryOperation.prototype.stop = function() {
|
12647
|
+
if (this._timeout) {
|
12648
|
+
clearTimeout(this._timeout);
|
12649
|
+
}
|
12650
|
+
if (this._timer) {
|
12651
|
+
clearTimeout(this._timer);
|
12652
|
+
}
|
12653
|
+
this._timeouts = [];
|
12654
|
+
this._cachedTimeouts = null;
|
12655
|
+
};
|
12656
|
+
RetryOperation.prototype.retry = function(err) {
|
12657
|
+
if (this._timeout) {
|
12658
|
+
clearTimeout(this._timeout);
|
12659
|
+
}
|
12660
|
+
if (!err) {
|
12661
|
+
return false;
|
12662
|
+
}
|
12663
|
+
var currentTime = (/* @__PURE__ */ new Date()).getTime();
|
12664
|
+
if (err && currentTime - this._operationStart >= this._maxRetryTime) {
|
12665
|
+
this._errors.push(err);
|
12666
|
+
this._errors.unshift(new Error("RetryOperation timeout occurred"));
|
12667
|
+
return false;
|
12668
|
+
}
|
12669
|
+
this._errors.push(err);
|
12670
|
+
var timeout = this._timeouts.shift();
|
12671
|
+
if (timeout === void 0) {
|
12672
|
+
if (this._cachedTimeouts) {
|
12673
|
+
this._errors.splice(0, this._errors.length - 1);
|
12674
|
+
timeout = this._cachedTimeouts.slice(-1);
|
12675
|
+
} else {
|
12676
|
+
return false;
|
12677
|
+
}
|
12678
|
+
}
|
12679
|
+
var self2 = this;
|
12680
|
+
this._timer = setTimeout(function() {
|
12681
|
+
self2._attempts++;
|
12682
|
+
if (self2._operationTimeoutCb) {
|
12683
|
+
self2._timeout = setTimeout(function() {
|
12684
|
+
self2._operationTimeoutCb(self2._attempts);
|
12685
|
+
}, self2._operationTimeout);
|
12686
|
+
if (self2._options.unref) {
|
12687
|
+
self2._timeout.unref();
|
12688
|
+
}
|
12689
|
+
}
|
12690
|
+
self2._fn(self2._attempts);
|
12691
|
+
}, timeout);
|
12692
|
+
if (this._options.unref) {
|
12693
|
+
this._timer.unref();
|
12694
|
+
}
|
12695
|
+
return true;
|
12696
|
+
};
|
12697
|
+
RetryOperation.prototype.attempt = function(fn, timeoutOps) {
|
12698
|
+
this._fn = fn;
|
12699
|
+
if (timeoutOps) {
|
12700
|
+
if (timeoutOps.timeout) {
|
12701
|
+
this._operationTimeout = timeoutOps.timeout;
|
12702
|
+
}
|
12703
|
+
if (timeoutOps.cb) {
|
12704
|
+
this._operationTimeoutCb = timeoutOps.cb;
|
12705
|
+
}
|
12706
|
+
}
|
12707
|
+
var self2 = this;
|
12708
|
+
if (this._operationTimeoutCb) {
|
12709
|
+
this._timeout = setTimeout(function() {
|
12710
|
+
self2._operationTimeoutCb();
|
12711
|
+
}, self2._operationTimeout);
|
12712
|
+
}
|
12713
|
+
this._operationStart = (/* @__PURE__ */ new Date()).getTime();
|
12714
|
+
this._fn(this._attempts);
|
12715
|
+
};
|
12716
|
+
RetryOperation.prototype.try = function(fn) {
|
12717
|
+
console.log("Using RetryOperation.try() is deprecated");
|
12718
|
+
this.attempt(fn);
|
12719
|
+
};
|
12720
|
+
RetryOperation.prototype.start = function(fn) {
|
12721
|
+
console.log("Using RetryOperation.start() is deprecated");
|
12722
|
+
this.attempt(fn);
|
12723
|
+
};
|
12724
|
+
RetryOperation.prototype.start = RetryOperation.prototype.try;
|
12725
|
+
RetryOperation.prototype.errors = function() {
|
12726
|
+
return this._errors;
|
12727
|
+
};
|
12728
|
+
RetryOperation.prototype.attempts = function() {
|
12729
|
+
return this._attempts;
|
12730
|
+
};
|
12731
|
+
RetryOperation.prototype.mainError = function() {
|
12732
|
+
if (this._errors.length === 0) {
|
12733
|
+
return null;
|
12734
|
+
}
|
12735
|
+
var counts = {};
|
12736
|
+
var mainError = null;
|
12737
|
+
var mainErrorCount = 0;
|
12738
|
+
for (var i = 0; i < this._errors.length; i++) {
|
12739
|
+
var error = this._errors[i];
|
12740
|
+
var message2 = error.message;
|
12741
|
+
var count = (counts[message2] || 0) + 1;
|
12742
|
+
counts[message2] = count;
|
12743
|
+
if (count >= mainErrorCount) {
|
12744
|
+
mainError = error;
|
12745
|
+
mainErrorCount = count;
|
12746
|
+
}
|
12747
|
+
}
|
12748
|
+
return mainError;
|
12749
|
+
};
|
12750
|
+
}
|
12751
|
+
});
|
12752
|
+
|
12753
|
+
// node_modules/.pnpm/retry@0.13.1/node_modules/retry/lib/retry.js
|
12754
|
+
var require_retry = __commonJS({
|
12755
|
+
"node_modules/.pnpm/retry@0.13.1/node_modules/retry/lib/retry.js"(exports2) {
|
12756
|
+
"use strict";
|
12757
|
+
var RetryOperation = require_retry_operation();
|
12758
|
+
exports2.operation = function(options) {
|
12759
|
+
var timeouts = exports2.timeouts(options);
|
12760
|
+
return new RetryOperation(timeouts, {
|
12761
|
+
forever: options && (options.forever || options.retries === Infinity),
|
12762
|
+
unref: options && options.unref,
|
12763
|
+
maxRetryTime: options && options.maxRetryTime
|
12764
|
+
});
|
12765
|
+
};
|
12766
|
+
exports2.timeouts = function(options) {
|
12767
|
+
if (options instanceof Array) {
|
12768
|
+
return [].concat(options);
|
12769
|
+
}
|
12770
|
+
var opts = {
|
12771
|
+
retries: 10,
|
12772
|
+
factor: 2,
|
12773
|
+
minTimeout: 1 * 1e3,
|
12774
|
+
maxTimeout: Infinity,
|
12775
|
+
randomize: false
|
12776
|
+
};
|
12777
|
+
for (var key in options) {
|
12778
|
+
opts[key] = options[key];
|
12779
|
+
}
|
12780
|
+
if (opts.minTimeout > opts.maxTimeout) {
|
12781
|
+
throw new Error("minTimeout is greater than maxTimeout");
|
12782
|
+
}
|
12783
|
+
var timeouts = [];
|
12784
|
+
for (var i = 0; i < opts.retries; i++) {
|
12785
|
+
timeouts.push(this.createTimeout(i, opts));
|
12786
|
+
}
|
12787
|
+
if (options && options.forever && !timeouts.length) {
|
12788
|
+
timeouts.push(this.createTimeout(i, opts));
|
12789
|
+
}
|
12790
|
+
timeouts.sort(function(a, b) {
|
12791
|
+
return a - b;
|
12792
|
+
});
|
12793
|
+
return timeouts;
|
12794
|
+
};
|
12795
|
+
exports2.createTimeout = function(attempt, opts) {
|
12796
|
+
var random = opts.randomize ? Math.random() + 1 : 1;
|
12797
|
+
var timeout = Math.round(random * Math.max(opts.minTimeout, 1) * Math.pow(opts.factor, attempt));
|
12798
|
+
timeout = Math.min(timeout, opts.maxTimeout);
|
12799
|
+
return timeout;
|
12800
|
+
};
|
12801
|
+
exports2.wrap = function(obj, options, methods) {
|
12802
|
+
if (options instanceof Array) {
|
12803
|
+
methods = options;
|
12804
|
+
options = null;
|
12805
|
+
}
|
12806
|
+
if (!methods) {
|
12807
|
+
methods = [];
|
12808
|
+
for (var key in obj) {
|
12809
|
+
if (typeof obj[key] === "function") {
|
12810
|
+
methods.push(key);
|
12811
|
+
}
|
12812
|
+
}
|
12813
|
+
}
|
12814
|
+
for (var i = 0; i < methods.length; i++) {
|
12815
|
+
var method = methods[i];
|
12816
|
+
var original = obj[method];
|
12817
|
+
obj[method] = function retryWrapper(original2) {
|
12818
|
+
var op = exports2.operation(options);
|
12819
|
+
var args = Array.prototype.slice.call(arguments, 1);
|
12820
|
+
var callback = args.pop();
|
12821
|
+
args.push(function(err) {
|
12822
|
+
if (op.retry(err)) {
|
12823
|
+
return;
|
12824
|
+
}
|
12825
|
+
if (err) {
|
12826
|
+
arguments[0] = op.mainError();
|
12827
|
+
}
|
12828
|
+
callback.apply(this, arguments);
|
12829
|
+
});
|
12830
|
+
op.attempt(function() {
|
12831
|
+
original2.apply(obj, args);
|
12832
|
+
});
|
12833
|
+
}.bind(obj, original);
|
12834
|
+
obj[method].options = options;
|
12835
|
+
}
|
12836
|
+
};
|
12837
|
+
}
|
12838
|
+
});
|
12839
|
+
|
12840
|
+
// node_modules/.pnpm/retry@0.13.1/node_modules/retry/index.js
|
12841
|
+
var require_retry2 = __commonJS({
|
12842
|
+
"node_modules/.pnpm/retry@0.13.1/node_modules/retry/index.js"(exports2, module2) {
|
12843
|
+
"use strict";
|
12844
|
+
module2.exports = require_retry();
|
12845
|
+
}
|
12846
|
+
});
|
12847
|
+
|
12617
12848
|
// src/runtime/gateways/indexdb/version.ts
|
12618
12849
|
var INDEXDB_VERSION;
|
12619
12850
|
var init_version = __esm({
|
@@ -24772,6 +25003,29 @@ ${end.comment}` : end.comment;
|
|
24772
25003
|
}
|
24773
25004
|
};
|
24774
25005
|
|
25006
|
+
// src/blockstore/store.ts
|
25007
|
+
init_cement();
|
25008
|
+
|
25009
|
+
// src/types.ts
|
25010
|
+
function isFalsy(value) {
|
25011
|
+
return value === false && value === null && value === void 0;
|
25012
|
+
}
|
25013
|
+
function throwFalsy(value) {
|
25014
|
+
if (isFalsy(value)) {
|
25015
|
+
throw new Error("value is Falsy");
|
25016
|
+
}
|
25017
|
+
return value;
|
25018
|
+
}
|
25019
|
+
function falsyToUndef(value) {
|
25020
|
+
if (isFalsy(value)) {
|
25021
|
+
return void 0;
|
25022
|
+
}
|
25023
|
+
return value;
|
25024
|
+
}
|
25025
|
+
|
25026
|
+
// src/blockstore/store.ts
|
25027
|
+
init_utils();
|
25028
|
+
|
24775
25029
|
// node_modules/.pnpm/yocto-queue@1.1.1/node_modules/yocto-queue/index.js
|
24776
25030
|
var Node2 = class {
|
24777
25031
|
value;
|
@@ -24903,29 +25157,6 @@ ${end.comment}` : end.comment;
|
|
24903
25157
|
}
|
24904
25158
|
}
|
24905
25159
|
|
24906
|
-
// src/blockstore/store.ts
|
24907
|
-
init_cement();
|
24908
|
-
|
24909
|
-
// src/types.ts
|
24910
|
-
function isFalsy(value) {
|
24911
|
-
return value === false && value === null && value === void 0;
|
24912
|
-
}
|
24913
|
-
function throwFalsy(value) {
|
24914
|
-
if (isFalsy(value)) {
|
24915
|
-
throw new Error("value is Falsy");
|
24916
|
-
}
|
24917
|
-
return value;
|
24918
|
-
}
|
24919
|
-
function falsyToUndef(value) {
|
24920
|
-
if (isFalsy(value)) {
|
24921
|
-
return void 0;
|
24922
|
-
}
|
24923
|
-
return value;
|
24924
|
-
}
|
24925
|
-
|
24926
|
-
// src/blockstore/store.ts
|
24927
|
-
init_utils();
|
24928
|
-
|
24929
25160
|
// node_modules/.pnpm/@ipld+car@5.3.2/node_modules/@ipld/car/src/decoder-common.js
|
24930
25161
|
var import_varint2 = __toESM(require_varint(), 1);
|
24931
25162
|
var CIDV0_BYTES = {
|
@@ -27111,6 +27342,232 @@ You can use close({ resize: true }) to resize header`);
|
|
27111
27342
|
return sthis.txt.encode(JSON.stringify(crdtEntries));
|
27112
27343
|
}
|
27113
27344
|
|
27345
|
+
// node_modules/.pnpm/p-retry@6.2.0/node_modules/p-retry/index.js
|
27346
|
+
var import_retry = __toESM(require_retry2(), 1);
|
27347
|
+
|
27348
|
+
// node_modules/.pnpm/is-network-error@1.1.0/node_modules/is-network-error/index.js
|
27349
|
+
var objectToString = Object.prototype.toString;
|
27350
|
+
var isError = (value) => objectToString.call(value) === "[object Error]";
|
27351
|
+
var errorMessages = /* @__PURE__ */ new Set([
|
27352
|
+
"network error",
|
27353
|
+
// Chrome
|
27354
|
+
"Failed to fetch",
|
27355
|
+
// Chrome
|
27356
|
+
"NetworkError when attempting to fetch resource.",
|
27357
|
+
// Firefox
|
27358
|
+
"The Internet connection appears to be offline.",
|
27359
|
+
// Safari 16
|
27360
|
+
"Load failed",
|
27361
|
+
// Safari 17+
|
27362
|
+
"Network request failed",
|
27363
|
+
// `cross-fetch`
|
27364
|
+
"fetch failed",
|
27365
|
+
// Undici (Node.js)
|
27366
|
+
"terminated"
|
27367
|
+
// Undici (Node.js)
|
27368
|
+
]);
|
27369
|
+
function isNetworkError(error) {
|
27370
|
+
const isValid = error && isError(error) && error.name === "TypeError" && typeof error.message === "string";
|
27371
|
+
if (!isValid) {
|
27372
|
+
return false;
|
27373
|
+
}
|
27374
|
+
if (error.message === "Load failed") {
|
27375
|
+
return error.stack === void 0;
|
27376
|
+
}
|
27377
|
+
return errorMessages.has(error.message);
|
27378
|
+
}
|
27379
|
+
|
27380
|
+
// node_modules/.pnpm/p-retry@6.2.0/node_modules/p-retry/index.js
|
27381
|
+
var AbortError3 = class extends Error {
|
27382
|
+
constructor(message2) {
|
27383
|
+
super();
|
27384
|
+
if (message2 instanceof Error) {
|
27385
|
+
this.originalError = message2;
|
27386
|
+
({ message: message2 } = message2);
|
27387
|
+
} else {
|
27388
|
+
this.originalError = new Error(message2);
|
27389
|
+
this.originalError.stack = this.stack;
|
27390
|
+
}
|
27391
|
+
this.name = "AbortError";
|
27392
|
+
this.message = message2;
|
27393
|
+
}
|
27394
|
+
};
|
27395
|
+
var decorateErrorWithCounts = (error, attemptNumber, options) => {
|
27396
|
+
const retriesLeft = options.retries - (attemptNumber - 1);
|
27397
|
+
error.attemptNumber = attemptNumber;
|
27398
|
+
error.retriesLeft = retriesLeft;
|
27399
|
+
return error;
|
27400
|
+
};
|
27401
|
+
async function pRetry(input, options) {
|
27402
|
+
return new Promise((resolve7, reject) => {
|
27403
|
+
options = {
|
27404
|
+
onFailedAttempt() {
|
27405
|
+
},
|
27406
|
+
retries: 10,
|
27407
|
+
shouldRetry: () => true,
|
27408
|
+
...options
|
27409
|
+
};
|
27410
|
+
const operation = import_retry.default.operation(options);
|
27411
|
+
const abortHandler = () => {
|
27412
|
+
operation.stop();
|
27413
|
+
reject(options.signal?.reason);
|
27414
|
+
};
|
27415
|
+
if (options.signal && !options.signal.aborted) {
|
27416
|
+
options.signal.addEventListener("abort", abortHandler, { once: true });
|
27417
|
+
}
|
27418
|
+
const cleanUp = () => {
|
27419
|
+
options.signal?.removeEventListener("abort", abortHandler);
|
27420
|
+
operation.stop();
|
27421
|
+
};
|
27422
|
+
operation.attempt(async (attemptNumber) => {
|
27423
|
+
try {
|
27424
|
+
const result = await input(attemptNumber);
|
27425
|
+
cleanUp();
|
27426
|
+
resolve7(result);
|
27427
|
+
} catch (error) {
|
27428
|
+
try {
|
27429
|
+
if (!(error instanceof Error)) {
|
27430
|
+
throw new TypeError(`Non-error was thrown: "${error}". You should only throw errors.`);
|
27431
|
+
}
|
27432
|
+
if (error instanceof AbortError3) {
|
27433
|
+
throw error.originalError;
|
27434
|
+
}
|
27435
|
+
if (error instanceof TypeError && !isNetworkError(error)) {
|
27436
|
+
throw error;
|
27437
|
+
}
|
27438
|
+
decorateErrorWithCounts(error, attemptNumber, options);
|
27439
|
+
if (!await options.shouldRetry(error)) {
|
27440
|
+
operation.stop();
|
27441
|
+
reject(error);
|
27442
|
+
}
|
27443
|
+
await options.onFailedAttempt(error);
|
27444
|
+
if (!operation.retry(error)) {
|
27445
|
+
throw operation.mainError();
|
27446
|
+
}
|
27447
|
+
} catch (finalError) {
|
27448
|
+
decorateErrorWithCounts(finalError, attemptNumber, options);
|
27449
|
+
cleanUp();
|
27450
|
+
reject(finalError);
|
27451
|
+
}
|
27452
|
+
}
|
27453
|
+
});
|
27454
|
+
});
|
27455
|
+
}
|
27456
|
+
|
27457
|
+
// node_modules/.pnpm/p-map@7.0.2/node_modules/p-map/index.js
|
27458
|
+
async function pMap(iterable, mapper, {
|
27459
|
+
concurrency = Number.POSITIVE_INFINITY,
|
27460
|
+
stopOnError = true,
|
27461
|
+
signal
|
27462
|
+
} = {}) {
|
27463
|
+
return new Promise((resolve7, reject_) => {
|
27464
|
+
if (iterable[Symbol.iterator] === void 0 && iterable[Symbol.asyncIterator] === void 0) {
|
27465
|
+
throw new TypeError(`Expected \`input\` to be either an \`Iterable\` or \`AsyncIterable\`, got (${typeof iterable})`);
|
27466
|
+
}
|
27467
|
+
if (typeof mapper !== "function") {
|
27468
|
+
throw new TypeError("Mapper function is required");
|
27469
|
+
}
|
27470
|
+
if (!(Number.isSafeInteger(concurrency) && concurrency >= 1 || concurrency === Number.POSITIVE_INFINITY)) {
|
27471
|
+
throw new TypeError(`Expected \`concurrency\` to be an integer from 1 and up or \`Infinity\`, got \`${concurrency}\` (${typeof concurrency})`);
|
27472
|
+
}
|
27473
|
+
const result = [];
|
27474
|
+
const errors = [];
|
27475
|
+
const skippedIndexesMap = /* @__PURE__ */ new Map();
|
27476
|
+
let isRejected = false;
|
27477
|
+
let isResolved = false;
|
27478
|
+
let isIterableDone = false;
|
27479
|
+
let resolvingCount = 0;
|
27480
|
+
let currentIndex = 0;
|
27481
|
+
const iterator = iterable[Symbol.iterator] === void 0 ? iterable[Symbol.asyncIterator]() : iterable[Symbol.iterator]();
|
27482
|
+
const reject = (reason) => {
|
27483
|
+
isRejected = true;
|
27484
|
+
isResolved = true;
|
27485
|
+
reject_(reason);
|
27486
|
+
};
|
27487
|
+
if (signal) {
|
27488
|
+
if (signal.aborted) {
|
27489
|
+
reject(signal.reason);
|
27490
|
+
}
|
27491
|
+
signal.addEventListener("abort", () => {
|
27492
|
+
reject(signal.reason);
|
27493
|
+
});
|
27494
|
+
}
|
27495
|
+
const next = async () => {
|
27496
|
+
if (isResolved) {
|
27497
|
+
return;
|
27498
|
+
}
|
27499
|
+
const nextItem = await iterator.next();
|
27500
|
+
const index2 = currentIndex;
|
27501
|
+
currentIndex++;
|
27502
|
+
if (nextItem.done) {
|
27503
|
+
isIterableDone = true;
|
27504
|
+
if (resolvingCount === 0 && !isResolved) {
|
27505
|
+
if (!stopOnError && errors.length > 0) {
|
27506
|
+
reject(new AggregateError(errors));
|
27507
|
+
return;
|
27508
|
+
}
|
27509
|
+
isResolved = true;
|
27510
|
+
if (skippedIndexesMap.size === 0) {
|
27511
|
+
resolve7(result);
|
27512
|
+
return;
|
27513
|
+
}
|
27514
|
+
const pureResult = [];
|
27515
|
+
for (const [index3, value] of result.entries()) {
|
27516
|
+
if (skippedIndexesMap.get(index3) === pMapSkip) {
|
27517
|
+
continue;
|
27518
|
+
}
|
27519
|
+
pureResult.push(value);
|
27520
|
+
}
|
27521
|
+
resolve7(pureResult);
|
27522
|
+
}
|
27523
|
+
return;
|
27524
|
+
}
|
27525
|
+
resolvingCount++;
|
27526
|
+
(async () => {
|
27527
|
+
try {
|
27528
|
+
const element = await nextItem.value;
|
27529
|
+
if (isResolved) {
|
27530
|
+
return;
|
27531
|
+
}
|
27532
|
+
const value = await mapper(element, index2);
|
27533
|
+
if (value === pMapSkip) {
|
27534
|
+
skippedIndexesMap.set(index2, value);
|
27535
|
+
}
|
27536
|
+
result[index2] = value;
|
27537
|
+
resolvingCount--;
|
27538
|
+
await next();
|
27539
|
+
} catch (error) {
|
27540
|
+
if (stopOnError) {
|
27541
|
+
reject(error);
|
27542
|
+
} else {
|
27543
|
+
errors.push(error);
|
27544
|
+
resolvingCount--;
|
27545
|
+
try {
|
27546
|
+
await next();
|
27547
|
+
} catch (error2) {
|
27548
|
+
reject(error2);
|
27549
|
+
}
|
27550
|
+
}
|
27551
|
+
}
|
27552
|
+
})();
|
27553
|
+
};
|
27554
|
+
(async () => {
|
27555
|
+
for (let index2 = 0; index2 < concurrency; index2++) {
|
27556
|
+
try {
|
27557
|
+
await next();
|
27558
|
+
} catch (error) {
|
27559
|
+
reject(error);
|
27560
|
+
break;
|
27561
|
+
}
|
27562
|
+
if (isIterableDone || isRejected) {
|
27563
|
+
break;
|
27564
|
+
}
|
27565
|
+
}
|
27566
|
+
})();
|
27567
|
+
});
|
27568
|
+
}
|
27569
|
+
var pMapSkip = Symbol("skip");
|
27570
|
+
|
27114
27571
|
// src/blockstore/store.ts
|
27115
27572
|
function guardVersion(url) {
|
27116
27573
|
if (!url.hasParam("version")) {
|
@@ -27371,72 +27828,82 @@ You can use close({ resize: true }) to resize header`);
|
|
27371
27828
|
}
|
27372
27829
|
async _doProcess() {
|
27373
27830
|
if (!this.loader.remoteCarStore) return;
|
27374
|
-
const
|
27375
|
-
|
27376
|
-
|
27377
|
-
|
27378
|
-
|
27379
|
-
|
27380
|
-
|
27381
|
-
|
27382
|
-
|
27383
|
-
|
27384
|
-
|
27385
|
-
|
27386
|
-
|
27387
|
-
|
27388
|
-
|
27389
|
-
|
27831
|
+
const operations = [...this.walState.operations];
|
27832
|
+
const noLoaderOps = [...this.walState.noLoaderOps];
|
27833
|
+
const fileOperations = [...this.walState.fileOperations];
|
27834
|
+
if (operations.length + noLoaderOps.length + fileOperations.length === 0) return;
|
27835
|
+
const concurrencyLimit = 3;
|
27836
|
+
const retryableUpload = (fn, description) => pRetry(fn, {
|
27837
|
+
retries: 5,
|
27838
|
+
onFailedAttempt: (error) => {
|
27839
|
+
this.logger.Warn().Msg(`Attempt ${error.attemptNumber} failed for ${description}. There are ${error.retriesLeft} retries left.`);
|
27840
|
+
}
|
27841
|
+
});
|
27842
|
+
try {
|
27843
|
+
await pMap(
|
27844
|
+
noLoaderOps,
|
27845
|
+
async (dbMeta) => {
|
27846
|
+
await retryableUpload(async () => {
|
27847
|
+
for (const cid of dbMeta.cars) {
|
27848
|
+
const car = await (await this.loader.carStore()).load(cid);
|
27849
|
+
if (!car) {
|
27850
|
+
if (carLogIncludesGroup(this.loader.carLog, dbMeta.cars)) {
|
27851
|
+
throw this.logger.Error().Ref("cid", cid).Msg("missing local car").AsError();
|
27852
|
+
}
|
27853
|
+
} else {
|
27854
|
+
await throwFalsy(this.loader.remoteCarStore).save(car);
|
27855
|
+
}
|
27390
27856
|
}
|
27391
27857
|
this.walState.noLoaderOps = this.walState.noLoaderOps.filter((op) => op !== dbMeta);
|
27392
|
-
}
|
27393
|
-
}
|
27394
|
-
|
27395
|
-
|
27396
|
-
|
27397
|
-
|
27398
|
-
|
27399
|
-
|
27400
|
-
|
27401
|
-
|
27402
|
-
|
27403
|
-
|
27404
|
-
|
27858
|
+
}, `noLoaderOp with dbMeta.cars=${dbMeta.cars.toString()}`);
|
27859
|
+
},
|
27860
|
+
{ concurrency: concurrencyLimit }
|
27861
|
+
);
|
27862
|
+
await pMap(
|
27863
|
+
operations,
|
27864
|
+
async (dbMeta) => {
|
27865
|
+
await retryableUpload(async () => {
|
27866
|
+
for (const cid of dbMeta.cars) {
|
27867
|
+
const car = await (await this.loader.carStore()).load(cid);
|
27868
|
+
if (!car) {
|
27869
|
+
if (carLogIncludesGroup(this.loader.carLog, dbMeta.cars)) {
|
27870
|
+
throw this.logger.Error().Ref("cid", cid).Msg(`missing local car`).AsError();
|
27871
|
+
}
|
27872
|
+
} else {
|
27873
|
+
await throwFalsy(this.loader.remoteCarStore).save(car);
|
27874
|
+
}
|
27405
27875
|
}
|
27406
|
-
|
27407
|
-
|
27408
|
-
}
|
27409
|
-
|
27410
|
-
|
27411
|
-
|
27412
|
-
|
27413
|
-
|
27414
|
-
|
27415
|
-
const fileBlock = await (await
|
27416
|
-
|
27876
|
+
this.walState.operations = this.walState.operations.filter((op) => op !== dbMeta);
|
27877
|
+
}, `operation with dbMeta.cars=${dbMeta.cars.toString()}`);
|
27878
|
+
},
|
27879
|
+
{ concurrency: concurrencyLimit }
|
27880
|
+
);
|
27881
|
+
await pMap(
|
27882
|
+
fileOperations,
|
27883
|
+
async ({ cid: fileCid, public: publicFile }) => {
|
27884
|
+
await retryableUpload(async () => {
|
27885
|
+
const fileBlock = await (await this.loader.fileStore()).load(fileCid);
|
27886
|
+
if (!fileBlock) {
|
27887
|
+
throw this.logger.Error().Ref("cid", fileCid).Msg("missing file block").AsError();
|
27888
|
+
}
|
27889
|
+
await this.loader.remoteFileStore?.save(fileBlock, { public: publicFile });
|
27417
27890
|
this.walState.fileOperations = this.walState.fileOperations.filter((op) => op.cid !== fileCid);
|
27418
|
-
});
|
27419
|
-
|
27420
|
-
}
|
27421
|
-
|
27422
|
-
|
27423
|
-
const
|
27424
|
-
|
27425
|
-
|
27426
|
-
|
27427
|
-
}
|
27428
|
-
if (operations.length) {
|
27429
|
-
const lastOp = operations[operations.length - 1];
|
27430
|
-
await this.loader.remoteMetaStore?.save(lastOp).catch((e) => {
|
27431
|
-
this.walState.operations.push(lastOp);
|
27432
|
-
throw this.logger.Error().Any("error", e).Msg("error saving remote meta").AsError();
|
27433
|
-
});
|
27434
|
-
}
|
27435
|
-
} finally {
|
27436
|
-
await this.save(this.walState);
|
27891
|
+
}, `fileOperation with cid=${fileCid.toString()}`);
|
27892
|
+
},
|
27893
|
+
{ concurrency: concurrencyLimit }
|
27894
|
+
);
|
27895
|
+
if (operations.length) {
|
27896
|
+
const lastOp = operations[operations.length - 1];
|
27897
|
+
await retryableUpload(async () => {
|
27898
|
+
await this.loader.remoteMetaStore?.save(lastOp);
|
27899
|
+
}, `remoteMetaStore save with dbMeta.cars=${lastOp.cars.toString()}`);
|
27437
27900
|
}
|
27438
|
-
}
|
27439
|
-
|
27901
|
+
} catch (error) {
|
27902
|
+
this.logger.Error().Any("error", error).Msg("Processing failed");
|
27903
|
+
return;
|
27904
|
+
} finally {
|
27905
|
+
await this.save(this.walState);
|
27906
|
+
}
|
27440
27907
|
}
|
27441
27908
|
async load() {
|
27442
27909
|
this.logger.Debug().Msg("loading");
|
@@ -30062,7 +30529,7 @@ You can use close({ resize: true }) to resize header`);
|
|
30062
30529
|
|
30063
30530
|
// src/version.ts
|
30064
30531
|
var PACKAGE_VERSION = Object.keys({
|
30065
|
-
"0.19.
|
30532
|
+
"0.19.100": "xxxx"
|
30066
30533
|
})[0];
|
30067
30534
|
return __toCommonJS(src_exports6);
|
30068
30535
|
})();
|