@dxos/util 0.8.2-main.36232bc → 0.8.2-main.4c6cf53

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/dist/lib/browser/index.mjs +176 -143
  2. package/dist/lib/browser/index.mjs.map +4 -4
  3. package/dist/lib/browser/meta.json +1 -1
  4. package/dist/lib/node/index.cjs +162 -127
  5. package/dist/lib/node/index.cjs.map +4 -4
  6. package/dist/lib/node/meta.json +1 -1
  7. package/dist/lib/node-esm/index.mjs +176 -143
  8. package/dist/lib/node-esm/index.mjs.map +4 -4
  9. package/dist/lib/node-esm/meta.json +1 -1
  10. package/dist/types/src/array-to-hex.d.ts.map +1 -1
  11. package/dist/types/src/array.d.ts.map +1 -1
  12. package/dist/types/src/binder.d.ts.map +1 -1
  13. package/dist/types/src/bitfield.d.ts +1 -1
  14. package/dist/types/src/bitfield.d.ts.map +1 -1
  15. package/dist/types/src/callback-collection.d.ts.map +1 -1
  16. package/dist/types/src/callback.d.ts.map +1 -1
  17. package/dist/types/src/case.d.ts.map +1 -1
  18. package/dist/types/src/chunk-array.d.ts.map +1 -1
  19. package/dist/types/src/clear-undefined.d.ts +5 -0
  20. package/dist/types/src/clear-undefined.d.ts.map +1 -0
  21. package/dist/types/src/complex.d.ts.map +1 -1
  22. package/dist/types/src/deep.d.ts +3 -2
  23. package/dist/types/src/deep.d.ts.map +1 -1
  24. package/dist/types/src/defer-function.d.ts.map +1 -1
  25. package/dist/types/src/defer.d.ts.map +1 -1
  26. package/dist/types/src/di-key.d.ts +3 -3
  27. package/dist/types/src/di-key.d.ts.map +1 -1
  28. package/dist/types/src/entry.d.ts.map +1 -1
  29. package/dist/types/src/first-two-chars.d.ts.map +1 -1
  30. package/dist/types/src/for-each-async.d.ts.map +1 -1
  31. package/dist/types/src/human-hash.d.ts.map +1 -1
  32. package/dist/types/src/index.d.ts +12 -10
  33. package/dist/types/src/index.d.ts.map +1 -1
  34. package/dist/types/src/instance-id.d.ts.map +1 -1
  35. package/dist/types/src/interval.d.ts.map +1 -1
  36. package/dist/types/src/join-tables.d.ts.map +1 -1
  37. package/dist/types/src/json.d.ts.map +1 -1
  38. package/dist/types/src/map-values.d.ts +5 -0
  39. package/dist/types/src/map-values.d.ts.map +1 -1
  40. package/dist/types/src/map.d.ts.map +1 -1
  41. package/dist/types/src/object.d.ts +3 -0
  42. package/dist/types/src/object.d.ts.map +1 -0
  43. package/dist/types/src/order-keys.d.ts.map +1 -1
  44. package/dist/types/src/order.d.ts.map +1 -1
  45. package/dist/types/src/pick.d.ts.map +1 -1
  46. package/dist/types/src/position.d.ts +2 -3
  47. package/dist/types/src/position.d.ts.map +1 -1
  48. package/dist/types/src/random.d.ts.map +1 -1
  49. package/dist/types/src/range.d.ts.map +1 -1
  50. package/dist/types/src/reducers.d.ts.map +1 -1
  51. package/dist/types/src/remove-undefined-keys.d.ts.map +1 -1
  52. package/dist/types/src/safe-await.d.ts.map +1 -1
  53. package/dist/types/src/safe-instanceof.d.ts.map +1 -1
  54. package/dist/types/src/safe-parse.d.ts.map +1 -1
  55. package/dist/types/src/sliding-window-summary.d.ts.map +1 -1
  56. package/dist/types/src/sort.d.ts.map +1 -1
  57. package/dist/types/src/string.d.ts.map +1 -1
  58. package/dist/types/src/sum.d.ts.map +1 -1
  59. package/dist/types/src/throw-unhandled-error.d.ts.map +1 -1
  60. package/dist/types/src/to-fallback.d.ts.map +1 -1
  61. package/dist/types/src/tracer.d.ts.map +1 -1
  62. package/dist/types/src/tree.d.ts.map +1 -1
  63. package/dist/types/src/types.d.ts.map +1 -1
  64. package/dist/types/src/uint8array.d.ts.map +1 -1
  65. package/dist/types/tsconfig.tsbuildinfo +1 -1
  66. package/package.json +10 -6
  67. package/src/bitfield.ts +2 -2
  68. package/src/callback-collection.ts +3 -3
  69. package/src/callback.ts +2 -2
  70. package/src/clear-undefined.ts +15 -0
  71. package/src/complex.ts +6 -6
  72. package/src/deep.ts +6 -2
  73. package/src/defer.ts +2 -2
  74. package/src/di-key.ts +2 -2
  75. package/src/human-hash.ts +2 -2
  76. package/src/index.ts +12 -10
  77. package/src/map-values.ts +14 -0
  78. package/src/object.ts +7 -0
  79. package/src/position.ts +12 -11
  80. package/src/sliding-window-summary.ts +3 -3
  81. package/src/tracer.ts +6 -6
  82. package/src/weak.ts +2 -2
