ts-data-forge 5.0.1 → 5.1.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 (527) hide show
  1. package/README.md +55 -6
  2. package/dist/array/impl/array-utils-creation.d.mts +14 -0
  3. package/dist/array/impl/array-utils-creation.d.mts.map +1 -1
  4. package/dist/array/impl/array-utils-creation.mjs +12 -0
  5. package/dist/array/impl/array-utils-creation.mjs.map +1 -1
  6. package/dist/array/impl/array-utils-element-access.d.mts +10 -0
  7. package/dist/array/impl/array-utils-element-access.d.mts.map +1 -1
  8. package/dist/array/impl/array-utils-element-access.mjs +6 -0
  9. package/dist/array/impl/array-utils-element-access.mjs.map +1 -1
  10. package/dist/array/impl/array-utils-modification.d.mts +14 -0
  11. package/dist/array/impl/array-utils-modification.d.mts.map +1 -1
  12. package/dist/array/impl/array-utils-modification.mjs.map +1 -1
  13. package/dist/array/impl/array-utils-reducing-value.d.mts +26 -2
  14. package/dist/array/impl/array-utils-reducing-value.d.mts.map +1 -1
  15. package/dist/array/impl/array-utils-reducing-value.mjs.map +1 -1
  16. package/dist/array/impl/array-utils-search.d.mts +30 -0
  17. package/dist/array/impl/array-utils-search.d.mts.map +1 -1
  18. package/dist/array/impl/array-utils-search.mjs.map +1 -1
  19. package/dist/array/impl/array-utils-set-op.d.mts +13 -0
  20. package/dist/array/impl/array-utils-set-op.d.mts.map +1 -1
  21. package/dist/array/impl/array-utils-set-op.mjs +13 -0
  22. package/dist/array/impl/array-utils-set-op.mjs.map +1 -1
  23. package/dist/array/impl/array-utils-size.d.mts +3 -0
  24. package/dist/array/impl/array-utils-size.d.mts.map +1 -1
  25. package/dist/array/impl/array-utils-size.mjs +3 -0
  26. package/dist/array/impl/array-utils-size.mjs.map +1 -1
  27. package/dist/array/impl/array-utils-slice-clamped.d.mts +2 -0
  28. package/dist/array/impl/array-utils-slice-clamped.d.mts.map +1 -1
  29. package/dist/array/impl/array-utils-slice-clamped.mjs.map +1 -1
  30. package/dist/array/impl/array-utils-slicing.d.mts +15 -0
  31. package/dist/array/impl/array-utils-slicing.d.mts.map +1 -1
  32. package/dist/array/impl/array-utils-slicing.mjs +7 -0
  33. package/dist/array/impl/array-utils-slicing.mjs.map +1 -1
  34. package/dist/array/impl/array-utils-transformation.d.mts +27 -0
  35. package/dist/array/impl/array-utils-transformation.d.mts.map +1 -1
  36. package/dist/array/impl/array-utils-transformation.mjs +6 -0
  37. package/dist/array/impl/array-utils-transformation.mjs.map +1 -1
  38. package/dist/array/impl/array-utils-validation.d.mts +17 -0
  39. package/dist/array/impl/array-utils-validation.d.mts.map +1 -1
  40. package/dist/array/impl/array-utils-validation.mjs +11 -0
  41. package/dist/array/impl/array-utils-validation.mjs.map +1 -1
  42. package/dist/collections/imap-mapped.mjs.map +1 -1
  43. package/dist/collections/imap.d.mts +20 -0
  44. package/dist/collections/imap.d.mts.map +1 -1
  45. package/dist/collections/imap.mjs +2 -0
  46. package/dist/collections/imap.mjs.map +1 -1
  47. package/dist/collections/iset-mapped.d.mts +27 -0
  48. package/dist/collections/iset-mapped.d.mts.map +1 -1
  49. package/dist/collections/iset-mapped.mjs +7 -0
  50. package/dist/collections/iset-mapped.mjs.map +1 -1
  51. package/dist/collections/iset.d.mts +29 -0
  52. package/dist/collections/iset.d.mts.map +1 -1
  53. package/dist/collections/iset.mjs +7 -0
  54. package/dist/collections/iset.mjs.map +1 -1
  55. package/dist/collections/queue.d.mts +40 -0
  56. package/dist/collections/queue.d.mts.map +1 -1
  57. package/dist/collections/queue.mjs +8 -0
  58. package/dist/collections/queue.mjs.map +1 -1
  59. package/dist/collections/stack.d.mts +35 -0
  60. package/dist/collections/stack.d.mts.map +1 -1
  61. package/dist/collections/stack.mjs +7 -0
  62. package/dist/collections/stack.mjs.map +1 -1
  63. package/dist/entry-point.mjs +1 -1
  64. package/dist/functional/match.d.mts.map +1 -1
  65. package/dist/functional/match.mjs.map +1 -1
  66. package/dist/functional/optional/impl/optional-expect-to-be.d.mts +1 -0
  67. package/dist/functional/optional/impl/optional-expect-to-be.d.mts.map +1 -1
  68. package/dist/functional/optional/impl/optional-expect-to-be.mjs.map +1 -1
  69. package/dist/functional/optional/impl/optional-filter.d.mts +3 -0
  70. package/dist/functional/optional/impl/optional-filter.d.mts.map +1 -1
  71. package/dist/functional/optional/impl/optional-filter.mjs.map +1 -1
  72. package/dist/functional/optional/impl/optional-flat-map.d.mts +2 -0
  73. package/dist/functional/optional/impl/optional-flat-map.d.mts.map +1 -1
  74. package/dist/functional/optional/impl/optional-flat-map.mjs.map +1 -1
  75. package/dist/functional/optional/impl/optional-from-nullable.d.mts +2 -0
  76. package/dist/functional/optional/impl/optional-from-nullable.d.mts.map +1 -1
  77. package/dist/functional/optional/impl/optional-from-nullable.mjs +2 -0
  78. package/dist/functional/optional/impl/optional-from-nullable.mjs.map +1 -1
  79. package/dist/functional/optional/impl/optional-is-optional.d.mts +2 -0
  80. package/dist/functional/optional/impl/optional-is-optional.d.mts.map +1 -1
  81. package/dist/functional/optional/impl/optional-is-optional.mjs +2 -0
  82. package/dist/functional/optional/impl/optional-is-optional.mjs.map +1 -1
  83. package/dist/functional/optional/impl/optional-is-some.d.mts +1 -0
  84. package/dist/functional/optional/impl/optional-is-some.d.mts.map +1 -1
  85. package/dist/functional/optional/impl/optional-is-some.mjs +1 -0
  86. package/dist/functional/optional/impl/optional-is-some.mjs.map +1 -1
  87. package/dist/functional/optional/impl/optional-map.d.mts +2 -0
  88. package/dist/functional/optional/impl/optional-map.d.mts.map +1 -1
  89. package/dist/functional/optional/impl/optional-map.mjs.map +1 -1
  90. package/dist/functional/optional/impl/optional-none.d.mts +2 -0
  91. package/dist/functional/optional/impl/optional-none.d.mts.map +1 -1
  92. package/dist/functional/optional/impl/optional-none.mjs +2 -0
  93. package/dist/functional/optional/impl/optional-none.mjs.map +1 -1
  94. package/dist/functional/optional/impl/optional-or-else.d.mts +4 -0
  95. package/dist/functional/optional/impl/optional-or-else.d.mts.map +1 -1
  96. package/dist/functional/optional/impl/optional-or-else.mjs.map +1 -1
  97. package/dist/functional/optional/impl/optional-some.d.mts +3 -1
  98. package/dist/functional/optional/impl/optional-some.d.mts.map +1 -1
  99. package/dist/functional/optional/impl/optional-some.mjs +2 -0
  100. package/dist/functional/optional/impl/optional-some.mjs.map +1 -1
  101. package/dist/functional/optional/impl/optional-to-nullable.d.mts +2 -0
  102. package/dist/functional/optional/impl/optional-to-nullable.d.mts.map +1 -1
  103. package/dist/functional/optional/impl/optional-to-nullable.mjs +2 -0
  104. package/dist/functional/optional/impl/optional-to-nullable.mjs.map +1 -1
  105. package/dist/functional/optional/impl/optional-unwrap-or.d.mts +3 -0
  106. package/dist/functional/optional/impl/optional-unwrap-or.d.mts.map +1 -1
  107. package/dist/functional/optional/impl/optional-unwrap-or.mjs.map +1 -1
  108. package/dist/functional/optional/impl/optional-unwrap-throw.d.mts +1 -0
  109. package/dist/functional/optional/impl/optional-unwrap-throw.d.mts.map +1 -1
  110. package/dist/functional/optional/impl/optional-unwrap-throw.mjs +1 -0
  111. package/dist/functional/optional/impl/optional-unwrap-throw.mjs.map +1 -1
  112. package/dist/functional/optional/impl/optional-unwrap.d.mts +2 -0
  113. package/dist/functional/optional/impl/optional-unwrap.d.mts.map +1 -1
  114. package/dist/functional/optional/impl/optional-unwrap.mjs.map +1 -1
  115. package/dist/functional/optional/impl/optional-zip.d.mts +2 -0
  116. package/dist/functional/optional/impl/optional-zip.d.mts.map +1 -1
  117. package/dist/functional/optional/impl/optional-zip.mjs +2 -0
  118. package/dist/functional/optional/impl/optional-zip.mjs.map +1 -1
  119. package/dist/functional/result/impl/result-err.d.mts +3 -1
  120. package/dist/functional/result/impl/result-err.d.mts.map +1 -1
  121. package/dist/functional/result/impl/result-err.mjs +2 -0
  122. package/dist/functional/result/impl/result-err.mjs.map +1 -1
  123. package/dist/functional/result/impl/result-expect-to-be.d.mts +1 -0
  124. package/dist/functional/result/impl/result-expect-to-be.d.mts.map +1 -1
  125. package/dist/functional/result/impl/result-expect-to-be.mjs.map +1 -1
  126. package/dist/functional/result/impl/result-flat-map.d.mts +5 -0
  127. package/dist/functional/result/impl/result-flat-map.d.mts.map +1 -1
  128. package/dist/functional/result/impl/result-flat-map.mjs.map +1 -1
  129. package/dist/functional/result/impl/result-fold.d.mts +4 -0
  130. package/dist/functional/result/impl/result-fold.d.mts.map +1 -1
  131. package/dist/functional/result/impl/result-fold.mjs.map +1 -1
  132. package/dist/functional/result/impl/result-from-promise.d.mts +3 -0
  133. package/dist/functional/result/impl/result-from-promise.d.mts.map +1 -1
  134. package/dist/functional/result/impl/result-from-promise.mjs +3 -0
  135. package/dist/functional/result/impl/result-from-promise.mjs.map +1 -1
  136. package/dist/functional/result/impl/result-from-throwable.d.mts +2 -0
  137. package/dist/functional/result/impl/result-from-throwable.d.mts.map +1 -1
  138. package/dist/functional/result/impl/result-from-throwable.mjs +2 -0
  139. package/dist/functional/result/impl/result-from-throwable.mjs.map +1 -1
  140. package/dist/functional/result/impl/result-is-err.d.mts +2 -0
  141. package/dist/functional/result/impl/result-is-err.d.mts.map +1 -1
  142. package/dist/functional/result/impl/result-is-err.mjs +2 -0
  143. package/dist/functional/result/impl/result-is-err.mjs.map +1 -1
  144. package/dist/functional/result/impl/result-is-ok.d.mts +2 -0
  145. package/dist/functional/result/impl/result-is-ok.d.mts.map +1 -1
  146. package/dist/functional/result/impl/result-is-ok.mjs +2 -0
  147. package/dist/functional/result/impl/result-is-ok.mjs.map +1 -1
  148. package/dist/functional/result/impl/result-is-result.d.mts +4 -0
  149. package/dist/functional/result/impl/result-is-result.d.mts.map +1 -1
  150. package/dist/functional/result/impl/result-is-result.mjs +4 -0
  151. package/dist/functional/result/impl/result-is-result.mjs.map +1 -1
  152. package/dist/functional/result/impl/result-map-err.d.mts +3 -0
  153. package/dist/functional/result/impl/result-map-err.d.mts.map +1 -1
  154. package/dist/functional/result/impl/result-map-err.mjs.map +1 -1
  155. package/dist/functional/result/impl/result-map.d.mts +4 -0
  156. package/dist/functional/result/impl/result-map.d.mts.map +1 -1
  157. package/dist/functional/result/impl/result-map.mjs.map +1 -1
  158. package/dist/functional/result/impl/result-ok.d.mts +3 -1
  159. package/dist/functional/result/impl/result-ok.d.mts.map +1 -1
  160. package/dist/functional/result/impl/result-ok.mjs +2 -0
  161. package/dist/functional/result/impl/result-ok.mjs.map +1 -1
  162. package/dist/functional/result/impl/result-or-else.d.mts +4 -0
  163. package/dist/functional/result/impl/result-or-else.d.mts.map +1 -1
  164. package/dist/functional/result/impl/result-or-else.mjs.map +1 -1
  165. package/dist/functional/result/impl/result-swap.d.mts +2 -0
  166. package/dist/functional/result/impl/result-swap.d.mts.map +1 -1
  167. package/dist/functional/result/impl/result-swap.mjs +2 -0
  168. package/dist/functional/result/impl/result-swap.mjs.map +1 -1
  169. package/dist/functional/result/impl/result-to-optional.d.mts +2 -0
  170. package/dist/functional/result/impl/result-to-optional.d.mts.map +1 -1
  171. package/dist/functional/result/impl/result-to-optional.mjs +2 -0
  172. package/dist/functional/result/impl/result-to-optional.mjs.map +1 -1
  173. package/dist/functional/result/impl/result-unwrap-err-or.d.mts +3 -0
  174. package/dist/functional/result/impl/result-unwrap-err-or.d.mts.map +1 -1
  175. package/dist/functional/result/impl/result-unwrap-err-or.mjs.map +1 -1
  176. package/dist/functional/result/impl/result-unwrap-err-throw.d.mts +2 -0
  177. package/dist/functional/result/impl/result-unwrap-err-throw.d.mts.map +1 -1
  178. package/dist/functional/result/impl/result-unwrap-err-throw.mjs +2 -0
  179. package/dist/functional/result/impl/result-unwrap-err-throw.mjs.map +1 -1
  180. package/dist/functional/result/impl/result-unwrap-err.d.mts +1 -0
  181. package/dist/functional/result/impl/result-unwrap-err.d.mts.map +1 -1
  182. package/dist/functional/result/impl/result-unwrap-err.mjs +1 -0
  183. package/dist/functional/result/impl/result-unwrap-err.mjs.map +1 -1
  184. package/dist/functional/result/impl/result-unwrap-ok-or.d.mts +3 -0
  185. package/dist/functional/result/impl/result-unwrap-ok-or.d.mts.map +1 -1
  186. package/dist/functional/result/impl/result-unwrap-ok-or.mjs.map +1 -1
  187. package/dist/functional/result/impl/result-unwrap-ok.d.mts +1 -0
  188. package/dist/functional/result/impl/result-unwrap-ok.d.mts.map +1 -1
  189. package/dist/functional/result/impl/result-unwrap-ok.mjs.map +1 -1
  190. package/dist/functional/result/impl/result-unwrap-throw.d.mts +2 -0
  191. package/dist/functional/result/impl/result-unwrap-throw.d.mts.map +1 -1
  192. package/dist/functional/result/impl/result-unwrap-throw.mjs +2 -0
  193. package/dist/functional/result/impl/result-unwrap-throw.mjs.map +1 -1
  194. package/dist/functional/result/impl/result-zip.d.mts +3 -1
  195. package/dist/functional/result/impl/result-zip.d.mts.map +1 -1
  196. package/dist/functional/result/impl/result-zip.mjs +3 -1
  197. package/dist/functional/result/impl/result-zip.mjs.map +1 -1
  198. package/dist/functional/ternary-result/impl/ternary-result-err.d.mts +2 -1
  199. package/dist/functional/ternary-result/impl/ternary-result-err.d.mts.map +1 -1
  200. package/dist/functional/ternary-result/impl/ternary-result-err.mjs +1 -0
  201. package/dist/functional/ternary-result/impl/ternary-result-err.mjs.map +1 -1
  202. package/dist/functional/ternary-result/impl/ternary-result-expect-to-be.d.mts +1 -0
  203. package/dist/functional/ternary-result/impl/ternary-result-expect-to-be.d.mts.map +1 -1
  204. package/dist/functional/ternary-result/impl/ternary-result-expect-to-be.mjs.map +1 -1
  205. package/dist/functional/ternary-result/impl/ternary-result-flat-map.d.mts +4 -0
  206. package/dist/functional/ternary-result/impl/ternary-result-flat-map.d.mts.map +1 -1
  207. package/dist/functional/ternary-result/impl/ternary-result-flat-map.mjs.map +1 -1
  208. package/dist/functional/ternary-result/impl/ternary-result-fold.d.mts +2 -0
  209. package/dist/functional/ternary-result/impl/ternary-result-fold.d.mts.map +1 -1
  210. package/dist/functional/ternary-result/impl/ternary-result-fold.mjs.map +1 -1
  211. package/dist/functional/ternary-result/impl/ternary-result-from-promise.d.mts +2 -0
  212. package/dist/functional/ternary-result/impl/ternary-result-from-promise.d.mts.map +1 -1
  213. package/dist/functional/ternary-result/impl/ternary-result-from-promise.mjs +2 -0
  214. package/dist/functional/ternary-result/impl/ternary-result-from-promise.mjs.map +1 -1
  215. package/dist/functional/ternary-result/impl/ternary-result-from-throwable.d.mts +2 -0
  216. package/dist/functional/ternary-result/impl/ternary-result-from-throwable.d.mts.map +1 -1
  217. package/dist/functional/ternary-result/impl/ternary-result-from-throwable.mjs +2 -0
  218. package/dist/functional/ternary-result/impl/ternary-result-from-throwable.mjs.map +1 -1
  219. package/dist/functional/ternary-result/impl/ternary-result-is-ok.d.mts +1 -0
  220. package/dist/functional/ternary-result/impl/ternary-result-is-ok.d.mts.map +1 -1
  221. package/dist/functional/ternary-result/impl/ternary-result-is-ok.mjs +1 -0
  222. package/dist/functional/ternary-result/impl/ternary-result-is-ok.mjs.map +1 -1
  223. package/dist/functional/ternary-result/impl/ternary-result-is-ternary-result.d.mts +4 -0
  224. package/dist/functional/ternary-result/impl/ternary-result-is-ternary-result.d.mts.map +1 -1
  225. package/dist/functional/ternary-result/impl/ternary-result-is-ternary-result.mjs +4 -0
  226. package/dist/functional/ternary-result/impl/ternary-result-is-ternary-result.mjs.map +1 -1
  227. package/dist/functional/ternary-result/impl/ternary-result-is-warn.d.mts +1 -0
  228. package/dist/functional/ternary-result/impl/ternary-result-is-warn.d.mts.map +1 -1
  229. package/dist/functional/ternary-result/impl/ternary-result-is-warn.mjs +1 -0
  230. package/dist/functional/ternary-result/impl/ternary-result-is-warn.mjs.map +1 -1
  231. package/dist/functional/ternary-result/impl/ternary-result-map-err.d.mts +3 -0
  232. package/dist/functional/ternary-result/impl/ternary-result-map-err.d.mts.map +1 -1
  233. package/dist/functional/ternary-result/impl/ternary-result-map-err.mjs.map +1 -1
  234. package/dist/functional/ternary-result/impl/ternary-result-map-warn.d.mts +3 -0
  235. package/dist/functional/ternary-result/impl/ternary-result-map-warn.d.mts.map +1 -1
  236. package/dist/functional/ternary-result/impl/ternary-result-map-warn.mjs.map +1 -1
  237. package/dist/functional/ternary-result/impl/ternary-result-map.d.mts +6 -0
  238. package/dist/functional/ternary-result/impl/ternary-result-map.d.mts.map +1 -1
  239. package/dist/functional/ternary-result/impl/ternary-result-map.mjs.map +1 -1
  240. package/dist/functional/ternary-result/impl/ternary-result-ok.d.mts +1 -1
  241. package/dist/functional/ternary-result/impl/ternary-result-ok.d.mts.map +1 -1
  242. package/dist/functional/ternary-result/impl/ternary-result-ok.mjs.map +1 -1
  243. package/dist/functional/ternary-result/impl/ternary-result-or-else.d.mts +2 -0
  244. package/dist/functional/ternary-result/impl/ternary-result-or-else.d.mts.map +1 -1
  245. package/dist/functional/ternary-result/impl/ternary-result-or-else.mjs.map +1 -1
  246. package/dist/functional/ternary-result/impl/ternary-result-to-optional.d.mts +2 -0
  247. package/dist/functional/ternary-result/impl/ternary-result-to-optional.d.mts.map +1 -1
  248. package/dist/functional/ternary-result/impl/ternary-result-to-optional.mjs +2 -0
  249. package/dist/functional/ternary-result/impl/ternary-result-to-optional.mjs.map +1 -1
  250. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-or.d.mts +2 -0
  251. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-or.d.mts.map +1 -1
  252. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-or.mjs.map +1 -1
  253. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-throw.d.mts +1 -0
  254. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-throw.d.mts.map +1 -1
  255. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-throw.mjs +1 -0
  256. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-throw.mjs.map +1 -1
  257. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err.d.mts +2 -0
  258. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err.d.mts.map +1 -1
  259. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err.mjs +2 -0
  260. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err.mjs.map +1 -1
  261. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok-or.d.mts +2 -0
  262. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok-or.d.mts.map +1 -1
  263. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok-or.mjs.map +1 -1
  264. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok.d.mts +2 -0
  265. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok.d.mts.map +1 -1
  266. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok.mjs.map +1 -1
  267. package/dist/functional/ternary-result/impl/ternary-result-unwrap-throw.d.mts +1 -0
  268. package/dist/functional/ternary-result/impl/ternary-result-unwrap-throw.d.mts.map +1 -1
  269. package/dist/functional/ternary-result/impl/ternary-result-unwrap-throw.mjs +1 -0
  270. package/dist/functional/ternary-result/impl/ternary-result-unwrap-throw.mjs.map +1 -1
  271. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-or.d.mts +2 -0
  272. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-or.d.mts.map +1 -1
  273. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-or.mjs.map +1 -1
  274. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-throw.d.mts +1 -0
  275. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-throw.d.mts.map +1 -1
  276. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-throw.mjs +1 -0
  277. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-throw.mjs.map +1 -1
  278. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn.d.mts +2 -0
  279. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn.d.mts.map +1 -1
  280. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn.mjs +2 -0
  281. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn.mjs.map +1 -1
  282. package/dist/functional/ternary-result/impl/ternary-result-warn.d.mts +1 -1
  283. package/dist/functional/ternary-result/impl/ternary-result-warn.d.mts.map +1 -1
  284. package/dist/functional/ternary-result/impl/ternary-result-warn.mjs.map +1 -1
  285. package/dist/functional/ternary-result/impl/ternary-result-zip.d.mts +4 -0
  286. package/dist/functional/ternary-result/impl/ternary-result-zip.d.mts.map +1 -1
  287. package/dist/functional/ternary-result/impl/ternary-result-zip.mjs +4 -0
  288. package/dist/functional/ternary-result/impl/ternary-result-zip.mjs.map +1 -1
  289. package/dist/globals.d.mts +10 -0
  290. package/dist/guard/index.mjs +1 -1
  291. package/dist/guard/is-record.d.mts +31 -0
  292. package/dist/guard/is-record.d.mts.map +1 -1
  293. package/dist/guard/is-record.mjs +32 -1
  294. package/dist/guard/is-record.mjs.map +1 -1
  295. package/dist/guard/is-type.d.mts +3 -0
  296. package/dist/guard/is-type.d.mts.map +1 -1
  297. package/dist/guard/is-type.mjs +3 -0
  298. package/dist/guard/is-type.mjs.map +1 -1
  299. package/dist/guard/key-is-in.d.mts +1 -0
  300. package/dist/guard/key-is-in.d.mts.map +1 -1
  301. package/dist/guard/key-is-in.mjs +1 -0
  302. package/dist/guard/key-is-in.mjs.map +1 -1
  303. package/dist/index.mjs +1 -1
  304. package/dist/iterator/range.d.mts +4 -0
  305. package/dist/iterator/range.d.mts.map +1 -1
  306. package/dist/iterator/range.mjs +1 -0
  307. package/dist/iterator/range.mjs.map +1 -1
  308. package/dist/json/json.d.mts +21 -0
  309. package/dist/json/json.d.mts.map +1 -1
  310. package/dist/json/json.mjs +21 -0
  311. package/dist/json/json.mjs.map +1 -1
  312. package/dist/number/branded-types/int.d.mts +14 -0
  313. package/dist/number/branded-types/int.d.mts.map +1 -1
  314. package/dist/number/branded-types/int.mjs +14 -0
  315. package/dist/number/branded-types/int.mjs.map +1 -1
  316. package/dist/number/branded-types/non-zero-safe-int.mjs +2 -2
  317. package/dist/number/branded-types/positive-int.d.mts +14 -0
  318. package/dist/number/branded-types/positive-int.d.mts.map +1 -1
  319. package/dist/number/branded-types/positive-int.mjs +14 -0
  320. package/dist/number/branded-types/positive-int.mjs.map +1 -1
  321. package/dist/number/branded-types/positive-safe-int.d.mts +21 -0
  322. package/dist/number/branded-types/positive-safe-int.d.mts.map +1 -1
  323. package/dist/number/branded-types/positive-safe-int.mjs +22 -1
  324. package/dist/number/branded-types/positive-safe-int.mjs.map +1 -1
  325. package/dist/number/branded-types/safe-int.d.mts +21 -0
  326. package/dist/number/branded-types/safe-int.d.mts.map +1 -1
  327. package/dist/number/branded-types/safe-int.mjs +23 -2
  328. package/dist/number/branded-types/safe-int.mjs.map +1 -1
  329. package/dist/number/branded-types/safe-uint.mjs +1 -1
  330. package/dist/number/branded-types/uint.d.mts +12 -0
  331. package/dist/number/branded-types/uint.d.mts.map +1 -1
  332. package/dist/number/branded-types/uint.mjs +12 -0
  333. package/dist/number/branded-types/uint.mjs.map +1 -1
  334. package/dist/number/num.d.mts +9 -0
  335. package/dist/number/num.d.mts.map +1 -1
  336. package/dist/number/num.mjs +8 -1
  337. package/dist/number/num.mjs.map +1 -1
  338. package/dist/number/refined-number-utils.d.mts +22 -0
  339. package/dist/number/refined-number-utils.d.mts.map +1 -1
  340. package/dist/number/refined-number-utils.mjs +22 -0
  341. package/dist/number/refined-number-utils.mjs.map +1 -1
  342. package/dist/object/object.d.mts +9 -0
  343. package/dist/object/object.d.mts.map +1 -1
  344. package/dist/object/object.mjs +7 -0
  345. package/dist/object/object.mjs.map +1 -1
  346. package/dist/others/map-nullable.mjs.map +1 -1
  347. package/dist/others/tuple.d.mts +11 -0
  348. package/dist/others/tuple.d.mts.map +1 -1
  349. package/dist/others/tuple.mjs +11 -0
  350. package/dist/others/tuple.mjs.map +1 -1
  351. package/dist/others/unknown-to-string.d.mts.map +1 -1
  352. package/dist/others/unknown-to-string.mjs.map +1 -1
  353. package/dist/promise/promise.d.mts +4 -0
  354. package/dist/promise/promise.d.mts.map +1 -1
  355. package/dist/promise/promise.mjs +4 -0
  356. package/dist/promise/promise.mjs.map +1 -1
  357. package/package.json +18 -22
  358. package/src/array/impl/array-utils-creation.mts +20 -0
  359. package/src/array/impl/array-utils-creation.test.mts +71 -0
  360. package/src/array/impl/array-utils-element-access.mts +13 -0
  361. package/src/array/impl/array-utils-element-access.test.mts +21 -0
  362. package/src/array/impl/array-utils-iterators.test.mts +17 -0
  363. package/src/array/impl/array-utils-modification.mts +40 -0
  364. package/src/array/impl/array-utils-modification.test.mts +75 -0
  365. package/src/array/impl/array-utils-overload-type-error.test.mts +19 -0
  366. package/src/array/impl/array-utils-reducing-value.mts +53 -8
  367. package/src/array/impl/array-utils-reducing-value.test.mts +90 -0
  368. package/src/array/impl/array-utils-search.mts +53 -0
  369. package/src/array/impl/array-utils-search.test.mts +51 -0
  370. package/src/array/impl/array-utils-set-op.mts +19 -0
  371. package/src/array/impl/array-utils-set-op.test.mts +116 -0
  372. package/src/array/impl/array-utils-size.mts +3 -0
  373. package/src/array/impl/array-utils-size.test.mts +1 -0
  374. package/src/array/impl/array-utils-slice-clamped.mts +7 -0
  375. package/src/array/impl/array-utils-slice-clamped.test.mts +20 -0
  376. package/src/array/impl/array-utils-slicing.mts +27 -0
  377. package/src/array/impl/array-utils-slicing.test.mts +57 -0
  378. package/src/array/impl/array-utils-transformation.mts +58 -0
  379. package/src/array/impl/array-utils-transformation.test.mts +113 -1
  380. package/src/array/impl/array-utils-validation.mts +23 -0
  381. package/src/array/impl/array-utils-validation.test.mts +96 -0
  382. package/src/array/impl/array.test.mts +12 -0
  383. package/src/collections/imap-mapped.mts +11 -0
  384. package/src/collections/imap-mapped.test.mts +70 -0
  385. package/src/collections/imap.mts +32 -0
  386. package/src/collections/imap.test.mts +106 -0
  387. package/src/collections/iset-mapped.mts +35 -0
  388. package/src/collections/iset-mapped.test.mts +111 -0
  389. package/src/collections/iset.mts +34 -0
  390. package/src/collections/iset.test.mts +193 -0
  391. package/src/collections/queue.mts +53 -0
  392. package/src/collections/queue.test.mts +32 -0
  393. package/src/collections/stack.mts +42 -0
  394. package/src/collections/stack.test.mts +44 -0
  395. package/src/functional/match.mts +16 -0
  396. package/src/functional/match.test.mts +2 -0
  397. package/src/functional/optional/impl/optional-expect-to-be.mts +3 -0
  398. package/src/functional/optional/impl/optional-filter.mts +6 -0
  399. package/src/functional/optional/impl/optional-flat-map.mts +4 -0
  400. package/src/functional/optional/impl/optional-from-nullable.mts +2 -0
  401. package/src/functional/optional/impl/optional-is-optional.mts +2 -0
  402. package/src/functional/optional/impl/optional-is-some.mts +1 -0
  403. package/src/functional/optional/impl/optional-map.mts +5 -0
  404. package/src/functional/optional/impl/optional-none.mts +2 -0
  405. package/src/functional/optional/impl/optional-or-else.mts +6 -0
  406. package/src/functional/optional/impl/optional-some.mts +3 -1
  407. package/src/functional/optional/impl/optional-to-nullable.mts +2 -0
  408. package/src/functional/optional/impl/optional-unwrap-or.mts +5 -0
  409. package/src/functional/optional/impl/optional-unwrap-throw.mts +1 -0
  410. package/src/functional/optional/impl/optional-unwrap.mts +2 -0
  411. package/src/functional/optional/impl/optional-zip.mts +2 -0
  412. package/src/functional/optional.test.mts +73 -0
  413. package/src/functional/pipe.test.mts +3 -0
  414. package/src/functional/result/impl/result-err.mts +3 -1
  415. package/src/functional/result/impl/result-expect-to-be.mts +3 -0
  416. package/src/functional/result/impl/result-flat-map.mts +7 -0
  417. package/src/functional/result/impl/result-fold.mts +6 -0
  418. package/src/functional/result/impl/result-from-promise.mts +3 -0
  419. package/src/functional/result/impl/result-from-throwable.mts +4 -0
  420. package/src/functional/result/impl/result-is-err.mts +2 -0
  421. package/src/functional/result/impl/result-is-ok.mts +2 -0
  422. package/src/functional/result/impl/result-is-result.mts +4 -0
  423. package/src/functional/result/impl/result-map-err.mts +5 -0
  424. package/src/functional/result/impl/result-map.mts +6 -0
  425. package/src/functional/result/impl/result-ok.mts +3 -1
  426. package/src/functional/result/impl/result-or-else.mts +6 -0
  427. package/src/functional/result/impl/result-swap.mts +2 -0
  428. package/src/functional/result/impl/result-to-optional.mts +2 -0
  429. package/src/functional/result/impl/result-unwrap-err-or.mts +5 -0
  430. package/src/functional/result/impl/result-unwrap-err-throw.mts +2 -0
  431. package/src/functional/result/impl/result-unwrap-err.mts +1 -0
  432. package/src/functional/result/impl/result-unwrap-ok-or.mts +5 -0
  433. package/src/functional/result/impl/result-unwrap-ok.mts +2 -0
  434. package/src/functional/result/impl/result-unwrap-throw.mts +2 -0
  435. package/src/functional/result/impl/result-zip.mts +3 -1
  436. package/src/functional/result.test.mts +88 -0
  437. package/src/functional/ternary-result/impl/ternary-result-err.mts +2 -1
  438. package/src/functional/ternary-result/impl/ternary-result-expect-to-be.mts +4 -0
  439. package/src/functional/ternary-result/impl/ternary-result-flat-map.mts +7 -0
  440. package/src/functional/ternary-result/impl/ternary-result-fold.mts +5 -0
  441. package/src/functional/ternary-result/impl/ternary-result-from-promise.mts +2 -0
  442. package/src/functional/ternary-result/impl/ternary-result-from-throwable.mts +3 -0
  443. package/src/functional/ternary-result/impl/ternary-result-is-ok.mts +1 -0
  444. package/src/functional/ternary-result/impl/ternary-result-is-ternary-result.mts +4 -0
  445. package/src/functional/ternary-result/impl/ternary-result-is-warn.mts +1 -0
  446. package/src/functional/ternary-result/impl/ternary-result-map-err.mts +6 -0
  447. package/src/functional/ternary-result/impl/ternary-result-map-warn.mts +6 -0
  448. package/src/functional/ternary-result/impl/ternary-result-map.mts +9 -0
  449. package/src/functional/ternary-result/impl/ternary-result-ok.mts +1 -1
  450. package/src/functional/ternary-result/impl/ternary-result-or-else.mts +5 -0
  451. package/src/functional/ternary-result/impl/ternary-result-to-optional.mts +2 -0
  452. package/src/functional/ternary-result/impl/ternary-result-unwrap-err-or.mts +5 -0
  453. package/src/functional/ternary-result/impl/ternary-result-unwrap-err-throw.mts +1 -0
  454. package/src/functional/ternary-result/impl/ternary-result-unwrap-err.mts +2 -0
  455. package/src/functional/ternary-result/impl/ternary-result-unwrap-ok-or.mts +5 -0
  456. package/src/functional/ternary-result/impl/ternary-result-unwrap-ok.mts +3 -0
  457. package/src/functional/ternary-result/impl/ternary-result-unwrap-throw.mts +1 -0
  458. package/src/functional/ternary-result/impl/ternary-result-unwrap-warn-or.mts +5 -0
  459. package/src/functional/ternary-result/impl/ternary-result-unwrap-warn-throw.mts +1 -0
  460. package/src/functional/ternary-result/impl/ternary-result-unwrap-warn.mts +2 -0
  461. package/src/functional/ternary-result/impl/ternary-result-warn.mts +4 -1
  462. package/src/functional/ternary-result/impl/ternary-result-zip.mts +4 -0
  463. package/src/functional/ternary-result.test.mts +91 -0
  464. package/src/globals.d.mts +10 -0
  465. package/src/guard/has-key.test.mts +9 -0
  466. package/src/guard/is-non-empty-string.test.mts +20 -0
  467. package/src/guard/is-non-null-object.test.mts +19 -0
  468. package/src/guard/is-primitive.test.mts +23 -0
  469. package/src/guard/is-record.mts +34 -0
  470. package/src/guard/is-record.test.mts +21 -0
  471. package/src/guard/is-type.mts +3 -0
  472. package/src/guard/is-type.test.mts +134 -0
  473. package/src/guard/key-is-in.mts +1 -0
  474. package/src/iterator/range.mts +9 -0
  475. package/src/json/json.mts +29 -0
  476. package/src/json/json.test.mts +87 -0
  477. package/src/number/branded-types/finite-number.test.mts +38 -0
  478. package/src/number/branded-types/int.mts +14 -0
  479. package/src/number/branded-types/int.test.mts +42 -0
  480. package/src/number/branded-types/int16.test.mts +47 -0
  481. package/src/number/branded-types/int32.test.mts +47 -0
  482. package/src/number/branded-types/non-negative-finite-number.test.mts +40 -0
  483. package/src/number/branded-types/non-negative-int16.test.mts +43 -0
  484. package/src/number/branded-types/non-negative-int32.test.mts +43 -0
  485. package/src/number/branded-types/non-zero-finite-number.test.mts +51 -0
  486. package/src/number/branded-types/non-zero-int.test.mts +53 -0
  487. package/src/number/branded-types/non-zero-int16.test.mts +44 -0
  488. package/src/number/branded-types/non-zero-int32.test.mts +44 -0
  489. package/src/number/branded-types/non-zero-safe-int.mts +2 -2
  490. package/src/number/branded-types/non-zero-safe-int.test.mts +62 -0
  491. package/src/number/branded-types/non-zero-uint16.test.mts +37 -0
  492. package/src/number/branded-types/non-zero-uint32.test.mts +37 -0
  493. package/src/number/branded-types/positive-finite-number.test.mts +45 -0
  494. package/src/number/branded-types/positive-int.mts +14 -0
  495. package/src/number/branded-types/positive-int.test.mts +47 -0
  496. package/src/number/branded-types/positive-int16.test.mts +35 -0
  497. package/src/number/branded-types/positive-int32.test.mts +35 -0
  498. package/src/number/branded-types/positive-safe-int.mts +22 -1
  499. package/src/number/branded-types/positive-safe-int.test.mts +49 -0
  500. package/src/number/branded-types/positive-uint16.test.mts +37 -0
  501. package/src/number/branded-types/positive-uint32.test.mts +37 -0
  502. package/src/number/branded-types/safe-int.mts +23 -2
  503. package/src/number/branded-types/safe-int.test.mts +52 -0
  504. package/src/number/branded-types/safe-uint.mts +1 -1
  505. package/src/number/branded-types/safe-uint.test.mts +48 -0
  506. package/src/number/branded-types/uint.mts +12 -0
  507. package/src/number/branded-types/uint.test.mts +43 -0
  508. package/src/number/branded-types/uint16.test.mts +41 -0
  509. package/src/number/branded-types/uint32.test.mts +41 -0
  510. package/src/number/enum/int8.test.mts +6 -0
  511. package/src/number/enum/uint8.test.mts +6 -0
  512. package/src/number/num.mts +12 -1
  513. package/src/number/num.test.mts +62 -0
  514. package/src/number/refined-number-utils.mts +25 -0
  515. package/src/object/object.mts +15 -0
  516. package/src/object/object.test.mts +10 -0
  517. package/src/others/cast-mutable.test.mts +7 -0
  518. package/src/others/cast-readonly.test.mts +17 -0
  519. package/src/others/if-then.test.mts +16 -0
  520. package/src/others/map-nullable.mts +3 -0
  521. package/src/others/map-nullable.test.mts +27 -0
  522. package/src/others/memoize-function.test.mts +41 -0
  523. package/src/others/tuple.mts +11 -0
  524. package/src/others/unknown-to-string.mts +2 -0
  525. package/src/others/unknown-to-string.test.mts +10 -0
  526. package/src/promise/promise.mts +4 -0
  527. package/src/promise/promise.test.mts +1 -0
