@dxos/util 0.8.1 → 0.8.2-main.10c050d

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 (84) hide show
  1. package/dist/lib/browser/index.mjs +197 -141
  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 +184 -125
  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 +197 -141
  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 +8 -0
  12. package/dist/types/src/array.d.ts.map +1 -1
  13. package/dist/types/src/binder.d.ts.map +1 -1
  14. package/dist/types/src/bitfield.d.ts +1 -1
  15. package/dist/types/src/bitfield.d.ts.map +1 -1
  16. package/dist/types/src/callback-collection.d.ts.map +1 -1
  17. package/dist/types/src/callback.d.ts.map +1 -1
  18. package/dist/types/src/case.d.ts.map +1 -1
  19. package/dist/types/src/chunk-array.d.ts.map +1 -1
  20. package/dist/types/src/clear-undefined.d.ts +5 -0
  21. package/dist/types/src/clear-undefined.d.ts.map +1 -0
  22. package/dist/types/src/complex.d.ts.map +1 -1
  23. package/dist/types/src/deep.d.ts +3 -2
  24. package/dist/types/src/deep.d.ts.map +1 -1
  25. package/dist/types/src/defer-function.d.ts.map +1 -1
  26. package/dist/types/src/defer.d.ts.map +1 -1
  27. package/dist/types/src/di-key.d.ts +3 -3
  28. package/dist/types/src/di-key.d.ts.map +1 -1
  29. package/dist/types/src/entry.d.ts.map +1 -1
  30. package/dist/types/src/first-two-chars.d.ts.map +1 -1
  31. package/dist/types/src/for-each-async.d.ts.map +1 -1
  32. package/dist/types/src/human-hash.d.ts.map +1 -1
  33. package/dist/types/src/index.d.ts +12 -10
  34. package/dist/types/src/index.d.ts.map +1 -1
  35. package/dist/types/src/instance-id.d.ts.map +1 -1
  36. package/dist/types/src/interval.d.ts.map +1 -1
  37. package/dist/types/src/join-tables.d.ts.map +1 -1
  38. package/dist/types/src/json.d.ts.map +1 -1
  39. package/dist/types/src/map-values.d.ts +5 -0
  40. package/dist/types/src/map-values.d.ts.map +1 -1
  41. package/dist/types/src/map.d.ts.map +1 -1
  42. package/dist/types/src/object.d.ts +3 -0
  43. package/dist/types/src/object.d.ts.map +1 -0
  44. package/dist/types/src/order-keys.d.ts.map +1 -1
  45. package/dist/types/src/order.d.ts.map +1 -1
  46. package/dist/types/src/pick.d.ts.map +1 -1
  47. package/dist/types/src/position.d.ts +2 -3
  48. package/dist/types/src/position.d.ts.map +1 -1
  49. package/dist/types/src/random.d.ts.map +1 -1
  50. package/dist/types/src/range.d.ts.map +1 -1
  51. package/dist/types/src/reducers.d.ts.map +1 -1
  52. package/dist/types/src/remove-undefined-keys.d.ts.map +1 -1
  53. package/dist/types/src/safe-await.d.ts.map +1 -1
  54. package/dist/types/src/safe-instanceof.d.ts.map +1 -1
  55. package/dist/types/src/safe-parse.d.ts.map +1 -1
  56. package/dist/types/src/sliding-window-summary.d.ts.map +1 -1
  57. package/dist/types/src/sort.d.ts.map +1 -1
  58. package/dist/types/src/string.d.ts.map +1 -1
  59. package/dist/types/src/sum.d.ts.map +1 -1
  60. package/dist/types/src/throw-unhandled-error.d.ts.map +1 -1
  61. package/dist/types/src/to-fallback.d.ts.map +1 -1
  62. package/dist/types/src/tracer.d.ts.map +1 -1
  63. package/dist/types/src/tree.d.ts.map +1 -1
  64. package/dist/types/src/types.d.ts.map +1 -1
  65. package/dist/types/src/uint8array.d.ts.map +1 -1
  66. package/dist/types/tsconfig.tsbuildinfo +1 -1
  67. package/package.json +10 -6
  68. package/src/array.ts +34 -0
  69. package/src/bitfield.ts +2 -2
  70. package/src/callback-collection.ts +3 -3
  71. package/src/callback.ts +2 -2
  72. package/src/clear-undefined.ts +15 -0
  73. package/src/complex.ts +6 -6
  74. package/src/deep.ts +6 -2
  75. package/src/defer.ts +2 -2
  76. package/src/di-key.ts +2 -2
  77. package/src/human-hash.ts +2 -2
  78. package/src/index.ts +12 -10
  79. package/src/map-values.ts +14 -0
  80. package/src/object.ts +7 -0
  81. package/src/position.ts +12 -11
  82. package/src/sliding-window-summary.ts +3 -3
  83. package/src/tracer.ts +6 -6
  84. 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 = [
@@ -60,20 +75,27 @@ var partition = (array, guard) => {
60
75
  []
61
76
  ]);