@@ -1,5 +1,20 @@
1
1
  import "@dxos/node-std/globals";
2
2
 
3
+ // packages/common/util/src/array-to-hex.ts
4
+ var byteToHex = [];
5
+ for (let n = 0; n <= 255; ++n) {
6
+ const hexOctet = n.toString(16).padStart(2, "0");
7
+ byteToHex.push(hexOctet);
8
+ }
9
+ var arrayToHex = (buf) => {
10
+ const buff = new Uint8Array(buf);
11
+ const hexOctets = [];
12
+ for (let i = 0; i < buff.length; ++i) {
13
+ hexOctets.push(byteToHex[buff[i]]);
14
+ }
15
+ return hexOctets.join("");
16
+ };
17
+
3
18
  // packages/common/util/src/array.ts
4
19
  var diff = (previous, next, comparator) => {
5
20
  const remaining = [
@@ -83,21 +98,6 @@ var intersectBy = (arrays, selector) => {
83
98
  });
84
99
  };
85
100
 
86
- // packages/common/util/src/array-to-hex.ts
87
- var byteToHex = [];
88
- for (let n = 0; n <= 255; ++n) {
89
- const hexOctet = n.toString(16).padStart(2, "0");
90
- byteToHex.push(hexOctet);
91
- }
92
- var arrayToHex = (buf) => {
93
- const buff = new Uint8Array(buf);
94
- const hexOctets = [];
95
- for (let i = 0; i < buff.length; ++i) {
96
- hexOctets.push(byteToHex[buff[i]]);
97
- }
98
- return hexOctets.join("");
99
- };
100
-
101
101
  // packages/common/util/src/binder.ts
102
102
  import util from "@dxos/node-std/util";
103
103
  var createBinder = (obj) => ({
@@ -175,6 +175,30 @@ var BitField = class _BitField {
175
175
  }
176
176
  };
177
177
 
178
+ // packages/common/util/src/callback-collection.ts
179
+ var CallbackCollection = class {
180
+ #callbacks = [];
181
+ append(callback) {
182
+ this.#callbacks.push(callback);
183
+ }
184
+ prepend(callback) {
185
+ this.#callbacks.unshift(callback);
186
+ }
187
+ remove(callback) {
188
+ this.#callbacks = this.#callbacks.filter((c) => c !== callback);
189
+ }
190
+ callParallel(...args) {
191
+ return Promise.all(this.#callbacks.map((callback) => callback(...args)));
192
+ }
193
+ async callSerial(...args) {
194
+ const results = [];
195
+ for (const callback of this.#callbacks) {
196
+ results.push(await callback(...args));
197
+ }
198
+ return results;
199
+ }
200
+ };
201
+
178
202
  // packages/common/util/src/callback.ts
179
203
  import { invariant as invariant2 } from "@dxos/invariant";
180
204
  var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/common/util/src/callback.ts";
@@ -227,30 +251,6 @@ var createSetDispatch = ({ handlers }) => {
227
251
  });
228
252
  };
