@pawells/typescript-common 2.0.0 → 2.1.5

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 (412) hide show
  1. package/README.md +350 -224
  2. package/{build → dist}/array/array-chunk.d.ts +1 -1
  3. package/{build → dist}/array/array-chunk.js +2 -3
  4. package/{build → dist}/array/array-compact.d.ts +1 -1
  5. package/{build → dist}/array/array-compact.js +1 -2
  6. package/{build → dist}/array/array-contains.d.ts +1 -1
  7. package/{build → dist}/array/array-contains.js +2 -3
  8. package/{build → dist}/array/array-count-by.d.ts +1 -1
  9. package/{build → dist}/array/array-count-by.js +2 -3
  10. package/{build → dist}/array/array-difference.d.ts +12 -5
  11. package/dist/array/array-difference.d.ts.map +1 -0
  12. package/dist/array/array-difference.js +70 -0
  13. package/dist/array/array-element.js +1 -0
  14. package/{build → dist}/array/array-filter.d.ts +1 -1
  15. package/{build → dist}/array/array-filter.js +1 -2
  16. package/{build → dist}/array/array-flatten.d.ts +2 -2
  17. package/{build → dist}/array/array-flatten.d.ts.map +1 -1
  18. package/{build → dist}/array/array-flatten.js +1 -2
  19. package/{build → dist}/array/array-group-by.d.ts +1 -1
  20. package/{build → dist}/array/array-group-by.d.ts.map +1 -1
  21. package/{build → dist}/array/array-group-by.js +10 -9
  22. package/{build → dist}/array/array-intersection.d.ts +12 -5
  23. package/dist/array/array-intersection.d.ts.map +1 -0
  24. package/dist/array/array-intersection.js +79 -0
  25. package/{build → dist}/array/array-partition.d.ts +1 -1
  26. package/{build → dist}/array/array-partition.js +2 -3
  27. package/{build → dist}/array/array-range.d.ts +1 -1
  28. package/{build → dist}/array/array-range.js +1 -2
  29. package/{build → dist}/array/array-sample.d.ts +2 -2
  30. package/{build → dist}/array/array-sample.js +3 -5
  31. package/{build → dist}/array/array-shuffle.d.ts +1 -1
  32. package/{build → dist}/array/array-shuffle.js +1 -2
  33. package/{build → dist}/array/array-sort-by.d.ts +1 -1
  34. package/{build → dist}/array/array-sort-by.js +1 -2
  35. package/{build → dist}/array/array-zip.d.ts +1 -1
  36. package/{build → dist}/array/array-zip.js +1 -2
  37. package/{build → dist}/array/assert.d.ts +5 -5
  38. package/{build → dist}/array/assert.d.ts.map +1 -1
  39. package/{build → dist}/array/assert.js +13 -14
  40. package/{build → dist}/array/index.js +0 -1
  41. package/{build → dist}/array/types.d.ts +20 -2
  42. package/{build → dist}/array/types.d.ts.map +1 -1
  43. package/dist/array/types.js +1 -0
  44. package/{build → dist}/array/unique.d.ts +1 -1
  45. package/{build → dist}/array/unique.js +1 -2
  46. package/dist/asserts/errors.d.ts.map +1 -0
  47. package/{build → dist}/asserts/errors.js +5 -3
  48. package/{build → dist}/asserts/generic.d.ts +23 -3
  49. package/dist/asserts/generic.d.ts.map +1 -0
  50. package/{build → dist}/asserts/generic.js +33 -7
  51. package/dist/asserts/index.d.ts +47 -0
  52. package/dist/asserts/index.d.ts.map +1 -0
  53. package/dist/asserts/index.js +46 -0
  54. package/{build → dist}/asserts/internal-utils.d.ts.map +1 -1
  55. package/{build → dist}/asserts/internal-utils.js +0 -1
  56. package/{build → dist}/asserts/types.d.ts +56 -17
  57. package/dist/asserts/types.d.ts.map +1 -0
  58. package/dist/asserts/types.js +1 -0
  59. package/{build → dist}/asserts/utils.d.ts +5 -21
  60. package/dist/asserts/utils.d.ts.map +1 -0
  61. package/{build → dist}/asserts/utils.js +12 -36
  62. package/{build → dist}/boolean/assert.d.ts +1 -2
  63. package/{build → dist}/boolean/assert.d.ts.map +1 -1
  64. package/{build → dist}/boolean/assert.js +1 -3
  65. package/dist/boolean/index.d.ts +13 -0
  66. package/dist/boolean/index.d.ts.map +1 -0
  67. package/dist/boolean/index.js +12 -0
  68. package/{build → dist}/enum/enum-entries.d.ts +1 -1
  69. package/dist/enum/enum-entries.d.ts.map +1 -0
  70. package/{build → dist}/enum/enum-entries.js +0 -1
  71. package/{build → dist}/enum/enum-key-by-value.d.ts +1 -1
  72. package/dist/enum/enum-key-by-value.d.ts.map +1 -0
  73. package/{build → dist}/enum/enum-key-by-value.js +0 -1
  74. package/{build → dist}/enum/enum-keys.js +0 -1
  75. package/{build → dist}/enum/enum-safe-value.d.ts +1 -1
  76. package/dist/enum/enum-safe-value.d.ts.map +1 -0
  77. package/{build → dist}/enum/enum-safe-value.js +0 -1
  78. package/{build → dist}/enum/enum-values.js +0 -1
  79. package/{build → dist}/enum/index.d.ts +1 -1
  80. package/dist/enum/index.d.ts.map +1 -0
  81. package/{build → dist}/enum/index.js +1 -2
  82. package/dist/enum/types.js +1 -0
  83. package/{build → dist}/enum/validate-enum-value.d.ts +1 -1
  84. package/dist/enum/validate-enum-value.d.ts.map +1 -0
  85. package/{build → dist}/enum/validate-enum-value.js +0 -1
  86. package/{build → dist}/function/compose.d.ts +6 -0
  87. package/dist/function/compose.d.ts.map +1 -0
  88. package/{build → dist}/function/compose.js +0 -1
  89. package/{build → dist}/function/debounce.d.ts +6 -0
  90. package/dist/function/debounce.d.ts.map +1 -0
  91. package/{build → dist}/function/debounce.js +6 -1
  92. package/{build → dist}/function/index.js +0 -1
  93. package/dist/function/memoize.d.ts +43 -0
  94. package/dist/function/memoize.d.ts.map +1 -0
  95. package/dist/function/memoize.js +59 -0
  96. package/{build → dist}/function/once.d.ts.map +1 -1
  97. package/{build → dist}/function/once.js +1 -1
  98. package/{build → dist}/function/sleep.js +0 -1
  99. package/{build → dist}/function/throttle.d.ts +7 -0
  100. package/dist/function/throttle.d.ts.map +1 -0
  101. package/{build → dist}/function/throttle.js +7 -1
  102. package/dist/function/types.d.ts +18 -0
  103. package/dist/function/types.d.ts.map +1 -0
  104. package/dist/function/types.js +1 -0
  105. package/dist/index.d.ts +11 -0
  106. package/dist/index.d.ts.map +1 -0
  107. package/dist/index.js +10 -0
  108. package/{build → dist}/lru-cache.d.ts +19 -0
  109. package/dist/lru-cache.d.ts.map +1 -0
  110. package/{build → dist}/lru-cache.js +24 -2
  111. package/{build → dist}/number/assert.js +0 -1
  112. package/dist/number/index.d.ts +13 -0
  113. package/dist/number/index.d.ts.map +1 -0
  114. package/dist/number/index.js +12 -0
  115. package/{build → dist}/object/assert-object.d.ts +5 -1
  116. package/{build → dist}/object/assert-object.d.ts.map +1 -1
  117. package/{build → dist}/object/assert-object.js +4 -1
  118. package/{build → dist}/object/assert.d.ts +1 -1
  119. package/dist/object/assert.d.ts.map +1 -0
  120. package/{build → dist}/object/assert.js +7 -29
  121. package/{build → dist}/object/clone.d.ts.map +1 -1
  122. package/{build → dist}/object/clone.js +8 -5
  123. package/{build → dist}/object/equals.d.ts.map +1 -1
  124. package/{build → dist}/object/equals.js +3 -7
  125. package/dist/object/filter-cached.d.ts +44 -0
  126. package/{build → dist}/object/filter-cached.d.ts.map +1 -1
  127. package/{build → dist}/object/filter-cached.js +41 -2
  128. package/{build → dist}/object/filter.d.ts.map +1 -1
  129. package/{build → dist}/object/filter.js +12 -5
  130. package/{build → dist}/object/has-circular-reference.d.ts.map +1 -1
  131. package/{build → dist}/object/has-circular-reference.js +4 -2
  132. package/{build → dist}/object/hash.d.ts +4 -0
  133. package/dist/object/hash.d.ts.map +1 -0
  134. package/{build → dist}/object/hash.js +20 -7
  135. package/{build → dist}/object/index.d.ts +2 -2
  136. package/{build → dist}/object/index.d.ts.map +1 -1
  137. package/{build → dist}/object/index.js +1 -2
  138. package/{build → dist}/object/json-circular-replacer.d.ts.map +1 -1
  139. package/{build → dist}/object/json-circular-replacer.js +0 -1
  140. package/{build → dist}/object/key-value-pairs.js +0 -1
  141. package/dist/object/map-cached.d.ts +31 -0
  142. package/dist/object/map-cached.d.ts.map +1 -0
  143. package/{build → dist}/object/map-cached.js +34 -6
  144. package/{build → dist}/object/map.js +0 -1
  145. package/{build → dist}/object/merge.d.ts.map +1 -1
  146. package/{build → dist}/object/merge.js +7 -7
  147. package/{build → dist}/object/object-diff.d.ts +2 -2
  148. package/{build → dist}/object/object-diff.d.ts.map +1 -1
  149. package/{build → dist}/object/object-diff.js +11 -5
  150. package/{build → dist}/object/object-flatten.d.ts +1 -1
  151. package/{build → dist}/object/object-flatten.d.ts.map +1 -1
  152. package/{build → dist}/object/object-flatten.js +6 -4
  153. package/{build → dist}/object/object-invert.js +0 -1
  154. package/{build → dist}/object/omit.js +0 -1
  155. package/{build → dist}/object/pick.js +0 -1
  156. package/{build → dist}/object/property-paths.js +6 -7
  157. package/dist/object/security-utils.d.ts +193 -0
  158. package/dist/object/security-utils.d.ts.map +1 -0
  159. package/dist/object/security-utils.js +297 -0
  160. package/{build → dist}/object/sort-keys.d.ts +1 -1
  161. package/{build → dist}/object/sort-keys.d.ts.map +1 -1
  162. package/{build → dist}/object/sort-keys.js +18 -11
  163. package/{build → dist}/object/types.d.ts +60 -19
  164. package/dist/object/types.d.ts.map +1 -0
  165. package/dist/object/types.js +1 -0
  166. package/{build → dist}/string/assert.d.ts +5 -0
  167. package/dist/string/assert.d.ts.map +1 -0
  168. package/{build → dist}/string/assert.js +11 -1
  169. package/{build → dist}/string/case-conversion.js +0 -1
  170. package/{build → dist}/string/comparison.d.ts.map +1 -1
  171. package/{build → dist}/string/comparison.js +3 -1
  172. package/{build → dist}/string/formatting.d.ts.map +1 -1
  173. package/{build → dist}/string/formatting.js +5 -3
  174. package/{build → dist}/string/index.js +0 -1
  175. package/{build → dist}/string/transformation.js +0 -1
  176. package/dist/string/types.d.ts +118 -0
  177. package/dist/string/types.d.ts.map +1 -0
  178. package/dist/string/types.js +1 -0
  179. package/{build → dist}/string/validation.js +0 -1
  180. package/dist/time/elapsed-time/constants.d.ts +36 -0
  181. package/{build → dist}/time/elapsed-time/constants.d.ts.map +1 -1
  182. package/{build → dist}/time/elapsed-time/constants.js +32 -3
  183. package/{build → dist}/time/elapsed-time/elapsed-time.d.ts +67 -15
  184. package/dist/time/elapsed-time/elapsed-time.d.ts.map +1 -0
  185. package/{build → dist}/time/elapsed-time/elapsed-time.js +172 -78
  186. package/dist/time/elapsed-time/types.d.ts +336 -0
  187. package/dist/time/elapsed-time/types.d.ts.map +1 -0
  188. package/dist/time/elapsed-time/types.js +1 -0
  189. package/{build → dist}/time/elapsed-time/utils.d.ts +1 -1
  190. package/dist/time/elapsed-time/utils.d.ts.map +1 -0
  191. package/{build → dist}/time/elapsed-time/utils.js +0 -1
  192. package/{build → dist}/time/index.d.ts +0 -2
  193. package/{build → dist}/time/index.d.ts.map +1 -1
  194. package/{build → dist}/time/index.js +0 -2
  195. package/{build → dist}/time/stopwatch/entry.d.ts +1 -1
  196. package/dist/time/stopwatch/entry.d.ts.map +1 -0
  197. package/{build → dist}/time/stopwatch/entry.js +0 -1
  198. package/{build → dist}/time/stopwatch/stopwatch.d.ts +9 -3
  199. package/dist/time/stopwatch/stopwatch.d.ts.map +1 -0
  200. package/{build → dist}/time/stopwatch/stopwatch.js +9 -4
  201. package/package.json +58 -81
  202. package/LICENSE +0 -21
  203. package/build/array/array-chunk.js.map +0 -1
  204. package/build/array/array-compact.js.map +0 -1
  205. package/build/array/array-contains.js.map +0 -1
  206. package/build/array/array-count-by.js.map +0 -1
  207. package/build/array/array-difference.d.ts.map +0 -1
  208. package/build/array/array-difference.js +0 -51
  209. package/build/array/array-difference.js.map +0 -1
  210. package/build/array/array-element.js +0 -2
  211. package/build/array/array-element.js.map +0 -1
  212. package/build/array/array-filter.js.map +0 -1
  213. package/build/array/array-flatten.js.map +0 -1
  214. package/build/array/array-group-by.js.map +0 -1
  215. package/build/array/array-intersection.d.ts.map +0 -1
  216. package/build/array/array-intersection.js +0 -57
  217. package/build/array/array-intersection.js.map +0 -1
  218. package/build/array/array-partition.js.map +0 -1
  219. package/build/array/array-range.js.map +0 -1
  220. package/build/array/array-sample.js.map +0 -1
  221. package/build/array/array-shuffle.js.map +0 -1
  222. package/build/array/array-sort-by.js.map +0 -1
  223. package/build/array/array-zip.js.map +0 -1
  224. package/build/array/assert.js.map +0 -1
  225. package/build/array/index.js.map +0 -1
  226. package/build/array/types.js +0 -2
  227. package/build/array/types.js.map +0 -1
  228. package/build/array/unique.js.map +0 -1
  229. package/build/asserts/errors.d.ts.map +0 -1
  230. package/build/asserts/errors.js.map +0 -1
  231. package/build/asserts/generic.d.ts.map +0 -1
  232. package/build/asserts/generic.js.map +0 -1
  233. package/build/asserts/index.d.ts +0 -41
  234. package/build/asserts/index.d.ts.map +0 -1
  235. package/build/asserts/index.js +0 -41
  236. package/build/asserts/index.js.map +0 -1
  237. package/build/asserts/internal-utils.js.map +0 -1
  238. package/build/asserts/types.d.ts.map +0 -1
  239. package/build/asserts/types.js +0 -2
  240. package/build/asserts/types.js.map +0 -1
  241. package/build/asserts/utils.d.ts.map +0 -1
  242. package/build/asserts/utils.js.map +0 -1
  243. package/build/boolean/assert.js.map +0 -1
  244. package/build/boolean/index.d.ts +0 -9
  245. package/build/boolean/index.d.ts.map +0 -1
  246. package/build/boolean/index.js +0 -9
  247. package/build/boolean/index.js.map +0 -1
  248. package/build/enum/enum-entries.d.ts.map +0 -1
  249. package/build/enum/enum-entries.js.map +0 -1
  250. package/build/enum/enum-key-by-value.d.ts.map +0 -1
  251. package/build/enum/enum-key-by-value.js.map +0 -1
  252. package/build/enum/enum-keys.js.map +0 -1
  253. package/build/enum/enum-safe-value.d.ts.map +0 -1
  254. package/build/enum/enum-safe-value.js.map +0 -1
  255. package/build/enum/enum-values.js.map +0 -1
  256. package/build/enum/index.d.ts.map +0 -1
  257. package/build/enum/index.js.map +0 -1
  258. package/build/enum/types.js +0 -2
  259. package/build/enum/types.js.map +0 -1
  260. package/build/enum/validate-enum-value.d.ts.map +0 -1
  261. package/build/enum/validate-enum-value.js.map +0 -1
  262. package/build/function/compose.d.ts.map +0 -1
  263. package/build/function/compose.js.map +0 -1
  264. package/build/function/debounce.d.ts.map +0 -1
  265. package/build/function/debounce.js.map +0 -1
  266. package/build/function/index.js.map +0 -1
  267. package/build/function/memoize.d.ts +0 -30
  268. package/build/function/memoize.d.ts.map +0 -1
  269. package/build/function/memoize.js +0 -44
  270. package/build/function/memoize.js.map +0 -1
  271. package/build/function/once.js.map +0 -1
  272. package/build/function/sleep.js.map +0 -1
  273. package/build/function/throttle.d.ts.map +0 -1
  274. package/build/function/throttle.js.map +0 -1
  275. package/build/function/types.d.ts +0 -5
  276. package/build/function/types.d.ts.map +0 -1
  277. package/build/function/types.js +0 -2
  278. package/build/function/types.js.map +0 -1
  279. package/build/index.d.ts +0 -38
  280. package/build/index.d.ts.map +0 -1
  281. package/build/index.js +0 -64
  282. package/build/index.js.map +0 -1
  283. package/build/lru-cache.d.ts.map +0 -1
  284. package/build/lru-cache.js.map +0 -1
  285. package/build/number/assert.js.map +0 -1
  286. package/build/number/index.d.ts +0 -9
  287. package/build/number/index.d.ts.map +0 -1
  288. package/build/number/index.js +0 -9
  289. package/build/number/index.js.map +0 -1
  290. package/build/object/assert-object.js.map +0 -1
  291. package/build/object/assert.d.ts.map +0 -1
  292. package/build/object/assert.js.map +0 -1
  293. package/build/object/clone.js.map +0 -1
  294. package/build/object/equals.js.map +0 -1
  295. package/build/object/filter-cached.d.ts +0 -21
  296. package/build/object/filter-cached.js.map +0 -1
  297. package/build/object/filter.js.map +0 -1
  298. package/build/object/has-circular-reference.js.map +0 -1
  299. package/build/object/hash.d.ts.map +0 -1
  300. package/build/object/hash.js.map +0 -1
  301. package/build/object/index.js.map +0 -1
  302. package/build/object/json-circular-replacer.js.map +0 -1
  303. package/build/object/key-value-pairs.js.map +0 -1
  304. package/build/object/map-cached.d.ts +0 -20
  305. package/build/object/map-cached.d.ts.map +0 -1
  306. package/build/object/map-cached.js.map +0 -1
  307. package/build/object/map.js.map +0 -1
  308. package/build/object/merge.js.map +0 -1
  309. package/build/object/object-diff.js.map +0 -1
  310. package/build/object/object-flatten.js.map +0 -1
  311. package/build/object/object-invert.js.map +0 -1
  312. package/build/object/omit.js.map +0 -1
  313. package/build/object/pick.js.map +0 -1
  314. package/build/object/property-paths.js.map +0 -1
  315. package/build/object/security-utils.d.ts +0 -59
  316. package/build/object/security-utils.d.ts.map +0 -1
  317. package/build/object/security-utils.js +0 -161
  318. package/build/object/security-utils.js.map +0 -1
  319. package/build/object/sort-keys.js.map +0 -1
  320. package/build/object/types.d.ts.map +0 -1
  321. package/build/object/types.js +0 -6
  322. package/build/object/types.js.map +0 -1
  323. package/build/string/assert.d.ts.map +0 -1
  324. package/build/string/assert.js.map +0 -1
  325. package/build/string/case-conversion.js.map +0 -1
  326. package/build/string/comparison.js.map +0 -1
  327. package/build/string/formatting.js.map +0 -1
  328. package/build/string/index.js.map +0 -1
  329. package/build/string/transformation.js.map +0 -1
  330. package/build/string/types.d.ts +0 -44
  331. package/build/string/types.d.ts.map +0 -1
  332. package/build/string/types.js +0 -2
  333. package/build/string/types.js.map +0 -1
  334. package/build/string/validation.js.map +0 -1
  335. package/build/time/elapsed-time/constants.d.ts +0 -10
  336. package/build/time/elapsed-time/constants.js.map +0 -1
  337. package/build/time/elapsed-time/elapsed-time.d.ts.map +0 -1
  338. package/build/time/elapsed-time/elapsed-time.js.map +0 -1
  339. package/build/time/elapsed-time/types.d.ts +0 -150
  340. package/build/time/elapsed-time/types.d.ts.map +0 -1
  341. package/build/time/elapsed-time/types.js +0 -2
  342. package/build/time/elapsed-time/types.js.map +0 -1
  343. package/build/time/elapsed-time/utils.d.ts.map +0 -1
  344. package/build/time/elapsed-time/utils.js.map +0 -1
  345. package/build/time/index.js.map +0 -1
  346. package/build/time/stopwatch/entry-types.d.ts +0 -13
  347. package/build/time/stopwatch/entry-types.d.ts.map +0 -1
  348. package/build/time/stopwatch/entry-types.js +0 -2
  349. package/build/time/stopwatch/entry-types.js.map +0 -1
  350. package/build/time/stopwatch/entry.d.ts.map +0 -1
  351. package/build/time/stopwatch/entry.js.map +0 -1
  352. package/build/time/stopwatch/stopwatch.d.ts.map +0 -1
  353. package/build/time/stopwatch/stopwatch.js.map +0 -1
  354. /package/{build → dist}/array/array-chunk.d.ts.map +0 -0
  355. /package/{build → dist}/array/array-compact.d.ts.map +0 -0
  356. /package/{build → dist}/array/array-contains.d.ts.map +0 -0
  357. /package/{build → dist}/array/array-count-by.d.ts.map +0 -0
  358. /package/{build → dist}/array/array-element.d.ts +0 -0
  359. /package/{build → dist}/array/array-element.d.ts.map +0 -0
  360. /package/{build → dist}/array/array-filter.d.ts.map +0 -0
  361. /package/{build → dist}/array/array-partition.d.ts.map +0 -0
  362. /package/{build → dist}/array/array-range.d.ts.map +0 -0
  363. /package/{build → dist}/array/array-sample.d.ts.map +0 -0
  364. /package/{build → dist}/array/array-shuffle.d.ts.map +0 -0
  365. /package/{build → dist}/array/array-sort-by.d.ts.map +0 -0
  366. /package/{build → dist}/array/array-zip.d.ts.map +0 -0
  367. /package/{build → dist}/array/index.d.ts +0 -0
  368. /package/{build → dist}/array/index.d.ts.map +0 -0
  369. /package/{build → dist}/array/unique.d.ts.map +0 -0
  370. /package/{build → dist}/asserts/errors.d.ts +0 -0
  371. /package/{build → dist}/asserts/internal-utils.d.ts +0 -0
  372. /package/{build → dist}/enum/enum-keys.d.ts +0 -0
  373. /package/{build → dist}/enum/enum-keys.d.ts.map +0 -0
  374. /package/{build → dist}/enum/enum-values.d.ts +0 -0
  375. /package/{build → dist}/enum/enum-values.d.ts.map +0 -0
  376. /package/{build → dist}/enum/types.d.ts +0 -0
  377. /package/{build → dist}/enum/types.d.ts.map +0 -0
  378. /package/{build → dist}/function/index.d.ts +0 -0
  379. /package/{build → dist}/function/index.d.ts.map +0 -0
  380. /package/{build → dist}/function/once.d.ts +0 -0
  381. /package/{build → dist}/function/sleep.d.ts +0 -0
  382. /package/{build → dist}/function/sleep.d.ts.map +0 -0
  383. /package/{build → dist}/number/assert.d.ts +0 -0
  384. /package/{build → dist}/number/assert.d.ts.map +0 -0
  385. /package/{build → dist}/object/clone.d.ts +0 -0
  386. /package/{build → dist}/object/equals.d.ts +0 -0
  387. /package/{build → dist}/object/filter.d.ts +0 -0
  388. /package/{build → dist}/object/has-circular-reference.d.ts +0 -0
  389. /package/{build → dist}/object/json-circular-replacer.d.ts +0 -0
  390. /package/{build → dist}/object/key-value-pairs.d.ts +0 -0
  391. /package/{build → dist}/object/key-value-pairs.d.ts.map +0 -0
  392. /package/{build → dist}/object/map.d.ts +0 -0
  393. /package/{build → dist}/object/map.d.ts.map +0 -0
  394. /package/{build → dist}/object/merge.d.ts +0 -0
  395. /package/{build → dist}/object/object-invert.d.ts +0 -0
  396. /package/{build → dist}/object/object-invert.d.ts.map +0 -0
  397. /package/{build → dist}/object/omit.d.ts +0 -0
  398. /package/{build → dist}/object/omit.d.ts.map +0 -0
  399. /package/{build → dist}/object/pick.d.ts +0 -0
  400. /package/{build → dist}/object/pick.d.ts.map +0 -0
  401. /package/{build → dist}/object/property-paths.d.ts +0 -0
  402. /package/{build → dist}/object/property-paths.d.ts.map +0 -0
  403. /package/{build → dist}/string/case-conversion.d.ts +0 -0
  404. /package/{build → dist}/string/case-conversion.d.ts.map +0 -0
  405. /package/{build → dist}/string/comparison.d.ts +0 -0
  406. /package/{build → dist}/string/formatting.d.ts +0 -0
  407. /package/{build → dist}/string/index.d.ts +0 -0
  408. /package/{build → dist}/string/index.d.ts.map +0 -0
  409. /package/{build → dist}/string/transformation.d.ts +0 -0
  410. /package/{build → dist}/string/transformation.d.ts.map +0 -0
  411. /package/{build → dist}/string/validation.d.ts +0 -0
  412. /package/{build → dist}/string/validation.d.ts.map +0 -0
