@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.
Files changed (336) hide show
  1. package/dist/{arrayUtils.d.cts → arrayUtils.d.mts} +24 -23
  2. package/dist/arrayUtils.mjs +249 -0
  3. package/dist/assertions-qMxfVhSu.mjs +207 -0
  4. package/dist/{assertions.d.ts → assertions.d.mts} +4 -3
  5. package/dist/assertions.mjs +3 -0
  6. package/dist/asyncQueue.d.mts +497 -0
  7. package/dist/asyncQueue.mjs +757 -0
  8. package/dist/{awaitDebounce.d.cts → awaitDebounce.d.mts} +11 -6
  9. package/dist/awaitDebounce.mjs +54 -0
  10. package/dist/{cache.d.ts → cache.d.mts} +76 -68
  11. package/dist/cache.mjs +355 -0
  12. package/dist/castValues-DfICShCc.mjs +19 -0
  13. package/dist/{castValues.d.cts → castValues.d.mts} +3 -2
  14. package/dist/castValues.mjs +3 -0
  15. package/dist/{concurrentCalls.d.ts → concurrentCalls.d.mts} +74 -65
  16. package/dist/concurrentCalls.mjs +295 -0
  17. package/dist/consoleFmt.d.mts +55 -0
  18. package/dist/consoleFmt.mjs +63 -0
  19. package/dist/conversions-DTmwEMIu.mjs +12 -0
  20. package/dist/conversions.d.mts +4 -0
  21. package/dist/conversions.mjs +3 -0
  22. package/dist/createThrottleController.d.mts +18 -0
  23. package/dist/createThrottleController.mjs +40 -0
  24. package/dist/debounce.d.mts +47 -0
  25. package/dist/debounce.mjs +117 -0
  26. package/dist/dedent.d.mts +74 -0
  27. package/dist/dedent.mjs +80 -0
  28. package/dist/deepEqual-C7EZEixx.mjs +78 -0
  29. package/dist/{deepEqual.d.cts → deepEqual.d.mts} +3 -2
  30. package/dist/deepEqual.mjs +3 -0
  31. package/dist/{deepReplaceValues.d.cts → deepReplaceValues.d.mts} +4 -3
  32. package/dist/deepReplaceValues.mjs +61 -0
  33. package/dist/diffParser.d.mts +79 -0
  34. package/dist/diffParser.mjs +424 -0
  35. package/dist/enhancedMap.d.mts +21 -0
  36. package/dist/enhancedMap.mjs +69 -0
  37. package/dist/exhaustiveMatch.d.mts +10 -0
  38. package/dist/exhaustiveMatch.mjs +48 -0
  39. package/dist/{filterObjectOrArrayKeys.d.cts → filterObjectOrArrayKeys.d.mts} +15 -8
  40. package/dist/filterObjectOrArrayKeys.mjs +497 -0
  41. package/dist/{getAutoIncrementId.d.cts → getAutoIncrementId.d.mts} +9 -5
  42. package/dist/getAutoIncrementId.mjs +53 -0
  43. package/dist/{getCompositeKey.d.cts → getCompositeKey.d.mts} +3 -2
  44. package/dist/getCompositeKey.mjs +50 -0
  45. package/dist/{getValueStableKey.d.cts → getValueStableKey.d.mts} +5 -3
  46. package/dist/getValueStableKey.mjs +17 -0
  47. package/dist/{hash.d.cts → hash.d.mts} +3 -2
  48. package/dist/hash.mjs +28 -0
  49. package/dist/interpolate.d.mts +17 -0
  50. package/dist/interpolate.mjs +28 -0
  51. package/dist/{iteratorUtils.d.cts → iteratorUtils.d.mts} +5 -4
  52. package/dist/iteratorUtils.mjs +39 -0
  53. package/dist/keepPrevIfUnchanged.d.mts +12 -0
  54. package/dist/keepPrevIfUnchanged.mjs +9 -0
  55. package/dist/keyedMap.d.mts +76 -0
  56. package/dist/keyedMap.mjs +139 -0
  57. package/dist/keyedSet.d.mts +77 -0
  58. package/dist/keyedSet.mjs +129 -0
  59. package/dist/{levenshtein.d.cts → levenshtein.d.mts} +3 -2
  60. package/dist/levenshtein.mjs +121 -0
  61. package/dist/main.d.mts +4 -0
  62. package/dist/main.mjs +7 -0
  63. package/dist/matchPath.d.mts +50 -0
  64. package/dist/matchPath.mjs +81 -0
  65. package/dist/mathUtils-BDP1lM_z.mjs +81 -0
  66. package/dist/{mathUtils.d.cts → mathUtils.d.mts} +3 -2
  67. package/dist/mathUtils.mjs +3 -0
  68. package/dist/{mutationUtils.d.cts → mutationUtils.d.mts} +6 -5
  69. package/dist/mutationUtils.mjs +44 -0
  70. package/dist/{objUtils.d.ts → objUtils.d.mts} +8 -6
  71. package/dist/objUtils.mjs +115 -0
  72. package/dist/parallelAsyncCalls.d.mts +83 -0
  73. package/dist/parallelAsyncCalls.mjs +121 -0
  74. package/dist/partialEqual.d.mts +139 -0
  75. package/dist/partialEqual.mjs +1055 -0
  76. package/dist/promiseUtils.d.mts +9 -0
  77. package/dist/promiseUtils.mjs +17 -0
  78. package/dist/regexUtils.d.mts +18 -0
  79. package/dist/regexUtils.mjs +34 -0
  80. package/dist/{retryOnError.d.cts → retryOnError.d.mts} +38 -37
  81. package/dist/retryOnError.mjs +91 -0
  82. package/dist/{runShellCmd.d.ts → runShellCmd.d.mts} +24 -15
  83. package/dist/runShellCmd.mjs +151 -0
  84. package/dist/{safeJson.d.cts → safeJson.d.mts} +3 -2
  85. package/dist/safeJson.mjs +30 -0
  86. package/dist/{saferTyping.d.cts → saferTyping.d.mts} +4 -3
  87. package/dist/saferTyping.mjs +45 -0
  88. package/dist/serializeXML.d.mts +23 -0
  89. package/dist/serializeXML.mjs +74 -0
  90. package/dist/{shallowEqual.d.cts → shallowEqual.d.mts} +3 -2
  91. package/dist/shallowEqual.mjs +54 -0
  92. package/dist/sleep.d.mts +4 -0
  93. package/dist/sleep.mjs +7 -0
  94. package/dist/stringUtils-DjhWOiYn.mjs +113 -0
  95. package/dist/{stringUtils.d.cts → stringUtils.d.mts} +3 -2
  96. package/dist/stringUtils.mjs +3 -0
  97. package/dist/{testUtils.d.ts → testUtils.d.mts} +83 -52
  98. package/dist/testUtils.mjs +310 -0
  99. package/dist/{throttle.d.ts → throttle.d.mts} +18 -17
  100. package/dist/throttle.mjs +102 -0
  101. package/dist/time-sr2lhQRw.mjs +67 -0
  102. package/dist/{time.d.ts → time.d.mts} +8 -7
  103. package/dist/time.mjs +3 -0
  104. package/dist/{timers.d.cts → timers.d.mts} +22 -13
  105. package/dist/timers.mjs +220 -0
  106. package/dist/{tsResult.d.cts → tsResult.d.mts} +52 -48
  107. package/dist/tsResult.mjs +142 -0
  108. package/dist/typeGuards-B1mzA-Rz.mjs +128 -0
  109. package/dist/{typeGuards.d.cts → typeGuards.d.mts} +3 -2
  110. package/dist/typeGuards.mjs +3 -0
  111. package/dist/{typeUtils.d.ts → typeUtils.d.mts} +13 -34
  112. package/dist/typeUtils.mjs +1 -0
  113. package/dist/{typedStrings.d.cts → typedStrings.d.mts} +5 -4
  114. package/dist/typedStrings.mjs +131 -0
  115. package/dist/typingFnUtils-Bb8drgKF.mjs +101 -0
  116. package/dist/{typingFnUtils.d.cts → typingFnUtils.d.mts} +13 -22
  117. package/dist/typingFnUtils.mjs +3 -0
  118. package/dist/{typingTestUtils.d.cts → typingTestUtils.d.mts} +11 -15
  119. package/dist/typingTestUtils.mjs +80 -0
  120. package/dist/typingUtils.d.mts +20 -0
  121. package/dist/typingUtils.mjs +1 -0
  122. package/dist/yamlStringify.d.mts +17 -0
  123. package/dist/yamlStringify.mjs +189 -0
  124. package/package.json +65 -242
  125. package/dist/arrayUtils.cjs +0 -229
  126. package/dist/arrayUtils.d.ts +0 -171
  127. package/dist/arrayUtils.js +0 -42
  128. package/dist/assertions.cjs +0 -107
  129. package/dist/assertions.d.cts +0 -192
  130. package/dist/assertions.js +0 -25
  131. package/dist/asyncQueue.cjs +0 -672
  132. package/dist/asyncQueue.d.cts +0 -488
  133. package/dist/asyncQueue.d.ts +0 -488
  134. package/dist/asyncQueue.js +0 -631
  135. package/dist/awaitDebounce.cjs +0 -106
  136. package/dist/awaitDebounce.d.ts +0 -41
  137. package/dist/awaitDebounce.js +0 -28
  138. package/dist/cache.cjs +0 -367
  139. package/dist/cache.d.cts +0 -228
  140. package/dist/cache.js +0 -19
  141. package/dist/castValues.cjs +0 -50
  142. package/dist/castValues.d.ts +0 -4
  143. package/dist/castValues.js +0 -8
  144. package/dist/chunk-5DZT3Z5Z.js +0 -8
  145. package/dist/chunk-6FBIEPWU.js +0 -96
  146. package/dist/chunk-6FIBVC2P.js +0 -56
  147. package/dist/chunk-7CQPOM5I.js +0 -100
  148. package/dist/chunk-B6DNOZCP.js +0 -369
  149. package/dist/chunk-BM4PYVOX.js +0 -109
  150. package/dist/chunk-C2SVCIWE.js +0 -57
  151. package/dist/chunk-CCUPDGSZ.js +0 -132
  152. package/dist/chunk-DBOWTYR4.js +0 -49
  153. package/dist/chunk-DFXNVEH6.js +0 -14
  154. package/dist/chunk-DX2524CZ.js +0 -314
  155. package/dist/chunk-GMJTLFM6.js +0 -60
  156. package/dist/chunk-IATIXMCE.js +0 -20
  157. package/dist/chunk-II4R3VVX.js +0 -25
  158. package/dist/chunk-JF2MDHOJ.js +0 -40
  159. package/dist/chunk-JQFUKJU5.js +0 -71
  160. package/dist/chunk-MI4UE2PQ.js +0 -561
  161. package/dist/chunk-PUKVXYYL.js +0 -52
  162. package/dist/chunk-QQS7I7ZL.js +0 -16
  163. package/dist/chunk-VAAMRG4K.js +0 -20
  164. package/dist/chunk-WFQJUJTC.js +0 -182
  165. package/dist/chunk-ZXIKIA5B.js +0 -178
  166. package/dist/concurrentCalls.cjs +0 -406
  167. package/dist/concurrentCalls.d.cts +0 -116
  168. package/dist/concurrentCalls.js +0 -346
  169. package/dist/consoleFmt.cjs +0 -85
  170. package/dist/consoleFmt.d.cts +0 -54
  171. package/dist/consoleFmt.d.ts +0 -54
  172. package/dist/consoleFmt.js +0 -60
  173. package/dist/conversions.cjs +0 -44
  174. package/dist/conversions.d.cts +0 -3
  175. package/dist/conversions.d.ts +0 -3
  176. package/dist/conversions.js +0 -6
  177. package/dist/createThrottleController.cjs +0 -193
  178. package/dist/createThrottleController.d.cts +0 -13
  179. package/dist/createThrottleController.d.ts +0 -13
  180. package/dist/createThrottleController.js +0 -61
  181. package/dist/debounce.cjs +0 -157
  182. package/dist/debounce.d.cts +0 -46
  183. package/dist/debounce.d.ts +0 -46
  184. package/dist/debounce.js +0 -8
  185. package/dist/dedent.cjs +0 -104
  186. package/dist/dedent.d.cts +0 -73
  187. package/dist/dedent.d.ts +0 -73
  188. package/dist/dedent.js +0 -79
  189. package/dist/deepEqual.cjs +0 -96
  190. package/dist/deepEqual.d.ts +0 -21
  191. package/dist/deepEqual.js +0 -8
  192. package/dist/deepReplaceValues.cjs +0 -87
  193. package/dist/deepReplaceValues.d.ts +0 -27
  194. package/dist/deepReplaceValues.js +0 -7
  195. package/dist/enhancedMap.cjs +0 -131
  196. package/dist/enhancedMap.d.cts +0 -20
  197. package/dist/enhancedMap.d.ts +0 -20
  198. package/dist/enhancedMap.js +0 -10
  199. package/dist/exhaustiveMatch.cjs +0 -66
  200. package/dist/exhaustiveMatch.d.cts +0 -9
  201. package/dist/exhaustiveMatch.d.ts +0 -9
  202. package/dist/exhaustiveMatch.js +0 -40
  203. package/dist/filterObjectOrArrayKeys.cjs +0 -619
  204. package/dist/filterObjectOrArrayKeys.d.ts +0 -88
  205. package/dist/filterObjectOrArrayKeys.js +0 -9
  206. package/dist/getAutoIncrementId.cjs +0 -44
  207. package/dist/getAutoIncrementId.d.ts +0 -46
  208. package/dist/getAutoIncrementId.js +0 -18
  209. package/dist/getCompositeKey.cjs +0 -86
  210. package/dist/getCompositeKey.d.ts +0 -11
  211. package/dist/getCompositeKey.js +0 -8
  212. package/dist/getValueStableKey.cjs +0 -89
  213. package/dist/getValueStableKey.d.ts +0 -15
  214. package/dist/getValueStableKey.js +0 -11
  215. package/dist/hash.cjs +0 -57
  216. package/dist/hash.d.ts +0 -7
  217. package/dist/hash.js +0 -32
  218. package/dist/interpolate.cjs +0 -88
  219. package/dist/interpolate.d.cts +0 -11
  220. package/dist/interpolate.d.ts +0 -11
  221. package/dist/interpolate.js +0 -46
  222. package/dist/iteratorUtils.cjs +0 -73
  223. package/dist/iteratorUtils.d.ts +0 -10
  224. package/dist/iteratorUtils.js +0 -44
  225. package/dist/keepPrevIfUnchanged.cjs +0 -102
  226. package/dist/keepPrevIfUnchanged.d.cts +0 -7
  227. package/dist/keepPrevIfUnchanged.d.ts +0 -7
  228. package/dist/keepPrevIfUnchanged.js +0 -7
  229. package/dist/keyedMap.cjs +0 -224
  230. package/dist/keyedMap.d.cts +0 -75
  231. package/dist/keyedMap.d.ts +0 -75
  232. package/dist/keyedMap.js +0 -145
  233. package/dist/keyedSet.cjs +0 -205
  234. package/dist/keyedSet.d.cts +0 -76
  235. package/dist/keyedSet.d.ts +0 -76
  236. package/dist/keyedSet.js +0 -126
  237. package/dist/levenshtein.cjs +0 -180
  238. package/dist/levenshtein.d.ts +0 -5
  239. package/dist/levenshtein.js +0 -153
  240. package/dist/main.cjs +0 -32
  241. package/dist/main.d.cts +0 -3
  242. package/dist/main.d.ts +0 -3
  243. package/dist/main.js +0 -7
  244. package/dist/matchPath.cjs +0 -155
  245. package/dist/matchPath.d.cts +0 -53
  246. package/dist/matchPath.d.ts +0 -53
  247. package/dist/matchPath.js +0 -108
  248. package/dist/mathUtils.cjs +0 -81
  249. package/dist/mathUtils.d.ts +0 -54
  250. package/dist/mathUtils.js +0 -22
  251. package/dist/mutationUtils.cjs +0 -153
  252. package/dist/mutationUtils.d.ts +0 -15
  253. package/dist/mutationUtils.js +0 -55
  254. package/dist/objUtils.cjs +0 -242
  255. package/dist/objUtils.d.cts +0 -28
  256. package/dist/objUtils.js +0 -38
  257. package/dist/parallelAsyncCalls.cjs +0 -162
  258. package/dist/parallelAsyncCalls.d.cts +0 -82
  259. package/dist/parallelAsyncCalls.d.ts +0 -82
  260. package/dist/parallelAsyncCalls.js +0 -126
  261. package/dist/partialEqual.cjs +0 -1196
  262. package/dist/partialEqual.d.cts +0 -141
  263. package/dist/partialEqual.d.ts +0 -141
  264. package/dist/partialEqual.js +0 -1168
  265. package/dist/promiseUtils.cjs +0 -38
  266. package/dist/promiseUtils.d.cts +0 -8
  267. package/dist/promiseUtils.d.ts +0 -8
  268. package/dist/promiseUtils.js +0 -6
  269. package/dist/regexUtils.cjs +0 -60
  270. package/dist/regexUtils.d.cts +0 -17
  271. package/dist/regexUtils.d.ts +0 -17
  272. package/dist/regexUtils.js +0 -33
  273. package/dist/retryOnError.cjs +0 -130
  274. package/dist/retryOnError.d.ts +0 -83
  275. package/dist/retryOnError.js +0 -101
  276. package/dist/runShellCmd.cjs +0 -127
  277. package/dist/runShellCmd.d.cts +0 -90
  278. package/dist/runShellCmd.js +0 -98
  279. package/dist/safeJson.cjs +0 -45
  280. package/dist/safeJson.d.ts +0 -16
  281. package/dist/safeJson.js +0 -8
  282. package/dist/saferTyping.cjs +0 -52
  283. package/dist/saferTyping.d.ts +0 -47
  284. package/dist/saferTyping.js +0 -23
  285. package/dist/serializeXML.cjs +0 -154
  286. package/dist/serializeXML.d.cts +0 -22
  287. package/dist/serializeXML.d.ts +0 -22
  288. package/dist/serializeXML.js +0 -116
  289. package/dist/shallowEqual.cjs +0 -88
  290. package/dist/shallowEqual.d.ts +0 -4
  291. package/dist/shallowEqual.js +0 -63
  292. package/dist/sleep.cjs +0 -32
  293. package/dist/sleep.d.cts +0 -3
  294. package/dist/sleep.d.ts +0 -3
  295. package/dist/sleep.js +0 -6
  296. package/dist/stringUtils.cjs +0 -155
  297. package/dist/stringUtils.d.ts +0 -55
  298. package/dist/stringUtils.js +0 -50
  299. package/dist/testUtils.cjs +0 -1490
  300. package/dist/testUtils.d.cts +0 -133
  301. package/dist/testUtils.js +0 -359
  302. package/dist/throttle.cjs +0 -282
  303. package/dist/throttle.d.cts +0 -98
  304. package/dist/throttle.js +0 -38
  305. package/dist/time.cjs +0 -152
  306. package/dist/time.d.cts +0 -25
  307. package/dist/time.js +0 -38
  308. package/dist/timers.cjs +0 -194
  309. package/dist/timers.d.ts +0 -121
  310. package/dist/timers.js +0 -156
  311. package/dist/tsResult.cjs +0 -226
  312. package/dist/tsResult.d.ts +0 -114
  313. package/dist/tsResult.js +0 -180
  314. package/dist/typeGuards.cjs +0 -70
  315. package/dist/typeGuards.d.ts +0 -111
  316. package/dist/typeGuards.js +0 -18
  317. package/dist/typeUtils.cjs +0 -18
  318. package/dist/typeUtils.d.cts +0 -61
  319. package/dist/typeUtils.js +0 -0
  320. package/dist/typedStrings.cjs +0 -90
  321. package/dist/typedStrings.d.ts +0 -163
  322. package/dist/typedStrings.js +0 -57
  323. package/dist/typingFnUtils.cjs +0 -96
  324. package/dist/typingFnUtils.d.ts +0 -100
  325. package/dist/typingFnUtils.js +0 -30
  326. package/dist/typingTestUtils.cjs +0 -52
  327. package/dist/typingTestUtils.d.ts +0 -79
  328. package/dist/typingTestUtils.js +0 -27
  329. package/dist/typingUtils.cjs +0 -18
  330. package/dist/typingUtils.d.cts +0 -35
  331. package/dist/typingUtils.d.ts +0 -35
  332. package/dist/typingUtils.js +0 -0
  333. package/dist/yamlStringify.cjs +0 -423
  334. package/dist/yamlStringify.d.cts +0 -10
  335. package/dist/yamlStringify.d.ts +0 -10
  336. 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
- });
@@ -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 };
@@ -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
- };
@@ -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
- });
@@ -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 };