umt 2.12.3 → 2.14.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 (463) hide show
  1. package/README.md +60 -0
  2. package/module/Array/arraysJoin.js +1 -1
  3. package/module/Array/arraysJoin.js.map +1 -1
  4. package/module/Array/chunk.js +1 -2
  5. package/module/Array/chunk.js.map +1 -1
  6. package/module/Array/generateNumberArray.js +13 -3
  7. package/module/Array/generateNumberArray.js.map +1 -1
  8. package/module/Array/getArraysDiff.js +5 -1
  9. package/module/Array/getArraysDiff.js.map +1 -1
  10. package/module/Array/mergeSort.js +45 -18
  11. package/module/Array/mergeSort.js.map +1 -1
  12. package/module/Array/pop.js +2 -1
  13. package/module/Array/pop.js.map +1 -1
  14. package/module/Array/randomSelect.js +8 -0
  15. package/module/Array/randomSelect.js.map +1 -1
  16. package/module/Array/sortingHelpers/rangeValidator.js +3 -2
  17. package/module/Array/sortingHelpers/rangeValidator.js.map +1 -1
  18. package/module/Array/timSort.js +25 -23
  19. package/module/Array/timSort.js.map +1 -1
  20. package/module/Array/ultraNumberSort.js +214 -136
  21. package/module/Array/ultraNumberSort.js.map +1 -1
  22. package/module/Async/defer.d.ts +18 -0
  23. package/module/Async/defer.js +19 -0
  24. package/module/Async/defer.js.map +1 -0
  25. package/module/Async/index.d.ts +4 -0
  26. package/module/Async/index.js +5 -0
  27. package/module/Async/index.js.map +1 -0
  28. package/module/Async/parallel.d.ts +10 -0
  29. package/module/Async/parallel.js +44 -0
  30. package/module/Async/parallel.js.map +1 -0
  31. package/module/Async/sleep.d.ts +8 -0
  32. package/module/Async/sleep.js +11 -0
  33. package/module/Async/sleep.js.map +1 -0
  34. package/module/Async/timeout.d.ts +10 -0
  35. package/module/Async/timeout.js +22 -0
  36. package/module/Async/timeout.js.map +1 -0
  37. package/module/Color/cmykToRgba.js +6 -7
  38. package/module/Color/cmykToRgba.js.map +1 -1
  39. package/module/Color/hexaToRgba.js +1 -8
  40. package/module/Color/hexaToRgba.js.map +1 -1
  41. package/module/Color/hslaToRgba.d.ts +0 -1
  42. package/module/Color/hslaToRgba.js +7 -22
  43. package/module/Color/hslaToRgba.js.map +1 -1
  44. package/module/Color/rgbaToCmyk.js +0 -11
  45. package/module/Color/rgbaToCmyk.js.map +1 -1
  46. package/module/Color/rgbaToHexA.js +2 -15
  47. package/module/Color/rgbaToHexA.js.map +1 -1
  48. package/module/Color/rgbaToHsla.d.ts +0 -1
  49. package/module/Color/rgbaToHsla.js +0 -12
  50. package/module/Color/rgbaToHsla.js.map +1 -1
  51. package/module/Crypto/constants.d.ts +2 -0
  52. package/module/Crypto/constants.js +3 -0
  53. package/module/Crypto/constants.js.map +1 -0
  54. package/module/Crypto/decodeBase32.js +4 -5
  55. package/module/Crypto/decodeBase32.js.map +1 -1
  56. package/module/Crypto/decodeBase58.js +7 -6
  57. package/module/Crypto/decodeBase58.js.map +1 -1
  58. package/module/Crypto/encodeBase32.js +2 -1
  59. package/module/Crypto/encodeBase32.js.map +1 -1
  60. package/module/Crypto/encodeBase58.js +7 -3
  61. package/module/Crypto/encodeBase58.js.map +1 -1
  62. package/module/DataStructure/index.d.ts +2 -0
  63. package/module/DataStructure/index.js +2 -0
  64. package/module/DataStructure/index.js.map +1 -1
  65. package/module/DataStructure/lruCache.d.ts +139 -0
  66. package/module/DataStructure/lruCache.js +172 -0
  67. package/module/DataStructure/lruCache.js.map +1 -0
  68. package/module/DataStructure/ttlCache.d.ts +139 -0
  69. package/module/DataStructure/ttlCache.js +172 -0
  70. package/module/DataStructure/ttlCache.js.map +1 -0
  71. package/module/Error/flatMapResult.d.ts +23 -0
  72. package/module/Error/flatMapResult.js +28 -0
  73. package/module/Error/flatMapResult.js.map +1 -0
  74. package/module/Error/index.d.ts +3 -0
  75. package/module/Error/index.js +3 -0
  76. package/module/Error/index.js.map +1 -1
  77. package/module/Error/mapResult.d.ts +21 -0
  78. package/module/Error/mapResult.js +27 -0
  79. package/module/Error/mapResult.js.map +1 -0
  80. package/module/Error/matchResult.d.ts +25 -0
  81. package/module/Error/matchResult.js +27 -0
  82. package/module/Error/matchResult.js.map +1 -0
  83. package/module/Error/safeExecute.d.ts +16 -3
  84. package/module/Error/safeExecute.js +5 -2
  85. package/module/Error/safeExecute.js.map +1 -1
  86. package/module/Function/debounce.d.ts +38 -0
  87. package/module/Function/debounce.js +67 -0
  88. package/module/Function/debounce.js.map +1 -0
  89. package/module/Function/index.d.ts +4 -0
  90. package/module/Function/index.js +4 -0
  91. package/module/Function/index.js.map +1 -1
  92. package/module/Function/memoize.d.ts +36 -0
  93. package/module/Function/memoize.js +54 -0
  94. package/module/Function/memoize.js.map +1 -0
  95. package/module/Function/once.d.ts +18 -0
  96. package/module/Function/once.js +29 -0
  97. package/module/Function/once.js.map +1 -0
  98. package/module/Function/throttle.d.ts +25 -0
  99. package/module/Function/throttle.js +55 -0
  100. package/module/Function/throttle.js.map +1 -0
  101. package/module/IP/cidrToLong.d.ts +0 -1
  102. package/module/IP/cidrToLong.js +0 -4
  103. package/module/IP/cidrToLong.js.map +1 -1
  104. package/module/IP/cidrToSubnetMask.d.ts +0 -1
  105. package/module/IP/cidrToSubnetMask.js +0 -1
  106. package/module/IP/cidrToSubnetMask.js.map +1 -1
  107. package/module/IP/getNetworkAddress.d.ts +0 -1
  108. package/module/IP/getNetworkAddress.js +2 -32
  109. package/module/IP/getNetworkAddress.js.map +1 -1
  110. package/module/IP/ipToBinaryString.d.ts +0 -1
  111. package/module/IP/ipToBinaryString.js +2 -25
  112. package/module/IP/ipToBinaryString.js.map +1 -1
  113. package/module/IP/ipToLong.d.ts +0 -1
  114. package/module/IP/ipToLong.js +0 -1
  115. package/module/IP/ipToLong.js.map +1 -1
  116. package/module/IP/isInRange.d.ts +0 -1
  117. package/module/IP/isInRange.js +5 -28
  118. package/module/IP/isInRange.js.map +1 -1
  119. package/module/IP/isPrivateIp.d.ts +0 -1
  120. package/module/IP/isPrivateIp.js +1 -10
  121. package/module/IP/isPrivateIp.js.map +1 -1
  122. package/module/IP/longToIp.d.ts +0 -1
  123. package/module/IP/longToIp.js +0 -8
  124. package/module/IP/longToIp.js.map +1 -1
  125. package/module/IP/subnetMaskToCidr.d.ts +0 -1
  126. package/module/IP/subnetMaskToCidr.js +2 -23
  127. package/module/IP/subnetMaskToCidr.js.map +1 -1
  128. package/module/Iterator/index.d.ts +3 -0
  129. package/module/Iterator/index.js +4 -0
  130. package/module/Iterator/index.js.map +1 -0
  131. package/module/Iterator/lazyFilter.d.ts +10 -0
  132. package/module/Iterator/lazyFilter.js +19 -0
  133. package/module/Iterator/lazyFilter.js.map +1 -0
  134. package/module/Iterator/lazyMap.d.ts +10 -0
  135. package/module/Iterator/lazyMap.js +17 -0
  136. package/module/Iterator/lazyMap.js.map +1 -0
  137. package/module/Iterator/lazyTake.d.ts +10 -0
  138. package/module/Iterator/lazyTake.js +20 -0
  139. package/module/Iterator/lazyTake.js.map +1 -0
  140. package/module/Math/addition.js +20 -4
  141. package/module/Math/addition.js.map +1 -1
  142. package/module/Math/average.js +3 -3
  143. package/module/Math/average.js.map +1 -1
  144. package/module/Math/bitwise.js +1 -1
  145. package/module/Math/bitwise.js.map +1 -1
  146. package/module/Math/calculator/core.js +2 -1
  147. package/module/Math/calculator/core.js.map +1 -1
  148. package/module/Math/calculator/literalExpression.js +1 -1
  149. package/module/Math/clamp.d.ts +16 -0
  150. package/module/Math/clamp.js +19 -0
  151. package/module/Math/clamp.js.map +1 -0
  152. package/module/Math/correlationCoefficient.js +0 -3
  153. package/module/Math/correlationCoefficient.js.map +1 -1
  154. package/module/Math/inRange.d.ts +19 -0
  155. package/module/Math/inRange.js +24 -0
  156. package/module/Math/inRange.js.map +1 -0
  157. package/module/Math/index.d.ts +3 -0
  158. package/module/Math/index.js +3 -0
  159. package/module/Math/index.js.map +1 -1
  160. package/module/Math/median.js +2 -2
  161. package/module/Math/median.js.map +1 -1
  162. package/module/Math/nCr.js +2 -4
  163. package/module/Math/nCr.js.map +1 -1
  164. package/module/Math/percentile.js +2 -5
  165. package/module/Math/percentile.js.map +1 -1
  166. package/module/Math/primeFactorization.js +1 -1
  167. package/module/Math/primeFactorization.js.map +1 -1
  168. package/module/Math/sumPrecise.d.ts +14 -0
  169. package/module/Math/sumPrecise.js +27 -0
  170. package/module/Math/sumPrecise.js.map +1 -0
  171. package/module/Math/uuidv7.js +56 -22
  172. package/module/Math/uuidv7.js.map +1 -1
  173. package/module/Number/formatNumber.d.ts +42 -0
  174. package/module/Number/formatNumber.js +44 -0
  175. package/module/Number/formatNumber.js.map +1 -0
  176. package/module/Number/index.d.ts +3 -0
  177. package/module/Number/index.js +4 -0
  178. package/module/Number/index.js.map +1 -0
  179. package/module/Number/toOrdinal.d.ts +20 -0
  180. package/module/Number/toOrdinal.js +37 -0
  181. package/module/Number/toOrdinal.js.map +1 -0
  182. package/module/Number/toPercentage.d.ts +20 -0
  183. package/module/Number/toPercentage.js +27 -0
  184. package/module/Number/toPercentage.js.map +1 -0
  185. package/module/Object/deepClone.d.ts +15 -0
  186. package/module/Object/deepClone.js +65 -0
  187. package/module/Object/deepClone.js.map +1 -0
  188. package/module/Object/getObjectsCommon.d.ts +23 -0
  189. package/module/Object/getObjectsCommon.js +60 -0
  190. package/module/Object/getObjectsCommon.js.map +1 -0
  191. package/module/Object/getObjectsDiff.d.ts +25 -0
  192. package/module/Object/getObjectsDiff.js +79 -0
  193. package/module/Object/getObjectsDiff.js.map +1 -0
  194. package/module/Object/index.d.ts +6 -0
  195. package/module/Object/index.js +6 -0
  196. package/module/Object/index.js.map +1 -1
  197. package/module/Object/isPlainObject.d.ts +16 -0
  198. package/module/Object/isPlainObject.js +32 -0
  199. package/module/Object/isPlainObject.js.map +1 -0
  200. package/module/Object/mapKeys.d.ts +15 -0
  201. package/module/Object/mapKeys.js +28 -0
  202. package/module/Object/mapKeys.js.map +1 -0
  203. package/module/Object/mapValues.d.ts +15 -0
  204. package/module/Object/mapValues.js +27 -0
  205. package/module/Object/mapValues.js.map +1 -0
  206. package/module/Object/mergeDeep.js +4 -9
  207. package/module/Object/mergeDeep.js.map +1 -1
  208. package/module/Object/omit.d.ts +1 -1
  209. package/module/Object/omit.js.map +1 -1
  210. package/module/Object/pickDeep.js +6 -1
  211. package/module/Object/pickDeep.js.map +1 -1
  212. package/module/Predicate/every.d.ts +14 -0
  213. package/module/Predicate/every.js +22 -0
  214. package/module/Predicate/every.js.map +1 -0
  215. package/module/Predicate/index.d.ts +6 -0
  216. package/module/Predicate/index.js +7 -0
  217. package/module/Predicate/index.js.map +1 -0
  218. package/module/Predicate/isNotNullish.d.ts +11 -0
  219. package/module/Predicate/isNotNullish.js +12 -0
  220. package/module/Predicate/isNotNullish.js.map +1 -0
  221. package/module/Predicate/isNullish.d.ts +11 -0
  222. package/module/Predicate/isNullish.js +12 -0
  223. package/module/Predicate/isNullish.js.map +1 -0
  224. package/module/Predicate/matches.d.ts +11 -0
  225. package/module/Predicate/matches.js +20 -0
  226. package/module/Predicate/matches.js.map +1 -0
  227. package/module/Predicate/not.d.ts +10 -0
  228. package/module/Predicate/not.js +11 -0
  229. package/module/Predicate/not.js.map +1 -0
  230. package/module/Predicate/some.d.ts +15 -0
  231. package/module/Predicate/some.js +23 -0
  232. package/module/Predicate/some.js.map +1 -0
  233. package/module/String/camelCase.js +2 -2
  234. package/module/String/camelCase.js.map +1 -1
  235. package/module/String/escapeHtml.js +1 -1
  236. package/module/String/formatString/getValue.js +1 -1
  237. package/module/String/formatString/getValue.js.map +1 -1
  238. package/module/String/fromBase64.d.ts +0 -1
  239. package/module/String/fromBase64.js +1 -9
  240. package/module/String/fromBase64.js.map +1 -1
  241. package/module/String/fuzzySearch.js +74 -6
  242. package/module/String/fuzzySearch.js.map +1 -1
  243. package/module/String/kebabCase.js +1 -1
  244. package/module/String/kebabCase.js.map +1 -1
  245. package/module/String/levenshteinDistance.js +1 -2
  246. package/module/String/levenshteinDistance.js.map +1 -1
  247. package/module/String/randomString.js +23 -2
  248. package/module/String/randomString.js.map +1 -1
  249. package/module/String/reverseString.js +1 -1
  250. package/module/String/reverseString.js.map +1 -1
  251. package/module/String/slugify.js +1 -1
  252. package/module/String/toHalfWidth.js +2 -2
  253. package/module/String/toHalfWidth.js.map +1 -1
  254. package/module/String/truncate.js +0 -3
  255. package/module/String/truncate.js.map +1 -1
  256. package/module/String/unescapeHtml.js +1 -1
  257. package/module/String/unescapeHtml.js.map +1 -1
  258. package/module/Time/convertTime.js +4 -3
  259. package/module/Time/convertTime.js.map +1 -1
  260. package/module/Tool/escapeRegExp.d.ts +8 -0
  261. package/module/Tool/escapeRegExp.js +11 -0
  262. package/module/Tool/escapeRegExp.js.map +1 -0
  263. package/module/Tool/index.d.ts +1 -0
  264. package/module/Tool/index.js +1 -0
  265. package/module/Tool/index.js.map +1 -1
  266. package/module/URL/buildUrl.d.ts +17 -0
  267. package/module/URL/buildUrl.js +24 -0
  268. package/module/URL/buildUrl.js.map +1 -0
  269. package/module/URL/index.d.ts +4 -0
  270. package/module/URL/index.js +5 -0
  271. package/module/URL/index.js.map +1 -0
  272. package/module/URL/isAbsoluteUrl.d.ts +20 -0
  273. package/module/URL/isAbsoluteUrl.js +23 -0
  274. package/module/URL/isAbsoluteUrl.js.map +1 -0
  275. package/module/URL/joinPath.d.ts +24 -0
  276. package/module/URL/joinPath.js +43 -0
  277. package/module/URL/joinPath.js.map +1 -0
  278. package/module/URL/parseQueryString.d.ts +22 -0
  279. package/module/URL/parseQueryString.js +34 -0
  280. package/module/URL/parseQueryString.js.map +1 -0
  281. package/module/Validate/parseEmail.js +5 -5
  282. package/module/Validate/parseEmail.js.map +1 -1
  283. package/module/es5/Array/arraysJoin.js +1 -1
  284. package/module/es5/Array/chunk.js +3 -2
  285. package/module/es5/Array/generateNumberArray.js +21 -3
  286. package/module/es5/Array/getArraysDiff.js +5 -3
  287. package/module/es5/Array/mergeSort.js +51 -19
  288. package/module/es5/Array/pop.js +2 -7
  289. package/module/es5/Array/randomSelect.js +8 -0
  290. package/module/es5/Array/sortingHelpers/rangeValidator.js +3 -2
  291. package/module/es5/Array/timSort.js +25 -23
  292. package/module/es5/Array/ultraNumberSort.js +243 -243
  293. package/module/es5/Async/defer.d.ts +18 -0
  294. package/module/es5/Async/defer.js +32 -0
  295. package/module/es5/Async/index.d.ts +4 -0
  296. package/module/es5/Async/index.js +49 -0
  297. package/module/es5/Async/parallel.d.ts +10 -0
  298. package/module/es5/Async/parallel.js +48 -0
  299. package/module/es5/Async/sleep.d.ts +8 -0
  300. package/module/es5/Async/sleep.js +18 -0
  301. package/module/es5/Async/timeout.d.ts +10 -0
  302. package/module/es5/Async/timeout.js +29 -0
  303. package/module/es5/Color/cmykToRgba.js +6 -7
  304. package/module/es5/Color/hexaToRgba.js +7 -5
  305. package/module/es5/Color/hslaToRgba.d.ts +0 -1
  306. package/module/es5/Color/hslaToRgba.js +7 -22
  307. package/module/es5/Color/rgbaToCmyk.js +0 -4
  308. package/module/es5/Color/rgbaToHexA.js +2 -6
  309. package/module/es5/Color/rgbaToHsla.d.ts +0 -1
  310. package/module/es5/Color/rgbaToHsla.js +0 -5
  311. package/module/es5/Crypto/constants.d.ts +2 -0
  312. package/module/es5/Crypto/constants.js +8 -0
  313. package/module/es5/Crypto/decodeBase32.js +12 -5
  314. package/module/es5/Crypto/decodeBase58.js +14 -8
  315. package/module/es5/Crypto/encodeBase32.js +2 -1
  316. package/module/es5/Crypto/encodeBase58.js +8 -3
  317. package/module/es5/DataStructure/index.d.ts +2 -0
  318. package/module/es5/DataStructure/index.js +22 -0
  319. package/module/es5/DataStructure/lruCache.d.ts +139 -0
  320. package/module/es5/DataStructure/lruCache.js +205 -0
  321. package/module/es5/DataStructure/ttlCache.d.ts +139 -0
  322. package/module/es5/DataStructure/ttlCache.js +211 -0
  323. package/module/es5/Error/flatMapResult.d.ts +23 -0
  324. package/module/es5/Error/flatMapResult.js +33 -0
  325. package/module/es5/Error/index.d.ts +3 -0
  326. package/module/es5/Error/index.js +33 -0
  327. package/module/es5/Error/mapResult.d.ts +21 -0
  328. package/module/es5/Error/mapResult.js +32 -0
  329. package/module/es5/Error/matchResult.d.ts +25 -0
  330. package/module/es5/Error/matchResult.js +32 -0
  331. package/module/es5/Error/safeExecute.d.ts +16 -3
  332. package/module/es5/Error/safeExecute.js +3 -3
  333. package/module/es5/Function/debounce.d.ts +38 -0
  334. package/module/es5/Function/debounce.js +88 -0
  335. package/module/es5/Function/index.d.ts +4 -0
  336. package/module/es5/Function/index.js +44 -0
  337. package/module/es5/Function/memoize.d.ts +36 -0
  338. package/module/es5/Function/memoize.js +73 -0
  339. package/module/es5/Function/once.d.ts +18 -0
  340. package/module/es5/Function/once.js +37 -0
  341. package/module/es5/Function/throttle.d.ts +25 -0
  342. package/module/es5/Function/throttle.js +69 -0
  343. package/module/es5/IP/cidrToLong.d.ts +0 -1
  344. package/module/es5/IP/cidrToLong.js +0 -4
  345. package/module/es5/IP/cidrToSubnetMask.d.ts +0 -1
  346. package/module/es5/IP/cidrToSubnetMask.js +0 -1
  347. package/module/es5/IP/getNetworkAddress.d.ts +0 -1
  348. package/module/es5/IP/getNetworkAddress.js +2 -31
  349. package/module/es5/IP/ipToBinaryString.d.ts +0 -1
  350. package/module/es5/IP/ipToBinaryString.js +1 -40
  351. package/module/es5/IP/ipToLong.d.ts +0 -1
  352. package/module/es5/IP/ipToLong.js +0 -1
  353. package/module/es5/IP/isInRange.d.ts +0 -1
  354. package/module/es5/IP/isInRange.js +5 -29
  355. package/module/es5/IP/isPrivateIp.d.ts +0 -1
  356. package/module/es5/IP/isPrivateIp.js +3 -12
  357. package/module/es5/IP/longToIp.d.ts +0 -1
  358. package/module/es5/IP/longToIp.js +0 -6
  359. package/module/es5/IP/subnetMaskToCidr.d.ts +0 -1
  360. package/module/es5/IP/subnetMaskToCidr.js +2 -26
  361. package/module/es5/Iterator/index.d.ts +3 -0
  362. package/module/es5/Iterator/index.js +38 -0
  363. package/module/es5/Iterator/lazyFilter.d.ts +10 -0
  364. package/module/es5/Iterator/lazyFilter.js +63 -0
  365. package/module/es5/Iterator/lazyMap.d.ts +10 -0
  366. package/module/es5/Iterator/lazyMap.js +59 -0
  367. package/module/es5/Iterator/lazyTake.d.ts +10 -0
  368. package/module/es5/Iterator/lazyTake.js +65 -0
  369. package/module/es5/Math/addition.js +24 -14
  370. package/module/es5/Math/average.js +3 -5
  371. package/module/es5/Math/bitwise.js +1 -1
  372. package/module/es5/Math/calculator/core.js +2 -1
  373. package/module/es5/Math/calculator/literalExpression.js +1 -1
  374. package/module/es5/Math/clamp.d.ts +16 -0
  375. package/module/es5/Math/clamp.js +24 -0
  376. package/module/es5/Math/correlationCoefficient.js +0 -3
  377. package/module/es5/Math/inRange.d.ts +19 -0
  378. package/module/es5/Math/inRange.js +29 -0
  379. package/module/es5/Math/index.d.ts +3 -0
  380. package/module/es5/Math/index.js +33 -0
  381. package/module/es5/Math/median.js +2 -2
  382. package/module/es5/Math/nCr.js +2 -4
  383. package/module/es5/Math/percentile.js +2 -11
  384. package/module/es5/Math/primeFactorization.js +1 -1
  385. package/module/es5/Math/sumPrecise.d.ts +14 -0
  386. package/module/es5/Math/sumPrecise.js +41 -0
  387. package/module/es5/Math/uuidv7.js +25 -40
  388. package/module/es5/Number/formatNumber.d.ts +42 -0
  389. package/module/es5/Number/formatNumber.js +58 -0
  390. package/module/es5/Number/index.d.ts +3 -0
  391. package/module/es5/Number/index.js +38 -0
  392. package/module/es5/Number/toOrdinal.d.ts +20 -0
  393. package/module/es5/Number/toOrdinal.js +42 -0
  394. package/module/es5/Number/toPercentage.d.ts +20 -0
  395. package/module/es5/Number/toPercentage.js +33 -0
  396. package/module/es5/Object/deepClone.d.ts +15 -0
  397. package/module/es5/Object/deepClone.js +110 -0
  398. package/module/es5/Object/getObjectsCommon.d.ts +23 -0
  399. package/module/es5/Object/getObjectsCommon.js +92 -0
  400. package/module/es5/Object/getObjectsDiff.d.ts +25 -0
  401. package/module/es5/Object/getObjectsDiff.js +146 -0
  402. package/module/es5/Object/index.d.ts +6 -0
  403. package/module/es5/Object/index.js +66 -0
  404. package/module/es5/Object/isPlainObject.d.ts +16 -0
  405. package/module/es5/Object/isPlainObject.js +39 -0
  406. package/module/es5/Object/mapKeys.d.ts +15 -0
  407. package/module/es5/Object/mapKeys.js +33 -0
  408. package/module/es5/Object/mapValues.d.ts +15 -0
  409. package/module/es5/Object/mapValues.js +32 -0
  410. package/module/es5/Object/mergeDeep.js +7 -10
  411. package/module/es5/Object/omit.d.ts +1 -1
  412. package/module/es5/Object/pickDeep.js +4 -6
  413. package/module/es5/Predicate/every.d.ts +14 -0
  414. package/module/es5/Predicate/every.js +33 -0
  415. package/module/es5/Predicate/index.d.ts +6 -0
  416. package/module/es5/Predicate/index.js +71 -0
  417. package/module/es5/Predicate/isNotNullish.d.ts +11 -0
  418. package/module/es5/Predicate/isNotNullish.js +19 -0
  419. package/module/es5/Predicate/isNullish.d.ts +11 -0
  420. package/module/es5/Predicate/isNullish.js +19 -0
  421. package/module/es5/Predicate/matches.d.ts +11 -0
  422. package/module/es5/Predicate/matches.js +28 -0
  423. package/module/es5/Predicate/not.d.ts +10 -0
  424. package/module/es5/Predicate/not.js +20 -0
  425. package/module/es5/Predicate/some.d.ts +15 -0
  426. package/module/es5/Predicate/some.js +34 -0
  427. package/module/es5/String/camelCase.js +2 -2
  428. package/module/es5/String/escapeHtml.js +1 -1
  429. package/module/es5/String/formatString/getValue.js +1 -1
  430. package/module/es5/String/fromBase64.d.ts +0 -1
  431. package/module/es5/String/fromBase64.js +9 -8
  432. package/module/es5/String/fuzzySearch.js +84 -9
  433. package/module/es5/String/kebabCase.js +1 -1
  434. package/module/es5/String/levenshteinDistance.js +3 -2
  435. package/module/es5/String/randomString.js +24 -2
  436. package/module/es5/String/reverseString.js +7 -1
  437. package/module/es5/String/slugify.js +1 -1
  438. package/module/es5/String/toHalfWidth.js +2 -2
  439. package/module/es5/String/truncate.js +0 -3
  440. package/module/es5/String/unescapeHtml.js +1 -1
  441. package/module/es5/Time/convertTime.js +4 -3
  442. package/module/es5/Tool/escapeRegExp.d.ts +8 -0
  443. package/module/es5/Tool/escapeRegExp.js +18 -0
  444. package/module/es5/Tool/index.d.ts +1 -0
  445. package/module/es5/Tool/index.js +11 -0
  446. package/module/es5/URL/buildUrl.d.ts +17 -0
  447. package/module/es5/URL/buildUrl.js +31 -0
  448. package/module/es5/URL/index.d.ts +4 -0
  449. package/module/es5/URL/index.js +49 -0
  450. package/module/es5/URL/isAbsoluteUrl.d.ts +20 -0
  451. package/module/es5/URL/isAbsoluteUrl.js +28 -0
  452. package/module/es5/URL/joinPath.d.ts +24 -0
  453. package/module/es5/URL/joinPath.js +48 -0
  454. package/module/es5/URL/parseQueryString.d.ts +22 -0
  455. package/module/es5/URL/parseQueryString.js +57 -0
  456. package/module/es5/Validate/parseEmail.js +5 -5
  457. package/module/es5/index.d.ts +5 -0
  458. package/module/es5/index.js +73 -18
  459. package/module/es5/tsconfig.tsbuildinfo +1 -1
  460. package/module/index.d.ts +5 -0
  461. package/module/index.js +5 -0
  462. package/module/index.js.map +1 -1
  463. package/package.json +58 -27