@@ -1,30 +1,4 @@
1
- /**
2
- * Gets the actual type of a value for error messages.
3
- * Handles primitives, objects, arrays, null, and undefined.
4
- *
5
- * @param value - The value to get the type of
6
- * @returns A string representation suitable for error messages
7
- * @internal Used by assertion functions for consistent type naming
8
- *
9
- * @example
10
- * ```typescript
11
- * GetActualType(null); // "null"
12
- * GetActualType(undefined); // "undefined"
13
- * GetActualType([1, 2, 3]); // "array"
14
- * GetActualType({a: 1}); // "object"
15
- * GetActualType("hello"); // "string"
16
- * GetActualType(42); // "number"
17
- * ```
18
- */
19
- export function GetActualType(value) {
20
- if (value === null)
21
- return 'null';
22
- if (value === undefined)
23
- return 'undefined';
24
- if (Array.isArray(value))
25
- return 'array';
26
- return typeof value;
27
- }
1
+ import { safeDisplay, GetValueType } from './generic.js';
28
2
  /**
29
3
  * Throws an exception using the configured error class and message.
30
4
  *
@@ -35,6 +9,7 @@ export function GetActualType(value) {
35
9
  *
36
10
  * @param exception - Exception configuration containing error class and/or message
37
11
  * @throws {Error} The configured error class with the specified message, or generic Error if no class specified
12
+ * @internal
38
13
  *
39
14
  * @example
40
15
  * ```typescript
@@ -70,6 +45,7 @@ export function ThrowException(exception) {
70
45
  * @param exception - Exception configuration object to modify
71
46
  * @param errorClass - The error class constructor to set as default
72
47
  * @param force - Whether to override existing error class configuration (default: false)
48
+ * @internal
73
49
  *
74
50
  * @example
75
51
  * ```typescript
@@ -104,6 +80,7 @@ export function SetExceptionClass(exception, errorClass, force = false) {
104
80
  * @param exception - Exception configuration object to modify
105
81
  * @param message - The error message to set as default
106
82
  * @param force - Whether to override existing error message configuration (default: false)
83
+ * @internal
107
84
  *
108
85
  * @example
109
86
  * ```typescript
@@ -150,33 +127,32 @@ export function AssertValueType(value, expectedType, exception) {
150
127
  }
151
128
  if (expectedType === 'array') {
152
129
  if (!Array.isArray(value)) {
153
- const actualType = GetActualType(value);
154
- SetExceptionMessage(exception, `Expected array but received ${actualType}: ${String(value)}`);
130
+ const actualType = GetValueType(value);
131
+ SetExceptionMessage(exception, `Expected array but received ${actualType}: ${safeDisplay(value)}`);
155
132
  ThrowException(exception);
156
133
  }
157
134
  return;
158
135
  }
159
136
  if (expectedType === 'object') {
160
137
  if (typeof value !== 'object') {
161
- const actualType = GetActualType(value);
162
- SetExceptionMessage(exception, `Expected object but received ${actualType}: ${String(value)}`);
138
+ const actualType = GetValueType(value);
139
+ SetExceptionMessage(exception, `Expected object but received ${actualType}: ${safeDisplay(value)}`);
163
140
  ThrowException(exception);
164
141
  }
165
142
  return;
166
143
  }
167
144
  if (expectedType === 'number') {
168
145
  if (typeof value !== 'number' || Number.isNaN(value)) {
169
- const actualType = typeof value === 'number' ? 'NaN' : GetActualType(value);
170
- SetExceptionMessage(exception, `Expected number but received ${actualType}: ${JSON.stringify(value)}`);
146
+ const actualType = typeof value === 'number' ? 'NaN' : GetValueType(value);
147
+ SetExceptionMessage(exception, `Expected number but received ${actualType}: ${safeDisplay(value)}`);
171
148
  ThrowException(exception);
172
149
  }
173
150
  return;
174
151
  }
175
152
  // For string and boolean
176
- const actualType = GetActualType(value);
153
+ const actualType = GetValueType(value);
177
154
  if (actualType !== expectedType) {
178
- SetExceptionMessage(exception, `Expected ${expectedType} but received ${actualType}: ${String(value)}`);
155
+ SetExceptionMessage(exception, `Expected ${expectedType} but received ${actualType}: ${safeDisplay(value)}`);
179
156
  ThrowException(exception);
180
157
  }
181
158
  }
182
- //# sourceMappingURL=utils.js.map
@@ -24,8 +24,7 @@ export declare class BooleanError extends SimpleError {
24
24
  * @param value - The value to validate and assert as a boolean primitive
25
25
  * @param exception - Optional exception configuration for custom error handling.
26
26
  * Can include custom error message, error type, or other metadata.
27
- * @throws {Error} When value is not a boolean primitive. The specific error type
28
- * depends on the exception configuration provided.
27
+ * @throws {BooleanError} When value is not a boolean primitive
29
28
  *
30
29
  * @example
31
30
  * Basic usage with valid boolean values:
@@ -1 +1 @@
1
- {"version":3,"file":"assert.d.ts","sourceRoot":"","sources":["../../src/boolean/assert.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD;;;;;GAKG;AACH,qBAAa,YAAa,SAAQ,WAAW;gBAChC,OAAO,CAAC,EAAE,MAAM;CAG5B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,GAAE,gBAAqB,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,CAGxG"}
1
+ {"version":3,"file":"assert.d.ts","sourceRoot":"","sources":["../../src/boolean/assert.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD;;;;;GAKG;AACH,qBAAa,YAAa,SAAQ,WAAW;gBAChC,OAAO,CAAC,EAAE,MAAM;CAG5B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,GAAE,gBAAqB,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,CAGxG"}
@@ -26,8 +26,7 @@ export class BooleanError extends SimpleError {
26
26
  * @param value - The value to validate and assert as a boolean primitive
27
27
  * @param exception - Optional exception configuration for custom error handling.
28
28
  * Can include custom error message, error type, or other metadata.
29
- * @throws {Error} When value is not a boolean primitive. The specific error type
30
- * depends on the exception configuration provided.
29
+ * @throws {BooleanError} When value is not a boolean primitive
31
30
  *
32
31
  * @example
33
32
  * Basic usage with valid boolean values:
@@ -69,4 +68,3 @@ export function AssertBoolean(value, exception = {}) {
69
68
  SetExceptionClass(exception, BooleanError);
70
69
  AssertValueType(value, 'boolean', exception);
71
70
  }
72
- //# sourceMappingURL=assert.js.map
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Boolean assertion functions and types.
3
+ *
4
+ * Provides assertion helpers for validating boolean values at runtime.
5
+ *
6
+ * Currently contains only assertion utilities. This module structure is designed
7
+ * to accommodate additional boolean utilities in the future (e.g., conversion,
8
+ * parsing functions).
9
+ *
10
+ * @module boolean
11
+ */
12
+ export * from './assert.js';
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/boolean/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,cAAc,aAAa,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Boolean assertion functions and types.
3
+ *
4
+ * Provides assertion helpers for validating boolean values at runtime.
5
+ *
6
+ * Currently contains only assertion utilities. This module structure is designed
7
+ * to accommodate additional boolean utilities in the future (e.g., conversion,
8
+ * parsing functions).
9
+ *
10
+ * @module boolean
11
+ */
12
+ export * from './assert.js';
@@ -1,4 +1,4 @@
1
- import { TEnumType, TEnumValue } from './types.js';
1
+ import type { TEnumType, TEnumValue } from './types.js';
2
2
  /**
3
3
  * Returns non-numeric key-value pairs from an enum.
4
4
  *
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enum-entries.d.ts","sourceRoot":"","sources":["../../src/enum/enum-entries.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExD;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,CAIzF"}
@@ -16,4 +16,3 @@ export function EnumEntries(e) {
16
16
  return [];
17
17
  return Object.entries(e).filter(([key]) => Number.isNaN(Number(key)));
18
18
  }
19
- //# sourceMappingURL=enum-entries.js.map
@@ -1,4 +1,4 @@
1
- import { TEnumType, TEnumValue } from './types.js';
1
+ import type { TEnumType, TEnumValue } from './types.js';
2
2
  /**
3
3
  * Gets the enum key for a given value.
4
4
  *
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enum-key-by-value.d.ts","sourceRoot":"","sources":["../../src/enum/enum-key-by-value.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAGxD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS,CAQ3G"}
@@ -23,4 +23,3 @@ export function EnumKeyByValue(e, value) {
23
23
  return found[0];
24
24
  return undefined;
25
25
  }
26
- //# sourceMappingURL=enum-key-by-value.js.map
@@ -20,4 +20,3 @@ export function EnumKeys(obj) {
20
20
  return [];
21
21
  return Object.keys(obj).filter((k) => Number.isNaN(Number(k)));
22
22
  }
23
- //# sourceMappingURL=enum-keys.js.map
@@ -1,4 +1,4 @@
1
- import { TEnumType, TEnumValue } from './types.js';
1
+ import type { TEnumType, TEnumValue } from './types.js';
2
2
  /**
3
3
  * Gets an enum value safely, returning a fallback if the value is not a valid enum member.
4
4
  *
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enum-safe-value.d.ts","sourceRoot":"","sources":["../../src/enum/enum-safe-value.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAGxD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,GAAG,UAAU,CAExH"}
@@ -18,4 +18,3 @@ import { ValidateEnumValue } from './validate-enum-value.js';
18
18
  export function EnumSafeValue(e, value, fallback) {
19
19
  return ValidateEnumValue(e, value) ? value : fallback;
20
20
  }
21
- //# sourceMappingURL=enum-safe-value.js.map
@@ -22,4 +22,3 @@ export function EnumValues(enumObj) {
22
22
  .filter(key => Number.isNaN(Number(key))) // Filter out reverse mappings
23
23
  .map(key => enumObj[key]);
24
24
  }
25
- //# sourceMappingURL=enum-values.js.map
@@ -1,4 +1,3 @@
1
- export * from './types.js';
2
1
  /**
3
2
  * Enum utility functions.
4
3
  *
@@ -8,6 +7,7 @@ export * from './types.js';
8
7
  *
9
8
  * @module enum
10
9
  */
