ts-data-forge 5.0.1 → 5.1.1

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 (539) hide show
  1. package/README.md +101 -50
  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 +34 -10
  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 +34 -4
  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 +20 -7
  20. package/dist/array/impl/array-utils-set-op.d.mts.map +1 -1
  21. package/dist/array/impl/array-utils-set-op.mjs +20 -7
  22. package/dist/array/impl/array-utils-set-op.mjs.map +1 -1
  23. package/dist/array/impl/array-utils-size.d.mts +5 -2
  24. package/dist/array/impl/array-utils-size.d.mts.map +1 -1
  25. package/dist/array/impl/array-utils-size.mjs +5 -2
  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 +17 -2
  31. package/dist/array/impl/array-utils-slicing.d.mts.map +1 -1
  32. package/dist/array/impl/array-utils-slicing.mjs +9 -2
  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 +35 -18
  39. package/dist/array/impl/array-utils-validation.d.mts.map +1 -1
  40. package/dist/array/impl/array-utils-validation.mjs +25 -14
  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 +35 -15
  44. package/dist/collections/imap.d.mts.map +1 -1
  45. package/dist/collections/imap.mjs +5 -3
  46. package/dist/collections/imap.mjs.map +1 -1
  47. package/dist/collections/iset-mapped.d.mts +46 -19
  48. package/dist/collections/iset-mapped.d.mts.map +1 -1
  49. package/dist/collections/iset-mapped.mjs +9 -2
  50. package/dist/collections/iset-mapped.mjs.map +1 -1
  51. package/dist/collections/iset.d.mts +48 -19
  52. package/dist/collections/iset.d.mts.map +1 -1
  53. package/dist/collections/iset.mjs +9 -2
  54. package/dist/collections/iset.mjs.map +1 -1
  55. package/dist/collections/queue.d.mts +65 -25
  56. package/dist/collections/queue.d.mts.map +1 -1
  57. package/dist/collections/queue.mjs +13 -5
  58. package/dist/collections/queue.mjs.map +1 -1
  59. package/dist/collections/stack.d.mts +60 -25
  60. package/dist/collections/stack.d.mts.map +1 -1
  61. package/dist/collections/stack.mjs +12 -5
  62. package/dist/collections/stack.mjs.map +1 -1
  63. package/dist/entry-point.mjs +1 -1
  64. package/dist/functional/match.d.mts +1 -1
  65. package/dist/functional/match.d.mts.map +1 -1
  66. package/dist/functional/match.mjs.map +1 -1
  67. package/dist/functional/optional/impl/optional-expect-to-be.d.mts +3 -2
  68. package/dist/functional/optional/impl/optional-expect-to-be.d.mts.map +1 -1
  69. package/dist/functional/optional/impl/optional-expect-to-be.mjs.map +1 -1
  70. package/dist/functional/optional/impl/optional-filter.d.mts +3 -0
  71. package/dist/functional/optional/impl/optional-filter.d.mts.map +1 -1
  72. package/dist/functional/optional/impl/optional-filter.mjs.map +1 -1
  73. package/dist/functional/optional/impl/optional-flat-map.d.mts +2 -0
  74. package/dist/functional/optional/impl/optional-flat-map.d.mts.map +1 -1
  75. package/dist/functional/optional/impl/optional-flat-map.mjs.map +1 -1
  76. package/dist/functional/optional/impl/optional-from-nullable.d.mts +2 -0
  77. package/dist/functional/optional/impl/optional-from-nullable.d.mts.map +1 -1
  78. package/dist/functional/optional/impl/optional-from-nullable.mjs +2 -0
  79. package/dist/functional/optional/impl/optional-from-nullable.mjs.map +1 -1
  80. package/dist/functional/optional/impl/optional-is-none.d.mts +1 -1
  81. package/dist/functional/optional/impl/optional-is-none.mjs +1 -1
  82. package/dist/functional/optional/impl/optional-is-optional.d.mts +4 -2
  83. package/dist/functional/optional/impl/optional-is-optional.d.mts.map +1 -1
  84. package/dist/functional/optional/impl/optional-is-optional.mjs +4 -2
  85. package/dist/functional/optional/impl/optional-is-optional.mjs.map +1 -1
  86. package/dist/functional/optional/impl/optional-is-some.d.mts +2 -1
  87. package/dist/functional/optional/impl/optional-is-some.d.mts.map +1 -1
  88. package/dist/functional/optional/impl/optional-is-some.mjs +2 -1
  89. package/dist/functional/optional/impl/optional-is-some.mjs.map +1 -1
  90. package/dist/functional/optional/impl/optional-map.d.mts +2 -0
  91. package/dist/functional/optional/impl/optional-map.d.mts.map +1 -1
  92. package/dist/functional/optional/impl/optional-map.mjs.map +1 -1
  93. package/dist/functional/optional/impl/optional-none.d.mts +4 -2
  94. package/dist/functional/optional/impl/optional-none.d.mts.map +1 -1
  95. package/dist/functional/optional/impl/optional-none.mjs +4 -2
  96. package/dist/functional/optional/impl/optional-none.mjs.map +1 -1
  97. package/dist/functional/optional/impl/optional-or-else.d.mts +4 -0
  98. package/dist/functional/optional/impl/optional-or-else.d.mts.map +1 -1
  99. package/dist/functional/optional/impl/optional-or-else.mjs.map +1 -1
  100. package/dist/functional/optional/impl/optional-some.d.mts +5 -3
  101. package/dist/functional/optional/impl/optional-some.d.mts.map +1 -1
  102. package/dist/functional/optional/impl/optional-some.mjs +4 -2
  103. package/dist/functional/optional/impl/optional-some.mjs.map +1 -1
  104. package/dist/functional/optional/impl/optional-to-nullable.d.mts +4 -2
  105. package/dist/functional/optional/impl/optional-to-nullable.d.mts.map +1 -1
  106. package/dist/functional/optional/impl/optional-to-nullable.mjs +4 -2
  107. package/dist/functional/optional/impl/optional-to-nullable.mjs.map +1 -1
  108. package/dist/functional/optional/impl/optional-unwrap-or.d.mts +7 -4
  109. package/dist/functional/optional/impl/optional-unwrap-or.d.mts.map +1 -1
  110. package/dist/functional/optional/impl/optional-unwrap-or.mjs.map +1 -1
  111. package/dist/functional/optional/impl/optional-unwrap-throw.d.mts +2 -1
  112. package/dist/functional/optional/impl/optional-unwrap-throw.d.mts.map +1 -1
  113. package/dist/functional/optional/impl/optional-unwrap-throw.mjs +2 -1
  114. package/dist/functional/optional/impl/optional-unwrap-throw.mjs.map +1 -1
  115. package/dist/functional/optional/impl/optional-unwrap.d.mts +4 -2
  116. package/dist/functional/optional/impl/optional-unwrap.d.mts.map +1 -1
  117. package/dist/functional/optional/impl/optional-unwrap.mjs.map +1 -1
  118. package/dist/functional/optional/impl/optional-zip.d.mts +3 -1
  119. package/dist/functional/optional/impl/optional-zip.d.mts.map +1 -1
  120. package/dist/functional/optional/impl/optional-zip.mjs +3 -1
  121. package/dist/functional/optional/impl/optional-zip.mjs.map +1 -1
  122. package/dist/functional/pipe.d.mts +2 -2
  123. package/dist/functional/result/impl/result-err.d.mts +4 -2
  124. package/dist/functional/result/impl/result-err.d.mts.map +1 -1
  125. package/dist/functional/result/impl/result-err.mjs +3 -1
  126. package/dist/functional/result/impl/result-err.mjs.map +1 -1
  127. package/dist/functional/result/impl/result-expect-to-be.d.mts +3 -2
  128. package/dist/functional/result/impl/result-expect-to-be.d.mts.map +1 -1
  129. package/dist/functional/result/impl/result-expect-to-be.mjs.map +1 -1
  130. package/dist/functional/result/impl/result-flat-map.d.mts +5 -0
  131. package/dist/functional/result/impl/result-flat-map.d.mts.map +1 -1
  132. package/dist/functional/result/impl/result-flat-map.mjs.map +1 -1
  133. package/dist/functional/result/impl/result-fold.d.mts +4 -0
  134. package/dist/functional/result/impl/result-fold.d.mts.map +1 -1
  135. package/dist/functional/result/impl/result-fold.mjs.map +1 -1
  136. package/dist/functional/result/impl/result-from-promise.d.mts +4 -1
  137. package/dist/functional/result/impl/result-from-promise.d.mts.map +1 -1
  138. package/dist/functional/result/impl/result-from-promise.mjs +4 -1
  139. package/dist/functional/result/impl/result-from-promise.mjs.map +1 -1
  140. package/dist/functional/result/impl/result-from-throwable.d.mts +3 -1
  141. package/dist/functional/result/impl/result-from-throwable.d.mts.map +1 -1
  142. package/dist/functional/result/impl/result-from-throwable.mjs +3 -1
  143. package/dist/functional/result/impl/result-from-throwable.mjs.map +1 -1
  144. package/dist/functional/result/impl/result-is-err.d.mts +4 -2
  145. package/dist/functional/result/impl/result-is-err.d.mts.map +1 -1
  146. package/dist/functional/result/impl/result-is-err.mjs +4 -2
  147. package/dist/functional/result/impl/result-is-err.mjs.map +1 -1
  148. package/dist/functional/result/impl/result-is-ok.d.mts +4 -2
  149. package/dist/functional/result/impl/result-is-ok.d.mts.map +1 -1
  150. package/dist/functional/result/impl/result-is-ok.mjs +4 -2
  151. package/dist/functional/result/impl/result-is-ok.mjs.map +1 -1
  152. package/dist/functional/result/impl/result-is-result.d.mts +7 -3
  153. package/dist/functional/result/impl/result-is-result.d.mts.map +1 -1
  154. package/dist/functional/result/impl/result-is-result.mjs +7 -3
  155. package/dist/functional/result/impl/result-is-result.mjs.map +1 -1
  156. package/dist/functional/result/impl/result-map-err.d.mts +3 -0
  157. package/dist/functional/result/impl/result-map-err.d.mts.map +1 -1
  158. package/dist/functional/result/impl/result-map-err.mjs.map +1 -1
  159. package/dist/functional/result/impl/result-map.d.mts +4 -0
  160. package/dist/functional/result/impl/result-map.d.mts.map +1 -1
  161. package/dist/functional/result/impl/result-map.mjs.map +1 -1
  162. package/dist/functional/result/impl/result-ok.d.mts +4 -2
  163. package/dist/functional/result/impl/result-ok.d.mts.map +1 -1
  164. package/dist/functional/result/impl/result-ok.mjs +3 -1
  165. package/dist/functional/result/impl/result-ok.mjs.map +1 -1
  166. package/dist/functional/result/impl/result-or-else.d.mts +4 -0
  167. package/dist/functional/result/impl/result-or-else.d.mts.map +1 -1
  168. package/dist/functional/result/impl/result-or-else.mjs.map +1 -1
  169. package/dist/functional/result/impl/result-swap.d.mts +2 -0
  170. package/dist/functional/result/impl/result-swap.d.mts.map +1 -1
  171. package/dist/functional/result/impl/result-swap.mjs +2 -0
  172. package/dist/functional/result/impl/result-swap.mjs.map +1 -1
  173. package/dist/functional/result/impl/result-to-optional.d.mts +2 -0
  174. package/dist/functional/result/impl/result-to-optional.d.mts.map +1 -1
  175. package/dist/functional/result/impl/result-to-optional.mjs +2 -0
  176. package/dist/functional/result/impl/result-to-optional.mjs.map +1 -1
  177. package/dist/functional/result/impl/result-unwrap-err-or.d.mts +7 -4
  178. package/dist/functional/result/impl/result-unwrap-err-or.d.mts.map +1 -1
  179. package/dist/functional/result/impl/result-unwrap-err-or.mjs.map +1 -1
  180. package/dist/functional/result/impl/result-unwrap-err-throw.d.mts +3 -1
  181. package/dist/functional/result/impl/result-unwrap-err-throw.d.mts.map +1 -1
  182. package/dist/functional/result/impl/result-unwrap-err-throw.mjs +3 -1
  183. package/dist/functional/result/impl/result-unwrap-err-throw.mjs.map +1 -1
  184. package/dist/functional/result/impl/result-unwrap-err.d.mts +3 -2
  185. package/dist/functional/result/impl/result-unwrap-err.d.mts.map +1 -1
  186. package/dist/functional/result/impl/result-unwrap-err.mjs +3 -2
  187. package/dist/functional/result/impl/result-unwrap-err.mjs.map +1 -1
  188. package/dist/functional/result/impl/result-unwrap-ok-or.d.mts +7 -4
  189. package/dist/functional/result/impl/result-unwrap-ok-or.d.mts.map +1 -1
  190. package/dist/functional/result/impl/result-unwrap-ok-or.mjs.map +1 -1
  191. package/dist/functional/result/impl/result-unwrap-ok.d.mts +3 -2
  192. package/dist/functional/result/impl/result-unwrap-ok.d.mts.map +1 -1
  193. package/dist/functional/result/impl/result-unwrap-ok.mjs.map +1 -1
  194. package/dist/functional/result/impl/result-unwrap-throw.d.mts +3 -1
  195. package/dist/functional/result/impl/result-unwrap-throw.d.mts.map +1 -1
  196. package/dist/functional/result/impl/result-unwrap-throw.mjs +3 -1
  197. package/dist/functional/result/impl/result-unwrap-throw.mjs.map +1 -1
  198. package/dist/functional/result/impl/result-zip.d.mts +3 -1
  199. package/dist/functional/result/impl/result-zip.d.mts.map +1 -1
  200. package/dist/functional/result/impl/result-zip.mjs +3 -1
  201. package/dist/functional/result/impl/result-zip.mjs.map +1 -1
  202. package/dist/functional/ternary-result/impl/ternary-result-err.d.mts +3 -2
  203. package/dist/functional/ternary-result/impl/ternary-result-err.d.mts.map +1 -1
  204. package/dist/functional/ternary-result/impl/ternary-result-err.mjs +2 -1
  205. package/dist/functional/ternary-result/impl/ternary-result-err.mjs.map +1 -1
  206. package/dist/functional/ternary-result/impl/ternary-result-expect-to-be.d.mts +1 -0
  207. package/dist/functional/ternary-result/impl/ternary-result-expect-to-be.d.mts.map +1 -1
  208. package/dist/functional/ternary-result/impl/ternary-result-expect-to-be.mjs.map +1 -1
  209. package/dist/functional/ternary-result/impl/ternary-result-flat-map.d.mts +4 -0
  210. package/dist/functional/ternary-result/impl/ternary-result-flat-map.d.mts.map +1 -1
  211. package/dist/functional/ternary-result/impl/ternary-result-flat-map.mjs.map +1 -1
  212. package/dist/functional/ternary-result/impl/ternary-result-fold.d.mts +2 -0
  213. package/dist/functional/ternary-result/impl/ternary-result-fold.d.mts.map +1 -1
  214. package/dist/functional/ternary-result/impl/ternary-result-fold.mjs.map +1 -1
  215. package/dist/functional/ternary-result/impl/ternary-result-from-promise.d.mts +3 -1
  216. package/dist/functional/ternary-result/impl/ternary-result-from-promise.d.mts.map +1 -1
  217. package/dist/functional/ternary-result/impl/ternary-result-from-promise.mjs +3 -1
  218. package/dist/functional/ternary-result/impl/ternary-result-from-promise.mjs.map +1 -1
  219. package/dist/functional/ternary-result/impl/ternary-result-from-throwable.d.mts +3 -1
  220. package/dist/functional/ternary-result/impl/ternary-result-from-throwable.d.mts.map +1 -1
  221. package/dist/functional/ternary-result/impl/ternary-result-from-throwable.mjs +3 -1
  222. package/dist/functional/ternary-result/impl/ternary-result-from-throwable.mjs.map +1 -1
  223. package/dist/functional/ternary-result/impl/ternary-result-is-ok.d.mts +1 -0
  224. package/dist/functional/ternary-result/impl/ternary-result-is-ok.d.mts.map +1 -1
  225. package/dist/functional/ternary-result/impl/ternary-result-is-ok.mjs +1 -0
  226. package/dist/functional/ternary-result/impl/ternary-result-is-ok.mjs.map +1 -1
  227. package/dist/functional/ternary-result/impl/ternary-result-is-ternary-result.d.mts +7 -3
  228. package/dist/functional/ternary-result/impl/ternary-result-is-ternary-result.d.mts.map +1 -1
  229. package/dist/functional/ternary-result/impl/ternary-result-is-ternary-result.mjs +7 -3
  230. package/dist/functional/ternary-result/impl/ternary-result-is-ternary-result.mjs.map +1 -1
  231. package/dist/functional/ternary-result/impl/ternary-result-is-warn.d.mts +1 -0
  232. package/dist/functional/ternary-result/impl/ternary-result-is-warn.d.mts.map +1 -1
  233. package/dist/functional/ternary-result/impl/ternary-result-is-warn.mjs +1 -0
  234. package/dist/functional/ternary-result/impl/ternary-result-is-warn.mjs.map +1 -1
  235. package/dist/functional/ternary-result/impl/ternary-result-map-err.d.mts +3 -0
  236. package/dist/functional/ternary-result/impl/ternary-result-map-err.d.mts.map +1 -1
  237. package/dist/functional/ternary-result/impl/ternary-result-map-err.mjs.map +1 -1
  238. package/dist/functional/ternary-result/impl/ternary-result-map-warn.d.mts +3 -0
  239. package/dist/functional/ternary-result/impl/ternary-result-map-warn.d.mts.map +1 -1
  240. package/dist/functional/ternary-result/impl/ternary-result-map-warn.mjs.map +1 -1
  241. package/dist/functional/ternary-result/impl/ternary-result-map.d.mts +6 -0
  242. package/dist/functional/ternary-result/impl/ternary-result-map.d.mts.map +1 -1
  243. package/dist/functional/ternary-result/impl/ternary-result-map.mjs.map +1 -1
  244. package/dist/functional/ternary-result/impl/ternary-result-ok.d.mts +1 -1
  245. package/dist/functional/ternary-result/impl/ternary-result-ok.d.mts.map +1 -1
  246. package/dist/functional/ternary-result/impl/ternary-result-ok.mjs.map +1 -1
  247. package/dist/functional/ternary-result/impl/ternary-result-or-else.d.mts +2 -0
  248. package/dist/functional/ternary-result/impl/ternary-result-or-else.d.mts.map +1 -1
  249. package/dist/functional/ternary-result/impl/ternary-result-or-else.mjs.map +1 -1
  250. package/dist/functional/ternary-result/impl/ternary-result-to-optional.d.mts +2 -0
  251. package/dist/functional/ternary-result/impl/ternary-result-to-optional.d.mts.map +1 -1
  252. package/dist/functional/ternary-result/impl/ternary-result-to-optional.mjs +2 -0
  253. package/dist/functional/ternary-result/impl/ternary-result-to-optional.mjs.map +1 -1
  254. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-or.d.mts +2 -0
  255. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-or.d.mts.map +1 -1
  256. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-or.mjs.map +1 -1
  257. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-throw.d.mts +1 -0
  258. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-throw.d.mts.map +1 -1
  259. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-throw.mjs +1 -0
  260. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-throw.mjs.map +1 -1
  261. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err.d.mts +2 -0
  262. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err.d.mts.map +1 -1
  263. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err.mjs +2 -0
  264. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err.mjs.map +1 -1
  265. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok-or.d.mts +2 -0
  266. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok-or.d.mts.map +1 -1
  267. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok-or.mjs.map +1 -1
  268. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok.d.mts +2 -0
  269. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok.d.mts.map +1 -1
  270. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok.mjs.map +1 -1
  271. package/dist/functional/ternary-result/impl/ternary-result-unwrap-throw.d.mts +1 -0
  272. package/dist/functional/ternary-result/impl/ternary-result-unwrap-throw.d.mts.map +1 -1
  273. package/dist/functional/ternary-result/impl/ternary-result-unwrap-throw.mjs +1 -0
  274. package/dist/functional/ternary-result/impl/ternary-result-unwrap-throw.mjs.map +1 -1
  275. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-or.d.mts +2 -0
  276. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-or.d.mts.map +1 -1
  277. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-or.mjs.map +1 -1
  278. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-throw.d.mts +1 -0
  279. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-throw.d.mts.map +1 -1
  280. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-throw.mjs +1 -0
  281. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-throw.mjs.map +1 -1
  282. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn.d.mts +2 -0
  283. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn.d.mts.map +1 -1
  284. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn.mjs +2 -0
  285. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn.mjs.map +1 -1
  286. package/dist/functional/ternary-result/impl/ternary-result-warn.d.mts +1 -1
  287. package/dist/functional/ternary-result/impl/ternary-result-warn.d.mts.map +1 -1
  288. package/dist/functional/ternary-result/impl/ternary-result-warn.mjs.map +1 -1
  289. package/dist/functional/ternary-result/impl/ternary-result-zip.d.mts +4 -0
  290. package/dist/functional/ternary-result/impl/ternary-result-zip.d.mts.map +1 -1
  291. package/dist/functional/ternary-result/impl/ternary-result-zip.mjs +4 -0
  292. package/dist/functional/ternary-result/impl/ternary-result-zip.mjs.map +1 -1
  293. package/dist/globals.d.mts +12 -1
  294. package/dist/guard/has-key.d.mts +6 -3
  295. package/dist/guard/has-key.d.mts.map +1 -1
  296. package/dist/guard/has-key.mjs +2 -2
  297. package/dist/guard/index.mjs +1 -1
  298. package/dist/guard/is-record.d.mts +31 -0
  299. package/dist/guard/is-record.d.mts.map +1 -1
  300. package/dist/guard/is-record.mjs +32 -1
  301. package/dist/guard/is-record.mjs.map +1 -1
  302. package/dist/guard/is-type.d.mts +3 -0
  303. package/dist/guard/is-type.d.mts.map +1 -1
  304. package/dist/guard/is-type.mjs +3 -0
  305. package/dist/guard/is-type.mjs.map +1 -1
  306. package/dist/guard/key-is-in.d.mts +3 -2
  307. package/dist/guard/key-is-in.d.mts.map +1 -1
  308. package/dist/guard/key-is-in.mjs +3 -2
  309. package/dist/guard/key-is-in.mjs.map +1 -1
  310. package/dist/index.mjs +1 -1
  311. package/dist/iterator/range.d.mts +4 -0
  312. package/dist/iterator/range.d.mts.map +1 -1
  313. package/dist/iterator/range.mjs +1 -0
  314. package/dist/iterator/range.mjs.map +1 -1
  315. package/dist/json/json.d.mts +42 -21
  316. package/dist/json/json.d.mts.map +1 -1
  317. package/dist/json/json.mjs +42 -21
  318. package/dist/json/json.mjs.map +1 -1
  319. package/dist/number/branded-types/int.d.mts +33 -19
  320. package/dist/number/branded-types/int.d.mts.map +1 -1
  321. package/dist/number/branded-types/int.mjs +33 -19
  322. package/dist/number/branded-types/int.mjs.map +1 -1
  323. package/dist/number/branded-types/non-zero-safe-int.mjs +2 -2
  324. package/dist/number/branded-types/positive-int.d.mts +34 -20
  325. package/dist/number/branded-types/positive-int.d.mts.map +1 -1
  326. package/dist/number/branded-types/positive-int.mjs +34 -20
  327. package/dist/number/branded-types/positive-int.mjs.map +1 -1
  328. package/dist/number/branded-types/positive-safe-int.d.mts +47 -26
  329. package/dist/number/branded-types/positive-safe-int.d.mts.map +1 -1
  330. package/dist/number/branded-types/positive-safe-int.mjs +48 -27
  331. package/dist/number/branded-types/positive-safe-int.mjs.map +1 -1
  332. package/dist/number/branded-types/safe-int.d.mts +48 -27
  333. package/dist/number/branded-types/safe-int.d.mts.map +1 -1
  334. package/dist/number/branded-types/safe-int.mjs +50 -29
  335. package/dist/number/branded-types/safe-int.mjs.map +1 -1
  336. package/dist/number/branded-types/safe-uint.mjs +1 -1
  337. package/dist/number/branded-types/uint.d.mts +31 -19
  338. package/dist/number/branded-types/uint.d.mts.map +1 -1
  339. package/dist/number/branded-types/uint.mjs +31 -19
  340. package/dist/number/branded-types/uint.mjs.map +1 -1
  341. package/dist/number/num.d.mts +29 -20
  342. package/dist/number/num.d.mts.map +1 -1
  343. package/dist/number/num.mjs +24 -17
  344. package/dist/number/num.mjs.map +1 -1
  345. package/dist/number/refined-number-utils.d.mts +33 -11
  346. package/dist/number/refined-number-utils.d.mts.map +1 -1
  347. package/dist/number/refined-number-utils.mjs +33 -11
  348. package/dist/number/refined-number-utils.mjs.map +1 -1
  349. package/dist/object/object.d.mts +12 -3
  350. package/dist/object/object.d.mts.map +1 -1
  351. package/dist/object/object.mjs +10 -3
  352. package/dist/object/object.mjs.map +1 -1
  353. package/dist/others/map-nullable.mjs.map +1 -1
  354. package/dist/others/tuple.d.mts +14 -3
  355. package/dist/others/tuple.d.mts.map +1 -1
  356. package/dist/others/tuple.mjs +14 -3
  357. package/dist/others/tuple.mjs.map +1 -1
  358. package/dist/others/unknown-to-string.d.mts.map +1 -1
  359. package/dist/others/unknown-to-string.mjs.map +1 -1
  360. package/dist/promise/promise.d.mts +8 -4
  361. package/dist/promise/promise.d.mts.map +1 -1
  362. package/dist/promise/promise.mjs +8 -4
  363. package/dist/promise/promise.mjs.map +1 -1
  364. package/package.json +26 -28
  365. package/src/array/impl/array-utils-creation.mts +20 -0
  366. package/src/array/impl/array-utils-creation.test.mts +72 -1
  367. package/src/array/impl/array-utils-element-access.mts +13 -0
  368. package/src/array/impl/array-utils-element-access.test.mts +36 -15
  369. package/src/array/impl/array-utils-iterators.test.mts +17 -0
  370. package/src/array/impl/array-utils-modification.mts +78 -19
  371. package/src/array/impl/array-utils-modification.test.mts +75 -0
  372. package/src/array/impl/array-utils-overload-type-error.test.mts +19 -0
  373. package/src/array/impl/array-utils-reducing-value.mts +61 -16
  374. package/src/array/impl/array-utils-reducing-value.test.mts +107 -25
  375. package/src/array/impl/array-utils-search.mts +57 -4
  376. package/src/array/impl/array-utils-search.test.mts +61 -10
  377. package/src/array/impl/array-utils-set-op.mts +26 -7
  378. package/src/array/impl/array-utils-set-op.test.mts +129 -13
  379. package/src/array/impl/array-utils-size.mts +5 -2
  380. package/src/array/impl/array-utils-size.test.mts +1 -0
  381. package/src/array/impl/array-utils-slice-clamped.mts +7 -0
  382. package/src/array/impl/array-utils-slice-clamped.test.mts +20 -0
  383. package/src/array/impl/array-utils-slicing.mts +29 -2
  384. package/src/array/impl/array-utils-slicing.test.mts +57 -0
  385. package/src/array/impl/array-utils-transformation.mts +58 -0
  386. package/src/array/impl/array-utils-transformation.test.mts +115 -3
  387. package/src/array/impl/array-utils-validation.mts +41 -18
  388. package/src/array/impl/array-utils-validation.test.mts +176 -78
  389. package/src/array/impl/array.test.mts +18 -6
  390. package/src/collections/imap-mapped.mts +11 -0
  391. package/src/collections/imap-mapped.test.mts +86 -18
  392. package/src/collections/imap.mts +47 -15
  393. package/src/collections/imap.test.mts +137 -31
  394. package/src/collections/iset-mapped.mts +54 -19
  395. package/src/collections/iset-mapped.test.mts +163 -52
  396. package/src/collections/iset.mts +53 -19
  397. package/src/collections/iset.test.mts +323 -130
  398. package/src/collections/queue.mts +78 -25
  399. package/src/collections/queue.test.mts +65 -35
  400. package/src/collections/stack.mts +67 -25
  401. package/src/collections/stack.test.mts +59 -15
  402. package/src/functional/match.mts +17 -1
  403. package/src/functional/match.test.mts +2 -0
  404. package/src/functional/optional/impl/optional-expect-to-be.mts +5 -2
  405. package/src/functional/optional/impl/optional-filter.mts +6 -0
  406. package/src/functional/optional/impl/optional-flat-map.mts +4 -0
  407. package/src/functional/optional/impl/optional-from-nullable.mts +2 -0
  408. package/src/functional/optional/impl/optional-is-none.mts +1 -1
  409. package/src/functional/optional/impl/optional-is-optional.mts +4 -2
  410. package/src/functional/optional/impl/optional-is-some.mts +2 -1
  411. package/src/functional/optional/impl/optional-map.mts +5 -0
  412. package/src/functional/optional/impl/optional-none.mts +4 -2
  413. package/src/functional/optional/impl/optional-or-else.mts +6 -0
  414. package/src/functional/optional/impl/optional-some.mts +5 -3
  415. package/src/functional/optional/impl/optional-to-nullable.mts +4 -2
  416. package/src/functional/optional/impl/optional-unwrap-or.mts +9 -4
  417. package/src/functional/optional/impl/optional-unwrap-throw.mts +2 -1
  418. package/src/functional/optional/impl/optional-unwrap.mts +4 -2
  419. package/src/functional/optional/impl/optional-zip.mts +3 -1
  420. package/src/functional/optional.test.mts +126 -54
  421. package/src/functional/pipe.mts +2 -2
  422. package/src/functional/pipe.test.mts +7 -4
  423. package/src/functional/result/impl/result-err.mts +4 -2
  424. package/src/functional/result/impl/result-expect-to-be.mts +5 -2
  425. package/src/functional/result/impl/result-flat-map.mts +7 -0
  426. package/src/functional/result/impl/result-fold.mts +6 -0
  427. package/src/functional/result/impl/result-from-promise.mts +4 -1
  428. package/src/functional/result/impl/result-from-throwable.mts +5 -1
  429. package/src/functional/result/impl/result-is-err.mts +4 -2
  430. package/src/functional/result/impl/result-is-ok.mts +4 -2
  431. package/src/functional/result/impl/result-is-result.mts +7 -3
  432. package/src/functional/result/impl/result-map-err.mts +5 -0
  433. package/src/functional/result/impl/result-map.mts +6 -0
  434. package/src/functional/result/impl/result-ok.mts +4 -2
  435. package/src/functional/result/impl/result-or-else.mts +6 -0
  436. package/src/functional/result/impl/result-swap.mts +2 -0
  437. package/src/functional/result/impl/result-to-optional.mts +2 -0
  438. package/src/functional/result/impl/result-unwrap-err-or.mts +9 -4
  439. package/src/functional/result/impl/result-unwrap-err-throw.mts +3 -1
  440. package/src/functional/result/impl/result-unwrap-err.mts +3 -2
  441. package/src/functional/result/impl/result-unwrap-ok-or.mts +9 -4
  442. package/src/functional/result/impl/result-unwrap-ok.mts +4 -2
  443. package/src/functional/result/impl/result-unwrap-throw.mts +3 -1
  444. package/src/functional/result/impl/result-zip.mts +3 -1
  445. package/src/functional/result.test.mts +182 -152
  446. package/src/functional/ternary-result/impl/ternary-result-err.mts +3 -2
  447. package/src/functional/ternary-result/impl/ternary-result-expect-to-be.mts +4 -0
  448. package/src/functional/ternary-result/impl/ternary-result-flat-map.mts +7 -0
  449. package/src/functional/ternary-result/impl/ternary-result-fold.mts +5 -0
  450. package/src/functional/ternary-result/impl/ternary-result-from-promise.mts +3 -1
  451. package/src/functional/ternary-result/impl/ternary-result-from-throwable.mts +4 -1
  452. package/src/functional/ternary-result/impl/ternary-result-is-ok.mts +1 -0
  453. package/src/functional/ternary-result/impl/ternary-result-is-ternary-result.mts +7 -3
  454. package/src/functional/ternary-result/impl/ternary-result-is-warn.mts +1 -0
  455. package/src/functional/ternary-result/impl/ternary-result-map-err.mts +6 -0
  456. package/src/functional/ternary-result/impl/ternary-result-map-warn.mts +6 -0
  457. package/src/functional/ternary-result/impl/ternary-result-map.mts +9 -0
  458. package/src/functional/ternary-result/impl/ternary-result-ok.mts +1 -1
  459. package/src/functional/ternary-result/impl/ternary-result-or-else.mts +5 -0
  460. package/src/functional/ternary-result/impl/ternary-result-to-optional.mts +2 -0
  461. package/src/functional/ternary-result/impl/ternary-result-unwrap-err-or.mts +5 -0
  462. package/src/functional/ternary-result/impl/ternary-result-unwrap-err-throw.mts +1 -0
  463. package/src/functional/ternary-result/impl/ternary-result-unwrap-err.mts +2 -0
  464. package/src/functional/ternary-result/impl/ternary-result-unwrap-ok-or.mts +5 -0
  465. package/src/functional/ternary-result/impl/ternary-result-unwrap-ok.mts +3 -0
  466. package/src/functional/ternary-result/impl/ternary-result-unwrap-throw.mts +1 -0
  467. package/src/functional/ternary-result/impl/ternary-result-unwrap-warn-or.mts +5 -0
  468. package/src/functional/ternary-result/impl/ternary-result-unwrap-warn-throw.mts +1 -0
  469. package/src/functional/ternary-result/impl/ternary-result-unwrap-warn.mts +2 -0
  470. package/src/functional/ternary-result/impl/ternary-result-warn.mts +4 -1
  471. package/src/functional/ternary-result/impl/ternary-result-zip.mts +4 -0
  472. package/src/functional/ternary-result.test.mts +99 -8
  473. package/src/globals.d.mts +12 -1
  474. package/src/guard/has-key.mts +8 -5
  475. package/src/guard/has-key.test.mts +9 -5
  476. package/src/guard/is-error.test.mts +143 -0
  477. package/src/guard/is-non-empty-string.test.mts +44 -24
  478. package/src/guard/is-non-null-object.test.mts +45 -26
  479. package/src/guard/is-primitive.test.mts +51 -28
  480. package/src/guard/is-record.mts +34 -0
  481. package/src/guard/is-record.test.mts +28 -7
  482. package/src/guard/is-type.mts +3 -0
  483. package/src/guard/is-type.test.mts +285 -155
  484. package/src/guard/key-is-in.mts +3 -2
  485. package/src/guard/key-is-in.test.mts +2 -2
  486. package/src/iterator/range.mts +9 -0
  487. package/src/json/json.mts +50 -21
  488. package/src/json/json.test.mts +224 -176
  489. package/src/number/branded-types/finite-number.test.mts +51 -11
  490. package/src/number/branded-types/int.mts +33 -19
  491. package/src/number/branded-types/int.test.mts +56 -14
  492. package/src/number/branded-types/int16.test.mts +63 -16
  493. package/src/number/branded-types/int32.test.mts +63 -16
  494. package/src/number/branded-types/non-negative-finite-number.test.mts +52 -12
  495. package/src/number/branded-types/non-negative-int16.test.mts +59 -16
  496. package/src/number/branded-types/non-negative-int32.test.mts +59 -16
  497. package/src/number/branded-types/non-zero-finite-number.test.mts +65 -14
  498. package/src/number/branded-types/non-zero-int.test.mts +72 -19
  499. package/src/number/branded-types/non-zero-int16.test.mts +60 -16
  500. package/src/number/branded-types/non-zero-int32.test.mts +60 -16
  501. package/src/number/branded-types/non-zero-safe-int.mts +2 -2
  502. package/src/number/branded-types/non-zero-safe-int.test.mts +85 -23
  503. package/src/number/branded-types/non-zero-uint16.test.mts +53 -16
  504. package/src/number/branded-types/non-zero-uint32.test.mts +53 -16
  505. package/src/number/branded-types/positive-finite-number.test.mts +59 -14
  506. package/src/number/branded-types/positive-int.mts +34 -20
  507. package/src/number/branded-types/positive-int.test.mts +64 -17
  508. package/src/number/branded-types/positive-int16.test.mts +50 -15
  509. package/src/number/branded-types/positive-int32.test.mts +50 -15
  510. package/src/number/branded-types/positive-safe-int.mts +48 -27
  511. package/src/number/branded-types/positive-safe-int.test.mts +68 -19
  512. package/src/number/branded-types/positive-uint16.test.mts +53 -16
  513. package/src/number/branded-types/positive-uint32.test.mts +53 -16
  514. package/src/number/branded-types/safe-int.mts +50 -29
  515. package/src/number/branded-types/safe-int.test.mts +70 -18
  516. package/src/number/branded-types/safe-uint.mts +1 -1
  517. package/src/number/branded-types/safe-uint.test.mts +65 -17
  518. package/src/number/branded-types/uint.mts +31 -19
  519. package/src/number/branded-types/uint.test.mts +58 -15
  520. package/src/number/branded-types/uint16.test.mts +56 -15
  521. package/src/number/branded-types/uint32.test.mts +56 -15
  522. package/src/number/enum/int8.test.mts +7 -1
  523. package/src/number/enum/uint8.test.mts +7 -1
  524. package/src/number/num.mts +32 -21
  525. package/src/number/num.test.mts +88 -26
  526. package/src/number/refined-number-utils.mts +38 -13
  527. package/src/object/object.mts +19 -3
  528. package/src/object/object.test.mts +16 -6
  529. package/src/others/cast-mutable.test.mts +8 -1
  530. package/src/others/cast-readonly.test.mts +21 -4
  531. package/src/others/if-then.test.mts +40 -24
  532. package/src/others/map-nullable.mts +3 -0
  533. package/src/others/map-nullable.test.mts +27 -0
  534. package/src/others/memoize-function.test.mts +41 -0
  535. package/src/others/tuple.mts +14 -3
  536. package/src/others/unknown-to-string.mts +2 -0
  537. package/src/others/unknown-to-string.test.mts +10 -0
  538. package/src/promise/promise.mts +8 -4
  539. package/src/promise/promise.test.mts +8 -13
