@dxos/util 0.6.13 → 0.6.14-main.2b6a0f3
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 +106 -145
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/node/index.cjs +97 -135
- package/dist/lib/node/index.cjs.map +4 -4
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node-esm/index.mjs +1939 -0
- package/dist/lib/node-esm/index.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -0
- package/dist/types/src/array-to-hex.d.ts +2 -0
- package/dist/types/src/array-to-hex.d.ts.map +1 -0
- package/dist/types/src/complex.d.ts +8 -8
- package/dist/types/src/complex.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +5 -3
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/platform.browser.test.d.ts +2 -0
- package/dist/types/src/platform.browser.test.d.ts.map +1 -0
- package/dist/types/src/platform.node.test.d.ts +2 -0
- package/dist/types/src/platform.node.test.d.ts.map +1 -0
- package/dist/types/src/random.d.ts +1 -1
- package/dist/types/src/random.d.ts.map +1 -1
- package/dist/types/src/weak.d.ts +4 -4
- package/dist/types/src/weak.d.ts.map +1 -1
- package/package.json +9 -9
- package/src/array-to-hex.ts +23 -0
- package/src/array.test.ts +1 -2
- package/src/bitfield.test.ts +1 -2
- package/src/callback.test.ts +1 -2
- package/src/complex.test.ts +1 -2
- package/src/complex.ts +8 -8
- package/src/defer.test.ts +1 -2
- package/src/human-hash.test.ts +1 -2
- package/src/index.ts +5 -3
- package/src/join-tables.test.ts +1 -2
- package/src/order.test.ts +1 -2
- package/src/platform.browser.test.ts +11 -0
- package/src/platform.node.test.ts +11 -0
- package/src/random.ts +1 -1
- package/src/reducers.test.ts +1 -2
- package/src/safe-instanceof.test.ts +1 -2
- package/src/sort.test.ts +1 -2
- package/src/tracer.test.ts +3 -3
- package/src/types.test.ts +1 -2
- package/src/uint8array.test.ts +1 -2
- package/src/weak.test.ts +4 -8
- package/src/weak.ts +4 -4
- package/dist/types/src/params.d.ts +0 -22
- package/dist/types/src/params.d.ts.map +0 -1
- package/dist/types/src/params.test.d.ts +0 -2
- package/dist/types/src/params.test.d.ts.map +0 -1
- package/dist/types/src/platform.test.d.ts +0 -2
- package/dist/types/src/platform.test.d.ts.map +0 -1
- package/src/params.test.ts +0 -38
- package/src/params.ts +0 -68
- package/src/platform.test.ts +0 -17
- 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";
|
|
@@ -444,10 +477,6 @@ var makeMap = (keyProjection) => class BoundComplexMap extends ComplexMap {
|
|
|
444
477
|
}
|
|
445
478
|
};
|
|
446
479
|
|
|
447
|
-
// packages/common/util/src/explicit-resource-management-polyfill.ts
|
|
448
|
-
Symbol.dispose ??= Symbol("Symbol.dispose");
|
|
449
|
-
Symbol.asyncDispose ??= Symbol("Symbol.asyncDispose");
|
|
450
|
-
|
|
451
480
|
// packages/common/util/src/defer.ts
|
|
452
481
|
var defer = (fn) => new DeferGuard(fn);
|
|
453
482
|
var DeferGuard = class {
|
|
@@ -1135,55 +1164,6 @@ var inferRecordOrder = (objectMap, order = []) => {
|
|
|
1135
1164
|
}, {}), objectMap);
|
|
1136
1165
|
};
|
|
1137
1166
|
|
|
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
1167
|
// packages/common/util/src/pick.ts
|
|
1188
1168
|
var pick = (object, keys) => keys.reduce((obj, key) => {
|
|
1189
1169
|
if (object && key in object) {
|
|
@@ -1243,7 +1223,7 @@ var getHostPlatform = () => {
|
|
|
1243
1223
|
};
|
|
1244
1224
|
|
|
1245
1225
|
// packages/common/util/src/random.ts
|
|
1246
|
-
var randomInt = (max, min) => {
|
|
1226
|
+
var randomInt = (max, min = 0) => {
|
|
1247
1227
|
min = Math.ceil(min);
|
|
1248
1228
|
max = Math.floor(max);
|
|
1249
1229
|
return Math.floor(Math.random() * (max - min + 1)) + min;
|
|
@@ -1385,6 +1365,62 @@ var safeParseJson = (data, defaultValue) => {
|
|
|
1385
1365
|
return defaultValue;
|
|
1386
1366
|
};
|
|
1387
1367
|
|
|
1368
|
+
// packages/common/util/src/sliding-window-summary.ts
|
|
1369
|
+
import { invariant as invariant5 } from "@dxos/invariant";
|
|
1370
|
+
var __dxlog_file5 = "/home/runner/work/dxos/dxos/packages/common/util/src/sliding-window-summary.ts";
|
|
1371
|
+
var SlidingWindowSummary = class {
|
|
1372
|
+
constructor(options) {
|
|
1373
|
+
this._sum = 0;
|
|
1374
|
+
this._buffer = new CircularBuffer(options.dataPoints);
|
|
1375
|
+
if (options.precision != null) {
|
|
1376
|
+
invariant5(options.precision >= 0, void 0, {
|
|
1377
|
+
F: __dxlog_file5,
|
|
1378
|
+
L: 26,
|
|
1379
|
+
S: this,
|
|
1380
|
+
A: [
|
|
1381
|
+
"options.precision >= 0",
|
|
1382
|
+
""
|
|
1383
|
+
]
|
|
1384
|
+
});
|
|
1385
|
+
this._precision = Math.pow(10, options.precision);
|
|
1386
|
+
}
|
|
1387
|
+
}
|
|
1388
|
+
record(value) {
|
|
1389
|
+
const evicted = this._buffer.push(value);
|
|
1390
|
+
this._sum += value - (evicted ?? 0);
|
|
1391
|
+
}
|
|
1392
|
+
average() {
|
|
1393
|
+
return this._buffer.elementCount === 0 ? 0 : this._withPrecision(this._sum / this._buffer.elementCount);
|
|
1394
|
+
}
|
|
1395
|
+
computeWindowSummary() {
|
|
1396
|
+
const mean = this.average();
|
|
1397
|
+
const sortedElements = [
|
|
1398
|
+
...this._buffer
|
|
1399
|
+
].sort();
|
|
1400
|
+
const median2 = this._withPrecision(sortedElements.length % 2 === 0 ? (sortedElements[sortedElements.length / 2] + sortedElements[sortedElements.length / 2 - 1]) / 2 : sortedElements[sortedElements.length / 2]);
|
|
1401
|
+
const p90 = this._withPrecision(sortedElements[Math.round(sortedElements.length * 0.9)]);
|
|
1402
|
+
const variance = sortedElements.reduce((acc, v) => acc + Math.pow(v - mean, 2)) / sortedElements.length;
|
|
1403
|
+
const stdDev = this._withPrecision(Math.sqrt(variance));
|
|
1404
|
+
const histogram = sortedElements.reduce((acc, v) => {
|
|
1405
|
+
acc[v] += 1;
|
|
1406
|
+
return acc;
|
|
1407
|
+
}, {});
|
|
1408
|
+
return {
|
|
1409
|
+
mean,
|
|
1410
|
+
median: median2,
|
|
1411
|
+
p90,
|
|
1412
|
+
stdDev,
|
|
1413
|
+
histogram
|
|
1414
|
+
};
|
|
1415
|
+
}
|
|
1416
|
+
_withPrecision(value) {
|
|
1417
|
+
if (this._precision == null) {
|
|
1418
|
+
return value;
|
|
1419
|
+
}
|
|
1420
|
+
return Math.round(value * this._precision) / this._precision;
|
|
1421
|
+
}
|
|
1422
|
+
};
|
|
1423
|
+
|
|
1388
1424
|
// packages/common/util/src/sort.ts
|
|
1389
1425
|
var compareScalar = (inc = true) => (a, b) => (inc ? 1 : -1) * (a < b ? -1 : a > b ? 1 : 0);
|
|
1390
1426
|
var compareString = (inc = true, caseInsensitive = true) => (a, b) => {
|
|
@@ -1407,6 +1443,9 @@ var compareMulti = (sorters) => (a, b) => {
|
|
|
1407
1443
|
return sort();
|
|
1408
1444
|
};
|
|
1409
1445
|
|
|
1446
|
+
// packages/common/util/src/sum.ts
|
|
1447
|
+
var sum = (values) => values.reduce((a, b) => a + b, 0);
|
|
1448
|
+
|
|
1410
1449
|
// packages/common/util/src/throw-unhandled-error.ts
|
|
1411
1450
|
var throwUnhandledError = (error) => {
|
|
1412
1451
|
queueMicrotask(() => {
|
|
@@ -1696,9 +1735,6 @@ var safeParseInt = (value, defaultValue) => {
|
|
|
1696
1735
|
}
|
|
1697
1736
|
};
|
|
1698
1737
|
|
|
1699
|
-
// packages/common/util/src/sum.ts
|
|
1700
|
-
var sum = (values) => values.reduce((a, b) => a + b, 0);
|
|
1701
|
-
|
|
1702
1738
|
// packages/common/util/src/weak.ts
|
|
1703
1739
|
var WeakDictionary = class {
|
|
1704
1740
|
constructor(entries) {
|
|
@@ -1794,93 +1830,19 @@ var WeakDictionary = class {
|
|
|
1794
1830
|
}
|
|
1795
1831
|
};
|
|
1796
1832
|
|
|
1797
|
-
// packages/common/util/src/
|
|
1798
|
-
|
|
1799
|
-
|
|
1800
|
-
|
|
1801
|
-
|
|
1802
|
-
|
|
1803
|
-
|
|
1804
|
-
|
|
1805
|
-
|
|
1806
|
-
|
|
1807
|
-
|
|
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));
|
|
1833
|
+
// packages/common/util/src/array-to-hex.ts
|
|
1834
|
+
var byteToHex = [];
|
|
1835
|
+
for (let n = 0; n <= 255; ++n) {
|
|
1836
|
+
const hexOctet = n.toString(16).padStart(2, "0");
|
|
1837
|
+
byteToHex.push(hexOctet);
|
|
1838
|
+
}
|
|
1839
|
+
var arrayToHex = (buf) => {
|
|
1840
|
+
const buff = new Uint8Array(buf);
|
|
1841
|
+
const hexOctets = [];
|
|
1842
|
+
for (let i = 0; i < buff.length; ++i) {
|
|
1843
|
+
hexOctets.push(byteToHex[buff[i]]);
|
|
1882
1844
|
}
|
|
1883
|
-
return
|
|
1845
|
+
return hexOctets.join("");
|
|
1884
1846
|
};
|
|
1885
1847
|
export {
|
|
1886
1848
|
BitField,
|
|
@@ -1891,14 +1853,13 @@ export {
|
|
|
1891
1853
|
ComplexSet,
|
|
1892
1854
|
HumanHasher,
|
|
1893
1855
|
MapEntry,
|
|
1894
|
-
ParamKeyAnnotation,
|
|
1895
|
-
Params,
|
|
1896
1856
|
SlidingWindowSummary,
|
|
1897
1857
|
Tracer,
|
|
1898
1858
|
WeakDictionary,
|
|
1899
1859
|
accessBy,
|
|
1900
1860
|
arrayMove,
|
|
1901
1861
|
arrayToBuffer,
|
|
1862
|
+
arrayToHex,
|
|
1902
1863
|
arrayToString,
|
|
1903
1864
|
arraysEqual,
|
|
1904
1865
|
boolGuard,
|