@dxos/util 0.8.4-main.406dc2a → 0.8.4-main.4a85c3132b
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/browser/index.mjs +475 -454
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/node-esm/index.mjs +475 -454
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/types/src/array.d.ts +3 -2
- package/dist/types/src/array.d.ts.map +1 -1
- package/dist/types/src/circular-buffer.d.ts +1 -0
- package/dist/types/src/circular-buffer.d.ts.map +1 -1
- package/dist/types/src/deep.d.ts +0 -3
- package/dist/types/src/deep.d.ts.map +1 -1
- package/dist/types/src/defer.d.ts +1 -1
- package/dist/types/src/defer.d.ts.map +1 -1
- package/dist/types/src/error-format.d.ts +5 -0
- package/dist/types/src/error-format.d.ts.map +1 -0
- package/dist/types/src/filename.d.ts +9 -0
- package/dist/types/src/filename.d.ts.map +1 -0
- package/dist/types/src/index.d.ts +4 -0
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/platform.d.ts +4 -1
- package/dist/types/src/platform.d.ts.map +1 -1
- package/dist/types/src/retry.d.ts +32 -0
- package/dist/types/src/retry.d.ts.map +1 -0
- package/dist/types/src/safe-parse.d.ts +7 -4
- package/dist/types/src/safe-parse.d.ts.map +1 -1
- package/dist/types/src/safe-stringify.d.ts +22 -0
- package/dist/types/src/safe-stringify.d.ts.map +1 -0
- package/dist/types/src/safe-stringify.test.d.ts +2 -0
- package/dist/types/src/safe-stringify.test.d.ts.map +1 -0
- package/dist/types/src/to-fallback.d.ts +18 -4
- package/dist/types/src/to-fallback.d.ts.map +1 -1
- package/dist/types/src/types.d.ts +23 -5
- package/dist/types/src/types.d.ts.map +1 -1
- package/dist/types/src/unit.d.ts +12 -13
- package/dist/types/src/unit.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +12 -11
- package/src/array.ts +9 -2
- package/src/binder.ts +2 -2
- package/src/circular-buffer.test.ts +26 -0
- package/src/circular-buffer.ts +5 -0
- package/src/deep.ts +2 -6
- package/src/defer.ts +1 -1
- package/src/error-format.ts +22 -0
- package/src/filename.ts +16 -0
- package/src/index.ts +4 -0
- package/src/platform.ts +35 -3
- package/src/retry.ts +74 -0
- package/src/safe-parse.ts +27 -16
- package/src/safe-stringify.test.ts +96 -0
- package/src/safe-stringify.ts +153 -0
- package/src/to-fallback.ts +39 -156
- package/src/types.test.ts +11 -1
- package/src/types.ts +39 -12
- package/src/unit.test.ts +1 -1
- package/src/unit.ts +59 -28
- package/dist/types/src/explicit-resource-management-polyfill.d.ts +0 -1
- package/dist/types/src/explicit-resource-management-polyfill.d.ts.map +0 -1
- package/src/explicit-resource-management-polyfill.ts +0 -13
|
@@ -97,16 +97,24 @@ var intersectBy = (arrays, selector) => {
|
|
|
97
97
|
return lookups.every((lookup) => lookup.has(key));
|
|
98
98
|
});
|
|
99
99
|
};
|
|
100
|
+
var coerceArray = (arr) => {
|
|
101
|
+
if (arr === void 0) {
|
|
102
|
+
return [];
|
|
103
|
+
}
|
|
104
|
+
return Array.isArray(arr) ? arr : [
|
|
105
|
+
arr
|
|
106
|
+
];
|
|
107
|
+
};
|
|
100
108
|
|
|
101
109
|
// src/assume.ts
|
|
102
110
|
function assumeType(value) {
|
|
103
111
|
}
|
|
104
112
|
|
|
105
113
|
// src/binder.ts
|
|
106
|
-
import
|
|
114
|
+
import { promisify } from "@dxos/node-std/util";
|
|
107
115
|
var createBinder = (obj) => ({
|
|
108
116
|
fn: (fn) => fn.bind(obj),
|
|
109
|
-
async: (fn) =>
|
|
117
|
+
async: (fn) => promisify(fn.bind(obj))
|
|
110
118
|
});
|
|
111
119
|
|
|
112
120
|
// src/bitfield.ts
|
|
@@ -180,92 +188,34 @@ var BitField = class _BitField {
|
|
|
180
188
|
};
|
|
181
189
|
|
|
182
190
|
// src/callback-collection.ts
|
|
183
|
-
function _check_private_redeclaration(obj, privateCollection) {
|
|
184
|
-
if (privateCollection.has(obj)) {
|
|
185
|
-
throw new TypeError("Cannot initialize the same private elements twice on an object");
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
function _class_apply_descriptor_get(receiver, descriptor) {
|
|
189
|
-
if (descriptor.get) {
|
|
190
|
-
return descriptor.get.call(receiver);
|
|
191
|
-
}
|
|
192
|
-
return descriptor.value;
|
|
193
|
-
}
|
|
194
|
-
function _class_apply_descriptor_set(receiver, descriptor, value) {
|
|
195
|
-
if (descriptor.set) {
|
|
196
|
-
descriptor.set.call(receiver, value);
|
|
197
|
-
} else {
|
|
198
|
-
if (!descriptor.writable) {
|
|
199
|
-
throw new TypeError("attempted to set read only private field");
|
|
200
|
-
}
|
|
201
|
-
descriptor.value = value;
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
function _class_extract_field_descriptor(receiver, privateMap, action) {
|
|
205
|
-
if (!privateMap.has(receiver)) {
|
|
206
|
-
throw new TypeError("attempted to " + action + " private field on non-instance");
|
|
207
|
-
}
|
|
208
|
-
return privateMap.get(receiver);
|
|
209
|
-
}
|
|
210
|
-
function _class_private_field_get(receiver, privateMap) {
|
|
211
|
-
var descriptor = _class_extract_field_descriptor(receiver, privateMap, "get");
|
|
212
|
-
return _class_apply_descriptor_get(receiver, descriptor);
|
|
213
|
-
}
|
|
214
|
-
function _class_private_field_init(obj, privateMap, value) {
|
|
215
|
-
_check_private_redeclaration(obj, privateMap);
|
|
216
|
-
privateMap.set(obj, value);
|
|
217
|
-
}
|
|
218
|
-
function _class_private_field_set(receiver, privateMap, value) {
|
|
219
|
-
var descriptor = _class_extract_field_descriptor(receiver, privateMap, "set");
|
|
220
|
-
_class_apply_descriptor_set(receiver, descriptor, value);
|
|
221
|
-
return value;
|
|
222
|
-
}
|
|
223
|
-
var _callbacks = /* @__PURE__ */ new WeakMap();
|
|
224
191
|
var CallbackCollection = class {
|
|
192
|
+
#callbacks = [];
|
|
225
193
|
append(callback) {
|
|
226
|
-
|
|
194
|
+
this.#callbacks.push(callback);
|
|
227
195
|
}
|
|
228
196
|
prepend(callback) {
|
|
229
|
-
|
|
197
|
+
this.#callbacks.unshift(callback);
|
|
230
198
|
}
|
|
231
199
|
remove(callback) {
|
|
232
|
-
|
|
200
|
+
this.#callbacks = this.#callbacks.filter((c) => c !== callback);
|
|
233
201
|
}
|
|
234
202
|
callParallel(...args) {
|
|
235
|
-
return Promise.all(
|
|
203
|
+
return Promise.all(this.#callbacks.map((callback) => callback(...args)));
|
|
236
204
|
}
|
|
237
205
|
async callSerial(...args) {
|
|
238
206
|
const results = [];
|
|
239
|
-
for (const callback of
|
|
207
|
+
for (const callback of this.#callbacks) {
|
|
240
208
|
results.push(await callback(...args));
|
|
241
209
|
}
|
|
242
210
|
return results;
|
|
243
211
|
}
|
|
244
|
-
constructor() {
|
|
245
|
-
_class_private_field_init(this, _callbacks, {
|
|
246
|
-
writable: true,
|
|
247
|
-
value: []
|
|
248
|
-
});
|
|
249
|
-
}
|
|
250
212
|
};
|
|
251
213
|
|
|
252
214
|
// src/callback.ts
|
|
253
215
|
import { invariant as invariant2 } from "@dxos/invariant";
|
|
254
|
-
function _define_property(obj, key, value) {
|
|
255
|
-
if (key in obj) {
|
|
256
|
-
Object.defineProperty(obj, key, {
|
|
257
|
-
value,
|
|
258
|
-
enumerable: true,
|
|
259
|
-
configurable: true,
|
|
260
|
-
writable: true
|
|
261
|
-
});
|
|
262
|
-
} else {
|
|
263
|
-
obj[key] = value;
|
|
264
|
-
}
|
|
265
|
-
return obj;
|
|
266
|
-
}
|
|
267
216
|
var __dxlog_file2 = "/__w/dxos/dxos/packages/common/util/src/callback.ts";
|
|
268
217
|
var Callback = class {
|
|
218
|
+
_callback;
|
|
269
219
|
call(...args) {
|
|
270
220
|
invariant2(this._callback, "Callback not set", {
|
|
271
221
|
F: __dxlog_file2,
|
|
@@ -296,9 +246,6 @@ var Callback = class {
|
|
|
296
246
|
isSet() {
|
|
297
247
|
return !!this._callback;
|
|
298
248
|
}
|
|
299
|
-
constructor() {
|
|
300
|
-
_define_property(this, "_callback", void 0);
|
|
301
|
-
}
|
|
302
249
|
};
|
|
303
250
|
var createSetDispatch = ({ handlers }) => {
|
|
304
251
|
return new Proxy({
|
|
@@ -361,21 +308,23 @@ var chunkArray = (array, size) => {
|
|
|
361
308
|
|
|
362
309
|
// src/circular-buffer.ts
|
|
363
310
|
import { invariant as invariant3 } from "@dxos/invariant";
|
|
364
|
-
function _define_property2(obj, key, value) {
|
|
365
|
-
if (key in obj) {
|
|
366
|
-
Object.defineProperty(obj, key, {
|
|
367
|
-
value,
|
|
368
|
-
enumerable: true,
|
|
369
|
-
configurable: true,
|
|
370
|
-
writable: true
|
|
371
|
-
});
|
|
372
|
-
} else {
|
|
373
|
-
obj[key] = value;
|
|
374
|
-
}
|
|
375
|
-
return obj;
|
|
376
|
-
}
|
|
377
311
|
var __dxlog_file3 = "/__w/dxos/dxos/packages/common/util/src/circular-buffer.ts";
|
|
378
312
|
var CircularBuffer = class {
|
|
313
|
+
_buffer;
|
|
314
|
+
_nextIndex = 0;
|
|
315
|
+
_elementCount = 0;
|
|
316
|
+
constructor(size) {
|
|
317
|
+
invariant3(size >= 1, void 0, {
|
|
318
|
+
F: __dxlog_file3,
|
|
319
|
+
L: 13,
|
|
320
|
+
S: this,
|
|
321
|
+
A: [
|
|
322
|
+
"size >= 1",
|
|
323
|
+
""
|
|
324
|
+
]
|
|
325
|
+
});
|
|
326
|
+
this._buffer = new Array(size);
|
|
327
|
+
}
|
|
379
328
|
push(element) {
|
|
380
329
|
const evicted = this._elementCount === this._buffer.length ? this._buffer[this._nextIndex] : void 0;
|
|
381
330
|
this._buffer[this._nextIndex] = element;
|
|
@@ -386,6 +335,10 @@ var CircularBuffer = class {
|
|
|
386
335
|
get elementCount() {
|
|
387
336
|
return this._elementCount;
|
|
388
337
|
}
|
|
338
|
+
clear() {
|
|
339
|
+
this._nextIndex = 0;
|
|
340
|
+
this._elementCount = 0;
|
|
341
|
+
}
|
|
389
342
|
getLast() {
|
|
390
343
|
if (this._elementCount === 0) {
|
|
391
344
|
return void 0;
|
|
@@ -415,21 +368,6 @@ var CircularBuffer = class {
|
|
|
415
368
|
yield this._buffer[i];
|
|
416
369
|
}
|
|
417
370
|
}
|
|
418
|
-
constructor(size) {
|
|
419
|
-
_define_property2(this, "_buffer", void 0);
|
|
420
|
-
_define_property2(this, "_nextIndex", 0);
|
|
421
|
-
_define_property2(this, "_elementCount", 0);
|
|
422
|
-
invariant3(size >= 1, void 0, {
|
|
423
|
-
F: __dxlog_file3,
|
|
424
|
-
L: 13,
|
|
425
|
-
S: this,
|
|
426
|
-
A: [
|
|
427
|
-
"size >= 1",
|
|
428
|
-
""
|
|
429
|
-
]
|
|
430
|
-
});
|
|
431
|
-
this._buffer = new Array(size);
|
|
432
|
-
}
|
|
433
371
|
};
|
|
434
372
|
|
|
435
373
|
// src/clear-undefined.ts
|
|
@@ -448,22 +386,19 @@ var clearUndefined = (obj) => {
|
|
|
448
386
|
// src/complex.ts
|
|
449
387
|
import { inspect } from "@dxos/node-std/util";
|
|
450
388
|
import { inspectObject, raise } from "@dxos/debug";
|
|
451
|
-
function _define_property3(obj, key, value) {
|
|
452
|
-
if (key in obj) {
|
|
453
|
-
Object.defineProperty(obj, key, {
|
|
454
|
-
value,
|
|
455
|
-
enumerable: true,
|
|
456
|
-
configurable: true,
|
|
457
|
-
writable: true
|
|
458
|
-
});
|
|
459
|
-
} else {
|
|
460
|
-
obj[key] = value;
|
|
461
|
-
}
|
|
462
|
-
return obj;
|
|
463
|
-
}
|
|
464
389
|
var MAX_SERIALIZATION_LENGTH = 10;
|
|
465
|
-
var _inspect_custom = inspect.custom;
|
|
466
390
|
var ComplexSet = class {
|
|
391
|
+
_projection;
|
|
392
|
+
_values = /* @__PURE__ */ new Map();
|
|
393
|
+
// prettier-ignore
|
|
394
|
+
constructor(_projection, values) {
|
|
395
|
+
this._projection = _projection;
|
|
396
|
+
if (values) {
|
|
397
|
+
for (const value of values) {
|
|
398
|
+
this.add(value);
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
}
|
|
467
402
|
toString() {
|
|
468
403
|
return inspectObject(this);
|
|
469
404
|
}
|
|
@@ -472,7 +407,7 @@ var ComplexSet = class {
|
|
|
472
407
|
size: this._values.size
|
|
473
408
|
} : Array.from(this._values.values());
|
|
474
409
|
}
|
|
475
|
-
[
|
|
410
|
+
[inspect.custom]() {
|
|
476
411
|
return inspectObject(this);
|
|
477
412
|
}
|
|
478
413
|
add(value) {
|
|
@@ -538,18 +473,6 @@ var ComplexSet = class {
|
|
|
538
473
|
isDisjointFrom(other) {
|
|
539
474
|
throw new Error("Method not implemented.");
|
|
540
475
|
}
|
|
541
|
-
// prettier-ignore
|
|
542
|
-
constructor(_projection, values) {
|
|
543
|
-
_define_property3(this, "_projection", void 0);
|
|
544
|
-
_define_property3(this, "_values", void 0);
|
|
545
|
-
this._projection = _projection;
|
|
546
|
-
this._values = /* @__PURE__ */ new Map();
|
|
547
|
-
if (values) {
|
|
548
|
-
for (const value of values) {
|
|
549
|
-
this.add(value);
|
|
550
|
-
}
|
|
551
|
-
}
|
|
552
|
-
}
|
|
553
476
|
};
|
|
554
477
|
var makeSet = (projection) => {
|
|
555
478
|
return class BoundComplexSet extends ComplexSet {
|
|
@@ -558,8 +481,19 @@ var makeSet = (projection) => {
|
|
|
558
481
|
}
|
|
559
482
|
};
|
|
560
483
|
};
|
|
561
|
-
var _inspect_custom1 = inspect.custom;
|
|
562
484
|
var ComplexMap = class _ComplexMap {
|
|
485
|
+
_keyProjection;
|
|
486
|
+
_keys = /* @__PURE__ */ new Map();
|
|
487
|
+
_values = /* @__PURE__ */ new Map();
|
|
488
|
+
// prettier-ignore
|
|
489
|
+
constructor(_keyProjection, entries2) {
|
|
490
|
+
this._keyProjection = _keyProjection;
|
|
491
|
+
if (entries2) {
|
|
492
|
+
for (const [key, value] of entries2) {
|
|
493
|
+
this.set(key, value);
|
|
494
|
+
}
|
|
495
|
+
}
|
|
496
|
+
}
|
|
563
497
|
toString() {
|
|
564
498
|
return inspectObject(this);
|
|
565
499
|
}
|
|
@@ -568,7 +502,7 @@ var ComplexMap = class _ComplexMap {
|
|
|
568
502
|
size: this._values.size
|
|
569
503
|
} : Array.from(this._values.values());
|
|
570
504
|
}
|
|
571
|
-
[
|
|
505
|
+
[inspect.custom]() {
|
|
572
506
|
return inspectObject(this);
|
|
573
507
|
}
|
|
574
508
|
clear() {
|
|
@@ -630,39 +564,20 @@ var ComplexMap = class _ComplexMap {
|
|
|
630
564
|
get [Symbol.toStringTag]() {
|
|
631
565
|
return "ComplexMap";
|
|
632
566
|
}
|
|
633
|
-
// prettier-ignore
|
|
634
|
-
constructor(_keyProjection, entries2) {
|
|
635
|
-
_define_property3(this, "_keyProjection", void 0);
|
|
636
|
-
_define_property3(this, "_keys", void 0);
|
|
637
|
-
_define_property3(this, "_values", void 0);
|
|
638
|
-
this._keyProjection = _keyProjection;
|
|
639
|
-
this._keys = /* @__PURE__ */ new Map();
|
|
640
|
-
this._values = /* @__PURE__ */ new Map();
|
|
641
|
-
if (entries2) {
|
|
642
|
-
for (const [key, value] of entries2) {
|
|
643
|
-
this.set(key, value);
|
|
644
|
-
}
|
|
645
|
-
}
|
|
646
|
-
}
|
|
647
567
|
};
|
|
648
|
-
var makeMap = (keyProjection) => {
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
super(keyProjection, entries2);
|
|
652
|
-
}
|
|
568
|
+
var makeMap = (keyProjection) => class BoundComplexMap extends ComplexMap {
|
|
569
|
+
constructor(entries2) {
|
|
570
|
+
super(keyProjection, entries2);
|
|
653
571
|
}
|
|
654
|
-
return BoundComplexMap;
|
|
655
572
|
};
|
|
656
573
|
|
|
657
574
|
// src/deep.ts
|
|
658
|
-
import get from "lodash.get";
|
|
659
|
-
import set from "lodash.set";
|
|
660
575
|
import { invariant as invariant4 } from "@dxos/invariant";
|
|
661
576
|
var __dxlog_file4 = "/__w/dxos/dxos/packages/common/util/src/deep.ts";
|
|
662
577
|
var setDeep = (obj, path, value) => {
|
|
663
578
|
invariant4(path.length > 0, void 0, {
|
|
664
579
|
F: __dxlog_file4,
|
|
665
|
-
L:
|
|
580
|
+
L: 12,
|
|
666
581
|
S: void 0,
|
|
667
582
|
A: [
|
|
668
583
|
"path.length > 0",
|
|
@@ -691,72 +606,51 @@ var getDeep = (obj, path) => {
|
|
|
691
606
|
// src/defer-function.ts
|
|
692
607
|
var deferFunction = (fnProvider) => (...args) => fnProvider()(...args);
|
|
693
608
|
|
|
694
|
-
// src/explicit-resource-management-polyfill.ts
|
|
695
|
-
var _Symbol;
|
|
696
|
-
var _Symbol1;
|
|
697
|
-
(_Symbol = Symbol).dispose ?? (_Symbol.dispose = Symbol("Symbol.dispose"));
|
|
698
|
-
(_Symbol1 = Symbol).asyncDispose ?? (_Symbol1.asyncDispose = Symbol("Symbol.asyncDispose"));
|
|
699
|
-
|
|
700
609
|
// src/defer.ts
|
|
701
|
-
|
|
702
|
-
if (key in obj) {
|
|
703
|
-
Object.defineProperty(obj, key, {
|
|
704
|
-
value,
|
|
705
|
-
enumerable: true,
|
|
706
|
-
configurable: true,
|
|
707
|
-
writable: true
|
|
708
|
-
});
|
|
709
|
-
} else {
|
|
710
|
-
obj[key] = value;
|
|
711
|
-
}
|
|
712
|
-
return obj;
|
|
713
|
-
}
|
|
610
|
+
import "@hazae41/symbol-dispose-polyfill";
|
|
714
611
|
var defer = (fn) => new DeferGuard(fn);
|
|
715
612
|
var DeferGuard = class {
|
|
716
|
-
|
|
717
|
-
const result = this._fn();
|
|
718
|
-
if (result instanceof Promise) {
|
|
719
|
-
throw new Error("Async functions in defer are not supported. Use deferAsync instead.");
|
|
720
|
-
}
|
|
721
|
-
}
|
|
613
|
+
_fn;
|
|
722
614
|
/**
|
|
723
615
|
* @internal
|
|
724
616
|
*/
|
|
725
617
|
constructor(_fn) {
|
|
726
|
-
_define_property4(this, "_fn", void 0);
|
|
727
618
|
this._fn = _fn;
|
|
728
619
|
}
|
|
620
|
+
[Symbol.dispose]() {
|
|
621
|
+
const result = this._fn();
|
|
622
|
+
if (result instanceof Promise) {
|
|
623
|
+
throw new Error("Async functions in defer are not supported. Use deferAsync instead.");
|
|
624
|
+
}
|
|
625
|
+
}
|
|
729
626
|
};
|
|
730
627
|
var deferAsync = (fn) => new DeferAsyncGuard(fn);
|
|
731
628
|
var DeferAsyncGuard = class {
|
|
732
|
-
|
|
733
|
-
await this._fn();
|
|
734
|
-
}
|
|
629
|
+
_fn;
|
|
735
630
|
/**
|
|
736
631
|
* @internal
|
|
737
632
|
*/
|
|
738
633
|
constructor(_fn) {
|
|
739
|
-
_define_property4(this, "_fn", void 0);
|
|
740
634
|
this._fn = _fn;
|
|
741
635
|
}
|
|
636
|
+
async [Symbol.asyncDispose]() {
|
|
637
|
+
await this._fn();
|
|
638
|
+
}
|
|
742
639
|
};
|
|
743
640
|
|
|
744
641
|
// src/entry.ts
|
|
745
|
-
function _define_property5(obj, key, value) {
|
|
746
|
-
if (key in obj) {
|
|
747
|
-
Object.defineProperty(obj, key, {
|
|
748
|
-
value,
|
|
749
|
-
enumerable: true,
|
|
750
|
-
configurable: true,
|
|
751
|
-
writable: true
|
|
752
|
-
});
|
|
753
|
-
} else {
|
|
754
|
-
obj[key] = value;
|
|
755
|
-
}
|
|
756
|
-
return obj;
|
|
757
|
-
}
|
|
758
642
|
var entry = (map, key) => new MapEntry(map, key);
|
|
759
643
|
var MapEntry = class {
|
|
644
|
+
_map;
|
|
645
|
+
_key;
|
|
646
|
+
/**
|
|
647
|
+
* @internal
|
|
648
|
+
*/
|
|
649
|
+
// prettier-ignore
|
|
650
|
+
constructor(_map, _key) {
|
|
651
|
+
this._map = _map;
|
|
652
|
+
this._key = _key;
|
|
653
|
+
}
|
|
760
654
|
get key() {
|
|
761
655
|
return this._key;
|
|
762
656
|
}
|
|
@@ -772,36 +666,19 @@ var MapEntry = class {
|
|
|
772
666
|
deep(key) {
|
|
773
667
|
return entry(this.value, key);
|
|
774
668
|
}
|
|
775
|
-
/**
|
|
776
|
-
* @internal
|
|
777
|
-
*/
|
|
778
|
-
// prettier-ignore
|
|
779
|
-
constructor(_map, _key) {
|
|
780
|
-
_define_property5(this, "_map", void 0);
|
|
781
|
-
_define_property5(this, "_key", void 0);
|
|
782
|
-
this._map = _map;
|
|
783
|
-
this._key = _key;
|
|
784
|
-
}
|
|
785
669
|
};
|
|
786
670
|
|
|
671
|
+
// src/filename.ts
|
|
672
|
+
var createFilename = ({ parts = [], ext, date = /* @__PURE__ */ new Date() }) => [
|
|
673
|
+
date.toISOString().replace(/[:.]/g, "-"),
|
|
674
|
+
...parts
|
|
675
|
+
].join("_") + (ext ? `.${ext}` : "");
|
|
676
|
+
|
|
787
677
|
// src/for-each-async.ts
|
|
788
678
|
var forEachAsync = (items, fn) => Promise.all(items.map(fn));
|
|
789
679
|
|
|
790
680
|
// src/human-hash.ts
|
|
791
681
|
import { PublicKey } from "@dxos/keys";
|
|
792
|
-
function _define_property6(obj, key, value) {
|
|
793
|
-
if (key in obj) {
|
|
794
|
-
Object.defineProperty(obj, key, {
|
|
795
|
-
value,
|
|
796
|
-
enumerable: true,
|
|
797
|
-
configurable: true,
|
|
798
|
-
writable: true
|
|
799
|
-
});
|
|
800
|
-
} else {
|
|
801
|
-
obj[key] = value;
|
|
802
|
-
}
|
|
803
|
-
return obj;
|
|
804
|
-
}
|
|
805
682
|
var DEFAULT_WORDLIST = [
|
|
806
683
|
"ack",
|
|
807
684
|
"alabama",
|
|
@@ -1061,6 +938,27 @@ var DEFAULT_WORDLIST = [
|
|
|
1061
938
|
"zulu"
|
|
1062
939
|
];
|
|
1063
940
|
var HumanHasher = class {
|
|
941
|
+
wordlist;
|
|
942
|
+
/**
|
|
943
|
+
* Transforms hex digests to human-readable strings.
|
|
944
|
+
*
|
|
945
|
+
* The format of these strings will look something like:
|
|
946
|
+
* `victor-bacon-zulu-lima`. The output is obtained by compressing the input
|
|
947
|
+
* digest to a fixed number of bytes, then mapping those bytes to one of 256
|
|
948
|
+
* words. A default wordlist is provided, but you can override this if you
|
|
949
|
+
* prefer.
|
|
950
|
+
* As long as you use the same wordlist, the output will be consistent (i.e.
|
|
951
|
+
* the same digest will always render the same representation).
|
|
952
|
+
*
|
|
953
|
+
* @param wordlist A list of exactly 256 words to choose from
|
|
954
|
+
*/
|
|
955
|
+
constructor(wordlist = DEFAULT_WORDLIST) {
|
|
956
|
+
this.wordlist = wordlist;
|
|
957
|
+
if (wordlist.length !== 256) {
|
|
958
|
+
throw new Error("Wordlist must have exactly 256 items");
|
|
959
|
+
}
|
|
960
|
+
this.wordlist = wordlist;
|
|
961
|
+
}
|
|
1064
962
|
/**
|
|
1065
963
|
* Humanize a given hexadecimal digest.
|
|
1066
964
|
*
|
|
@@ -1100,27 +998,6 @@ var HumanHasher = class {
|
|
|
1100
998
|
const checksums = segments.map((x) => x.reduce((acc, curr) => acc ^ curr));
|
|
1101
999
|
return checksums;
|
|
1102
1000
|
}
|
|
1103
|
-
/**
|
|
1104
|
-
* Transforms hex digests to human-readable strings.
|
|
1105
|
-
*
|
|
1106
|
-
* The format of these strings will look something like:
|
|
1107
|
-
* `victor-bacon-zulu-lima`. The output is obtained by compressing the input
|
|
1108
|
-
* digest to a fixed number of bytes, then mapping those bytes to one of 256
|
|
1109
|
-
* words. A default wordlist is provided, but you can override this if you
|
|
1110
|
-
* prefer.
|
|
1111
|
-
* As long as you use the same wordlist, the output will be consistent (i.e.
|
|
1112
|
-
* the same digest will always render the same representation).
|
|
1113
|
-
*
|
|
1114
|
-
* @param wordlist A list of exactly 256 words to choose from
|
|
1115
|
-
*/
|
|
1116
|
-
constructor(wordlist = DEFAULT_WORDLIST) {
|
|
1117
|
-
_define_property6(this, "wordlist", void 0);
|
|
1118
|
-
this.wordlist = wordlist;
|
|
1119
|
-
if (wordlist.length !== 256) {
|
|
1120
|
-
throw new Error("Wordlist must have exactly 256 items");
|
|
1121
|
-
}
|
|
1122
|
-
this.wordlist = wordlist;
|
|
1123
|
-
}
|
|
1124
1001
|
};
|
|
1125
1002
|
var hasher = new HumanHasher();
|
|
1126
1003
|
var humanize = (value) => {
|
|
@@ -1143,10 +1020,8 @@ var defaultMap = (map, key, def) => {
|
|
|
1143
1020
|
};
|
|
1144
1021
|
|
|
1145
1022
|
// src/instance-id.ts
|
|
1146
|
-
var
|
|
1147
|
-
var
|
|
1148
|
-
var symbol = Symbol.for("dxos.instance-contexts");
|
|
1149
|
-
var instanceContexts = (_globalThis = globalThis)[_symbol = symbol] ?? (_globalThis[_symbol] = /* @__PURE__ */ new WeakMap());
|
|
1023
|
+
var symbol = /* @__PURE__ */ Symbol.for("dxos.instance-contexts");
|
|
1024
|
+
var instanceContexts = globalThis[symbol] ??= /* @__PURE__ */ new WeakMap();
|
|
1150
1025
|
var getPrototypeSpecificInstanceId = (instance) => {
|
|
1151
1026
|
const prototype = Object.getPrototypeOf(instance);
|
|
1152
1027
|
const instanceCtx = defaultMap(instanceContexts, prototype, () => ({
|
|
@@ -1318,19 +1193,6 @@ var jsonKeyReplacer = (options = {}) => (key, value) => {
|
|
|
1318
1193
|
};
|
|
1319
1194
|
|
|
1320
1195
|
// src/map-values.ts
|
|
1321
|
-
function _define_property7(obj, key, value) {
|
|
1322
|
-
if (key in obj) {
|
|
1323
|
-
Object.defineProperty(obj, key, {
|
|
1324
|
-
value,
|
|
1325
|
-
enumerable: true,
|
|
1326
|
-
configurable: true,
|
|
1327
|
-
writable: true
|
|
1328
|
-
});
|
|
1329
|
-
} else {
|
|
1330
|
-
obj[key] = value;
|
|
1331
|
-
}
|
|
1332
|
-
return obj;
|
|
1333
|
-
}
|
|
1334
1196
|
var mapValues = (obj, fn) => {
|
|
1335
1197
|
const result = {};
|
|
1336
1198
|
Object.keys(obj).forEach((key) => {
|
|
@@ -1342,6 +1204,11 @@ var deepMapValues = (value, fn) => {
|
|
|
1342
1204
|
return new DeepMapper(fn).map(value);
|
|
1343
1205
|
};
|
|
1344
1206
|
var DeepMapper = class {
|
|
1207
|
+
_fn;
|
|
1208
|
+
_cyclic = /* @__PURE__ */ new Map();
|
|
1209
|
+
constructor(_fn) {
|
|
1210
|
+
this._fn = _fn;
|
|
1211
|
+
}
|
|
1345
1212
|
map(value) {
|
|
1346
1213
|
return this._map(value, void 0);
|
|
1347
1214
|
}
|
|
@@ -1351,40 +1218,38 @@ var DeepMapper = class {
|
|
|
1351
1218
|
}
|
|
1352
1219
|
return this._fn(value, this._recurse, key);
|
|
1353
1220
|
}
|
|
1354
|
-
|
|
1355
|
-
|
|
1356
|
-
|
|
1357
|
-
|
|
1358
|
-
|
|
1359
|
-
|
|
1360
|
-
|
|
1361
|
-
|
|
1362
|
-
|
|
1221
|
+
_recurse = (value) => {
|
|
1222
|
+
if (this._cyclic.has(value)) {
|
|
1223
|
+
return this._cyclic.get(value);
|
|
1224
|
+
}
|
|
1225
|
+
if (Array.isArray(value)) {
|
|
1226
|
+
const res = new Array(value.length);
|
|
1227
|
+
this._cyclic.set(value, res);
|
|
1228
|
+
for (let i = 0; i < value.length; i++) {
|
|
1229
|
+
res[i] = this._map(value[i], i);
|
|
1363
1230
|
}
|
|
1364
|
-
|
|
1365
|
-
|
|
1366
|
-
|
|
1367
|
-
|
|
1368
|
-
|
|
1369
|
-
|
|
1370
|
-
return res;
|
|
1371
|
-
} else if (value !== null && typeof value === "object") {
|
|
1372
|
-
const res = {};
|
|
1373
|
-
this._cyclic.set(value, res);
|
|
1374
|
-
for (const key in value) {
|
|
1375
|
-
res[key] = this._map(value[key], key);
|
|
1376
|
-
}
|
|
1377
|
-
return res;
|
|
1378
|
-
} else {
|
|
1379
|
-
return value;
|
|
1231
|
+
return res;
|
|
1232
|
+
} else if (value !== null && typeof value === "object") {
|
|
1233
|
+
const res = {};
|
|
1234
|
+
this._cyclic.set(value, res);
|
|
1235
|
+
for (const key in value) {
|
|
1236
|
+
res[key] = this._map(value[key], key);
|
|
1380
1237
|
}
|
|
1381
|
-
|
|
1382
|
-
|
|
1238
|
+
return res;
|
|
1239
|
+
} else {
|
|
1240
|
+
return value;
|
|
1241
|
+
}
|
|
1242
|
+
};
|
|
1383
1243
|
};
|
|
1384
1244
|
var deepMapValuesAsync = (value, fn) => {
|
|
1385
1245
|
return new DeepMapperAsync(fn).map(value);
|
|
1386
1246
|
};
|
|
1387
1247
|
var DeepMapperAsync = class {
|
|
1248
|
+
_fn;
|
|
1249
|
+
_cyclic = /* @__PURE__ */ new Map();
|
|
1250
|
+
constructor(_fn) {
|
|
1251
|
+
this._fn = _fn;
|
|
1252
|
+
}
|
|
1388
1253
|
map(value) {
|
|
1389
1254
|
return this._map(value, void 0);
|
|
1390
1255
|
}
|
|
@@ -1394,35 +1259,28 @@ var DeepMapperAsync = class {
|
|
|
1394
1259
|
}
|
|
1395
1260
|
return this._fn(value, this._recurse, key);
|
|
1396
1261
|
}
|
|
1397
|
-
|
|
1398
|
-
|
|
1399
|
-
|
|
1400
|
-
|
|
1401
|
-
|
|
1402
|
-
|
|
1403
|
-
|
|
1404
|
-
|
|
1405
|
-
|
|
1262
|
+
_recurse = async (value) => {
|
|
1263
|
+
if (this._cyclic.has(value)) {
|
|
1264
|
+
return this._cyclic.get(value);
|
|
1265
|
+
}
|
|
1266
|
+
if (Array.isArray(value)) {
|
|
1267
|
+
const res = new Array(value.length);
|
|
1268
|
+
this._cyclic.set(value, res);
|
|
1269
|
+
for (let i = 0; i < value.length; i++) {
|
|
1270
|
+
res[i] = await this._map(value[i], i);
|
|
1406
1271
|
}
|
|
1407
|
-
|
|
1408
|
-
|
|
1409
|
-
|
|
1410
|
-
|
|
1411
|
-
|
|
1412
|
-
|
|
1413
|
-
return res;
|
|
1414
|
-
} else if (value !== null && typeof value === "object") {
|
|
1415
|
-
const res = {};
|
|
1416
|
-
this._cyclic.set(value, res);
|
|
1417
|
-
for (const key in value) {
|
|
1418
|
-
res[key] = await this._map(value[key], key);
|
|
1419
|
-
}
|
|
1420
|
-
return res;
|
|
1421
|
-
} else {
|
|
1422
|
-
return value;
|
|
1272
|
+
return res;
|
|
1273
|
+
} else if (value !== null && typeof value === "object") {
|
|
1274
|
+
const res = {};
|
|
1275
|
+
this._cyclic.set(value, res);
|
|
1276
|
+
for (const key in value) {
|
|
1277
|
+
res[key] = await this._map(value[key], key);
|
|
1423
1278
|
}
|
|
1424
|
-
|
|
1425
|
-
|
|
1279
|
+
return res;
|
|
1280
|
+
} else {
|
|
1281
|
+
return value;
|
|
1282
|
+
}
|
|
1283
|
+
};
|
|
1426
1284
|
};
|
|
1427
1285
|
var visitValues = (object, visitor) => {
|
|
1428
1286
|
if (Array.isArray(object)) {
|
|
@@ -1511,7 +1369,18 @@ var omit = (obj, keys2) => {
|
|
|
1511
1369
|
|
|
1512
1370
|
// src/platform.ts
|
|
1513
1371
|
var isNode = () => typeof process !== "undefined" && process.versions != null && process.versions.node != null;
|
|
1514
|
-
var
|
|
1372
|
+
var isBun = () => globalThis.Bun !== void 0;
|
|
1373
|
+
var isTauri = () => !!globalThis.__TAURI__;
|
|
1374
|
+
var isMobile = () => {
|
|
1375
|
+
let check = false;
|
|
1376
|
+
(function(a) {
|
|
1377
|
+
if (/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0, 4))) {
|
|
1378
|
+
check = true;
|
|
1379
|
+
}
|
|
1380
|
+
})(navigator.userAgent || navigator.vendor || window.opera);
|
|
1381
|
+
return check;
|
|
1382
|
+
};
|
|
1383
|
+
var isMobileOrTablet = () => {
|
|
1515
1384
|
let check = false;
|
|
1516
1385
|
((a) => {
|
|
1517
1386
|
if (/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0, 4))) {
|
|
@@ -1533,7 +1402,7 @@ var iosCheck = () => {
|
|
|
1533
1402
|
};
|
|
1534
1403
|
var safariCheck = () => typeof navigator !== "undefined" && /^((?!chrome|android).)*safari/i.test(navigator.userAgent);
|
|
1535
1404
|
var getHostPlatform = () => {
|
|
1536
|
-
if (!("navigator" in
|
|
1405
|
+
if (!("navigator" in globalThis)) {
|
|
1537
1406
|
return "unknown";
|
|
1538
1407
|
}
|
|
1539
1408
|
const platform = (navigator.userAgentData?.platform || navigator.platform)?.toLowerCase();
|
|
@@ -1728,7 +1597,7 @@ var safeAwaitAll = async (source, taskFactory, onError) => {
|
|
|
1728
1597
|
};
|
|
1729
1598
|
|
|
1730
1599
|
// src/safe-instanceof.ts
|
|
1731
|
-
var instanceTag = Symbol("instanceTag");
|
|
1600
|
+
var instanceTag = /* @__PURE__ */ Symbol("instanceTag");
|
|
1732
1601
|
var safeInstanceof = (tag) => (target) => {
|
|
1733
1602
|
target.prototype[instanceTag] = tag;
|
|
1734
1603
|
Object.defineProperty(target.prototype, Symbol.hasInstance, {
|
|
@@ -1740,48 +1609,151 @@ var safeInstanceof = (tag) => (target) => {
|
|
|
1740
1609
|
};
|
|
1741
1610
|
|
|
1742
1611
|
// src/safe-parse.ts
|
|
1743
|
-
|
|
1612
|
+
function safeParseInt(str, defaultValue) {
|
|
1744
1613
|
try {
|
|
1745
|
-
const
|
|
1746
|
-
return isNaN(
|
|
1614
|
+
const value = parseInt(str ?? "");
|
|
1615
|
+
return isNaN(value) ? defaultValue : value;
|
|
1747
1616
|
} catch {
|
|
1748
1617
|
return defaultValue;
|
|
1749
1618
|
}
|
|
1750
|
-
}
|
|
1751
|
-
|
|
1619
|
+
}
|
|
1620
|
+
function safeParseFloat(str, defaultValue) {
|
|
1752
1621
|
try {
|
|
1753
|
-
|
|
1622
|
+
const value = parseFloat(str ?? "");
|
|
1623
|
+
return isNaN(value) ? defaultValue : value;
|
|
1754
1624
|
} catch {
|
|
1755
|
-
return defaultValue
|
|
1625
|
+
return defaultValue;
|
|
1756
1626
|
}
|
|
1757
|
-
}
|
|
1758
|
-
var safeParseJson = (
|
|
1759
|
-
if (
|
|
1627
|
+
}
|
|
1628
|
+
var safeParseJson = (str, defaultValue) => {
|
|
1629
|
+
if (str && str.length > 0) {
|
|
1760
1630
|
try {
|
|
1761
|
-
return JSON.parse(
|
|
1631
|
+
return JSON.parse(str);
|
|
1762
1632
|
} catch {
|
|
1763
1633
|
}
|
|
1764
1634
|
}
|
|
1765
1635
|
return defaultValue;
|
|
1766
1636
|
};
|
|
1637
|
+
var safeUrl = (str) => {
|
|
1638
|
+
try {
|
|
1639
|
+
return new URL(str ?? "");
|
|
1640
|
+
} catch {
|
|
1641
|
+
return void 0;
|
|
1642
|
+
}
|
|
1643
|
+
};
|
|
1767
1644
|
|
|
1768
|
-
// src/
|
|
1769
|
-
|
|
1770
|
-
function
|
|
1771
|
-
|
|
1772
|
-
|
|
1773
|
-
|
|
1774
|
-
|
|
1775
|
-
|
|
1776
|
-
|
|
1777
|
-
|
|
1778
|
-
|
|
1779
|
-
|
|
1645
|
+
// src/safe-stringify.ts
|
|
1646
|
+
var SKIP = Object.freeze({});
|
|
1647
|
+
function safeStringify(obj, filter = defaultFilter, indent = 2) {
|
|
1648
|
+
const seen = /* @__PURE__ */ new WeakMap();
|
|
1649
|
+
function replacer(key, value) {
|
|
1650
|
+
try {
|
|
1651
|
+
let path = key;
|
|
1652
|
+
if (!key) {
|
|
1653
|
+
path = "$";
|
|
1654
|
+
if (value != null && typeof value === "object") {
|
|
1655
|
+
seen.set(value, path);
|
|
1656
|
+
}
|
|
1657
|
+
return value;
|
|
1658
|
+
} else if (this) {
|
|
1659
|
+
const parentPath = seen.get(this);
|
|
1660
|
+
path = parentPath ? `${parentPath}.${key}` : key;
|
|
1661
|
+
}
|
|
1662
|
+
if (value == null) {
|
|
1663
|
+
return value;
|
|
1664
|
+
}
|
|
1665
|
+
if (typeof value === "function") {
|
|
1666
|
+
return void 0;
|
|
1667
|
+
}
|
|
1668
|
+
if (typeof value === "object" && Object.getPrototypeOf(value) !== Object.prototype && !Array.isArray(value)) {
|
|
1669
|
+
return void 0;
|
|
1670
|
+
}
|
|
1671
|
+
if (typeof value === "object" && value !== null) {
|
|
1672
|
+
const exists = seen.get(value);
|
|
1673
|
+
if (exists) {
|
|
1674
|
+
return `[${path} => ${exists}]`;
|
|
1675
|
+
}
|
|
1676
|
+
seen.set(value, path);
|
|
1677
|
+
}
|
|
1678
|
+
if (filter) {
|
|
1679
|
+
const filteredValue = filter?.(key, value);
|
|
1680
|
+
if (filteredValue !== void 0) {
|
|
1681
|
+
return filteredValue === SKIP ? void 0 : filteredValue;
|
|
1682
|
+
}
|
|
1683
|
+
}
|
|
1684
|
+
return value;
|
|
1685
|
+
} catch (error) {
|
|
1686
|
+
return `ERROR: ${error.message}`;
|
|
1687
|
+
}
|
|
1688
|
+
}
|
|
1689
|
+
try {
|
|
1690
|
+
return JSON.stringify(obj, replacer, indent);
|
|
1691
|
+
} catch (error) {
|
|
1692
|
+
return `ERROR: ${error.message}`;
|
|
1780
1693
|
}
|
|
1781
|
-
return obj;
|
|
1782
1694
|
}
|
|
1695
|
+
var createReplacer = ({ omit: omit2, parse, maxDepth, maxArrayLen, maxStringLen } = {}) => {
|
|
1696
|
+
let currentDepth = 0;
|
|
1697
|
+
const depthMap = /* @__PURE__ */ new WeakMap();
|
|
1698
|
+
return function(key, value) {
|
|
1699
|
+
if (key === "") {
|
|
1700
|
+
currentDepth = 0;
|
|
1701
|
+
} else if (this && typeof this === "object") {
|
|
1702
|
+
const parentDepth = depthMap.get(this) ?? 0;
|
|
1703
|
+
currentDepth = parentDepth + 1;
|
|
1704
|
+
}
|
|
1705
|
+
if (typeof value === "function") {
|
|
1706
|
+
return SKIP;
|
|
1707
|
+
}
|
|
1708
|
+
if (maxArrayLen != null && Array.isArray(value) && value.length > maxArrayLen) {
|
|
1709
|
+
return `[length: ${value.length}]`;
|
|
1710
|
+
}
|
|
1711
|
+
if (value && typeof value === "object") {
|
|
1712
|
+
depthMap.set(value, currentDepth);
|
|
1713
|
+
if (maxDepth != null && currentDepth >= maxDepth) {
|
|
1714
|
+
return Array.isArray(value) ? `[{ length: ${value.length} }]` : `{ keys: ${Object.keys(value).length} }`;
|
|
1715
|
+
}
|
|
1716
|
+
}
|
|
1717
|
+
if (omit2?.includes(key)) {
|
|
1718
|
+
return SKIP;
|
|
1719
|
+
}
|
|
1720
|
+
if (parse?.includes(key) && typeof value === "string") {
|
|
1721
|
+
try {
|
|
1722
|
+
return JSON.parse(value);
|
|
1723
|
+
} catch {
|
|
1724
|
+
return value;
|
|
1725
|
+
}
|
|
1726
|
+
}
|
|
1727
|
+
if (maxStringLen != null && typeof value === "string" && value.length > maxStringLen) {
|
|
1728
|
+
return value.slice(0, maxStringLen) + "...";
|
|
1729
|
+
}
|
|
1730
|
+
return value;
|
|
1731
|
+
};
|
|
1732
|
+
};
|
|
1733
|
+
var defaultFilter = createReplacer();
|
|
1734
|
+
|
|
1735
|
+
// src/sliding-window-summary.ts
|
|
1736
|
+
import { invariant as invariant5 } from "@dxos/invariant";
|
|
1783
1737
|
var __dxlog_file5 = "/__w/dxos/dxos/packages/common/util/src/sliding-window-summary.ts";
|
|
1784
1738
|
var SlidingWindowSummary = class {
|
|
1739
|
+
_buffer;
|
|
1740
|
+
_sum = 0;
|
|
1741
|
+
_precision;
|
|
1742
|
+
constructor(options) {
|
|
1743
|
+
this._buffer = new CircularBuffer(options.dataPoints);
|
|
1744
|
+
if (options.precision != null) {
|
|
1745
|
+
invariant5(options.precision >= 0, void 0, {
|
|
1746
|
+
F: __dxlog_file5,
|
|
1747
|
+
L: 26,
|
|
1748
|
+
S: this,
|
|
1749
|
+
A: [
|
|
1750
|
+
"options.precision >= 0",
|
|
1751
|
+
""
|
|
1752
|
+
]
|
|
1753
|
+
});
|
|
1754
|
+
this._precision = Math.pow(10, options.precision);
|
|
1755
|
+
}
|
|
1756
|
+
}
|
|
1785
1757
|
record(value) {
|
|
1786
1758
|
const evicted = this._buffer.push(value);
|
|
1787
1759
|
this._sum += value - (evicted ?? 0);
|
|
@@ -1816,24 +1788,6 @@ var SlidingWindowSummary = class {
|
|
|
1816
1788
|
}
|
|
1817
1789
|
return Math.round(value * this._precision) / this._precision;
|
|
1818
1790
|
}
|
|
1819
|
-
constructor(options) {
|
|
1820
|
-
_define_property8(this, "_buffer", void 0);
|
|
1821
|
-
_define_property8(this, "_sum", 0);
|
|
1822
|
-
_define_property8(this, "_precision", void 0);
|
|
1823
|
-
this._buffer = new CircularBuffer(options.dataPoints);
|
|
1824
|
-
if (options.precision != null) {
|
|
1825
|
-
invariant5(options.precision >= 0, void 0, {
|
|
1826
|
-
F: __dxlog_file5,
|
|
1827
|
-
L: 26,
|
|
1828
|
-
S: this,
|
|
1829
|
-
A: [
|
|
1830
|
-
"options.precision >= 0",
|
|
1831
|
-
""
|
|
1832
|
-
]
|
|
1833
|
-
});
|
|
1834
|
-
this._precision = Math.pow(10, options.precision);
|
|
1835
|
-
}
|
|
1836
|
-
}
|
|
1837
1791
|
};
|
|
1838
1792
|
|
|
1839
1793
|
// src/sort.ts
|
|
@@ -1896,18 +1850,6 @@ var throwUnhandledError = (error) => {
|
|
|
1896
1850
|
|
|
1897
1851
|
// src/to-fallback.ts
|
|
1898
1852
|
var idEmoji = [
|
|
1899
|
-
// When changing this set, please check the result in a console or e.g. RunKit (https://runkit.com/thure/642214441dd6ae000855a8de)
|
|
1900
|
-
// Emoji sometimes use a combination of code points, and some code points aren't visible on their own, so by adding or deleting you may unintentionally create non-visible items.
|
|
1901
|
-
// This set was chosen from the characters in Unicode Emoji v15.0 based on the following criteria:
|
|
1902
|
-
// – not people or isolated anthropomorphic faces
|
|
1903
|
-
// – not flags
|
|
1904
|
-
// – more concrete than abstract
|
|
1905
|
-
// – less culturally specific
|
|
1906
|
-
// – less easily confused with another emoji in the set
|
|
1907
|
-
// – requires less special knowledge to identify
|
|
1908
|
-
// – less likely to evoke negative feelings (no meat, no drugs, no weapons, etc)
|
|
1909
|
-
// – less common as a signifier in UX
|
|
1910
|
-
// NOTE that this is intentionally an array of strings because of the way emoji graphemes work.
|
|
1911
1853
|
"\u{1F47B}",
|
|
1912
1854
|
"\u{1F479}",
|
|
1913
1855
|
"\u{1F47D}",
|
|
@@ -2043,17 +1985,18 @@ var idEmoji = [
|
|
|
2043
1985
|
];
|
|
2044
1986
|
var idHue = [
|
|
2045
1987
|
"red",
|
|
2046
|
-
|
|
1988
|
+
"orange",
|
|
2047
1989
|
"amber",
|
|
2048
|
-
|
|
1990
|
+
"yellow",
|
|
2049
1991
|
"lime",
|
|
2050
1992
|
"green",
|
|
2051
1993
|
"emerald",
|
|
2052
1994
|
"teal",
|
|
2053
1995
|
"cyan",
|
|
2054
|
-
//
|
|
2055
|
-
// '
|
|
2056
|
-
// '
|
|
1996
|
+
// Omit colors similar to primary accent.
|
|
1997
|
+
// 'sky' as const,
|
|
1998
|
+
// 'blue' as const,
|
|
1999
|
+
// 'indigo' as const,
|
|
2057
2000
|
"violet",
|
|
2058
2001
|
"purple",
|
|
2059
2002
|
"fuchsia",
|
|
@@ -2080,20 +2023,9 @@ var toFallback = (hash) => {
|
|
|
2080
2023
|
};
|
|
2081
2024
|
|
|
2082
2025
|
// src/tracer.ts
|
|
2083
|
-
function _define_property9(obj, key, value) {
|
|
2084
|
-
if (key in obj) {
|
|
2085
|
-
Object.defineProperty(obj, key, {
|
|
2086
|
-
value,
|
|
2087
|
-
enumerable: true,
|
|
2088
|
-
configurable: true,
|
|
2089
|
-
writable: true
|
|
2090
|
-
});
|
|
2091
|
-
} else {
|
|
2092
|
-
obj[key] = value;
|
|
2093
|
-
}
|
|
2094
|
-
return obj;
|
|
2095
|
-
}
|
|
2096
2026
|
var Tracer = class {
|
|
2027
|
+
_events = /* @__PURE__ */ new Map();
|
|
2028
|
+
_recording = false;
|
|
2097
2029
|
// TODO(burdon): Start/stop methods for recording data? By id?
|
|
2098
2030
|
// Alternatively, enable subscriptions to track/compute series.
|
|
2099
2031
|
// TODO(burdon): Hierarchical traces?
|
|
@@ -2150,10 +2082,6 @@ var Tracer = class {
|
|
|
2150
2082
|
defaultMap(this._events, event.id, []).push(event);
|
|
2151
2083
|
}
|
|
2152
2084
|
}
|
|
2153
|
-
constructor() {
|
|
2154
|
-
_define_property9(this, "_events", /* @__PURE__ */ new Map());
|
|
2155
|
-
_define_property9(this, "_recording", false);
|
|
2156
|
-
}
|
|
2157
2085
|
};
|
|
2158
2086
|
var tracer = new Tracer();
|
|
2159
2087
|
|
|
@@ -2228,69 +2156,112 @@ var arrayMove = (array, from, to) => {
|
|
|
2228
2156
|
array.splice(to < 0 ? array.length + to : to, 0, array.splice(from, 1)[0]);
|
|
2229
2157
|
return array;
|
|
2230
2158
|
};
|
|
2159
|
+
function arraySwap(array, from, to) {
|
|
2160
|
+
const current = array[from];
|
|
2161
|
+
array[from] = array[to];
|
|
2162
|
+
array[to] = current;
|
|
2163
|
+
return array;
|
|
2164
|
+
}
|
|
2231
2165
|
|
|
2232
2166
|
// src/unit.ts
|
|
2233
|
-
var
|
|
2234
|
-
return (n, precision =
|
|
2167
|
+
var createFormat = (unit) => {
|
|
2168
|
+
return (n, precision = unit.precision ?? 0) => {
|
|
2235
2169
|
const value = n / unit.quotient;
|
|
2236
|
-
return
|
|
2170
|
+
return {
|
|
2171
|
+
unit,
|
|
2172
|
+
value,
|
|
2173
|
+
formattedValue: value.toFixed(precision),
|
|
2174
|
+
toString: () => `${value.toFixed(precision)}${unit.symbol}`
|
|
2175
|
+
};
|
|
2237
2176
|
};
|
|
2238
2177
|
};
|
|
2178
|
+
var MS_SECONDS = 1e3;
|
|
2179
|
+
var MS_MINUTES = 60 * MS_SECONDS;
|
|
2180
|
+
var MS_HOURS = 60 * MS_MINUTES;
|
|
2239
2181
|
var Unit = {
|
|
2240
|
-
//
|
|
2241
|
-
|
|
2182
|
+
// General.
|
|
2183
|
+
Percent: createFormat({
|
|
2184
|
+
symbol: "%",
|
|
2185
|
+
quotient: 1 / 100,
|
|
2186
|
+
precision: 2
|
|
2187
|
+
}),
|
|
2188
|
+
Thousand: createFormat({
|
|
2189
|
+
symbol: "k",
|
|
2190
|
+
quotient: 1e3,
|
|
2191
|
+
precision: 2
|
|
2192
|
+
}),
|
|
2193
|
+
// Bytes (note KB vs KiB).
|
|
2194
|
+
Gigabyte: createFormat({
|
|
2195
|
+
symbol: "GB",
|
|
2196
|
+
quotient: 1e3 * 1e3 * 1e3,
|
|
2197
|
+
precision: 2
|
|
2198
|
+
}),
|
|
2199
|
+
Megabyte: createFormat({
|
|
2200
|
+
symbol: "MB",
|
|
2201
|
+
quotient: 1e3 * 1e3,
|
|
2202
|
+
precision: 2
|
|
2203
|
+
}),
|
|
2204
|
+
Kilobyte: createFormat({
|
|
2205
|
+
symbol: "KB",
|
|
2206
|
+
quotient: 1e3,
|
|
2207
|
+
precision: 2
|
|
2208
|
+
}),
|
|
2209
|
+
Byte: createFormat({
|
|
2210
|
+
symbol: "B",
|
|
2211
|
+
quotient: 1
|
|
2212
|
+
}),
|
|
2213
|
+
// Time.
|
|
2214
|
+
Hour: createFormat({
|
|
2242
2215
|
symbol: "h",
|
|
2243
|
-
quotient:
|
|
2216
|
+
quotient: MS_HOURS
|
|
2244
2217
|
}),
|
|
2245
|
-
Minute:
|
|
2218
|
+
Minute: createFormat({
|
|
2246
2219
|
symbol: "m",
|
|
2247
|
-
quotient:
|
|
2220
|
+
quotient: MS_MINUTES
|
|
2248
2221
|
}),
|
|
2249
|
-
Second:
|
|
2222
|
+
Second: createFormat({
|
|
2250
2223
|
symbol: "s",
|
|
2251
|
-
quotient:
|
|
2224
|
+
quotient: MS_SECONDS,
|
|
2225
|
+
precision: 1
|
|
2252
2226
|
}),
|
|
2253
|
-
Millisecond:
|
|
2227
|
+
Millisecond: createFormat({
|
|
2254
2228
|
symbol: "ms",
|
|
2255
2229
|
quotient: 1
|
|
2256
2230
|
}),
|
|
2257
2231
|
Duration: (n) => {
|
|
2258
|
-
const hours = Math.floor(n /
|
|
2259
|
-
const minutes = Math.floor(n %
|
|
2232
|
+
const hours = Math.floor(n / MS_HOURS);
|
|
2233
|
+
const minutes = Math.floor(n % MS_HOURS / MS_MINUTES);
|
|
2260
2234
|
if (hours) {
|
|
2261
|
-
|
|
2235
|
+
const formattedValue = minutes ? `${hours}h ${minutes}m` : `${hours}h`;
|
|
2236
|
+
return {
|
|
2237
|
+
unit: {
|
|
2238
|
+
symbol: "h",
|
|
2239
|
+
quotient: MS_HOURS
|
|
2240
|
+
},
|
|
2241
|
+
value: hours,
|
|
2242
|
+
formattedValue,
|
|
2243
|
+
toString: () => formattedValue
|
|
2244
|
+
};
|
|
2262
2245
|
}
|
|
2263
|
-
const seconds = Math.floor(n % (60 * 1e3) / 1e3);
|
|
2264
2246
|
if (minutes) {
|
|
2265
|
-
|
|
2247
|
+
const seconds2 = (n - MS_MINUTES * minutes) / MS_SECONDS;
|
|
2248
|
+
const formattedValue = seconds2 ? `${minutes}m ${seconds2}s` : `${minutes}m`;
|
|
2249
|
+
return {
|
|
2250
|
+
unit: {
|
|
2251
|
+
symbol: "m",
|
|
2252
|
+
quotient: MS_MINUTES
|
|
2253
|
+
},
|
|
2254
|
+
value: minutes,
|
|
2255
|
+
formattedValue,
|
|
2256
|
+
toString: () => formattedValue
|
|
2257
|
+
};
|
|
2266
2258
|
}
|
|
2259
|
+
const seconds = n >= MS_SECONDS;
|
|
2267
2260
|
if (seconds) {
|
|
2268
|
-
return
|
|
2261
|
+
return Unit.Second(n);
|
|
2269
2262
|
}
|
|
2270
|
-
return
|
|
2271
|
-
}
|
|
2272
|
-
// bytes (note KB via KiB).
|
|
2273
|
-
Gigabyte: Formatter({
|
|
2274
|
-
symbol: "GB",
|
|
2275
|
-
quotient: 1e3 * 1e3 * 1e3
|
|
2276
|
-
}),
|
|
2277
|
-
Megabyte: Formatter({
|
|
2278
|
-
symbol: "MB",
|
|
2279
|
-
quotient: 1e3 * 1e3
|
|
2280
|
-
}),
|
|
2281
|
-
Kilobyte: Formatter({
|
|
2282
|
-
symbol: "KB",
|
|
2283
|
-
quotient: 1e3
|
|
2284
|
-
}),
|
|
2285
|
-
// general.
|
|
2286
|
-
Thousand: Formatter({
|
|
2287
|
-
symbol: "k",
|
|
2288
|
-
quotient: 1e3
|
|
2289
|
-
}),
|
|
2290
|
-
Percent: Formatter({
|
|
2291
|
-
symbol: "%",
|
|
2292
|
-
quotient: 1 / 100
|
|
2293
|
-
})
|
|
2263
|
+
return Unit.Millisecond(n);
|
|
2264
|
+
}
|
|
2294
2265
|
};
|
|
2295
2266
|
|
|
2296
2267
|
// src/url.ts
|
|
@@ -2303,20 +2274,18 @@ var createUrl = (url, search) => {
|
|
|
2303
2274
|
};
|
|
2304
2275
|
|
|
2305
2276
|
// src/weak.ts
|
|
2306
|
-
function _define_property10(obj, key, value) {
|
|
2307
|
-
if (key in obj) {
|
|
2308
|
-
Object.defineProperty(obj, key, {
|
|
2309
|
-
value,
|
|
2310
|
-
enumerable: true,
|
|
2311
|
-
configurable: true,
|
|
2312
|
-
writable: true
|
|
2313
|
-
});
|
|
2314
|
-
} else {
|
|
2315
|
-
obj[key] = value;
|
|
2316
|
-
}
|
|
2317
|
-
return obj;
|
|
2318
|
-
}
|
|
2319
2277
|
var WeakDictionary = class {
|
|
2278
|
+
_internal = /* @__PURE__ */ new Map();
|
|
2279
|
+
_finalization = new FinalizationRegistry((cleanUpCallback) => {
|
|
2280
|
+
cleanUpCallback();
|
|
2281
|
+
});
|
|
2282
|
+
constructor(entries2) {
|
|
2283
|
+
this._internal = new Map(entries2?.map(([key, value]) => [
|
|
2284
|
+
key,
|
|
2285
|
+
new WeakRef(value)
|
|
2286
|
+
]));
|
|
2287
|
+
entries2?.forEach(([key, value]) => this._register(key, value));
|
|
2288
|
+
}
|
|
2320
2289
|
*entries() {
|
|
2321
2290
|
for (const [key, value] of this._internal) {
|
|
2322
2291
|
yield [
|
|
@@ -2397,16 +2366,57 @@ var WeakDictionary = class {
|
|
|
2397
2366
|
_unregister(value) {
|
|
2398
2367
|
this._finalization.unregister(value);
|
|
2399
2368
|
}
|
|
2400
|
-
|
|
2401
|
-
|
|
2402
|
-
|
|
2403
|
-
|
|
2404
|
-
|
|
2405
|
-
|
|
2406
|
-
|
|
2407
|
-
|
|
2408
|
-
|
|
2409
|
-
|
|
2369
|
+
};
|
|
2370
|
+
|
|
2371
|
+
// src/error-format.ts
|
|
2372
|
+
var formatErrorWithCauses = (error) => {
|
|
2373
|
+
const lines = [];
|
|
2374
|
+
let current = error;
|
|
2375
|
+
let level = 0;
|
|
2376
|
+
while (current) {
|
|
2377
|
+
const prefix = level === 0 ? "" : `Caused by: `;
|
|
2378
|
+
lines.push(prefix + (current.stack ?? String(current)));
|
|
2379
|
+
if (!(current.cause instanceof Error)) break;
|
|
2380
|
+
current = current.cause;
|
|
2381
|
+
level += 1;
|
|
2382
|
+
}
|
|
2383
|
+
return lines.join("\n\n");
|
|
2384
|
+
};
|
|
2385
|
+
|
|
2386
|
+
// src/retry.ts
|
|
2387
|
+
var DEFAULT_RETRY_OPTIONS = {
|
|
2388
|
+
count: 3,
|
|
2389
|
+
delayMs: 100,
|
|
2390
|
+
exponent: 2,
|
|
2391
|
+
retryOnError: async () => true,
|
|
2392
|
+
retryOnValue: async () => false
|
|
2393
|
+
};
|
|
2394
|
+
var retry = async (options, cb) => {
|
|
2395
|
+
const fullOptions = {
|
|
2396
|
+
...DEFAULT_RETRY_OPTIONS,
|
|
2397
|
+
...options
|
|
2398
|
+
};
|
|
2399
|
+
let numRetries = 0, currentDelay = fullOptions.delayMs;
|
|
2400
|
+
while (true) {
|
|
2401
|
+
let result;
|
|
2402
|
+
try {
|
|
2403
|
+
result = await cb();
|
|
2404
|
+
} catch (err) {
|
|
2405
|
+
if (numRetries > fullOptions.count || !await fullOptions.retryOnError(err)) {
|
|
2406
|
+
throw err;
|
|
2407
|
+
}
|
|
2408
|
+
await new Promise((resolve) => setTimeout(resolve, currentDelay));
|
|
2409
|
+
currentDelay *= fullOptions.exponent;
|
|
2410
|
+
numRetries++;
|
|
2411
|
+
continue;
|
|
2412
|
+
}
|
|
2413
|
+
if (!await fullOptions.retryOnValue(result)) {
|
|
2414
|
+
return result;
|
|
2415
|
+
}
|
|
2416
|
+
await new Promise((resolve) => setTimeout(resolve, currentDelay));
|
|
2417
|
+
currentDelay *= fullOptions.exponent;
|
|
2418
|
+
numRetries++;
|
|
2419
|
+
continue;
|
|
2410
2420
|
}
|
|
2411
2421
|
};
|
|
2412
2422
|
export {
|
|
@@ -2418,12 +2428,14 @@ export {
|
|
|
2418
2428
|
ComplexSet,
|
|
2419
2429
|
HumanHasher,
|
|
2420
2430
|
MapEntry,
|
|
2431
|
+
SKIP,
|
|
2421
2432
|
SlidingWindowSummary,
|
|
2422
2433
|
Tracer,
|
|
2423
2434
|
Unit,
|
|
2424
2435
|
WeakDictionary,
|
|
2425
2436
|
accessBy,
|
|
2426
2437
|
arrayMove,
|
|
2438
|
+
arraySwap,
|
|
2427
2439
|
arrayToBuffer,
|
|
2428
2440
|
arrayToHex,
|
|
2429
2441
|
arrayToString,
|
|
@@ -2435,18 +2447,22 @@ export {
|
|
|
2435
2447
|
chunkArray,
|
|
2436
2448
|
clamp,
|
|
2437
2449
|
clearUndefined,
|
|
2450
|
+
coerceArray,
|
|
2438
2451
|
compareMulti,
|
|
2439
2452
|
compareObject,
|
|
2440
2453
|
compareScalar,
|
|
2441
2454
|
compareString,
|
|
2442
2455
|
createBinder,
|
|
2443
2456
|
createBucketReducer,
|
|
2457
|
+
createFilename,
|
|
2444
2458
|
createGroupReducer,
|
|
2459
|
+
createReplacer,
|
|
2445
2460
|
createSetDispatch,
|
|
2446
2461
|
createUrl,
|
|
2447
2462
|
decamelize,
|
|
2448
2463
|
deepMapValues,
|
|
2449
2464
|
deepMapValuesAsync,
|
|
2465
|
+
defaultFilter,
|
|
2450
2466
|
defaultMap,
|
|
2451
2467
|
defer,
|
|
2452
2468
|
deferAsync,
|
|
@@ -2458,7 +2474,7 @@ export {
|
|
|
2458
2474
|
entry,
|
|
2459
2475
|
exponentialBackoffInterval,
|
|
2460
2476
|
forEachAsync,
|
|
2461
|
-
|
|
2477
|
+
formatErrorWithCauses,
|
|
2462
2478
|
getAsyncProviderValue,
|
|
2463
2479
|
getDate,
|
|
2464
2480
|
getDebugName,
|
|
@@ -2478,8 +2494,12 @@ export {
|
|
|
2478
2494
|
intersectBy,
|
|
2479
2495
|
intersection,
|
|
2480
2496
|
iosCheck,
|
|
2497
|
+
isBun,
|
|
2498
|
+
isMobile,
|
|
2499
|
+
isMobileOrTablet,
|
|
2481
2500
|
isNode,
|
|
2482
2501
|
isNonNullable,
|
|
2502
|
+
isTauri,
|
|
2483
2503
|
isTruthy,
|
|
2484
2504
|
joinTables,
|
|
2485
2505
|
jsonKeyReplacer,
|
|
@@ -2495,7 +2515,6 @@ export {
|
|
|
2495
2515
|
makeSet,
|
|
2496
2516
|
mapValues,
|
|
2497
2517
|
median,
|
|
2498
|
-
mobileAndTabletCheck,
|
|
2499
2518
|
numericalValues,
|
|
2500
2519
|
omit,
|
|
2501
2520
|
orderKeys,
|
|
@@ -2511,13 +2530,15 @@ export {
|
|
|
2511
2530
|
removeBy,
|
|
2512
2531
|
removeProperties,
|
|
2513
2532
|
removeUndefinedProperties,
|
|
2533
|
+
retry,
|
|
2514
2534
|
safariCheck,
|
|
2515
2535
|
safeAwaitAll,
|
|
2516
2536
|
safeInstanceof,
|
|
2517
2537
|
safeParseFloat,
|
|
2518
2538
|
safeParseInt,
|
|
2519
2539
|
safeParseJson,
|
|
2520
|
-
|
|
2540
|
+
safeStringify,
|
|
2541
|
+
safeUrl,
|
|
2521
2542
|
setDeep,
|
|
2522
2543
|
sortKeys,
|
|
2523
2544
|
stringToArray,
|