@dxos/util 0.7.4 → 0.7.5-feature-compute.4d9d99a

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 (43) hide show
  1. package/dist/lib/browser/index.mjs +70 -17
  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 +72 -18
  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 +70 -17
  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 +1 -1
  11. package/dist/types/src/array-to-hex.d.ts.map +1 -1
  12. package/dist/types/src/array.d.ts +12 -0
  13. package/dist/types/src/array.d.ts.map +1 -1
  14. package/dist/types/src/bitfield.d.ts +1 -1
  15. package/dist/types/src/deep.d.ts.map +1 -1
  16. package/dist/types/src/disposition.d.ts +15 -0
  17. package/dist/types/src/disposition.d.ts.map +1 -0
  18. package/dist/types/src/disposition.test.d.ts +2 -0
  19. package/dist/types/src/disposition.test.d.ts.map +1 -0
  20. package/dist/types/src/index.d.ts +3 -1
  21. package/dist/types/src/index.d.ts.map +1 -1
  22. package/dist/types/src/no-infer.d.ts +2 -0
  23. package/dist/types/src/no-infer.d.ts.map +1 -0
  24. package/dist/types/src/safe-parse.d.ts +7 -0
  25. package/dist/types/src/safe-parse.d.ts.map +1 -0
  26. package/dist/types/src/types.d.ts +22 -4
  27. package/dist/types/src/types.d.ts.map +1 -1
  28. package/dist/types/tsconfig.tsbuildinfo +1 -0
  29. package/package.json +6 -6
  30. package/src/array-to-hex.ts +1 -1
  31. package/src/array.test.ts +83 -1
  32. package/src/array.ts +29 -0
  33. package/src/deep.ts +5 -3
  34. package/src/disposition.test.ts +98 -0
  35. package/src/disposition.ts +30 -0
  36. package/src/index.ts +3 -1
  37. package/src/instance-id.ts +1 -1
  38. package/src/no-infer.ts +5 -0
  39. package/src/safe-parse.ts +32 -0
  40. package/src/types.ts +31 -13
  41. package/dist/types/src/safe-parse-json.d.ts +0 -5
  42. package/dist/types/src/safe-parse-json.d.ts.map +0 -1
  43. package/src/safe-parse-json.ts +0 -15
@@ -33,6 +33,33 @@ var distinctBy = (array, selector) => {
33
33
  return true;
34
34
  });
35
35
  };
36
+ var removeBy = (array, test) => {
37
+ const removed = [];
38
+ for (let i = array.length - 1; i >= 0; i--) {
39
+ if (test(array[i], i)) {
40
+ removed.push(...array.splice(i, 1));
41
+ }
42
+ }
43
+ return removed;
44
+ };
45
+ var partition = (array, guard) => {
46
+ return array.reduce(([accepted, rejected], item, index, array2) => guard(item, index, array2) ? [
47
+ [
48
+ ...accepted,
49
+ item
50
+ ],
51
+ rejected
52
+ ] : [
53
+ accepted,
54
+ [
55
+ ...rejected,
56
+ item
57
+ ]
58
+ ], [
59
+ [],
60
+ []
61
+ ]);
62
+ };
36
63
 
37
64
  // packages/common/util/src/binder.ts
38
65
  import util from "@dxos/node-std/util";
@@ -525,11 +552,14 @@ var setDeep = (obj, path, value) => {
525
552
  });
526
553
  let parent = obj;
527
554
  for (const key of path.slice(0, -1)) {
528
- parent[key] ??= {};
555
+ if (parent[key] === void 0) {
556
+ const isArrayIndex = !isNaN(Number(key));
557
+ parent[key] = isArrayIndex ? [] : {};
558
+ }
529
559
  parent = parent[key];
530
560
  }
531
561
  parent[path.at(-1)] = value;
532
- return parent[path.at(-1)];
562
+ return obj;
533
563
  };
534
564
  var getDeep = (obj, path) => {
535
565
  let parent = obj;
@@ -539,6 +569,20 @@ var getDeep = (obj, path) => {
539
569
  return parent;
540
570
  };
541
571
 
572
+ // packages/common/util/src/disposition.ts
573
+ var byDisposition = (a, b) => {
574
+ const aDisposition = a.disposition ?? "static";
575
+ const bDisposition = b.disposition ?? "static";
576
+ if (aDisposition === bDisposition) {
577
+ return 0;
578
+ } else if (aDisposition === "hoist" || bDisposition === "fallback") {
579
+ return -1;
580
+ } else if (bDisposition === "hoist" || aDisposition === "fallback") {
581
+ return 1;
582
+ }
583
+ return 0;
584
+ };
585
+
542
586
  // packages/common/util/src/entry.ts
543
587
  var entry = (map, key) => new MapEntry(map, key);
544
588
  var MapEntry = class {
@@ -944,7 +988,7 @@ var getDebugName = (instance) => {
944
988
  return "null";
945
989
  }
946
990
  const prototype = Object.getPrototypeOf(instance);
947
- return `${prototype.constructor.name}#${getPrototypeSpecificInstanceId(instance)}`;
991
+ return `${prototype.constructor?.name ?? "Object"}#${getPrototypeSpecificInstanceId(instance)}`;
948
992
  };
949
993
 
950
994
  // packages/common/util/src/join-tables.ts
@@ -1401,7 +1445,22 @@ var safeInstanceof = (tag) => (target) => {
1401
1445
  });