62
77
  };
63
-
64
- // packages/common/util/src/array-to-hex.ts
65
- var byteToHex = [];
66
- for (let n = 0; n <= 255; ++n) {
67
- const hexOctet = n.toString(16).padStart(2, "0");
68
- byteToHex.push(hexOctet);
69
- }
70
- var arrayToHex = (buf) => {
71
- const buff = new Uint8Array(buf);
72
- const hexOctets = [];
73
- for (let i = 0; i < buff.length; ++i) {
74
- hexOctets.push(byteToHex[buff[i]]);
78
+ var intersectBy = (arrays, selector) => {
79
+ if (arrays.length === 0) {
80
+ return [];
75
81
  }
76
- return hexOctets.join("");
82
+ if (arrays.length === 1) {
83
+ return [
84
+ ...arrays[0]
85
+ ];
86
+ }
87
+ const [first, ...rest] = arrays;
88
+ const lookups = rest.map((array) => {
89
+ const map = /* @__PURE__ */ new Map();
90
+ for (const item of array) {
91
+ map.set(selector(item), item);
92
+ }
93
+ return map;
94
+ });
95
+ return first.filter((item) => {
96
+ const key = selector(item);
97
+ return lookups.every((lookup) => lookup.has(key));
98
+ });
77
99
  };
78
100
 
79
101
  // packages/common/util/src/binder.ts
@@ -153,6 +175,30 @@ var BitField = class _BitField {
153
175
  }
154
176
  };
155
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
+
156
202
  // packages/common/util/src/callback.ts
157
203
  import { invariant as invariant2 } from "@dxos/invariant";
158
204
  var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/common/util/src/callback.ts";
@@ -205,30 +251,6 @@ var createSetDispatch = ({ handlers }) => {
205
251
  });
206
252
  };
207
253
 
208
- // packages/common/util/src/callback-collection.ts
209
- var CallbackCollection = class {
210
- #callbacks = [];
211
- append(callback) {
212
- this.#callbacks.push(callback);
213
- }
214
- prepend(callback) {
215
- this.#callbacks.unshift(callback);
216
- }
217
- remove(callback) {
218
- this.#callbacks = this.#callbacks.filter((c) => c !== callback);
219
- }
220
- callParallel(...args) {
221
- return Promise.all(this.#callbacks.map((callback) => callback(...args)));
222
- }
223
- async callSerial(...args) {
224
- const results = [];
225
- for (const callback of this.#callbacks) {
226
- results.push(await callback(...args));
227
- }
228
- return results;
229
- }
230
- };
231
-
232
254
  // packages/common/util/src/case.ts
233
255
  var LOW_DASH = "_".codePointAt(0);
234
256
  var HI_DASH = "-".codePointAt(0);
@@ -330,6 +352,19 @@ var CircularBuffer = class {
330
352
  }
331
353
  };
332
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
+
333
368
  // packages/common/util/src/complex.ts
