ts-data-forge 5.0.0 → 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 (532) 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 +7 -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 +1 -0
  13. package/dist/array/impl/array-utils-modification.mjs.map +1 -1
  14. package/dist/array/impl/array-utils-reducing-value.d.mts +26 -2
  15. package/dist/array/impl/array-utils-reducing-value.d.mts.map +1 -1
  16. package/dist/array/impl/array-utils-reducing-value.mjs +2 -1
  17. package/dist/array/impl/array-utils-reducing-value.mjs.map +1 -1
  18. package/dist/array/impl/array-utils-search.d.mts +30 -0
  19. package/dist/array/impl/array-utils-search.d.mts.map +1 -1
  20. package/dist/array/impl/array-utils-search.mjs +1 -0
  21. package/dist/array/impl/array-utils-search.mjs.map +1 -1
  22. package/dist/array/impl/array-utils-set-op.d.mts +13 -0
  23. package/dist/array/impl/array-utils-set-op.d.mts.map +1 -1
  24. package/dist/array/impl/array-utils-set-op.mjs +13 -0
  25. package/dist/array/impl/array-utils-set-op.mjs.map +1 -1
  26. package/dist/array/impl/array-utils-size.d.mts +3 -0
  27. package/dist/array/impl/array-utils-size.d.mts.map +1 -1
  28. package/dist/array/impl/array-utils-size.mjs +3 -0
  29. package/dist/array/impl/array-utils-size.mjs.map +1 -1
  30. package/dist/array/impl/array-utils-slice-clamped.d.mts +2 -0
  31. package/dist/array/impl/array-utils-slice-clamped.d.mts.map +1 -1
  32. package/dist/array/impl/array-utils-slice-clamped.mjs.map +1 -1
  33. package/dist/array/impl/array-utils-slicing.d.mts +15 -0
  34. package/dist/array/impl/array-utils-slicing.d.mts.map +1 -1
  35. package/dist/array/impl/array-utils-slicing.mjs +7 -0
  36. package/dist/array/impl/array-utils-slicing.mjs.map +1 -1
  37. package/dist/array/impl/array-utils-transformation.d.mts +27 -0
  38. package/dist/array/impl/array-utils-transformation.d.mts.map +1 -1
  39. package/dist/array/impl/array-utils-transformation.mjs +7 -0
  40. package/dist/array/impl/array-utils-transformation.mjs.map +1 -1
  41. package/dist/array/impl/array-utils-validation.d.mts +17 -0
  42. package/dist/array/impl/array-utils-validation.d.mts.map +1 -1
  43. package/dist/array/impl/array-utils-validation.mjs +11 -0
  44. package/dist/array/impl/array-utils-validation.mjs.map +1 -1
  45. package/dist/collections/imap-mapped.mjs +1 -0
  46. package/dist/collections/imap-mapped.mjs.map +1 -1
  47. package/dist/collections/imap.d.mts +20 -0
  48. package/dist/collections/imap.d.mts.map +1 -1
  49. package/dist/collections/imap.mjs +3 -0
  50. package/dist/collections/imap.mjs.map +1 -1
  51. package/dist/collections/iset-mapped.d.mts +27 -0
  52. package/dist/collections/iset-mapped.d.mts.map +1 -1
  53. package/dist/collections/iset-mapped.mjs +7 -0
  54. package/dist/collections/iset-mapped.mjs.map +1 -1
  55. package/dist/collections/iset.d.mts +29 -0
  56. package/dist/collections/iset.d.mts.map +1 -1
  57. package/dist/collections/iset.mjs +7 -0
  58. package/dist/collections/iset.mjs.map +1 -1
  59. package/dist/collections/queue.d.mts +40 -0
  60. package/dist/collections/queue.d.mts.map +1 -1
  61. package/dist/collections/queue.mjs +9 -0
  62. package/dist/collections/queue.mjs.map +1 -1
  63. package/dist/collections/stack.d.mts +35 -0
  64. package/dist/collections/stack.d.mts.map +1 -1
  65. package/dist/collections/stack.mjs +8 -0
  66. package/dist/collections/stack.mjs.map +1 -1
  67. package/dist/entry-point.mjs +1 -1
  68. package/dist/functional/match.d.mts.map +1 -1
  69. package/dist/functional/match.mjs.map +1 -1
  70. package/dist/functional/optional/impl/optional-expect-to-be.d.mts +1 -0
  71. package/dist/functional/optional/impl/optional-expect-to-be.d.mts.map +1 -1
  72. package/dist/functional/optional/impl/optional-expect-to-be.mjs.map +1 -1
  73. package/dist/functional/optional/impl/optional-filter.d.mts +3 -0
  74. package/dist/functional/optional/impl/optional-filter.d.mts.map +1 -1
  75. package/dist/functional/optional/impl/optional-filter.mjs.map +1 -1
  76. package/dist/functional/optional/impl/optional-flat-map.d.mts +2 -0
  77. package/dist/functional/optional/impl/optional-flat-map.d.mts.map +1 -1
  78. package/dist/functional/optional/impl/optional-flat-map.mjs.map +1 -1
  79. package/dist/functional/optional/impl/optional-from-nullable.d.mts +2 -0
  80. package/dist/functional/optional/impl/optional-from-nullable.d.mts.map +1 -1
  81. package/dist/functional/optional/impl/optional-from-nullable.mjs +2 -0
  82. package/dist/functional/optional/impl/optional-from-nullable.mjs.map +1 -1
  83. package/dist/functional/optional/impl/optional-is-optional.d.mts +2 -0
  84. package/dist/functional/optional/impl/optional-is-optional.d.mts.map +1 -1
  85. package/dist/functional/optional/impl/optional-is-optional.mjs +2 -0
  86. package/dist/functional/optional/impl/optional-is-optional.mjs.map +1 -1
  87. package/dist/functional/optional/impl/optional-is-some.d.mts +1 -0
  88. package/dist/functional/optional/impl/optional-is-some.d.mts.map +1 -1
  89. package/dist/functional/optional/impl/optional-is-some.mjs +1 -0
  90. package/dist/functional/optional/impl/optional-is-some.mjs.map +1 -1
  91. package/dist/functional/optional/impl/optional-map.d.mts +2 -0
  92. package/dist/functional/optional/impl/optional-map.d.mts.map +1 -1
  93. package/dist/functional/optional/impl/optional-map.mjs.map +1 -1
  94. package/dist/functional/optional/impl/optional-none.d.mts +2 -0
  95. package/dist/functional/optional/impl/optional-none.d.mts.map +1 -1
  96. package/dist/functional/optional/impl/optional-none.mjs +2 -0
  97. package/dist/functional/optional/impl/optional-none.mjs.map +1 -1
  98. package/dist/functional/optional/impl/optional-or-else.d.mts +4 -0
  99. package/dist/functional/optional/impl/optional-or-else.d.mts.map +1 -1
  100. package/dist/functional/optional/impl/optional-or-else.mjs.map +1 -1
  101. package/dist/functional/optional/impl/optional-some.d.mts +3 -1
  102. package/dist/functional/optional/impl/optional-some.d.mts.map +1 -1
  103. package/dist/functional/optional/impl/optional-some.mjs +2 -0
  104. package/dist/functional/optional/impl/optional-some.mjs.map +1 -1
  105. package/dist/functional/optional/impl/optional-to-nullable.d.mts +2 -0
  106. package/dist/functional/optional/impl/optional-to-nullable.d.mts.map +1 -1
  107. package/dist/functional/optional/impl/optional-to-nullable.mjs +2 -0
  108. package/dist/functional/optional/impl/optional-to-nullable.mjs.map +1 -1
  109. package/dist/functional/optional/impl/optional-unwrap-or.d.mts +3 -0
  110. package/dist/functional/optional/impl/optional-unwrap-or.d.mts.map +1 -1
  111. package/dist/functional/optional/impl/optional-unwrap-or.mjs.map +1 -1
  112. package/dist/functional/optional/impl/optional-unwrap-throw.d.mts +1 -0
  113. package/dist/functional/optional/impl/optional-unwrap-throw.d.mts.map +1 -1
  114. package/dist/functional/optional/impl/optional-unwrap-throw.mjs +1 -0
  115. package/dist/functional/optional/impl/optional-unwrap-throw.mjs.map +1 -1
  116. package/dist/functional/optional/impl/optional-unwrap.d.mts +2 -0
  117. package/dist/functional/optional/impl/optional-unwrap.d.mts.map +1 -1
  118. package/dist/functional/optional/impl/optional-unwrap.mjs.map +1 -1
  119. package/dist/functional/optional/impl/optional-zip.d.mts +2 -0
  120. package/dist/functional/optional/impl/optional-zip.d.mts.map +1 -1
  121. package/dist/functional/optional/impl/optional-zip.mjs +2 -0
  122. package/dist/functional/optional/impl/optional-zip.mjs.map +1 -1
  123. package/dist/functional/result/impl/result-err.d.mts +3 -1
  124. package/dist/functional/result/impl/result-err.d.mts.map +1 -1
  125. package/dist/functional/result/impl/result-err.mjs +2 -0
  126. package/dist/functional/result/impl/result-err.mjs.map +1 -1
  127. package/dist/functional/result/impl/result-expect-to-be.d.mts +1 -0
  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 +3 -0
  137. package/dist/functional/result/impl/result-from-promise.d.mts.map +1 -1
  138. package/dist/functional/result/impl/result-from-promise.mjs +3 -0
  139. package/dist/functional/result/impl/result-from-promise.mjs.map +1 -1
  140. package/dist/functional/result/impl/result-from-throwable.d.mts +2 -0
  141. package/dist/functional/result/impl/result-from-throwable.d.mts.map +1 -1
  142. package/dist/functional/result/impl/result-from-throwable.mjs +4 -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 +2 -0
  145. package/dist/functional/result/impl/result-is-err.d.mts.map +1 -1
  146. package/dist/functional/result/impl/result-is-err.mjs +2 -0
  147. package/dist/functional/result/impl/result-is-err.mjs.map +1 -1
  148. package/dist/functional/result/impl/result-is-ok.d.mts +2 -0
  149. package/dist/functional/result/impl/result-is-ok.d.mts.map +1 -1
  150. package/dist/functional/result/impl/result-is-ok.mjs +2 -0
  151. package/dist/functional/result/impl/result-is-ok.mjs.map +1 -1
  152. package/dist/functional/result/impl/result-is-result.d.mts +4 -0
  153. package/dist/functional/result/impl/result-is-result.d.mts.map +1 -1
  154. package/dist/functional/result/impl/result-is-result.mjs +4 -0
  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 +3 -1
  163. package/dist/functional/result/impl/result-ok.d.mts.map +1 -1
  164. package/dist/functional/result/impl/result-ok.mjs +2 -0
  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 +3 -0
  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 +2 -0
  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 +2 -0
  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 +1 -0
  185. package/dist/functional/result/impl/result-unwrap-err.d.mts.map +1 -1
  186. package/dist/functional/result/impl/result-unwrap-err.mjs +1 -0
  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 +3 -0
  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 +1 -0
  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 +2 -0
  195. package/dist/functional/result/impl/result-unwrap-throw.d.mts.map +1 -1
  196. package/dist/functional/result/impl/result-unwrap-throw.mjs +2 -0
  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 +2 -1
  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 +1 -0
  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 +2 -0
  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 +2 -0
  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 +2 -0
  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 +4 -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 +4 -0
  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 +4 -0
  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 +10 -0
  294. package/dist/guard/index.mjs +1 -1
  295. package/dist/guard/is-record.d.mts +31 -0
  296. package/dist/guard/is-record.d.mts.map +1 -1
  297. package/dist/guard/is-record.mjs +32 -1
  298. package/dist/guard/is-record.mjs.map +1 -1
  299. package/dist/guard/is-type.d.mts +3 -0
  300. package/dist/guard/is-type.d.mts.map +1 -1
  301. package/dist/guard/is-type.mjs +3 -0
  302. package/dist/guard/is-type.mjs.map +1 -1
  303. package/dist/guard/key-is-in.d.mts +1 -0
  304. package/dist/guard/key-is-in.d.mts.map +1 -1
  305. package/dist/guard/key-is-in.mjs +1 -0
  306. package/dist/guard/key-is-in.mjs.map +1 -1
  307. package/dist/index.mjs +1 -1
  308. package/dist/iterator/range.d.mts +4 -0
  309. package/dist/iterator/range.d.mts.map +1 -1
  310. package/dist/iterator/range.mjs +1 -0
  311. package/dist/iterator/range.mjs.map +1 -1
  312. package/dist/json/json.d.mts +21 -0
  313. package/dist/json/json.d.mts.map +1 -1
  314. package/dist/json/json.mjs +22 -0
  315. package/dist/json/json.mjs.map +1 -1
  316. package/dist/number/branded-types/int.d.mts +14 -0
  317. package/dist/number/branded-types/int.d.mts.map +1 -1
  318. package/dist/number/branded-types/int.mjs +14 -0
  319. package/dist/number/branded-types/int.mjs.map +1 -1
  320. package/dist/number/branded-types/non-zero-safe-int.mjs +2 -2
  321. package/dist/number/branded-types/positive-int.d.mts +14 -0
  322. package/dist/number/branded-types/positive-int.d.mts.map +1 -1
  323. package/dist/number/branded-types/positive-int.mjs +14 -0
  324. package/dist/number/branded-types/positive-int.mjs.map +1 -1
  325. package/dist/number/branded-types/positive-safe-int.d.mts +21 -0
  326. package/dist/number/branded-types/positive-safe-int.d.mts.map +1 -1
  327. package/dist/number/branded-types/positive-safe-int.mjs +22 -1
  328. package/dist/number/branded-types/positive-safe-int.mjs.map +1 -1
  329. package/dist/number/branded-types/safe-int.d.mts +21 -0
  330. package/dist/number/branded-types/safe-int.d.mts.map +1 -1
  331. package/dist/number/branded-types/safe-int.mjs +23 -2
  332. package/dist/number/branded-types/safe-int.mjs.map +1 -1
  333. package/dist/number/branded-types/safe-uint.mjs +1 -1
  334. package/dist/number/branded-types/uint.d.mts +12 -0
  335. package/dist/number/branded-types/uint.d.mts.map +1 -1
  336. package/dist/number/branded-types/uint.mjs +12 -0
  337. package/dist/number/branded-types/uint.mjs.map +1 -1
  338. package/dist/number/num.d.mts +9 -0
  339. package/dist/number/num.d.mts.map +1 -1
  340. package/dist/number/num.mjs +8 -1
  341. package/dist/number/num.mjs.map +1 -1
  342. package/dist/number/refined-number-utils.d.mts +22 -0
  343. package/dist/number/refined-number-utils.d.mts.map +1 -1
  344. package/dist/number/refined-number-utils.mjs +23 -0
  345. package/dist/number/refined-number-utils.mjs.map +1 -1
  346. package/dist/object/object.d.mts +9 -0
  347. package/dist/object/object.d.mts.map +1 -1
  348. package/dist/object/object.mjs +7 -0
  349. package/dist/object/object.mjs.map +1 -1
  350. package/dist/others/map-nullable.mjs.map +1 -1
  351. package/dist/others/tuple.d.mts +11 -0
  352. package/dist/others/tuple.d.mts.map +1 -1
  353. package/dist/others/tuple.mjs +11 -0
  354. package/dist/others/tuple.mjs.map +1 -1
  355. package/dist/others/unknown-to-string.d.mts.map +1 -1
  356. package/dist/others/unknown-to-string.mjs +2 -1
  357. package/dist/others/unknown-to-string.mjs.map +1 -1
  358. package/dist/promise/promise.d.mts +4 -0
  359. package/dist/promise/promise.d.mts.map +1 -1
  360. package/dist/promise/promise.mjs +5 -0
  361. package/dist/promise/promise.mjs.map +1 -1
  362. package/package.json +20 -24
  363. package/src/array/impl/array-utils-creation.mts +20 -0
  364. package/src/array/impl/array-utils-creation.test.mts +71 -0
  365. package/src/array/impl/array-utils-element-access.mts +13 -0
  366. package/src/array/impl/array-utils-element-access.test.mts +21 -0
  367. package/src/array/impl/array-utils-iterators.test.mts +17 -0
  368. package/src/array/impl/array-utils-modification.mts +40 -0
  369. package/src/array/impl/array-utils-modification.test.mts +75 -0
  370. package/src/array/impl/array-utils-overload-type-error.test.mts +19 -0
  371. package/src/array/impl/array-utils-reducing-value.mts +55 -9
  372. package/src/array/impl/array-utils-reducing-value.test.mts +90 -0
  373. package/src/array/impl/array-utils-search.mts +53 -0
  374. package/src/array/impl/array-utils-search.test.mts +51 -0
  375. package/src/array/impl/array-utils-set-op.mts +19 -0
  376. package/src/array/impl/array-utils-set-op.test.mts +116 -0
  377. package/src/array/impl/array-utils-size.mts +3 -0
  378. package/src/array/impl/array-utils-size.test.mts +1 -0
  379. package/src/array/impl/array-utils-slice-clamped.mts +7 -0
  380. package/src/array/impl/array-utils-slice-clamped.test.mts +20 -0
  381. package/src/array/impl/array-utils-slicing.mts +27 -0
  382. package/src/array/impl/array-utils-slicing.test.mts +57 -0
  383. package/src/array/impl/array-utils-transformation.mts +58 -0
  384. package/src/array/impl/array-utils-transformation.test.mts +113 -1
  385. package/src/array/impl/array-utils-validation.mts +23 -0
  386. package/src/array/impl/array-utils-validation.test.mts +96 -0
  387. package/src/array/impl/array.test.mts +12 -0
  388. package/src/collections/imap-mapped.mts +11 -0
  389. package/src/collections/imap-mapped.test.mts +70 -0
  390. package/src/collections/imap.mts +32 -0
  391. package/src/collections/imap.test.mts +106 -0
  392. package/src/collections/iset-mapped.mts +35 -0
  393. package/src/collections/iset-mapped.test.mts +111 -0
  394. package/src/collections/iset.mts +34 -0
  395. package/src/collections/iset.test.mts +193 -0
  396. package/src/collections/queue.mts +53 -0
  397. package/src/collections/queue.test.mts +32 -0
  398. package/src/collections/stack.mts +42 -0
  399. package/src/collections/stack.test.mts +44 -0
  400. package/src/functional/match.mts +16 -0
  401. package/src/functional/match.test.mts +2 -0
  402. package/src/functional/optional/impl/optional-expect-to-be.mts +3 -0
  403. package/src/functional/optional/impl/optional-filter.mts +6 -0
  404. package/src/functional/optional/impl/optional-flat-map.mts +4 -0
  405. package/src/functional/optional/impl/optional-from-nullable.mts +2 -0
  406. package/src/functional/optional/impl/optional-is-optional.mts +2 -0
  407. package/src/functional/optional/impl/optional-is-some.mts +1 -0
  408. package/src/functional/optional/impl/optional-map.mts +5 -0
  409. package/src/functional/optional/impl/optional-none.mts +2 -0
  410. package/src/functional/optional/impl/optional-or-else.mts +6 -0
  411. package/src/functional/optional/impl/optional-some.mts +3 -1
  412. package/src/functional/optional/impl/optional-to-nullable.mts +2 -0
  413. package/src/functional/optional/impl/optional-unwrap-or.mts +5 -0
  414. package/src/functional/optional/impl/optional-unwrap-throw.mts +1 -0
  415. package/src/functional/optional/impl/optional-unwrap.mts +2 -0
  416. package/src/functional/optional/impl/optional-zip.mts +2 -0
  417. package/src/functional/optional.test.mts +73 -0
  418. package/src/functional/pipe.test.mts +3 -0
  419. package/src/functional/result/impl/result-err.mts +3 -1
  420. package/src/functional/result/impl/result-expect-to-be.mts +3 -0
  421. package/src/functional/result/impl/result-flat-map.mts +7 -0
  422. package/src/functional/result/impl/result-fold.mts +6 -0
  423. package/src/functional/result/impl/result-from-promise.mts +3 -0
  424. package/src/functional/result/impl/result-from-throwable.mts +6 -1
  425. package/src/functional/result/impl/result-is-err.mts +2 -0
  426. package/src/functional/result/impl/result-is-ok.mts +2 -0
  427. package/src/functional/result/impl/result-is-result.mts +4 -0
  428. package/src/functional/result/impl/result-map-err.mts +5 -0
  429. package/src/functional/result/impl/result-map.mts +6 -0
  430. package/src/functional/result/impl/result-ok.mts +3 -1
  431. package/src/functional/result/impl/result-or-else.mts +6 -0
  432. package/src/functional/result/impl/result-swap.mts +2 -0
  433. package/src/functional/result/impl/result-to-optional.mts +2 -0
  434. package/src/functional/result/impl/result-unwrap-err-or.mts +5 -0
  435. package/src/functional/result/impl/result-unwrap-err-throw.mts +2 -0
  436. package/src/functional/result/impl/result-unwrap-err.mts +1 -0
  437. package/src/functional/result/impl/result-unwrap-ok-or.mts +5 -0
  438. package/src/functional/result/impl/result-unwrap-ok.mts +2 -0
  439. package/src/functional/result/impl/result-unwrap-throw.mts +2 -0
  440. package/src/functional/result/impl/result-zip.mts +3 -1
  441. package/src/functional/result.test.mts +88 -0
  442. package/src/functional/ternary-result/impl/ternary-result-err.mts +2 -1
  443. package/src/functional/ternary-result/impl/ternary-result-expect-to-be.mts +4 -0
  444. package/src/functional/ternary-result/impl/ternary-result-flat-map.mts +7 -0
  445. package/src/functional/ternary-result/impl/ternary-result-fold.mts +5 -0
  446. package/src/functional/ternary-result/impl/ternary-result-from-promise.mts +2 -0
  447. package/src/functional/ternary-result/impl/ternary-result-from-throwable.mts +5 -1
  448. package/src/functional/ternary-result/impl/ternary-result-is-ok.mts +1 -0
  449. package/src/functional/ternary-result/impl/ternary-result-is-ternary-result.mts +4 -0
  450. package/src/functional/ternary-result/impl/ternary-result-is-warn.mts +1 -0
  451. package/src/functional/ternary-result/impl/ternary-result-map-err.mts +6 -0
  452. package/src/functional/ternary-result/impl/ternary-result-map-warn.mts +6 -0
  453. package/src/functional/ternary-result/impl/ternary-result-map.mts +9 -0
  454. package/src/functional/ternary-result/impl/ternary-result-ok.mts +1 -1
  455. package/src/functional/ternary-result/impl/ternary-result-or-else.mts +5 -0
  456. package/src/functional/ternary-result/impl/ternary-result-to-optional.mts +2 -0
  457. package/src/functional/ternary-result/impl/ternary-result-unwrap-err-or.mts +5 -0
  458. package/src/functional/ternary-result/impl/ternary-result-unwrap-err-throw.mts +1 -0
  459. package/src/functional/ternary-result/impl/ternary-result-unwrap-err.mts +2 -0
  460. package/src/functional/ternary-result/impl/ternary-result-unwrap-ok-or.mts +5 -0
  461. package/src/functional/ternary-result/impl/ternary-result-unwrap-ok.mts +3 -0
  462. package/src/functional/ternary-result/impl/ternary-result-unwrap-throw.mts +1 -0
  463. package/src/functional/ternary-result/impl/ternary-result-unwrap-warn-or.mts +5 -0
  464. package/src/functional/ternary-result/impl/ternary-result-unwrap-warn-throw.mts +1 -0
  465. package/src/functional/ternary-result/impl/ternary-result-unwrap-warn.mts +2 -0
  466. package/src/functional/ternary-result/impl/ternary-result-warn.mts +4 -1
  467. package/src/functional/ternary-result/impl/ternary-result-zip.mts +4 -0
  468. package/src/functional/ternary-result.test.mts +91 -0
  469. package/src/globals.d.mts +10 -0
  470. package/src/guard/has-key.test.mts +9 -0
  471. package/src/guard/is-non-empty-string.test.mts +20 -0
  472. package/src/guard/is-non-null-object.test.mts +19 -0
  473. package/src/guard/is-primitive.test.mts +23 -0
  474. package/src/guard/is-record.mts +34 -0
  475. package/src/guard/is-record.test.mts +21 -0
  476. package/src/guard/is-type.mts +3 -0
  477. package/src/guard/is-type.test.mts +134 -0
  478. package/src/guard/key-is-in.mts +1 -0
  479. package/src/iterator/range.mts +9 -0
  480. package/src/json/json.mts +29 -0
  481. package/src/json/json.test.mts +87 -0
  482. package/src/number/branded-types/finite-number.test.mts +38 -0
  483. package/src/number/branded-types/int.mts +14 -0
  484. package/src/number/branded-types/int.test.mts +42 -0
  485. package/src/number/branded-types/int16.test.mts +47 -0
  486. package/src/number/branded-types/int32.test.mts +47 -0
  487. package/src/number/branded-types/non-negative-finite-number.test.mts +40 -0
  488. package/src/number/branded-types/non-negative-int16.test.mts +43 -0
  489. package/src/number/branded-types/non-negative-int32.test.mts +43 -0
  490. package/src/number/branded-types/non-zero-finite-number.test.mts +51 -0
  491. package/src/number/branded-types/non-zero-int.test.mts +53 -0
  492. package/src/number/branded-types/non-zero-int16.test.mts +44 -0
  493. package/src/number/branded-types/non-zero-int32.test.mts +44 -0
  494. package/src/number/branded-types/non-zero-safe-int.mts +2 -2
  495. package/src/number/branded-types/non-zero-safe-int.test.mts +62 -0
  496. package/src/number/branded-types/non-zero-uint16.test.mts +37 -0
  497. package/src/number/branded-types/non-zero-uint32.test.mts +37 -0
  498. package/src/number/branded-types/positive-finite-number.test.mts +45 -0
  499. package/src/number/branded-types/positive-int.mts +14 -0
  500. package/src/number/branded-types/positive-int.test.mts +47 -0
  501. package/src/number/branded-types/positive-int16.test.mts +35 -0
  502. package/src/number/branded-types/positive-int32.test.mts +35 -0
  503. package/src/number/branded-types/positive-safe-int.mts +22 -1
  504. package/src/number/branded-types/positive-safe-int.test.mts +49 -0
  505. package/src/number/branded-types/positive-uint16.test.mts +37 -0
  506. package/src/number/branded-types/positive-uint32.test.mts +37 -0
  507. package/src/number/branded-types/safe-int.mts +23 -2
  508. package/src/number/branded-types/safe-int.test.mts +52 -0
  509. package/src/number/branded-types/safe-uint.mts +1 -1
  510. package/src/number/branded-types/safe-uint.test.mts +48 -0
  511. package/src/number/branded-types/uint.mts +12 -0
  512. package/src/number/branded-types/uint.test.mts +43 -0
  513. package/src/number/branded-types/uint16.test.mts +41 -0
  514. package/src/number/branded-types/uint32.test.mts +41 -0
  515. package/src/number/enum/int8.test.mts +6 -0
  516. package/src/number/enum/uint8.test.mts +6 -0
  517. package/src/number/num.mts +12 -1
  518. package/src/number/num.test.mts +62 -0
  519. package/src/number/refined-number-utils.mts +25 -0
  520. package/src/object/object.mts +15 -0
  521. package/src/object/object.test.mts +10 -0
  522. package/src/others/cast-mutable.test.mts +7 -0
  523. package/src/others/cast-readonly.test.mts +17 -0
  524. package/src/others/if-then.test.mts +16 -0
  525. package/src/others/map-nullable.mts +3 -0
  526. package/src/others/map-nullable.test.mts +27 -0
  527. package/src/others/memoize-function.test.mts +41 -0
  528. package/src/others/tuple.mts +11 -0
  529. package/src/others/unknown-to-string.mts +4 -1
  530. package/src/others/unknown-to-string.test.mts +10 -0
  531. package/src/promise/promise.mts +4 -0
  532. package/src/promise/promise.test.mts +1 -0
