@dxos/util 0.8.4-main.548089c → 0.8.4-main.59c2e9b
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 +146 -37
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/node-esm/index.mjs +146 -37
- 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 +2 -1
- package/dist/types/src/array.d.ts.map +1 -1
- package/dist/types/src/deep.d.ts.map +1 -1
- package/dist/types/src/defer.d.ts +1 -1
- package/dist/types/src/defer.d.ts.map +1 -1
- package/dist/types/src/error-format.d.ts +5 -0
- package/dist/types/src/error-format.d.ts.map +1 -0
- package/dist/types/src/filename.d.ts +9 -0
- package/dist/types/src/filename.d.ts.map +1 -0
- package/dist/types/src/index.d.ts +3 -0
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/platform.d.ts +4 -1
- package/dist/types/src/platform.d.ts.map +1 -1
- package/dist/types/src/retry.d.ts +32 -0
- package/dist/types/src/retry.d.ts.map +1 -0
- package/dist/types/src/safe-parse.d.ts +6 -4
- package/dist/types/src/safe-parse.d.ts.map +1 -1
- package/dist/types/src/safe-stringify.d.ts +9 -0
- package/dist/types/src/safe-stringify.d.ts.map +1 -1
- package/dist/types/src/types.d.ts +22 -4
- package/dist/types/src/types.d.ts.map +1 -1
- package/dist/types/src/unit.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +12 -7
- package/src/array.ts +8 -1
- package/src/deep.ts +2 -0
- package/src/defer.ts +1 -1
- package/src/error-format.ts +22 -0
- package/src/filename.ts +16 -0
- package/src/index.ts +3 -0
- package/src/platform.ts +11 -1
- package/src/retry.ts +74 -0
- package/src/safe-parse.ts +19 -16
- package/src/safe-stringify.ts +65 -23
- package/src/types.test.ts +11 -1
- package/src/types.ts +37 -9
- package/src/unit.ts +1 -0
- package/dist/types/src/explicit-resource-management-polyfill.d.ts +0 -1
- package/dist/types/src/explicit-resource-management-polyfill.d.ts.map +0 -1
- package/src/explicit-resource-management-polyfill.ts +0 -13
|
@@ -97,6 +97,14 @@ var intersectBy = (arrays, selector) => {
|
|
|
97
97
|
return lookups.every((lookup) => lookup.has(key));
|
|
98
98
|
});
|
|
99
99
|
};
|
|
100
|
+
var coerceArray = (arr) => {
|
|
101
|
+
if (arr === void 0) {
|
|
102
|
+
return [];
|
|
103
|
+
}
|
|
104
|
+
return Array.isArray(arr) ? arr : [
|
|
105
|
+
arr
|
|
106
|
+
];
|
|
107
|
+
};
|
|
100
108
|
|
|
101
109
|
// src/assume.ts
|
|
102
110
|
function assumeType(value) {
|
|
@@ -596,11 +604,8 @@ var getDeep = (obj, path) => {
|
|
|
596
604
|
// src/defer-function.ts
|
|
597
605
|
var deferFunction = (fnProvider) => (...args) => fnProvider()(...args);
|
|
598
606
|
|
|
599
|
-
// src/explicit-resource-management-polyfill.ts
|
|
600
|
-
Symbol.dispose ??= Symbol("Symbol.dispose");
|
|
601
|
-
Symbol.asyncDispose ??= Symbol("Symbol.asyncDispose");
|
|
602
|
-
|
|
603
607
|
// src/defer.ts
|
|
608
|
+
import "@hazae41/symbol-dispose-polyfill";
|
|
604
609
|
var defer = (fn) => new DeferGuard(fn);
|
|
605
610
|
var DeferGuard = class {
|
|
606
611
|
_fn;
|
|
@@ -661,6 +666,12 @@ var MapEntry = class {
|
|
|
661
666
|
}
|
|
662
667
|
};
|
|
663
668
|
|
|
669
|
+
// src/filename.ts
|
|
670
|
+
var createFilename = ({ parts = [], ext, date = /* @__PURE__ */ new Date() }) => [
|
|
671
|
+
date.toISOString().replace(/[:.]/g, "-"),
|
|
672
|
+
...parts
|
|
673
|
+
].join("_") + (ext ? `.${ext}` : "");
|
|
674
|
+
|
|
664
675
|
// src/for-each-async.ts
|
|
665
676
|
var forEachAsync = (items, fn) => Promise.all(items.map(fn));
|
|
666
677
|
|
|
@@ -1356,7 +1367,18 @@ var omit = (obj, keys2) => {
|
|
|
1356
1367
|
|
|
1357
1368
|
// src/platform.ts
|
|
1358
1369
|
var isNode = () => typeof process !== "undefined" && process.versions != null && process.versions.node != null;
|
|
1359
|
-
var
|
|
1370
|
+
var isBun = () => globalThis.Bun !== void 0;
|
|
1371
|
+
var isTauri = () => !!globalThis.__TAURI__;
|
|
1372
|
+
var isMobile = () => {
|
|
1373
|
+
let check = false;
|
|
1374
|
+
(function(a) {
|
|
1375
|
+
if (/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0, 4))) {
|
|
1376
|
+
check = true;
|
|
1377
|
+
}
|
|
1378
|
+
})(navigator.userAgent || navigator.vendor || window.opera);
|
|
1379
|
+
return check;
|
|
1380
|
+
};
|
|
1381
|
+
var isMobileOrTablet = () => {
|
|
1360
1382
|
let check = false;
|
|
1361
1383
|
((a) => {
|
|
1362
1384
|
if (/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0, 4))) {
|
|
@@ -1585,25 +1607,26 @@ var safeInstanceof = (tag) => (target) => {
|
|
|
1585
1607
|
};
|
|
1586
1608
|
|
|
1587
1609
|
// src/safe-parse.ts
|
|
1588
|
-
|
|
1610
|
+
function safeParseInt(str, defaultValue) {
|
|
1589
1611
|
try {
|
|
1590
|
-
const
|
|
1591
|
-
return isNaN(
|
|
1612
|
+
const value = parseInt(str ?? "");
|
|
1613
|
+
return isNaN(value) ? defaultValue : value;
|
|
1592
1614
|
} catch {
|
|
1593
1615
|
return defaultValue;
|
|
1594
1616
|
}
|
|
1595
|
-
}
|
|
1596
|
-
|
|
1617
|
+
}
|
|
1618
|
+
function safeParseFloat(str, defaultValue) {
|
|
1597
1619
|
try {
|
|
1598
|
-
|
|
1620
|
+
const value = parseFloat(str ?? "");
|
|
1621
|
+
return isNaN(value) ? defaultValue : value;
|
|
1599
1622
|
} catch {
|
|
1600
|
-
return defaultValue
|
|
1623
|
+
return defaultValue;
|
|
1601
1624
|
}
|
|
1602
|
-
}
|
|
1603
|
-
var safeParseJson = (
|
|
1604
|
-
if (
|
|
1625
|
+
}
|
|
1626
|
+
var safeParseJson = (str, defaultValue) => {
|
|
1627
|
+
if (str && str.length > 0) {
|
|
1605
1628
|
try {
|
|
1606
|
-
return JSON.parse(
|
|
1629
|
+
return JSON.parse(str);
|
|
1607
1630
|
} catch {
|
|
1608
1631
|
}
|
|
1609
1632
|
}
|
|
@@ -1613,29 +1636,45 @@ var safeParseJson = (data, defaultValue) => {
|
|
|
1613
1636
|
// src/safe-stringify.ts
|
|
1614
1637
|
var SKIP = Object.freeze({});
|
|
1615
1638
|
function safeStringify(obj, filter = defaultFilter, indent = 2) {
|
|
1616
|
-
const seen = /* @__PURE__ */ new
|
|
1639
|
+
const seen = /* @__PURE__ */ new WeakMap();
|
|
1617
1640
|
function replacer(key, value) {
|
|
1618
|
-
|
|
1619
|
-
|
|
1620
|
-
|
|
1641
|
+
try {
|
|
1642
|
+
let path = key;
|
|
1643
|
+
if (!key) {
|
|
1644
|
+
path = "$";
|
|
1645
|
+
return value;
|
|
1646
|
+
} else if (this) {
|
|
1647
|
+
const parentPath = seen.get(this);
|
|
1648
|
+
path = parentPath ? `${parentPath}.${key}` : key;
|
|
1621
1649
|
}
|
|
1622
|
-
|
|
1623
|
-
|
|
1624
|
-
|
|
1625
|
-
|
|
1626
|
-
|
|
1627
|
-
|
|
1650
|
+
if (value == null) {
|
|
1651
|
+
return value;
|
|
1652
|
+
}
|
|
1653
|
+
if (typeof value === "function") {
|
|
1654
|
+
return void 0;
|
|
1655
|
+
}
|
|
1656
|
+
if (typeof value === "object" && Object.getPrototypeOf(value) !== Object.prototype) {
|
|
1657
|
+
return void 0;
|
|
1658
|
+
}
|
|
1659
|
+
if (typeof value === "object" && value !== null) {
|
|
1660
|
+
const exists = seen.get(value);
|
|
1661
|
+
if (exists) {
|
|
1662
|
+
return `[${path} => ${exists}]`;
|
|
1663
|
+
}
|
|
1664
|
+
seen.set(value, path);
|
|
1665
|
+
}
|
|
1666
|
+
if (filter) {
|
|
1667
|
+
const filteredValue = filter?.(key, value);
|
|
1668
|
+
if (filteredValue !== void 0) {
|
|
1669
|
+
return filteredValue === SKIP ? void 0 : filteredValue;
|
|
1670
|
+
}
|
|
1628
1671
|
}
|
|
1672
|
+
return value;
|
|
1673
|
+
} catch (error) {
|
|
1674
|
+
return `ERROR: ${error.message}`;
|
|
1629
1675
|
}
|
|
1630
|
-
return value;
|
|
1631
|
-
}
|
|
1632
|
-
let result = "";
|
|
1633
|
-
try {
|
|
1634
|
-
result = JSON.stringify(obj, replacer, indent);
|
|
1635
|
-
} catch (error) {
|
|
1636
|
-
result = `Error: ${error.message}`;
|
|
1637
1676
|
}
|
|
1638
|
-
return
|
|
1677
|
+
return JSON.stringify(obj, replacer, indent);
|
|
1639
1678
|
}
|
|
1640
1679
|
var createReplacer = ({ omit: omit2, parse, maxDepth, maxArrayLen, maxStringLen } = {}) => {
|
|
1641
1680
|
let currentDepth = 0;
|
|
@@ -1648,7 +1687,7 @@ var createReplacer = ({ omit: omit2, parse, maxDepth, maxArrayLen, maxStringLen
|
|
|
1648
1687
|
currentDepth = parentDepth + 1;
|
|
1649
1688
|
}
|
|
1650
1689
|
if (typeof value === "function") {
|
|
1651
|
-
return
|
|
1690
|
+
return SKIP;
|
|
1652
1691
|
}
|
|
1653
1692
|
if (value && typeof value === "object") {
|
|
1654
1693
|
depthMap.set(value, currentDepth);
|
|
@@ -1657,7 +1696,7 @@ var createReplacer = ({ omit: omit2, parse, maxDepth, maxArrayLen, maxStringLen
|
|
|
1657
1696
|
}
|
|
1658
1697
|
}
|
|
1659
1698
|
if (omit2?.includes(key)) {
|
|
1660
|
-
return
|
|
1699
|
+
return SKIP;
|
|
1661
1700
|
}
|
|
1662
1701
|
if (parse?.includes(key) && typeof value === "string") {
|
|
1663
1702
|
try {
|
|
@@ -2112,6 +2151,12 @@ var arrayMove = (array, from, to) => {
|
|
|
2112
2151
|
array.splice(to < 0 ? array.length + to : to, 0, array.splice(from, 1)[0]);
|
|
2113
2152
|
return array;
|
|
2114
2153
|
};
|
|
2154
|
+
function arraySwap(array, from, to) {
|
|
2155
|
+
const current = array[from];
|
|
2156
|
+
array[from] = array[to];
|
|
2157
|
+
array[to] = current;
|
|
2158
|
+
return array;
|
|
2159
|
+
}
|
|
2115
2160
|
|
|
2116
2161
|
// src/unit.ts
|
|
2117
2162
|
var createFormat = (unit) => {
|
|
@@ -2156,6 +2201,10 @@ var Unit = {
|
|
|
2156
2201
|
quotient: 1e3,
|
|
2157
2202
|
precision: 2
|
|
2158
2203
|
}),
|
|
2204
|
+
Byte: createFormat({
|
|
2205
|
+
symbol: "B",
|
|
2206
|
+
quotient: 1
|
|
2207
|
+
}),
|
|
2159
2208
|
// Time.
|
|
2160
2209
|
Hour: createFormat({
|
|
2161
2210
|
symbol: "h",
|
|
@@ -2313,6 +2362,58 @@ var WeakDictionary = class {
|
|
|
2313
2362
|
this._finalization.unregister(value);
|
|
2314
2363
|
}
|
|
2315
2364
|
};
|
|
2365
|
+
|
|
2366
|
+
// src/error-format.ts
|
|
2367
|
+
var formatErrorWithCauses = (error) => {
|
|
2368
|
+
const lines = [];
|
|
2369
|
+
let current = error;
|
|
2370
|
+
let level = 0;
|
|
2371
|
+
while (current) {
|
|
2372
|
+
const prefix = level === 0 ? "" : `Caused by: `;
|
|
2373
|
+
lines.push(prefix + (current.stack ?? String(current)));
|
|
2374
|
+
if (!(current.cause instanceof Error)) break;
|
|
2375
|
+
current = current.cause;
|
|
2376
|
+
level += 1;
|
|
2377
|
+
}
|
|
2378
|
+
return lines.join("\n\n");
|
|
2379
|
+
};
|
|
2380
|
+
|
|
2381
|
+
// src/retry.ts
|
|
2382
|
+
var DEFAULT_RETRY_OPTIONS = {
|
|
2383
|
+
count: 3,
|
|
2384
|
+
delayMs: 100,
|
|
2385
|
+
exponent: 2,
|
|
2386
|
+
retryOnError: async () => true,
|
|
2387
|
+
retryOnValue: async () => false
|
|
2388
|
+
};
|
|
2389
|
+
var retry = async (options, cb) => {
|
|
2390
|
+
const fullOptions = {
|
|
2391
|
+
...DEFAULT_RETRY_OPTIONS,
|
|
2392
|
+
...options
|
|
2393
|
+
};
|
|
2394
|
+
let numRetries = 0, currentDelay = fullOptions.delayMs;
|
|
2395
|
+
while (true) {
|
|
2396
|
+
let result;
|
|
2397
|
+
try {
|
|
2398
|
+
result = await cb();
|
|
2399
|
+
} catch (err) {
|
|
2400
|
+
if (numRetries > fullOptions.count || !await fullOptions.retryOnError(err)) {
|
|
2401
|
+
throw err;
|
|
2402
|
+
}
|
|
2403
|
+
await new Promise((resolve) => setTimeout(resolve, currentDelay));
|
|
2404
|
+
currentDelay *= fullOptions.exponent;
|
|
2405
|
+
numRetries++;
|
|
2406
|
+
continue;
|
|
2407
|
+
}
|
|
2408
|
+
if (!await fullOptions.retryOnValue(result)) {
|
|
2409
|
+
return result;
|
|
2410
|
+
}
|
|
2411
|
+
await new Promise((resolve) => setTimeout(resolve, currentDelay));
|
|
2412
|
+
currentDelay *= fullOptions.exponent;
|
|
2413
|
+
numRetries++;
|
|
2414
|
+
continue;
|
|
2415
|
+
}
|
|
2416
|
+
};
|
|
2316
2417
|
export {
|
|
2317
2418
|
BitField,
|
|
2318
2419
|
Callback,
|
|
@@ -2329,6 +2430,7 @@ export {
|
|
|
2329
2430
|
WeakDictionary,
|
|
2330
2431
|
accessBy,
|
|
2331
2432
|
arrayMove,
|
|
2433
|
+
arraySwap,
|
|
2332
2434
|
arrayToBuffer,
|
|
2333
2435
|
arrayToHex,
|
|
2334
2436
|
arrayToString,
|
|
@@ -2340,12 +2442,14 @@ export {
|
|
|
2340
2442
|
chunkArray,
|
|
2341
2443
|
clamp,
|
|
2342
2444
|
clearUndefined,
|
|
2445
|
+
coerceArray,
|
|
2343
2446
|
compareMulti,
|
|
2344
2447
|
compareObject,
|
|
2345
2448
|
compareScalar,
|
|
2346
2449
|
compareString,
|
|
2347
2450
|
createBinder,
|
|
2348
2451
|
createBucketReducer,
|
|
2452
|
+
createFilename,
|
|
2349
2453
|
createGroupReducer,
|
|
2350
2454
|
createReplacer,
|
|
2351
2455
|
createSetDispatch,
|
|
@@ -2365,6 +2469,7 @@ export {
|
|
|
2365
2469
|
entry,
|
|
2366
2470
|
exponentialBackoffInterval,
|
|
2367
2471
|
forEachAsync,
|
|
2472
|
+
formatErrorWithCauses,
|
|
2368
2473
|
get,
|
|
2369
2474
|
getAsyncProviderValue,
|
|
2370
2475
|
getDate,
|
|
@@ -2385,8 +2490,12 @@ export {
|
|
|
2385
2490
|
intersectBy,
|
|
2386
2491
|
intersection,
|
|
2387
2492
|
iosCheck,
|
|
2493
|
+
isBun,
|
|
2494
|
+
isMobile,
|
|
2495
|
+
isMobileOrTablet,
|
|
2388
2496
|
isNode,
|
|
2389
2497
|
isNonNullable,
|
|
2498
|
+
isTauri,
|
|
2390
2499
|
isTruthy,
|
|
2391
2500
|
joinTables,
|
|
2392
2501
|
jsonKeyReplacer,
|
|
@@ -2402,7 +2511,6 @@ export {
|
|
|
2402
2511
|
makeSet,
|
|
2403
2512
|
mapValues,
|
|
2404
2513
|
median,
|
|
2405
|
-
mobileAndTabletCheck,
|
|
2406
2514
|
numericalValues,
|
|
2407
2515
|
omit,
|
|
2408
2516
|
orderKeys,
|
|
@@ -2418,6 +2526,7 @@ export {
|
|
|
2418
2526
|
removeBy,
|
|
2419
2527
|
removeProperties,
|
|
2420
2528
|
removeUndefinedProperties,
|
|
2529
|
+
retry,
|
|
2421
2530
|
safariCheck,
|
|
2422
2531
|
safeAwaitAll,
|
|
2423
2532
|
safeInstanceof,
|