@ls-stack/utils 3.65.0 → 3.67.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 +79 -0
- package/dist/diffParser.mjs +424 -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/keyedSet.cjs
DELETED
|
@@ -1,205 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
|
|
20
|
-
// src/keyedSet.ts
|
|
21
|
-
var keyedSet_exports = {};
|
|
22
|
-
__export(keyedSet_exports, {
|
|
23
|
-
CompositeKeySet: () => CompositeKeySet,
|
|
24
|
-
KeyedSet: () => KeyedSet
|
|
25
|
-
});
|
|
26
|
-
module.exports = __toCommonJS(keyedSet_exports);
|
|
27
|
-
|
|
28
|
-
// src/typeGuards.ts
|
|
29
|
-
function isObject(value) {
|
|
30
|
-
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
// src/assertions.ts
|
|
34
|
-
var isObject2 = isObject;
|
|
35
|
-
|
|
36
|
-
// src/getCompositeKey.ts
|
|
37
|
-
function getCompositeKey(input, maxSortingDepth = 3) {
|
|
38
|
-
if (typeof input === "string") return `"${input}`;
|
|
39
|
-
if (!input || typeof input !== "object") return `$${input}`;
|
|
40
|
-
return stringifyCompact(input, maxSortingDepth, 0, /* @__PURE__ */ new WeakSet());
|
|
41
|
-
}
|
|
42
|
-
function stringifyCompact(input, maxSortingDepth, depth, refs) {
|
|
43
|
-
const isJsObj = input && typeof input === "object";
|
|
44
|
-
if (isJsObj) {
|
|
45
|
-
if (refs.has(input)) {
|
|
46
|
-
throw new Error("Circular reference detected");
|
|
47
|
-
}
|
|
48
|
-
refs.add(input);
|
|
49
|
-
}
|
|
50
|
-
let result;
|
|
51
|
-
if (Array.isArray(input)) {
|
|
52
|
-
result = "[";
|
|
53
|
-
for (const v of input) {
|
|
54
|
-
if (result.length > 1) result += ",";
|
|
55
|
-
result += stringifyCompact(v, maxSortingDepth, depth + 1, refs);
|
|
56
|
-
}
|
|
57
|
-
result += "]";
|
|
58
|
-
} else if (isObject2(input)) {
|
|
59
|
-
let entries = Object.entries(input);
|
|
60
|
-
if (entries.length === 0) {
|
|
61
|
-
result = "{}";
|
|
62
|
-
} else {
|
|
63
|
-
if (depth < maxSortingDepth) {
|
|
64
|
-
entries = entries.sort(
|
|
65
|
-
([a], [b]) => a < b ? -1 : a > b ? 1 : 0
|
|
66
|
-
);
|
|
67
|
-
}
|
|
68
|
-
result = "{";
|
|
69
|
-
for (const [k, v] of entries) {
|
|
70
|
-
if (v === void 0) continue;
|
|
71
|
-
if (result.length > 1) result += ",";
|
|
72
|
-
result += `${k}:${stringifyCompact(v, maxSortingDepth, depth + 1, refs)}`;
|
|
73
|
-
}
|
|
74
|
-
result += "}";
|
|
75
|
-
}
|
|
76
|
-
} else {
|
|
77
|
-
result = JSON.stringify(input);
|
|
78
|
-
}
|
|
79
|
-
if (isJsObj) {
|
|
80
|
-
refs.delete(input);
|
|
81
|
-
}
|
|
82
|
-
return result;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
// src/keyedSet.ts
|
|
86
|
-
var KeyedSet = class {
|
|
87
|
-
map;
|
|
88
|
-
getKey;
|
|
89
|
-
/**
|
|
90
|
-
* @param getKey - Function to extract a unique key from each item
|
|
91
|
-
* @param iterable - Optional initial items to add to the set
|
|
92
|
-
*/
|
|
93
|
-
constructor(getKey, iterable) {
|
|
94
|
-
this.getKey = getKey;
|
|
95
|
-
this.map = /* @__PURE__ */ new Map();
|
|
96
|
-
if (iterable) {
|
|
97
|
-
for (const item of iterable) {
|
|
98
|
-
this.add(item);
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
/** The number of items in the set */
|
|
103
|
-
get size() {
|
|
104
|
-
return this.map.size;
|
|
105
|
-
}
|
|
106
|
-
/**
|
|
107
|
-
* Adds an item to the set. If an item with the same key exists, it will be
|
|
108
|
-
* replaced.
|
|
109
|
-
*/
|
|
110
|
-
add(item) {
|
|
111
|
-
const key = this.getKey(item);
|
|
112
|
-
this.map.set(key, item);
|
|
113
|
-
return this;
|
|
114
|
-
}
|
|
115
|
-
/** Adds multiple items to the set. */
|
|
116
|
-
addMultiple(items) {
|
|
117
|
-
for (const item of items) {
|
|
118
|
-
this.add(item);
|
|
119
|
-
}
|
|
120
|
-
return this;
|
|
121
|
-
}
|
|
122
|
-
/** Checks if an item with the same key exists in the set. */
|
|
123
|
-
has(item) {
|
|
124
|
-
const key = this.getKey(item);
|
|
125
|
-
return this.map.has(key);
|
|
126
|
-
}
|
|
127
|
-
/** Checks if an item with the given key exists in the set. */
|
|
128
|
-
hasKey(key) {
|
|
129
|
-
return this.map.has(key);
|
|
130
|
-
}
|
|
131
|
-
/** Gets an item by its key, or undefined if not found. */
|
|
132
|
-
getByKey(key) {
|
|
133
|
-
return this.map.get(key);
|
|
134
|
-
}
|
|
135
|
-
/**
|
|
136
|
-
* Removes an item from the set by computing its key. Returns true if the item
|
|
137
|
-
* was removed.
|
|
138
|
-
*/
|
|
139
|
-
delete(item) {
|
|
140
|
-
const key = this.getKey(item);
|
|
141
|
-
return this.map.delete(key);
|
|
142
|
-
}
|
|
143
|
-
/** Removes an item by its key. Returns true if the item was removed. */
|
|
144
|
-
deleteByKey(key) {
|
|
145
|
-
return this.map.delete(key);
|
|
146
|
-
}
|
|
147
|
-
/** Removes multiple items from the set. Returns the number of items removed. */
|
|
148
|
-
deleteMultiple(items) {
|
|
149
|
-
let count = 0;
|
|
150
|
-
for (const item of items) {
|
|
151
|
-
if (this.delete(item)) {
|
|
152
|
-
count++;
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
return count;
|
|
156
|
-
}
|
|
157
|
-
/** Removes multiple items by their keys. Returns the number of items removed. */
|
|
158
|
-
deleteMultipleByKeys(keys) {
|
|
159
|
-
let count = 0;
|
|
160
|
-
for (const key of keys) {
|
|
161
|
-
if (this.deleteByKey(key)) {
|
|
162
|
-
count++;
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
return count;
|
|
166
|
-
}
|
|
167
|
-
/** Removes all items from the set. */
|
|
168
|
-
clear() {
|
|
169
|
-
this.map.clear();
|
|
170
|
-
}
|
|
171
|
-
/** Executes a callback for each item in the set. */
|
|
172
|
-
forEach(callback, thisArg) {
|
|
173
|
-
for (const value of this.map.values()) {
|
|
174
|
-
callback.call(thisArg, value, value, this);
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
*values() {
|
|
178
|
-
yield* this.map.values();
|
|
179
|
-
}
|
|
180
|
-
*keys() {
|
|
181
|
-
yield* this.map.values();
|
|
182
|
-
}
|
|
183
|
-
*entries() {
|
|
184
|
-
for (const value of this.map.values()) {
|
|
185
|
-
yield [value, value];
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
[Symbol.iterator]() {
|
|
189
|
-
return this.values();
|
|
190
|
-
}
|
|
191
|
-
/** Returns all items as an array. */
|
|
192
|
-
toArray() {
|
|
193
|
-
return [...this.map.values()];
|
|
194
|
-
}
|
|
195
|
-
};
|
|
196
|
-
var CompositeKeySet = class extends KeyedSet {
|
|
197
|
-
constructor(iterable) {
|
|
198
|
-
super(getCompositeKey, iterable);
|
|
199
|
-
}
|
|
200
|
-
};
|
|
201
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
202
|
-
0 && (module.exports = {
|
|
203
|
-
CompositeKeySet,
|
|
204
|
-
KeyedSet
|
|
205
|
-
});
|
package/dist/keyedSet.d.cts
DELETED
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* A Set implementation that uses a custom key function to determine uniqueness.
|
|
3
|
-
* Items with the same key are considered equal, and adding a duplicate replaces
|
|
4
|
-
* the existing item.
|
|
5
|
-
*
|
|
6
|
-
* @example
|
|
7
|
-
* const set = new KeyedSet<{ id: number; name: string }, number>(
|
|
8
|
-
* (item) => item.id,
|
|
9
|
-
* );
|
|
10
|
-
* set.add({ id: 1, name: 'one' });
|
|
11
|
-
* set.add({ id: 1, name: 'replaced' }); // replaces previous item
|
|
12
|
-
* set.getByKey(1); // { id: 1, name: 'replaced' }
|
|
13
|
-
*
|
|
14
|
-
* @template T - The type of items stored in the set
|
|
15
|
-
* @template K - The type of the key extracted from items
|
|
16
|
-
*/
|
|
17
|
-
declare class KeyedSet<T, K = string> {
|
|
18
|
-
private map;
|
|
19
|
-
private getKey;
|
|
20
|
-
/**
|
|
21
|
-
* @param getKey - Function to extract a unique key from each item
|
|
22
|
-
* @param iterable - Optional initial items to add to the set
|
|
23
|
-
*/
|
|
24
|
-
constructor(getKey: (item: T) => K, iterable?: Iterable<T>);
|
|
25
|
-
/** The number of items in the set */
|
|
26
|
-
get size(): number;
|
|
27
|
-
/**
|
|
28
|
-
* Adds an item to the set. If an item with the same key exists, it will be
|
|
29
|
-
* replaced.
|
|
30
|
-
*/
|
|
31
|
-
add(item: T): this;
|
|
32
|
-
/** Adds multiple items to the set. */
|
|
33
|
-
addMultiple(items: Iterable<T>): this;
|
|
34
|
-
/** Checks if an item with the same key exists in the set. */
|
|
35
|
-
has(item: T): boolean;
|
|
36
|
-
/** Checks if an item with the given key exists in the set. */
|
|
37
|
-
hasKey(key: K): boolean;
|
|
38
|
-
/** Gets an item by its key, or undefined if not found. */
|
|
39
|
-
getByKey(key: K): T | undefined;
|
|
40
|
-
/**
|
|
41
|
-
* Removes an item from the set by computing its key. Returns true if the item
|
|
42
|
-
* was removed.
|
|
43
|
-
*/
|
|
44
|
-
delete(item: T): boolean;
|
|
45
|
-
/** Removes an item by its key. Returns true if the item was removed. */
|
|
46
|
-
deleteByKey(key: K): boolean;
|
|
47
|
-
/** Removes multiple items from the set. Returns the number of items removed. */
|
|
48
|
-
deleteMultiple(items: Iterable<T>): number;
|
|
49
|
-
/** Removes multiple items by their keys. Returns the number of items removed. */
|
|
50
|
-
deleteMultipleByKeys(keys: Iterable<K>): number;
|
|
51
|
-
/** Removes all items from the set. */
|
|
52
|
-
clear(): void;
|
|
53
|
-
/** Executes a callback for each item in the set. */
|
|
54
|
-
forEach(callback: (value: T, value2: T, set: KeyedSet<T, K>) => void, thisArg?: unknown): void;
|
|
55
|
-
values(): IterableIterator<T>;
|
|
56
|
-
keys(): IterableIterator<T>;
|
|
57
|
-
entries(): IterableIterator<[T, T]>;
|
|
58
|
-
[Symbol.iterator](): IterableIterator<T>;
|
|
59
|
-
/** Returns all items as an array. */
|
|
60
|
-
toArray(): T[];
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* A Set that compares items by value instead of reference. Uses
|
|
64
|
-
* `getCompositeKey` to generate a stable string key for any value.
|
|
65
|
-
*
|
|
66
|
-
* @example
|
|
67
|
-
* const set = new ValueSet<{ x: number; y: number }>();
|
|
68
|
-
* set.add({ x: 1, y: 2 });
|
|
69
|
-
* set.add({ x: 1, y: 2 }); // ignored, same value already exists
|
|
70
|
-
* set.size; // 1
|
|
71
|
-
*/
|
|
72
|
-
declare class CompositeKeySet<T> extends KeyedSet<T, string> {
|
|
73
|
-
constructor(iterable?: Iterable<T>);
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
export { CompositeKeySet, KeyedSet };
|
package/dist/keyedSet.d.ts
DELETED
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* A Set implementation that uses a custom key function to determine uniqueness.
|
|
3
|
-
* Items with the same key are considered equal, and adding a duplicate replaces
|
|
4
|
-
* the existing item.
|
|
5
|
-
*
|
|
6
|
-
* @example
|
|
7
|
-
* const set = new KeyedSet<{ id: number; name: string }, number>(
|
|
8
|
-
* (item) => item.id,
|
|
9
|
-
* );
|
|
10
|
-
* set.add({ id: 1, name: 'one' });
|
|
11
|
-
* set.add({ id: 1, name: 'replaced' }); // replaces previous item
|
|
12
|
-
* set.getByKey(1); // { id: 1, name: 'replaced' }
|
|
13
|
-
*
|
|
14
|
-
* @template T - The type of items stored in the set
|
|
15
|
-
* @template K - The type of the key extracted from items
|
|
16
|
-
*/
|
|
17
|
-
declare class KeyedSet<T, K = string> {
|
|
18
|
-
private map;
|
|
19
|
-
private getKey;
|
|
20
|
-
/**
|
|
21
|
-
* @param getKey - Function to extract a unique key from each item
|
|
22
|
-
* @param iterable - Optional initial items to add to the set
|
|
23
|
-
*/
|
|
24
|
-
constructor(getKey: (item: T) => K, iterable?: Iterable<T>);
|
|
25
|
-
/** The number of items in the set */
|
|
26
|
-
get size(): number;
|
|
27
|
-
/**
|
|
28
|
-
* Adds an item to the set. If an item with the same key exists, it will be
|
|
29
|
-
* replaced.
|
|
30
|
-
*/
|
|
31
|
-
add(item: T): this;
|
|
32
|
-
/** Adds multiple items to the set. */
|
|
33
|
-
addMultiple(items: Iterable<T>): this;
|
|
34
|
-
/** Checks if an item with the same key exists in the set. */
|
|
35
|
-
has(item: T): boolean;
|
|
36
|
-
/** Checks if an item with the given key exists in the set. */
|
|
37
|
-
hasKey(key: K): boolean;
|
|
38
|
-
/** Gets an item by its key, or undefined if not found. */
|
|
39
|
-
getByKey(key: K): T | undefined;
|
|
40
|
-
/**
|
|
41
|
-
* Removes an item from the set by computing its key. Returns true if the item
|
|
42
|
-
* was removed.
|
|
43
|
-
*/
|
|
44
|
-
delete(item: T): boolean;
|
|
45
|
-
/** Removes an item by its key. Returns true if the item was removed. */
|
|
46
|
-
deleteByKey(key: K): boolean;
|
|
47
|
-
/** Removes multiple items from the set. Returns the number of items removed. */
|
|
48
|
-
deleteMultiple(items: Iterable<T>): number;
|
|
49
|
-
/** Removes multiple items by their keys. Returns the number of items removed. */
|
|
50
|
-
deleteMultipleByKeys(keys: Iterable<K>): number;
|
|
51
|
-
/** Removes all items from the set. */
|
|
52
|
-
clear(): void;
|
|
53
|
-
/** Executes a callback for each item in the set. */
|
|
54
|
-
forEach(callback: (value: T, value2: T, set: KeyedSet<T, K>) => void, thisArg?: unknown): void;
|
|
55
|
-
values(): IterableIterator<T>;
|
|
56
|
-
keys(): IterableIterator<T>;
|
|
57
|
-
entries(): IterableIterator<[T, T]>;
|
|
58
|
-
[Symbol.iterator](): IterableIterator<T>;
|
|
59
|
-
/** Returns all items as an array. */
|
|
60
|
-
toArray(): T[];
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* A Set that compares items by value instead of reference. Uses
|
|
64
|
-
* `getCompositeKey` to generate a stable string key for any value.
|
|
65
|
-
*
|
|
66
|
-
* @example
|
|
67
|
-
* const set = new ValueSet<{ x: number; y: number }>();
|
|
68
|
-
* set.add({ x: 1, y: 2 });
|
|
69
|
-
* set.add({ x: 1, y: 2 }); // ignored, same value already exists
|
|
70
|
-
* set.size; // 1
|
|
71
|
-
*/
|
|
72
|
-
declare class CompositeKeySet<T> extends KeyedSet<T, string> {
|
|
73
|
-
constructor(iterable?: Iterable<T>);
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
export { CompositeKeySet, KeyedSet };
|
package/dist/keyedSet.js
DELETED
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
getCompositeKey
|
|
3
|
-
} from "./chunk-6FIBVC2P.js";
|
|
4
|
-
import "./chunk-C2SVCIWE.js";
|
|
5
|
-
import "./chunk-JF2MDHOJ.js";
|
|
6
|
-
|
|
7
|
-
// src/keyedSet.ts
|
|
8
|
-
var KeyedSet = class {
|
|
9
|
-
map;
|
|
10
|
-
getKey;
|
|
11
|
-
/**
|
|
12
|
-
* @param getKey - Function to extract a unique key from each item
|
|
13
|
-
* @param iterable - Optional initial items to add to the set
|
|
14
|
-
*/
|
|
15
|
-
constructor(getKey, iterable) {
|
|
16
|
-
this.getKey = getKey;
|
|
17
|
-
this.map = /* @__PURE__ */ new Map();
|
|
18
|
-
if (iterable) {
|
|
19
|
-
for (const item of iterable) {
|
|
20
|
-
this.add(item);
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
/** The number of items in the set */
|
|
25
|
-
get size() {
|
|
26
|
-
return this.map.size;
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Adds an item to the set. If an item with the same key exists, it will be
|
|
30
|
-
* replaced.
|
|
31
|
-
*/
|
|
32
|
-
add(item) {
|
|
33
|
-
const key = this.getKey(item);
|
|
34
|
-
this.map.set(key, item);
|
|
35
|
-
return this;
|
|
36
|
-
}
|
|
37
|
-
/** Adds multiple items to the set. */
|
|
38
|
-
addMultiple(items) {
|
|
39
|
-
for (const item of items) {
|
|
40
|
-
this.add(item);
|
|
41
|
-
}
|
|
42
|
-
return this;
|
|
43
|
-
}
|
|
44
|
-
/** Checks if an item with the same key exists in the set. */
|
|
45
|
-
has(item) {
|
|
46
|
-
const key = this.getKey(item);
|
|
47
|
-
return this.map.has(key);
|
|
48
|
-
}
|
|
49
|
-
/** Checks if an item with the given key exists in the set. */
|
|
50
|
-
hasKey(key) {
|
|
51
|
-
return this.map.has(key);
|
|
52
|
-
}
|
|
53
|
-
/** Gets an item by its key, or undefined if not found. */
|
|
54
|
-
getByKey(key) {
|
|
55
|
-
return this.map.get(key);
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Removes an item from the set by computing its key. Returns true if the item
|
|
59
|
-
* was removed.
|
|
60
|
-
*/
|
|
61
|
-
delete(item) {
|
|
62
|
-
const key = this.getKey(item);
|
|
63
|
-
return this.map.delete(key);
|
|
64
|
-
}
|
|
65
|
-
/** Removes an item by its key. Returns true if the item was removed. */
|
|
66
|
-
deleteByKey(key) {
|
|
67
|
-
return this.map.delete(key);
|
|
68
|
-
}
|
|
69
|
-
/** Removes multiple items from the set. Returns the number of items removed. */
|
|
70
|
-
deleteMultiple(items) {
|
|
71
|
-
let count = 0;
|
|
72
|
-
for (const item of items) {
|
|
73
|
-
if (this.delete(item)) {
|
|
74
|
-
count++;
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
return count;
|
|
78
|
-
}
|
|
79
|
-
/** Removes multiple items by their keys. Returns the number of items removed. */
|
|
80
|
-
deleteMultipleByKeys(keys) {
|
|
81
|
-
let count = 0;
|
|
82
|
-
for (const key of keys) {
|
|
83
|
-
if (this.deleteByKey(key)) {
|
|
84
|
-
count++;
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
return count;
|
|
88
|
-
}
|
|
89
|
-
/** Removes all items from the set. */
|
|
90
|
-
clear() {
|
|
91
|
-
this.map.clear();
|
|
92
|
-
}
|
|
93
|
-
/** Executes a callback for each item in the set. */
|
|
94
|
-
forEach(callback, thisArg) {
|
|
95
|
-
for (const value of this.map.values()) {
|
|
96
|
-
callback.call(thisArg, value, value, this);
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
*values() {
|
|
100
|
-
yield* this.map.values();
|
|
101
|
-
}
|
|
102
|
-
*keys() {
|
|
103
|
-
yield* this.map.values();
|
|
104
|
-
}
|
|
105
|
-
*entries() {
|
|
106
|
-
for (const value of this.map.values()) {
|
|
107
|
-
yield [value, value];
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
[Symbol.iterator]() {
|
|
111
|
-
return this.values();
|
|
112
|
-
}
|
|
113
|
-
/** Returns all items as an array. */
|
|
114
|
-
toArray() {
|
|
115
|
-
return [...this.map.values()];
|
|
116
|
-
}
|
|
117
|
-
};
|
|
118
|
-
var CompositeKeySet = class extends KeyedSet {
|
|
119
|
-
constructor(iterable) {
|
|
120
|
-
super(getCompositeKey, iterable);
|
|
121
|
-
}
|
|
122
|
-
};
|
|
123
|
-
export {
|
|
124
|
-
CompositeKeySet,
|
|
125
|
-
KeyedSet
|
|
126
|
-
};
|
package/dist/levenshtein.cjs
DELETED
|
@@ -1,180 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
|
|
20
|
-
// src/levenshtein.ts
|
|
21
|
-
var levenshtein_exports = {};
|
|
22
|
-
__export(levenshtein_exports, {
|
|
23
|
-
getClosestString: () => getClosestString,
|
|
24
|
-
getClosestStringsUpToDist: () => getClosestStringsUpToDist,
|
|
25
|
-
levenshteinDistance: () => levenshteinDistance
|
|
26
|
-
});
|
|
27
|
-
module.exports = __toCommonJS(levenshtein_exports);
|
|
28
|
-
var peq = new Uint32Array(65536);
|
|
29
|
-
var myers_32 = (a, b) => {
|
|
30
|
-
const n = a.length;
|
|
31
|
-
const m = b.length;
|
|
32
|
-
const lst = 1 << n - 1;
|
|
33
|
-
let pv = -1;
|
|
34
|
-
let mv = 0;
|
|
35
|
-
let sc = n;
|
|
36
|
-
let i = n;
|
|
37
|
-
while (i--) {
|
|
38
|
-
peq[a.charCodeAt(i)] |= 1 << i;
|
|
39
|
-
}
|
|
40
|
-
for (i = 0; i < m; i++) {
|
|
41
|
-
let eq = peq[b.charCodeAt(i)];
|
|
42
|
-
const xv = eq | mv;
|
|
43
|
-
eq |= (eq & pv) + pv ^ pv;
|
|
44
|
-
mv |= ~(eq | pv);
|
|
45
|
-
pv &= eq;
|
|
46
|
-
if (mv & lst) {
|
|
47
|
-
sc++;
|
|
48
|
-
}
|
|
49
|
-
if (pv & lst) {
|
|
50
|
-
sc--;
|
|
51
|
-
}
|
|
52
|
-
mv = mv << 1 | 1;
|
|
53
|
-
pv = pv << 1 | ~(xv | mv);
|
|
54
|
-
mv &= xv;
|
|
55
|
-
}
|
|
56
|
-
i = n;
|
|
57
|
-
while (i--) {
|
|
58
|
-
peq[a.charCodeAt(i)] = 0;
|
|
59
|
-
}
|
|
60
|
-
return sc;
|
|
61
|
-
};
|
|
62
|
-
var myers_x = (b, a) => {
|
|
63
|
-
const n = a.length;
|
|
64
|
-
const m = b.length;
|
|
65
|
-
const mhc = [];
|
|
66
|
-
const phc = [];
|
|
67
|
-
const hsize = Math.ceil(n / 32);
|
|
68
|
-
const vsize = Math.ceil(m / 32);
|
|
69
|
-
for (let i = 0; i < hsize; i++) {
|
|
70
|
-
phc[i] = -1;
|
|
71
|
-
mhc[i] = 0;
|
|
72
|
-
}
|
|
73
|
-
let j = 0;
|
|
74
|
-
for (; j < vsize - 1; j++) {
|
|
75
|
-
let mv2 = 0;
|
|
76
|
-
let pv2 = -1;
|
|
77
|
-
const start2 = j * 32;
|
|
78
|
-
const vlen2 = Math.min(32, m) + start2;
|
|
79
|
-
for (let k = start2; k < vlen2; k++) {
|
|
80
|
-
peq[b.charCodeAt(k)] |= 1 << k;
|
|
81
|
-
}
|
|
82
|
-
for (let i = 0; i < n; i++) {
|
|
83
|
-
const eq = peq[a.charCodeAt(i)];
|
|
84
|
-
const pb = phc[i / 32 | 0] >>> i & 1;
|
|
85
|
-
const mb = mhc[i / 32 | 0] >>> i & 1;
|
|
86
|
-
const xv = eq | mv2;
|
|
87
|
-
const xh = ((eq | mb) & pv2) + pv2 ^ pv2 | eq | mb;
|
|
88
|
-
let ph = mv2 | ~(xh | pv2);
|
|
89
|
-
let mh = pv2 & xh;
|
|
90
|
-
if (ph >>> 31 ^ pb) {
|
|
91
|
-
phc[i / 32 | 0] ^= 1 << i;
|
|
92
|
-
}
|
|
93
|
-
if (mh >>> 31 ^ mb) {
|
|
94
|
-
mhc[i / 32 | 0] ^= 1 << i;
|
|
95
|
-
}
|
|
96
|
-
ph = ph << 1 | pb;
|
|
97
|
-
mh = mh << 1 | mb;
|
|
98
|
-
pv2 = mh | ~(xv | ph);
|
|
99
|
-
mv2 = ph & xv;
|
|
100
|
-
}
|
|
101
|
-
for (let k = start2; k < vlen2; k++) {
|
|
102
|
-
peq[b.charCodeAt(k)] = 0;
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
let mv = 0;
|
|
106
|
-
let pv = -1;
|
|
107
|
-
const start = j * 32;
|
|
108
|
-
const vlen = Math.min(32, m - start) + start;
|
|
109
|
-
for (let k = start; k < vlen; k++) {
|
|
110
|
-
peq[b.charCodeAt(k)] |= 1 << k;
|
|
111
|
-
}
|
|
112
|
-
let score = m;
|
|
113
|
-
for (let i = 0; i < n; i++) {
|
|
114
|
-
const eq = peq[a.charCodeAt(i)];
|
|
115
|
-
const pb = phc[i / 32 | 0] >>> i & 1;
|
|
116
|
-
const mb = mhc[i / 32 | 0] >>> i & 1;
|
|
117
|
-
const xv = eq | mv;
|
|
118
|
-
const xh = ((eq | mb) & pv) + pv ^ pv | eq | mb;
|
|
119
|
-
let ph = mv | ~(xh | pv);
|
|
120
|
-
let mh = pv & xh;
|
|
121
|
-
score += ph >>> m - 1 & 1;
|
|
122
|
-
score -= mh >>> m - 1 & 1;
|
|
123
|
-
if (ph >>> 31 ^ pb) {
|
|
124
|
-
phc[i / 32 | 0] ^= 1 << i;
|
|
125
|
-
}
|
|
126
|
-
if (mh >>> 31 ^ mb) {
|
|
127
|
-
mhc[i / 32 | 0] ^= 1 << i;
|
|
128
|
-
}
|
|
129
|
-
ph = ph << 1 | pb;
|
|
130
|
-
mh = mh << 1 | mb;
|
|
131
|
-
pv = mh | ~(xv | ph);
|
|
132
|
-
mv = ph & xv;
|
|
133
|
-
}
|
|
134
|
-
for (let k = start; k < vlen; k++) {
|
|
135
|
-
peq[b.charCodeAt(k)] = 0;
|
|
136
|
-
}
|
|
137
|
-
return score;
|
|
138
|
-
};
|
|
139
|
-
function levenshteinDistance(a, b) {
|
|
140
|
-
if (a.length < b.length) {
|
|
141
|
-
const tmp = b;
|
|
142
|
-
b = a;
|
|
143
|
-
a = tmp;
|
|
144
|
-
}
|
|
145
|
-
if (b.length === 0) {
|
|
146
|
-
return a.length;
|
|
147
|
-
}
|
|
148
|
-
if (a.length <= 32) {
|
|
149
|
-
return myers_32(a, b);
|
|
150
|
-
}
|
|
151
|
-
return myers_x(a, b);
|
|
152
|
-
}
|
|
153
|
-
function getClosestString(str, arr, maxDistance = 2) {
|
|
154
|
-
let min_distance = Infinity;
|
|
155
|
-
let closestString;
|
|
156
|
-
for (let i = 0; i < arr.length; i++) {
|
|
157
|
-
const dist = levenshteinDistance(str, arr[i]);
|
|
158
|
-
if (dist < min_distance && dist <= maxDistance) {
|
|
159
|
-
min_distance = dist;
|
|
160
|
-
closestString = arr[i];
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
return closestString;
|
|
164
|
-
}
|
|
165
|
-
function getClosestStringsUpToDist(str, arr, maxDistance = 2) {
|
|
166
|
-
const distanceMap = /* @__PURE__ */ new Map();
|
|
167
|
-
for (const item of arr) {
|
|
168
|
-
const distance = levenshteinDistance(str, item);
|
|
169
|
-
if (distance <= maxDistance) {
|
|
170
|
-
distanceMap.set(item, distance);
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
return Array.from(distanceMap.entries()).sort((a, b) => a[1] - b[1]).map(([item]) => item);
|
|
174
|
-
}
|
|
175
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
176
|
-
0 && (module.exports = {
|
|
177
|
-
getClosestString,
|
|
178
|
-
getClosestStringsUpToDist,
|
|
179
|
-
levenshteinDistance
|
|
180
|
-
});
|
package/dist/levenshtein.d.ts
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
declare function levenshteinDistance(a: string, b: string): number;
|
|
2
|
-
declare function getClosestString(str: string, arr: readonly string[], maxDistance?: number): string | undefined;
|
|
3
|
-
declare function getClosestStringsUpToDist(str: string, arr: readonly string[], maxDistance?: number): string[];
|
|
4
|
-
|
|
5
|
-
export { getClosestString, getClosestStringsUpToDist, levenshteinDistance };
|