@dxos/util 0.6.12 → 0.6.13-main.09887cd

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 (50) hide show
  1. package/dist/lib/browser/index.mjs +92 -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 +83 -134
  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 +1927 -0
  8. package/dist/lib/node-esm/index.mjs.map +7 -0
  9. package/dist/lib/node-esm/meta.json +1 -0
  10. package/dist/types/src/complex.d.ts +8 -8
  11. package/dist/types/src/complex.d.ts.map +1 -1
  12. package/dist/types/src/index.d.ts +4 -5
  13. package/dist/types/src/index.d.ts.map +1 -1
  14. package/dist/types/src/platform.browser.test.d.ts +2 -0
  15. package/dist/types/src/platform.browser.test.d.ts.map +1 -0
  16. package/dist/types/src/platform.node.test.d.ts +2 -0
  17. package/dist/types/src/platform.node.test.d.ts.map +1 -0
  18. package/dist/types/src/weak.d.ts +4 -4
  19. package/dist/types/src/weak.d.ts.map +1 -1
  20. package/package.json +8 -9
  21. package/src/array.test.ts +1 -2
  22. package/src/bitfield.test.ts +1 -2
  23. package/src/callback.test.ts +1 -2
  24. package/src/complex.test.ts +1 -2
  25. package/src/complex.ts +8 -8
  26. package/src/defer.test.ts +1 -2
  27. package/src/human-hash.test.ts +1 -2
  28. package/src/index.ts +4 -5
  29. package/src/join-tables.test.ts +1 -2
  30. package/src/order.test.ts +1 -2
  31. package/src/platform.browser.test.ts +11 -0
  32. package/src/platform.node.test.ts +11 -0
  33. package/src/reducers.test.ts +1 -2
  34. package/src/safe-instanceof.test.ts +1 -2
  35. package/src/sort.test.ts +1 -2
  36. package/src/tracer.test.ts +1 -2
  37. package/src/types.test.ts +1 -2
  38. package/src/uint8array.test.ts +1 -2
  39. package/src/weak.test.ts +4 -8
  40. package/src/weak.ts +4 -4
  41. package/dist/types/src/params.d.ts +0 -22
  42. package/dist/types/src/params.d.ts.map +0 -1
  43. package/dist/types/src/params.test.d.ts +0 -2
  44. package/dist/types/src/params.test.d.ts.map +0 -1
  45. package/dist/types/src/platform.test.d.ts +0 -2
  46. package/dist/types/src/platform.test.d.ts.map +0 -1
  47. package/src/params.test.ts +0 -38
  48. package/src/params.ts +0 -68
  49. package/src/platform.test.ts +0 -17
  50. package/src/typings.d.ts +0 -5
@@ -199,6 +199,39 @@ var createSetDispatch = ({ handlers }) => {
199
199
  });
200
200
  };
201
201
 
202
+ // packages/common/util/src/callback-collection.ts
203
+ var CallbackCollection = class {
204
+ #callbacks = [];
205
+ append(callback) {
206
+ this.#callbacks.push(callback);
207
+ }
208
+ prepend(callback) {
209
+ this.#callbacks.unshift(callback);
210
+ }
211
+ remove(callback) {
212
+ this.#callbacks = this.#callbacks.filter((c) => c !== callback);
213
+ }
214
+ callParallel(...args) {
215
+ return Promise.all(this.#callbacks.map((callback) => callback(...args)));
216
+ }
217
+ async callSerial(...args) {
218
+ const results = [];
219
+ for (const callback of this.#callbacks) {
220
+ results.push(await callback(...args));
221
+ }
222
+ return results;
223
+ }
224
+ };
225
+
226
+ // packages/common/util/src/chunk-array.ts
227
+ var chunkArray = (array, size) => {
228
+ const result = [];
229
+ for (let i = 0; i < array.length; i += size) {
230
+ result.push(array.slice(i, i + size));
231
+ }
232
+ return result;
233
+ };
234
+
202
235
  // packages/common/util/src/circular-buffer.ts
203
236
  import { invariant as invariant4 } from "@dxos/invariant";
204
237
  var __dxlog_file4 = "/home/runner/work/dxos/dxos/packages/common/util/src/circular-buffer.ts";
@@ -1135,55 +1168,6 @@ var inferRecordOrder = (objectMap, order = []) => {
1135
1168
  }, {}), objectMap);
1136
1169
  };
1137
1170
 