229
253
 
230
- // packages/common/util/src/callback-collection.ts
231
- var CallbackCollection = class {
232
- #callbacks = [];
233
- append(callback) {
234
- this.#callbacks.push(callback);
235
- }
236
- prepend(callback) {
237
- this.#callbacks.unshift(callback);
238
- }
239
- remove(callback) {
240
- this.#callbacks = this.#callbacks.filter((c) => c !== callback);
241
- }
242
- callParallel(...args) {
243
- return Promise.all(this.#callbacks.map((callback) => callback(...args)));
244
- }
245
- async callSerial(...args) {
246
- const results = [];
247
- for (const callback of this.#callbacks) {
248
- results.push(await callback(...args));
249
- }
250
- return results;
251
- }
252
- };
253
-
254
254
  // packages/common/util/src/case.ts
255
255
  var LOW_DASH = "_".codePointAt(0);
256
256
  var HI_DASH = "-".codePointAt(0);
@@ -352,6 +352,19 @@ var CircularBuffer = class {
352
352
  }
353
353
  };
354
354
 
355
+ // packages/common/util/src/clear-undefined.ts
356
+ var clearUndefined = (obj) => {
357
+ for (const key of [
358
+ ...Object.getOwnPropertyNames(obj),
359
+ ...Object.getOwnPropertySymbols(obj)
360
+ ]) {
361
+ if (obj[key] === void 0) {
362
+ delete obj[key];
363
+ }
364
+ }
365
+ return obj;
366
+ };
367
+
355
368
  // packages/common/util/src/complex.ts
356
369
  import { inspect } from "@dxos/node-std/util";
357
370
  import { inspectObject, raise } from "@dxos/debug";
@@ -451,12 +464,12 @@ var makeSet = (projection) => {
451
464
  };