@@ -10,11 +10,11 @@ describe('Array.every', () => {
10
10
  }
11
11
 
12
12
  test('case 1', () => {
13
- expect(xs.every((x): x is 1 => x === 1)).toBe(false);
13
+ assert.isFalse(xs.every((x): x is 1 => x === 1));
14
14
  });
15
15
 
16
16
  test('case 2', () => {
17
- expect(xs.every((x) => 1 <= x && x <= 3)).toBe(true);
17
+ assert.isTrue(xs.every((x) => 1 <= x && x <= 3));
18
18
  });
19
19
  });
20
20
 
@@ -22,16 +22,17 @@ describe('Array.some', () => {
22
22
  const xs = [1, 2, 3] as const;
23
23
 
24
24
  test('case 1', () => {
25
- expect(xs.some((x): x is 1 => x === 1)).toBe(true);
25
+ assert.isTrue(xs.some((x): x is 1 => x === 1));
26
26
  });
27
27
 
28
28
  test('case 2', () => {
29
- expect(xs.some((x) => x <= 1 && 3 <= x)).toBe(false);
29
+ assert.isFalse(xs.some((x) => x <= 1 && 3 <= x));
30
30
  });
31
31
  });
32
32
 
33
33
  describe('Array.flat', () => {
34
34
  const xs = [1, 2, [3, 4, [5, 6, [7, 8]]]] as const;
35
+
35
36
  const result = xs.flat();
36
37
 
37
38
  expectType<
@@ -47,22 +48,25 @@ describe('Array.flat', () => {
47
48
  describe('Array.includes', () => {
48
49
  {
49
50
  const xs = [2, 1, 3] as const;
51
+
50
52
  const result = xs.includes(2);
51
53
 
52
54
  expectType<typeof result, boolean>('=');
53
55
 
54
56
  test('case 1', () => {
55
- expect(result).toBe(true);
57
+ assert.isTrue(result);
56
58
  });
57
59
  }
60
+
58
61
  {
59
62
  const xs: readonly number[] = [2, 1, 3];
63
+
60
64
  const result = xs.includes(4);
61
65
 
62
66
  expectType<typeof result, boolean>('=');
63
67
 
64
68
  test('case 2', () => {
65
- expect(result).toBe(false);
69
+ assert.isFalse(result);
66
70
  });
67
71
  }
68
72
  });
@@ -70,6 +74,7 @@ describe('Array.includes', () => {
70
74
  describe('Array.find', () => {
71
75
  {
72
76
  const xs = [{ v: 2 }, { v: 1 }, { v: 3 }] as const;
77
+
73
78
  const result = xs.find((x) => x.v === 1);
74
79
 
75
80
  expectType<typeof result, Readonly<{ v: 1 }> | undefined>('=');
@@ -78,12 +83,14 @@ describe('Array.find', () => {
78
83
  assert.deepStrictEqual(result, { v: 1 });
79
84
  });
80
85
  }
86
+
81
87
  {
82
88
  const xs: readonly Readonly<{ v: 1 | 2 | 3 }>[] = [
83
89
  { v: 2 },
84
90
  { v: 1 },
85
91
  { v: 3 },
86
92
  ] as const;
93
+
87
94
  const result = xs.find((x) => x.v === 1);
88
95
 
89
96
  expectType<typeof result, Readonly<{ v: 1 | 2 | 3 }> | undefined>('=');
@@ -97,6 +104,7 @@ describe('Array.find', () => {
97
104
  describe('Array.findIndex', () => {
98
105
  {
99
106
  const xs = [{ v: 2 }, { v: 1 }, { v: 3 }] as const;
107
+
100
108
  const result = xs.findIndex((x) => x.v === 1);
101
109
 
102
110
  expectType<typeof result, number>('=');
@@ -105,12 +113,14 @@ describe('Array.findIndex', () => {
105
113
  expect(result).toBe(1);
106
114
  });
107
115
  }
116
+
108
117
  {
109
118
  const xs: readonly Readonly<{ v: 1 | 2 | 3 }>[] = [
110
119
  { v: 2 },
111
120
  { v: 1 },
112
121
  { v: 3 },
113
122
  ] as const;
123
+
114
124
  const result = xs.findIndex((x) => x.v === 1);
115
125
 
116
126
  expectType<typeof result, number>('=');
@@ -124,6 +134,7 @@ describe('Array.findIndex', () => {
124
134
  describe('Array.filter', () => {
125
135
  {
126
136
  const xs = [1, 2, 3] as const;
137
+
127
138
  const filtered = xs.filter((x): x is 1 | 3 => x % 2 === 1);
128
139
 
129
140
  expectType<typeof filtered, (1 | 3)[]>('=');
@@ -135,6 +146,7 @@ describe('Array.filter', () => {
135
146
 
136
147
  {
137
148
  const xs = [1, 2, 3] as const;
149
+
138
150
  const filtered = xs.filter((x) => x % 2 === 1);
139
151
 
140
152
  expectType<typeof filtered, (1 | 2 | 3)[]>('=');
@@ -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);
138
- expect(map1.has({ id: 1, type: 'user' })).toBe(true);
139
- expect(map2.has({ id: 1, type: 'user' })).toBe(true);
152
+
153
+ assert.isTrue(map1.has({ id: 1, type: 'user' }));
154
+
155
+ assert.isTrue(map2.has({ id: 1, type: 'user' }));
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'],
@@ -160,7 +178,7 @@ describe('IMapMapped.equal', () => {
160
178
  stringToTestKey,
161
179
  );
162
180
 
163
- expect(IMapMapped.equal(map1, map2)).toBe(false);
181
+ assert.isFalse(IMapMapped.equal(map1, map2));
164
182
  });
165
183
 
166
184
  test('should return false for maps with different keys', () => {
@@ -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'],
@@ -181,7 +200,7 @@ describe('IMapMapped.equal', () => {
181
200
  stringToTestKey,
182
201
  );
183
202
 
184
- expect(IMapMapped.equal(map1, map2)).toBe(false);
203
+ assert.isFalse(IMapMapped.equal(map1, map2));
185
204
  });
186
205
 
187
206
  test('should return true for empty maps', () => {
@@ -190,13 +209,14 @@ 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,
196
216
  stringToTestKey,
197
217
  );
198
218
 
199
- expect(IMapMapped.equal(map1, map2)).toBe(true);
219
+ assert.isTrue(IMapMapped.equal(map1, map2));
200
220
  });
201
221
  });
202
222
 
@@ -228,7 +248,7 @@ describe('IMapMapped.has', () => {
228
248
  fromKey,
229
249
  );
230
250
 
231
- expect(s0.has({ v: 3 })).toBe(true);
251
+ assert.isTrue(s0.has({ v: 3 }));
232
252
  });
233
253
 
234
254
  test('case 2', () => {
@@ -242,7 +262,7 @@ describe('IMapMapped.has', () => {
242
262
  fromKey,
243
263
  );
244
264
 
245
- expect(s0.has({ v: 4 })).toBe(false);
265
+ assert.isFalse(s0.has({ v: 4 }));
246
266
  });
247
267
 
248
268
  test('case 3', () => {
@@ -252,7 +272,7 @@ describe('IMapMapped.has', () => {
252
272
  fromKey,
253
273
  );
254
274
 
255
- expect(s0.has({ v: 3 })).toBe(false);
275
+ assert.isFalse(s0.has({ v: 3 }));
256
276
  });
257
277
  });
258
278
 
@@ -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,12 +431,14 @@ 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);
415
- expect(Optional.isNone(updated.get({ id: 2, type: 'user' }))).toBe(true);
440
+
441
+ assert.isTrue(Optional.isNone(updated.get({ id: 2, type: 'user' })));
416
442
  });
417
443
  });
418
444
 
@@ -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
  });
@@ -528,7 +560,7 @@ describe('IMapMapped.every', () => {
528
560
  stringToTestKey,
529
561
  );
530
562
 
531
- expect(map.every((value) => typeof value === 'string')).toBe(true);
563
+ assert.isTrue(map.every((value) => typeof value === 'string'));
532
564
  });
533
565
 
534
566
  test('should return false when some values do not satisfy predicate', () => {
@@ -541,7 +573,7 @@ describe('IMapMapped.every', () => {
541
573
  stringToTestKey,
542
574
  );
543
575
 
544
- expect(map.every((value) => value.length > 5)).toBe(false);
576
+ assert.isFalse(map.every((value) => value.length > 5));
545
577
  });
546
578
 
547
579
  test('should return true for empty map', () => {
@@ -551,7 +583,7 @@ describe('IMapMapped.every', () => {
551
583
  stringToTestKey,
552
584
  );
553
585
 
554
- expect(map.every((value) => value.length > 0)).toBe(true);
586
+ assert.isTrue(map.every((value) => value.length > 0));
555
587
  });
556
588
  });
557
589
 
@@ -567,7 +599,7 @@ describe('IMapMapped.some', () => {
567
599
  );
568
600
 
569
601
  // eslint-disable-next-line unicorn/prefer-includes
570
- expect(map.some((value) => value === 'Alice')).toBe(true);
602
+ assert.isTrue(map.some((value) => value === 'Alice'));
571
603
  });
572
604
 
573
605
  test('should return false when no values satisfy predicate', () => {
@@ -581,7 +613,7 @@ describe('IMapMapped.some', () => {
581
613
  );
582
614
 
583
615
  // eslint-disable-next-line unicorn/prefer-includes
584
- expect(map.some((value) => value === 'Charlie')).toBe(false);
616
+ assert.isFalse(map.some((value) => value === 'Charlie'));
585
617
  });
586
618
 
587
619
  test('should return false for empty map', () => {
@@ -591,7 +623,7 @@ describe('IMapMapped.some', () => {
591
623
  stringToTestKey,
592
624
  );
593
625
 
594
- expect(map.some((value) => value.length > 0)).toBe(false);
626
+ assert.isFalse(map.some((value) => value.length > 0));
595
627
  });
596
628
  });
597
629
 
@@ -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,15 @@ 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
- expect(Optional.isNone(transformed.get({ id: 1, type: 'user' }))).toBe(
687
- true,
688
- );
727
+ assert.isTrue(Optional.isNone(transformed.get({ id: 1, type: 'user' })));
728
+
689
729
  expect(Optional.unwrap(transformed.get({ id: 10, type: 'user' }))).toBe(
690
730
  'Alice',
691
731
  );
732
+
692
733
  expect(Optional.unwrap(transformed.get({ id: 20, type: 'admin' }))).toBe(
693
734
  'Bob',
694
735
  );
@@ -705,6 +746,7 @@ describe('IMapMapped.mapEntries', () => {
705
746
  testKeyToString,
706
747
  stringToTestKey,
707
748
  );
749
+
708
750
  const transformed = map.mapEntries(([key, value]) => [
709
751
  { ...key, id: key.id * 10 },
710
752
  value.toUpperCase(),
@@ -713,6 +755,7 @@ describe('IMapMapped.mapEntries', () => {
713
755
  expect(Optional.unwrap(transformed.get({ id: 10, type: 'user' }))).toBe(
714
756
  'ALICE',
715
757
  );
758
+
716
759
  expect(Optional.unwrap(transformed.get({ id: 20, type: 'admin' }))).toBe(
717
760
  'BOB',
718
761
  );
@@ -730,11 +773,14 @@ describe('IMapMapped.forEach', () => {
730
773
  toKey,
731
774
  fromKey,
732
775
  );
776
+
733
777
  const keys = [{ v: 1 }, { v: 2 }, { v: 3 }];
778
+
734
779
  const values = ['1', '2', '3'];
735
780
 
736
781
  for (const [key, value] of s0.entries()) {
737
782
  expect(keys).toContainEqual(key);
783
+
738
784
  expect(values).toContainEqual(value);
739
785
  }
740
786
  });
@@ -748,6 +794,7 @@ describe('IMapMapped.forEach', () => {
748
794
  testKeyToString,
749
795
  stringToTestKey,
750
796
  );
797
+
751
798
  const mut_collected: [TestKey, string][] = [];
752
799
 
753
800
  for (const [key, value] of map.entries()) {
@@ -755,7 +802,9 @@ describe('IMapMapped.forEach', () => {
755
802
  }
756
803
 
757
804
  expect(mut_collected).toHaveLength(2);
805
+
758
806
  expect(mut_collected).toContainEqual([{ id: 1, type: 'user' }, 'Alice']);
807
+
759
808
  expect(mut_collected).toContainEqual([{ id: 2, type: 'admin' }, 'Bob']);
760
809
  });
761
810
  });
@@ -771,6 +820,7 @@ describe('IMapMapped.keys', () => {
771
820
  toKey,
772
821
  fromKey,
773
822
  );
823
+
774
824
  const keys = [{ v: 1 }, { v: 2 }, { v: 3 }];
775
825
 
776
826
  for (const k of s0.keys()) {
@@ -790,6 +840,7 @@ describe('IMapMapped.values', () => {
790
840
  toKey,
791
841
  fromKey,
792
842
  );
843
+
793
844
  const values = ['1', '2', '3'];
794
845
 
795
846
  for (const v of s0.values()) {
@@ -809,11 +860,14 @@ describe('IMapMapped.entries', () => {
809
860
  toKey,
810
861
  fromKey,
811
862
  );
863
+
812
864
  const keys = [{ v: 1 }, { v: 2 }, { v: 3 }];
865
+
813
866
  const values = ['1', '2', '3'];
814
867
 
815
868
  for (const [k, v] of s0.entries()) {
816
869
  expect(keys).toContainEqual(k);
870
+
817
871
  expect(values).toContainEqual(v);
818
872
  }
819
873
  });
@@ -829,10 +883,13 @@ describe('IMapMapped.toKeysArray', () => {
829
883
  testKeyToString,
830
884
  stringToTestKey,
831
885
  );
886
+
832
887
  const keys = map.toKeysArray();
833
888
 
834
889
  expect(keys).toHaveLength(2);
890
+
835
891
  expect(keys).toContainEqual({ id: 1, type: 'user' });
892
+
836
893
  expect(keys).toContainEqual({ id: 2, type: 'admin' });
837
894
  });
838
895
  });
@@ -847,10 +904,13 @@ describe('IMapMapped.toValuesArray', () => {
847
904
  testKeyToString,
848
905
  stringToTestKey,
849
906
  );
907
+
850
908
  const values = map.toValuesArray();
851
909
 
852
910
  expect(values).toHaveLength(2);
911
+
853
912
  expect(values).toContain('Alice');
913
+
854
914
  expect(values).toContain('Bob');
855
915
  });
856
916
  });
@@ -865,10 +925,13 @@ describe('IMapMapped.toEntriesArray', () => {
865
925
  testKeyToString,
866
926
  stringToTestKey,
867
927
  );
928
+
868
929
  const entries = map.toEntriesArray();
869
930
 
870
931
  expect(entries).toHaveLength(2);
932
+
871
933
  expect(entries).toContainEqual([{ id: 1, type: 'user' }, 'Alice']);
934
+
872
935
  expect(entries).toContainEqual([{ id: 2, type: 'admin' }, 'Bob']);
873
936
  });
874
937
  });
@@ -883,7 +946,9 @@ describe('IMapMapped.toArray', () => {
883
946
  testKeyToString,
884
947
  stringToTestKey,
885
948
  );
949
+
886
950
  const entries = map.toArray();
951
+
887
952
  const entriesArray = map.toEntriesArray();
888
953
 
889
954
  assert.deepStrictEqual(entries, entriesArray);
@@ -900,10 +965,13 @@ describe('IMapMapped.toRawMap', () => {
900
965
  testKeyToString,
901
966
  stringToTestKey,
902
967
  );
968
+
903
969
  const rawMap = map.toRawMap();
904
970
 
905
971
  expect(rawMap.size).toBe(2);
972
+
906
973
  expect(rawMap.get('user_1')).toBe('Alice');
974
+
907
975
  expect(rawMap.get('admin_2')).toBe('Bob');
908
976
  });
909
977
  });