@@ -373,8 +373,11 @@ class IMapMappedClass<K, V, KM extends MapSetKeyType>
373
373
  showNotFoundMessage: boolean = false,
374
374
  ) {
375
375
  this.#map = new Map(Array.from(iterable, ([k, v]) => [toKey(k), v]));
376
+
376
377
  this.#toKey = toKey;
378
+
377
379
  this.#fromKey = fromKey;
380
+
378
381
  this.#showNotFoundMessage = showNotFoundMessage;
379
382
  }
380
383
 
@@ -391,6 +394,7 @@ class IMapMappedClass<K, V, KM extends MapSetKeyType>
391
394
  /** @inheritdoc */
392
395
  get(key: K): Optional<V> {
393
396
  if (!this.has(key)) return Optional.none;
397
+
394
398
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
395
399
  return Optional.some(this.#map.get(this.#toKey(key))!);
396
400
  }
@@ -429,8 +433,10 @@ class IMapMappedClass<K, V, KM extends MapSetKeyType>
429
433
  `IMapMapped.delete: key not found: ${String(this.#toKey(key))}`,
430
434
  );
431
435
  }
436
+
432
437
  return this;
433
438
  }
439
+
434
440
  const keyMapped = this.#toKey(key);
435
441
 
436
442
  return IMapMapped.create(
@@ -445,6 +451,7 @@ class IMapMappedClass<K, V, KM extends MapSetKeyType>
445
451
  /** @inheritdoc */
446
452
  set(key: K, value: V): IMapMapped<K, V, KM> {
447
453
  if (value === this.get(key)) return this; // has no changes
454
+
448
455
  const keyMapped = this.#toKey(key);
449
456
 
450
457
  if (!this.has(key)) {
@@ -476,6 +483,7 @@ class IMapMappedClass<K, V, KM extends MapSetKeyType>
476
483
  `IMapMapped.update: key not found: ${String(this.#toKey(key))}`,
477
484
  );
478
485
  }
486
+
479
487
  return this;
480
488
  }