452
465
  var ComplexMap = class _ComplexMap {
453
466
  // prettier-ignore
454
- constructor(_keyProjection, entries) {
467
+ constructor(_keyProjection, entries2) {
455
468
  this._keyProjection = _keyProjection;
456
469
  this._keys = /* @__PURE__ */ new Map();
457
470
  this._values = /* @__PURE__ */ new Map();
458
- if (entries) {
459
- for (const [key, value] of entries) {
471
+ if (entries2) {
472
+ for (const [key, value] of entries2) {
460
473
  this.set(key, value);
461
474
  }
462
475
  }
@@ -533,11 +546,48 @@ var ComplexMap = class _ComplexMap {
533
546
  }
534
547
  };
535
548
  var makeMap = (keyProjection) => class BoundComplexMap extends ComplexMap {
536
- constructor(entries) {
537
- super(keyProjection, entries);
549
+ constructor(entries2) {
550
+ super(keyProjection, entries2);
551
+ }
552
+ };
553
+
554
+ // packages/common/util/src/deep.ts
555
+ import get from "lodash.get";
556
+ import set from "lodash.set";
557
+ import { invariant as invariant4 } from "@dxos/invariant";
558
+ var __dxlog_file4 = "/home/runner/work/dxos/dxos/packages/common/util/src/deep.ts";
559
+ var setDeep = (obj, path, value) => {
560
+ invariant4(path.length > 0, void 0, {
561
+ F: __dxlog_file4,
562
+ L: 18,
563
+ S: void 0,
564
+ A: [
565
+ "path.length > 0",
566
+ ""
567
+ ]
568
+ });
569
+ let parent = obj;
570
+ for (const key of path.slice(0, -1)) {
571
+ if (parent[key] === void 0) {
572
+ const isArrayIndex = !isNaN(Number(key));
573
+ parent[key] = isArrayIndex ? [] : {};
574
+ }
575
+ parent = parent[key];
576
+ }
577
+ parent[path.at(-1)] = value;
578
+ return obj;
579
+ };
580
+ var getDeep = (obj, path) => {
581
+ let parent = obj;
582
+ for (const key of path) {
583
+ parent = parent?.[key];
538
584
  }
585
+ return parent;
539
586
  };
540
587
 
588
+ // packages/common/util/src/defer-function.ts
589
+ var deferFunction = (fnProvider) => (...args) => fnProvider()(...args);
590
+
541
591
  // packages/common/util/src/explicit-resource-management-polyfill.ts
542
592
  Symbol.dispose ??= Symbol("Symbol.dispose");
543
593
  Symbol.asyncDispose ??= Symbol("Symbol.asyncDispose");
@@ -571,41 +621,6 @@ var DeferAsyncGuard = class {
571
621
  }
572
622
  };
573
623
 
574
- // packages/common/util/src/defer-function.ts
575
- var deferFunction = (fnProvider) => (...args) => fnProvider()(...args);
576
-
577
- // packages/common/util/src/deep.ts
578
- import { invariant as invariant4 } from "@dxos/invariant";
579
- var __dxlog_file4 = "/home/runner/work/dxos/dxos/packages/common/util/src/deep.ts";
580
- var setDeep = (obj, path, value) => {
581
- invariant4(path.length > 0, void 0, {
582
- F: __dxlog_file4,
583
- L: 12,
584
- S: void 0,
585
- A: [
586
- "path.length > 0",
587
- ""
588
- ]
589
- });
590
- let parent = obj;
591
- for (const key of path.slice(0, -1)) {
592
- if (parent[key] === void 0) {
593
- const isArrayIndex = !isNaN(Number(key));
594
- parent[key] = isArrayIndex ? [] : {};
595
- }
596
- parent = parent[key];
597
- }
598
- parent[path.at(-1)] = value;
599
- return obj;
600
- };
601
- var getDeep = (obj, path) => {
602
- let parent = obj;
603
- for (const key of path) {
604
- parent = parent?.[key];
605
- }
606
- return parent;
607
- };
608
-
609
624
  // packages/common/util/src/entry.ts
610
625
  var entry = (map, key) => new MapEntry(map, key);
611
626
  var MapEntry = class {
@@ -995,18 +1010,6 @@ var humanize = (value) => {
995
1010
  return hasher.humanize(value);
996
1011
  };
997
1012
 
998
- // packages/common/util/src/interval.ts
999
- var exponentialBackoffInterval = (cb, initialInterval) => {
1000
- let interval = initialInterval;
1001
- const repeat = () => {
1002
- cb();
1003
- interval *= 2;
1004
- timeoutId = setTimeout(repeat, interval);
1005
- };
1006
- let timeoutId = setTimeout(repeat, interval);
1007
- return () => clearTimeout(timeoutId);
1008
- };
1009
-
1010
1013
  // packages/common/util/src/map.ts
1011
1014
  var defaultMap = (map, key, def) => {
1012
1015
  let value = map.get(key);
@@ -1041,6 +1044,18 @@ var getDebugName = (instance) => {
1041
1044
  return `${prototype.constructor?.name ?? "Object"}#${getPrototypeSpecificInstanceId(instance)}`;
1042
1045
  };
1043
1046
 
1047
+ // packages/common/util/src/interval.ts
1048
+ var exponentialBackoffInterval = (cb, initialInterval) => {
1049
+ let interval = initialInterval;
1050
+ const repeat = () => {
1051
+ cb();
1052
+ interval *= 2;
1053
+ timeoutId = setTimeout(repeat, interval);
1054
+ };
1055
+ let timeoutId = setTimeout(repeat, interval);
1056
+ return () => clearTimeout(timeoutId);
1057
+ };
1058
+
1044
1059
  // packages/common/util/src/join-tables.ts
1045
1060
  var joinTables = (leftColumn, rightColumn, left, right) => {
1046
1061
  const map = /* @__PURE__ */ new Map();
@@ -1266,6 +1281,35 @@ var DeepMapperAsync = class {
1266
1281
  return this._fn(value, this._recurse, key);
1267
1282
  }
1268
1283
  };
1284
+ var visitValues = (object, visitor) => {
1285
+ if (Array.isArray(object)) {
1286
+ object.forEach((item, index) => visitor(item, index));
1287
+ } else if (typeof object === "object" && object !== null) {
1288
+ for (const [key, value] of Object.entries(object)) {
1289
+ visitor(value, key);
1290
+ }
1291
+ }
1292
+ };
1293
+
1294
+ // packages/common/util/src/object.ts
1295
+ var keys = (obj) => Object.keys(obj);
1296
+ var entries = (obj) => Object.entries(obj);
1297
+
1298
+ // packages/common/util/src/order-keys.ts
1299
+ var orderKeys = (obj, order) => {
1300
+ const ordered = {};
1301
+ for (const key of order) {
1302
+ if (key in obj) {
1303
+ ordered[key] = obj[key];
1304
+ }
1305
+ }
1306
+ for (const key in obj) {
1307
+ if (!(key in ordered)) {
1308
+ ordered[key] = obj[key];
1309
+ }
1310
+ }
1311
+ return ordered;
1312
+ };
1269
1313
 
1270
1314
  // packages/common/util/src/order.ts
1271
1315
  var inferObjectOrder = (objectMap, order = []) => {
@@ -1294,25 +1338,9 @@ var inferRecordOrder = (objectMap, order = []) => {
1294
1338
  }, {}), objectMap);
1295
1339
  };
1296
1340
 
1297
- // packages/common/util/src/order-keys.ts
1298
- var orderKeys = (obj, order) => {
1299
- const ordered = {};
1300
- for (const key of order) {
1301
- if (key in obj) {
1302
- ordered[key] = obj[key];
1303
- }
1304
- }
1305
- for (const key in obj) {
1306
- if (!(key in ordered)) {
1307
- ordered[key] = obj[key];
1308
- }
1309
- }
1310
- return ordered;
1311
- };
1312
-
1313
1341
  // packages/common/util/src/pick.ts
1314
- var pick = (obj, keys) => {
1315
- return keys.reduce((result, key) => {
1342
+ var pick = (obj, keys2) => {
1343
+ return keys2.reduce((result, key) => {
1316
1344
  if (obj && key in obj) {
1317
1345
  result[key] = obj[key];
1318
1346
  }
@@ -1328,11 +1356,11 @@ var pickBy = (obj, predicate) => {
1328
1356
  }
1329
1357
  return result;
1330
1358
  };
1331
- var omit = (obj, keys) => {
1359
+ var omit = (obj, keys2) => {
1332
1360
  const result = {
1333
1361
  ...obj
1334
1362
  };
1335
- keys.forEach((key) => {
1363
+ keys2.forEach((key) => {
1336
1364
  delete result[key];
1337
1365
  });
1338
1366
  return result;
@@ -1380,17 +1408,16 @@ var getHostPlatform = () => {
1380
1408
  };
1381
1409
 
1382
1410
  // packages/common/util/src/position.ts
1383
- var byPosition = (a, b) => {
1384
- const aPosition = a.position ?? "static";
1385
- const bPosition = b.position ?? "static";
1386
- if (aPosition === bPosition) {
1411
+ var byPosition = ({ position: a = "static" }, { position: b = "static" }) => {
1412
+ if (a === b) {
1387
1413
  return 0;
1388
- } else if (aPosition === "hoist" || bPosition === "fallback") {
1414
+ } else if (a === "hoist" || b === "fallback") {
1389
1415
  return -1;
1390
- } else if (bPosition === "hoist" || aPosition === "fallback") {
1416
+ } else if (b === "hoist" || a === "fallback") {
1391
1417
  return 1;
1418
+ } else {
1419
+ return 0;
1392
1420
  }
1393
- return 0;
1394
1421
  };
1395
1422
 
1396
1423
  // packages/common/util/src/random.ts
@@ -1498,6 +1525,19 @@ var createBucketReducer = (period) => ({
1498
1525
  }
1499
1526
  });
1500
1527
 
1528
+ // packages/common/util/src/remove-undefined-keys.ts
1529
+ var removeUndefinedProperties = (object) => {
1530
+ for (const prop of [
1531
+ ...Object.getOwnPropertyNames(object),
1532
+ ...Object.getOwnPropertySymbols(object)
1533
+ ]) {
1534
+ if (object[prop] === void 0) {
1535
+ delete object[prop];
1536
+ }
1537
+ }
1538
+ return object;
1539
+ };
1540
+
1501
1541
  // packages/common/util/src/safe-await.ts
1502
1542
  var safeAwaitAll = async (source, taskFactory, onError) => {
1503
1543
  const failedItems = [];
@@ -1632,6 +1672,14 @@ var compareMulti = (sorters) => (a, b) => {
1632
1672
  return sort();
1633
1673
  };
1634
1674
 
1675
+ // packages/common/util/src/string.ts
1676
+ var capitalize = (str) => {
1677
+ if (str.length === 0) {
1678
+ return "";
1679
+ }
1680
+ return str.charAt(0).toUpperCase() + str.slice(1);
1681
+ };
1682
+
1635
1683
  // packages/common/util/src/sum.ts
1636
1684
  var sum = (values) => values.reduce((a, b) => a + b, 0);
1637
1685
 
@@ -1966,16 +2014,16 @@ var arrayMove = (array, from, to) => {
1966
2014
 
1967
2015
  // packages/common/util/src/weak.ts
1968
2016
  var WeakDictionary = class {
1969
- constructor(entries) {
2017
+ constructor(entries2) {
1970
2018
  this._internal = /* @__PURE__ */ new Map();
1971
2019
  this._finalization = new FinalizationRegistry((cleanUpCallback) => {
1972
2020
  cleanUpCallback();
1973
2021
  });
1974
- this._internal = new Map(entries?.map(([key, value]) => [
2022
+ this._internal = new Map(entries2?.map(([key, value]) => [
1975
2023
  key,
1976
2024
  new WeakRef(value)
1977
2025
  ]));
1978
- entries?.forEach(([key, value]) => this._register(key, value));
2026
+ entries2?.forEach(([key, value]) => this._register(key, value));
1979
2027
  }
1980
2028
  *entries() {
1981
2029
  for (const [key, value] of this._internal) {
@@ -2058,27 +2106,6 @@ var WeakDictionary = class {
2058
2106
  this._finalization.unregister(value);
2059
2107
  }
2060
2108
  };
2061
-
2062
- // packages/common/util/src/string.ts
2063
- var capitalize = (str) => {
2064
- if (str.length === 0) {
2065
- return "";
2066
- }
2067
- return str.charAt(0).toUpperCase() + str.slice(1);
2068
- };
2069
-
2070
- // packages/common/util/src/remove-undefined-keys.ts
2071
- var removeUndefinedProperties = (object) => {
2072
- for (const prop of [
2073
- ...Object.getOwnPropertyNames(object),
2074
- ...Object.getOwnPropertySymbols(object)
2075
- ]) {
2076
- if (object[prop] === void 0) {
2077
- delete object[prop];
2078
- }
2079
- }
2080
- return object;
2081
- };
2082
2109
  export {
2083
2110
  BitField,
2084
2111
  Callback,
@@ -2102,6 +2129,7 @@ export {
2102
2129
  capitalize,
2103
2130
  chunkArray,
2104
2131
  clamp,
2132
+ clearUndefined,
2105
2133
  compareMulti,
2106
2134
  compareObject,
2107
2135
  compareScalar,
@@ -2120,9 +2148,11 @@ export {
2120
2148
  diff,
2121
2149
  distinctBy,
2122
2150
  doAsync,
2151
+ entries,
2123
2152
  entry,
2124
2153
  exponentialBackoffInterval,
2125
2154
  forEachAsync,
2155
+ get,
2126
2156
  getAsyncProviderValue,
2127
2157
  getDate,
2128
2158
  getDebugName,
@@ -2154,6 +2184,7 @@ export {
2154
2184
  keyToEmoji,
2155
2185
  keyToFallback,
2156
2186
  keyToHue,
2187
+ keys,
2157
2188
  makeMap,
2158
2189
  makeSet,
2159
2190
  mapValues,
@@ -2179,6 +2210,7 @@ export {
2179
2210
  safeParseFloat,
2180
2211
  safeParseInt,
2181
2212
  safeParseJson,
2213
+ set,
2182
2214
  setDeep,
2183
2215
  sortKeys,
2184
2216
  stringToArray,
@@ -2189,6 +2221,7 @@ export {
2189
2221
  toEmoji,
2190
2222
  toFallback,
2191
2223
  toHue,
2192
- tracer
2224
+ tracer,
2225
+ visitValues
2193
2226
  };
2194
2227
  //# sourceMappingURL=index.mjs.map