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,7 +10,9 @@ describe('PositiveInt16 test', () => {
10
10
  describe(asPositiveInt16, () => {
11
11
  test('accepts valid positive int16 values', () => {
12
12
  expect(() => asPositiveInt16(1)).not.toThrow();
13
+
13
14
  expect(() => asPositiveInt16(1000)).not.toThrow();
15
+
14
16
  expect(() => asPositiveInt16(32_767)).not.toThrow(); // 2^15 - 1
15
17
  });
16
18
 
@@ -20,29 +22,37 @@ describe('PositiveInt16 test', () => {
20
22
 
21
23
  test('rejects values outside int16 range', () => {
22
24
  expect(() => asPositiveInt16(32_768)).toThrow(TypeError); // 2^15
25
+
23
26
  expect(() => asPositiveInt16(65_536)).toThrow(TypeError);
24
27
  });
25
28
 
26
29
  test('rejects negative integers', () => {
27
30
  expect(() => asPositiveInt16(-1)).toThrow(TypeError);
31
+
28
32
  expect(() => asPositiveInt16(-42)).toThrow(TypeError);
29
33
  });
30
34
 
31
35
  test('rejects non-integers', () => {
32
36
  expect(() => asPositiveInt16(Number.NaN)).toThrow(TypeError);
37
+
33
38
  expect(() => asPositiveInt16(Number.POSITIVE_INFINITY)).toThrow(
34
39
  TypeError,
35
40
  );
41
+
36
42
  expect(() => asPositiveInt16(Number.NEGATIVE_INFINITY)).toThrow(
37
43
  TypeError,
38
44
  );
45
+
39
46
  expect(() => asPositiveInt16(1.2)).toThrow(TypeError);
47
+
40
48
  expect(() => asPositiveInt16(-3.4)).toThrow(TypeError);
41
49
  });
42
50
 
43
51
  test('returns the same value for valid inputs', () => {
44
52
  expect(asPositiveInt16(5)).toBe(5);
53
+
45
54
  expect(asPositiveInt16(1)).toBe(1);
55
+
46
56
  expect(asPositiveInt16(32_767)).toBe(32_767);
47
57
  });
48
58
 
@@ -70,7 +80,9 @@ describe('PositiveInt16 test', () => {
70
80
  describe(isPositiveInt16, () => {
71
81
  test('correctly identifies positive int16 values', () => {
72
82
  expect(isPositiveInt16(1)).toBe(true);
83
+
73
84
  expect(isPositiveInt16(1000)).toBe(true);
85
+
74
86
  expect(isPositiveInt16(32_767)).toBe(true);
75
87
  });
76
88
 
@@ -80,19 +92,25 @@ describe('PositiveInt16 test', () => {
80
92
 
81
93
  test('correctly identifies values outside int16 range', () => {
82
94
  expect(isPositiveInt16(32_768)).toBe(false);
95
+
83
96
  expect(isPositiveInt16(65_536)).toBe(false);
84
97
  });
85
98
 
86
99
  test('correctly identifies negative integers', () => {
87
100
  expect(isPositiveInt16(-1)).toBe(false);
101
+
88
102
  expect(isPositiveInt16(-42)).toBe(false);
89
103
  });
90
104
 
91
105
  test('correctly identifies non-integers', () => {
92
106
  expect(isPositiveInt16(Number.NaN)).toBe(false);
107
+
93
108
  expect(isPositiveInt16(Number.POSITIVE_INFINITY)).toBe(false);
109
+
94
110
  expect(isPositiveInt16(Number.NEGATIVE_INFINITY)).toBe(false);
111
+
95
112
  expect(isPositiveInt16(1.2)).toBe(false);
113
+
96
114
  expect(isPositiveInt16(-3.4)).toBe(false);
97
115
  });
98
116
  });
@@ -100,7 +118,9 @@ describe('PositiveInt16 test', () => {
100
118
  describe('PositiveInt16.is', () => {
101
119
  test('same as isPositiveInt16 function', () => {
102
120
  expect(PositiveInt16.is(5)).toBe(isPositiveInt16(5));
121
+
103
122
  expect(PositiveInt16.is(0)).toBe(isPositiveInt16(0));
123
+
104
124
  expect(PositiveInt16.is(-1)).toBe(isPositiveInt16(-1));
105
125
  });
106
126
  });
@@ -108,16 +128,19 @@ describe('PositiveInt16 test', () => {
108
128
  describe('constants', () => {
109
129
  test('MIN_VALUE and MAX_VALUE', () => {
110
130
  expect(PositiveInt16.MIN_VALUE).toBe(1);
131
+
111
132
  expect(PositiveInt16.MAX_VALUE).toBe(32_767);
112
133
  });
113
134
  });
114
135
 
115
136
  describe('mathematical operations', () => {
116
137
  const a = asPositiveInt16(100);
138
+
117
139
  const b = asPositiveInt16(50);
118
140
 
119
141
  test('min and max', () => {
120
142
  expect(PositiveInt16.min(a, b)).toBe(50);
143
+
121
144
  expect(PositiveInt16.max(a, b)).toBe(100);
122
145
  });
123
146
 
@@ -128,11 +151,13 @@ describe('PositiveInt16 test', () => {
128
151
  );
129
152
 
130
153
  expect(result).toBe(32_767); // clamped to max
154
+
131
155
  expect(PositiveInt16.add(a, b)).toBe(150);
132
156
  });
133
157
 
134
158
  test('sub (never goes below 1)', () => {
135
159
  expect(PositiveInt16.sub(a, b)).toBe(50);
160
+
136
161
  expect(PositiveInt16.sub(b, a)).toBe(1); // clamped to 1
137
162
  });
138
163
 
@@ -143,6 +168,7 @@ describe('PositiveInt16 test', () => {
143
168
  );
144
169
 
145
170
  expect(result).toBe(32_767); // clamped to max
171
+
146
172
  expect(PositiveInt16.mul(asPositiveInt16(10), asPositiveInt16(5))).toBe(
147
173
  50,
148
174
  );
@@ -150,7 +176,9 @@ describe('PositiveInt16 test', () => {
150
176
 
151
177
  test('div (floor division, never goes below 1)', () => {
152
178
  expect(PositiveInt16.div(a, asPositiveInt16(50))).toBe(2);
179
+
153
180
  expect(PositiveInt16.div(asPositiveInt16(7), asPositiveInt16(3))).toBe(2);
181
+
154
182
  expect(PositiveInt16.div(asPositiveInt16(50), asPositiveInt16(100))).toBe(
155
183
  1,
156
184
  ); // floor(50/100) = 0, clamped to 1
@@ -163,6 +191,7 @@ describe('PositiveInt16 test', () => {
163
191
  );
164
192
 
165
193
  expect(result).toBe(32_767); // clamped to max
194
+
166
195
  expect(PositiveInt16.pow(asPositiveInt16(2), asPositiveInt16(3))).toBe(8);
167
196
  });
168
197
  });
@@ -170,15 +199,20 @@ describe('PositiveInt16 test', () => {
170
199
  describe('random', () => {
171
200
  test('generates positive int16 values within specified range', () => {
172
201
  const min = 1;
202
+
173
203
  const max = 20;
174
204
 
175
205
  for (const _ of range(10)) {
176
206
  const result = PositiveInt16.random(min, max);
177
207
 
178
208
  expect(result).toBeGreaterThanOrEqual(min);
209
+
179
210
  expect(result).toBeLessThanOrEqual(max);
211
+
180
212
  expect(PositiveInt16.is(result)).toBe(true);
213
+
181
214
  expect(Number.isInteger(result)).toBe(true);
215
+
182
216
  expect(result).toBeGreaterThan(0);
183
217
  }
184
218
  });
@@ -188,6 +222,7 @@ describe('PositiveInt16 test', () => {
188
222
  const result = PositiveInt16.random(1, 30);
189
223
 
190
224
  expect(result).toBeGreaterThanOrEqual(1);
225
+
191
226
  expect(result).toBeLessThanOrEqual(32_767);
192
227
  }
193
228
  });
@@ -10,7 +10,9 @@ describe('PositiveInt32 test', () => {
10
10
  describe(asPositiveInt32, () => {
11
11
  test('accepts valid positive int32 values', () => {
12
12
  expect(() => asPositiveInt32(1)).not.toThrow();
13
+
13
14
  expect(() => asPositiveInt32(1000)).not.toThrow();
15
+
14
16
  expect(() => asPositiveInt32(2_147_483_647)).not.toThrow(); // 2^31 - 1
15
17
  });
16
18
 
@@ -20,29 +22,37 @@ describe('PositiveInt32 test', () => {
20
22
 
21
23
  test('rejects values outside int32 range', () => {
22
24
  expect(() => asPositiveInt32(2_147_483_648)).toThrow(TypeError); // 2^31
25
+
23
26
  expect(() => asPositiveInt32(4_294_967_296)).toThrow(TypeError);
24
27
  });
25
28
 
26
29
  test('rejects negative integers', () => {
27
30
  expect(() => asPositiveInt32(-1)).toThrow(TypeError);
31
+
28
32
  expect(() => asPositiveInt32(-42)).toThrow(TypeError);
29
33
  });
30
34
 
31
35
  test('rejects non-integers', () => {
32
36
  expect(() => asPositiveInt32(Number.NaN)).toThrow(TypeError);
37
+
33
38
  expect(() => asPositiveInt32(Number.POSITIVE_INFINITY)).toThrow(
34
39
  TypeError,
35
40
  );
41
+
36
42
  expect(() => asPositiveInt32(Number.NEGATIVE_INFINITY)).toThrow(
37
43
  TypeError,
38
44
  );
45
+
39
46
  expect(() => asPositiveInt32(1.2)).toThrow(TypeError);
47
+
40
48
  expect(() => asPositiveInt32(-3.4)).toThrow(TypeError);
41
49
  });
42
50
 
43
51
  test('returns the same value for valid inputs', () => {
44
52
  expect(asPositiveInt32(5)).toBe(5);
53
+
45
54
  expect(asPositiveInt32(1)).toBe(1);
55
+
46
56
  expect(asPositiveInt32(2_147_483_647)).toBe(2_147_483_647);
47
57
  });
48
58
 
@@ -70,7 +80,9 @@ describe('PositiveInt32 test', () => {
70
80
  describe(isPositiveInt32, () => {
71
81
  test('correctly identifies positive int32 values', () => {
72
82
  expect(isPositiveInt32(1)).toBe(true);
83
+
73
84
  expect(isPositiveInt32(1000)).toBe(true);
85
+
74
86
  expect(isPositiveInt32(2_147_483_647)).toBe(true);
75
87
  });
76
88
 
@@ -80,19 +92,25 @@ describe('PositiveInt32 test', () => {
80
92
 
81
93
  test('correctly identifies values outside int32 range', () => {
82
94
  expect(isPositiveInt32(2_147_483_648)).toBe(false);
95
+
83
96
  expect(isPositiveInt32(4_294_967_296)).toBe(false);
84
97
  });
85
98
 
86
99
  test('correctly identifies negative integers', () => {
87
100
  expect(isPositiveInt32(-1)).toBe(false);
101
+
88
102
  expect(isPositiveInt32(-42)).toBe(false);
89
103
  });
90
104
 
91
105
  test('correctly identifies non-integers', () => {
92
106
  expect(isPositiveInt32(Number.NaN)).toBe(false);
107
+
93
108
  expect(isPositiveInt32(Number.POSITIVE_INFINITY)).toBe(false);
109
+
94
110
  expect(isPositiveInt32(Number.NEGATIVE_INFINITY)).toBe(false);
111
+
95
112
  expect(isPositiveInt32(1.2)).toBe(false);
113
+
96
114
  expect(isPositiveInt32(-3.4)).toBe(false);
97
115
  });
98
116
  });
@@ -100,7 +118,9 @@ describe('PositiveInt32 test', () => {
100
118
  describe('PositiveInt32.is', () => {
101
119
  test('same as isPositiveInt32 function', () => {
102
120
  expect(PositiveInt32.is(5)).toBe(isPositiveInt32(5));
121
+
103
122
  expect(PositiveInt32.is(0)).toBe(isPositiveInt32(0));
123
+
104
124
  expect(PositiveInt32.is(-1)).toBe(isPositiveInt32(-1));
105
125
  });
106
126
  });
@@ -108,16 +128,19 @@ describe('PositiveInt32 test', () => {
108
128
  describe('constants', () => {
109
129
  test('MIN_VALUE and MAX_VALUE', () => {
110
130
  expect(PositiveInt32.MIN_VALUE).toBe(1);
131
+
111
132
  expect(PositiveInt32.MAX_VALUE).toBe(2_147_483_647);
112
133
  });
113
134
  });
114
135
 
115
136
  describe('mathematical operations', () => {
116
137
  const a = asPositiveInt32(1_000_000);
138
+
117
139
  const b = asPositiveInt32(500_000);
118
140
 
119
141
  test('min and max', () => {
120
142
  expect(PositiveInt32.min(a, b)).toBe(500_000);
143
+
121
144
  expect(PositiveInt32.max(a, b)).toBe(1_000_000);
122
145
  });
123
146
 
@@ -128,11 +151,13 @@ describe('PositiveInt32 test', () => {
128
151
  );
129
152
 
130
153
  expect(result).toBe(2_147_483_647); // clamped to max
154
+
131
155
  expect(PositiveInt32.add(a, b)).toBe(1_500_000);
132
156
  });
133
157
 
134
158
  test('sub (never goes below 1)', () => {
135
159
  expect(PositiveInt32.sub(a, b)).toBe(500_000);
160
+
136
161
  expect(PositiveInt32.sub(b, a)).toBe(1); // clamped to 1
137
162
  });
138
163
 
@@ -143,6 +168,7 @@ describe('PositiveInt32 test', () => {
143
168
  );
144
169
 
145
170
  expect(result).toBe(2_147_483_647); // clamped to max
171
+
146
172
  expect(PositiveInt32.mul(asPositiveInt32(1000), asPositiveInt32(5))).toBe(
147
173
  5000,
148
174
  );
@@ -150,7 +176,9 @@ describe('PositiveInt32 test', () => {
150
176
 
151
177
  test('div (floor division, never goes below 1)', () => {
152
178
  expect(PositiveInt32.div(a, asPositiveInt32(500_000))).toBe(2);
179
+
153
180
  expect(PositiveInt32.div(asPositiveInt32(7), asPositiveInt32(3))).toBe(2);
181
+
154
182
  expect(
155
183
  PositiveInt32.div(asPositiveInt32(500_000), asPositiveInt32(1_000_000)),
156
184
  ).toBe(1); // floor(500000/1000000) = 0, clamped to 1
@@ -163,6 +191,7 @@ describe('PositiveInt32 test', () => {
163
191
  );
164
192
 
165
193
  expect(result).toBe(2_147_483_647); // clamped to max
194
+
166
195
  expect(PositiveInt32.pow(asPositiveInt32(2), asPositiveInt32(3))).toBe(8);
167
196
  });
168
197
  });
@@ -170,15 +199,20 @@ describe('PositiveInt32 test', () => {
170
199
  describe('random', () => {
171
200
  test('generates positive int32 values within specified range', () => {
172
201
  const min = 1;
202
+
173
203
  const max = 20;
174
204
 
175
205
  for (const _ of range(10)) {
176
206
  const result = PositiveInt32.random(min, max);
177
207
 
178
208
  expect(result).toBeGreaterThanOrEqual(min);
209
+
179
210
  expect(result).toBeLessThanOrEqual(max);
211
+
180
212
  expect(PositiveInt32.is(result)).toBe(true);
213
+
181
214
  expect(Number.isInteger(result)).toBe(true);
215
+
182
216
  expect(result).toBeGreaterThan(0);
183
217
  }
184
218
  });
@@ -188,6 +222,7 @@ describe('PositiveInt32 test', () => {
188
222
  const result = PositiveInt32.random(1, 30);
189
223
 
190
224
  expect(result).toBeGreaterThanOrEqual(1);
225
+
191
226
  expect(result).toBeLessThanOrEqual(2_147_483_647);
192
227
  }
193
228
  });
@@ -26,7 +26,7 @@ const {
26
26
  >({
27
27
  integerOrSafeInteger: 'SafeInteger',
28
28
  MIN_VALUE: 1,
29
- // eslint-disable-next-line total-functions/no-unsafe-type-assertion
29
+ // eslint-disable-next-line total-functions/no-unsafe-type-assertion, math/prefer-number-max-safe-integer
30
30
  MAX_VALUE: Number.MAX_SAFE_INTEGER as SafeUint,
31
31
  typeNameInMessage,
32
32
  } as const);
@@ -39,8 +39,11 @@ const {
39
39
  *
40
40
  * ```ts
41
41
  * assert.ok(isPositiveSafeInt(1));
42
+ *
42
43
  * assert.ok(isPositiveSafeInt(Number.MAX_SAFE_INTEGER));
44
+ *
43
45
  * assert.notOk(isPositiveSafeInt(0));
46
+ *
44
47
  * assert.ok(PositiveSafeInt.is(42));
45
48
  * ```
46
49
  *
@@ -58,6 +61,7 @@ export const isPositiveSafeInt = is;
58
61
  * const branded = asPositiveSafeInt(128);
59
62
  *
60
63
  * assert(branded === 128);
64
+ *
61
65
  * assert.ok(PositiveSafeInt.is(branded));
62
66
  * ```
63
67
  *
@@ -84,8 +88,11 @@ export const PositiveSafeInt = {
84
88
  *
85
89
  * ```ts
86
90
  * assert.ok(isPositiveSafeInt(1));
91
+ *
87
92
  * assert.ok(isPositiveSafeInt(Number.MAX_SAFE_INTEGER));
93
+ *
88
94
  * assert.notOk(isPositiveSafeInt(0));
95
+ *
89
96
  * assert.ok(PositiveSafeInt.is(42));
90
97
  * ```
91
98
  *
@@ -156,11 +163,15 @@ export const PositiveSafeInt = {
156
163
  *
157
164
  * ```ts
158
165
  * const belowRange = PositiveSafeInt.clamp(0);
166
+ *
159
167
  * const withinRange = PositiveSafeInt.clamp(123);
168
+ *
160
169
  * const aboveRange = PositiveSafeInt.clamp(Number.MAX_SAFE_INTEGER + 10);
161
170
  *
162
171
  * assert(belowRange === 1);
172
+ *
163
173
  * assert(withinRange === 123);
174
+ *
164
175
  * assert(aboveRange === Number.MAX_SAFE_INTEGER);
165
176
  * ```
166
177
  *
@@ -176,10 +187,13 @@ export const PositiveSafeInt = {
176
187
  *
177
188
  * ```ts
178
189
  * const min = asPositiveSafeInt(1);
190
+ *
179
191
  * const max = asPositiveSafeInt(6);
192
+ *
180
193
  * const randomValue = PositiveSafeInt.random(min, max);
181
194
  *
182
195
  * assert.ok(PositiveSafeInt.is(randomValue));
196
+ *
183
197
  * assert.ok(randomValue >= 1 && randomValue <= 6);
184
198
  * ```
185
199
  *
@@ -194,7 +208,9 @@ export const PositiveSafeInt = {
194
208
  *
195
209
  * ```ts
196
210
  * const base = asPositiveSafeInt(3);
211
+ *
197
212
  * const exponent = asPositiveSafeInt(3);
213
+ *
198
214
  * const power = PositiveSafeInt.pow(base, exponent);
199
215
  *
200
216
  * assert(power === 27);
@@ -218,6 +234,7 @@ export const PositiveSafeInt = {
218
234
  * );
219
235
  *
220
236
  * assert(sum === 3048);
237
+ *
221
238
  * assert.ok(PositiveSafeInt.is(sum));
222
239
  * ```
223
240
  *
@@ -239,6 +256,7 @@ export const PositiveSafeInt = {
239
256
  * );
240
257
  *
241
258
  * assert(difference === 1);
259
+ *
242
260
  * assert.ok(PositiveSafeInt.is(difference));
243
261
  * ```
244
262
  *
@@ -261,6 +279,7 @@ export const PositiveSafeInt = {
261
279
  * );
262
280
  *
263
281
  * assert(product === 1000);
282
+ *
264
283
  * assert.ok(PositiveSafeInt.is(product));
265
284
  * ```
266
285
  *
@@ -280,12 +299,14 @@ export const PositiveSafeInt = {
280
299
  * asPositiveSafeInt(25),
281
300
  * asPositiveSafeInt(4),
282
301
  * );
302
+ *
283
303
  * const clamped = PositiveSafeInt.div(
284
304
  * asPositiveSafeInt(5),
285
305
  * asPositiveSafeInt(50),
286
306
  * );
287
307
  *
288
308
  * assert(quotient === 6);
309
+ *
289
310
  * assert(clamped === 1);
290
311
  * ```
291
312
  *
@@ -10,20 +10,27 @@ describe('PositiveSafeInt test', () => {
10
10
  describe(asPositiveSafeInt, () => {
11
11
  test('accepts valid positive safe integers', () => {
12
12
  expect(() => asPositiveSafeInt(1)).not.toThrow();
13
+
13
14
  expect(() => asPositiveSafeInt(2)).not.toThrow();
15
+
14
16
  expect(() => asPositiveSafeInt(42)).not.toThrow();
17
+
15
18
  expect(() => asPositiveSafeInt(100)).not.toThrow();
19
+
16
20
  expect(() => asPositiveSafeInt(Number.MAX_SAFE_INTEGER)).not.toThrow();
17
21
  });
18
22
 
19
23
  test('rejects zero', () => {
20
24
  expect(() => asPositiveSafeInt(0)).toThrow(TypeError);
25
+
21
26
  expect(() => asPositiveSafeInt(-0)).toThrow(TypeError);
22
27
  });
23
28
 
24
29
  test('rejects negative integers', () => {
25
30
  expect(() => asPositiveSafeInt(-1)).toThrow(TypeError);
31
+
26
32
  expect(() => asPositiveSafeInt(-42)).toThrow(TypeError);
33
+
27
34
  expect(() => asPositiveSafeInt(Number.MIN_SAFE_INTEGER)).toThrow(
28
35
  TypeError,
29
36
  );
@@ -33,24 +40,31 @@ describe('PositiveSafeInt test', () => {
33
40
  expect(() => asPositiveSafeInt(Number.MAX_SAFE_INTEGER + 1)).toThrow(
34
41
  TypeError,
35
42
  );
43
+
36
44
  expect(() => asPositiveSafeInt(Number.MAX_VALUE)).toThrow(TypeError);
37
45
  });
38
46
 
39
47
  test('rejects non-integers', () => {
40
48
  expect(() => asPositiveSafeInt(Number.NaN)).toThrow(TypeError);
49
+
41
50
  expect(() => asPositiveSafeInt(Number.POSITIVE_INFINITY)).toThrow(
42
51
  TypeError,
43
52
  );
53
+
44
54
  expect(() => asPositiveSafeInt(Number.NEGATIVE_INFINITY)).toThrow(
45
55
  TypeError,
46
56
  );
57
+
47
58
  expect(() => asPositiveSafeInt(1.2)).toThrow(TypeError);
59
+
48
60
  expect(() => asPositiveSafeInt(-3.4)).toThrow(TypeError);
49
61
  });
50
62
 
51
63
  test('returns the same value for valid inputs', () => {
52
64
  expect(asPositiveSafeInt(5)).toBe(5);
65
+
53
66
  expect(asPositiveSafeInt(1)).toBe(1);
67
+
54
68
  expect(asPositiveSafeInt(10)).toBe(10);
55
69
  });
56
70
 
@@ -75,33 +89,45 @@ describe('PositiveSafeInt test', () => {
75
89
  describe(isPositiveSafeInt, () => {
76
90
  test('correctly identifies positive safe integers', () => {
77
91
  expect(isPositiveSafeInt(1)).toBe(true);
92
+
78
93
  expect(isPositiveSafeInt(2)).toBe(true);
94
+
79
95
  expect(isPositiveSafeInt(42)).toBe(true);
96
+
80
97
  expect(isPositiveSafeInt(100)).toBe(true);
98
+
81
99
  expect(isPositiveSafeInt(Number.MAX_SAFE_INTEGER)).toBe(true);
82
100
  });
83
101
 
84
102
  test('correctly identifies zero', () => {
85
103
  expect(isPositiveSafeInt(0)).toBe(false);
104
+
86
105
  expect(isPositiveSafeInt(-0)).toBe(false);
87
106
  });
88
107
 
89
108
  test('correctly identifies negative integers', () => {
90
109
  expect(isPositiveSafeInt(-1)).toBe(false);
110
+
91
111
  expect(isPositiveSafeInt(-42)).toBe(false);
112
+
92
113
  expect(isPositiveSafeInt(Number.MIN_SAFE_INTEGER)).toBe(false);
93
114
  });
94
115
 
95
116
  test('correctly identifies values outside safe integer range', () => {
96
117
  expect(isPositiveSafeInt(Number.MAX_SAFE_INTEGER + 1)).toBe(false);
118
+
97
119
  expect(isPositiveSafeInt(Number.MAX_VALUE)).toBe(false);
98
120
  });
99
121
 
100
122
  test('correctly identifies non-integers', () => {
101
123
  expect(isPositiveSafeInt(Number.NaN)).toBe(false);
124
+
102
125
  expect(isPositiveSafeInt(Number.POSITIVE_INFINITY)).toBe(false);
126
+
103
127
  expect(isPositiveSafeInt(Number.NEGATIVE_INFINITY)).toBe(false);
128
+
104
129
  expect(isPositiveSafeInt(1.2)).toBe(false);
130
+
105
131
  expect(isPositiveSafeInt(-3.4)).toBe(false);
106
132
  });
107
133
  });
@@ -109,7 +135,9 @@ describe('PositiveSafeInt test', () => {
109
135
  describe('PositiveSafeInt.is', () => {
110
136
  test('same as isPositiveSafeInt function', () => {
111
137
  expect(PositiveSafeInt.is(5)).toBe(isPositiveSafeInt(5));
138
+
112
139
  expect(PositiveSafeInt.is(0)).toBe(isPositiveSafeInt(0));
140
+
113
141
  expect(PositiveSafeInt.is(-10)).toBe(isPositiveSafeInt(-10));
114
142
  });
115
143
  });
@@ -117,33 +145,43 @@ describe('PositiveSafeInt test', () => {
117
145
  describe('constants', () => {
118
146
  test('MIN_VALUE and MAX_VALUE', () => {
119
147
  expect(PositiveSafeInt.MIN_VALUE).toBe(1);
148
+
120
149
  expect(PositiveSafeInt.MAX_VALUE).toBe(Number.MAX_SAFE_INTEGER);
121
150
  });
122
151
  });
123
152
 
124
153
  describe('mathematical operations', () => {
125
154
  const a = asPositiveSafeInt(5);
155
+
126
156
  const b = asPositiveSafeInt(2);
157
+
127
158
  const c = asPositiveSafeInt(1);
128
159
 
129
160
  test('min and max', () => {
130
161
  expect(PositiveSafeInt.min(a, b)).toBe(2);
162
+
131
163
  expect(PositiveSafeInt.max(a, b)).toBe(5);
164
+
132
165
  expect(PositiveSafeInt.min(a, c)).toBe(1);
166
+
133
167
  expect(PositiveSafeInt.max(a, c)).toBe(5);
134
168
  });
135
169
 
136
170
  test('add (clamped to positive safe int range)', () => {
137
171
  const largeValue = asPositiveSafeInt(Number.MAX_SAFE_INTEGER - 1);
172
+
138
173
  const result = PositiveSafeInt.add(largeValue, asPositiveSafeInt(10));
139
174
 
140
175
  expect(result).toBe(Number.MAX_SAFE_INTEGER); // clamped to max
176
+
141
177
  expect(PositiveSafeInt.add(a, b)).toBe(7);
142
178
  });
143
179
 
144
180
  test('sub (never goes below 1)', () => {
145
181
  expect(PositiveSafeInt.sub(a, b)).toBe(3);
182
+
146
183
  expect(PositiveSafeInt.sub(b, a)).toBe(1); // clamped to 1
184
+
147
185
  expect(PositiveSafeInt.sub(c, a)).toBe(1); // clamped to 1
148
186
  });
149
187
 
@@ -151,9 +189,11 @@ describe('PositiveSafeInt test', () => {
151
189
  const largeValue = asPositiveSafeInt(
152
190
  Math.floor(Math.sqrt(Number.MAX_SAFE_INTEGER)),
153
191
  );
192
+
154
193
  const result = PositiveSafeInt.mul(largeValue, largeValue);
155
194
 
156
195
  expect(result).toBeLessThanOrEqual(Number.MAX_SAFE_INTEGER);
196
+
157
197
  expect(
158
198
  PositiveSafeInt.mul(asPositiveSafeInt(10), asPositiveSafeInt(5)),
159
199
  ).toBe(50);
@@ -161,9 +201,11 @@ describe('PositiveSafeInt test', () => {
161
201
 
162
202
  test('div (floor division, never goes below 1)', () => {
163
203
  expect(PositiveSafeInt.div(a, b)).toBe(2);
204
+
164
205
  expect(
165
206
  PositiveSafeInt.div(asPositiveSafeInt(7), asPositiveSafeInt(3)),
166
207
  ).toBe(2);
208
+
167
209
  expect(PositiveSafeInt.div(b, a)).toBe(1); // floor(2/5) = 0, but clamped to 1
168
210
  });
169
211
 
@@ -174,6 +216,7 @@ describe('PositiveSafeInt test', () => {
174
216
  );
175
217
 
176
218
  expect(result).toBe(Number.MAX_SAFE_INTEGER); // clamped to max
219
+
177
220
  expect(
178
221
  PositiveSafeInt.pow(asPositiveSafeInt(2), asPositiveSafeInt(3)),
179
222
  ).toBe(8);
@@ -183,15 +226,20 @@ describe('PositiveSafeInt test', () => {
183
226
  describe('random', () => {
184
227
  test('generates positive safe integers within specified range', () => {
185
228
  const min = 1;
229
+
186
230
  const max = 20;
187
231
 
188
232
  for (const _ of range(10)) {
189
233
  const result = PositiveSafeInt.random(min, max);
190
234
 
191
235
  expect(result).toBeGreaterThanOrEqual(min);
236
+
192
237
  expect(result).toBeLessThanOrEqual(max);
238
+
193
239
  expect(PositiveSafeInt.is(result)).toBe(true);
240
+
194
241
  expect(Number.isInteger(result)).toBe(true);
242
+
195
243
  expect(result).toBeGreaterThan(0);
196
244
  }
197
245
  });
@@ -201,6 +249,7 @@ describe('PositiveSafeInt test', () => {
201
249
  const result = PositiveSafeInt.random(1, 30);
202
250
 
203
251
  expect(result).toBeGreaterThanOrEqual(1);
252
+
204
253
  expect(result).toBeLessThanOrEqual(Number.MAX_SAFE_INTEGER);
205
254
  }
206
255
  });