@@ -10,8 +10,11 @@ describe('NonZeroUint32 test', () => {
10
10
  describe(asNonZeroUint32, () => {
11
11
  test('accepts valid non-zero uint32 values', () => {
12
12
  expect(() => asNonZeroUint32(1)).not.toThrow();
13
+
13
14
  expect(() => asNonZeroUint32(1000)).not.toThrow();
15
+
14
16
  expect(() => asNonZeroUint32(4_294_967_295)).not.toThrow(); // 2^32 - 1
17
+
15
18
  expect(() => asNonZeroUint32(2_147_483_648)).not.toThrow(); // 2^31
16
19
  });
17
20
 
@@ -21,29 +24,37 @@ describe('NonZeroUint32 test', () => {
21
24
 
22
25
  test('rejects values outside uint32 range', () => {
23
26
  expect(() => asNonZeroUint32(4_294_967_296)).toThrow(TypeError); // 2^32
27
+
24
28
  expect(() => asNonZeroUint32(10_000_000_000)).toThrow(TypeError);
25
29
  });
26
30
 
27
31
  test('rejects negative integers', () => {
28
32
  expect(() => asNonZeroUint32(-1)).toThrow(TypeError);
33
+
29
34
  expect(() => asNonZeroUint32(-42)).toThrow(TypeError);
30
35
  });
31
36
 
32
37
  test('rejects non-integers', () => {
33
38
  expect(() => asNonZeroUint32(Number.NaN)).toThrow(TypeError);
39
+
34
40
  expect(() => asNonZeroUint32(Number.POSITIVE_INFINITY)).toThrow(
35
41
  TypeError,
36
42
  );
43
+
37
44
  expect(() => asNonZeroUint32(Number.NEGATIVE_INFINITY)).toThrow(
38
45
  TypeError,
39
46
  );
47
+
40
48
  expect(() => asNonZeroUint32(1.2)).toThrow(TypeError);
49
+
41
50
  expect(() => asNonZeroUint32(-3.4)).toThrow(TypeError);
42
51
  });
43
52
 
44
53
  test('returns the same value for valid inputs', () => {
45
54
  expect(asNonZeroUint32(5)).toBe(5);
55
+
46
56
  expect(asNonZeroUint32(1)).toBe(1);
57
+
47
58
  expect(asNonZeroUint32(4_294_967_295)).toBe(4_294_967_295);
48
59
  });
49
60
 
@@ -71,8 +82,11 @@ describe('NonZeroUint32 test', () => {
71
82
  describe(isNonZeroUint32, () => {
72
83
  test('correctly identifies non-zero uint32 values', () => {
73
84
  expect(isNonZeroUint32(1)).toBe(true);
85
+
74
86
  expect(isNonZeroUint32(1000)).toBe(true);
87
+
75
88
  expect(isNonZeroUint32(4_294_967_295)).toBe(true);
89
+
76
90
  expect(isNonZeroUint32(2_147_483_648)).toBe(true);
77
91
  });
78
92
 
@@ -82,19 +96,25 @@ describe('NonZeroUint32 test', () => {
82
96
 
83
97
  test('correctly identifies values outside uint32 range', () => {
84
98
  expect(isNonZeroUint32(4_294_967_296)).toBe(false);
99
+
85
100
  expect(isNonZeroUint32(10_000_000_000)).toBe(false);
86
101
  });
87
102
 
88
103
  test('correctly identifies negative integers', () => {
89
104
  expect(isNonZeroUint32(-1)).toBe(false);
105
+
90
106
  expect(isNonZeroUint32(-42)).toBe(false);
91
107
  });
92
108
 
93
109
  test('correctly identifies non-integers', () => {
94
110
  expect(isNonZeroUint32(Number.NaN)).toBe(false);
111
+
95
112
  expect(isNonZeroUint32(Number.POSITIVE_INFINITY)).toBe(false);
113
+
96
114
  expect(isNonZeroUint32(Number.NEGATIVE_INFINITY)).toBe(false);
115
+
97
116
  expect(isNonZeroUint32(1.2)).toBe(false);
117
+
98
118
  expect(isNonZeroUint32(-3.4)).toBe(false);
99
119
  });
100
120
  });
@@ -102,7 +122,9 @@ describe('NonZeroUint32 test', () => {
102
122
  describe('NonZeroUint32.is', () => {
103
123
  test('same as isNonZeroUint32 function', () => {
104
124
  expect(NonZeroUint32.is(5)).toBe(isNonZeroUint32(5));
125
+
105
126
  expect(NonZeroUint32.is(0)).toBe(isNonZeroUint32(0));
127
+
106
128
  expect(NonZeroUint32.is(-1)).toBe(isNonZeroUint32(-1));
107
129
  });
108
130
  });
@@ -110,16 +132,19 @@ describe('NonZeroUint32 test', () => {
110
132
  describe('constants', () => {
111
133
  test('MIN_VALUE and MAX_VALUE', () => {
112
134
  expect(NonZeroUint32.MIN_VALUE).toBe(1);
135
+
113
136
  expect(NonZeroUint32.MAX_VALUE).toBe(4_294_967_295);
114
137
  });
115
138
  });
116
139
 
117
140
  describe('mathematical operations', () => {
118
141
  const a = asNonZeroUint32(1_000_000);
142
+
119
143
  const b = asNonZeroUint32(500_000);
120
144
 
121
145
  test('min and max', () => {
122
146
  expect(NonZeroUint32.min(a, b)).toBe(500_000);
147
+
123
148
  expect(NonZeroUint32.max(a, b)).toBe(1_000_000);
124
149
  });
125
150
 
@@ -130,11 +155,13 @@ describe('NonZeroUint32 test', () => {
130
155
  );
131
156
 
132
157
  expect(result).toBe(4_294_967_295); // clamped to max
158
+
133
159
  expect(NonZeroUint32.add(a, b)).toBe(1_500_000);
134
160
  });
135
161
 
136
162
  test('sub (never goes below 1)', () => {
137
163
  expect(NonZeroUint32.sub(a, b)).toBe(500_000);
164
+
138
165
  expect(NonZeroUint32.sub(b, a)).toBe(1); // clamped to 1
139
166
  });
140
167
 
@@ -145,6 +172,7 @@ describe('NonZeroUint32 test', () => {
145
172
  );
146
173
 
147
174
  expect(result).toBe(4_294_967_295); // clamped to max
175
+
148
176
  expect(NonZeroUint32.mul(asNonZeroUint32(1000), asNonZeroUint32(5))).toBe(
149
177
  5000,
150
178
  );
@@ -152,7 +180,9 @@ describe('NonZeroUint32 test', () => {
152
180
 
153
181
  test('div (floor division, never goes below 1)', () => {
154
182
  expect(NonZeroUint32.div(a, asNonZeroUint32(500_000))).toBe(2);
183
+
155
184
  expect(NonZeroUint32.div(asNonZeroUint32(7), asNonZeroUint32(3))).toBe(2);
185
+
156
186
  expect(
157
187
  NonZeroUint32.div(asNonZeroUint32(500_000), asNonZeroUint32(1_000_000)),
158
188
  ).toBe(1); // floor(500000/1000000) = 0, clamped to 1
@@ -165,6 +195,7 @@ describe('NonZeroUint32 test', () => {
165
195
  );
166
196
 
167
197
  expect(result).toBe(4_294_967_295); // clamped to max
198
+
168
199
  expect(NonZeroUint32.pow(asNonZeroUint32(2), asNonZeroUint32(3))).toBe(8);
169
200
  });
170
201
  });
@@ -172,15 +203,20 @@ describe('NonZeroUint32 test', () => {
172
203
  describe('random', () => {
173
204
  test('generates non-zero uint32 values within specified range', () => {
174
205
  const min = 1;
206
+
175
207
  const max = 20;
176
208
 
177
209
  for (const _ of range(10)) {
178
210
  const result = NonZeroUint32.random(min, max);
179
211
 
180
212
  expect(result).toBeGreaterThanOrEqual(min);
213
+
181
214
  expect(result).toBeLessThanOrEqual(max);
215
+
182
216
  expect(NonZeroUint32.is(result)).toBe(true);
217
+
183
218
  expect(Number.isInteger(result)).toBe(true);
219
+
184
220
  expect(result).not.toBe(0);
185
221
  }
186
222
  });
@@ -190,6 +226,7 @@ describe('NonZeroUint32 test', () => {
190
226
  const result = NonZeroUint32.random(1, 30);
191
227
 
192
228
  expect(result).toBeGreaterThanOrEqual(1);
229
+
193
230
  expect(result).toBeLessThanOrEqual(4_294_967_295);
194
231
  }
195
232
  });
@@ -10,20 +10,27 @@ describe('PositiveFiniteNumber test', () => {
10
10
  describe(asPositiveFiniteNumber, () => {
11
11
  test('accepts valid positive finite numbers', () => {
12
12
  expect(() => asPositiveFiniteNumber(1)).not.toThrow();
13
+
13
14
  expect(() => asPositiveFiniteNumber(3.14)).not.toThrow();
15
+
14
16
  expect(() => asPositiveFiniteNumber(0.5)).not.toThrow();
17
+
15
18
  expect(() => asPositiveFiniteNumber(Number.MIN_VALUE)).not.toThrow();
19
+
16
20
  expect(() => asPositiveFiniteNumber(Number.MAX_VALUE)).not.toThrow();
17
21
  });
18
22
 
19
23
  test('rejects zero', () => {
20
24
  expect(() => asPositiveFiniteNumber(0)).toThrow(TypeError);
25
+
21
26
  expect(() => asPositiveFiniteNumber(-0)).toThrow(TypeError);
22
27
  });
23
28
 
24
29
  test('rejects negative numbers', () => {
25
30
  expect(() => asPositiveFiniteNumber(-1)).toThrow(TypeError);
31
+
26
32
  expect(() => asPositiveFiniteNumber(-0.1)).toThrow(TypeError);
33
+
27
34
  expect(() => asPositiveFiniteNumber(-Number.MAX_VALUE)).toThrow(
28
35
  TypeError,
29
36
  );
@@ -31,9 +38,11 @@ describe('PositiveFiniteNumber test', () => {
31
38
 
32
39
  test('rejects non-finite numbers', () => {
33
40
  expect(() => asPositiveFiniteNumber(Number.NaN)).toThrow(TypeError);
41
+
34
42
  expect(() => asPositiveFiniteNumber(Number.POSITIVE_INFINITY)).toThrow(
35
43
  TypeError,
36
44
  );
45
+
37
46
  expect(() => asPositiveFiniteNumber(Number.NEGATIVE_INFINITY)).toThrow(
38
47
  TypeError,
39
48
  );
@@ -41,7 +50,9 @@ describe('PositiveFiniteNumber test', () => {
41
50
 
42
51
  test('returns the same value for valid inputs', () => {
43
52
  expect(asPositiveFiniteNumber(5.5)).toBe(5.5);
53
+
44
54
  expect(asPositiveFiniteNumber(1)).toBe(1);
55
+
45
56
  expect(asPositiveFiniteNumber(10)).toBe(10);
46
57
  });
47
58
 
@@ -63,26 +74,35 @@ describe('PositiveFiniteNumber test', () => {
63
74
  describe(isPositiveFiniteNumber, () => {
64
75
  test('correctly identifies positive finite numbers', () => {
65
76
  expect(isPositiveFiniteNumber(1)).toBe(true);
77
+
66
78
  expect(isPositiveFiniteNumber(3.14)).toBe(true);
79
+
67
80
  expect(isPositiveFiniteNumber(0.5)).toBe(true);
81
+
68
82
  expect(isPositiveFiniteNumber(Number.MIN_VALUE)).toBe(true);
83
+
69
84
  expect(isPositiveFiniteNumber(Number.MAX_VALUE)).toBe(true);
70
85
  });
71
86
 
72
87
  test('correctly identifies zero', () => {
73
88
  expect(isPositiveFiniteNumber(0)).toBe(false);
89
+
74
90
  expect(isPositiveFiniteNumber(-0)).toBe(false);
75
91
  });
76
92
 
77
93
  test('correctly identifies negative numbers', () => {
78
94
  expect(isPositiveFiniteNumber(-1)).toBe(false);
95
+
79
96
  expect(isPositiveFiniteNumber(-0.1)).toBe(false);
97
+
80
98
  expect(isPositiveFiniteNumber(-Number.MAX_VALUE)).toBe(false);
81
99
  });
82
100
 
83
101
  test('correctly identifies non-finite numbers', () => {
84
102
  expect(isPositiveFiniteNumber(Number.NaN)).toBe(false);
103
+
85
104
  expect(isPositiveFiniteNumber(Number.POSITIVE_INFINITY)).toBe(false);
105
+
86
106
  expect(isPositiveFiniteNumber(Number.NEGATIVE_INFINITY)).toBe(false);
87
107
  });
88
108
  });
@@ -90,7 +110,9 @@ describe('PositiveFiniteNumber test', () => {
90
110
  describe('PositiveFiniteNumber.is', () => {
91
111
  test('same as isPositiveFiniteNumber function', () => {
92
112
  expect(PositiveFiniteNumber.is(5)).toBe(isPositiveFiniteNumber(5));
113
+
93
114
  expect(PositiveFiniteNumber.is(0)).toBe(isPositiveFiniteNumber(0));
115
+
94
116
  expect(PositiveFiniteNumber.is(-1)).toBe(isPositiveFiniteNumber(-1));
95
117
  });
96
118
  });
@@ -103,32 +125,45 @@ describe('PositiveFiniteNumber test', () => {
103
125
 
104
126
  describe('mathematical operations', () => {
105
127
  const a = asPositiveFiniteNumber(5.5);
128
+
106
129
  const b = asPositiveFiniteNumber(2.5);
130
+
107
131
  const c = asPositiveFiniteNumber(0.5);
108
132
 
109
133
  test('min and max', () => {
110
134
  expect(PositiveFiniteNumber.min(a, b)).toBe(2.5);
135
+
111
136
  expect(PositiveFiniteNumber.max(a, b)).toBe(5.5);
137
+
112
138
  expect(PositiveFiniteNumber.min(a, c)).toBe(0.5);
139
+
113
140
  expect(PositiveFiniteNumber.max(a, c)).toBe(5.5);
114
141
  });
115
142
 
116
143
  test('floor, ceil, round', () => {
117
144
  expect(PositiveFiniteNumber.floor(a)).toBe(5);
145
+
118
146
  expect(PositiveFiniteNumber.ceil(a)).toBe(6);
147
+
119
148
  expect(PositiveFiniteNumber.round(a)).toBe(6);
149
+
120
150
  expect(PositiveFiniteNumber.floor(b)).toBe(2);
151
+
121
152
  expect(PositiveFiniteNumber.ceil(b)).toBe(3);
153
+
122
154
  expect(PositiveFiniteNumber.round(b)).toBe(3);
123
155
 
124
156
  // Test edge case with values less than 1
125
157
  expect(PositiveFiniteNumber.floor(c)).toBe(0);
158
+
126
159
  expect(PositiveFiniteNumber.ceil(c)).toBe(1);
160
+
127
161
  expect(PositiveFiniteNumber.round(c)).toBe(1);
128
162
  });
129
163
 
130
164
  test('add (always greater than 0)', () => {
131
165
  expect(PositiveFiniteNumber.add(a, b)).toBe(8);
166
+
132
167
  expect(PositiveFiniteNumber.add(a, c)).toBe(6);
133
168
  });
134
169
 
@@ -144,11 +179,13 @@ describe('PositiveFiniteNumber test', () => {
144
179
 
145
180
  test('mul (always greater than 0)', () => {
146
181
  expect(PositiveFiniteNumber.mul(a, b)).toBe(13.75);
182
+
147
183
  expect(PositiveFiniteNumber.mul(a, c)).toBe(2.75);
148
184
  });
149
185
 
150
186
  test('div (always greater than 0)', () => {
151
187
  expect(PositiveFiniteNumber.div(a, b)).toBe(2.2);
188
+
152
189
  expect(PositiveFiniteNumber.div(a, asPositiveFiniteNumber(2))).toBe(2.75);
153
190
  });
154
191
 
@@ -159,6 +196,7 @@ describe('PositiveFiniteNumber test', () => {
159
196
  asPositiveFiniteNumber(3),
160
197
  ),
161
198
  ).toBe(8);
199
+
162
200
  expect(
163
201
  PositiveFiniteNumber.pow(
164
202
  asPositiveFiniteNumber(3),
@@ -171,27 +209,34 @@ describe('PositiveFiniteNumber test', () => {
171
209
  describe('random', () => {
172
210
  test('generates positive numbers within specified range', () => {
173
211
  const min = asPositiveFiniteNumber(1.5);
212
+
174
213
  const max = asPositiveFiniteNumber(10.3);
175
214
 
176
215
  for (const _ of range(10)) {
177
216
  const result = PositiveFiniteNumber.random(min, max);
178
217
 
179
218
  expect(result).toBeGreaterThanOrEqual(min);
219
+
180
220
  expect(result).toBeLessThanOrEqual(max);
221
+
181
222
  expect(PositiveFiniteNumber.is(result)).toBe(true);
223
+
182
224
  expect(result).toBeGreaterThan(0);
183
225
  }
184
226
  });
185
227
 
186
228
  test('generates numbers starting from MIN_VALUE', () => {
187
229
  const min = asPositiveFiniteNumber(Number.MIN_VALUE);
230
+
188
231
  const max = asPositiveFiniteNumber(1);
189
232
 
190
233
  for (const _ of range(10)) {
191
234
  const result = PositiveFiniteNumber.random(min, max);
192
235
 
193
236
  expect(result).toBeGreaterThanOrEqual(Number.MIN_VALUE);
237
+
194
238
  expect(result).toBeLessThanOrEqual(1);
239
+
195
240
  expect(result).toBeGreaterThan(0);
196
241
  }
197
242
  });
@@ -39,7 +39,9 @@ const {
39
39
  *
40
40
  * ```ts
41
41
  * assert.ok(isPositiveInt(5));
42
+ *
42
43
  * assert.notOk(isPositiveInt(0));
44
+ *
43
45
  * assert.ok(PositiveInt.is(10));
44
46
  * ```
45
47
  *
@@ -61,6 +63,7 @@ export const isPositiveInt = is;
61
63
  * const branded = asPositiveInt(7);
62
64
  *
63
65
  * assert(branded === 7);
66
+ *
64
67
  * assert.ok(PositiveInt.is(branded));
65
68
  * ```
66
69
  *
@@ -94,7 +97,9 @@ export const PositiveInt = {
94
97
  *
95
98
  * ```ts
96
99
  * assert.ok(isPositiveInt(5));
100
+ *
97
101
  * assert.notOk(isPositiveInt(0));
102
+ *
98
103
  * assert.ok(PositiveInt.is(10));
99
104
  * ```
100
105
  *
@@ -164,9 +169,11 @@ export const PositiveInt = {
164
169
  *
165
170
  * ```ts
166
171
  * const belowRange = PositiveInt.clamp(0);
172
+ *
167
173
  * const withinRange = PositiveInt.clamp(10);
168
174
  *
169
175
  * assert(belowRange === 1);
176
+ *
170
177
  * assert(withinRange === 10);
171
178
  * ```
172
179
  *
@@ -185,10 +192,13 @@ export const PositiveInt = {
185
192
  *
186
193
  * ```ts
187
194
  * const min = asPositiveInt(3);
195
+ *
188
196
  * const max = asPositiveInt(6);
197
+ *
189
198
  * const randomValue = PositiveInt.random(min, max);
190
199
  *
191
200
  * assert.ok(PositiveInt.is(randomValue));
201
+ *
192
202
  * assert.ok(randomValue >= 3 && randomValue <= 6);
193
203
  * ```
194
204
  *
@@ -206,7 +216,9 @@ export const PositiveInt = {
206
216
  *
207
217
  * ```ts
208
218
  * const base = asPositiveInt(2);
219
+ *
209
220
  * const exponent = asPositiveInt(4);
221
+ *
210
222
  * const power = PositiveInt.pow(base, exponent);
211
223
  *
212
224
  * assert(power === 16);
@@ -284,9 +296,11 @@ export const PositiveInt = {
284
296
  *
285
297
  * ```ts
286
298
  * const quotient = PositiveInt.div(asPositiveInt(9), asPositiveInt(2));
299
+ *
287
300
  * const clamped = PositiveInt.div(asPositiveInt(3), asPositiveInt(10));
288
301
  *
289
302
  * assert(quotient === 4);
303
+ *
290
304
  * assert(clamped === 1);
291
305
  * ```
292
306
  *
@@ -6,34 +6,47 @@ describe('PositiveInt test', () => {
6
6
  describe(asPositiveInt, () => {
7
7
  test('accepts valid positive integers', () => {
8
8
  expect(() => asPositiveInt(1)).not.toThrow();
9
+
9
10
  expect(() => asPositiveInt(2)).not.toThrow();
11
+
10
12
  expect(() => asPositiveInt(42)).not.toThrow();
13
+
11
14
  expect(() => asPositiveInt(100)).not.toThrow();
15
+
12
16
  expect(() => asPositiveInt(Number.MAX_SAFE_INTEGER)).not.toThrow();
13
17
  });
14
18
 
15
19
  test('rejects zero', () => {
16
20
  expect(() => asPositiveInt(0)).toThrow(TypeError);
21
+
17
22
  expect(() => asPositiveInt(-0)).toThrow(TypeError);
18
23
  });
19
24
 
20
25
  test('rejects negative integers', () => {
21
26
  expect(() => asPositiveInt(-1)).toThrow(TypeError);
27
+
22
28
  expect(() => asPositiveInt(-42)).toThrow(TypeError);
29
+
23
30
  expect(() => asPositiveInt(Number.MIN_SAFE_INTEGER)).toThrow(TypeError);
24
31
  });
25
32
 
26
33
  test('rejects non-integers', () => {
27
34
  expect(() => asPositiveInt(Number.NaN)).toThrow(TypeError);
35
+
28
36
  expect(() => asPositiveInt(Number.POSITIVE_INFINITY)).toThrow(TypeError);
37
+
29
38
  expect(() => asPositiveInt(Number.NEGATIVE_INFINITY)).toThrow(TypeError);
39
+
30
40
  expect(() => asPositiveInt(1.2)).toThrow(TypeError);
41
+
31
42
  expect(() => asPositiveInt(-3.4)).toThrow(TypeError);
32
43
  });
33
44
 
34
45
  test('returns the same value for valid inputs', () => {
35
46
  expect(asPositiveInt(5)).toBe(5);
47
+
36
48
  expect(asPositiveInt(1)).toBe(1);
49
+
37
50
  expect(asPositiveInt(10)).toBe(10);
38
51
  });
39
52
 
@@ -58,28 +71,39 @@ describe('PositiveInt test', () => {
58
71
  describe(isPositiveInt, () => {
59
72
  test('correctly identifies positive integers', () => {
60
73
  expect(isPositiveInt(1)).toBe(true);
74
+
61
75
  expect(isPositiveInt(2)).toBe(true);
76
+
62
77
  expect(isPositiveInt(42)).toBe(true);
78
+
63
79
  expect(isPositiveInt(100)).toBe(true);
80
+
64
81
  expect(isPositiveInt(Number.MAX_SAFE_INTEGER)).toBe(true);
65
82
  });
66
83
 
67
84
  test('correctly identifies zero', () => {
68
85
  expect(isPositiveInt(0)).toBe(false);
86
+
69
87
  expect(isPositiveInt(-0)).toBe(false);
70
88
  });
71
89
 
72
90
  test('correctly identifies negative integers', () => {
73
91
  expect(isPositiveInt(-1)).toBe(false);
92
+
74
93
  expect(isPositiveInt(-42)).toBe(false);
94
+
75
95
  expect(isPositiveInt(Number.MIN_SAFE_INTEGER)).toBe(false);
76
96
  });
77
97
 
78
98
  test('correctly identifies non-integers', () => {
79
99
  expect(isPositiveInt(Number.NaN)).toBe(false);
100
+
80
101
  expect(isPositiveInt(Number.POSITIVE_INFINITY)).toBe(false);
102
+
81
103
  expect(isPositiveInt(Number.NEGATIVE_INFINITY)).toBe(false);
104
+
82
105
  expect(isPositiveInt(1.2)).toBe(false);
106
+
83
107
  expect(isPositiveInt(-3.4)).toBe(false);
84
108
  });
85
109
  });
@@ -87,7 +111,9 @@ describe('PositiveInt test', () => {
87
111
  describe('PositiveInt.is', () => {
88
112
  test('same as isPositiveInt function', () => {
89
113
  expect(PositiveInt.is(5)).toBe(isPositiveInt(5));
114
+
90
115
  expect(PositiveInt.is(0)).toBe(isPositiveInt(0));
116
+
91
117
  expect(PositiveInt.is(-10)).toBe(isPositiveInt(-10));
92
118
  });
93
119
  });
@@ -100,41 +126,54 @@ describe('PositiveInt test', () => {
100
126
 
101
127
  describe('mathematical operations', () => {
102
128
  const a = asPositiveInt(5);
129
+
103
130
  const b = asPositiveInt(2);
131
+
104
132
  const c = asPositiveInt(1);
105
133
 
106
134
  test('min and max', () => {
107
135
  expect(PositiveInt.min(a, b)).toBe(2);
136
+
108
137
  expect(PositiveInt.max(a, b)).toBe(5);
138
+
109
139
  expect(PositiveInt.min(a, c)).toBe(1);
140
+
110
141
  expect(PositiveInt.max(a, c)).toBe(5);
111
142
  });
112
143
 
113
144
  test('add (never goes below 1)', () => {
114
145
  expect(PositiveInt.add(a, b)).toBe(7);
146
+
115
147
  expect(PositiveInt.add(a, c)).toBe(6);
116
148
  });
117
149
 
118
150
  test('sub (never goes below 1)', () => {
119
151
  expect(PositiveInt.sub(a, b)).toBe(3);
152
+
120
153
  expect(PositiveInt.sub(b, a)).toBe(1); // clamped to 1
154
+
121
155
  expect(PositiveInt.sub(c, a)).toBe(1); // clamped to 1
122
156
  });
123
157
 
124
158
  test('mul (never goes below 1)', () => {
125
159
  expect(PositiveInt.mul(a, b)).toBe(10);
160
+
126
161
  expect(PositiveInt.mul(a, c)).toBe(5);
127
162
  });
128
163
 
129
164
  test('div (floor division, never goes below 1)', () => {
130
165
  expect(PositiveInt.div(a, b)).toBe(2);
166
+
131
167
  expect(PositiveInt.div(asPositiveInt(7), asPositiveInt(3))).toBe(2);
168
+
132
169
  expect(PositiveInt.div(b, a)).toBe(1); // floor(2/5) = 0, but clamped to 1
133
170
  });
134
171
 
135
172
  test('pow (never goes below 1)', () => {
136
173
  expect(PositiveInt.pow(asPositiveInt(2), asPositiveInt(3))).toBe(8);
174
+
137
175
  expect(PositiveInt.pow(asPositiveInt(3), asPositiveInt(2))).toBe(9);
176
+
138
177
  expect(PositiveInt.pow(asPositiveInt(5), asPositiveInt(1))).toBe(5);
139
178
  });
140
179
  });
@@ -142,28 +181,36 @@ describe('PositiveInt test', () => {
142
181
  describe('random', () => {
143
182
  test('generates positive integers within specified range', () => {
144
183
  const min = 1;
184
+
145
185
  const max = 10;
146
186
 
147
187
  for (const _ of range(10)) {
148
188
  const result = PositiveInt.random(min, max);
149
189
 
150
190
  expect(result).toBeGreaterThanOrEqual(min);
191
+
151
192
  expect(result).toBeLessThanOrEqual(max);
193
+
152
194
  expect(PositiveInt.is(result)).toBe(true);
195
+
153
196
  expect(Number.isInteger(result)).toBe(true);
197
+
154
198
  expect(result).toBeGreaterThan(0);
155
199
  }
156
200
  });
157
201
 
158
202
  test('generates integers starting from 1', () => {
159
203
  const min = 1;
204
+
160
205
  const max = 5;
161
206
 
162
207
  for (const _ of range(10)) {
163
208
  const result = PositiveInt.random(min, max);
164
209
 
165
210
  expect(result).toBeGreaterThanOrEqual(1);
211
+
166
212
  expect(result).toBeLessThanOrEqual(5);
213
+
167
214
  expect(result).toBeGreaterThan(0);
168
215
  }
169
216
  });