481
489
 
@@ -512,10 +520,12 @@ class IMapMappedClass<K, V, KM extends MapSetKeyType>
512
520
  switch (action.type) {
513
521
  case 'delete':
514
522
  mut_result.delete(key);
523
+
515
524
  break;
516
525
 
517
526
  case 'set':
518
527
  mut_result.set(key, action.value);
528
+
519
529
  break;
520
530
 
521
531
  case 'update': {
@@ -527,6 +537,7 @@ class IMapMappedClass<K, V, KM extends MapSetKeyType>
527
537
  `IMapMapped.withMutations::update: key not found: ${String(key)}`,
528
538
  );
529
539
  }
540
+
530
541
  break;
531
542
  }
532
543
 
@@ -2,13 +2,17 @@ import { Optional } from '../functional/index.mjs';
2
2
  import { IMapMapped } from './imap-mapped.mjs';
3
3
 
4
4
  const toKey = (a: Readonly<{ v: number }>): number => a.v;
5
+
5
6
  const fromKey = (k: number): Readonly<{ v: number }> => ({ v: k });
6
7
 
7
8
  type TestKey = { id: number; type: string };
9
+
8
10
  const testKeyToString = (key: Readonly<TestKey>): string =>
9
11
  `${key.type}_${key.id}`;
