@ls-stack/utils 3.63.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.
Files changed (328) 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 +63 -0
  34. package/dist/diffParser.mjs +410 -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 -234
  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/levenshtein.cjs +0 -180
  230. package/dist/levenshtein.d.ts +0 -5
  231. package/dist/levenshtein.js +0 -153
  232. package/dist/main.cjs +0 -32
  233. package/dist/main.d.cts +0 -3
  234. package/dist/main.d.ts +0 -3
  235. package/dist/main.js +0 -7
  236. package/dist/matchPath.cjs +0 -155
  237. package/dist/matchPath.d.cts +0 -53
  238. package/dist/matchPath.d.ts +0 -53
  239. package/dist/matchPath.js +0 -108
  240. package/dist/mathUtils.cjs +0 -81
  241. package/dist/mathUtils.d.ts +0 -54
  242. package/dist/mathUtils.js +0 -22
  243. package/dist/mutationUtils.cjs +0 -153
  244. package/dist/mutationUtils.d.ts +0 -15
  245. package/dist/mutationUtils.js +0 -55
  246. package/dist/objUtils.cjs +0 -242
  247. package/dist/objUtils.d.cts +0 -28
  248. package/dist/objUtils.js +0 -38
  249. package/dist/parallelAsyncCalls.cjs +0 -162
  250. package/dist/parallelAsyncCalls.d.cts +0 -82
  251. package/dist/parallelAsyncCalls.d.ts +0 -82
  252. package/dist/parallelAsyncCalls.js +0 -126
  253. package/dist/partialEqual.cjs +0 -1196
  254. package/dist/partialEqual.d.cts +0 -141
  255. package/dist/partialEqual.d.ts +0 -141
  256. package/dist/partialEqual.js +0 -1168
  257. package/dist/promiseUtils.cjs +0 -38
  258. package/dist/promiseUtils.d.cts +0 -8
  259. package/dist/promiseUtils.d.ts +0 -8
  260. package/dist/promiseUtils.js +0 -6
  261. package/dist/regexUtils.cjs +0 -60
  262. package/dist/regexUtils.d.cts +0 -17
  263. package/dist/regexUtils.d.ts +0 -17
  264. package/dist/regexUtils.js +0 -33
  265. package/dist/retryOnError.cjs +0 -130
  266. package/dist/retryOnError.d.ts +0 -83
  267. package/dist/retryOnError.js +0 -101
  268. package/dist/runShellCmd.cjs +0 -127
  269. package/dist/runShellCmd.d.cts +0 -90
  270. package/dist/runShellCmd.js +0 -98
  271. package/dist/safeJson.cjs +0 -45
  272. package/dist/safeJson.d.ts +0 -16
  273. package/dist/safeJson.js +0 -8
  274. package/dist/saferTyping.cjs +0 -52
  275. package/dist/saferTyping.d.ts +0 -47
  276. package/dist/saferTyping.js +0 -23
  277. package/dist/serializeXML.cjs +0 -154
  278. package/dist/serializeXML.d.cts +0 -22
  279. package/dist/serializeXML.d.ts +0 -22
  280. package/dist/serializeXML.js +0 -116
  281. package/dist/shallowEqual.cjs +0 -88
  282. package/dist/shallowEqual.d.ts +0 -4
  283. package/dist/shallowEqual.js +0 -63
  284. package/dist/sleep.cjs +0 -32
  285. package/dist/sleep.d.cts +0 -3
  286. package/dist/sleep.d.ts +0 -3
  287. package/dist/sleep.js +0 -6
  288. package/dist/stringUtils.cjs +0 -155
  289. package/dist/stringUtils.d.ts +0 -55
  290. package/dist/stringUtils.js +0 -50
  291. package/dist/testUtils.cjs +0 -1490
  292. package/dist/testUtils.d.cts +0 -133
  293. package/dist/testUtils.js +0 -359
  294. package/dist/throttle.cjs +0 -282
  295. package/dist/throttle.d.cts +0 -98
  296. package/dist/throttle.js +0 -38
  297. package/dist/time.cjs +0 -152
  298. package/dist/time.d.cts +0 -25
  299. package/dist/time.js +0 -38
  300. package/dist/timers.cjs +0 -194
  301. package/dist/timers.d.ts +0 -121
  302. package/dist/timers.js +0 -156
  303. package/dist/tsResult.cjs +0 -226
  304. package/dist/tsResult.d.ts +0 -114
  305. package/dist/tsResult.js +0 -180
  306. package/dist/typeGuards.cjs +0 -70
  307. package/dist/typeGuards.d.ts +0 -111
  308. package/dist/typeGuards.js +0 -18
  309. package/dist/typeUtils.cjs +0 -18
  310. package/dist/typeUtils.d.cts +0 -61
  311. package/dist/typeUtils.js +0 -0
  312. package/dist/typedStrings.cjs +0 -90
  313. package/dist/typedStrings.d.ts +0 -163
  314. package/dist/typedStrings.js +0 -57
  315. package/dist/typingFnUtils.cjs +0 -96
  316. package/dist/typingFnUtils.d.ts +0 -100
  317. package/dist/typingFnUtils.js +0 -30
  318. package/dist/typingTestUtils.cjs +0 -52
  319. package/dist/typingTestUtils.d.ts +0 -79
  320. package/dist/typingTestUtils.js +0 -27
  321. package/dist/typingUtils.cjs +0 -18
  322. package/dist/typingUtils.d.cts +0 -35
  323. package/dist/typingUtils.d.ts +0 -35
  324. package/dist/typingUtils.js +0 -0
  325. package/dist/yamlStringify.cjs +0 -423
  326. package/dist/yamlStringify.d.cts +0 -10
  327. package/dist/yamlStringify.d.ts +0 -10
  328. package/dist/yamlStringify.js +0 -9