1138
- // packages/common/util/src/params.ts
1139
- import { AST } from "@effect/schema";
1140
- import { decamelize } from "xcase";
1141
- var ParamKeyAnnotationId = Symbol.for("@dxos/schema/annotation/ParamKeyAnnotation");
1142
- var ParamKeyAnnotation = (value) => (self) => self.annotations({
1143
- [ParamKeyAnnotationId]: value
1144
- });
1145
- var Params = class {
1146
- constructor(_schema) {
1147
- this._schema = _schema;
1148
- }
1149
- /**
1150
- * Parse URL params.
1151
- * @param url
1152
- */
1153
- parse(url) {
1154
- return Object.entries(this._schema.fields).reduce((acc, [key, type]) => {
1155
- let v = url.searchParams.get(decamelize(key));
1156
- if (v == null) {
1157
- v = url.searchParams.get(key);
1158
- }
1159
- if (v != null) {
1160
- if (AST.isNumberKeyword(type.ast)) {
1161
- acc[key] = parseInt(v);
1162
- } else if (AST.isBooleanKeyword(type.ast)) {
1163
- acc[key] = v === "true" || v === "1";
1164
- } else {
1165
- acc[key] = v;
1166
- }
1167
- }
1168
- return acc;
1169
- }, {});
1170
- }
1171
- /**
1172
- * Update URL with params.
1173
- */
1174
- params(url, values) {
1175
- Object.entries(values).forEach(([key, value]) => {
1176
- const type = this._schema.fields[key];
1177
- if (type && value != null) {
1178
- const { value: alt } = AST.getAnnotation(ParamKeyAnnotationId)(type.ast);
1179
- const k = alt ?? decamelize(key);
1180
- url.searchParams.set(k, String(value));
1181
- }
1182
- });
1183
- return url;
1184
- }
1185
- };
1186
-
1187
1171
  // packages/common/util/src/pick.ts