@@ -0,0 +1,23 @@
1
+ import type { Result } from "../Error/safeExecute";
2
+ /**
3
+ * Transforms the value inside a successful Result using a function
4
+ * that itself returns a Result. If the original Result is an error,
5
+ * it is returned unchanged.
6
+ *
7
+ * @param result - The Result to transform.
8
+ * @param function_ - The function to apply to the success value,
9
+ * which returns a new Result.
10
+ * @returns The Result returned by the mapping function, or the original error.
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * const success = { type: "success", value: 5 } as const;
15
+ * flatMapResult(success, (n) =>
16
+ * n > 0
17
+ * ? { type: "success", value: n * 2 }
18
+ * : { type: "error", error: new Error("negative") }
19
+ * );
20
+ * // { type: "success", value: 10 }
21
+ * ```
22
+ */
23
+ export declare const flatMapResult: <V, E, U, F>(result: Result<V, E>, function_: (value: V) => Result<U, F>) => Result<U, E | F>;
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.flatMapResult = void 0;
7
+ /**
8
+ * Transforms the value inside a successful Result using a function
9
+ * that itself returns a Result. If the original Result is an error,
10
+ * it is returned unchanged.
11
+ *
12
+ * @param result - The Result to transform.
13
+ * @param function_ - The function to apply to the success value,
14
+ * which returns a new Result.
15
+ * @returns The Result returned by the mapping function, or the original error.
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * const success = { type: "success", value: 5 } as const;
20
+ * flatMapResult(success, (n) =>
21
+ * n > 0
22
+ * ? { type: "success", value: n * 2 }
23
+ * : { type: "error", error: new Error("negative") }
24
+ * );
25
+ * // { type: "success", value: 10 }
26
+ * ```
27
+ */
28
+ var flatMapResult = exports.flatMapResult = function flatMapResult(result, function_) {
29
+ if (result.type === "success") {
30
+ return function_(result.value);
31
+ }
32
+ return result;
33
+ };
@@ -1,2 +1,5 @@
1
+ export * from "./flatMapResult";
2
+ export * from "./mapResult";
3
+ export * from "./matchResult";
1
4
  export * from "./retry";
