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
@@ -6,35 +6,49 @@ describe('SafeUint test', () => {
6
6
  describe(asSafeUint, () => {
7
7
  test('accepts valid safe unsigned integers', () => {
8
8
  expect(() => asSafeUint(0)).not.toThrow();
9
+
9
10
  expect(() => asSafeUint(1)).not.toThrow();
11
+
10
12
  expect(() => asSafeUint(42)).not.toThrow();
13
+
11
14
  expect(() => asSafeUint(100)).not.toThrow();
15
+
12
16
  expect(() => asSafeUint(Number.MAX_SAFE_INTEGER)).not.toThrow();
13
17
  });
14
18
 
15
19
  test('rejects negative numbers', () => {
16
20
  expect(() => asSafeUint(-1)).toThrow(TypeError);
21
+
17
22
  expect(() => asSafeUint(-42)).toThrow(TypeError);
23
+
18
24
  expect(() => asSafeUint(Number.MIN_SAFE_INTEGER)).toThrow(TypeError);
19
25
  });
20
26
 
21
27
  test('rejects values outside safe integer range', () => {
22
28
  expect(() => asSafeUint(Number.MAX_SAFE_INTEGER + 1)).toThrow(TypeError);
29
+
23
30
  expect(() => asSafeUint(Number.MAX_VALUE)).toThrow(TypeError);
24
31
  });
25
32
 
26
33
  test('rejects non-integers', () => {
27
34
  expect(() => asSafeUint(Number.NaN)).toThrow(TypeError);
35
+
28
36
  expect(() => asSafeUint(Number.POSITIVE_INFINITY)).toThrow(TypeError);
37
+
29
38
  expect(() => asSafeUint(Number.NEGATIVE_INFINITY)).toThrow(TypeError);
39
+
30
40
  expect(() => asSafeUint(1.2)).toThrow(TypeError);
41
+
31
42
  expect(() => asSafeUint(-3.4)).toThrow(TypeError);
32
43
  });
33
44
 
34
45
  test('returns the same value for valid inputs', () => {
35
46
  expect(asSafeUint(5)).toBe(5);
47
+
36
48
  expect(asSafeUint(0)).toBe(0);
49
+
37
50
  expect(asSafeUint(10)).toBe(10);
51
+
38
52
  expect(asSafeUint(Number.MAX_SAFE_INTEGER)).toBe(Number.MAX_SAFE_INTEGER);
39
53
  });
40
54
 
@@ -55,28 +69,39 @@ describe('SafeUint test', () => {
55
69
  describe(isSafeUint, () => {
56
70
  test('correctly identifies safe unsigned integers', () => {
57
71
  expect(isSafeUint(0)).toBe(true);
72
+
58
73
  expect(isSafeUint(1)).toBe(true);
74
+
59
75
  expect(isSafeUint(42)).toBe(true);
76
+
60
77
  expect(isSafeUint(100)).toBe(true);
78
+
61
79
  expect(isSafeUint(Number.MAX_SAFE_INTEGER)).toBe(true);
62
80
  });
63
81
 
64
82
  test('correctly identifies negative numbers', () => {
65
83
  expect(isSafeUint(-1)).toBe(false);
84
+
66
85
  expect(isSafeUint(-42)).toBe(false);
86
+
67
87
  expect(isSafeUint(Number.MIN_SAFE_INTEGER)).toBe(false);
68
88
  });
69
89
 
70
90
  test('correctly identifies values outside safe integer range', () => {
71
91
  expect(isSafeUint(Number.MAX_SAFE_INTEGER + 1)).toBe(false);
92
+
72
93
  expect(isSafeUint(Number.MAX_VALUE)).toBe(false);
73
94
  });
74
95
 
75
96
  test('correctly identifies non-integers', () => {
76
97
  expect(isSafeUint(Number.NaN)).toBe(false);
98
+
77
99
  expect(isSafeUint(Number.POSITIVE_INFINITY)).toBe(false);
100
+
78
101
  expect(isSafeUint(Number.NEGATIVE_INFINITY)).toBe(false);
102
+
79
103
  expect(isSafeUint(1.2)).toBe(false);
104
+
80
105
  expect(isSafeUint(-3.4)).toBe(false);
81
106
  });
82
107
  });
@@ -84,7 +109,9 @@ describe('SafeUint test', () => {
84
109
  describe('SafeUint.is', () => {
85
110
  test('same as isSafeUint function', () => {
86
111
  expect(SafeUint.is(5)).toBe(isSafeUint(5));
112
+
87
113
  expect(SafeUint.is(-1)).toBe(isSafeUint(-1));
114
+
88
115
  expect(SafeUint.is(0)).toBe(isSafeUint(0));
89
116
  });
90
117
  });
@@ -92,33 +119,43 @@ describe('SafeUint test', () => {
92
119
  describe('constants', () => {
93
120
  test('MIN_VALUE and MAX_VALUE', () => {
94
121
  expect(SafeUint.MIN_VALUE).toBe(0);
122
+
95
123
  expect(SafeUint.MAX_VALUE).toBe(Number.MAX_SAFE_INTEGER);
96
124
  });
97
125
  });
98
126
 
99
127
  describe('mathematical operations', () => {
100
128
  const a = asSafeUint(5);
129
+
101
130
  const b = asSafeUint(2);
131
+
102
132
  const c = asSafeUint(0);
103
133
 
104
134
  test('min and max', () => {
105
135
  expect(SafeUint.min(a, b)).toBe(2);
136
+
106
137
  expect(SafeUint.max(a, b)).toBe(5);
138
+
107
139
  expect(SafeUint.min(a, c)).toBe(0);
140
+
108
141
  expect(SafeUint.max(a, c)).toBe(5);
109
142
  });
110
143
 
111
144
  test('add (clamped to safe uint range)', () => {
112
145
  const largeValue = asSafeUint(Number.MAX_SAFE_INTEGER - 1);
146
+
113
147
  const result = SafeUint.add(largeValue, asSafeUint(10));
114
148
 
115
149
  expect(result).toBe(Number.MAX_SAFE_INTEGER); // clamped to max
150
+
116
151
  expect(SafeUint.add(a, b)).toBe(7);
117
152
  });
118
153
 
119
154
  test('sub (never goes below 0)', () => {
120
155
  expect(SafeUint.sub(a, b)).toBe(3);
156
+
121
157
  expect(SafeUint.sub(b, a)).toBe(0); // clamped to 0
158
+
122
159
  expect(SafeUint.sub(c, a)).toBe(0); // clamped to 0
123
160
  });
124
161
 
@@ -126,15 +163,19 @@ describe('SafeUint test', () => {
126
163
  const largeValue = asSafeUint(
127
164
  Math.floor(Math.sqrt(Number.MAX_SAFE_INTEGER)),
128
165
  );
166
+
129
167
  const result = SafeUint.mul(largeValue, largeValue);
130
168
 
131
169
  expect(result).toBeLessThanOrEqual(Number.MAX_SAFE_INTEGER);
170
+
132
171
  expect(SafeUint.mul(asSafeUint(10), asSafeUint(5))).toBe(50);
133
172
  });
134
173
 
135
174
  test('div (floor division, never goes below 0)', () => {
136
175
  expect(SafeUint.div(a, b)).toBe(2);
176
+
137
177
  expect(SafeUint.div(asSafeUint(7), asSafeUint(3))).toBe(2);
178
+
138
179
  expect(SafeUint.div(b, a)).toBe(0); // floor(2/5) = 0
139
180
  });
140
181
 
@@ -142,6 +183,7 @@ describe('SafeUint test', () => {
142
183
  const result = SafeUint.pow(asSafeUint(1000), asSafeUint(10));
143
184
 
144
185
  expect(result).toBe(Number.MAX_SAFE_INTEGER); // clamped to max
186
+
145
187
  expect(SafeUint.pow(asSafeUint(2), asSafeUint(3))).toBe(8);
146
188
  });
147
189
  });
@@ -149,15 +191,20 @@ describe('SafeUint test', () => {
149
191
  describe('random', () => {
150
192
  test('generates safe unsigned integers within specified range', () => {
151
193
  const min = 0;
194
+
152
195
  const max = 20;
153
196
 
154
197
  for (const _ of range(10)) {
155
198
  const result = SafeUint.random(min, max);
156
199
 
157
200
  expect(result).toBeGreaterThanOrEqual(min);
201
+
158
202
  expect(result).toBeLessThanOrEqual(max);
203
+
159
204
  expect(SafeUint.is(result)).toBe(true);
205
+
160
206
  expect(Number.isInteger(result)).toBe(true);
207
+
161
208
  expect(result).toBeGreaterThanOrEqual(0);
162
209
  }
163
210
  });
@@ -167,6 +214,7 @@ describe('SafeUint test', () => {
167
214
  const result = SafeUint.random(0, 30);
168
215
 
169
216
  expect(result).toBeGreaterThanOrEqual(0);
217
+
170
218
  expect(result).toBeLessThanOrEqual(Number.MAX_SAFE_INTEGER);
171
219
  }
172
220
  });
@@ -36,7 +36,9 @@ const {
36
36
  *
37
37
  * ```ts
38
38
  * assert.ok(isUint(4));
39
+ *
39
40
  * assert.notOk(isUint(-1));
41
+ *
40
42
  * assert.ok(Uint.is(0));
41
43
  * ```
42
44
  *
@@ -54,6 +56,7 @@ export const isUint = is;
54
56
  * const branded = asUint(12);
55
57
  *
56
58
  * assert(branded === 12);
59
+ *
57
60
  * assert.ok(Uint.is(branded));
58
61
  * ```
59
62
  *
@@ -78,7 +81,9 @@ export const Uint = {
78
81
  *
79
82
  * ```ts
80
83
  * assert.ok(isUint(4));
84
+ *
81
85
  * assert.notOk(isUint(-1));
86
+ *
82
87
  * assert.ok(Uint.is(0));
83
88
  * ```
84
89
  *
@@ -136,9 +141,11 @@ export const Uint = {
136
141
  *
137
142
  * ```ts
138
143
  * const clampedNegative = Uint.clamp(-5);
144
+ *
139
145
  * const clampedPositive = Uint.clamp(42);
140
146
  *
141
147
  * assert(clampedNegative === 0);
148
+ *
142
149
  * assert(clampedPositive === 42);
143
150
  * ```
144
151
  *
@@ -154,10 +161,13 @@ export const Uint = {
154
161
  *
155
162
  * ```ts
156
163
  * const min = asUint(0);
164
+ *
157
165
  * const max = asUint(3);
166
+ *
158
167
  * const randomValue = Uint.random(min, max);
159
168
  *
160
169
  * assert.ok(Uint.is(randomValue));
170
+ *
161
171
  * assert.ok(randomValue >= 0 && randomValue <= 3);
162
172
  * ```
163
173
  *
@@ -172,7 +182,9 @@ export const Uint = {
172
182
  *
173
183
  * ```ts
174
184
  * const base = asUint(2);
185
+ *
175
186
  * const exponent = asUint(5);
187
+ *
176
188
  * const power = Uint.pow(base, exponent);
177
189
  *
178
190
  * assert(power === 32);
@@ -6,29 +6,41 @@ describe('Uint test', () => {
6
6
  describe(asUint, () => {
7
7
  test('accepts valid unsigned integers', () => {
8
8
  expect(() => asUint(0)).not.toThrow();
9
+
9
10
  expect(() => asUint(1)).not.toThrow();
11
+
10
12
  expect(() => asUint(42)).not.toThrow();
13
+
11
14
  expect(() => asUint(100)).not.toThrow();
15
+
12
16
  expect(() => asUint(Number.MAX_SAFE_INTEGER)).not.toThrow();
13
17
  });
14
18
 
15
19
  test('rejects negative integers', () => {
16
20
  expect(() => asUint(-1)).toThrow(TypeError);
21
+
17
22
  expect(() => asUint(-42)).toThrow(TypeError);
23
+
18
24
  expect(() => asUint(Number.MIN_SAFE_INTEGER)).toThrow(TypeError);
19
25
  });
20
26
 
21
27
  test('rejects non-integers', () => {
22
28
  expect(() => asUint(Number.NaN)).toThrow(TypeError);
29
+
23
30
  expect(() => asUint(Number.POSITIVE_INFINITY)).toThrow(TypeError);
31
+
24
32
  expect(() => asUint(Number.NEGATIVE_INFINITY)).toThrow(TypeError);
33
+
25
34
  expect(() => asUint(1.2)).toThrow(TypeError);
35
+
26
36
  expect(() => asUint(-3.4)).toThrow(TypeError);
27
37
  });
28
38
 
29
39
  test('returns the same value for valid inputs', () => {
30
40
  expect(asUint(5)).toBe(5);
41
+
31
42
  expect(asUint(0)).toBe(0);
43
+
32
44
  expect(asUint(10)).toBe(10);
33
45
  });
34
46
 
@@ -49,23 +61,33 @@ describe('Uint test', () => {
49
61
  describe(isUint, () => {
50
62
  test('correctly identifies unsigned integers', () => {
51
63
  expect(isUint(0)).toBe(true);
64
+
52
65
  expect(isUint(1)).toBe(true);
66
+
53
67
  expect(isUint(42)).toBe(true);
68
+
54
69
  expect(isUint(100)).toBe(true);
70
+
55
71
  expect(isUint(Number.MAX_SAFE_INTEGER)).toBe(true);
56
72
  });
57
73
 
58
74
  test('correctly identifies negative integers', () => {
59
75
  expect(isUint(-1)).toBe(false);
76
+
60
77
  expect(isUint(-42)).toBe(false);
78
+
61
79
  expect(isUint(Number.MIN_SAFE_INTEGER)).toBe(false);
62
80
  });
63
81
 
64
82
  test('correctly identifies non-integers', () => {
65
83
  expect(isUint(Number.NaN)).toBe(false);
84
+
66
85
  expect(isUint(Number.POSITIVE_INFINITY)).toBe(false);
86
+
67
87
  expect(isUint(Number.NEGATIVE_INFINITY)).toBe(false);
88
+
68
89
  expect(isUint(1.2)).toBe(false);
90
+
69
91
  expect(isUint(-3.4)).toBe(false);
70
92
  });
71
93
  });
@@ -73,7 +95,9 @@ describe('Uint test', () => {
73
95
  describe('Uint.is', () => {
74
96
  test('same as isUint function', () => {
75
97
  expect(Uint.is(5)).toBe(isUint(5));
98
+
76
99
  expect(Uint.is(-1)).toBe(isUint(-1));
100
+
77
101
  expect(Uint.is(0)).toBe(isUint(0));
78
102
  });
79
103
  });
@@ -86,41 +110,54 @@ describe('Uint test', () => {
86
110
 
87
111
  describe('mathematical operations', () => {
88
112
  const a = asUint(5);
113
+
89
114
  const b = asUint(2);
115
+
90
116
  const c = asUint(0);
91
117
 
92
118
  test('min and max', () => {
93
119
  expect(Uint.min(a, b)).toBe(2);
120
+
94
121
  expect(Uint.max(a, b)).toBe(5);
122
+
95
123
  expect(Uint.min(a, c)).toBe(0);
124
+
96
125
  expect(Uint.max(a, c)).toBe(5);
97
126
  });
98
127
 
99
128
  test('add (never goes below 0)', () => {
100
129
  expect(Uint.add(a, b)).toBe(7);
130
+
101
131
  expect(Uint.add(a, c)).toBe(5);
102
132
  });
103
133
 
104
134
  test('sub (never goes below 0)', () => {
105
135
  expect(Uint.sub(a, b)).toBe(3);
136
+
106
137
  expect(Uint.sub(b, a)).toBe(0); // clamped to 0
138
+
107
139
  expect(Uint.sub(c, a)).toBe(0); // clamped to 0
108
140
  });
109
141
 
110
142
  test('mul (never goes below 0)', () => {
111
143
  expect(Uint.mul(a, b)).toBe(10);
144
+
112
145
  expect(Uint.mul(a, c)).toBe(0);
113
146
  });
114
147
 
115
148
  test('div (floor division, never goes below 0)', () => {
116
149
  expect(Uint.div(a, b)).toBe(2);
150
+
117
151
  expect(Uint.div(asUint(7), asUint(3))).toBe(2);
152
+
118
153
  expect(Uint.div(b, a)).toBe(0); // floor(2/5) = 0
119
154
  });
120
155
 
121
156
  test('pow (never goes below 0)', () => {
122
157
  expect(Uint.pow(asUint(2), asUint(3))).toBe(8);
158
+
123
159
  expect(Uint.pow(asUint(3), asUint(2))).toBe(9);
160
+
124
161
  expect(Uint.pow(asUint(5), asUint(0))).toBe(1);
125
162
  });
126
163
  });
@@ -128,15 +165,20 @@ describe('Uint test', () => {
128
165
  describe('random', () => {
129
166
  test('generates unsigned integers within specified range', () => {
130
167
  const min = 0;
168
+
131
169
  const max = 20;
132
170
 
133
171
  for (const _ of range(10)) {
134
172
  const result = Uint.random(min, max);
135
173
 
136
174
  expect(result).toBeGreaterThanOrEqual(min);
175
+
137
176
  expect(result).toBeLessThanOrEqual(max);
177
+
138
178
  expect(Uint.is(result)).toBe(true);
179
+
139
180
  expect(Number.isInteger(result)).toBe(true);
181
+
140
182
  expect(result).toBeGreaterThanOrEqual(0);
141
183
  }
142
184
  });
@@ -146,6 +188,7 @@ describe('Uint test', () => {
146
188
  const result = Uint.random(0, 30);
147
189
 
148
190
  expect(result).toBeGreaterThanOrEqual(0);
191
+
149
192
  expect(result).toBeLessThanOrEqual(30);
150
193
  }
151
194
  });
@@ -7,32 +7,43 @@ describe('Uint16 test', () => {
7
7
  describe(asUint16, () => {
8
8
  test('accepts valid uint16 values', () => {
9
9
  expect(() => asUint16(0)).not.toThrow();
10
+
10
11
  expect(() => asUint16(1)).not.toThrow();
12
+
11
13
  expect(() => asUint16(65_535)).not.toThrow(); // 2^16 - 1
14
+
12
15
  expect(() => asUint16(32_768)).not.toThrow(); // 2^15
13
16
  });
14
17
 
15
18
  test('rejects values outside uint16 range', () => {
16
19
  expect(() => asUint16(65_536)).toThrow(TypeError); // 2^16
20
+
17
21
  expect(() => asUint16(100_000)).toThrow(TypeError);
18
22
  });
19
23
 
20
24
  test('rejects negative integers', () => {
21
25
  expect(() => asUint16(-1)).toThrow(TypeError);
26
+
22
27
  expect(() => asUint16(-42)).toThrow(TypeError);
23
28
  });
24
29
 
25
30
  test('rejects non-integers', () => {
26
31
  expect(() => asUint16(Number.NaN)).toThrow(TypeError);
32
+
27
33
  expect(() => asUint16(Number.POSITIVE_INFINITY)).toThrow(TypeError);
34
+
28
35
  expect(() => asUint16(Number.NEGATIVE_INFINITY)).toThrow(TypeError);
36
+
29
37
  expect(() => asUint16(1.2)).toThrow(TypeError);
38
+
30
39
  expect(() => asUint16(-3.4)).toThrow(TypeError);
31
40
  });
32
41
 
33
42
  test('returns the same value for valid inputs', () => {
34
43
  expect(asUint16(5)).toBe(5);
44
+
35
45
  expect(asUint16(0)).toBe(0);
46
+
36
47
  expect(asUint16(65_535)).toBe(65_535);
37
48
  });
38
49
 
@@ -55,26 +66,35 @@ describe('Uint16 test', () => {
55
66
  describe(isUint16, () => {
56
67
  test('correctly identifies uint16 values', () => {
57
68
  expect(isUint16(0)).toBe(true);
69
+
58
70
  expect(isUint16(1)).toBe(true);
71
+
59
72
  expect(isUint16(65_535)).toBe(true);
73
+
60
74
  expect(isUint16(32_768)).toBe(true);
61
75
  });
62
76
 
63
77
  test('correctly identifies values outside uint16 range', () => {
64
78
  expect(isUint16(65_536)).toBe(false);
79
+
65
80
  expect(isUint16(100_000)).toBe(false);
66
81
  });
67
82
 
68
83
  test('correctly identifies negative integers', () => {
69
84
  expect(isUint16(-1)).toBe(false);
85
+
70
86
  expect(isUint16(-42)).toBe(false);
71
87
  });
72
88
 
73
89
  test('correctly identifies non-integers', () => {
74
90
  expect(isUint16(Number.NaN)).toBe(false);
91
+
75
92
  expect(isUint16(Number.POSITIVE_INFINITY)).toBe(false);
93
+
76
94
  expect(isUint16(Number.NEGATIVE_INFINITY)).toBe(false);
95
+
77
96
  expect(isUint16(1.2)).toBe(false);
97
+
78
98
  expect(isUint16(-3.4)).toBe(false);
79
99
  });
80
100
  });
@@ -82,7 +102,9 @@ describe('Uint16 test', () => {
82
102
  describe('Uint16.is', () => {
83
103
  test('same as isUint16 function', () => {
84
104
  expect(Uint16.is(5)).toBe(isUint16(5));
105
+
85
106
  expect(Uint16.is(65_536)).toBe(isUint16(65_536));
107
+
86
108
  expect(Uint16.is(-1)).toBe(isUint16(-1));
87
109
  });
88
110
  });
@@ -90,19 +112,25 @@ describe('Uint16 test', () => {
90
112
  describe('constants', () => {
91
113
  test('MIN_VALUE and MAX_VALUE', () => {
92
114
  expect(Uint16.MIN_VALUE).toBe(0);
115
+
93
116
  expect(Uint16.MAX_VALUE).toBe(65_535);
94
117
  });
95
118
  });
96
119
 
97
120
  describe('mathematical operations', () => {
98
121
  const a = asUint16(100);
122
+
99
123
  const b = asUint16(50);
124
+
100
125
  const c = asUint16(0);
101
126
 
102
127
  test('min and max', () => {
103
128
  expect(Uint16.min(a, b)).toBe(50);
129
+
104
130
  expect(Uint16.max(a, b)).toBe(100);
131
+
105
132
  expect(Uint16.min(a, c)).toBe(0);
133
+
106
134
  expect(Uint16.max(a, c)).toBe(100);
107
135
  });
108
136
 
@@ -110,12 +138,15 @@ describe('Uint16 test', () => {
110
138
  const result = Uint16.add(asUint16(65_000), asUint16(1000));
111
139
 
112
140
  expect(result).toBe(65_535); // clamped to max
141
+
113
142
  expect(Uint16.add(a, b)).toBe(150);
114
143
  });
115
144
 
116
145
  test('sub (never goes below 0)', () => {
117
146
  expect(Uint16.sub(a, b)).toBe(50);
147
+
118
148
  expect(Uint16.sub(b, a)).toBe(0); // clamped to 0
149
+
119
150
  expect(Uint16.sub(c, a)).toBe(0); // clamped to 0
120
151
  });
121
152
 
@@ -123,12 +154,15 @@ describe('Uint16 test', () => {
123
154
  const result = Uint16.mul(asUint16(1000), asUint16(100));
124
155
 
125
156
  expect(result).toBe(65_535); // clamped to max
157
+
126
158
  expect(Uint16.mul(asUint16(10), asUint16(5))).toBe(50);
127
159
  });
128
160
 
129
161
  test('div (floor division, never goes below 0)', () => {
130
162
  expect(Uint16.div(a, asNonZeroUint16(50))).toBe(2);
163
+
131
164
  expect(Uint16.div(asUint16(7), asNonZeroUint16(3))).toBe(2);
165
+
132
166
  expect(Uint16.div(asUint16(50), asNonZeroUint16(100))).toBe(0); // floor(50/100) = 0
133
167
  });
134
168
 
@@ -136,6 +170,7 @@ describe('Uint16 test', () => {
136
170
  const result = Uint16.pow(asUint16(256), asUint16(3));
137
171
 
138
172
  expect(result).toBe(65_535); // clamped to max
173
+
139
174
  expect(Uint16.pow(asUint16(2), asUint16(3))).toBe(8);
140
175
  });
141
176
  });
@@ -143,15 +178,20 @@ describe('Uint16 test', () => {
143
178
  describe('random', () => {
144
179
  test('generates uint16 values within specified range', () => {
145
180
  const min = 0;
181
+
146
182
  const max = 20;
147
183
 
148
184
  for (const _ of range(10)) {
149
185
  const result = Uint16.random(min, max);
150
186
 
151
187
  expect(result).toBeGreaterThanOrEqual(min);
188
+
152
189
  expect(result).toBeLessThanOrEqual(max);
190
+
153
191
  expect(Uint16.is(result)).toBe(true);
192
+
154
193
  expect(Number.isInteger(result)).toBe(true);
194
+
155
195
  expect(result).toBeGreaterThanOrEqual(0);
156
196
  }
157
197
  });
@@ -161,6 +201,7 @@ describe('Uint16 test', () => {
161
201
  const result = Uint16.random(0, 30);
162
202
 
163
203
  expect(result).toBeGreaterThanOrEqual(0);
204
+
164
205
  expect(result).toBeLessThanOrEqual(65_535);
165
206
  }
166
207
  });