@ls-stack/utils 3.65.0 → 3.66.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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 +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 -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
@@ -1,10 +0,0 @@
1
- declare function enumerate<T>(iter: Iterable<T>, start?: number): Generator<[number, T]>;
2
- declare function withIsLast<T>(array: T[]): Generator<[isLast: boolean, item: T, index: number]>;
3
- declare function withPrevious<T>(iter: Iterable<T>): Generator<{
4
- prev: T | undefined;
5
- current: T;
6
- }>;
7
- declare function range(start: number, end: number, step?: number): Generator<number>;
8
- declare function rangeArray(start: number, end: number, step?: number): number[];
9
-
10
- export { enumerate, range, rangeArray, withIsLast, withPrevious };
@@ -1,44 +0,0 @@
1
- // src/iteratorUtils.ts
2
- function* enumerate(iter, start = 0) {
3
- let index = start;
4
- for (const item of iter) {
5
- yield [index, item];
6
- index++;
7
- }
8
- }
9
- function* withIsLast(array) {
10
- let index = 0;
11
- for (const item of array) {
12
- const isLast = index === array.length - 1;
13
- yield [isLast, item, index];
14
- index++;
15
- }
16
- }
17
- function* withPrevious(iter) {
18
- let prev = void 0;
19
- for (const current of iter) {
20
- yield { prev, current };
21
- prev = current;
22
- }
23
- }
24
- function* range(start, end, step = 1) {
25
- if (start > end) {
26
- for (let i = start; i >= end; i -= step) {
27
- yield i;
28
- }
29
- } else {
30
- for (let i = start; i <= end; i += step) {
31
- yield i;
32
- }
33
- }
34
- }
35
- function rangeArray(start, end, step = 1) {
36
- return [...range(start, end, step)];
37
- }
38
- export {
39
- enumerate,
40
- range,
41
- rangeArray,
42
- withIsLast,
43
- withPrevious
44
- };
@@ -1,102 +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/keepPrevIfUnchanged.ts
21
- var keepPrevIfUnchanged_exports = {};
22
- __export(keepPrevIfUnchanged_exports, {
23
- keepPrevIfUnchanged: () => keepPrevIfUnchanged
24
- });
25
- module.exports = __toCommonJS(keepPrevIfUnchanged_exports);
26
-
27
- // src/deepEqual.ts
28
- var has = Object.prototype.hasOwnProperty;
29
- function find(iter, tar, maxDepth) {
30
- for (const key of iter.keys()) {
31
- if (deepEqual(key, tar, maxDepth)) return key;
32
- }
33
- }
34
- function deepEqual(foo, bar, maxDepth = 20) {
35
- let ctor, len, tmp;
36
- if (foo === bar) return true;
37
- if (maxDepth && maxDepth <= 0) return false;
38
- if (foo && bar && (ctor = foo.constructor) === bar.constructor) {
39
- if (ctor === Date)
40
- return deepEqual(foo.getTime(), bar.getTime(), maxDepth - 1);
41
- if (ctor === RegExp) return foo.toString() === bar.toString();
42
- if (ctor === Array) {
43
- if ((len = foo.length) === bar.length) {
44
- while (len-- && deepEqual(foo[len], bar[len], maxDepth - 1)) ;
45
- }
46
- return len === -1;
47
- }
48
- if (ctor === Set) {
49
- if (foo.size !== bar.size) {
50
- return false;
51
- }
52
- for (len of foo) {
53
- tmp = len;
54
- if (tmp && typeof tmp === "object") {
55
- tmp = find(bar, tmp, maxDepth - 1);
56
- if (!tmp) return false;
57
- }
58
- if (!bar.has(tmp)) return false;
59
- }
60
- return true;
61
- }
62
- if (ctor === Map) {
63
- if (foo.size !== bar.size) {
64
- return false;
65
- }
66
- for (len of foo) {
67
- tmp = len[0];
68
- if (tmp && typeof tmp === "object") {
69
- tmp = find(bar, tmp, maxDepth - 1);
70
- if (!tmp) return false;
71
- }
72
- if (!deepEqual(len[1], bar.get(tmp), maxDepth - 1)) {
73
- return false;
74
- }
75
- }
76
- return true;
77
- }
78
- if (!ctor || typeof foo === "object") {
79
- len = 0;
80
- for (ctor in foo) {
81
- if (has.call(foo, ctor) && ++len && !has.call(bar, ctor)) return false;
82
- if (!(ctor in bar) || !deepEqual(foo[ctor], bar[ctor], maxDepth - 1))
83
- return false;
84
- }
85
- return Object.keys(bar).length === len;
86
- }
87
- }
88
- return foo !== foo && bar !== bar;
89
- }
90
-
91
- // src/keepPrevIfUnchanged.ts
92
- function keepPrevIfUnchanged({
93
- prev,
94
- newValue,
95
- equalityFn = deepEqual
96
- }) {
97
- return equalityFn(prev, newValue) ? prev : newValue;
98
- }
99
- // Annotate the CommonJS export names for ESM import in node:
100
- 0 && (module.exports = {
101
- keepPrevIfUnchanged
102
- });
@@ -1,7 +0,0 @@
1
- declare function keepPrevIfUnchanged<T>({ prev, newValue, equalityFn, }: {
2
- prev: T;
3
- newValue: T;
4
- equalityFn?: (foo: any, bar: any) => boolean;
5
- }): T;
6
-
7
- export { keepPrevIfUnchanged };
@@ -1,7 +0,0 @@
1
- declare function keepPrevIfUnchanged<T>({ prev, newValue, equalityFn, }: {
2
- prev: T;
3
- newValue: T;
4
- equalityFn?: (foo: any, bar: any) => boolean;
5
- }): T;
6
-
7
- export { keepPrevIfUnchanged };
@@ -1,7 +0,0 @@
1
- import {
2
- keepPrevIfUnchanged
3
- } from "./chunk-QQS7I7ZL.js";
4
- import "./chunk-JQFUKJU5.js";
5
- export {
6
- keepPrevIfUnchanged
7
- };
package/dist/keyedMap.cjs DELETED
@@ -1,224 +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/keyedMap.ts
21
- var keyedMap_exports = {};
22
- __export(keyedMap_exports, {
23
- CompositeKeyMap: () => CompositeKeyMap,
24
- KeyedMap: () => KeyedMap
25
- });
26
- module.exports = __toCommonJS(keyedMap_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/keyedMap.ts
86
- var KeyedMap = class {
87
- map;
88
- getKey;
89
- /**
90
- * @param getKey - Function to compute an internal key from the external key
91
- * @param entries - Optional initial entries to add to the map
92
- */
93
- constructor(getKey, entries) {
94
- this.getKey = getKey;
95
- this.map = /* @__PURE__ */ new Map();
96
- if (entries) {
97
- for (const [key, value] of entries) {
98
- this.set(key, value);
99
- }
100
- }
101
- }
102
- /** The number of entries in the map */
103
- get size() {
104
- return this.map.size;
105
- }
106
- /** Sets a value for the given key. If the key exists, replaces both key and value. */
107
- set(key, value) {
108
- const internalKey = this.getKey(key);
109
- this.map.set(internalKey, { key, value });
110
- return this;
111
- }
112
- /** Sets multiple entries at once. */
113
- setMultiple(entries) {
114
- for (const [key, value] of entries) {
115
- this.set(key, value);
116
- }
117
- return this;
118
- }
119
- /** Gets the value for the given key, or undefined if not found. */
120
- get(key) {
121
- const internalKey = this.getKey(key);
122
- return this.map.get(internalKey)?.value;
123
- }
124
- /** Checks if the map contains the given key. */
125
- has(key) {
126
- const internalKey = this.getKey(key);
127
- return this.map.has(internalKey);
128
- }
129
- /** Removes the entry for the given key. Returns true if the entry was removed. */
130
- delete(key) {
131
- const internalKey = this.getKey(key);
132
- return this.map.delete(internalKey);
133
- }
134
- /** Removes multiple entries. Returns the number of entries removed. */
135
- deleteMultiple(keys) {
136
- let count = 0;
137
- for (const key of keys) {
138
- if (this.delete(key)) {
139
- count++;
140
- }
141
- }
142
- return count;
143
- }
144
- /** Removes all entries from the map. */
145
- clear() {
146
- this.map.clear();
147
- }
148
- /** Executes a callback for each entry in the map. */
149
- forEach(callback, thisArg) {
150
- for (const { key, value } of this.map.values()) {
151
- callback.call(thisArg, value, key, this);
152
- }
153
- }
154
- /** Finds the first entry matching the predicate. */
155
- find(predicate) {
156
- for (const { key, value } of this.map.values()) {
157
- if (predicate(value, key)) {
158
- return { key, value };
159
- }
160
- }
161
- return void 0;
162
- }
163
- /** Gets the value for the given key, or throws if not found. */
164
- getOrThrow(key) {
165
- const value = this.get(key);
166
- if (value === void 0 && !this.has(key)) {
167
- throw new Error(`Key not found in KeyedMap`);
168
- }
169
- return value;
170
- }
171
- /** Gets the value for the given key, or inserts and returns the fallback value. */
172
- getOrInsert(key, fallback) {
173
- if (!this.has(key)) {
174
- this.set(key, fallback());
175
- }
176
- return this.getOrThrow(key);
177
- }
178
- /** Returns values that match the predicate. */
179
- toFilteredValues(predicate) {
180
- const values = [];
181
- for (const { key, value } of this.map.values()) {
182
- if (predicate(value, key)) {
183
- values.push(value);
184
- }
185
- }
186
- return values;
187
- }
188
- /** Returns all values as an array. */
189
- toValues() {
190
- return [...this.values()];
191
- }
192
- /** Returns all keys as an array. */
193
- toKeys() {
194
- return [...this.keys()];
195
- }
196
- *keys() {
197
- for (const { key } of this.map.values()) {
198
- yield key;
199
- }
200
- }
201
- *values() {
202
- for (const { value } of this.map.values()) {
203
- yield value;
204
- }
205
- }
206
- *entries() {
207
- for (const { key, value } of this.map.values()) {
208
- yield [key, value];
209
- }
210
- }
211
- [Symbol.iterator]() {
212
- return this.entries();
213
- }
214
- };
215
- var CompositeKeyMap = class extends KeyedMap {
216
- constructor(entries) {
217
- super(getCompositeKey, entries);
218
- }
219
- };
220
- // Annotate the CommonJS export names for ESM import in node:
221
- 0 && (module.exports = {
222
- CompositeKeyMap,
223
- KeyedMap
224
- });
@@ -1,75 +0,0 @@
1
- /**
2
- * A Map implementation that uses a custom key function to determine key equality.
3
- * Keys with the same computed internal key are considered equal.
4
- *
5
- * @example
6
- * const map = new KeyedMap<{ x: number; y: number }, string, string>(
7
- * (key) => `${key.x},${key.y}`,
8
- * );
9
- * map.set({ x: 1, y: 2 }, 'point A');
10
- * map.get({ x: 1, y: 2 }); // 'point A' (different object, same computed key)
11
- *
12
- * @template K - The type of the external key
13
- * @template V - The type of the value
14
- * @template InternalKey - The type of the internal key used for comparison
15
- */
16
- declare class KeyedMap<K, V, InternalKey = string> {
17
- private map;
18
- private getKey;
19
- /**
20
- * @param getKey - Function to compute an internal key from the external key
21
- * @param entries - Optional initial entries to add to the map
22
- */
23
- constructor(getKey: (key: K) => InternalKey, entries?: Iterable<[K, V]>);
24
- /** The number of entries in the map */
25
- get size(): number;
26
- /** Sets a value for the given key. If the key exists, replaces both key and value. */
27
- set(key: K, value: V): this;
28
- /** Sets multiple entries at once. */
29
- setMultiple(entries: Iterable<[K, V]>): this;
30
- /** Gets the value for the given key, or undefined if not found. */
31
- get(key: K): V | undefined;
32
- /** Checks if the map contains the given key. */
33
- has(key: K): boolean;
34
- /** Removes the entry for the given key. Returns true if the entry was removed. */
35
- delete(key: K): boolean;
36
- /** Removes multiple entries. Returns the number of entries removed. */
37
- deleteMultiple(keys: Iterable<K>): number;
38
- /** Removes all entries from the map. */
39
- clear(): void;
40
- /** Executes a callback for each entry in the map. */
41
- forEach(callback: (value: V, key: K, map: KeyedMap<K, V, InternalKey>) => void, thisArg?: unknown): void;
42
- /** Finds the first entry matching the predicate. */
43
- find(predicate: (value: V, key: K) => boolean): {
44
- key: K;
45
- value: V;
46
- } | undefined;
47
- /** Gets the value for the given key, or throws if not found. */
48
- getOrThrow(key: K): V;
49
- /** Gets the value for the given key, or inserts and returns the fallback value. */
50
- getOrInsert(key: K, fallback: () => V): V;
51
- /** Returns values that match the predicate. */
52
- toFilteredValues(predicate: (value: V, key: K) => boolean): V[];
53
- /** Returns all values as an array. */
54
- toValues(): V[];
55
- /** Returns all keys as an array. */
56
- toKeys(): K[];
57
- keys(): IterableIterator<K>;
58
- values(): IterableIterator<V>;
59
- entries(): IterableIterator<[K, V]>;
60
- [Symbol.iterator](): IterableIterator<[K, V]>;
61
- }
62
- /**
63
- * A Map that compares keys by value instead of reference.
64
- * Uses `getCompositeKey` to generate a stable string key for any value.
65
- *
66
- * @example
67
- * const map = new CompositeKeyMap<{ x: number; y: number }, string>();
68
- * map.set({ x: 1, y: 2 }, 'point A');
69
- * map.get({ x: 1, y: 2 }); // 'point A' (different object, same value)
70
- */
71
- declare class CompositeKeyMap<K, V> extends KeyedMap<K, V, string> {
72
- constructor(entries?: Iterable<[K, V]>);
73
- }
74
-
75
- export { CompositeKeyMap, KeyedMap };
@@ -1,75 +0,0 @@
1
- /**
2
- * A Map implementation that uses a custom key function to determine key equality.
3
- * Keys with the same computed internal key are considered equal.
4
- *
5
- * @example
6
- * const map = new KeyedMap<{ x: number; y: number }, string, string>(
7
- * (key) => `${key.x},${key.y}`,
8
- * );
9
- * map.set({ x: 1, y: 2 }, 'point A');
10
- * map.get({ x: 1, y: 2 }); // 'point A' (different object, same computed key)
11
- *
12
- * @template K - The type of the external key
13
- * @template V - The type of the value
14
- * @template InternalKey - The type of the internal key used for comparison
15
- */
16
- declare class KeyedMap<K, V, InternalKey = string> {
17
- private map;
18
- private getKey;
19
- /**
20
- * @param getKey - Function to compute an internal key from the external key
21
- * @param entries - Optional initial entries to add to the map
22
- */
23
- constructor(getKey: (key: K) => InternalKey, entries?: Iterable<[K, V]>);
24
- /** The number of entries in the map */
25
- get size(): number;
26
- /** Sets a value for the given key. If the key exists, replaces both key and value. */
27
- set(key: K, value: V): this;
28
- /** Sets multiple entries at once. */
29
- setMultiple(entries: Iterable<[K, V]>): this;
30
- /** Gets the value for the given key, or undefined if not found. */
31
- get(key: K): V | undefined;
32
- /** Checks if the map contains the given key. */
33
- has(key: K): boolean;
34
- /** Removes the entry for the given key. Returns true if the entry was removed. */
35
- delete(key: K): boolean;
36
- /** Removes multiple entries. Returns the number of entries removed. */
37
- deleteMultiple(keys: Iterable<K>): number;
38
- /** Removes all entries from the map. */
39
- clear(): void;
40
- /** Executes a callback for each entry in the map. */
41
- forEach(callback: (value: V, key: K, map: KeyedMap<K, V, InternalKey>) => void, thisArg?: unknown): void;
42
- /** Finds the first entry matching the predicate. */
43
- find(predicate: (value: V, key: K) => boolean): {
44
- key: K;
45
- value: V;
46
- } | undefined;
47
- /** Gets the value for the given key, or throws if not found. */
48
- getOrThrow(key: K): V;
49
- /** Gets the value for the given key, or inserts and returns the fallback value. */
50
- getOrInsert(key: K, fallback: () => V): V;
51
- /** Returns values that match the predicate. */
52
- toFilteredValues(predicate: (value: V, key: K) => boolean): V[];
53
- /** Returns all values as an array. */
54
- toValues(): V[];
55
- /** Returns all keys as an array. */
56
- toKeys(): K[];
57
- keys(): IterableIterator<K>;
58
- values(): IterableIterator<V>;
59
- entries(): IterableIterator<[K, V]>;
60
- [Symbol.iterator](): IterableIterator<[K, V]>;
61
- }
62
- /**
63
- * A Map that compares keys by value instead of reference.
64
- * Uses `getCompositeKey` to generate a stable string key for any value.
65
- *
66
- * @example
67
- * const map = new CompositeKeyMap<{ x: number; y: number }, string>();
68
- * map.set({ x: 1, y: 2 }, 'point A');
69
- * map.get({ x: 1, y: 2 }); // 'point A' (different object, same value)
70
- */
71
- declare class CompositeKeyMap<K, V> extends KeyedMap<K, V, string> {
72
- constructor(entries?: Iterable<[K, V]>);
73
- }
74
-
75
- export { CompositeKeyMap, KeyedMap };
package/dist/keyedMap.js DELETED
@@ -1,145 +0,0 @@
1
- import {
2
- getCompositeKey
3
- } from "./chunk-6FIBVC2P.js";
4
- import "./chunk-C2SVCIWE.js";
5
- import "./chunk-JF2MDHOJ.js";
6
-
7
- // src/keyedMap.ts
8
- var KeyedMap = class {
9
- map;
10
- getKey;
11
- /**
12
- * @param getKey - Function to compute an internal key from the external key
13
- * @param entries - Optional initial entries to add to the map
14
- */
15
- constructor(getKey, entries) {
16
- this.getKey = getKey;
17
- this.map = /* @__PURE__ */ new Map();
18
- if (entries) {
19
- for (const [key, value] of entries) {
20
- this.set(key, value);
21
- }
22
- }
23
- }
24
- /** The number of entries in the map */
25
- get size() {
26
- return this.map.size;
27
- }
28
- /** Sets a value for the given key. If the key exists, replaces both key and value. */
29
- set(key, value) {
30
- const internalKey = this.getKey(key);
31
- this.map.set(internalKey, { key, value });
32
- return this;
33
- }
34
- /** Sets multiple entries at once. */
35
- setMultiple(entries) {
36
- for (const [key, value] of entries) {
37
- this.set(key, value);
38
- }
39
- return this;
40
- }
41
- /** Gets the value for the given key, or undefined if not found. */
42
- get(key) {
43
- const internalKey = this.getKey(key);
44
- return this.map.get(internalKey)?.value;
45
- }
46
- /** Checks if the map contains the given key. */
47
- has(key) {
48
- const internalKey = this.getKey(key);
49
- return this.map.has(internalKey);
50
- }
51
- /** Removes the entry for the given key. Returns true if the entry was removed. */
52
- delete(key) {
53
- const internalKey = this.getKey(key);
54
- return this.map.delete(internalKey);
55
- }
56
- /** Removes multiple entries. Returns the number of entries removed. */
57
- deleteMultiple(keys) {
58
- let count = 0;
59
- for (const key of keys) {
60
- if (this.delete(key)) {
61
- count++;
62
- }
63
- }
64
- return count;
65
- }
66
- /** Removes all entries from the map. */
67
- clear() {
68
- this.map.clear();
69
- }
70
- /** Executes a callback for each entry in the map. */
71
- forEach(callback, thisArg) {
72
- for (const { key, value } of this.map.values()) {
73
- callback.call(thisArg, value, key, this);
74
- }
75
- }
76
- /** Finds the first entry matching the predicate. */
77
- find(predicate) {
78
- for (const { key, value } of this.map.values()) {
79
- if (predicate(value, key)) {
80
- return { key, value };
81
- }
82
- }
83
- return void 0;
84
- }
85
- /** Gets the value for the given key, or throws if not found. */
86
- getOrThrow(key) {
87
- const value = this.get(key);
88
- if (value === void 0 && !this.has(key)) {
89
- throw new Error(`Key not found in KeyedMap`);
90
- }
91
- return value;
92
- }
93
- /** Gets the value for the given key, or inserts and returns the fallback value. */
94
- getOrInsert(key, fallback) {
95
- if (!this.has(key)) {
96
- this.set(key, fallback());
97
- }
98
- return this.getOrThrow(key);
99
- }
100
- /** Returns values that match the predicate. */
101
- toFilteredValues(predicate) {
102
- const values = [];
103
- for (const { key, value } of this.map.values()) {
104
- if (predicate(value, key)) {
105
- values.push(value);
106
- }
107
- }
108
- return values;
109
- }
110
- /** Returns all values as an array. */
111
- toValues() {
112
- return [...this.values()];
113
- }
114
- /** Returns all keys as an array. */
115
- toKeys() {
116
- return [...this.keys()];
117
- }
118
- *keys() {
119
- for (const { key } of this.map.values()) {
120
- yield key;
121
- }
122
- }
123
- *values() {
124
- for (const { value } of this.map.values()) {
125
- yield value;
126
- }
127
- }
128
- *entries() {
129
- for (const { key, value } of this.map.values()) {
130
- yield [key, value];
131
- }
132
- }
133
- [Symbol.iterator]() {
134
- return this.entries();
135
- }
136
- };
137
- var CompositeKeyMap = class extends KeyedMap {
138
- constructor(entries) {
139
- super(getCompositeKey, entries);
140
- }
141
- };
142
- export {
143
- CompositeKeyMap,
144
- KeyedMap
145
- };