2
5
  export * from "./safeExecute";
@@ -3,6 +3,39 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ var _flatMapResult = require("./flatMapResult");
7
+ Object.keys(_flatMapResult).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _flatMapResult[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function get() {
13
+ return _flatMapResult[key];
14
+ }
15
+ });
16
+ });
17
+ var _mapResult = require("./mapResult");
18
+ Object.keys(_mapResult).forEach(function (key) {
19
+ if (key === "default" || key === "__esModule") return;
20
+ if (key in exports && exports[key] === _mapResult[key]) return;
21
+ Object.defineProperty(exports, key, {
22
+ enumerable: true,
23
+ get: function get() {
24
+ return _mapResult[key];
25
+ }
26
+ });
27
+ });
28
+ var _matchResult = require("./matchResult");
29
+ Object.keys(_matchResult).forEach(function (key) {
30
+ if (key === "default" || key === "__esModule") return;
31
+ if (key in exports && exports[key] === _matchResult[key]) return;
32
+ Object.defineProperty(exports, key, {
33
+ enumerable: true,
34
+ get: function get() {
35
+ return _matchResult[key];
36
+ }
37
+ });
38
+ });
6
39
  var _retry = require("./retry");
7
40
  Object.keys(_retry).forEach(function (key) {
8
41
  if (key === "default" || key === "__esModule") return;
@@ -0,0 +1,21 @@
1
+ import { type Result } from "../Error/safeExecute";
2
+ /**
3
+ * Transforms the value inside a successful Result using the provided
4
+ * mapping function. If the Result is an error, it is returned unchanged.
5
+ *
6
+ * @param result - The Result to transform.
7
+ * @param function_ - The function to apply to the success value.
8
+ * @returns A new Result with the transformed value, or the original error.
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * const success = { type: "success", value: 5 } as const;
13
+ * mapResult(success, (n) => n * 2);
14
+ * // { type: "success", value: 10 }
15
+ *
16
+ * const error = { type: "error", error: new Error("fail") } as const;
17
+ * mapResult(error, (n) => n * 2);
18
+ * // { type: "error", error: Error("fail") }
19
+ * ```
20
+ */
21
+ export declare const mapResult: <V, E, U>(result: Result<V, E>, function_: (value: V) => U) => Result<U, E>;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.mapResult = void 0;
7
+ var _safeExecute = require("../Error/safeExecute");
8
+ /**
9
+ * Transforms the value inside a successful Result using the provided
10
+ * mapping function. If the Result is an error, it is returned unchanged.
11
+ *
12
+ * @param result - The Result to transform.
13
+ * @param function_ - The function to apply to the success value.
14
+ * @returns A new Result with the transformed value, or the original error.
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * const success = { type: "success", value: 5 } as const;
19
+ * mapResult(success, (n) => n * 2);
20
+ * // { type: "success", value: 10 }
21
+ *
22
+ * const error = { type: "error", error: new Error("fail") } as const;
23
+ * mapResult(error, (n) => n * 2);
24
+ * // { type: "error", error: Error("fail") }
25
+ * ```
26
+ */
27
+ var mapResult = exports.mapResult = function mapResult(result, function_) {
28
+ if (result.type === "success") {
29
+ return (0, _safeExecute.successFunction)(function_(result.value));
30
+ }
31
+ return result;
32
+ };
@@ -0,0 +1,25 @@
1
+ import type { Result } from "../Error/safeExecute";
2
+ /**
3
+ * Pattern-matches on a Result, applying the appropriate handler
4
+ * depending on whether the Result is a success or an error.
5
+ *
6
+ * @param result - The Result to match on.
7
+ * @param handlers - An object with onSuccess and onError callbacks.
8
+ * @param handlers.onSuccess - Called with the value if the Result is a success.
9
+ * @param handlers.onError - Called with the error if the Result is an error.
10
+ * @returns The return value of whichever handler is invoked.
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * const result = { type: "success", value: 42 } as const;
15
+ * matchResult(result, {
16
+ * onSuccess: (v) => `Got ${v}`,
17
+ * onError: (e) => `Failed: ${e}`,
18
+ * });
19
+ * // "Got 42"
20
+ * ```
21
+ */
22
+ export declare const matchResult: <V, E, S, F>(result: Result<V, E>, handlers: {
23
+ onSuccess: (value: V) => S;
24
+ onError: (error: E) => F;
25
+ }) => S | F;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.matchResult = void 0;
7
+ /**
8
+ * Pattern-matches on a Result, applying the appropriate handler
9
+ * depending on whether the Result is a success or an error.
10
+ *
11
+ * @param result - The Result to match on.
12
+ * @param handlers - An object with onSuccess and onError callbacks.
13
+ * @param handlers.onSuccess - Called with the value if the Result is a success.
14
+ * @param handlers.onError - Called with the error if the Result is an error.
15
+ * @returns The return value of whichever handler is invoked.
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * const result = { type: "success", value: 42 } as const;
20
+ * matchResult(result, {
21
+ * onSuccess: (v) => `Got ${v}`,
22
+ * onError: (e) => `Failed: ${e}`,
23
+ * });
24
+ * // "Got 42"
25
+ * ```
26
+ */
27
+ var matchResult = exports.matchResult = function matchResult(result, handlers) {
28
+ if (result.type === "success") {
29
+ return handlers.onSuccess(result.value);
30
+ }
31
+ return handlers.onError(result.error);
32
+ };
@@ -2,7 +2,7 @@
2
2
  * Represents a successful execution result containing a value
3
3
  * @template V The type of the success value
4
4
  */
5
- interface SuccessType<V> {
5
+ export interface SuccessType<V> {
6
6
  type: "success";
7
7
  value: V;
8
8
  }
@@ -10,7 +10,7 @@ interface SuccessType<V> {
10
10
  * Represents an error result containing an error object
11
11
  * @template E The type of the error
12
12
  */
13
- interface ErrorType<E> {
13
+ export interface ErrorType<E> {
14
14
  type: "error";
15
15
  error: E;
16
16
  }
@@ -20,6 +20,20 @@ interface ErrorType<E> {
20
20
  * @template E The type of the error
21
21
  */
22
22
  export type Result<V, E> = SuccessType<V> | ErrorType<E>;
23
+ /**
24
+ * Creates an error result
25
+ * @template E The type of the error
26
+ * @param error The error object
27
+ * @returns An ErrorType containing the error
28
+ */
29
+ export declare const errorFunction: <E>(error: E) => ErrorType<E>;
30
+ /**
31
+ * Creates a success result
32
+ * @template V The type of the success value
33
+ * @param value The success value
34
+ * @returns A SuccessType containing the value
35
+ */
36
+ export declare const successFunction: <V>(value: V) => SuccessType<V>;
23
37
  /**
24
38
  * Safely executes a callback function and returns a Result type
25
39
  * Catches any errors and wraps them in a Result type
@@ -29,4 +43,3 @@ export type Result<V, E> = SuccessType<V> | ErrorType<E>;
29
43
  * @returns A Result containing either the successful value or the caught error
30
44
  */
31
45
  export declare const safeExecute: <V, E = Error>(callback: () => V) => Result<V, E>;
32
- export {};
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.safeExecute = void 0;
6
+ exports.successFunction = exports.safeExecute = exports.errorFunction = void 0;
7
7
  /**
8
8
  * Represents a successful execution result containing a value
9
9
  * @template V The type of the success value
@@ -26,7 +26,7 @@ exports.safeExecute = void 0;
26
26
  * @param error The error object
27
27
  * @returns An ErrorType containing the error
28
28
  */
29
- var errorFunction = function errorFunction(error) {
29
+ var errorFunction = exports.errorFunction = function errorFunction(error) {
30
30
  return {
31
31
  type: "error",
32
32
  error: error
@@ -38,7 +38,7 @@ var errorFunction = function errorFunction(error) {
38
38
  * @param value The success value
39
39
  * @returns A SuccessType containing the value
40
40
  */
41
- var successFunction = function successFunction(value) {
41
+ var successFunction = exports.successFunction = function successFunction(value) {
42
42
  return {
43
43
  type: "success",
44
44
  value: value
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Options for the debounce function.
3
+ */
4
+ export interface DebounceOptions {
5
+ /** Whether to invoke on the leading edge of the timeout. */
6
+ leading?: boolean;
7
+ /** Whether to invoke on the trailing edge of the timeout. */
8
+ trailing?: boolean;
9
+ }
10
+ /**
11
+ * A debounced function with a cancel method.
12
+ */
13
+ export interface DebouncedFunction<T extends (...arguments_: unknown[]) => unknown> {
14
+ (...arguments_: Parameters<T>): void;
15
+ /** Cancels any pending debounced invocation. */
16
+ cancel: () => void;
17
+ }
18
+ /**
19
+ * Creates a debounced version of the provided function that delays
20
+ * invoking it until after the specified wait time has elapsed since
21
+ * the last time the debounced function was called.
22
+ *
23
+ * @param function_ - The function to debounce.
24
+ * @param wait - The number of milliseconds to delay.
25
+ * @param options - Configuration for leading/trailing invocation.
26
+ * @param options.leading - If true, invoke on the leading edge.
27
+ * @param options.trailing - If true, invoke on the trailing edge (default).
28
+ * @returns The debounced function with a cancel method.
29
+ *
30
+ * @example
31
+ * ```typescript
32
+ * const debounced = debounce(() => console.log("called"), 300);
33
+ * debounced();
34
+ * debounced();
35
+ * debounced.cancel();
36
+ * ```
37
+ */
38
+ export declare const debounce: <T extends (...arguments_: unknown[]) => unknown>(function_: T, wait: number, options?: DebounceOptions) => DebouncedFunction<T>;
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.debounce = void 0;
7
+ /**
8
+ * Options for the debounce function.
9
+ */
10
+
11
+ /**
12
+ * A debounced function with a cancel method.
13
+ */
14
+
15
+ /**
16
+ * Creates a debounced version of the provided function that delays
17
+ * invoking it until after the specified wait time has elapsed since
18
+ * the last time the debounced function was called.
19
+ *
20
+ * @param function_ - The function to debounce.
21
+ * @param wait - The number of milliseconds to delay.
22
+ * @param options - Configuration for leading/trailing invocation.
23
+ * @param options.leading - If true, invoke on the leading edge.
24
+ * @param options.trailing - If true, invoke on the trailing edge (default).
25
+ * @returns The debounced function with a cancel method.
26
+ *
27
+ * @example
28
+ * ```typescript
29
+ * const debounced = debounce(() => console.log("called"), 300);
30
+ * debounced();
31
+ * debounced();
32
+ * debounced.cancel();
33
+ * ```
34
+ */
35
+ var debounce = exports.debounce = function debounce(function_, wait) {
36
+ var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
37
+ var _options$leading = options.leading,
38
+ leading = _options$leading === void 0 ? false : _options$leading,
39
+ _options$trailing = options.trailing,
40
+ trailing = _options$trailing === void 0 ? true : _options$trailing;
41
+ var timerId;
42
+ var lastArguments;
43
+ var thisReference = {
44
+ value: undefined
45
+ };
46
+ var lastCallTime = 0;
47
+ var _scheduleCheck = function scheduleCheck() {
48
+ timerId = setTimeout(function () {
49
+ var elapsed = Date.now() - lastCallTime;
50
+ var remaining = wait - elapsed;
51
+ if (remaining <= 0) {
52
+ timerId = undefined;
53
+ if (trailing && lastArguments !== undefined) {
54
+ function_.apply(thisReference.value, lastArguments);
55
+ lastArguments = undefined;
56
+ }
57
+ } else {
58
+ _scheduleCheck();
59
+ }
60
+ }, wait - (Date.now() - lastCallTime));
61
+ };
62
+ var debounced = function debounced() {
63
+ for (var _len = arguments.length, arguments_ = new Array(_len), _key = 0; _key < _len; _key++) {
64
+ arguments_[_key] = arguments[_key];
65
+ }
66
+ lastArguments = arguments_;
67
+ thisReference.value = this;
68
+ lastCallTime = Date.now();
69
+ var isFirstCall = timerId === undefined;
70
+ if (leading && isFirstCall) {
71
+ function_.apply(thisReference.value, lastArguments);
72
+ lastArguments = undefined;
73
+ }
74
+ if (isFirstCall) {
75
+ _scheduleCheck();
76
+ }
77
+ };
78
+ debounced.cancel = function () {
79
+ if (timerId !== undefined) {
80
+ clearTimeout(timerId);
81
+ }
82
+ timerId = undefined;
83
+ lastArguments = undefined;
84
+ thisReference.value = undefined;
85
+ lastCallTime = 0;
86
+ };
87
+ return debounced;
88
+ };
@@ -1 +1,5 @@
1
1
  export * from "./curry";
2
+ export * from "./debounce";
3
+ export * from "./memoize";
4
+ export * from "./once";
5
+ export * from "./throttle";
@@ -13,4 +13,48 @@ Object.keys(_curry).forEach(function (key) {
13
13
  return _curry[key];
14
14
  }
15
15
  });
16
+ });
17
+ var _debounce = require("./debounce");
18
+ Object.keys(_debounce).forEach(function (key) {
19
+ if (key === "default" || key === "__esModule") return;
20
+ if (key in exports && exports[key] === _debounce[key]) return;
21
+ Object.defineProperty(exports, key, {
22
+ enumerable: true,
23
+ get: function get() {
24
+ return _debounce[key];
25
+ }
26
+ });
27
+ });
28
+ var _memoize = require("./memoize");
29
+ Object.keys(_memoize).forEach(function (key) {
30
+ if (key === "default" || key === "__esModule") return;
31
+ if (key in exports && exports[key] === _memoize[key]) return;
32
+ Object.defineProperty(exports, key, {
33
+ enumerable: true,
34
+ get: function get() {
35
+ return _memoize[key];
36
+ }
37
+ });
38
+ });
39
+ var _once = require("./once");
40
+ Object.keys(_once).forEach(function (key) {
41
+ if (key === "default" || key === "__esModule") return;
42
+ if (key in exports && exports[key] === _once[key]) return;
43
+ Object.defineProperty(exports, key, {
44
+ enumerable: true,
45
+ get: function get() {
46
+ return _once[key];
47
+ }
48
+ });
49
+ });
50
+ var _throttle = require("./throttle");
51
+ Object.keys(_throttle).forEach(function (key) {
52
+ if (key === "default" || key === "__esModule") return;
53
+ if (key in exports && exports[key] === _throttle[key]) return;
54
+ Object.defineProperty(exports, key, {
55
+ enumerable: true,
56
+ get: function get() {
57
+ return _throttle[key];
58
+ }
59
+ });
16
60
  });
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Options for the memoize function.
3
+ */
4
+ export interface MemoizeOptions<K> {
5
+ /** Maximum number of entries to store in the cache. */
6
+ maxSize?: number;
7
+ /** Custom function to generate cache keys from arguments. */
8
+ resolver?: (...arguments_: unknown[]) => K;
9
+ }
10
+ /**
11
+ * A memoized function with an exposed cache.
12
+ */
13
+ export interface MemoizedFunction<A extends unknown[], R, K = unknown> {
14
+ (...arguments_: A): R;
15
+ /** The underlying cache Map. */
16
+ cache: Map<K, R>;
17
+ }
18
+ /**
19
+ * Creates a memoized version of the provided function. Results are
20
+ * cached in a Map keyed by the first argument (or a custom resolver).
21
+ *
22
+ * @param function_ - The function to memoize.
23
+ * @param options - Configuration for cache behavior.
24
+ * @param options.maxSize - Maximum cache entries before evicting the oldest.
25
+ * @param options.resolver - Custom key resolver function.
26
+ * @returns The memoized function with an exposed cache property.
27
+ *
28
+ * @example
29
+ * ```typescript
30
+ * const memoized = memoize((n: number) => n * 2);
31
+ * memoized(5); // 10 (computed)
32
+ * memoized(5); // 10 (cached)
33
+ * memoized.cache.size; // 1
34
+ * ```
35
+ */
36
+ export declare const memoize: <A extends unknown[], R, K = unknown>(function_: (...arguments_: A) => R, options?: MemoizeOptions<K>) => MemoizedFunction<A, R, K>;
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.memoize = void 0;
7
+ /**
8
+ * Options for the memoize function.
9
+ */
10
+
11
+ /**
12
+ * A memoized function with an exposed cache.
13
+ */
14
+
15
+ /**
16
+ * Creates a memoized version of the provided function. Results are
17
+ * cached in a Map keyed by the first argument (or a custom resolver).
18
+ *
19
+ * @param function_ - The function to memoize.
20
+ * @param options - Configuration for cache behavior.
21
+ * @param options.maxSize - Maximum cache entries before evicting the oldest.
22
+ * @param options.resolver - Custom key resolver function.
23
+ * @returns The memoized function with an exposed cache property.
24
+ *
25
+ * @example
26
+ * ```typescript
27
+ * const memoized = memoize((n: number) => n * 2);
28
+ * memoized(5); // 10 (computed)
29
+ * memoized(5); // 10 (cached)
30
+ * memoized.cache.size; // 1
31
+ * ```
32
+ */
33
+ var memoize = exports.memoize = function memoize(function_) {
34
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
35
+ var maxSize = options.maxSize,
36
+ resolver = options.resolver;
37
+ var cache = new Map();
38
+ var memoized = resolver ? function () {
39
+ for (var _len = arguments.length, arguments_ = new Array(_len), _key = 0; _key < _len; _key++) {
40
+ arguments_[_key] = arguments[_key];
41
+ }
42
+ var key = resolver.apply(void 0, arguments_);
43
+ var cached = cache.get(key);
44
+ if (cached !== undefined) {
45
+ return cached;
46
+ }
47
+ var result = function_.apply(this, arguments_);
48
+ if (maxSize !== undefined && cache.size >= maxSize) {
49
+ var firstKey = cache.keys().next().value;
50
+ cache["delete"](firstKey);
51
+ }
52
+ cache.set(key, result);
53
+ return result;
54
+ } : function () {
55
+ for (var _len2 = arguments.length, arguments_ = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
56
+ arguments_[_key2] = arguments[_key2];
57
+ }
58
+ var key = arguments_[0];
59
+ var cached = cache.get(key);
60
+ if (cached !== undefined) {
61
+ return cached;
62
+ }
63
+ var result = function_.apply(this, arguments_);
64
+ if (maxSize !== undefined && cache.size >= maxSize) {
65
+ var firstKey = cache.keys().next().value;
66
+ cache["delete"](firstKey);
67
+ }
68
+ cache.set(key, result);
69
+ return result;
70
+ };
71
+ memoized.cache = cache;
72
+ return memoized;
73
+ };
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Creates a function that is restricted to be called only once.
3
+ * Subsequent calls return the result of the first invocation.
4
+ *
5
+ * @param function_ - The function to restrict.
6
+ * @returns A function that invokes the original only on its first call.
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * const initialize = once(() => {
11
+ * console.log("initialized");
12
+ * return 42;
13
+ * });
14
+ * initialize(); // logs "initialized", returns 42
15
+ * initialize(); // returns 42 (no log)
16
+ * ```
17
+ */
18
+ export declare const once: <A extends unknown[], R>(function_: (...arguments_: A) => R) => ((...arguments_: A) => R);
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.once = void 0;
7
+ /**
8
+ * Creates a function that is restricted to be called only once.
9
+ * Subsequent calls return the result of the first invocation.
10
+ *
11
+ * @param function_ - The function to restrict.
12
+ * @returns A function that invokes the original only on its first call.
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * const initialize = once(() => {
17
+ * console.log("initialized");
18
+ * return 42;
19
+ * });
20
+ * initialize(); // logs "initialized", returns 42
21
+ * initialize(); // returns 42 (no log)
22
+ * ```
23
+ */
24
+ var once = exports.once = function once(function_) {
25
+ var called = false;
26
+ var result;
27
+ return function () {
28
+ if (!called) {
29
+ called = true;
30
+ for (var _len = arguments.length, arguments_ = new Array(_len), _key = 0; _key < _len; _key++) {
31
+ arguments_[_key] = arguments[_key];
32
+ }
33
+ result = function_.apply(this, arguments_);
34
+ }
35
+ return result;
36
+ };
37
+ };
@@ -0,0 +1,25 @@
1
+ /**
2
+ * A throttled function with a cancel method.
3
+ */
4
+ export interface ThrottledFunction<T extends (...arguments_: unknown[]) => unknown> {
5
+ (...arguments_: Parameters<T>): void;
6
+ /** Cancels any pending throttled invocation. */
7
+ cancel: () => void;
8
+ }
9
+ /**
10
+ * Creates a throttled version of the provided function that only
11
+ * invokes it at most once per the specified wait period.
12
+ *
13
+ * @param function_ - The function to throttle.
14
+ * @param wait - The minimum time between invocations in milliseconds.
15
+ * @returns The throttled function with a cancel method.
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * const throttled = throttle(() => console.log("called"), 300);
20
+ * throttled();
21
+ * throttled();
22
+ * throttled.cancel();
23
+ * ```
24
+ */
25
+ export declare const throttle: <T extends (...arguments_: unknown[]) => unknown>(function_: T, wait: number) => ThrottledFunction<T>;