1402
1446
  };
1403
1447
 
1404
- // packages/common/util/src/safe-parse-json.ts
1448
+ // packages/common/util/src/safe-parse.ts
1449
+ var safeParseInt = (value, defaultValue) => {
1450
+ try {
1451
+ const n = parseInt(value ?? "");
1452
+ return isNaN(n) ? defaultValue : n;
1453
+ } catch (err) {
1454
+ return defaultValue;
1455
+ }
1456
+ };
1457
+ var safeParseFloat = (str, defaultValue) => {
1458
+ try {
1459
+ return parseFloat(str);
1460
+ } catch {
1461
+ return defaultValue ?? 0;
1462
+ }
1463
+ };
1405
1464
  var safeParseJson = (data, defaultValue) => {
1406
1465
  if (data) {
1407
1466
  try {
@@ -1788,7 +1847,6 @@ var stringifyTree = (node, ancestors = [], rows = []) => {
1788
1847
  var isNotFalsy = (value) => !!value;
1789
1848
  var nonNullable = (value) => value !== null && value !== void 0;
1790
1849
  var isNotNullOrUndefined = (value) => value != null;
1791
- var boolGuard = (value) => Boolean(value);
1792
1850
  var doAsync = async (fn) => fn();
1793
1851
  var getProviderValue = (provider, arg) => {
1794
1852
  return typeof provider === "function" ? provider(arg) : provider;
@@ -1796,14 +1854,14 @@ var getProviderValue = (provider, arg) => {
1796
1854
  var getAsyncProviderValue = (provider, arg) => {
1797
1855
  return getProviderValue(provider, arg);
1798
1856
  };
1799
- var stripUndefinedValues = (obj) => {
1857
+ var stripUndefined = (obj) => {
1800
1858
  if (typeof obj === "object") {
1801
1859
  Object.keys(obj).forEach((key) => {
1802
1860
  const value = obj[key];
1803
1861
  if (value === void 0) {
1804
1862
  delete obj[key];
1805
1863
  } else if (value !== null && typeof value === "object") {
1806
- stripUndefinedValues(value);
1864
+ stripUndefined(value);
1807
1865
  }
1808
1866
  });
1809
1867
  }
@@ -1817,14 +1875,6 @@ var arrayMove = (array, from, to) => {
1817
1875
  array.splice(to < 0 ? array.length + to : to, 0, array.splice(from, 1)[0]);
1818
1876
  return array;
1819
1877
  };
1820
- var safeParseInt = (value, defaultValue) => {
1821
- try {
1822
- const n = parseInt(value ?? "");
1823
- return isNaN(n) ? defaultValue : n;
1824
- } catch (err) {
1825
- return defaultValue;
1826
- }
1827
- };
1828
1878
 
1829
1879
  // packages/common/util/src/weak.ts
1830
1880
  var WeakDictionary = class {
@@ -1982,8 +2032,8 @@ export {
1982
2032
  arrayToHex,
1983
2033
  arrayToString,
1984
2034
  arraysEqual,
1985
- boolGuard,
1986
2035
  bufferToArray,
2036
+ byDisposition,
1987
2037
  chunkArray,
1988
2038
  compareMulti,
1989
2039
  compareObject,
@@ -2044,6 +2094,7 @@ export {
2044
2094
  numericalValues,
2045
2095
  omit,
2046
2096
  orderKeys,
2097
+ partition,
2047
2098
  pick,
2048
2099
  pickBy,
2049
2100
  randomInt,
@@ -2052,17 +2103,19 @@ export {
2052
2103
  reduceGroupBy,
2053
2104
  reduceSeries,
2054
2105
  reduceSet,
2106
+ removeBy,
2055
2107
  removeUndefinedProperties,
2056
2108
  safariCheck,
2057
2109
  safeAwaitAll,
2058
2110
  safeInstanceof,
2111
+ safeParseFloat,
2059
2112
  safeParseInt,
2060
2113
  safeParseJson,
2061
2114
  setDeep,
2062
2115
  sortKeys,
2063
2116
  stringToArray,
2064
2117
  stringifyTree,
2065
- stripUndefinedValues,
2118
+ stripUndefined,
2066
2119
  sum,
2067
2120
  throwUnhandledError,
2068
2121
  toEmoji,