@@ -0,0 +1,121 @@
1
+ //#region src/levenshtein.ts
2
+ const peq = new Uint32Array(65536);
3
+ const myers_32 = (a, b) => {
4
+ const n = a.length;
5
+ const m = b.length;
6
+ const lst = 1 << n - 1;
7
+ let pv = -1;
8
+ let mv = 0;
9
+ let sc = n;
10
+ let i = n;
11
+ while (i--) peq[a.charCodeAt(i)] |= 1 << i;
12
+ for (i = 0; i < m; i++) {
13
+ let eq = peq[b.charCodeAt(i)];
14
+ const xv = eq | mv;
15
+ eq |= (eq & pv) + pv ^ pv;
16
+ mv |= ~(eq | pv);
17
+ pv &= eq;
18
+ if (mv & lst) sc++;
19
+ if (pv & lst) sc--;
20
+ mv = mv << 1 | 1;
21
+ pv = pv << 1 | ~(xv | mv);
22
+ mv &= xv;
23
+ }
24
+ i = n;
25
+ while (i--) peq[a.charCodeAt(i)] = 0;
26
+ return sc;
27
+ };
28
+ const myers_x = (b, a) => {
29
+ const n = a.length;
30
+ const m = b.length;
31
+ const mhc = [];
32
+ const phc = [];
33
+ const hsize = Math.ceil(n / 32);
34
+ const vsize = Math.ceil(m / 32);
35
+ for (let i = 0; i < hsize; i++) {
36
+ phc[i] = -1;
37
+ mhc[i] = 0;
38
+ }
39
+ let j = 0;
40
+ for (; j < vsize - 1; j++) {
41
+ let mv$1 = 0;
42
+ let pv$1 = -1;
43
+ const start$1 = j * 32;
44
+ const vlen$1 = Math.min(32, m) + start$1;
45
+ for (let k = start$1; k < vlen$1; k++) peq[b.charCodeAt(k)] |= 1 << k;
46
+ for (let i = 0; i < n; i++) {
47
+ const eq = peq[a.charCodeAt(i)];
48
+ const pb = phc[i / 32 | 0] >>> i & 1;
49
+ const mb = mhc[i / 32 | 0] >>> i & 1;
50
+ const xv = eq | mv$1;
51
+ const xh = ((eq | mb) & pv$1) + pv$1 ^ pv$1 | eq | mb;
52
+ let ph = mv$1 | ~(xh | pv$1);
53
+ let mh = pv$1 & xh;
54
+ if (ph >>> 31 ^ pb) phc[i / 32 | 0] ^= 1 << i;
55
+ if (mh >>> 31 ^ mb) mhc[i / 32 | 0] ^= 1 << i;
56
+ ph = ph << 1 | pb;
57
+ mh = mh << 1 | mb;
58
+ pv$1 = mh | ~(xv | ph);
59
+ mv$1 = ph & xv;
60
+ }
61
+ for (let k = start$1; k < vlen$1; k++) peq[b.charCodeAt(k)] = 0;
62
+ }
63
+ let mv = 0;
64
+ let pv = -1;
65
+ const start = j * 32;
66
+ const vlen = Math.min(32, m - start) + start;
67
+ for (let k = start; k < vlen; k++) peq[b.charCodeAt(k)] |= 1 << k;
68
+ let score = m;
69
+ for (let i = 0; i < n; i++) {
70
+ const eq = peq[a.charCodeAt(i)];
71
+ const pb = phc[i / 32 | 0] >>> i & 1;
72
+ const mb = mhc[i / 32 | 0] >>> i & 1;
73
+ const xv = eq | mv;
74
+ const xh = ((eq | mb) & pv) + pv ^ pv | eq | mb;
75
+ let ph = mv | ~(xh | pv);
76
+ let mh = pv & xh;
77
+ score += ph >>> m - 1 & 1;
78
+ score -= mh >>> m - 1 & 1;
79
+ if (ph >>> 31 ^ pb) phc[i / 32 | 0] ^= 1 << i;
80
+ if (mh >>> 31 ^ mb) mhc[i / 32 | 0] ^= 1 << i;
81
+ ph = ph << 1 | pb;
82
+ mh = mh << 1 | mb;
83
+ pv = mh | ~(xv | ph);
84
+ mv = ph & xv;
85
+ }
86
+ for (let k = start; k < vlen; k++) peq[b.charCodeAt(k)] = 0;
87
+ return score;
88
+ };
89
+ function levenshteinDistance(a, b) {
90
+ if (a.length < b.length) {
91
+ const tmp = b;
92
+ b = a;
93
+ a = tmp;
94
+ }
95
+ if (b.length === 0) return a.length;
96
+ if (a.length <= 32) return myers_32(a, b);
97
+ return myers_x(a, b);
98
+ }
99
+ function getClosestString(str, arr, maxDistance = 2) {
100
+ let min_distance = Infinity;
101
+ let closestString;
102
+ for (let i = 0; i < arr.length; i++) {
103
+ const dist = levenshteinDistance(str, arr[i]);
104
+ if (dist < min_distance && dist <= maxDistance) {
105
+ min_distance = dist;
106
+ closestString = arr[i];
107
+ }
108
+ }
109
+ return closestString;
110
+ }
111
+ function getClosestStringsUpToDist(str, arr, maxDistance = 2) {
112
+ const distanceMap = /* @__PURE__ */ new Map();
113
+ for (const item of arr) {
114
+ const distance = levenshteinDistance(str, item);
115
+ if (distance <= maxDistance) distanceMap.set(item, distance);
116
+ }
117
+ return Array.from(distanceMap.entries()).sort((a, b) => a[1] - b[1]).map(([item]) => item);
118
+ }
119
+
120
+ //#endregion
121
+ export { getClosestString, getClosestStringsUpToDist, levenshteinDistance };
@@ -0,0 +1,4 @@
1
+ //#region src/main.d.ts
2
+ declare const _doNotUseThis: () => never;
3
+ //#endregion
4
+ export { _doNotUseThis };
package/dist/main.mjs ADDED
@@ -0,0 +1,7 @@
1
+ //#region src/main.ts
2
+ const _doNotUseThis = () => {
3
+ throw new Error("do not use this file");
4
+ };
5
+
6
+ //#endregion
7
+ export { _doNotUseThis };
@@ -0,0 +1,50 @@
1
+ //#region src/matchPath.d.ts
2
+ type _PathParam<Path extends string> = Path extends `${infer L}/${infer R}` ? _PathParam<L> | _PathParam<R> : Path extends `:${infer Param}` ? Param extends `${infer Optional}?` ? Optional : Param : never;
3
+ type PathParam<Path extends string> = Path extends '*' | '/*' ? '*' : Path extends `${infer Rest}/*` ? '*' | _PathParam<Rest> : _PathParam<Path>;
4
+ type ParamParseKey<Segment extends string> = [PathParam<Segment>] extends [never] ? string : PathParam<Segment>;
5
+ /** A PathPattern is used to match on some portion of a URL pathname. */
6
+ interface PathPattern<Path extends string = string> {
7
+ /**
8
+ * A string to match against a URL pathname. May contain `:id`-style segments
9
+ * to indicate placeholders for dynamic parameters. May also end with `/*` to
10
+ * indicate matching the rest of the URL pathname.
11
+ */
12
+ path: Path;
13
+ /**
14
+ * Should be `true` if the static portions of the `path` should be matched in
15
+ * the same case.
16
+ */
17
+ caseSensitive?: boolean;
18
+ /** Should be `true` if this pattern should match the entire URL pathname. */
19
+ end?: boolean;
20
+ }
21
+ /** The parameters that were parsed from the URL path. */
22
+ type Params<Key extends string = string> = { readonly [key in Key]: string | undefined };
23
+ type PathMatchGlob = {
24
+ matchPath: <K extends ParamParseKey<Path>, Path extends string>(pattern: PathPattern<Path> | Path) => PathMatch<K> | null;
25
+ path: string;
26
+ };
27
+ /** A PathMatch contains info about how a PathPattern matched on a URL pathname. */
28
+ interface PathMatch<ParamKey extends string = string> {
29
+ /** The names and values of dynamic parameters in the URL. */
30
+ params: Params<ParamKey>;
31
+ /** The portion of the URL pathname that was matched. */
32
+ pathname: string;
33
+ /** The portion of the URL pathname that was matched before child routes. */
34
+ pathnameBase: string;
35
+ /** The pattern that was used to match. */
36
+ pattern: PathPattern;
37
+ glob: null | PathMatchGlob;
38
+ }
39
+ /**
40
+ * Performs pattern matching on a URL pathname and returns information about the
41
+ * match.
42
+ *
43
+ * @see https://reactrouter.com/utils/match-path
44
+ */
45
+ declare function matchPath<ParamKey extends ParamParseKey<Path>, Path extends string>(pattern: PathPattern<Path> | Path, pathname: string): PathMatch<ParamKey> | null;
46
+ declare function matchPathWith(path: string | undefined | null): {
47
+ patterns: <R$1>(patterns: Record<string, (match: PathMatch) => R$1>) => R$1 | null;
48
+ };
49
+ //#endregion
50
+ export { ParamParseKey, Params, PathMatch, PathMatchGlob, PathParam, PathPattern, matchPath, matchPathWith };
@@ -0,0 +1,81 @@
1
+ import { fastCache } from "./cache.mjs";
2
+
3
+ //#region src/matchPath.ts
4
+ /**
5
+ * Performs pattern matching on a URL pathname and returns information about the
6
+ * match.
7
+ *
8
+ * @see https://reactrouter.com/utils/match-path
9
+ */
10
+ function matchPath(pattern, pathname) {
11
+ if (typeof pattern === "string") pattern = {
12
+ path: pattern,
13
+ caseSensitive: false,
14
+ end: true
15
+ };
16
+ const normalizedPathname = pathname === "" ? "" : pathname.replace(/^\/*/, "/");
17
+ const [matcher, compiledParams] = compilePath(pattern.path, pattern.caseSensitive, pattern.end);
18
+ const match = normalizedPathname.match(matcher);
19
+ if (!match) return null;
20
+ const matchedPathname = match[0];
21
+ let pathnameBase = matchedPathname.replace(/(.)\/+$/, "$1");
22
+ const captureGroups = match.slice(1);
23
+ const params = compiledParams.reduce((memo, { paramName, isOptional }, index) => {
24
+ if (paramName === "*") {
25
+ const splatValue = captureGroups[index] || "";
26
+ pathnameBase = matchedPathname.slice(0, matchedPathname.length - splatValue.length).replace(/(.)\/+$/, "$1");
27
+ }
28
+ const value = captureGroups[index];
29
+ if (isOptional && !value) memo[paramName] = void 0;
30
+ else memo[paramName] = (value || "").replace(/%2F/g, "/");
31
+ return memo;
32
+ }, {});
33
+ const glob = params["*"];
34
+ const globPath = glob && `/${glob}`;
35
+ return {
36
+ params,
37
+ pathname: matchedPathname,
38
+ pathnameBase,
39
+ pattern,
40
+ glob: globPath ? {
41
+ matchPath: (subPattern) => matchPath(subPattern, globPath),
42
+ path: globPath
43
+ } : null
44
+ };
45
+ }
46
+ function warning(condition, message) {
47
+ if (process.env.NODE_ENV === "development" && !condition) console.warn(message);
48
+ }
49
+ const cache = fastCache({ maxCacheSize: 5e3 });
50
+ function compilePath(path, caseSensitive = false, end = true) {
51
+ return cache.getOrInsert(`${path}-${caseSensitive ? "s" : "i"}${end ? "e" : ""}`, () => {
52
+ warning(path === "*" || !path.endsWith("*") || path.endsWith("/*"), `Route path "${path}" will be treated as if it were "${path.replace(/\*$/, "/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${path.replace(/\*$/, "/*")}".`);
53
+ const params = [];
54
+ let regexpSource = `^${path.replace(/\/*\*?$/, "").replace(/^\/*/, "/").replace(/[\\.*+^${}|()[\]]/g, "\\$&").replace(/\/:([\w-]+)(\?)?/g, (_, paramName, isOptional) => {
55
+ params.push({
56
+ paramName,
57
+ isOptional: isOptional != null
58
+ });
59
+ return isOptional ? "/?([^\\/]+)?" : "/([^\\/]+)";
60
+ })}`;
61
+ if (path.endsWith("*")) {
62
+ params.push({ paramName: "*" });
63
+ regexpSource += path === "*" || path === "/*" ? "(.*)$" : "(?:\\/(.+)|\\/*)$";
64
+ } else if (end) regexpSource += "\\/*$";
65
+ else if (path !== "" && path !== "/") regexpSource += "(?:(?=\\/|$))";
66
+ return [new RegExp(regexpSource, caseSensitive ? void 0 : "i"), params];
67
+ });
68
+ }
69
+ function matchPathWith(path) {
70
+ return { patterns: (patternsToMatch) => {
71
+ if (!path) return null;
72
+ for (const [key, pattern] of Object.entries(patternsToMatch)) {
73
+ const match = matchPath(key, path);
74
+ if (match) return pattern(match);
75
+ }
76
+ return null;
77
+ } };
78
+ }
79
+
80
+ //#endregion
81
+ export { matchPath, matchPathWith };
@@ -0,0 +1,81 @@
1
+ //#region 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) return clamp(num, v1, v2);
10
+ return clamp(num, v2, v1);
11
+ }
12
+ function clamp(num, min, max) {
13
+ return num > max ? max : num < min ? min : num;
14
+ }
15
+ function fixFloatingPointNumber(value) {
16
+ return Number(value.toPrecision(15));
17
+ }
18
+ /**
19
+ * Rounds a number to the nearest multiple of the specified step value.
20
+ *
21
+ * @param value - The number to round
22
+ * @param step - The step size to round to
23
+ * @param offset - Optional offset to shift the rounding grid
24
+ * @returns The rounded value
25
+ *
26
+ * @example
27
+ * roundToStep(23, 5) // 25 (nearest multiple of 5)
28
+ */
29
+ function roundToStep(value, step, offset = 0) {
30
+ const inv = 1 / step;
31
+ const snapped = Math.round((value - offset) * inv) / inv + offset;
32
+ return Number(snapped.toFixed(12));
33
+ }
34
+ /**
35
+ * Floors a number down to the nearest multiple of the specified step value.
36
+ *
37
+ * @param value - The number to floor
38
+ * @param step - The step size to floor to
39
+ * @param offset - Optional offset to shift the flooring grid
40
+ * @returns The floored value
41
+ *
42
+ * @example
43
+ * floorToStep(23, 5) // 20 (largest multiple of 5 ≤ 23)
44
+ */
45
+ function floorToStep(value, step, offset = 0) {
46
+ const inv = 1 / step;
47
+ const snapped = Math.floor((value - offset) * inv) / inv + offset;
48
+ return Number(snapped.toFixed(12));
49
+ }
50
+ /**
51
+ * Ceils a number up to the nearest multiple of the specified step value.
52
+ *
53
+ * @param value - The number to ceil
54
+ * @param step - The step size to ceil to
55
+ * @param offset - Optional offset to shift the ceiling grid
56
+ * @returns The ceiled value
57
+ *
58
+ * @example
59
+ * ceilToStep(23, 5) // 25 (smallest multiple of 5 ≥ 23)
60
+ */
61
+ function ceilToStep(value, step, offset = 0) {
62
+ const inv = 1 / step;
63
+ const snapped = Math.ceil((value - offset) * inv) / inv + offset;
64
+ return Number(snapped.toFixed(12));
65
+ }
66
+ /**
67
+ * Rounds a number to the specified number of decimal places.
68
+ *
69
+ * @param num - The number to round
70
+ * @param precision - Number of decimal places
71
+ * @returns The rounded number
72
+ *
73
+ * @example
74
+ * round(3.14159, 2) // 3.14
75
+ */
76
+ function round(num, precision) {
77
+ return Math.round(num * 10 ** precision) / 10 ** precision;
78
+ }
79
+
80
+ //#endregion
81
+ export { clampRange as a, round as c, clampMin as i, roundToStep as l, clamp as n, fixFloatingPointNumber as o, clampMax as r, floorToStep as s, ceilToStep as t };
@@ -1,3 +1,4 @@
1
+ //#region src/mathUtils.d.ts
1
2
  declare function clampMax(value: number, max: number): number;
2
3
  declare function clampMin(value: number, min: number): number;
3
4
  declare function clampRange(num: number, v1: number, v2: number): number;
@@ -50,5 +51,5 @@ declare function ceilToStep(value: number, step: number, offset?: number): numbe
50
51
  * round(3.14159, 2) // 3.14
51
52
  */
52
53
  declare function round(num: number, precision: number): number;
53
-
54
- export { ceilToStep, clamp, clampMax, clampMin, clampRange, fixFloatingPointNumber, floorToStep, round, roundToStep };
54
+ //#endregion
55
+ export { ceilToStep, clamp, clampMax, clampMin, clampRange, fixFloatingPointNumber, floorToStep, round, roundToStep };
@@ -0,0 +1,3 @@
1
+ import { a as clampRange, c as round, i as clampMin, l as roundToStep, n as clamp, o as fixFloatingPointNumber, r as clampMax, s as floorToStep, t as ceilToStep } from "./mathUtils-BDP1lM_z.mjs";
2
+
3
+ export { ceilToStep, clamp, clampMax, clampMin, clampRange, fixFloatingPointNumber, floorToStep, round, roundToStep };
@@ -1,3 +1,4 @@
1
+ //#region src/mutationUtils.d.ts
1
2
  /**
2
3
  * Updates an object with a new set of values. undefined values are ignored in
3
4
  * the updates object and deep equal values are not updated.
@@ -7,9 +8,9 @@
7
8
  */
8
9
  declare function updateObject<T extends Record<string, unknown>>(object: T | undefined | null, updates: Partial<T>): void;
9
10
  declare function getArrayMethodsFromProduce<T extends Record<string, unknown>>(produceFn: (cb: (newVal: T[]) => void | T[]) => T[] | void, getItemId: (item: T) => string): {
10
- add: (item: T) => void | T[];
11
- remove: (id: string) => void | T[];
12
- update: (id: string, updateItem: ((draftItem: T) => T | void) | Partial<T>) => void | T[];
11
+ add: (item: T) => void | T[];
12
+ remove: (id: string) => void | T[];
13
+ update: (id: string, updateItem: ((draftItem: T) => T | void) | Partial<T>) => void | T[];
13
14
  };
14
-
15
- export { getArrayMethodsFromProduce, updateObject };
15
+ //#endregion
16
+ export { getArrayMethodsFromProduce, updateObject };
@@ -0,0 +1,44 @@
1
+ import { n as isFunction } from "./typeGuards-B1mzA-Rz.mjs";
2
+ import { keepPrevIfUnchanged } from "./keepPrevIfUnchanged.mjs";
3
+
4
+ //#region src/mutationUtils.ts
5
+ /**
6
+ * Updates an object with a new set of values. undefined values are ignored in
7
+ * the updates object and deep equal values are not updated.
8
+ *
9
+ * @param object - The object to update.
10
+ * @param updates - The new values to update the object with.
11
+ */
12
+ function updateObject(object, updates) {
13
+ if (!object || typeof object !== "object") return;
14
+ for (const key of Object.keys(updates)) {
15
+ const value = updates[key];
16
+ if (value !== void 0) object[key] = keepPrevIfUnchanged({
17
+ prev: object[key],
18
+ newValue: value
19
+ });
20
+ }
21
+ }
22
+ function getArrayMethodsFromProduce(produceFn, getItemId) {
23
+ return {
24
+ add: (item) => produceFn((draft) => {
25
+ draft.push(item);
26
+ }),
27
+ remove: (id) => produceFn((draft) => {
28
+ const index = draft.findIndex((item) => getItemId(item) === id);
29
+ if (index !== -1) draft.splice(index, 1);
30
+ }),
31
+ update: (id, updateItem) => produceFn((draft) => {
32
+ const index = draft.findIndex((item$1) => getItemId(item$1) === id);
33
+ const item = draft[index];
34
+ if (!item) throw new Error(`Item with id ${id} not found`);
35
+ if (isFunction(updateItem)) {
36
+ const updatedItem = updateItem(item);
37
+ if (updatedItem) draft[index] = updatedItem;
38
+ } else updateObject(item, updateItem);
39
+ })
40
+ };
41
+ }
42
+
43
+ //#endregion
44
+ export { getArrayMethodsFromProduce, updateObject };
@@ -1,7 +1,9 @@
1
- import { Result } from 't-result';
2
- import { SortByValueFn, SortByProps } from './arrayUtils.js';
3
- import { MakeUndefinedKeysOptional } from './typeUtils.js';
4
- import { AddPrefixToObjKeys, AddSuffixToObjKeys } from './typingUtils.js';
1
+ import { SortByProps, SortByValueFn } from "./arrayUtils.mjs";
2
+ import { MakeUndefinedKeysOptional } from "./typeUtils.mjs";
3
+ import { AddPrefixToObjKeys, AddSuffixToObjKeys } from "./typingUtils.mjs";
4
+ import { Result } from "t-result";
5
+
6
+ //#region src/objUtils.d.ts
5
7
 
6
8
  /**
7
9
  * @deprecated Use typedObjectEntries from @ls-stack/utils/typingFnUtils instead
@@ -24,5 +26,5 @@ declare function getValueFromPath(obj: Record<string, unknown>, path: string): R
24
26
  declare function getObjPropertyOrInsert<T extends Record<string, any>, K extends keyof T>(obj: T, prop: K, insertValue: () => Exclude<T[K], undefined>): Exclude<T[K], undefined>;
25
27
  declare function addPrefixToObjKeys<T extends Record<string, unknown>, P extends string>(obj: T, prefix: P): AddPrefixToObjKeys<T, P>;
26
28
  declare function addSuffixToObjKeys<T extends Record<string, unknown>, S extends string>(obj: T, suffix: S): AddSuffixToObjKeys<T, S>;
27
-
28
- export { addPrefixToObjKeys, addSuffixToObjKeys, filterObjectKeys, getObjPropertyOrInsert, getValueFromPath, looseGetObjectProperty, mapArrToObj, mapArrayToObject, mapObjToObj, mapObjectToObject, objectTypedEntries, omit, pick, rejectObjUndefinedValues, sortObjectKeys };
29
+ //#endregion
30
+ export { addPrefixToObjKeys, addSuffixToObjKeys, filterObjectKeys, getObjPropertyOrInsert, getValueFromPath, looseGetObjectProperty, mapArrToObj, mapArrayToObject, mapObjToObj, mapObjectToObject, objectTypedEntries, omit, pick, rejectObjUndefinedValues, sortObjectKeys };
@@ -0,0 +1,115 @@
1
+ import { sortBy } from "./arrayUtils.mjs";
2
+ import { d as typedObjectEntries } from "./typingFnUtils-Bb8drgKF.mjs";
3
+ import { Result } from "t-result";
4
+
5
+ //#region src/objUtils.ts
6
+ /**
7
+ * @deprecated Use typedObjectEntries from @ls-stack/utils/typingFnUtils instead
8
+ * @param obj
9
+ */
10
+ function objectTypedEntries(obj) {
11
+ return Object.entries(obj);
12
+ }
13
+ function pick(obj, keys) {
14
+ const result = {};
15
+ for (const key of keys) result[key] = obj[key];
16
+ return result;
17
+ }
18
+ function mapArrToObj(array, mapper) {
19
+ return Object.fromEntries(array.map(mapper));
20
+ }
21
+ /** @deprecated Use mapArrToObj instead */
22
+ const mapArrayToObject = mapArrToObj;
23
+ function mapObjToObj(obj, mapper) {
24
+ return Object.fromEntries(objectTypedEntries(obj).map(([key, value]) => mapper(key, value)));
25
+ }
26
+ /** @deprecated Use mapObjToObj instead */
27
+ const mapObjectToObject = mapObjToObj;
28
+ function omit(obj, keys) {
29
+ const result = {};
30
+ for (const key of Object.keys(obj)) if (!keys.includes(key)) result[key] = obj[key];
31
+ return result;
32
+ }
33
+ function looseGetObjectProperty(obj, key) {
34
+ return obj[key];
35
+ }
36
+ function rejectObjUndefinedValues(obj) {
37
+ const result = {};
38
+ for (const key in obj) if (obj[key] !== void 0) result[key] = obj[key];
39
+ return result;
40
+ }
41
+ function filterObjectKeys(obj, predicate) {
42
+ return Object.fromEntries(Object.entries(obj).filter(([key, value]) => predicate(key, value)));
43
+ }
44
+ function sortObjectKeys(obj, sortByFn, options) {
45
+ return Object.fromEntries(sortBy(typedObjectEntries(obj), sortByFn, options));
46
+ }
47
+ function getValueFromPath(obj, path) {
48
+ if (!path.trim()) return Result.err(/* @__PURE__ */ new Error("Path cannot be empty"));
49
+ const segments = parsePath(path);
50
+ let current = obj;
51
+ for (let i = 0; i < segments.length; i++) {
52
+ const segment = segments[i];
53
+ if (!segment) return Result.err(/* @__PURE__ */ new Error("Invalid empty segment in path"));
54
+ if (current == null) return Result.err(/* @__PURE__ */ new Error(`Cannot access property '${segment}' on null or undefined`));
55
+ if (isNumericString(segment)) {
56
+ if (!Array.isArray(current)) return Result.err(/* @__PURE__ */ new Error(`Cannot access array index '${segment}' on non-array value`));
57
+ const index = parseInt(segment, 10);
58
+ if (index < 0 || index >= current.length) return Result.err(/* @__PURE__ */ new Error(`Array index '${index}' out of bounds`));
59
+ current = current[index];
60
+ } else {
61
+ if (typeof current !== "object" || current === null) return Result.err(/* @__PURE__ */ new Error(`Cannot access property '${segment}' on non-object value`));
62
+ if (!(segment in current)) return Result.err(/* @__PURE__ */ new Error(`Property '${segment}' not found`));
63
+ current = current[segment];
64
+ }
65
+ }
66
+ return Result.ok(current);
67
+ }
68
+ function parsePath(path) {
69
+ const segments = [];
70
+ let current = "";
71
+ let inBrackets = false;
72
+ for (let i = 0; i < path.length; i++) {
73
+ const char = path[i];
74
+ if (char === "[") {
75
+ if (current) {
76
+ segments.push(current);
77
+ current = "";
78
+ }
79
+ inBrackets = true;
80
+ } else if (char === "]") {
81
+ if (inBrackets && current) {
82
+ segments.push(current);
83
+ current = "";
84
+ }
85
+ inBrackets = false;
86
+ } else if (char === "." && !inBrackets) {
87
+ if (current) {
88
+ segments.push(current);
89
+ current = "";
90
+ }
91
+ } else current += char;
92
+ }
93
+ if (current) segments.push(current);
94
+ return segments;
95
+ }
96
+ function isNumericString(str) {
97
+ return /^\d+$/.test(str);
98
+ }
99
+ function getObjPropertyOrInsert(obj, prop, insertValue) {
100
+ if (obj[prop] === void 0) obj[prop] = insertValue();
101
+ return obj[prop];
102
+ }
103
+ function addPrefixToObjKeys(obj, prefix) {
104
+ const newObj = {};
105
+ for (const [key, value] of Object.entries(obj)) newObj[`${prefix}${key}`] = value;
106
+ return newObj;
107
+ }
108
+ function addSuffixToObjKeys(obj, suffix) {
109
+ const newObj = {};
110
+ for (const [key, value] of Object.entries(obj)) newObj[`${key}${suffix}`] = value;
111
+ return newObj;
112
+ }
113
+
114
+ //#endregion
115
+ export { addPrefixToObjKeys, addSuffixToObjKeys, filterObjectKeys, getObjPropertyOrInsert, getValueFromPath, looseGetObjectProperty, mapArrToObj, mapArrayToObject, mapObjToObj, mapObjectToObject, objectTypedEntries, omit, pick, rejectObjUndefinedValues, sortObjectKeys };
@@ -0,0 +1,83 @@
1
+ import { Result } from "t-result";
2
+
3
+ //#region src/parallelAsyncCalls.d.ts
4
+ type ValidMetadata = string | number | boolean | Record<string, unknown>;
5
+ type TupleRunAllSuccess<T> = T extends (() => Promise<Result<infer V>>) ? Succeeded<V, undefined> : T extends {
6
+ metadata: infer M;
7
+ fn: () => Promise<Result<infer V>>;
8
+ } ? Succeeded<V, M> : never;
9
+ type TupleRunAllFailed<T> = T extends (() => Promise<Result<any>>) ? {
10
+ metadata: undefined;
11
+ error: Error;
12
+ } : T extends {
13
+ metadata: infer M extends ValidMetadata;
14
+ } ? {
15
+ metadata: M;
16
+ error: Error;
17
+ } : never;
18
+ type TupleRunAllSettled<T> = T extends (() => Promise<Result<infer V>>) ? Succeeded<V, undefined> | Failed<undefined> : T extends {
19
+ metadata: infer M;
20
+ fn: () => Promise<Result<infer V>>;
21
+ } ? Succeeded<V, M> | Failed<M> : never;
22
+ type RunProps = {
23
+ delayStart?: (index: number) => number;
24
+ };
25
+ type Failed<M$1> = {
26
+ metadata: M$1;
27
+ error: Error;
28
+ };
29
+ type Succeeded<R, M$1> = {
30
+ value: R;
31
+ metadata: M$1;
32
+ };
33
+ declare class ParallelAsyncResultCalls<M$1 extends ValidMetadata | undefined = undefined, R = unknown> {
34
+ private pendingCalls;
35
+ alreadyRun: boolean;
36
+ constructor();
37
+ add(call: M$1 extends undefined ? () => Promise<Result<R>> : {
38
+ metadata: M$1;
39
+ fn: () => Promise<Result<R>>;
40
+ }): this;
41
+ /**
42
+ * Adds calls return tuples with inferred results
43
+ *
44
+ * @param calls
45
+ */
46
+ addTuple<T extends (M$1 extends undefined ? () => Promise<Result<R>> : {
47
+ metadata: M$1;
48
+ fn: () => Promise<Result<R>>;
49
+ })[]>(...calls: T): {
50
+ runAllSettled: (props?: RunProps) => Promise<{
51
+ results: { [I in keyof T]: TupleRunAllSettled<T[I]> };
52
+ allFailed: boolean;
53
+ }>;
54
+ runAll: (props?: RunProps) => Promise<Result<{ [I in keyof T]: TupleRunAllSuccess<T[I]> }, TupleRunAllFailed<T[number]>>>;
55
+ };
56
+ runAllSettled({
57
+ delayStart
58
+ }?: RunProps): Promise<{
59
+ failed: Failed<M$1>[];
60
+ succeeded: Succeeded<R, M$1>[];
61
+ allFailed: boolean;
62
+ results: (Failed<M$1> | Succeeded<R, M$1>)[];
63
+ }>;
64
+ runAll({
65
+ delayStart
66
+ }?: {
67
+ delayStart?: (index: number) => number;
68
+ }): Promise<Result<Succeeded<R, M$1>[], {
69
+ metadata: M$1;
70
+ error: Error;
71
+ }>>;
72
+ }
73
+ /**
74
+ * Executes multiple asynchronous calls in parallel and collects the results in
75
+ * a easier to use format.
76
+ *
77
+ * @deprecated Use concurrentAsyncCalls instead.
78
+ * @template R - The type of the result value.
79
+ * @template M - The type of the call metadata.
80
+ */
81
+ declare function parallelAsyncCalls<M$1 extends ValidMetadata | undefined = undefined, R = unknown>(): ParallelAsyncResultCalls<M$1, R>;
82
+ //#endregion
83
+ export { parallelAsyncCalls };