12
+
10
13
  const stringToTestKey = (str: string): TestKey => {
11
14
  const [type, idStr] = str.split('_');
15
+
12
16
  return { type: type ?? '', id: Number(idStr ?? '0') };
13
17
  };
14
18
 
@@ -65,7 +69,9 @@ describe('IMapMapped.create', () => {
65
69
  );
66
70
 
67
71
  expect(map.size).toBe(2);
72
+
68
73
  expect(Optional.unwrap(map.get({ id: 1, type: 'user' }))).toBe('Alice');
74
+
69
75
  expect(Optional.unwrap(map.get({ id: 2, type: 'admin' }))).toBe('Bob');
70
76
  });
71
77
 
@@ -78,23 +84,29 @@ describe('IMapMapped.create', () => {
78
84
  testKeyToString,
79
85
  stringToTestKey,
80
86
  );
87
+
81
88
  const copy = IMapMapped.create(original, testKeyToString, stringToTestKey);
82
89
 
83
90
  expect(copy.size).toBe(2);
91
+
84
92
  expect(Optional.unwrap(copy.get({ id: 1, type: 'user' }))).toBe('Alice');
93
+
85
94
  expect(Optional.unwrap(copy.get({ id: 2, type: 'admin' }))).toBe('Bob');
86
95
  });