334
369
  import { inspect } from "@dxos/node-std/util";
335
370
  import { inspectObject, raise } from "@dxos/debug";
@@ -429,12 +464,12 @@ var makeSet = (projection) => {
429
464
  };
430
465
  var ComplexMap = class _ComplexMap {
431
466
  // prettier-ignore
432
- constructor(_keyProjection, entries) {
467
+ constructor(_keyProjection, entries2) {
433
468
  this._keyProjection = _keyProjection;
434
469
  this._keys = /* @__PURE__ */ new Map();
435
470
  this._values = /* @__PURE__ */ new Map();
436
- if (entries) {
437
- for (const [key, value] of entries) {
471
+ if (entries2) {
472
+ for (const [key, value] of entries2) {
438
473
  this.set(key, value);
439
474
  }
440
475
  }
@@ -511,11 +546,48 @@ var ComplexMap = class _ComplexMap {
511
546
  }
512
547
  };
513
548
  var makeMap = (keyProjection) => class BoundComplexMap extends ComplexMap {
514
- constructor(entries) {
515
- super(keyProjection, entries);
549
+ constructor(entries2) {
550
+ super(keyProjection, entries2);
516
551
  }
517
552
  };
518
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];
584
+ }
585
+ return parent;
586
+ };
587
+
588
+ // packages/common/util/src/defer-function.ts
589
+ var deferFunction = (fnProvider) => (...args) => fnProvider()(...args);
590
+
519
591
  // packages/common/util/src/explicit-resource-management-polyfill.ts
520
592
  Symbol.dispose ??= Symbol("Symbol.dispose");
521
593
  Symbol.asyncDispose ??= Symbol("Symbol.asyncDispose");
@@ -549,41 +621,6 @@ var DeferAsyncGuard = class {
549
621
  }
550
622
  };
551
623
 
552
- // packages/common/util/src/defer-function.ts
553
- var deferFunction = (fnProvider) => (...args) => fnProvider()(...args);
554
-
555
- // packages/common/util/src/deep.ts
556
- import { invariant as invariant4 } from "@dxos/invariant";
557
- var __dxlog_file4 = "/home/runner/work/dxos/dxos/packages/common/util/src/deep.ts";
558
- var setDeep = (obj, path, value) => {
559
- invariant4(path.length > 0, void 0, {
560
- F: __dxlog_file4,
561
- L: 12,
562
- S: void 0,
563
- A: [
564
- "path.length > 0",
565
- ""
566
- ]
567
- });
568
- let parent = obj;
569
- for (const key of path.slice(0, -1)) {
570
- if (parent[key] === void 0) {
571
- const isArrayIndex = !isNaN(Number(key));
572
- parent[key] = isArrayIndex ? [] : {};
573
- }
574
- parent = parent[key];
575
- }
576
- parent[path.at(-1)] = value;
577
- return obj;
578
- };
579
- var getDeep = (obj, path) => {
580
- let parent = obj;
581
- for (const key of path) {
582
- parent = parent?.[key];
583
- }
584
- return parent;
585
- };
586
-
587
624
  // packages/common/util/src/entry.ts
588
625
  var entry = (map, key) => new MapEntry(map, key);
589
626
  var MapEntry = class {
@@ -973,18 +1010,6 @@ var humanize = (value) => {
973
1010
  return hasher.humanize(value);
974
1011
  };
975
1012
 
976
- // packages/common/util/src/interval.ts
977
- var exponentialBackoffInterval = (cb, initialInterval) => {
978
- let interval = initialInterval;
979
- const repeat = () => {
980
- cb();
981
- interval *= 2;
982
- timeoutId = setTimeout(repeat, interval);
983
- };
984
- let timeoutId = setTimeout(repeat, interval);
985
- return () => clearTimeout(timeoutId);
986
- };
987
-
988
1013
  // packages/common/util/src/map.ts
989
1014
  var defaultMap = (map, key, def) => {
990
1015
  let value = map.get(key);
@@ -1019,6 +1044,18 @@ var getDebugName = (instance) => {
1019
1044
  return `${prototype.constructor?.name ?? "Object"}#${getPrototypeSpecificInstanceId(instance)}`;
1020
1045
  };
1021
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
+
1022
1059
  // packages/common/util/src/join-tables.ts
1023
1060
  var joinTables = (leftColumn, rightColumn, left, right) => {
1024
1061
  const map = /* @__PURE__ */ new Map();
@@ -1244,6 +1281,35 @@ var DeepMapperAsync = class {
1244
1281
  return this._fn(value, this._recurse, key);
1245
1282
  }
1246
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
+ };
1247
1313
 
1248
1314
  // packages/common/util/src/order.ts
1249
1315
  var inferObjectOrder = (objectMap, order = []) => {
@@ -1272,25 +1338,9 @@ var inferRecordOrder = (objectMap, order = []) => {
1272
1338
  }, {}), objectMap);
1273
1339
  };
1274
1340
 
1275
- // packages/common/util/src/order-keys.ts
1276
- var orderKeys = (obj, order) => {
1277
- const ordered = {};
1278
- for (const key of order) {
1279
- if (key in obj) {
1280
- ordered[key] = obj[key];
1281
- }
1282
- }
1283
- for (const key in obj) {
1284
- if (!(key in ordered)) {
1285
- ordered[key] = obj[key];
1286
- }
1287
- }
1288
- return ordered;
1289
- };
1290
-
1291
1341
  // packages/common/util/src/pick.ts
1292
- var pick = (obj, keys) => {
1293
- return keys.reduce((result, key) => {
1342
+ var pick = (obj, keys2) => {
1343
+ return keys2.reduce((result, key) => {
1294
1344
  if (obj && key in obj) {
1295
1345
  result[key] = obj[key];
1296
1346
  }
@@ -1306,11 +1356,11 @@ var pickBy = (obj, predicate) => {
1306
1356
  }
1307
1357
  return result;
1308
1358
  };
1309
- var omit = (obj, keys) => {
1359
+ var omit = (obj, keys2) => {
1310
1360
  const result = {
1311
1361
  ...obj
1312
1362
  };
1313
- keys.forEach((key) => {
1363
+ keys2.forEach((key) => {
1314
1364
  delete result[key];
1315
1365
  });
1316
1366
  return result;
@@ -1358,17 +1408,16 @@ var getHostPlatform = () => {
1358
1408
  };
1359
1409
 
1360
1410
  // packages/common/util/src/position.ts
1361
- var byPosition = (a, b) => {
1362
- const aPosition = a.position ?? "static";
1363
- const bPosition = b.position ?? "static";
1364
- if (aPosition === bPosition) {
1411
+ var byPosition = ({ position: a = "static" }, { position: b = "static" }) => {
1412
+ if (a === b) {
1365
1413
  return 0;
1366
- } else if (aPosition === "hoist" || bPosition === "fallback") {
1414
+ } else if (a === "hoist" || b === "fallback") {
1367
1415
  return -1;
1368
- } else if (bPosition === "hoist" || aPosition === "fallback") {
1416
+ } else if (b === "hoist" || a === "fallback") {
1369
1417
  return 1;
1418
+ } else {
1419
+ return 0;
1370
1420
  }
1371
- return 0;
1372
1421
  };
1373
1422
 
1374
1423
  // packages/common/util/src/random.ts
@@ -1476,6 +1525,19 @@ var createBucketReducer = (period) => ({
1476
1525
  }
1477
1526
  });
1478
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
+
1479
1541
  // packages/common/util/src/safe-await.ts
1480
1542
  var safeAwaitAll = async (source, taskFactory, onError) => {
1481
1543
  const failedItems = [];
@@ -1610,6 +1672,14 @@ var compareMulti = (sorters) => (a, b) => {
1610
1672
  return sort();
1611
1673
  };
1612
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
+
1613
1683
  // packages/common/util/src/sum.ts
1614
1684
  var sum = (values) => values.reduce((a, b) => a + b, 0);
1615
1685
 
@@ -1944,16 +2014,16 @@ var arrayMove = (array, from, to) => {
1944
2014
 
1945
2015
  // packages/common/util/src/weak.ts
1946
2016
  var WeakDictionary = class {
1947
- constructor(entries) {
2017
+ constructor(entries2) {
1948
2018
  this._internal = /* @__PURE__ */ new Map();
1949
2019
  this._finalization = new FinalizationRegistry((cleanUpCallback) => {
1950
2020
  cleanUpCallback();
1951
2021
  });
1952
- this._internal = new Map(entries?.map(([key, value]) => [
2022
+ this._internal = new Map(entries2?.map(([key, value]) => [
1953
2023
  key,
1954
2024
  new WeakRef(value)
1955
2025
  ]));
1956
- entries?.forEach(([key, value]) => this._register(key, value));
2026
+ entries2?.forEach(([key, value]) => this._register(key, value));
1957
2027
  }
1958
2028
  *entries() {
1959
2029
  for (const [key, value] of this._internal) {
@@ -2036,27 +2106,6 @@ var WeakDictionary = class {
2036
2106
  this._finalization.unregister(value);
2037
2107
  }
2038
2108
  };
2039
-
2040
- // packages/common/util/src/string.ts
2041
- var capitalize = (str) => {
2042
- if (str.length === 0) {
2043
- return "";
2044
- }
2045
- return str.charAt(0).toUpperCase() + str.slice(1);
2046
- };
2047
-
2048
- // packages/common/util/src/remove-undefined-keys.ts
2049
- var removeUndefinedProperties = (object) => {
2050
- for (const prop of [
2051
- ...Object.getOwnPropertyNames(object),
2052
- ...Object.getOwnPropertySymbols(object)
2053
- ]) {
2054
- if (object[prop] === void 0) {
2055
- delete object[prop];
2056
- }
2057
- }
2058
- return object;
2059
- };
2060
2109
  export {
2061
2110
  BitField,
2062
2111
  Callback,
@@ -2080,6 +2129,7 @@ export {
2080
2129
  capitalize,
2081
2130
  chunkArray,
2082
2131
  clamp,
2132
+ clearUndefined,
2083
2133
  compareMulti,
2084
2134
  compareObject,
2085
2135
  compareScalar,
@@ -2098,9 +2148,11 @@ export {
2098
2148
  diff,
2099
2149
  distinctBy,
2100
2150
  doAsync,
2151
+ entries,
2101
2152
  entry,
2102
2153
  exponentialBackoffInterval,
2103
2154
  forEachAsync,
2155
+ get,
2104
2156
  getAsyncProviderValue,
2105
2157
  getDate,
2106
2158
  getDebugName,
@@ -2118,6 +2170,7 @@ export {
2118
2170
  idHue,
2119
2171
  inferObjectOrder,
2120
2172
  inferRecordOrder,
2173
+ intersectBy,
2121
2174
  intersection,
2122
2175
  iosCheck,
2123
2176
  isNode,
@@ -2131,6 +2184,7 @@ export {
2131
2184
  keyToEmoji,
2132
2185
  keyToFallback,
2133
2186
  keyToHue,
2187
+ keys,
2134
2188
  makeMap,
2135
2189
  makeSet,
2136
2190
  mapValues,
@@ -2156,6 +2210,7 @@ export {
2156
2210
  safeParseFloat,
2157
2211
  safeParseInt,
2158
2212
  safeParseJson,
2213
+ set,
2159
2214
  setDeep,
2160
2215
  sortKeys,
2161
2216
  stringToArray,
@@ -2166,6 +2221,7 @@ export {
2166
2221
  toEmoji,
2167
2222
  toFallback,
2168
2223
  toHue,
2169
- tracer
2224
+ tracer,
2225
+ visitValues
2170
2226
  };
2171
2227
  //# sourceMappingURL=index.mjs.map