@dxos/util 0.8.3 → 0.8.4-main.28f8d3d
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 +118 -72
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/node-esm/index.mjs +118 -72
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/types/src/array.d.ts.map +1 -1
- package/dist/types/src/assume.d.ts.map +1 -1
- package/dist/types/src/di-key.d.ts +3 -3
- package/dist/types/src/di-key.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +2 -2
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/json.d.ts +1 -1
- package/dist/types/src/json.d.ts.map +1 -1
- package/dist/types/src/object.d.ts +3 -0
- package/dist/types/src/object.d.ts.map +1 -1
- package/dist/types/src/safe-parse.d.ts.map +1 -1
- package/dist/types/src/string.d.ts +4 -0
- package/dist/types/src/string.d.ts.map +1 -1
- package/dist/types/src/string.test.d.ts +2 -0
- package/dist/types/src/string.test.d.ts.map +1 -0
- package/dist/types/src/url.d.ts +5 -0
- package/dist/types/src/url.d.ts.map +1 -0
- package/dist/types/src/url.test.d.ts +2 -0
- package/dist/types/src/url.test.d.ts.map +1 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +8 -8
- package/src/array.test.ts +1 -1
- package/src/array.ts +0 -2
- package/src/assume.ts +0 -1
- package/src/circular-buffer.test.ts +1 -1
- package/src/complex.test.ts +1 -1
- package/src/human-hash.test.ts +1 -1
- package/src/index.ts +2 -2
- package/src/json.ts +2 -7
- package/src/object.ts +3 -0
- package/src/position.test.ts +2 -2
- package/src/safe-parse.ts +3 -1
- package/src/sort.test.ts +1 -1
- package/src/string.test.ts +19 -0
- package/src/string.ts +29 -0
- package/src/tree.test.ts +1 -1
- package/src/uint8array.test.ts +1 -1
- package/src/url.test.ts +22 -0
- package/src/url.ts +15 -0
- package/src/weak.test.ts +1 -1
- package/dist/lib/node/index.cjs +0 -2309
- package/dist/lib/node/index.cjs.map +0 -7
- package/dist/lib/node/meta.json +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import "@dxos/node-std/globals";
|
|
2
2
|
|
|
3
|
-
//
|
|
3
|
+
// src/array-to-hex.ts
|
|
4
4
|
var byteToHex = [];
|
|
5
5
|
for (let n = 0; n <= 255; ++n) {
|
|
6
6
|
const hexOctet = n.toString(16).padStart(2, "0");
|
|
@@ -15,7 +15,7 @@ var arrayToHex = (buf) => {
|
|
|
15
15
|
return hexOctets.join("");
|
|
16
16
|
};
|
|
17
17
|
|
|
18
|
-
//
|
|
18
|
+
// src/array.ts
|
|
19
19
|
var diff = (previous, next, comparator) => {
|
|
20
20
|
const remaining = [
|
|
21
21
|
...previous
|
|
@@ -98,16 +98,20 @@ var intersectBy = (arrays, selector) => {
|
|
|
98
98
|
});
|
|
99
99
|
};
|
|
100
100
|
|
|
101
|
-
//
|
|
101
|
+
// src/assume.ts
|
|
102
|
+
function assumeType(value) {
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
// src/binder.ts
|
|
102
106
|
import util from "@dxos/node-std/util";
|
|
103
107
|
var createBinder = (obj) => ({
|
|
104
108
|
fn: (fn) => fn.bind(obj),
|
|
105
109
|
async: (fn) => util.promisify(fn.bind(obj))
|
|
106
110
|
});
|
|
107
111
|
|
|
108
|
-
//
|
|
112
|
+
// src/bitfield.ts
|
|
109
113
|
import { invariant } from "@dxos/invariant";
|
|
110
|
-
var __dxlog_file = "/
|
|
114
|
+
var __dxlog_file = "/__w/dxos/dxos/packages/common/util/src/bitfield.ts";
|
|
111
115
|
var BitField = class _BitField {
|
|
112
116
|
static get(data, idx) {
|
|
113
117
|
const bit = data[idx >> 3] >> 7 - idx % 8 & 1;
|
|
@@ -175,7 +179,7 @@ var BitField = class _BitField {
|
|
|
175
179
|
}
|
|
176
180
|
};
|
|
177
181
|
|
|
178
|
-
//
|
|
182
|
+
// src/callback-collection.ts
|
|
179
183
|
var CallbackCollection = class {
|
|
180
184
|
#callbacks = [];
|
|
181
185
|
append(callback) {
|
|
@@ -199,10 +203,11 @@ var CallbackCollection = class {
|
|
|
199
203
|
}
|
|
200
204
|
};
|
|
201
205
|
|
|
202
|
-
//
|
|
206
|
+
// src/callback.ts
|
|
203
207
|
import { invariant as invariant2 } from "@dxos/invariant";
|
|
204
|
-
var __dxlog_file2 = "/
|
|
208
|
+
var __dxlog_file2 = "/__w/dxos/dxos/packages/common/util/src/callback.ts";
|
|
205
209
|
var Callback = class {
|
|
210
|
+
_callback;
|
|
206
211
|
call(...args) {
|
|
207
212
|
invariant2(this._callback, "Callback not set", {
|
|
208
213
|
F: __dxlog_file2,
|
|
@@ -251,7 +256,7 @@ var createSetDispatch = ({ handlers }) => {
|
|
|
251
256
|
});
|
|
252
257
|
};
|
|
253
258
|
|
|
254
|
-
//
|
|
259
|
+
// src/case.ts
|
|
255
260
|
var LOW_DASH = "_".codePointAt(0);
|
|
256
261
|
var HI_DASH = "-".codePointAt(0);
|
|
257
262
|
var SMALL_A = "a".codePointAt(0);
|
|
@@ -284,7 +289,7 @@ var changeCase = (str, delim) => {
|
|
|
284
289
|
var decamelize = (str) => changeCase(str, LOW_DASH);
|
|
285
290
|
var hyphenize = (str) => changeCase(str, HI_DASH);
|
|
286
291
|
|
|
287
|
-
//
|
|
292
|
+
// src/chunk-array.ts
|
|
288
293
|
var chunkArray = (array, size) => {
|
|
289
294
|
const result = [];
|
|
290
295
|
for (let i = 0; i < array.length; i += size) {
|
|
@@ -293,13 +298,14 @@ var chunkArray = (array, size) => {
|
|
|
293
298
|
return result;
|
|
294
299
|
};
|
|
295
300
|
|
|
296
|
-
//
|
|
301
|
+
// src/circular-buffer.ts
|
|
297
302
|
import { invariant as invariant3 } from "@dxos/invariant";
|
|
298
|
-
var __dxlog_file3 = "/
|
|
303
|
+
var __dxlog_file3 = "/__w/dxos/dxos/packages/common/util/src/circular-buffer.ts";
|
|
299
304
|
var CircularBuffer = class {
|
|
305
|
+
_buffer;
|
|
306
|
+
_nextIndex = 0;
|
|
307
|
+
_elementCount = 0;
|
|
300
308
|
constructor(size) {
|
|
301
|
-
this._nextIndex = 0;
|
|
302
|
-
this._elementCount = 0;
|
|
303
309
|
invariant3(size >= 1, void 0, {
|
|
304
310
|
F: __dxlog_file3,
|
|
305
311
|
L: 13,
|
|
@@ -352,7 +358,7 @@ var CircularBuffer = class {
|
|
|
352
358
|
}
|
|
353
359
|
};
|
|
354
360
|
|
|
355
|
-
//
|
|
361
|
+
// src/clear-undefined.ts
|
|
356
362
|
var clearUndefined = (obj) => {
|
|
357
363
|
for (const key of [
|
|
358
364
|
...Object.getOwnPropertyNames(obj),
|
|
@@ -365,11 +371,13 @@ var clearUndefined = (obj) => {
|
|
|
365
371
|
return obj;
|
|
366
372
|
};
|
|
367
373
|
|
|
368
|
-
//
|
|
374
|
+
// src/complex.ts
|
|
369
375
|
import { inspect } from "@dxos/node-std/util";
|
|
370
376
|
import { inspectObject, raise } from "@dxos/debug";
|
|
371
377
|
var MAX_SERIALIZATION_LENGTH = 10;
|
|
372
378
|
var ComplexSet = class {
|
|
379
|
+
_projection;
|
|
380
|
+
_values;
|
|
373
381
|
// prettier-ignore
|
|
374
382
|
constructor(_projection, values) {
|
|
375
383
|
this._projection = _projection;
|
|
@@ -463,6 +471,9 @@ var makeSet = (projection) => {
|
|
|
463
471
|
};
|
|
464
472
|
};
|
|
465
473
|
var ComplexMap = class _ComplexMap {
|
|
474
|
+
_keyProjection;
|
|
475
|
+
_keys;
|
|
476
|
+
_values;
|
|
466
477
|
// prettier-ignore
|
|
467
478
|
constructor(_keyProjection, entries2) {
|
|
468
479
|
this._keyProjection = _keyProjection;
|
|
@@ -551,11 +562,11 @@ var makeMap = (keyProjection) => class BoundComplexMap extends ComplexMap {
|
|
|
551
562
|
}
|
|
552
563
|
};
|
|
553
564
|
|
|
554
|
-
//
|
|
565
|
+
// src/deep.ts
|
|
555
566
|
import get from "lodash.get";
|
|
556
567
|
import set from "lodash.set";
|
|
557
568
|
import { invariant as invariant4 } from "@dxos/invariant";
|
|
558
|
-
var __dxlog_file4 = "/
|
|
569
|
+
var __dxlog_file4 = "/__w/dxos/dxos/packages/common/util/src/deep.ts";
|
|
559
570
|
var setDeep = (obj, path, value) => {
|
|
560
571
|
invariant4(path.length > 0, void 0, {
|
|
561
572
|
F: __dxlog_file4,
|
|
@@ -585,16 +596,17 @@ var getDeep = (obj, path) => {
|
|
|
585
596
|
return parent;
|
|
586
597
|
};
|
|
587
598
|
|
|
588
|
-
//
|
|
599
|
+
// src/defer-function.ts
|
|
589
600
|
var deferFunction = (fnProvider) => (...args) => fnProvider()(...args);
|
|
590
601
|
|
|
591
|
-
//
|
|
602
|
+
// src/explicit-resource-management-polyfill.ts
|
|
592
603
|
Symbol.dispose ??= Symbol("Symbol.dispose");
|
|
593
604
|
Symbol.asyncDispose ??= Symbol("Symbol.asyncDispose");
|
|
594
605
|
|
|
595
|
-
//
|
|
606
|
+
// src/defer.ts
|
|
596
607
|
var defer = (fn) => new DeferGuard(fn);
|
|
597
608
|
var DeferGuard = class {
|
|
609
|
+
_fn;
|
|
598
610
|
/**
|
|
599
611
|
* @internal
|
|
600
612
|
*/
|
|
@@ -610,6 +622,7 @@ var DeferGuard = class {
|
|
|
610
622
|
};
|
|
611
623
|
var deferAsync = (fn) => new DeferAsyncGuard(fn);
|
|
612
624
|
var DeferAsyncGuard = class {
|
|
625
|
+
_fn;
|
|
613
626
|
/**
|
|
614
627
|
* @internal
|
|
615
628
|
*/
|
|
@@ -621,9 +634,11 @@ var DeferAsyncGuard = class {
|
|
|
621
634
|
}
|
|
622
635
|
};
|
|
623
636
|
|
|
624
|
-
//
|
|
637
|
+
// src/entry.ts
|
|
625
638
|
var entry = (map, key) => new MapEntry(map, key);
|
|
626
639
|
var MapEntry = class {
|
|
640
|
+
_map;
|
|
641
|
+
_key;
|
|
627
642
|
/**
|
|
628
643
|
* @internal
|
|
629
644
|
*/
|
|
@@ -649,7 +664,7 @@ var MapEntry = class {
|
|
|
649
664
|
}
|
|
650
665
|
};
|
|
651
666
|
|
|
652
|
-
//
|
|
667
|
+
// src/first-two-chars.ts
|
|
653
668
|
var renderableCharRegex = /^(?![\p{Control}\p{Mark}\p{Separator}\p{Surrogate}\p{Unassigned}\p{P}])[\p{L}\p{N}\p{S}\p{Emoji}]$/u;
|
|
654
669
|
var getFirstTwoRenderableChars = (label) => {
|
|
655
670
|
const characters = Array.from(label);
|
|
@@ -676,10 +691,10 @@ var getFirstTwoRenderableChars = (label) => {
|
|
|
676
691
|
return result;
|
|
677
692
|
};
|
|
678
693
|
|
|
679
|
-
//
|
|
694
|
+
// src/for-each-async.ts
|
|
680
695
|
var forEachAsync = (items, fn) => Promise.all(items.map(fn));
|
|
681
696
|
|
|
682
|
-
//
|
|
697
|
+
// src/human-hash.ts
|
|
683
698
|
import { PublicKey } from "@dxos/keys";
|
|
684
699
|
var DEFAULT_WORDLIST = [
|
|
685
700
|
"ack",
|
|
@@ -940,6 +955,7 @@ var DEFAULT_WORDLIST = [
|
|
|
940
955
|
"zulu"
|
|
941
956
|
];
|
|
942
957
|
var HumanHasher = class {
|
|
958
|
+
wordlist;
|
|
943
959
|
/**
|
|
944
960
|
* Transforms hex digests to human-readable strings.
|
|
945
961
|
*
|
|
@@ -1010,7 +1026,7 @@ var humanize = (value) => {
|
|
|
1010
1026
|
return hasher.humanize(value);
|
|
1011
1027
|
};
|
|
1012
1028
|
|
|
1013
|
-
//
|
|
1029
|
+
// src/map.ts
|
|
1014
1030
|
var defaultMap = (map, key, def) => {
|
|
1015
1031
|
let value = map.get(key);
|
|
1016
1032
|
if (value === void 0) {
|
|
@@ -1020,7 +1036,7 @@ var defaultMap = (map, key, def) => {
|
|
|
1020
1036
|
return value;
|
|
1021
1037
|
};
|
|
1022
1038
|
|
|
1023
|
-
//
|
|
1039
|
+
// src/instance-id.ts
|
|
1024
1040
|
var symbol = Symbol.for("dxos.instance-contexts");
|
|
1025
1041
|
var instanceContexts = globalThis[symbol] ??= /* @__PURE__ */ new WeakMap();
|
|
1026
1042
|
var getPrototypeSpecificInstanceId = (instance) => {
|
|
@@ -1044,7 +1060,7 @@ var getDebugName = (instance) => {
|
|
|
1044
1060
|
return `${prototype.constructor?.name ?? "Object"}#${getPrototypeSpecificInstanceId(instance)}`;
|
|
1045
1061
|
};
|
|
1046
1062
|
|
|
1047
|
-
//
|
|
1063
|
+
// src/interval.ts
|
|
1048
1064
|
var exponentialBackoffInterval = (cb, initialInterval) => {
|
|
1049
1065
|
let interval = initialInterval;
|
|
1050
1066
|
const repeat = () => {
|
|
@@ -1056,7 +1072,7 @@ var exponentialBackoffInterval = (cb, initialInterval) => {
|
|
|
1056
1072
|
return () => clearTimeout(timeoutId);
|
|
1057
1073
|
};
|
|
1058
1074
|
|
|
1059
|
-
//
|
|
1075
|
+
// src/join-tables.ts
|
|
1060
1076
|
var joinTables = (leftColumn, rightColumn, left, right) => {
|
|
1061
1077
|
const map = /* @__PURE__ */ new Map();
|
|
1062
1078
|
const used = /* @__PURE__ */ new Set();
|
|
@@ -1077,11 +1093,11 @@ var joinTables = (leftColumn, rightColumn, left, right) => {
|
|
|
1077
1093
|
return result;
|
|
1078
1094
|
};
|
|
1079
1095
|
|
|
1080
|
-
//
|
|
1096
|
+
// src/json.ts
|
|
1081
1097
|
import { inspect as inspect2 } from "@dxos/node-std/util";
|
|
1082
1098
|
import { PublicKey as PublicKey2 } from "@dxos/keys";
|
|
1083
1099
|
|
|
1084
|
-
//
|
|
1100
|
+
// src/uint8array.ts
|
|
1085
1101
|
var arraysEqual = (a, b) => {
|
|
1086
1102
|
if (a.length !== b.length) {
|
|
1087
1103
|
return false;
|
|
@@ -1102,10 +1118,10 @@ var bufferToArray = (buffer) => {
|
|
|
1102
1118
|
var stringToArray = (string) => bufferToArray(Buffer.from(string, "hex"));
|
|
1103
1119
|
var arrayToString = (array) => arrayToBuffer(array).toString("hex");
|
|
1104
1120
|
|
|
1105
|
-
//
|
|
1121
|
+
// src/json.ts
|
|
1106
1122
|
var MAX_DEPTH = 5;
|
|
1107
1123
|
var LOG_MAX_DEPTH = 7;
|
|
1108
|
-
|
|
1124
|
+
var jsonReplacer = (key, value) => {
|
|
1109
1125
|
if (value !== null && typeof value === "object" && typeof value[inspect2.custom] === "function") {
|
|
1110
1126
|
return value[inspect2.custom]();
|
|
1111
1127
|
}
|
|
@@ -1118,7 +1134,7 @@ function jsonReplacer(key, value) {
|
|
|
1118
1134
|
}
|
|
1119
1135
|
}
|
|
1120
1136
|
return value;
|
|
1121
|
-
}
|
|
1137
|
+
};
|
|
1122
1138
|
var jsonify = (value, depth = 0, visitedObjects = /* @__PURE__ */ new WeakSet()) => {
|
|
1123
1139
|
if (depth > MAX_DEPTH) {
|
|
1124
1140
|
return null;
|
|
@@ -1193,7 +1209,7 @@ var jsonKeyReplacer = (options = {}) => (key, value) => {
|
|
|
1193
1209
|
return value;
|
|
1194
1210
|
};
|
|
1195
1211
|
|
|
1196
|
-
//
|
|
1212
|
+
// src/map-values.ts
|
|
1197
1213
|
var mapValues = (obj, fn) => {
|
|
1198
1214
|
const result = {};
|
|
1199
1215
|
Object.keys(obj).forEach((key) => {
|
|
@@ -1205,6 +1221,8 @@ var deepMapValues = (value, fn) => {
|
|
|
1205
1221
|
return new DeepMapper(fn).map(value);
|
|
1206
1222
|
};
|
|
1207
1223
|
var DeepMapper = class {
|
|
1224
|
+
_fn;
|
|
1225
|
+
_cyclic;
|
|
1208
1226
|
constructor(_fn) {
|
|
1209
1227
|
this._fn = _fn;
|
|
1210
1228
|
this._cyclic = /* @__PURE__ */ new Map();
|
|
@@ -1240,11 +1258,14 @@ var DeepMapper = class {
|
|
|
1240
1258
|
}
|
|
1241
1259
|
return this._fn(value, this._recurse, key);
|
|
1242
1260
|
}
|
|
1261
|
+
_recurse;
|
|
1243
1262
|
};
|
|
1244
1263
|
var deepMapValuesAsync = (value, fn) => {
|
|
1245
1264
|
return new DeepMapperAsync(fn).map(value);
|
|
1246
1265
|
};
|
|
1247
1266
|
var DeepMapperAsync = class {
|
|
1267
|
+
_fn;
|
|
1268
|
+
_cyclic;
|
|
1248
1269
|
constructor(_fn) {
|
|
1249
1270
|
this._fn = _fn;
|
|
1250
1271
|
this._cyclic = /* @__PURE__ */ new Map();
|
|
@@ -1280,6 +1301,7 @@ var DeepMapperAsync = class {
|
|
|
1280
1301
|
}
|
|
1281
1302
|
return this._fn(value, this._recurse, key);
|
|
1282
1303
|
}
|
|
1304
|
+
_recurse;
|
|
1283
1305
|
};
|
|
1284
1306
|
var visitValues = (object, visitor) => {
|
|
1285
1307
|
if (Array.isArray(object)) {
|
|
@@ -1291,11 +1313,11 @@ var visitValues = (object, visitor) => {
|
|
|
1291
1313
|
}
|
|
1292
1314
|
};
|
|
1293
1315
|
|
|
1294
|
-
//
|
|
1316
|
+
// src/object.ts
|
|
1295
1317
|
var keys = (obj) => Object.keys(obj);
|
|
1296
1318
|
var entries = (obj) => Object.entries(obj);
|
|
1297
1319
|
|
|
1298
|
-
//
|
|
1320
|
+
// src/order-keys.ts
|
|
1299
1321
|
var orderKeys = (obj, order) => {
|
|
1300
1322
|
const ordered = {};
|
|
1301
1323
|
for (const key of order) {
|
|
@@ -1311,7 +1333,7 @@ var orderKeys = (obj, order) => {
|
|
|
1311
1333
|
return ordered;
|
|
1312
1334
|
};
|
|
1313
1335
|
|
|
1314
|
-
//
|
|
1336
|
+
// src/order.ts
|
|
1315
1337
|
var inferObjectOrder = (objectMap, order = []) => {
|
|
1316
1338
|
const orderedObjects = order.reduce((acc, id) => {
|
|
1317
1339
|
if (id in objectMap) {
|
|
@@ -1338,7 +1360,7 @@ var inferRecordOrder = (objectMap, order = []) => {
|
|
|
1338
1360
|
}, {}), objectMap);
|
|
1339
1361
|
};
|
|
1340
1362
|
|
|
1341
|
-
//
|
|
1363
|
+
// src/pick.ts
|
|
1342
1364
|
var pick = (obj, keys2) => {
|
|
1343
1365
|
return keys2.reduce((result, key) => {
|
|
1344
1366
|
if (obj && key in obj) {
|
|
@@ -1366,7 +1388,7 @@ var omit = (obj, keys2) => {
|
|
|
1366
1388
|
return result;
|
|
1367
1389
|
};
|
|
1368
1390
|
|
|
1369
|
-
//
|
|
1391
|
+
// src/platform.ts
|
|
1370
1392
|
var isNode = () => typeof process !== "undefined" && process.versions != null && process.versions.node != null;
|
|
1371
1393
|
var mobileAndTabletCheck = () => {
|
|
1372
1394
|
let check = false;
|
|
@@ -1407,7 +1429,7 @@ var getHostPlatform = () => {
|
|
|
1407
1429
|
}
|
|
1408
1430
|
};
|
|
1409
1431
|
|
|
1410
|
-
//
|
|
1432
|
+
// src/position.ts
|
|
1411
1433
|
var byPosition = ({ position: a = "static" }, { position: b = "static" }) => {
|
|
1412
1434
|
if (a === b) {
|
|
1413
1435
|
return 0;
|
|
@@ -1420,14 +1442,14 @@ var byPosition = ({ position: a = "static" }, { position: b = "static" }) => {
|
|
|
1420
1442
|
}
|
|
1421
1443
|
};
|
|
1422
1444
|
|
|
1423
|
-
//
|
|
1445
|
+
// src/random.ts
|
|
1424
1446
|
var randomInt = (max, min = 0) => {
|
|
1425
1447
|
min = Math.ceil(min);
|
|
1426
1448
|
max = Math.floor(max);
|
|
1427
1449
|
return Math.floor(Math.random() * (max - min + 1)) + min;
|
|
1428
1450
|
};
|
|
1429
1451
|
|
|
1430
|
-
//
|
|
1452
|
+
// src/range.ts
|
|
1431
1453
|
var range = (n = 0, mapper) => {
|
|
1432
1454
|
const range2 = Array.from(Array(n).keys());
|
|
1433
1455
|
return mapper == null ? range2 : range2.map(mapper);
|
|
@@ -1439,7 +1461,7 @@ var clamp = (value, min, max) => {
|
|
|
1439
1461
|
return Math.min(Math.max(value, min), max);
|
|
1440
1462
|
};
|
|
1441
1463
|
|
|
1442
|
-
//
|
|
1464
|
+
// src/reducers.ts
|
|
1443
1465
|
var accessBy = (value, accessor) => typeof accessor === "function" ? accessor(value) : value[accessor];
|
|
1444
1466
|
var median = (values) => {
|
|
1445
1467
|
const mid = Math.floor(values.length / 2);
|
|
@@ -1525,7 +1547,7 @@ var createBucketReducer = (period) => ({
|
|
|
1525
1547
|
}
|
|
1526
1548
|
});
|
|
1527
1549
|
|
|
1528
|
-
//
|
|
1550
|
+
// src/remove-undefined-keys.ts
|
|
1529
1551
|
var removeUndefinedProperties = (object) => {
|
|
1530
1552
|
for (const prop of [
|
|
1531
1553
|
...Object.getOwnPropertyNames(object),
|
|
@@ -1566,7 +1588,7 @@ var removeProperties = (root, condition) => {
|
|
|
1566
1588
|
return result;
|
|
1567
1589
|
};
|
|
1568
1590
|
|
|
1569
|
-
//
|
|
1591
|
+
// src/safe-await.ts
|
|
1570
1592
|
var safeAwaitAll = async (source, taskFactory, onError) => {
|
|
1571
1593
|
const failedItems = [];
|
|
1572
1594
|
await Promise.all([
|
|
@@ -1584,7 +1606,7 @@ var safeAwaitAll = async (source, taskFactory, onError) => {
|
|
|
1584
1606
|
return failedItems;
|
|
1585
1607
|
};
|
|
1586
1608
|
|
|
1587
|
-
//
|
|
1609
|
+
// src/safe-instanceof.ts
|
|
1588
1610
|
var instanceTag = Symbol("instanceTag");
|
|
1589
1611
|
var safeInstanceof = (tag) => (target) => {
|
|
1590
1612
|
target.prototype[instanceTag] = tag;
|
|
@@ -1596,7 +1618,7 @@ var safeInstanceof = (tag) => (target) => {
|
|
|
1596
1618
|
});
|
|
1597
1619
|
};
|
|
1598
1620
|
|
|
1599
|
-
//
|
|
1621
|
+
// src/safe-parse.ts
|
|
1600
1622
|
var safeParseInt = (value, defaultValue) => {
|
|
1601
1623
|
try {
|
|
1602
1624
|
const n = parseInt(value ?? "");
|
|
@@ -1622,12 +1644,14 @@ var safeParseJson = (data, defaultValue) => {
|
|
|
1622
1644
|
return defaultValue;
|
|
1623
1645
|
};
|
|
1624
1646
|
|
|
1625
|
-
//
|
|
1647
|
+
// src/sliding-window-summary.ts
|
|
1626
1648
|
import { invariant as invariant5 } from "@dxos/invariant";
|
|
1627
|
-
var __dxlog_file5 = "/
|
|
1649
|
+
var __dxlog_file5 = "/__w/dxos/dxos/packages/common/util/src/sliding-window-summary.ts";
|
|
1628
1650
|
var SlidingWindowSummary = class {
|
|
1651
|
+
_buffer;
|
|
1652
|
+
_sum = 0;
|
|
1653
|
+
_precision;
|
|
1629
1654
|
constructor(options) {
|
|
1630
|
-
this._sum = 0;
|
|
1631
1655
|
this._buffer = new CircularBuffer(options.dataPoints);
|
|
1632
1656
|
if (options.precision != null) {
|
|
1633
1657
|
invariant5(options.precision >= 0, void 0, {
|
|
@@ -1678,7 +1702,7 @@ var SlidingWindowSummary = class {
|
|
|
1678
1702
|
}
|
|
1679
1703
|
};
|
|
1680
1704
|
|
|
1681
|
-
//
|
|
1705
|
+
// src/sort.ts
|
|
1682
1706
|
var compareScalar = (inc = true) => (a, b) => (inc ? 1 : -1) * (a < b ? -1 : a > b ? 1 : 0);
|
|
1683
1707
|
var compareString = (inc = true, caseInsensitive = true) => (a, b) => {
|
|
1684
1708
|
if (caseInsensitive) {
|
|
@@ -1700,25 +1724,42 @@ var compareMulti = (sorters) => (a, b) => {
|
|
|
1700
1724
|
return sort();
|
|
1701
1725
|
};
|
|
1702
1726
|
|
|
1703
|
-
//
|
|
1727
|
+
// src/string.ts
|
|
1704
1728
|
var capitalize = (str) => {
|
|
1705
1729
|
if (str.length === 0) {
|
|
1706
1730
|
return "";
|
|
1707
1731
|
}
|
|
1708
1732
|
return str.charAt(0).toUpperCase() + str.slice(1);
|
|
1709
1733
|
};
|
|
1734
|
+
function trim(strings, ...values) {
|
|
1735
|
+
const raw = strings.reduce((out, str, i) => {
|
|
1736
|
+
out += str;
|
|
1737
|
+
if (i < values.length) {
|
|
1738
|
+
const match = str.match(/(^|\n)([ \t]*)$/);
|
|
1739
|
+
const baseIndent = match ? match[2] : "";
|
|
1740
|
+
const val = String(values[i]).replace(/\r?\n/g, "\n" + baseIndent);
|
|
1741
|
+
out += val;
|
|
1742
|
+
}
|
|
1743
|
+
return out;
|
|
1744
|
+
}, "");
|
|
1745
|
+
const lines = raw.split("\n");
|
|
1746
|
+
while (lines.length && !lines[0].trim()) lines.shift();
|
|
1747
|
+
while (lines.length && !lines[lines.length - 1].trim()) lines.pop();
|
|
1748
|
+
const minIndent = Math.min(...lines.filter((l) => l.trim()).map((l) => l.match(/^[ \t]*/)?.[0].length ?? 0));
|
|
1749
|
+
return lines.map((l) => l.slice(minIndent)).join("\n");
|
|
1750
|
+
}
|
|
1710
1751
|
|
|
1711
|
-
//
|
|
1752
|
+
// src/sum.ts
|
|
1712
1753
|
var sum = (values) => values.reduce((a, b) => a + b, 0);
|
|
1713
1754
|
|
|
1714
|
-
//
|
|
1755
|
+
// src/throw-unhandled-error.ts
|
|
1715
1756
|
var throwUnhandledError = (error) => {
|
|
1716
1757
|
queueMicrotask(() => {
|
|
1717
1758
|
throw error;
|
|
1718
1759
|
});
|
|
1719
1760
|
};
|
|
1720
1761
|
|
|
1721
|
-
//
|
|
1762
|
+
// src/to-fallback.ts
|
|
1722
1763
|
var idEmoji = [
|
|
1723
1764
|
// When changing this set, please check the result in a console or e.g. RunKit (https://runkit.com/thure/642214441dd6ae000855a8de)
|
|
1724
1765
|
// Emoji sometimes use a combination of code points, and some code points aren't visible on their own, so by adding or deleting you may unintentionally create non-visible items.
|
|
@@ -1903,12 +1944,10 @@ var toFallback = (hash) => {
|
|
|
1903
1944
|
};
|
|
1904
1945
|
};
|
|
1905
1946
|
|
|
1906
|
-
//
|
|
1947
|
+
// src/tracer.ts
|
|
1907
1948
|
var Tracer = class {
|
|
1908
|
-
|
|
1909
|
-
|
|
1910
|
-
this._recording = false;
|
|
1911
|
-
}
|
|
1949
|
+
_events = /* @__PURE__ */ new Map();
|
|
1950
|
+
_recording = false;
|
|
1912
1951
|
// TODO(burdon): Start/stop methods for recording data? By id?
|
|
1913
1952
|
// Alternatively, enable subscriptions to track/compute series.
|
|
1914
1953
|
// TODO(burdon): Hierarchical traces?
|
|
@@ -1968,7 +2007,7 @@ var Tracer = class {
|
|
|
1968
2007
|
};
|
|
1969
2008
|
var tracer = new Tracer();
|
|
1970
2009
|
|
|
1971
|
-
//
|
|
2010
|
+
// src/tree.ts
|
|
1972
2011
|
import { truncateKey } from "@dxos/debug";
|
|
1973
2012
|
var stringifyTree = (node, ancestors = [], rows = []) => {
|
|
1974
2013
|
if (node.children?.length) {
|
|
@@ -2008,7 +2047,7 @@ var stringifyTree = (node, ancestors = [], rows = []) => {
|
|
|
2008
2047
|
return rows;
|
|
2009
2048
|
};
|
|
2010
2049
|
|
|
2011
|
-
//
|
|
2050
|
+
// src/types.ts
|
|
2012
2051
|
var isNotFalsy = (value) => !!value;
|
|
2013
2052
|
var isNonNullable = (value) => value != null;
|
|
2014
2053
|
var doAsync = async (fn) => fn();
|
|
@@ -2040,13 +2079,22 @@ var arrayMove = (array, from, to) => {
|
|
|
2040
2079
|
return array;
|
|
2041
2080
|
};
|
|
2042
2081
|
|
|
2043
|
-
//
|
|
2082
|
+
// src/url.ts
|
|
2083
|
+
var createUrl = (url, search) => {
|
|
2084
|
+
const base = typeof url === "string" ? new URL(url) : url;
|
|
2085
|
+
if (search) {
|
|
2086
|
+
base.search = new URLSearchParams(Object.entries(search).filter(([_, value]) => value != null)).toString();
|
|
2087
|
+
}
|
|
2088
|
+
return base;
|
|
2089
|
+
};
|
|
2090
|
+
|
|
2091
|
+
// src/weak.ts
|
|
2044
2092
|
var WeakDictionary = class {
|
|
2093
|
+
_internal = /* @__PURE__ */ new Map();
|
|
2094
|
+
_finalization = new FinalizationRegistry((cleanUpCallback) => {
|
|
2095
|
+
cleanUpCallback();
|
|
2096
|
+
});
|
|
2045
2097
|
constructor(entries2) {
|
|
2046
|
-
this._internal = /* @__PURE__ */ new Map();
|
|
2047
|
-
this._finalization = new FinalizationRegistry((cleanUpCallback) => {
|
|
2048
|
-
cleanUpCallback();
|
|
2049
|
-
});
|
|
2050
2098
|
this._internal = new Map(entries2?.map(([key, value]) => [
|
|
2051
2099
|
key,
|
|
2052
2100
|
new WeakRef(value)
|
|
@@ -2134,10 +2182,6 @@ var WeakDictionary = class {
|
|
|
2134
2182
|
this._finalization.unregister(value);
|
|
2135
2183
|
}
|
|
2136
2184
|
};
|
|
2137
|
-
|
|
2138
|
-
// packages/common/util/src/assume.ts
|
|
2139
|
-
function assumeType(value) {
|
|
2140
|
-
}
|
|
2141
2185
|
export {
|
|
2142
2186
|
BitField,
|
|
2143
2187
|
Callback,
|
|
@@ -2171,6 +2215,7 @@ export {
|
|
|
2171
2215
|
createBucketReducer,
|
|
2172
2216
|
createGroupReducer,
|
|
2173
2217
|
createSetDispatch,
|
|
2218
|
+
createUrl,
|
|
2174
2219
|
decamelize,
|
|
2175
2220
|
deepMapValues,
|
|
2176
2221
|
deepMapValuesAsync,
|
|
@@ -2256,6 +2301,7 @@ export {
|
|
|
2256
2301
|
toFallback,
|
|
2257
2302
|
toHue,
|
|
2258
2303
|
tracer,
|
|
2304
|
+
trim,
|
|
2259
2305
|
visitValues
|
|
2260
2306
|
};
|
|
2261
2307
|
//# sourceMappingURL=index.mjs.map
|