87
96
 
88
97
  test('should handle complex key transformations', () => {
89
98
  type ComplexKey = { nested: { id: number }; arr: number[] };
99
+
90
100
  const complexKeyToString = (
91
101
  key: DeepReadonly<{
92
102
  nested: { id: number };
93
103
  arr: number[];
94
104
  }>,
95
105
  ): string => `${key.nested.id}_${key.arr.join(',')}`;
106
+
96
107
  const stringToComplexKey = (str: string): ComplexKey => {
97
108
  const [idStr, arrStr] = str.split('_');
109
+
98
110
  return {
99
111
  nested: { id: Number(idStr ?? '0') },
100
112
  arr: (arrStr ?? '').split(',').map(Number),
@@ -108,6 +120,7 @@ describe('IMapMapped.create', () => {
108
120
  );
109
121
 
110
122
  expect(map.size).toBe(1);
123
+
111
124
  expect(
112
125
  Optional.unwrap(map.get({ nested: { id: 1 }, arr: [1, 2, 3] })),
113
126
  ).toBe('test');
@@ -124,6 +137,7 @@ describe('IMapMapped.equal', () => {
124
137
  testKeyToString,
125
138
  stringToTestKey,
126
139
  );
140
+
127
141
  const map2 = IMapMapped.create(
128
142
  [
129
143
  [{ id: 1, type: 'user' }, 'Alice'],
@@ -135,8 +149,11 @@ describe('IMapMapped.equal', () => {
135
149
 
136
150
  // Test structural equality, not reference equality
137
151
  expect(map1.size).toBe(map2.size);
152
+
138
153
  expect(map1.has({ id: 1, type: 'user' })).toBe(true);
154
+
139
155
  expect(map2.has({ id: 1, type: 'user' })).toBe(true);
156
+
140
157
  expect(Optional.unwrap(map1.get({ id: 1, type: 'user' }))).toBe(
141
158
  Optional.unwrap(map2.get({ id: 1, type: 'user' })),
142
159
  );
@@ -151,6 +168,7 @@ describe('IMapMapped.equal', () => {
151
168
  testKeyToString,
152
169
  stringToTestKey,
153
170
  );
171
+
154
172
  const map2 = IMapMapped.create(
155
173
  [
156
174
  [{ id: 1, type: 'user' }, 'Alice'],
@@ -172,6 +190,7 @@ describe('IMapMapped.equal', () => {
172
190
  testKeyToString,
173
191
  stringToTestKey,
174
192
  );
193
+
175
194
  const map2 = IMapMapped.create(
176
195
  [
177
196
  [{ id: 1, type: 'user' }, 'Alice'],
@@ -190,6 +209,7 @@ describe('IMapMapped.equal', () => {
190
209
  testKeyToString,
191
210
  stringToTestKey,
192
211
  );
212
+
193
213
  const map2 = IMapMapped.create<TestKey, string, string>(
194
214
  [],
195
215
  testKeyToString,
@@ -321,6 +341,7 @@ describe('IMapMapped.set', () => {
321
341
  fromKey,
322
342
  ),
323
343
  );
344
+
324
345
  assert.deepStrictEqual(
325
346
  s0,
326
347
  IMapMapped.create(
@@ -358,6 +379,7 @@ describe('IMapMapped.set', () => {
358
379
  fromKey,
359
380
  ),
360
381
  );
382
+
361
383
  assert.deepStrictEqual(
362
384
  s0,
363
385
  IMapMapped.create(
@@ -383,6 +405,7 @@ describe('IMapMapped.set', () => {
383
405
  s0.set({ v: 1 }, '1'),
384
406
  IMapMapped.create([[{ v: 1 }, '1']], toKey, fromKey),
385
407
  );
408
+
386
409
  assert.deepStrictEqual(s0, IMapMapped.create([], toKey, fromKey));
387
410
  });
388
411
  });
@@ -394,6 +417,7 @@ describe('IMapMapped.update', () => {
394
417
  testKeyToString,
395
418
  stringToTestKey,
396
419
  );
420
+
397
421
  const updated = map.update({ id: 1, type: 'user' }, (name) =>
398
422
  name.toUpperCase(),
399
423
  );
@@ -407,11 +431,13 @@ describe('IMapMapped.update', () => {
407
431
  testKeyToString,
408
432
  stringToTestKey,
409
433
  );
434
+
410
435
  const updated = map.update({ id: 2, type: 'user' }, (name) =>
411
436
  name.toUpperCase(),
412
437
  );
413
438
 
414
439
  expect(updated).toBe(map);
440
+
415
441
  expect(Optional.isNone(updated.get({ id: 2, type: 'user' }))).toBe(true);
416
442
  });
417
443
  });
@@ -440,6 +466,7 @@ describe('IMapMapped.delete', () => {
440
466
  fromKey,
441
467
  ),
442
468
  );
469
+
443
470
  assert.deepStrictEqual(
444
471
  s0,
445
472
  IMapMapped.create(
@@ -476,6 +503,7 @@ describe('IMapMapped.delete', () => {
476
503
  fromKey,
477
504
  ),
478
505
  );
506
+
479
507
  assert.deepStrictEqual(
480
508
  s0,
481
509
  IMapMapped.create(
@@ -497,6 +525,7 @@ describe('IMapMapped.delete', () => {
497
525
  s0.delete({ v: 1 }),
498
526
  IMapMapped.create([], toKey, fromKey),
499
527
  );
528
+
500
529
  assert.deepStrictEqual(s0, IMapMapped.create([], toKey, fromKey));
501
530
  });
502
531
 
@@ -509,10 +538,13 @@ describe('IMapMapped.delete', () => {
509
538
  testKeyToString,
510
539
  stringToTestKey,
511
540
  );
541
+
512
542
  const updated = map.delete({ id: 2, type: 'admin' });
513
543
 
514
544
  expect(updated).not.toBe(map); // Should return new instance
545
+
515
546
  expect(updated.size).toBe(1);
547
+
516
548
  expect(map.size).toBe(2); // Original unchanged
517
549
  });
518
550
  });
@@ -614,7 +646,9 @@ describe('IMapMapped.withMutations', () => {
614
646
  ]);
615
647
 
616
648
  expect(updated.size).toBe(2);
649
+
617
650
  expect(Optional.unwrap(updated.get({ id: 1, type: 'user' }))).toBe('ALICE');
651
+
618
652
  expect(Optional.unwrap(updated.get({ id: 2, type: 'admin' }))).toBe('Bob');
619
653
  });
620
654
 
@@ -624,9 +658,11 @@ describe('IMapMapped.withMutations', () => {
624
658
  testKeyToString,
625
659
  stringToTestKey,
626
660
  );
661
+
627
662
  const updated = map.withMutations([]);
628
663
 
629
664
  expect(updated.size).toBe(1);
665
+
630
666
  expect(Optional.unwrap(updated.get({ id: 1, type: 'user' }))).toBe('Alice');
631
667
  });
632
668
  });
@@ -641,11 +677,13 @@ describe('IMapMapped.map', () => {
641
677
  testKeyToString,
642
678
  stringToTestKey,
643
679
  );
680
+
644
681
  const transformed = map.map((value) => value.toUpperCase());
645
682
 
646
683
  expect(Optional.unwrap(transformed.get({ id: 1, type: 'user' }))).toBe(
647
684
  'ALICE',
648
685
  );
686
+
649
687
  expect(Optional.unwrap(transformed.get({ id: 2, type: 'admin' }))).toBe(
650
688
  'BOB',
651
689
  );
@@ -660,11 +698,13 @@ describe('IMapMapped.map', () => {
660
698
  testKeyToString,
661
699
  stringToTestKey,
662
700
  );
701
+
663
702
  const transformed = map.map((value, key) => `${key.type}:${value}`);
664
703
 
665
704
  expect(Optional.unwrap(transformed.get({ id: 1, type: 'user' }))).toBe(
666
705
  'user:Alice',
667
706
  );
707
+
668
708
  expect(Optional.unwrap(transformed.get({ id: 2, type: 'admin' }))).toBe(
669
709
  'admin:Bob',
670
710
  );
@@ -681,14 +721,17 @@ describe('IMapMapped.mapKeys', () => {
681
721
  testKeyToString,
682
722
  stringToTestKey,
683
723
  );
724
+
684
725
  const transformed = map.mapKeys((key) => ({ ...key, id: key.id * 10 }));
685
726
 
686
727
  expect(Optional.isNone(transformed.get({ id: 1, type: 'user' }))).toBe(
687
728
  true,
688
729
  );
730
+
689
731
  expect(Optional.unwrap(transformed.get({ id: 10, type: 'user' }))).toBe(
690
732
  'Alice',
691
733
  );
734
+
692
735
  expect(Optional.unwrap(transformed.get({ id: 20, type: 'admin' }))).toBe(
693
736
  'Bob',
694
737
  );
@@ -705,6 +748,7 @@ describe('IMapMapped.mapEntries', () => {
705
748
  testKeyToString,
706
749
  stringToTestKey,
707
750
  );
751
+
708
752
  const transformed = map.mapEntries(([key, value]) => [
709
753
  { ...key, id: key.id * 10 },
710
754
  value.toUpperCase(),
@@ -713,6 +757,7 @@ describe('IMapMapped.mapEntries', () => {
713
757
  expect(Optional.unwrap(transformed.get({ id: 10, type: 'user' }))).toBe(
714
758
  'ALICE',
715
759
  );
760
+
716
761
  expect(Optional.unwrap(transformed.get({ id: 20, type: 'admin' }))).toBe(
717
762
  'BOB',
718
763
  );
@@ -730,11 +775,14 @@ describe('IMapMapped.forEach', () => {
730
775
  toKey,
731
776
  fromKey,
732
777
  );
778
+
733
779
  const keys = [{ v: 1 }, { v: 2 }, { v: 3 }];
780
+
734
781
  const values = ['1', '2', '3'];
735
782
 
736
783
  for (const [key, value] of s0.entries()) {
737
784
  expect(keys).toContainEqual(key);
785
+
738
786
  expect(values).toContainEqual(value);
739
787
  }
740
788
  });
@@ -748,6 +796,7 @@ describe('IMapMapped.forEach', () => {
748
796
  testKeyToString,
749
797
  stringToTestKey,
750
798
  );
799
+
751
800
  const mut_collected: [TestKey, string][] = [];
752
801
 
753
802
  for (const [key, value] of map.entries()) {
@@ -755,7 +804,9 @@ describe('IMapMapped.forEach', () => {
755
804
  }
756
805
 
757
806
  expect(mut_collected).toHaveLength(2);
807
+
758
808
  expect(mut_collected).toContainEqual([{ id: 1, type: 'user' }, 'Alice']);
809
+
759
810
  expect(mut_collected).toContainEqual([{ id: 2, type: 'admin' }, 'Bob']);
760
811
  });
761
812
  });
@@ -771,6 +822,7 @@ describe('IMapMapped.keys', () => {
771
822
  toKey,
772
823
  fromKey,
773
824
  );
825
+
774
826
  const keys = [{ v: 1 }, { v: 2 }, { v: 3 }];
775
827
 
776
828
  for (const k of s0.keys()) {
@@ -790,6 +842,7 @@ describe('IMapMapped.values', () => {
790
842
  toKey,
791
843
  fromKey,
792
844
  );
845
+
793
846
  const values = ['1', '2', '3'];
794
847
 
795
848
  for (const v of s0.values()) {
@@ -809,11 +862,14 @@ describe('IMapMapped.entries', () => {
809
862
  toKey,
810
863
  fromKey,
811
864
  );
865
+
812
866
  const keys = [{ v: 1 }, { v: 2 }, { v: 3 }];
867
+
813
868
  const values = ['1', '2', '3'];
814
869
 
815
870
  for (const [k, v] of s0.entries()) {
816
871
  expect(keys).toContainEqual(k);
872
+
817
873
  expect(values).toContainEqual(v);
818
874
  }
819
875
  });
@@ -829,10 +885,13 @@ describe('IMapMapped.toKeysArray', () => {
829
885
  testKeyToString,
830
886
  stringToTestKey,
831
887
  );
888
+
832
889
  const keys = map.toKeysArray();
833
890
 
834
891
  expect(keys).toHaveLength(2);
892
+
835
893
  expect(keys).toContainEqual({ id: 1, type: 'user' });
894
+
836
895
  expect(keys).toContainEqual({ id: 2, type: 'admin' });
837
896
  });
838
897
  });
@@ -847,10 +906,13 @@ describe('IMapMapped.toValuesArray', () => {
847
906
  testKeyToString,
848
907
  stringToTestKey,
849
908
  );
909
+
850
910
  const values = map.toValuesArray();
851
911
 
852
912
  expect(values).toHaveLength(2);
913
+
853
914
  expect(values).toContain('Alice');
915
+
854
916
  expect(values).toContain('Bob');
855
917
  });
856
918
  });
@@ -865,10 +927,13 @@ describe('IMapMapped.toEntriesArray', () => {
865
927
  testKeyToString,
866
928
  stringToTestKey,
867
929
  );
930
+
868
931
  const entries = map.toEntriesArray();
869
932
 
870
933
  expect(entries).toHaveLength(2);
934
+
871
935
  expect(entries).toContainEqual([{ id: 1, type: 'user' }, 'Alice']);
936
+
872
937
  expect(entries).toContainEqual([{ id: 2, type: 'admin' }, 'Bob']);
873
938
  });
874
939
  });
@@ -883,7 +948,9 @@ describe('IMapMapped.toArray', () => {
883
948
  testKeyToString,
884
949
  stringToTestKey,
885
950
  );
951
+
886
952
  const entries = map.toArray();
953
+
887
954
  const entriesArray = map.toEntriesArray();
888
955
 
889
956
  assert.deepStrictEqual(entries, entriesArray);
@@ -900,10 +967,13 @@ describe('IMapMapped.toRawMap', () => {
900
967
  testKeyToString,
901
968
  stringToTestKey,
902
969
  );
970
+
903
971
  const rawMap = map.toRawMap();
904
972
 
905
973
  expect(rawMap.size).toBe(2);
974
+
906
975
  expect(rawMap.get('user_1')).toBe('Alice');
976
+
907
977
  expect(rawMap.get('admin_2')).toBe('Bob');
908
978
  });
909
979
  });
@@ -62,6 +62,7 @@ type IMapInterface<K extends MapSetKeyType, V> = Readonly<{
62
62
  * ]);
63
63
  *
64
64
  * assert.ok(map.has('id'));
65
+ *
65
66
  * assert.notOk(map.has('missing'));
66
67
  * ```
67
68
  *
@@ -79,6 +80,7 @@ type IMapInterface<K extends MapSetKeyType, V> = Readonly<{
79
80
  * const map = IMap.create([['user', { id: 1 }]]);
80
81
  *
81
82
  * assert.deepStrictEqual(map.get('user'), Optional.some({ id: 1 }));
83
+ *
82
84
  * assert.deepStrictEqual(map.get('missing'), Optional.none);
83
85
  * ```
84
86
  *
@@ -102,9 +104,11 @@ type IMapInterface<K extends MapSetKeyType, V> = Readonly<{
102
104
  * ]);
103
105
  *
104
106
  * const allEven = map.every((value) => value % 2 === 0);
107
+ *
105
108
  * const isNarrowed = map.every((value): value is 2 | 4 => value % 2 === 0);
106
109
  *
107
110
  * assert.ok(allEven);
111
+ *
108
112
  * assert.ok(isNarrowed);
109
113
  * ```
110
114
  *
@@ -139,6 +143,7 @@ type IMapInterface<K extends MapSetKeyType, V> = Readonly<{
139
143
  * const map = IMap.create(entries);
140
144
  *
141
145
  * assert.ok(map.some((value) => value > 4));
146
+ *
142
147
  * assert.notOk(map.some((value) => value > 10));
143
148
  * ```
144
149
  *
@@ -164,8 +169,11 @@ type IMapInterface<K extends MapSetKeyType, V> = Readonly<{
164
169
  * const withoutB = original.delete('b');
165
170
  *
166
171
  * assert.deepStrictEqual(original.get('b'), Optional.some(2));
172
+ *
167
173
  * assert.deepStrictEqual(withoutB.get('b'), Optional.none);
174
+ *
168
175
  * assert(original.size === 2);
176
+ *
169
177
  * assert(withoutB.size === 1);
170
178
  * ```
171
179
  *
@@ -188,10 +196,13 @@ type IMapInterface<K extends MapSetKeyType, V> = Readonly<{
188
196
  * const base = IMap.create<'count' | 'status', number | string>(entries);
189
197
  *
190
198
  * const updated = base.set('count', 2);
199
+ *
191
200
  * const extended = base.set('status', 'ok');
192
201
  *
193
202
  * assert.deepStrictEqual(base.get('count'), Optional.some(1));
203
+ *
194
204
  * assert.deepStrictEqual(updated.get('count'), Optional.some(2));
205
+ *
195
206
  * assert.deepStrictEqual(extended.get('status'), Optional.some('ok'));
196
207
  * ```
197
208
  *
@@ -215,10 +226,13 @@ type IMapInterface<K extends MapSetKeyType, V> = Readonly<{
215
226
  * const scores = IMap.create<'alice' | 'bob' | 'charlie', number>(entries);
216
227
  *
217
228
  * const boosted = scores.update('alice', (value) => value + 5);
229
+ *
218
230
  * const unchanged = scores.update('charlie', (value) => value + 1);
219
231
  *
220
232
  * assert.deepStrictEqual(boosted.get('alice'), Optional.some(15));
233
+ *
221
234
  * assert.deepStrictEqual(scores.get('alice'), Optional.some(10));
235
+ *
222
236
  * assert(unchanged === scores);
223
237
  * ```
224
238
  *
@@ -255,8 +269,11 @@ type IMapInterface<K extends MapSetKeyType, V> = Readonly<{
255
269
  * const mutated = base.withMutations(actions);
256
270
  *
257
271
  * assert.deepStrictEqual(mutated.get('c'), Optional.some(3));
272
+ *
258
273
  * assert.deepStrictEqual(mutated.get('b'), Optional.some(20));
274
+ *
259
275
  * assert.deepStrictEqual(mutated.get('a'), Optional.none);
276
+ *
260
277
  * assert.deepStrictEqual(base.get('b'), Optional.some(2));
261
278
  * ```
262
279
  *
@@ -559,6 +576,7 @@ type IMapInterface<K extends MapSetKeyType, V> = Readonly<{
559
576
  * const raw = map.toRawMap();
560
577
  *
561
578
  * assert.ok(is.map(raw));
579
+ *
562
580
  * assert(raw.get('key') === 1);
563
581
  * ```
564
582
  *
@@ -616,6 +634,7 @@ export namespace IMap {
616
634
  * ]);
617
635
  *
618
636
  * assert(map.size === 2);
637
+ *
619
638
  * assert.deepStrictEqual(map.get('status'), Optional.some('active'));
620
639
  * ```
621
640
  *
@@ -658,6 +677,7 @@ export namespace IMap {
658
677
  * ]);
659
678
  *
660
679
  * assert.ok(IMap.equal(first, second));
680
+ *
661
681
  * assert.notOk(IMap.equal(first, third));
662
682
  * ```
663
683
  *
@@ -719,6 +739,7 @@ class IMapClass<K extends MapSetKeyType, V>
719
739
  showNotFoundMessage: boolean = false,
720
740
  ) {
721
741
  this.#map = new Map(iterable);
742
+
722
743
  this.#showNotFoundMessage = showNotFoundMessage;
723
744
  }
724
745
 
@@ -736,6 +757,7 @@ class IMapClass<K extends MapSetKeyType, V>
736
757
  /** @inheritdoc */
737
758
  get(key: K | (WidenLiteral<K> & {})): Optional<V> {
738
759
  if (!this.has(key)) return Optional.none;
760
+
739
761
  // eslint-disable-next-line total-functions/no-unsafe-type-assertion, @typescript-eslint/no-non-null-assertion
740
762
  return Optional.some(this.#map.get(key as K)!);
741
763
  }
@@ -771,8 +793,10 @@ class IMapClass<K extends MapSetKeyType, V>
771
793
  if (!this.has(key)) {
772
794
  if (this.#showNotFoundMessage) {
773
795
  const keyStr = unknownToString(key);
796
+
774
797
  console.warn(`IMap.delete: key not found: ${keyStr}`);
775
798
  }
799
+
776
800
  return this;
777
801
  }
778
802
 
@@ -784,7 +808,9 @@ class IMapClass<K extends MapSetKeyType, V>
784
808
  /** @inheritdoc */
785
809
  set(key: K, value: V): IMap<K, V> {
786
810
  const curr = this.get(key);
811
+
787
812
  if (Optional.isSome(curr) && value === curr.value) return this; // has no changes
813
+
788
814
  if (!this.has(key)) {
789
815
  return IMap.create([...this.#map, tp(key, value)]);
790
816
  } else {
@@ -801,8 +827,10 @@ class IMapClass<K extends MapSetKeyType, V>
801
827
  if (Optional.isNone(curr)) {
802
828
  if (this.#showNotFoundMessage) {
803
829
  const keyStr = unknownToString(key);
830
+
804
831
  console.warn(`IMap.update: key not found: ${keyStr}`);
805
832
  }
833
+
806
834
  return this;
807
835
  }
808
836
 
@@ -827,10 +855,12 @@ class IMapClass<K extends MapSetKeyType, V>
827
855
  switch (action.type) {
828
856
  case 'delete':
829
857
  mut_result.delete(action.key);
858
+
830
859
  break;
831
860
 
832
861
  case 'set':
833
862
  mut_result.set(action.key, action.value);
863
+
834
864
  break;
835
865
 
836
866
  case 'update': {
@@ -841,8 +871,10 @@ class IMapClass<K extends MapSetKeyType, V>
841
871
  if (!mut_result.has(key) || curr === undefined) {
842
872
  if (this.#showNotFoundMessage) {
843
873
  const keyStr = unknownToString(key);
874
+
844
875
  console.warn(`IMap.withMutations: key not found: ${keyStr}`);
845
876
  }
877
+
846
878
  break;
847
879
  }
848
880