1188
1172
  var pick = (object, keys) => keys.reduce((obj, key) => {
1189
1173
  if (object && key in object) {
@@ -1385,6 +1369,62 @@ var safeParseJson = (data, defaultValue) => {
1385
1369
  return defaultValue;
1386
1370
  };
1387
1371
 
1372
+ // packages/common/util/src/sliding-window-summary.ts
1373
+ import { invariant as invariant5 } from "@dxos/invariant";
1374
+ var __dxlog_file5 = "/home/runner/work/dxos/dxos/packages/common/util/src/sliding-window-summary.ts";
1375
+ var SlidingWindowSummary = class {
1376
+ constructor(options) {
1377
+ this._sum = 0;
1378
+ this._buffer = new CircularBuffer(options.dataPoints);
1379
+ if (options.precision != null) {
1380
+ invariant5(options.precision >= 0, void 0, {
1381
+ F: __dxlog_file5,
1382
+ L: 26,
1383
+ S: this,
1384
+ A: [
1385
+ "options.precision >= 0",
1386
+ ""
1387
+ ]
1388
+ });
1389
+ this._precision = Math.pow(10, options.precision);
1390
+ }
1391
+ }
1392
+ record(value) {
1393
+ const evicted = this._buffer.push(value);
1394
+ this._sum += value - (evicted ?? 0);
1395
+ }
1396
+ average() {
1397
+ return this._buffer.elementCount === 0 ? 0 : this._withPrecision(this._sum / this._buffer.elementCount);
1398
+ }
1399
+ computeWindowSummary() {
1400
+ const mean = this.average();
1401
+ const sortedElements = [
1402
+ ...this._buffer
1403
+ ].sort();
1404
+ const median2 = this._withPrecision(sortedElements.length % 2 === 0 ? (sortedElements[sortedElements.length / 2] + sortedElements[sortedElements.length / 2 - 1]) / 2 : sortedElements[sortedElements.length / 2]);
1405
+ const p90 = this._withPrecision(sortedElements[Math.round(sortedElements.length * 0.9)]);
1406
+ const variance = sortedElements.reduce((acc, v) => acc + Math.pow(v - mean, 2)) / sortedElements.length;
1407
+ const stdDev = this._withPrecision(Math.sqrt(variance));
1408
+ const histogram = sortedElements.reduce((acc, v) => {
1409
+ acc[v] += 1;
1410
+ return acc;
1411
+ }, {});
1412
+ return {
1413
+ mean,
1414
+ median: median2,
1415
+ p90,
1416
+ stdDev,
1417
+ histogram
1418
+ };
1419
+ }
1420
+ _withPrecision(value) {
1421
+ if (this._precision == null) {
1422
+ return value;
1423
+ }
1424
+ return Math.round(value * this._precision) / this._precision;
1425
+ }
1426
+ };
1427
+
1388
1428
  // packages/common/util/src/sort.ts
1389
1429
  var compareScalar = (inc = true) => (a, b) => (inc ? 1 : -1) * (a < b ? -1 : a > b ? 1 : 0);
1390
1430
  var compareString = (inc = true, caseInsensitive = true) => (a, b) => {
@@ -1407,6 +1447,9 @@ var compareMulti = (sorters) => (a, b) => {
1407
1447
  return sort();
1408
1448
  };
1409
1449
 
1450
+ // packages/common/util/src/sum.ts
1451
+ var sum = (values) => values.reduce((a, b) => a + b, 0);
1452
+
1410
1453
  // packages/common/util/src/throw-unhandled-error.ts
1411
1454
  var throwUnhandledError = (error) => {
1412
1455
  queueMicrotask(() => {
@@ -1696,9 +1739,6 @@ var safeParseInt = (value, defaultValue) => {
1696
1739
  }
1697
1740
  };
1698
1741
 
1699
- // packages/common/util/src/sum.ts
1700
- var sum = (values) => values.reduce((a, b) => a + b, 0);
1701
-
1702
1742
  // packages/common/util/src/weak.ts
1703
1743
  var WeakDictionary = class {
1704
1744
  constructor(entries) {
@@ -1793,95 +1833,6 @@ var WeakDictionary = class {
1793
1833
  this._finalization.unregister(value);
1794
1834
  }
1795
1835
  };
1796
-
1797
- // packages/common/util/src/sliding-window-summary.ts
1798
- import { invariant as invariant5 } from "@dxos/invariant";
1799
- var __dxlog_file5 = "/home/runner/work/dxos/dxos/packages/common/util/src/sliding-window-summary.ts";
1800
- var SlidingWindowSummary = class {
1801
- constructor(options) {
1802
- this._sum = 0;
1803
- this._buffer = new CircularBuffer(options.dataPoints);
1804
- if (options.precision != null) {
1805
- invariant5(options.precision >= 0, void 0, {
1806
- F: __dxlog_file5,
1807
- L: 26,
1808
- S: this,
1809
- A: [
1810
- "options.precision >= 0",
1811
- ""
1812
- ]
1813
- });
1814
- this._precision = Math.pow(10, options.precision);
1815
- }
1816
- }
1817
- record(value) {
1818
- const evicted = this._buffer.push(value);
1819
- this._sum += value - (evicted ?? 0);
1820
- }
1821
- average() {
1822
- return this._buffer.elementCount === 0 ? 0 : this._withPrecision(this._sum / this._buffer.elementCount);
1823
- }
1824
- computeWindowSummary() {
1825
- const mean = this.average();
1826
- const sortedElements = [
1827
- ...this._buffer
1828
- ].sort();
1829
- const median2 = this._withPrecision(sortedElements.length % 2 === 0 ? (sortedElements[sortedElements.length / 2] + sortedElements[sortedElements.length / 2 - 1]) / 2 : sortedElements[sortedElements.length / 2]);
1830
- const p90 = this._withPrecision(sortedElements[Math.round(sortedElements.length * 0.9)]);
1831
- const variance = sortedElements.reduce((acc, v) => acc + Math.pow(v - mean, 2)) / sortedElements.length;
1832
- const stdDev = this._withPrecision(Math.sqrt(variance));
1833
- const histogram = sortedElements.reduce((acc, v) => {
1834
- acc[v] += 1;
1835
- return acc;
1836
- }, {});
1837
- return {
1838
- mean,
1839
- median: median2,
1840
- p90,
1841
- stdDev,
1842
- histogram
1843
- };
1844
- }
1845
- _withPrecision(value) {
1846
- if (this._precision == null) {
1847
- return value;
1848
- }
1849
- return Math.round(value * this._precision) / this._precision;
1850
- }
1851
- };
1852
-
1853
- // packages/common/util/src/callback-collection.ts
1854
- var CallbackCollection = class {
1855
- #callbacks = [];
1856
- append(callback) {
1857
- this.#callbacks.push(callback);
1858
- }
1859
- prepend(callback) {
1860
- this.#callbacks.unshift(callback);
1861
- }
1862
- remove(callback) {
1863
- this.#callbacks = this.#callbacks.filter((c) => c !== callback);
1864
- }
1865
- callParallel(...args) {
1866
- return Promise.all(this.#callbacks.map((callback) => callback(...args)));
1867
- }
1868
- async callSerial(...args) {
1869
- const results = [];
1870
- for (const callback of this.#callbacks) {
1871
- results.push(await callback(...args));
1872
- }
1873
- return results;
1874
- }
1875
- };
1876
-
1877
- // packages/common/util/src/chunk-array.ts
1878
- var chunkArray = (array, size) => {
1879
- const result = [];
1880
- for (let i = 0; i < array.length; i += size) {
1881
- result.push(array.slice(i, i + size));
1882
- }
1883
- return result;
1884
- };
1885
1836
  export {
1886
1837
  BitField,
1887
1838
  Callback,
@@ -1891,8 +1842,6 @@ export {
1891
1842
  ComplexSet,
1892
1843
  HumanHasher,
1893
1844
  MapEntry,
1894
- ParamKeyAnnotation,
1895
- Params,
1896
1845
  SlidingWindowSummary,
1897
1846
  Tracer,
1898
1847
  WeakDictionary,