10
+ export * from './types.js';
11
11
  export * from './enum-keys.js';
12
12
  export * from './enum-values.js';
13
13
  export * from './enum-entries.js';
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/enum/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC"}
@@ -1,4 +1,3 @@
1
- export * from './types.js';
2
1
  /**
3
2
  * Enum utility functions.
4
3
  *
@@ -8,10 +7,10 @@ export * from './types.js';
8
7
  *
9
8
  * @module enum
10
9
  */
10
+ export * from './types.js';
11
11
  export * from './enum-keys.js';
12
12
  export * from './enum-values.js';
13
13
  export * from './enum-entries.js';
14
14
  export * from './validate-enum-value.js';
15
15
  export * from './enum-key-by-value.js';
16
16
  export * from './enum-safe-value.js';
17
- //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ export {};
@@ -1,4 +1,4 @@
1
- import { TEnumType, TEnumValue } from './types.js';
1
+ import type { TEnumType, TEnumValue } from './types.js';
2
2
  /**
3
3
  * Checks if a value is a valid member of the given enum.
4
4
  *
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-enum-value.d.ts","sourceRoot":"","sources":["../../src/enum/validate-enum-value.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAGxD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAKnG"}
@@ -20,4 +20,3 @@ export function ValidateEnumValue(e, value) {
20
20
  const possibleValues = EnumValues(e);
21
21
  return possibleValues.includes(value);
22
22
  }
23
- //# sourceMappingURL=validate-enum-value.js.map
@@ -5,6 +5,9 @@ import type { TAnyFunction } from './types.js';
5
5
  * Overloads are provided for up to five functions with distinct types.
6
6
  * For same-type pipelines of any length, use the variadic form.
7
7
  *
8
+ * @param fns - One or more functions to compose
9
+ * @returns A function that applies the input through the composed pipeline
10
+ *
8
11
  * @example
9
12
  * ```typescript
10
13
  * const process = Compose(trim, toLowerCase, removeSpaces);
@@ -23,6 +26,9 @@ export declare function Compose(...fns: TAnyFunction[]): TAnyFunction;
23
26
  * Overloads are provided for up to five functions with distinct types.
24
27
  * For same-type pipelines of any length, use the variadic form.
25
28
  *
29
+ * @param fns - One or more functions to pipe
30
+ * @returns A function that applies the input through the piped pipeline
31
+ *
26
32
  * @example
27
33
  * ```typescript
28
34
  * const process = Pipe(trim, toLowerCase, removeSpaces);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compose.d.ts","sourceRoot":"","sources":["../../src/function/compose.ts"],"names":[],"mappings":"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"}
@@ -4,4 +4,3 @@ export function Compose(...fns) {
4
4
  export function Pipe(...fns) {
5
5
  return (arg) => fns.reduce((v, fn) => fn(v), arg);
6
6
  }
7
- //# sourceMappingURL=compose.js.map
@@ -6,6 +6,12 @@ import type { TAnyFunction } from './types.js';
6
6
  * The returned function also exposes a `.cancel()` method to discard any
7
7
  * pending invocation.
8
8
  *
9
+ * @remarks
10
+ * Debounce differs from throttle in that it **delays execution** until silence.
11
+ * Each call resets the timer; the function executes only after `ms` milliseconds
12
+ * of inactivity. Throttle, by contrast, limits calls to **at most once per `ms` milliseconds**
13
+ * regardless of how frequently calls are made.
14
+ *
9
15
  * @template T - The wrapped function type
10
16
  * @param fn - The function to debounce
11
17
  * @param ms - Delay in milliseconds
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debounce.d.ts","sourceRoot":"","sources":["../../src/function/debounce.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,YAAY,EAC9C,EAAE,EAAE,CAAC,EACL,EAAE,EAAE,MAAM,GACR,CAAC,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG;IAAE,MAAM,EAAE,MAAM,IAAI,CAAA;CAAE,CAiB7D"}
@@ -5,6 +5,12 @@
5
5
  * The returned function also exposes a `.cancel()` method to discard any
6
6
  * pending invocation.
7
7
  *
8
+ * @remarks
9
+ * Debounce differs from throttle in that it **delays execution** until silence.
10
+ * Each call resets the timer; the function executes only after `ms` milliseconds
11
+ * of inactivity. Throttle, by contrast, limits calls to **at most once per `ms` milliseconds**
12
+ * regardless of how frequently calls are made.
13
+ *
8
14
  * @template T - The wrapped function type
9
15
  * @param fn - The function to debounce
10
16
  * @param ms - Delay in milliseconds
@@ -34,4 +40,3 @@ export function Debounce(fn, ms) {
34
40
  };
35
41
  return debounced;
36
42
  }
37
- //# sourceMappingURL=debounce.js.map
@@ -13,4 +13,3 @@ export * from './memoize.js';
13
13
  export * from './once.js';
14
14
  export * from './compose.js';
15
15
  export * from './sleep.js';
16
- //# sourceMappingURL=index.js.map
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Returns a memoized version of `fn` that caches results by serialising its
3
+ * arguments with `JSON.stringify` (or a custom `keyFn`).
4
+ *
5
+ * Only suitable for **pure functions** with serialisable arguments.
6
+ *
7
+ * Uses an LRU (Least Recently Used) eviction policy: when the cache reaches
8
+ * `maxCacheSize`, the entry that was accessed least recently is evicted.
9
+ *
10
+ * @template T - The function type to memoize
11
+ * @param fn - The function to memoize
12
+ * @param keyFn - Optional custom cache key function. If not provided, arguments are serialized with JSON.stringify
13
+ * @param maxCacheSize - Maximum number of cached results before LRU eviction (default: 1000)
14
+ * @returns A memoized function with the same signature as `fn`
15
+ *
16
+ * @warning Do not memoize functions with sensitive parameters (passwords, tokens, API keys).
17
+ * The cache stores return values keyed by serialized arguments, which could expose sensitive
18
+ * data if the cache is inspected or if the keyFn inadvertently includes sensitive data
19
+ * in the cache key. For functions handling sensitive data, consider:
20
+ * - Not memoizing at all
21
+ * - Using a custom keyFn that excludes sensitive parameters
22
+ * - Implementing manual cache invalidation after processing sensitive data
23
+ *
24
+ * @example
25
+ * ```typescript
26
+ * const expensiveCalc = Memoize((n: number) => n * n);
27
+ * expensiveCalc(4); // computed
28
+ * expensiveCalc(4); // cached → same value returned immediately
29
+ *
30
+ * // Custom key function:
31
+ * const getUser = Memoize(fetchUser, (id) => `user:${id}`);
32
+ *
33
+ * // With custom cache size:
34
+ * const cached = Memoize(fn, undefined, 500);
35
+ *
36
+ * const add = (a: number, b: number) => a + b;
37
+ * const cachedAdd = Memoize(add);
38
+ * console.log(cachedAdd(1, 2)); // Computes: 3
39
+ * console.log(cachedAdd(1, 2)); // Returns cached result: 3
40
+ * ```
41
+ */
42
+ export declare function Memoize<T extends (...args: any[]) => any>(fn: T, keyFn?: (...args: Parameters<T>) => string, maxCacheSize?: number): T;
43
+ //# sourceMappingURL=memoize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memoize.d.ts","sourceRoot":"","sources":["../../src/function/memoize.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH,wBAAgB,OAAO,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EACxD,EAAE,EAAE,CAAC,EACL,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,MAAM,EAC1C,YAAY,SAAO,GACjB,CAAC,CAkBH"}
@@ -0,0 +1,59 @@
1
+ import { LRUCache } from '../lru-cache.js';
2
+ /**
3
+ * Returns a memoized version of `fn` that caches results by serialising its
4
+ * arguments with `JSON.stringify` (or a custom `keyFn`).
5
+ *
6
+ * Only suitable for **pure functions** with serialisable arguments.
7
+ *
8
+ * Uses an LRU (Least Recently Used) eviction policy: when the cache reaches
9
+ * `maxCacheSize`, the entry that was accessed least recently is evicted.
10
+ *
11
+ * @template T - The function type to memoize
12
+ * @param fn - The function to memoize
13
+ * @param keyFn - Optional custom cache key function. If not provided, arguments are serialized with JSON.stringify
14
+ * @param maxCacheSize - Maximum number of cached results before LRU eviction (default: 1000)
15
+ * @returns A memoized function with the same signature as `fn`
16
+ *
17
+ * @warning Do not memoize functions with sensitive parameters (passwords, tokens, API keys).
18
+ * The cache stores return values keyed by serialized arguments, which could expose sensitive
19
+ * data if the cache is inspected or if the keyFn inadvertently includes sensitive data
20
+ * in the cache key. For functions handling sensitive data, consider:
21
+ * - Not memoizing at all
22
+ * - Using a custom keyFn that excludes sensitive parameters
23
+ * - Implementing manual cache invalidation after processing sensitive data
24
+ *
25
+ * @example
26
+ * ```typescript
27
+ * const expensiveCalc = Memoize((n: number) => n * n);
28
+ * expensiveCalc(4); // computed
29
+ * expensiveCalc(4); // cached → same value returned immediately
30
+ *
31
+ * // Custom key function:
32
+ * const getUser = Memoize(fetchUser, (id) => `user:${id}`);
33
+ *
34
+ * // With custom cache size:
35
+ * const cached = Memoize(fn, undefined, 500);
36
+ *
37
+ * const add = (a: number, b: number) => a + b;
38
+ * const cachedAdd = Memoize(add);
39
+ * console.log(cachedAdd(1, 2)); // Computes: 3
40
+ * console.log(cachedAdd(1, 2)); // Returns cached result: 3
41
+ * ```
42
+ */
43
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
44
+ export function Memoize(fn, keyFn, maxCacheSize = 1000) {
45
+ const cache = new LRUCache(maxCacheSize);
46
+ return function memoized(...args) {
47
+ const key = keyFn ? keyFn(...args) : JSON.stringify(args);
48
+ if (cache.has(key)) {
49
+ // PERFORMANCE NOTE: LRUCache.get() calls Map.delete() + Map.set() on every cache hit.
50
+ // For read-heavy workloads, tracking access timestamps would be faster than
51
+ // the delete/reinsert pattern. This is correct for LRU semantics but can be slow
52
+ // for hot cache entries accessed thousands of times per second.
53
+ return cache.get(key);
54
+ }
55
+ const result = fn(...args);
56
+ cache.set(key, result);
57
+ return result;
58
+ };
59
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"once.d.ts","sourceRoot":"","sources":["../../src/function/once.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,IAAI,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAsBhE"}
1
+ {"version":3,"file":"once.d.ts","sourceRoot":"","sources":["../../src/function/once.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,wBAAgB,IAAI,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAsBhE"}
@@ -14,6 +14,7 @@
14
14
  * init(); // no-op — returns cached result
15
15
  * ```
16
16
  */
17
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
17
18
  export function Once(fn) {
18
19
  let called = false;
19
20
  let result;
@@ -37,4 +38,3 @@ export function Once(fn) {
37
38
  return result;
38
39
  };
39
40
  }
40
- //# sourceMappingURL=once.js.map
@@ -19,4 +19,3 @@
19
19
  export async function Sleep(ms) {
20
20
  await new Promise((resolve) => setTimeout(resolve, ms));
21
21
  }
22
- //# sourceMappingURL=sleep.js.map
@@ -3,6 +3,13 @@ import type { TAnyFunction } from './types.js';
3
3
  * Creates a throttled version of `fn` that invokes at most once per `ms`
4
4
  * milliseconds, guaranteeing the final call in a burst is also executed.
5
5
  *
6
+ * @remarks
7
+ * Throttle differs from debounce in that it **rate-limits execution** to at most
8
+ * once per `ms` milliseconds. The function executes immediately on the first call,
9
+ * and subsequent calls are batched; the final pending call always executes. Debounce,
10
+ * by contrast, **delays execution** until `ms` milliseconds of silence have elapsed
11
+ * and resets the timer on each call.
12
+ *
6
13
  * @template T - The wrapped function type
7
14
  * @param fn - The function to throttle
8
15
  * @param ms - Minimum interval in milliseconds between invocations
@@ -0,0 +1 @@
1
+ {"version":3,"file":"throttle.d.ts","sourceRoot":"","sources":["../../src/function/throttle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,YAAY,EAC9C,EAAE,EAAE,CAAC,EACL,EAAE,EAAE,MAAM,GACR,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,CAuBlC"}
@@ -2,6 +2,13 @@
2
2
  * Creates a throttled version of `fn` that invokes at most once per `ms`
3
3
  * milliseconds, guaranteeing the final call in a burst is also executed.
4
4
  *
5
+ * @remarks
6
+ * Throttle differs from debounce in that it **rate-limits execution** to at most
7
+ * once per `ms` milliseconds. The function executes immediately on the first call,
8
+ * and subsequent calls are batched; the final pending call always executes. Debounce,
9
+ * by contrast, **delays execution** until `ms` milliseconds of silence have elapsed
10
+ * and resets the timer on each call.
11
+ *
5
12
  * @template T - The wrapped function type
6
13
  * @param fn - The function to throttle
7
14
  * @param ms - Minimum interval in milliseconds between invocations
@@ -36,4 +43,3 @@ export function Throttle(fn, ms) {
36
43
  }
37
44
  };
38
45
  }
39
- //# sourceMappingURL=throttle.js.map
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Any function signature.
3
+ *
4
+ * A type alias for functions accepting any arguments and returning any type.
5
+ * Used throughout the function domain for function wrappers and utilities
6
+ * that operate on generic functions without type-specific constraints.
7
+ */
8
+ export type TAnyFunction = (...args: any[]) => any;
9
+ /**
10
+ * Any async function signature.
11
+ *
12
+ * A type alias for async functions accepting any arguments and returning
13
+ * a Promise of the specified generic type (default `void`).
14
+ *
15
+ * @template T - The resolved value type of the returned Promise (default `void`)
16
+ */
17
+ export type TAsyncFunction<T = void> = (...args: any[]) => Promise<T>;
18
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/function/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;AAEnD;;;;;;;GAOG;AAEH,MAAM,MAAM,cAAc,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,11 @@
1
+ export * from './lru-cache.js';
2
+ export * from './array/index.js';
3
+ export * from './asserts/index.js';
4
+ export * from './boolean/index.js';
5
+ export * from './enum/index.js';
6
+ export * from './function/index.js';
7
+ export * from './number/index.js';
8
+ export * from './object/index.js';
9
+ export * from './string/index.js';
10
+ export * from './time/index.js';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,10 @@
1
+ export * from './lru-cache.js';
2
+ export * from './array/index.js';
3
+ export * from './asserts/index.js';
4
+ export * from './boolean/index.js';
5
+ export * from './enum/index.js';
6
+ export * from './function/index.js';
7
+ export * from './number/index.js';
8
+ export * from './object/index.js';
9
+ export * from './string/index.js';
10
+ export * from './time/index.js';
@@ -8,6 +8,12 @@
8
8
  * @typeParam K - Key type
9
9
  * @typeParam V - Value type
10
10
  *
11
+ * @warning Do not cache sensitive objects (API keys, tokens, passwords, PII).
12
+ * Cache entries remain in memory until evicted or cleared. If cache is inspected
13
+ * (via debugger, memory dump, or compromised process), sensitive values will be exposed.
14
+ * For sensitive data, prefer ephemeral processing without caching, or implement
15
+ * automatic expiration and secure clearing (e.g., overwrite before eviction).
16
+ *
11
17
  * @example
12
18
  * ```typescript
13
19
  * const cache = new LRUCache<string, number>(2);
@@ -46,6 +52,12 @@ export declare class LRUCache<K, V> {
46
52
  * @param key - The key to look up
47
53
  * @returns The cached value, or `undefined` if not found
48
54
  *
55
+ * @remarks
56
+ * Each cache hit triggers an internal Map delete and re-insert operation to maintain
57
+ * LRU order. This is O(1) amortized, but introduces per-access overhead.
58
+ * For read-heavy workloads, consider a timestamp-based LRU approach to reduce
59
+ * per-access cost, though it adds space overhead for timestamp storage.
60
+ *
49
61
  * @example
50
62
  * ```typescript
51
63
  * const cache = new LRUCache<string, number>(2);
@@ -101,5 +113,12 @@ export declare class LRUCache<K, V> {
101
113
  * ```
102
114
  */
103
115
  clear(): void;
116
+ /**
117
+ * Removes a specific key from the cache.
118
+ *
119
+ * @param key - The key to delete
120
+ * @returns `true` if the key existed and was deleted, `false` otherwise
121
+ */
122
+ delete(key: K): boolean;
104
123
  }
105
124
  //# sourceMappingURL=lru-cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lru-cache.d.ts","sourceRoot":"","sources":["../src/lru-cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAa,QAAQ,CAAC,CAAC,EAAE,CAAC;IACzB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAmB;IAExC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAElC;;;;;;;;;;OAUG;gBACS,OAAO,EAAE,MAAM;IAO3B;;OAEG;IACH,IAAW,IAAI,IAAI,MAAM,CAExB;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACI,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS;IAajC;;;;;;;;;;;;;OAaG;IACI,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO;IAI3B;;;;;;;;;;;;;;;;;OAiBG;IACI,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAgBlC;;;;;;;;;;OAUG;IACI,KAAK,IAAI,IAAI;IAIpB;;;;;OAKG;IACI,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO;CAG9B"}