@ls-stack/utils 3.65.0 → 3.66.0
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/{arrayUtils.d.cts → arrayUtils.d.mts} +24 -23
- package/dist/arrayUtils.mjs +249 -0
- package/dist/assertions-qMxfVhSu.mjs +207 -0
- package/dist/{assertions.d.ts → assertions.d.mts} +4 -3
- package/dist/assertions.mjs +3 -0
- package/dist/asyncQueue.d.mts +497 -0
- package/dist/asyncQueue.mjs +757 -0
- package/dist/{awaitDebounce.d.cts → awaitDebounce.d.mts} +11 -6
- package/dist/awaitDebounce.mjs +54 -0
- package/dist/{cache.d.ts → cache.d.mts} +76 -68
- package/dist/cache.mjs +355 -0
- package/dist/castValues-DfICShCc.mjs +19 -0
- package/dist/{castValues.d.cts → castValues.d.mts} +3 -2
- package/dist/castValues.mjs +3 -0
- package/dist/{concurrentCalls.d.ts → concurrentCalls.d.mts} +74 -65
- package/dist/concurrentCalls.mjs +295 -0
- package/dist/consoleFmt.d.mts +55 -0
- package/dist/consoleFmt.mjs +63 -0
- package/dist/conversions-DTmwEMIu.mjs +12 -0
- package/dist/conversions.d.mts +4 -0
- package/dist/conversions.mjs +3 -0
- package/dist/createThrottleController.d.mts +18 -0
- package/dist/createThrottleController.mjs +40 -0
- package/dist/debounce.d.mts +47 -0
- package/dist/debounce.mjs +117 -0
- package/dist/dedent.d.mts +74 -0
- package/dist/dedent.mjs +80 -0
- package/dist/deepEqual-C7EZEixx.mjs +78 -0
- package/dist/{deepEqual.d.cts → deepEqual.d.mts} +3 -2
- package/dist/deepEqual.mjs +3 -0
- package/dist/{deepReplaceValues.d.cts → deepReplaceValues.d.mts} +4 -3
- package/dist/deepReplaceValues.mjs +61 -0
- package/dist/diffParser.d.mts +63 -0
- package/dist/diffParser.mjs +410 -0
- package/dist/enhancedMap.d.mts +21 -0
- package/dist/enhancedMap.mjs +69 -0
- package/dist/exhaustiveMatch.d.mts +10 -0
- package/dist/exhaustiveMatch.mjs +48 -0
- package/dist/{filterObjectOrArrayKeys.d.cts → filterObjectOrArrayKeys.d.mts} +15 -8
- package/dist/filterObjectOrArrayKeys.mjs +497 -0
- package/dist/{getAutoIncrementId.d.cts → getAutoIncrementId.d.mts} +9 -5
- package/dist/getAutoIncrementId.mjs +53 -0
- package/dist/{getCompositeKey.d.cts → getCompositeKey.d.mts} +3 -2
- package/dist/getCompositeKey.mjs +50 -0
- package/dist/{getValueStableKey.d.cts → getValueStableKey.d.mts} +5 -3
- package/dist/getValueStableKey.mjs +17 -0
- package/dist/{hash.d.cts → hash.d.mts} +3 -2
- package/dist/hash.mjs +28 -0
- package/dist/interpolate.d.mts +17 -0
- package/dist/interpolate.mjs +28 -0
- package/dist/{iteratorUtils.d.cts → iteratorUtils.d.mts} +5 -4
- package/dist/iteratorUtils.mjs +39 -0
- package/dist/keepPrevIfUnchanged.d.mts +12 -0
- package/dist/keepPrevIfUnchanged.mjs +9 -0
- package/dist/keyedMap.d.mts +76 -0
- package/dist/keyedMap.mjs +139 -0
- package/dist/keyedSet.d.mts +77 -0
- package/dist/keyedSet.mjs +129 -0
- package/dist/{levenshtein.d.cts → levenshtein.d.mts} +3 -2
- package/dist/levenshtein.mjs +121 -0
- package/dist/main.d.mts +4 -0
- package/dist/main.mjs +7 -0
- package/dist/matchPath.d.mts +50 -0
- package/dist/matchPath.mjs +81 -0
- package/dist/mathUtils-BDP1lM_z.mjs +81 -0
- package/dist/{mathUtils.d.cts → mathUtils.d.mts} +3 -2
- package/dist/mathUtils.mjs +3 -0
- package/dist/{mutationUtils.d.cts → mutationUtils.d.mts} +6 -5
- package/dist/mutationUtils.mjs +44 -0
- package/dist/{objUtils.d.ts → objUtils.d.mts} +8 -6
- package/dist/objUtils.mjs +115 -0
- package/dist/parallelAsyncCalls.d.mts +83 -0
- package/dist/parallelAsyncCalls.mjs +121 -0
- package/dist/partialEqual.d.mts +139 -0
- package/dist/partialEqual.mjs +1055 -0
- package/dist/promiseUtils.d.mts +9 -0
- package/dist/promiseUtils.mjs +17 -0
- package/dist/regexUtils.d.mts +18 -0
- package/dist/regexUtils.mjs +34 -0
- package/dist/{retryOnError.d.cts → retryOnError.d.mts} +38 -37
- package/dist/retryOnError.mjs +91 -0
- package/dist/{runShellCmd.d.ts → runShellCmd.d.mts} +24 -15
- package/dist/runShellCmd.mjs +151 -0
- package/dist/{safeJson.d.cts → safeJson.d.mts} +3 -2
- package/dist/safeJson.mjs +30 -0
- package/dist/{saferTyping.d.cts → saferTyping.d.mts} +4 -3
- package/dist/saferTyping.mjs +45 -0
- package/dist/serializeXML.d.mts +23 -0
- package/dist/serializeXML.mjs +74 -0
- package/dist/{shallowEqual.d.cts → shallowEqual.d.mts} +3 -2
- package/dist/shallowEqual.mjs +54 -0
- package/dist/sleep.d.mts +4 -0
- package/dist/sleep.mjs +7 -0
- package/dist/stringUtils-DjhWOiYn.mjs +113 -0
- package/dist/{stringUtils.d.cts → stringUtils.d.mts} +3 -2
- package/dist/stringUtils.mjs +3 -0
- package/dist/{testUtils.d.ts → testUtils.d.mts} +83 -52
- package/dist/testUtils.mjs +310 -0
- package/dist/{throttle.d.ts → throttle.d.mts} +18 -17
- package/dist/throttle.mjs +102 -0
- package/dist/time-sr2lhQRw.mjs +67 -0
- package/dist/{time.d.ts → time.d.mts} +8 -7
- package/dist/time.mjs +3 -0
- package/dist/{timers.d.cts → timers.d.mts} +22 -13
- package/dist/timers.mjs +220 -0
- package/dist/{tsResult.d.cts → tsResult.d.mts} +52 -48
- package/dist/tsResult.mjs +142 -0
- package/dist/typeGuards-B1mzA-Rz.mjs +128 -0
- package/dist/{typeGuards.d.cts → typeGuards.d.mts} +3 -2
- package/dist/typeGuards.mjs +3 -0
- package/dist/{typeUtils.d.ts → typeUtils.d.mts} +13 -34
- package/dist/typeUtils.mjs +1 -0
- package/dist/{typedStrings.d.cts → typedStrings.d.mts} +5 -4
- package/dist/typedStrings.mjs +131 -0
- package/dist/typingFnUtils-Bb8drgKF.mjs +101 -0
- package/dist/{typingFnUtils.d.cts → typingFnUtils.d.mts} +13 -22
- package/dist/typingFnUtils.mjs +3 -0
- package/dist/{typingTestUtils.d.cts → typingTestUtils.d.mts} +11 -15
- package/dist/typingTestUtils.mjs +80 -0
- package/dist/typingUtils.d.mts +20 -0
- package/dist/typingUtils.mjs +1 -0
- package/dist/yamlStringify.d.mts +17 -0
- package/dist/yamlStringify.mjs +189 -0
- package/package.json +65 -242
- package/dist/arrayUtils.cjs +0 -229
- package/dist/arrayUtils.d.ts +0 -171
- package/dist/arrayUtils.js +0 -42
- package/dist/assertions.cjs +0 -107
- package/dist/assertions.d.cts +0 -192
- package/dist/assertions.js +0 -25
- package/dist/asyncQueue.cjs +0 -672
- package/dist/asyncQueue.d.cts +0 -488
- package/dist/asyncQueue.d.ts +0 -488
- package/dist/asyncQueue.js +0 -631
- package/dist/awaitDebounce.cjs +0 -106
- package/dist/awaitDebounce.d.ts +0 -41
- package/dist/awaitDebounce.js +0 -28
- package/dist/cache.cjs +0 -367
- package/dist/cache.d.cts +0 -228
- package/dist/cache.js +0 -19
- package/dist/castValues.cjs +0 -50
- package/dist/castValues.d.ts +0 -4
- package/dist/castValues.js +0 -8
- package/dist/chunk-5DZT3Z5Z.js +0 -8
- package/dist/chunk-6FBIEPWU.js +0 -96
- package/dist/chunk-6FIBVC2P.js +0 -56
- package/dist/chunk-7CQPOM5I.js +0 -100
- package/dist/chunk-B6DNOZCP.js +0 -369
- package/dist/chunk-BM4PYVOX.js +0 -109
- package/dist/chunk-C2SVCIWE.js +0 -57
- package/dist/chunk-CCUPDGSZ.js +0 -132
- package/dist/chunk-DBOWTYR4.js +0 -49
- package/dist/chunk-DFXNVEH6.js +0 -14
- package/dist/chunk-DX2524CZ.js +0 -314
- package/dist/chunk-GMJTLFM6.js +0 -60
- package/dist/chunk-IATIXMCE.js +0 -20
- package/dist/chunk-II4R3VVX.js +0 -25
- package/dist/chunk-JF2MDHOJ.js +0 -40
- package/dist/chunk-JQFUKJU5.js +0 -71
- package/dist/chunk-MI4UE2PQ.js +0 -561
- package/dist/chunk-PUKVXYYL.js +0 -52
- package/dist/chunk-QQS7I7ZL.js +0 -16
- package/dist/chunk-VAAMRG4K.js +0 -20
- package/dist/chunk-WFQJUJTC.js +0 -182
- package/dist/chunk-ZXIKIA5B.js +0 -178
- package/dist/concurrentCalls.cjs +0 -406
- package/dist/concurrentCalls.d.cts +0 -116
- package/dist/concurrentCalls.js +0 -346
- package/dist/consoleFmt.cjs +0 -85
- package/dist/consoleFmt.d.cts +0 -54
- package/dist/consoleFmt.d.ts +0 -54
- package/dist/consoleFmt.js +0 -60
- package/dist/conversions.cjs +0 -44
- package/dist/conversions.d.cts +0 -3
- package/dist/conversions.d.ts +0 -3
- package/dist/conversions.js +0 -6
- package/dist/createThrottleController.cjs +0 -193
- package/dist/createThrottleController.d.cts +0 -13
- package/dist/createThrottleController.d.ts +0 -13
- package/dist/createThrottleController.js +0 -61
- package/dist/debounce.cjs +0 -157
- package/dist/debounce.d.cts +0 -46
- package/dist/debounce.d.ts +0 -46
- package/dist/debounce.js +0 -8
- package/dist/dedent.cjs +0 -104
- package/dist/dedent.d.cts +0 -73
- package/dist/dedent.d.ts +0 -73
- package/dist/dedent.js +0 -79
- package/dist/deepEqual.cjs +0 -96
- package/dist/deepEqual.d.ts +0 -21
- package/dist/deepEqual.js +0 -8
- package/dist/deepReplaceValues.cjs +0 -87
- package/dist/deepReplaceValues.d.ts +0 -27
- package/dist/deepReplaceValues.js +0 -7
- package/dist/enhancedMap.cjs +0 -131
- package/dist/enhancedMap.d.cts +0 -20
- package/dist/enhancedMap.d.ts +0 -20
- package/dist/enhancedMap.js +0 -10
- package/dist/exhaustiveMatch.cjs +0 -66
- package/dist/exhaustiveMatch.d.cts +0 -9
- package/dist/exhaustiveMatch.d.ts +0 -9
- package/dist/exhaustiveMatch.js +0 -40
- package/dist/filterObjectOrArrayKeys.cjs +0 -619
- package/dist/filterObjectOrArrayKeys.d.ts +0 -88
- package/dist/filterObjectOrArrayKeys.js +0 -9
- package/dist/getAutoIncrementId.cjs +0 -44
- package/dist/getAutoIncrementId.d.ts +0 -46
- package/dist/getAutoIncrementId.js +0 -18
- package/dist/getCompositeKey.cjs +0 -86
- package/dist/getCompositeKey.d.ts +0 -11
- package/dist/getCompositeKey.js +0 -8
- package/dist/getValueStableKey.cjs +0 -89
- package/dist/getValueStableKey.d.ts +0 -15
- package/dist/getValueStableKey.js +0 -11
- package/dist/hash.cjs +0 -57
- package/dist/hash.d.ts +0 -7
- package/dist/hash.js +0 -32
- package/dist/interpolate.cjs +0 -88
- package/dist/interpolate.d.cts +0 -11
- package/dist/interpolate.d.ts +0 -11
- package/dist/interpolate.js +0 -46
- package/dist/iteratorUtils.cjs +0 -73
- package/dist/iteratorUtils.d.ts +0 -10
- package/dist/iteratorUtils.js +0 -44
- package/dist/keepPrevIfUnchanged.cjs +0 -102
- package/dist/keepPrevIfUnchanged.d.cts +0 -7
- package/dist/keepPrevIfUnchanged.d.ts +0 -7
- package/dist/keepPrevIfUnchanged.js +0 -7
- package/dist/keyedMap.cjs +0 -224
- package/dist/keyedMap.d.cts +0 -75
- package/dist/keyedMap.d.ts +0 -75
- package/dist/keyedMap.js +0 -145
- package/dist/keyedSet.cjs +0 -205
- package/dist/keyedSet.d.cts +0 -76
- package/dist/keyedSet.d.ts +0 -76
- package/dist/keyedSet.js +0 -126
- package/dist/levenshtein.cjs +0 -180
- package/dist/levenshtein.d.ts +0 -5
- package/dist/levenshtein.js +0 -153
- package/dist/main.cjs +0 -32
- package/dist/main.d.cts +0 -3
- package/dist/main.d.ts +0 -3
- package/dist/main.js +0 -7
- package/dist/matchPath.cjs +0 -155
- package/dist/matchPath.d.cts +0 -53
- package/dist/matchPath.d.ts +0 -53
- package/dist/matchPath.js +0 -108
- package/dist/mathUtils.cjs +0 -81
- package/dist/mathUtils.d.ts +0 -54
- package/dist/mathUtils.js +0 -22
- package/dist/mutationUtils.cjs +0 -153
- package/dist/mutationUtils.d.ts +0 -15
- package/dist/mutationUtils.js +0 -55
- package/dist/objUtils.cjs +0 -242
- package/dist/objUtils.d.cts +0 -28
- package/dist/objUtils.js +0 -38
- package/dist/parallelAsyncCalls.cjs +0 -162
- package/dist/parallelAsyncCalls.d.cts +0 -82
- package/dist/parallelAsyncCalls.d.ts +0 -82
- package/dist/parallelAsyncCalls.js +0 -126
- package/dist/partialEqual.cjs +0 -1196
- package/dist/partialEqual.d.cts +0 -141
- package/dist/partialEqual.d.ts +0 -141
- package/dist/partialEqual.js +0 -1168
- package/dist/promiseUtils.cjs +0 -38
- package/dist/promiseUtils.d.cts +0 -8
- package/dist/promiseUtils.d.ts +0 -8
- package/dist/promiseUtils.js +0 -6
- package/dist/regexUtils.cjs +0 -60
- package/dist/regexUtils.d.cts +0 -17
- package/dist/regexUtils.d.ts +0 -17
- package/dist/regexUtils.js +0 -33
- package/dist/retryOnError.cjs +0 -130
- package/dist/retryOnError.d.ts +0 -83
- package/dist/retryOnError.js +0 -101
- package/dist/runShellCmd.cjs +0 -127
- package/dist/runShellCmd.d.cts +0 -90
- package/dist/runShellCmd.js +0 -98
- package/dist/safeJson.cjs +0 -45
- package/dist/safeJson.d.ts +0 -16
- package/dist/safeJson.js +0 -8
- package/dist/saferTyping.cjs +0 -52
- package/dist/saferTyping.d.ts +0 -47
- package/dist/saferTyping.js +0 -23
- package/dist/serializeXML.cjs +0 -154
- package/dist/serializeXML.d.cts +0 -22
- package/dist/serializeXML.d.ts +0 -22
- package/dist/serializeXML.js +0 -116
- package/dist/shallowEqual.cjs +0 -88
- package/dist/shallowEqual.d.ts +0 -4
- package/dist/shallowEqual.js +0 -63
- package/dist/sleep.cjs +0 -32
- package/dist/sleep.d.cts +0 -3
- package/dist/sleep.d.ts +0 -3
- package/dist/sleep.js +0 -6
- package/dist/stringUtils.cjs +0 -155
- package/dist/stringUtils.d.ts +0 -55
- package/dist/stringUtils.js +0 -50
- package/dist/testUtils.cjs +0 -1490
- package/dist/testUtils.d.cts +0 -133
- package/dist/testUtils.js +0 -359
- package/dist/throttle.cjs +0 -282
- package/dist/throttle.d.cts +0 -98
- package/dist/throttle.js +0 -38
- package/dist/time.cjs +0 -152
- package/dist/time.d.cts +0 -25
- package/dist/time.js +0 -38
- package/dist/timers.cjs +0 -194
- package/dist/timers.d.ts +0 -121
- package/dist/timers.js +0 -156
- package/dist/tsResult.cjs +0 -226
- package/dist/tsResult.d.ts +0 -114
- package/dist/tsResult.js +0 -180
- package/dist/typeGuards.cjs +0 -70
- package/dist/typeGuards.d.ts +0 -111
- package/dist/typeGuards.js +0 -18
- package/dist/typeUtils.cjs +0 -18
- package/dist/typeUtils.d.cts +0 -61
- package/dist/typeUtils.js +0 -0
- package/dist/typedStrings.cjs +0 -90
- package/dist/typedStrings.d.ts +0 -163
- package/dist/typedStrings.js +0 -57
- package/dist/typingFnUtils.cjs +0 -96
- package/dist/typingFnUtils.d.ts +0 -100
- package/dist/typingFnUtils.js +0 -30
- package/dist/typingTestUtils.cjs +0 -52
- package/dist/typingTestUtils.d.ts +0 -79
- package/dist/typingTestUtils.js +0 -27
- package/dist/typingUtils.cjs +0 -18
- package/dist/typingUtils.d.cts +0 -35
- package/dist/typingUtils.d.ts +0 -35
- package/dist/typingUtils.js +0 -0
- package/dist/yamlStringify.cjs +0 -423
- package/dist/yamlStringify.d.cts +0 -10
- package/dist/yamlStringify.d.ts +0 -10
- package/dist/yamlStringify.js +0 -9
package/dist/chunk-DBOWTYR4.js
DELETED
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
// src/mathUtils.ts
|
|
2
|
-
function clampMax(value, max) {
|
|
3
|
-
return value > max ? max : value;
|
|
4
|
-
}
|
|
5
|
-
function clampMin(value, min) {
|
|
6
|
-
return value < min ? min : value;
|
|
7
|
-
}
|
|
8
|
-
function clampRange(num, v1, v2) {
|
|
9
|
-
if (v2 > v1) {
|
|
10
|
-
return clamp(num, v1, v2);
|
|
11
|
-
}
|
|
12
|
-
return clamp(num, v2, v1);
|
|
13
|
-
}
|
|
14
|
-
function clamp(num, min, max) {
|
|
15
|
-
return num > max ? max : num < min ? min : num;
|
|
16
|
-
}
|
|
17
|
-
function fixFloatingPointNumber(value) {
|
|
18
|
-
return Number(value.toPrecision(15));
|
|
19
|
-
}
|
|
20
|
-
function roundToStep(value, step, offset = 0) {
|
|
21
|
-
const inv = 1 / step;
|
|
22
|
-
const snapped = Math.round((value - offset) * inv) / inv + offset;
|
|
23
|
-
return Number(snapped.toFixed(12));
|
|
24
|
-
}
|
|
25
|
-
function floorToStep(value, step, offset = 0) {
|
|
26
|
-
const inv = 1 / step;
|
|
27
|
-
const snapped = Math.floor((value - offset) * inv) / inv + offset;
|
|
28
|
-
return Number(snapped.toFixed(12));
|
|
29
|
-
}
|
|
30
|
-
function ceilToStep(value, step, offset = 0) {
|
|
31
|
-
const inv = 1 / step;
|
|
32
|
-
const snapped = Math.ceil((value - offset) * inv) / inv + offset;
|
|
33
|
-
return Number(snapped.toFixed(12));
|
|
34
|
-
}
|
|
35
|
-
function round(num, precision) {
|
|
36
|
-
return Math.round(num * 10 ** precision) / 10 ** precision;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
export {
|
|
40
|
-
clampMax,
|
|
41
|
-
clampMin,
|
|
42
|
-
clampRange,
|
|
43
|
-
clamp,
|
|
44
|
-
fixFloatingPointNumber,
|
|
45
|
-
roundToStep,
|
|
46
|
-
floorToStep,
|
|
47
|
-
ceilToStep,
|
|
48
|
-
round
|
|
49
|
-
};
|
package/dist/chunk-DFXNVEH6.js
DELETED
package/dist/chunk-DX2524CZ.js
DELETED
|
@@ -1,314 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
durationObjToMs
|
|
3
|
-
} from "./chunk-6FBIEPWU.js";
|
|
4
|
-
import {
|
|
5
|
-
isPromise
|
|
6
|
-
} from "./chunk-C2SVCIWE.js";
|
|
7
|
-
|
|
8
|
-
// src/cache.ts
|
|
9
|
-
function cachedGetter(getter) {
|
|
10
|
-
return {
|
|
11
|
-
get value() {
|
|
12
|
-
const value = getter();
|
|
13
|
-
Object.defineProperty(this, "value", { value });
|
|
14
|
-
return value;
|
|
15
|
-
}
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
var SkipCaching = class {
|
|
19
|
-
value;
|
|
20
|
-
constructor(value) {
|
|
21
|
-
this.value = value;
|
|
22
|
-
}
|
|
23
|
-
};
|
|
24
|
-
var WithExpiration = class {
|
|
25
|
-
value;
|
|
26
|
-
expiration;
|
|
27
|
-
/**
|
|
28
|
-
* @param value - The value to store in the cache.
|
|
29
|
-
* @param expiration - The expiration time of the value in seconds or a
|
|
30
|
-
* duration object.
|
|
31
|
-
*/
|
|
32
|
-
constructor(value, expiration) {
|
|
33
|
-
this.value = value;
|
|
34
|
-
this.expiration = durationObjToMs(expiration);
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
|
-
function createCache({
|
|
38
|
-
maxCacheSize = 1e3,
|
|
39
|
-
maxItemAge,
|
|
40
|
-
expirationThrottle = 1e4
|
|
41
|
-
} = {}) {
|
|
42
|
-
const cache = /* @__PURE__ */ new Map();
|
|
43
|
-
let lastExpirationCheck = 0;
|
|
44
|
-
const defaultMaxItemAgeMs = maxItemAge && durationObjToMs(maxItemAge);
|
|
45
|
-
function cleanExpiredItems() {
|
|
46
|
-
const now = Date.now();
|
|
47
|
-
if (!defaultMaxItemAgeMs || now - lastExpirationCheck < expirationThrottle)
|
|
48
|
-
return;
|
|
49
|
-
lastExpirationCheck = now;
|
|
50
|
-
for (const [key, item] of cache.entries()) {
|
|
51
|
-
if (isExpired(item, now)) {
|
|
52
|
-
cache.delete(key);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
function trimToSize() {
|
|
57
|
-
const currentSize = cache.size;
|
|
58
|
-
if (currentSize > maxCacheSize) {
|
|
59
|
-
const keysToRemove = currentSize - maxCacheSize;
|
|
60
|
-
const iterator = cache.keys();
|
|
61
|
-
for (let i = 0; i < keysToRemove; i++) {
|
|
62
|
-
const { value: key } = iterator.next();
|
|
63
|
-
if (key) {
|
|
64
|
-
cache.delete(key);
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
function isExpired(entry, now) {
|
|
70
|
-
const maxItemAgeMs = entry.expiration ?? defaultMaxItemAgeMs;
|
|
71
|
-
return !!maxItemAgeMs && now - entry.timestamp > maxItemAgeMs;
|
|
72
|
-
}
|
|
73
|
-
function unwrapValue(value, now) {
|
|
74
|
-
if (value instanceof WithExpiration) {
|
|
75
|
-
return {
|
|
76
|
-
value: value.value,
|
|
77
|
-
timestamp: now,
|
|
78
|
-
expiration: value.expiration ? typeof value.expiration === "number" ? value.expiration : now + durationObjToMs(value.expiration) : void 0
|
|
79
|
-
};
|
|
80
|
-
}
|
|
81
|
-
return { value, timestamp: now, expiration: void 0 };
|
|
82
|
-
}
|
|
83
|
-
const utils = {
|
|
84
|
-
skipCaching: (value) => new SkipCaching(value),
|
|
85
|
-
withExpiration: (value, expiration) => {
|
|
86
|
-
return new WithExpiration(value, expiration);
|
|
87
|
-
}
|
|
88
|
-
};
|
|
89
|
-
function refreshEntry(key, now) {
|
|
90
|
-
const entry = cache.get(key);
|
|
91
|
-
if (entry && !isExpired(entry, now)) {
|
|
92
|
-
cache.delete(key);
|
|
93
|
-
cache.set(key, entry);
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
return {
|
|
97
|
-
/**
|
|
98
|
-
* Gets a value from the cache or computes and stores it if not present.
|
|
99
|
-
* This is the primary method for synchronous caching operations.
|
|
100
|
-
*
|
|
101
|
-
* @param cacheKey - Unique key to identify the cached value
|
|
102
|
-
* @param val - Function that computes the value if not cached. Receives
|
|
103
|
-
* utility functions for advanced features.
|
|
104
|
-
* @param options - Optional configuration for this specific get operation
|
|
105
|
-
* @returns The cached or newly computed value
|
|
106
|
-
* @throws Error if the cached value is a promise (use getOrInsertAsync
|
|
107
|
-
* instead)
|
|
108
|
-
*/
|
|
109
|
-
getOrInsert(cacheKey, val, options) {
|
|
110
|
-
const now = Date.now();
|
|
111
|
-
const entry = cache.get(cacheKey);
|
|
112
|
-
if (!entry || isExpired(entry, now)) {
|
|
113
|
-
const value = val(utils);
|
|
114
|
-
if (value instanceof SkipCaching) {
|
|
115
|
-
return value.value;
|
|
116
|
-
}
|
|
117
|
-
if (options?.skipCachingWhen?.(value)) {
|
|
118
|
-
return value;
|
|
119
|
-
}
|
|
120
|
-
const unwrappedValue = unwrapValue(value, now);
|
|
121
|
-
cache.set(cacheKey, unwrappedValue);
|
|
122
|
-
trimToSize();
|
|
123
|
-
cleanExpiredItems();
|
|
124
|
-
return unwrappedValue.value;
|
|
125
|
-
}
|
|
126
|
-
if (isPromise(entry.value)) {
|
|
127
|
-
throw new Error(
|
|
128
|
-
"Cache value is a promise, use getOrInsertAsync instead"
|
|
129
|
-
);
|
|
130
|
-
}
|
|
131
|
-
refreshEntry(cacheKey, now);
|
|
132
|
-
return entry.value;
|
|
133
|
-
},
|
|
134
|
-
/**
|
|
135
|
-
* Gets a value from the cache or computes and stores it asynchronously.
|
|
136
|
-
* Provides promise deduplication - concurrent calls with the same key will
|
|
137
|
-
* share the same promise.
|
|
138
|
-
*
|
|
139
|
-
* @param cacheKey - Unique key to identify the cached value
|
|
140
|
-
* @param val - Async function that computes the value if not cached.
|
|
141
|
-
* Receives utility functions for advanced features.
|
|
142
|
-
* @param options - Optional configuration for this specific get operation
|
|
143
|
-
* @returns Promise that resolves to the cached or newly computed value
|
|
144
|
-
*/
|
|
145
|
-
async getOrInsertAsync(cacheKey, val, options) {
|
|
146
|
-
const entry = cache.get(cacheKey);
|
|
147
|
-
if (entry && isPromise(entry.value)) {
|
|
148
|
-
return entry.value;
|
|
149
|
-
}
|
|
150
|
-
const now = Date.now();
|
|
151
|
-
if (entry && !isExpired(entry, now)) {
|
|
152
|
-
refreshEntry(cacheKey, now);
|
|
153
|
-
return entry.value;
|
|
154
|
-
}
|
|
155
|
-
const promise = val(utils).then((result) => {
|
|
156
|
-
if (result instanceof SkipCaching) {
|
|
157
|
-
const cacheValue = cache.get(cacheKey);
|
|
158
|
-
if (cacheValue?.value === promise) {
|
|
159
|
-
cache.delete(cacheKey);
|
|
160
|
-
}
|
|
161
|
-
return result.value;
|
|
162
|
-
}
|
|
163
|
-
if (options?.skipCachingWhen?.(result)) {
|
|
164
|
-
const cacheValue = cache.get(cacheKey);
|
|
165
|
-
if (cacheValue?.value === promise) {
|
|
166
|
-
cache.delete(cacheKey);
|
|
167
|
-
}
|
|
168
|
-
return result;
|
|
169
|
-
}
|
|
170
|
-
const unwrappedValue = unwrapValue(result, Date.now());
|
|
171
|
-
cache.set(cacheKey, unwrappedValue);
|
|
172
|
-
return unwrappedValue.value;
|
|
173
|
-
}).catch((error) => {
|
|
174
|
-
cache.delete(cacheKey);
|
|
175
|
-
throw error;
|
|
176
|
-
});
|
|
177
|
-
cache.set(cacheKey, {
|
|
178
|
-
value: promise,
|
|
179
|
-
timestamp: now,
|
|
180
|
-
expiration: void 0
|
|
181
|
-
});
|
|
182
|
-
trimToSize();
|
|
183
|
-
cleanExpiredItems();
|
|
184
|
-
return promise;
|
|
185
|
-
},
|
|
186
|
-
/** Removes all items from the cache. */
|
|
187
|
-
clear() {
|
|
188
|
-
cache.clear();
|
|
189
|
-
},
|
|
190
|
-
/**
|
|
191
|
-
* Gets a value from the cache without computing it if missing. Returns
|
|
192
|
-
* undefined if the key doesn't exist or has expired.
|
|
193
|
-
*
|
|
194
|
-
* @param cacheKey - Key to look up in the cache
|
|
195
|
-
* @returns The cached value or undefined if not found/expired
|
|
196
|
-
* @throws Error if the cached value is a promise (use getAsync instead)
|
|
197
|
-
*/
|
|
198
|
-
get(cacheKey) {
|
|
199
|
-
const entry = cache.get(cacheKey);
|
|
200
|
-
const now = Date.now();
|
|
201
|
-
if (!entry || isExpired(entry, now)) {
|
|
202
|
-
return void 0;
|
|
203
|
-
}
|
|
204
|
-
if (isPromise(entry.value)) {
|
|
205
|
-
throw new Error("Cache value is a promise, use getAsync instead");
|
|
206
|
-
}
|
|
207
|
-
refreshEntry(cacheKey, now);
|
|
208
|
-
return entry.value;
|
|
209
|
-
},
|
|
210
|
-
/**
|
|
211
|
-
* Manually sets a value in the cache.
|
|
212
|
-
*
|
|
213
|
-
* @param cacheKey - Key to store the value under
|
|
214
|
-
* @param value - Value to store, or WithExpiration wrapper for custom
|
|
215
|
-
* expiration
|
|
216
|
-
*/
|
|
217
|
-
set(cacheKey, value) {
|
|
218
|
-
cache.set(cacheKey, unwrapValue(value, Date.now()));
|
|
219
|
-
trimToSize();
|
|
220
|
-
cleanExpiredItems();
|
|
221
|
-
},
|
|
222
|
-
/**
|
|
223
|
-
* Gets a value from the cache without computing it if missing. Works with
|
|
224
|
-
* both sync and async cached values.
|
|
225
|
-
*
|
|
226
|
-
* @param cacheKey - Key to look up in the cache
|
|
227
|
-
* @returns Promise that resolves to the cached value or undefined if not
|
|
228
|
-
* found/expired
|
|
229
|
-
*/
|
|
230
|
-
async getAsync(cacheKey) {
|
|
231
|
-
const entry = cache.get(cacheKey);
|
|
232
|
-
const now = Date.now();
|
|
233
|
-
if (!entry || isExpired(entry, now)) {
|
|
234
|
-
return void 0;
|
|
235
|
-
}
|
|
236
|
-
refreshEntry(cacheKey, now);
|
|
237
|
-
return entry.value;
|
|
238
|
-
},
|
|
239
|
-
/**
|
|
240
|
-
* Manually sets an async value in the cache. The promise will be stored
|
|
241
|
-
* immediately and shared with concurrent requests.
|
|
242
|
-
*
|
|
243
|
-
* @param cacheKey - Key to store the value under
|
|
244
|
-
* @param value - Async function that returns the value to cache
|
|
245
|
-
* @returns Promise that resolves to the computed value
|
|
246
|
-
*/
|
|
247
|
-
async setAsync(cacheKey, value) {
|
|
248
|
-
const promise = value(utils).then((result) => {
|
|
249
|
-
if (result instanceof SkipCaching) {
|
|
250
|
-
const cacheValue = cache.get(cacheKey);
|
|
251
|
-
if (cacheValue?.value === promise) {
|
|
252
|
-
cache.delete(cacheKey);
|
|
253
|
-
}
|
|
254
|
-
return result.value;
|
|
255
|
-
}
|
|
256
|
-
const unwrappedValue = unwrapValue(result, Date.now());
|
|
257
|
-
cache.set(cacheKey, unwrappedValue);
|
|
258
|
-
return unwrappedValue.value;
|
|
259
|
-
}).catch((error) => {
|
|
260
|
-
cache.delete(cacheKey);
|
|
261
|
-
throw error;
|
|
262
|
-
});
|
|
263
|
-
cache.set(cacheKey, {
|
|
264
|
-
value: promise,
|
|
265
|
-
timestamp: Date.now(),
|
|
266
|
-
expiration: void 0
|
|
267
|
-
});
|
|
268
|
-
trimToSize();
|
|
269
|
-
cleanExpiredItems();
|
|
270
|
-
return promise;
|
|
271
|
-
},
|
|
272
|
-
/**
|
|
273
|
-
* Manually triggers cleanup of expired items. Normally this happens
|
|
274
|
-
* automatically during cache operations.
|
|
275
|
-
*/
|
|
276
|
-
cleanExpiredItems,
|
|
277
|
-
/** @internal */
|
|
278
|
-
" cache": { map: cache }
|
|
279
|
-
};
|
|
280
|
-
}
|
|
281
|
-
function fastCache({ maxCacheSize = 1e3 } = {}) {
|
|
282
|
-
const cache = /* @__PURE__ */ new Map();
|
|
283
|
-
function trimCache() {
|
|
284
|
-
const cacheSize = cache.size;
|
|
285
|
-
if (cacheSize > maxCacheSize) {
|
|
286
|
-
const keys = Array.from(cache.keys());
|
|
287
|
-
for (let i = 0; i < cacheSize - maxCacheSize; i++) {
|
|
288
|
-
cache.delete(keys[i]);
|
|
289
|
-
}
|
|
290
|
-
}
|
|
291
|
-
}
|
|
292
|
-
function getOrInsert(cacheKey, val) {
|
|
293
|
-
if (!cache.has(cacheKey)) {
|
|
294
|
-
const value = val();
|
|
295
|
-
cache.set(cacheKey, value);
|
|
296
|
-
trimCache();
|
|
297
|
-
return cache.get(cacheKey) ?? value;
|
|
298
|
-
}
|
|
299
|
-
return cache.get(cacheKey);
|
|
300
|
-
}
|
|
301
|
-
return {
|
|
302
|
-
getOrInsert,
|
|
303
|
-
/** Clears all cached values */
|
|
304
|
-
clear: () => cache.clear()
|
|
305
|
-
};
|
|
306
|
-
}
|
|
307
|
-
|
|
308
|
-
export {
|
|
309
|
-
cachedGetter,
|
|
310
|
-
SkipCaching,
|
|
311
|
-
WithExpiration,
|
|
312
|
-
createCache,
|
|
313
|
-
fastCache
|
|
314
|
-
};
|
package/dist/chunk-GMJTLFM6.js
DELETED
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
// src/typingFnUtils.ts
|
|
2
|
-
function asNonPartial(obj) {
|
|
3
|
-
return obj;
|
|
4
|
-
}
|
|
5
|
-
function typedObjectEntries(obj) {
|
|
6
|
-
return Object.entries(obj);
|
|
7
|
-
}
|
|
8
|
-
function strictTypedObjectEntries(obj) {
|
|
9
|
-
return Object.entries(obj);
|
|
10
|
-
}
|
|
11
|
-
function typedObjectKeys(obj) {
|
|
12
|
-
return Object.keys(obj);
|
|
13
|
-
}
|
|
14
|
-
function asType(value) {
|
|
15
|
-
return value;
|
|
16
|
-
}
|
|
17
|
-
function narrowStringToUnion(key, union) {
|
|
18
|
-
if (!key) return void 0;
|
|
19
|
-
if (union instanceof Set) {
|
|
20
|
-
return union.has(key) ? key : void 0;
|
|
21
|
-
}
|
|
22
|
-
if (union.includes(key)) {
|
|
23
|
-
return key;
|
|
24
|
-
}
|
|
25
|
-
return void 0;
|
|
26
|
-
}
|
|
27
|
-
function typeOnRightExtendsLeftType() {
|
|
28
|
-
return void 0;
|
|
29
|
-
}
|
|
30
|
-
var isSubTypeOf = typeOnRightExtendsLeftType;
|
|
31
|
-
function isObjKey(key, obj) {
|
|
32
|
-
return typeof key === "string" && key in obj;
|
|
33
|
-
}
|
|
34
|
-
function unionsAreTheSame(_diff) {
|
|
35
|
-
}
|
|
36
|
-
function asPartialUndefinedValues(value) {
|
|
37
|
-
return value;
|
|
38
|
-
}
|
|
39
|
-
function isNonEmptyArray(array) {
|
|
40
|
-
return array.length > 0;
|
|
41
|
-
}
|
|
42
|
-
function objectHasKey(obj, key) {
|
|
43
|
-
return key in obj;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
export {
|
|
47
|
-
asNonPartial,
|
|
48
|
-
typedObjectEntries,
|
|
49
|
-
strictTypedObjectEntries,
|
|
50
|
-
typedObjectKeys,
|
|
51
|
-
asType,
|
|
52
|
-
narrowStringToUnion,
|
|
53
|
-
typeOnRightExtendsLeftType,
|
|
54
|
-
isSubTypeOf,
|
|
55
|
-
isObjKey,
|
|
56
|
-
unionsAreTheSame,
|
|
57
|
-
asPartialUndefinedValues,
|
|
58
|
-
isNonEmptyArray,
|
|
59
|
-
objectHasKey
|
|
60
|
-
};
|
package/dist/chunk-IATIXMCE.js
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
// src/conversions.ts
|
|
2
|
-
function bytesToHumanReadable(bytes) {
|
|
3
|
-
if (bytes < 1024) {
|
|
4
|
-
return `${bytes} B`;
|
|
5
|
-
}
|
|
6
|
-
const kb = bytes / 1024;
|
|
7
|
-
if (kb < 1024) {
|
|
8
|
-
return `${kb.toFixed(2)} KB`;
|
|
9
|
-
}
|
|
10
|
-
const mb = kb / 1024;
|
|
11
|
-
if (mb < 1024) {
|
|
12
|
-
return `${mb.toFixed(2)} MB`;
|
|
13
|
-
}
|
|
14
|
-
const gb = mb / 1024;
|
|
15
|
-
return `${gb.toFixed(2)} GB`;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
export {
|
|
19
|
-
bytesToHumanReadable
|
|
20
|
-
};
|
package/dist/chunk-II4R3VVX.js
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
// src/castValues.ts
|
|
2
|
-
function castToString(value) {
|
|
3
|
-
const valueType = typeof value;
|
|
4
|
-
return valueType === "string" || valueType === "number" || valueType === "boolean" || valueType === "bigint" ? String(value) : null;
|
|
5
|
-
}
|
|
6
|
-
function castToNumber(value) {
|
|
7
|
-
return isFiniteNumeric(value) ? Number(value) : null;
|
|
8
|
-
}
|
|
9
|
-
function isFiniteNumeric(num) {
|
|
10
|
-
switch (typeof num) {
|
|
11
|
-
case "number":
|
|
12
|
-
return num - num === 0;
|
|
13
|
-
case "string":
|
|
14
|
-
return num.trim() !== "" && Number.isFinite(+num);
|
|
15
|
-
case "bigint":
|
|
16
|
-
return Number.isFinite(Number(num));
|
|
17
|
-
default:
|
|
18
|
-
return false;
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
export {
|
|
23
|
-
castToString,
|
|
24
|
-
castToNumber
|
|
25
|
-
};
|
package/dist/chunk-JF2MDHOJ.js
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
// src/typeGuards.ts
|
|
2
|
-
function isObject(value) {
|
|
3
|
-
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
4
|
-
}
|
|
5
|
-
function isFunction(value) {
|
|
6
|
-
return typeof value === "function";
|
|
7
|
-
}
|
|
8
|
-
function isPromise(value) {
|
|
9
|
-
return isObject(value) && "then" in value && isFunction(value.then);
|
|
10
|
-
}
|
|
11
|
-
function isPlainObject(value) {
|
|
12
|
-
if (!value || typeof value !== "object") return false;
|
|
13
|
-
const proto = Object.getPrototypeOf(value);
|
|
14
|
-
if (proto === null) {
|
|
15
|
-
return true;
|
|
16
|
-
}
|
|
17
|
-
const Ctor = Object.hasOwnProperty.call(proto, "constructor") && proto.constructor;
|
|
18
|
-
if (Ctor === Object) return true;
|
|
19
|
-
const objectCtorString = Object.prototype.constructor.toString();
|
|
20
|
-
return typeof Ctor == "function" && Function.toString.call(Ctor) === objectCtorString;
|
|
21
|
-
}
|
|
22
|
-
function isNonEmptyArray(value) {
|
|
23
|
-
return value.length > 0;
|
|
24
|
-
}
|
|
25
|
-
function arrayHasAtLeastXItems(array, minLength) {
|
|
26
|
-
return array.length >= minLength;
|
|
27
|
-
}
|
|
28
|
-
function isTruthy(value) {
|
|
29
|
-
return !!value;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
export {
|
|
33
|
-
isObject,
|
|
34
|
-
isFunction,
|
|
35
|
-
isPromise,
|
|
36
|
-
isPlainObject,
|
|
37
|
-
isNonEmptyArray,
|
|
38
|
-
arrayHasAtLeastXItems,
|
|
39
|
-
isTruthy
|
|
40
|
-
};
|
package/dist/chunk-JQFUKJU5.js
DELETED
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
// src/deepEqual.ts
|
|
2
|
-
var has = Object.prototype.hasOwnProperty;
|
|
3
|
-
function find(iter, tar, maxDepth) {
|
|
4
|
-
for (const key of iter.keys()) {
|
|
5
|
-
if (deepEqual(key, tar, maxDepth)) return key;
|
|
6
|
-
}
|
|
7
|
-
}
|
|
8
|
-
function deepEqual(foo, bar, maxDepth = 20) {
|
|
9
|
-
let ctor, len, tmp;
|
|
10
|
-
if (foo === bar) return true;
|
|
11
|
-
if (maxDepth && maxDepth <= 0) return false;
|
|
12
|
-
if (foo && bar && (ctor = foo.constructor) === bar.constructor) {
|
|
13
|
-
if (ctor === Date)
|
|
14
|
-
return deepEqual(foo.getTime(), bar.getTime(), maxDepth - 1);
|
|
15
|
-
if (ctor === RegExp) return foo.toString() === bar.toString();
|
|
16
|
-
if (ctor === Array) {
|
|
17
|
-
if ((len = foo.length) === bar.length) {
|
|
18
|
-
while (len-- && deepEqual(foo[len], bar[len], maxDepth - 1)) ;
|
|
19
|
-
}
|
|
20
|
-
return len === -1;
|
|
21
|
-
}
|
|
22
|
-
if (ctor === Set) {
|
|
23
|
-
if (foo.size !== bar.size) {
|
|
24
|
-
return false;
|
|
25
|
-
}
|
|
26
|
-
for (len of foo) {
|
|
27
|
-
tmp = len;
|
|
28
|
-
if (tmp && typeof tmp === "object") {
|
|
29
|
-
tmp = find(bar, tmp, maxDepth - 1);
|
|
30
|
-
if (!tmp) return false;
|
|
31
|
-
}
|
|
32
|
-
if (!bar.has(tmp)) return false;
|
|
33
|
-
}
|
|
34
|
-
return true;
|
|
35
|
-
}
|
|
36
|
-
if (ctor === Map) {
|
|
37
|
-
if (foo.size !== bar.size) {
|
|
38
|
-
return false;
|
|
39
|
-
}
|
|
40
|
-
for (len of foo) {
|
|
41
|
-
tmp = len[0];
|
|
42
|
-
if (tmp && typeof tmp === "object") {
|
|
43
|
-
tmp = find(bar, tmp, maxDepth - 1);
|
|
44
|
-
if (!tmp) return false;
|
|
45
|
-
}
|
|
46
|
-
if (!deepEqual(len[1], bar.get(tmp), maxDepth - 1)) {
|
|
47
|
-
return false;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
return true;
|
|
51
|
-
}
|
|
52
|
-
if (!ctor || typeof foo === "object") {
|
|
53
|
-
len = 0;
|
|
54
|
-
for (ctor in foo) {
|
|
55
|
-
if (has.call(foo, ctor) && ++len && !has.call(bar, ctor)) return false;
|
|
56
|
-
if (!(ctor in bar) || !deepEqual(foo[ctor], bar[ctor], maxDepth - 1))
|
|
57
|
-
return false;
|
|
58
|
-
}
|
|
59
|
-
return Object.keys(bar).length === len;
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
return foo !== foo && bar !== bar;
|
|
63
|
-
}
|
|
64
|
-
function deepEqualWithMaxDepth(maxDepth) {
|
|
65
|
-
return (foo, bar) => deepEqual(foo, bar, maxDepth);
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
export {
|
|
69
|
-
deepEqual,
|
|
70
|
-
deepEqualWithMaxDepth
|
|
71
|
-
};
|