ts-data-forge 5.0.0 → 5.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (532) hide show
  1. package/README.md +55 -6
  2. package/dist/array/impl/array-utils-creation.d.mts +14 -0
  3. package/dist/array/impl/array-utils-creation.d.mts.map +1 -1
  4. package/dist/array/impl/array-utils-creation.mjs +12 -0
  5. package/dist/array/impl/array-utils-creation.mjs.map +1 -1
  6. package/dist/array/impl/array-utils-element-access.d.mts +10 -0
  7. package/dist/array/impl/array-utils-element-access.d.mts.map +1 -1
  8. package/dist/array/impl/array-utils-element-access.mjs +7 -0
  9. package/dist/array/impl/array-utils-element-access.mjs.map +1 -1
  10. package/dist/array/impl/array-utils-modification.d.mts +14 -0
  11. package/dist/array/impl/array-utils-modification.d.mts.map +1 -1
  12. package/dist/array/impl/array-utils-modification.mjs +1 -0
  13. package/dist/array/impl/array-utils-modification.mjs.map +1 -1
  14. package/dist/array/impl/array-utils-reducing-value.d.mts +26 -2
  15. package/dist/array/impl/array-utils-reducing-value.d.mts.map +1 -1
  16. package/dist/array/impl/array-utils-reducing-value.mjs +2 -1
  17. package/dist/array/impl/array-utils-reducing-value.mjs.map +1 -1
  18. package/dist/array/impl/array-utils-search.d.mts +30 -0
  19. package/dist/array/impl/array-utils-search.d.mts.map +1 -1
  20. package/dist/array/impl/array-utils-search.mjs +1 -0
  21. package/dist/array/impl/array-utils-search.mjs.map +1 -1
  22. package/dist/array/impl/array-utils-set-op.d.mts +13 -0
  23. package/dist/array/impl/array-utils-set-op.d.mts.map +1 -1
  24. package/dist/array/impl/array-utils-set-op.mjs +13 -0
  25. package/dist/array/impl/array-utils-set-op.mjs.map +1 -1
  26. package/dist/array/impl/array-utils-size.d.mts +3 -0
  27. package/dist/array/impl/array-utils-size.d.mts.map +1 -1
  28. package/dist/array/impl/array-utils-size.mjs +3 -0
  29. package/dist/array/impl/array-utils-size.mjs.map +1 -1
  30. package/dist/array/impl/array-utils-slice-clamped.d.mts +2 -0
  31. package/dist/array/impl/array-utils-slice-clamped.d.mts.map +1 -1
  32. package/dist/array/impl/array-utils-slice-clamped.mjs.map +1 -1
  33. package/dist/array/impl/array-utils-slicing.d.mts +15 -0
  34. package/dist/array/impl/array-utils-slicing.d.mts.map +1 -1
  35. package/dist/array/impl/array-utils-slicing.mjs +7 -0
  36. package/dist/array/impl/array-utils-slicing.mjs.map +1 -1
  37. package/dist/array/impl/array-utils-transformation.d.mts +27 -0
  38. package/dist/array/impl/array-utils-transformation.d.mts.map +1 -1
  39. package/dist/array/impl/array-utils-transformation.mjs +7 -0
  40. package/dist/array/impl/array-utils-transformation.mjs.map +1 -1
  41. package/dist/array/impl/array-utils-validation.d.mts +17 -0
  42. package/dist/array/impl/array-utils-validation.d.mts.map +1 -1
  43. package/dist/array/impl/array-utils-validation.mjs +11 -0
  44. package/dist/array/impl/array-utils-validation.mjs.map +1 -1
  45. package/dist/collections/imap-mapped.mjs +1 -0
  46. package/dist/collections/imap-mapped.mjs.map +1 -1
  47. package/dist/collections/imap.d.mts +20 -0
  48. package/dist/collections/imap.d.mts.map +1 -1
  49. package/dist/collections/imap.mjs +3 -0
  50. package/dist/collections/imap.mjs.map +1 -1
  51. package/dist/collections/iset-mapped.d.mts +27 -0
  52. package/dist/collections/iset-mapped.d.mts.map +1 -1
  53. package/dist/collections/iset-mapped.mjs +7 -0
  54. package/dist/collections/iset-mapped.mjs.map +1 -1
  55. package/dist/collections/iset.d.mts +29 -0
  56. package/dist/collections/iset.d.mts.map +1 -1
  57. package/dist/collections/iset.mjs +7 -0
  58. package/dist/collections/iset.mjs.map +1 -1
  59. package/dist/collections/queue.d.mts +40 -0
  60. package/dist/collections/queue.d.mts.map +1 -1
  61. package/dist/collections/queue.mjs +9 -0
  62. package/dist/collections/queue.mjs.map +1 -1
  63. package/dist/collections/stack.d.mts +35 -0
  64. package/dist/collections/stack.d.mts.map +1 -1
  65. package/dist/collections/stack.mjs +8 -0
  66. package/dist/collections/stack.mjs.map +1 -1
  67. package/dist/entry-point.mjs +1 -1
  68. package/dist/functional/match.d.mts.map +1 -1
  69. package/dist/functional/match.mjs.map +1 -1
  70. package/dist/functional/optional/impl/optional-expect-to-be.d.mts +1 -0
  71. package/dist/functional/optional/impl/optional-expect-to-be.d.mts.map +1 -1
  72. package/dist/functional/optional/impl/optional-expect-to-be.mjs.map +1 -1
  73. package/dist/functional/optional/impl/optional-filter.d.mts +3 -0
  74. package/dist/functional/optional/impl/optional-filter.d.mts.map +1 -1
  75. package/dist/functional/optional/impl/optional-filter.mjs.map +1 -1
  76. package/dist/functional/optional/impl/optional-flat-map.d.mts +2 -0
  77. package/dist/functional/optional/impl/optional-flat-map.d.mts.map +1 -1
  78. package/dist/functional/optional/impl/optional-flat-map.mjs.map +1 -1
  79. package/dist/functional/optional/impl/optional-from-nullable.d.mts +2 -0
  80. package/dist/functional/optional/impl/optional-from-nullable.d.mts.map +1 -1
  81. package/dist/functional/optional/impl/optional-from-nullable.mjs +2 -0
  82. package/dist/functional/optional/impl/optional-from-nullable.mjs.map +1 -1
  83. package/dist/functional/optional/impl/optional-is-optional.d.mts +2 -0
  84. package/dist/functional/optional/impl/optional-is-optional.d.mts.map +1 -1
  85. package/dist/functional/optional/impl/optional-is-optional.mjs +2 -0
  86. package/dist/functional/optional/impl/optional-is-optional.mjs.map +1 -1
  87. package/dist/functional/optional/impl/optional-is-some.d.mts +1 -0
  88. package/dist/functional/optional/impl/optional-is-some.d.mts.map +1 -1
  89. package/dist/functional/optional/impl/optional-is-some.mjs +1 -0
  90. package/dist/functional/optional/impl/optional-is-some.mjs.map +1 -1
  91. package/dist/functional/optional/impl/optional-map.d.mts +2 -0
  92. package/dist/functional/optional/impl/optional-map.d.mts.map +1 -1
  93. package/dist/functional/optional/impl/optional-map.mjs.map +1 -1
  94. package/dist/functional/optional/impl/optional-none.d.mts +2 -0
  95. package/dist/functional/optional/impl/optional-none.d.mts.map +1 -1
  96. package/dist/functional/optional/impl/optional-none.mjs +2 -0
  97. package/dist/functional/optional/impl/optional-none.mjs.map +1 -1
  98. package/dist/functional/optional/impl/optional-or-else.d.mts +4 -0
  99. package/dist/functional/optional/impl/optional-or-else.d.mts.map +1 -1
  100. package/dist/functional/optional/impl/optional-or-else.mjs.map +1 -1
  101. package/dist/functional/optional/impl/optional-some.d.mts +3 -1
  102. package/dist/functional/optional/impl/optional-some.d.mts.map +1 -1
  103. package/dist/functional/optional/impl/optional-some.mjs +2 -0
  104. package/dist/functional/optional/impl/optional-some.mjs.map +1 -1
  105. package/dist/functional/optional/impl/optional-to-nullable.d.mts +2 -0
  106. package/dist/functional/optional/impl/optional-to-nullable.d.mts.map +1 -1
  107. package/dist/functional/optional/impl/optional-to-nullable.mjs +2 -0
  108. package/dist/functional/optional/impl/optional-to-nullable.mjs.map +1 -1
  109. package/dist/functional/optional/impl/optional-unwrap-or.d.mts +3 -0
  110. package/dist/functional/optional/impl/optional-unwrap-or.d.mts.map +1 -1
  111. package/dist/functional/optional/impl/optional-unwrap-or.mjs.map +1 -1
  112. package/dist/functional/optional/impl/optional-unwrap-throw.d.mts +1 -0
  113. package/dist/functional/optional/impl/optional-unwrap-throw.d.mts.map +1 -1
  114. package/dist/functional/optional/impl/optional-unwrap-throw.mjs +1 -0
  115. package/dist/functional/optional/impl/optional-unwrap-throw.mjs.map +1 -1
  116. package/dist/functional/optional/impl/optional-unwrap.d.mts +2 -0
  117. package/dist/functional/optional/impl/optional-unwrap.d.mts.map +1 -1
  118. package/dist/functional/optional/impl/optional-unwrap.mjs.map +1 -1
  119. package/dist/functional/optional/impl/optional-zip.d.mts +2 -0
  120. package/dist/functional/optional/impl/optional-zip.d.mts.map +1 -1
  121. package/dist/functional/optional/impl/optional-zip.mjs +2 -0
  122. package/dist/functional/optional/impl/optional-zip.mjs.map +1 -1
  123. package/dist/functional/result/impl/result-err.d.mts +3 -1
  124. package/dist/functional/result/impl/result-err.d.mts.map +1 -1
  125. package/dist/functional/result/impl/result-err.mjs +2 -0
  126. package/dist/functional/result/impl/result-err.mjs.map +1 -1
  127. package/dist/functional/result/impl/result-expect-to-be.d.mts +1 -0
  128. package/dist/functional/result/impl/result-expect-to-be.d.mts.map +1 -1
  129. package/dist/functional/result/impl/result-expect-to-be.mjs.map +1 -1
  130. package/dist/functional/result/impl/result-flat-map.d.mts +5 -0
  131. package/dist/functional/result/impl/result-flat-map.d.mts.map +1 -1
  132. package/dist/functional/result/impl/result-flat-map.mjs.map +1 -1
  133. package/dist/functional/result/impl/result-fold.d.mts +4 -0
  134. package/dist/functional/result/impl/result-fold.d.mts.map +1 -1
  135. package/dist/functional/result/impl/result-fold.mjs.map +1 -1
  136. package/dist/functional/result/impl/result-from-promise.d.mts +3 -0
  137. package/dist/functional/result/impl/result-from-promise.d.mts.map +1 -1
  138. package/dist/functional/result/impl/result-from-promise.mjs +3 -0
  139. package/dist/functional/result/impl/result-from-promise.mjs.map +1 -1
  140. package/dist/functional/result/impl/result-from-throwable.d.mts +2 -0
  141. package/dist/functional/result/impl/result-from-throwable.d.mts.map +1 -1
  142. package/dist/functional/result/impl/result-from-throwable.mjs +4 -1
  143. package/dist/functional/result/impl/result-from-throwable.mjs.map +1 -1
  144. package/dist/functional/result/impl/result-is-err.d.mts +2 -0
  145. package/dist/functional/result/impl/result-is-err.d.mts.map +1 -1
  146. package/dist/functional/result/impl/result-is-err.mjs +2 -0
  147. package/dist/functional/result/impl/result-is-err.mjs.map +1 -1
  148. package/dist/functional/result/impl/result-is-ok.d.mts +2 -0
  149. package/dist/functional/result/impl/result-is-ok.d.mts.map +1 -1
  150. package/dist/functional/result/impl/result-is-ok.mjs +2 -0
  151. package/dist/functional/result/impl/result-is-ok.mjs.map +1 -1
  152. package/dist/functional/result/impl/result-is-result.d.mts +4 -0
  153. package/dist/functional/result/impl/result-is-result.d.mts.map +1 -1
  154. package/dist/functional/result/impl/result-is-result.mjs +4 -0
  155. package/dist/functional/result/impl/result-is-result.mjs.map +1 -1
  156. package/dist/functional/result/impl/result-map-err.d.mts +3 -0
  157. package/dist/functional/result/impl/result-map-err.d.mts.map +1 -1
  158. package/dist/functional/result/impl/result-map-err.mjs.map +1 -1
  159. package/dist/functional/result/impl/result-map.d.mts +4 -0
  160. package/dist/functional/result/impl/result-map.d.mts.map +1 -1
  161. package/dist/functional/result/impl/result-map.mjs.map +1 -1
  162. package/dist/functional/result/impl/result-ok.d.mts +3 -1
  163. package/dist/functional/result/impl/result-ok.d.mts.map +1 -1
  164. package/dist/functional/result/impl/result-ok.mjs +2 -0
  165. package/dist/functional/result/impl/result-ok.mjs.map +1 -1
  166. package/dist/functional/result/impl/result-or-else.d.mts +4 -0
  167. package/dist/functional/result/impl/result-or-else.d.mts.map +1 -1
  168. package/dist/functional/result/impl/result-or-else.mjs.map +1 -1
  169. package/dist/functional/result/impl/result-swap.d.mts +2 -0
  170. package/dist/functional/result/impl/result-swap.d.mts.map +1 -1
  171. package/dist/functional/result/impl/result-swap.mjs +2 -0
  172. package/dist/functional/result/impl/result-swap.mjs.map +1 -1
  173. package/dist/functional/result/impl/result-to-optional.d.mts +2 -0
  174. package/dist/functional/result/impl/result-to-optional.d.mts.map +1 -1
  175. package/dist/functional/result/impl/result-to-optional.mjs +2 -0
  176. package/dist/functional/result/impl/result-to-optional.mjs.map +1 -1
  177. package/dist/functional/result/impl/result-unwrap-err-or.d.mts +3 -0
  178. package/dist/functional/result/impl/result-unwrap-err-or.d.mts.map +1 -1
  179. package/dist/functional/result/impl/result-unwrap-err-or.mjs.map +1 -1
  180. package/dist/functional/result/impl/result-unwrap-err-throw.d.mts +2 -0
  181. package/dist/functional/result/impl/result-unwrap-err-throw.d.mts.map +1 -1
  182. package/dist/functional/result/impl/result-unwrap-err-throw.mjs +2 -0
  183. package/dist/functional/result/impl/result-unwrap-err-throw.mjs.map +1 -1
  184. package/dist/functional/result/impl/result-unwrap-err.d.mts +1 -0
  185. package/dist/functional/result/impl/result-unwrap-err.d.mts.map +1 -1
  186. package/dist/functional/result/impl/result-unwrap-err.mjs +1 -0
  187. package/dist/functional/result/impl/result-unwrap-err.mjs.map +1 -1
  188. package/dist/functional/result/impl/result-unwrap-ok-or.d.mts +3 -0
  189. package/dist/functional/result/impl/result-unwrap-ok-or.d.mts.map +1 -1
  190. package/dist/functional/result/impl/result-unwrap-ok-or.mjs.map +1 -1
  191. package/dist/functional/result/impl/result-unwrap-ok.d.mts +1 -0
  192. package/dist/functional/result/impl/result-unwrap-ok.d.mts.map +1 -1
  193. package/dist/functional/result/impl/result-unwrap-ok.mjs.map +1 -1
  194. package/dist/functional/result/impl/result-unwrap-throw.d.mts +2 -0
  195. package/dist/functional/result/impl/result-unwrap-throw.d.mts.map +1 -1
  196. package/dist/functional/result/impl/result-unwrap-throw.mjs +2 -0
  197. package/dist/functional/result/impl/result-unwrap-throw.mjs.map +1 -1
  198. package/dist/functional/result/impl/result-zip.d.mts +3 -1
  199. package/dist/functional/result/impl/result-zip.d.mts.map +1 -1
  200. package/dist/functional/result/impl/result-zip.mjs +3 -1
  201. package/dist/functional/result/impl/result-zip.mjs.map +1 -1
  202. package/dist/functional/ternary-result/impl/ternary-result-err.d.mts +2 -1
  203. package/dist/functional/ternary-result/impl/ternary-result-err.d.mts.map +1 -1
  204. package/dist/functional/ternary-result/impl/ternary-result-err.mjs +1 -0
  205. package/dist/functional/ternary-result/impl/ternary-result-err.mjs.map +1 -1
  206. package/dist/functional/ternary-result/impl/ternary-result-expect-to-be.d.mts +1 -0
  207. package/dist/functional/ternary-result/impl/ternary-result-expect-to-be.d.mts.map +1 -1
  208. package/dist/functional/ternary-result/impl/ternary-result-expect-to-be.mjs.map +1 -1
  209. package/dist/functional/ternary-result/impl/ternary-result-flat-map.d.mts +4 -0
  210. package/dist/functional/ternary-result/impl/ternary-result-flat-map.d.mts.map +1 -1
  211. package/dist/functional/ternary-result/impl/ternary-result-flat-map.mjs.map +1 -1
  212. package/dist/functional/ternary-result/impl/ternary-result-fold.d.mts +2 -0
  213. package/dist/functional/ternary-result/impl/ternary-result-fold.d.mts.map +1 -1
  214. package/dist/functional/ternary-result/impl/ternary-result-fold.mjs.map +1 -1
  215. package/dist/functional/ternary-result/impl/ternary-result-from-promise.d.mts +2 -0
  216. package/dist/functional/ternary-result/impl/ternary-result-from-promise.d.mts.map +1 -1
  217. package/dist/functional/ternary-result/impl/ternary-result-from-promise.mjs +2 -0
  218. package/dist/functional/ternary-result/impl/ternary-result-from-promise.mjs.map +1 -1
  219. package/dist/functional/ternary-result/impl/ternary-result-from-throwable.d.mts +2 -0
  220. package/dist/functional/ternary-result/impl/ternary-result-from-throwable.d.mts.map +1 -1
  221. package/dist/functional/ternary-result/impl/ternary-result-from-throwable.mjs +4 -1
  222. package/dist/functional/ternary-result/impl/ternary-result-from-throwable.mjs.map +1 -1
  223. package/dist/functional/ternary-result/impl/ternary-result-is-ok.d.mts +1 -0
  224. package/dist/functional/ternary-result/impl/ternary-result-is-ok.d.mts.map +1 -1
  225. package/dist/functional/ternary-result/impl/ternary-result-is-ok.mjs +1 -0
  226. package/dist/functional/ternary-result/impl/ternary-result-is-ok.mjs.map +1 -1
  227. package/dist/functional/ternary-result/impl/ternary-result-is-ternary-result.d.mts +4 -0
  228. package/dist/functional/ternary-result/impl/ternary-result-is-ternary-result.d.mts.map +1 -1
  229. package/dist/functional/ternary-result/impl/ternary-result-is-ternary-result.mjs +4 -0
  230. package/dist/functional/ternary-result/impl/ternary-result-is-ternary-result.mjs.map +1 -1
  231. package/dist/functional/ternary-result/impl/ternary-result-is-warn.d.mts +1 -0
  232. package/dist/functional/ternary-result/impl/ternary-result-is-warn.d.mts.map +1 -1
  233. package/dist/functional/ternary-result/impl/ternary-result-is-warn.mjs +1 -0
  234. package/dist/functional/ternary-result/impl/ternary-result-is-warn.mjs.map +1 -1
  235. package/dist/functional/ternary-result/impl/ternary-result-map-err.d.mts +3 -0
  236. package/dist/functional/ternary-result/impl/ternary-result-map-err.d.mts.map +1 -1
  237. package/dist/functional/ternary-result/impl/ternary-result-map-err.mjs.map +1 -1
  238. package/dist/functional/ternary-result/impl/ternary-result-map-warn.d.mts +3 -0
  239. package/dist/functional/ternary-result/impl/ternary-result-map-warn.d.mts.map +1 -1
  240. package/dist/functional/ternary-result/impl/ternary-result-map-warn.mjs.map +1 -1
  241. package/dist/functional/ternary-result/impl/ternary-result-map.d.mts +6 -0
  242. package/dist/functional/ternary-result/impl/ternary-result-map.d.mts.map +1 -1
  243. package/dist/functional/ternary-result/impl/ternary-result-map.mjs.map +1 -1
  244. package/dist/functional/ternary-result/impl/ternary-result-ok.d.mts +1 -1
  245. package/dist/functional/ternary-result/impl/ternary-result-ok.d.mts.map +1 -1
  246. package/dist/functional/ternary-result/impl/ternary-result-ok.mjs.map +1 -1
  247. package/dist/functional/ternary-result/impl/ternary-result-or-else.d.mts +2 -0
  248. package/dist/functional/ternary-result/impl/ternary-result-or-else.d.mts.map +1 -1
  249. package/dist/functional/ternary-result/impl/ternary-result-or-else.mjs.map +1 -1
  250. package/dist/functional/ternary-result/impl/ternary-result-to-optional.d.mts +2 -0
  251. package/dist/functional/ternary-result/impl/ternary-result-to-optional.d.mts.map +1 -1
  252. package/dist/functional/ternary-result/impl/ternary-result-to-optional.mjs +2 -0
  253. package/dist/functional/ternary-result/impl/ternary-result-to-optional.mjs.map +1 -1
  254. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-or.d.mts +2 -0
  255. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-or.d.mts.map +1 -1
  256. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-or.mjs.map +1 -1
  257. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-throw.d.mts +1 -0
  258. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-throw.d.mts.map +1 -1
  259. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-throw.mjs +1 -0
  260. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-throw.mjs.map +1 -1
  261. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err.d.mts +2 -0
  262. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err.d.mts.map +1 -1
  263. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err.mjs +2 -0
  264. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err.mjs.map +1 -1
  265. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok-or.d.mts +2 -0
  266. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok-or.d.mts.map +1 -1
  267. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok-or.mjs.map +1 -1
  268. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok.d.mts +2 -0
  269. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok.d.mts.map +1 -1
  270. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok.mjs.map +1 -1
  271. package/dist/functional/ternary-result/impl/ternary-result-unwrap-throw.d.mts +1 -0
  272. package/dist/functional/ternary-result/impl/ternary-result-unwrap-throw.d.mts.map +1 -1
  273. package/dist/functional/ternary-result/impl/ternary-result-unwrap-throw.mjs +1 -0
  274. package/dist/functional/ternary-result/impl/ternary-result-unwrap-throw.mjs.map +1 -1
  275. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-or.d.mts +2 -0
  276. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-or.d.mts.map +1 -1
  277. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-or.mjs.map +1 -1
  278. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-throw.d.mts +1 -0
  279. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-throw.d.mts.map +1 -1
  280. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-throw.mjs +1 -0
  281. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-throw.mjs.map +1 -1
  282. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn.d.mts +2 -0
  283. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn.d.mts.map +1 -1
  284. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn.mjs +2 -0
  285. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn.mjs.map +1 -1
  286. package/dist/functional/ternary-result/impl/ternary-result-warn.d.mts +1 -1
  287. package/dist/functional/ternary-result/impl/ternary-result-warn.d.mts.map +1 -1
  288. package/dist/functional/ternary-result/impl/ternary-result-warn.mjs.map +1 -1
  289. package/dist/functional/ternary-result/impl/ternary-result-zip.d.mts +4 -0
  290. package/dist/functional/ternary-result/impl/ternary-result-zip.d.mts.map +1 -1
  291. package/dist/functional/ternary-result/impl/ternary-result-zip.mjs +4 -0
  292. package/dist/functional/ternary-result/impl/ternary-result-zip.mjs.map +1 -1
  293. package/dist/globals.d.mts +10 -0
  294. package/dist/guard/index.mjs +1 -1
  295. package/dist/guard/is-record.d.mts +31 -0
  296. package/dist/guard/is-record.d.mts.map +1 -1
  297. package/dist/guard/is-record.mjs +32 -1
  298. package/dist/guard/is-record.mjs.map +1 -1
  299. package/dist/guard/is-type.d.mts +3 -0
  300. package/dist/guard/is-type.d.mts.map +1 -1
  301. package/dist/guard/is-type.mjs +3 -0
  302. package/dist/guard/is-type.mjs.map +1 -1
  303. package/dist/guard/key-is-in.d.mts +1 -0
  304. package/dist/guard/key-is-in.d.mts.map +1 -1
  305. package/dist/guard/key-is-in.mjs +1 -0
  306. package/dist/guard/key-is-in.mjs.map +1 -1
  307. package/dist/index.mjs +1 -1
  308. package/dist/iterator/range.d.mts +4 -0
  309. package/dist/iterator/range.d.mts.map +1 -1
  310. package/dist/iterator/range.mjs +1 -0
  311. package/dist/iterator/range.mjs.map +1 -1
  312. package/dist/json/json.d.mts +21 -0
  313. package/dist/json/json.d.mts.map +1 -1
  314. package/dist/json/json.mjs +22 -0
  315. package/dist/json/json.mjs.map +1 -1
  316. package/dist/number/branded-types/int.d.mts +14 -0
  317. package/dist/number/branded-types/int.d.mts.map +1 -1
  318. package/dist/number/branded-types/int.mjs +14 -0
  319. package/dist/number/branded-types/int.mjs.map +1 -1
  320. package/dist/number/branded-types/non-zero-safe-int.mjs +2 -2
  321. package/dist/number/branded-types/positive-int.d.mts +14 -0
  322. package/dist/number/branded-types/positive-int.d.mts.map +1 -1
  323. package/dist/number/branded-types/positive-int.mjs +14 -0
  324. package/dist/number/branded-types/positive-int.mjs.map +1 -1
  325. package/dist/number/branded-types/positive-safe-int.d.mts +21 -0
  326. package/dist/number/branded-types/positive-safe-int.d.mts.map +1 -1
  327. package/dist/number/branded-types/positive-safe-int.mjs +22 -1
  328. package/dist/number/branded-types/positive-safe-int.mjs.map +1 -1
  329. package/dist/number/branded-types/safe-int.d.mts +21 -0
  330. package/dist/number/branded-types/safe-int.d.mts.map +1 -1
  331. package/dist/number/branded-types/safe-int.mjs +23 -2
  332. package/dist/number/branded-types/safe-int.mjs.map +1 -1
  333. package/dist/number/branded-types/safe-uint.mjs +1 -1
  334. package/dist/number/branded-types/uint.d.mts +12 -0
  335. package/dist/number/branded-types/uint.d.mts.map +1 -1
  336. package/dist/number/branded-types/uint.mjs +12 -0
  337. package/dist/number/branded-types/uint.mjs.map +1 -1
  338. package/dist/number/num.d.mts +9 -0
  339. package/dist/number/num.d.mts.map +1 -1
  340. package/dist/number/num.mjs +8 -1
  341. package/dist/number/num.mjs.map +1 -1
  342. package/dist/number/refined-number-utils.d.mts +22 -0
  343. package/dist/number/refined-number-utils.d.mts.map +1 -1
  344. package/dist/number/refined-number-utils.mjs +23 -0
  345. package/dist/number/refined-number-utils.mjs.map +1 -1
  346. package/dist/object/object.d.mts +9 -0
  347. package/dist/object/object.d.mts.map +1 -1
  348. package/dist/object/object.mjs +7 -0
  349. package/dist/object/object.mjs.map +1 -1
  350. package/dist/others/map-nullable.mjs.map +1 -1
  351. package/dist/others/tuple.d.mts +11 -0
  352. package/dist/others/tuple.d.mts.map +1 -1
  353. package/dist/others/tuple.mjs +11 -0
  354. package/dist/others/tuple.mjs.map +1 -1
  355. package/dist/others/unknown-to-string.d.mts.map +1 -1
  356. package/dist/others/unknown-to-string.mjs +2 -1
  357. package/dist/others/unknown-to-string.mjs.map +1 -1
  358. package/dist/promise/promise.d.mts +4 -0
  359. package/dist/promise/promise.d.mts.map +1 -1
  360. package/dist/promise/promise.mjs +5 -0
  361. package/dist/promise/promise.mjs.map +1 -1
  362. package/package.json +20 -24
  363. package/src/array/impl/array-utils-creation.mts +20 -0
  364. package/src/array/impl/array-utils-creation.test.mts +71 -0
  365. package/src/array/impl/array-utils-element-access.mts +13 -0
  366. package/src/array/impl/array-utils-element-access.test.mts +21 -0
  367. package/src/array/impl/array-utils-iterators.test.mts +17 -0
  368. package/src/array/impl/array-utils-modification.mts +40 -0
  369. package/src/array/impl/array-utils-modification.test.mts +75 -0
  370. package/src/array/impl/array-utils-overload-type-error.test.mts +19 -0
  371. package/src/array/impl/array-utils-reducing-value.mts +55 -9
  372. package/src/array/impl/array-utils-reducing-value.test.mts +90 -0
  373. package/src/array/impl/array-utils-search.mts +53 -0
  374. package/src/array/impl/array-utils-search.test.mts +51 -0
  375. package/src/array/impl/array-utils-set-op.mts +19 -0
  376. package/src/array/impl/array-utils-set-op.test.mts +116 -0
  377. package/src/array/impl/array-utils-size.mts +3 -0
  378. package/src/array/impl/array-utils-size.test.mts +1 -0
  379. package/src/array/impl/array-utils-slice-clamped.mts +7 -0
  380. package/src/array/impl/array-utils-slice-clamped.test.mts +20 -0
  381. package/src/array/impl/array-utils-slicing.mts +27 -0
  382. package/src/array/impl/array-utils-slicing.test.mts +57 -0
  383. package/src/array/impl/array-utils-transformation.mts +58 -0
  384. package/src/array/impl/array-utils-transformation.test.mts +113 -1
  385. package/src/array/impl/array-utils-validation.mts +23 -0
  386. package/src/array/impl/array-utils-validation.test.mts +96 -0
  387. package/src/array/impl/array.test.mts +12 -0
  388. package/src/collections/imap-mapped.mts +11 -0
  389. package/src/collections/imap-mapped.test.mts +70 -0
  390. package/src/collections/imap.mts +32 -0
  391. package/src/collections/imap.test.mts +106 -0
  392. package/src/collections/iset-mapped.mts +35 -0
  393. package/src/collections/iset-mapped.test.mts +111 -0
  394. package/src/collections/iset.mts +34 -0
  395. package/src/collections/iset.test.mts +193 -0
  396. package/src/collections/queue.mts +53 -0
  397. package/src/collections/queue.test.mts +32 -0
  398. package/src/collections/stack.mts +42 -0
  399. package/src/collections/stack.test.mts +44 -0
  400. package/src/functional/match.mts +16 -0
  401. package/src/functional/match.test.mts +2 -0
  402. package/src/functional/optional/impl/optional-expect-to-be.mts +3 -0
  403. package/src/functional/optional/impl/optional-filter.mts +6 -0
  404. package/src/functional/optional/impl/optional-flat-map.mts +4 -0
  405. package/src/functional/optional/impl/optional-from-nullable.mts +2 -0
  406. package/src/functional/optional/impl/optional-is-optional.mts +2 -0
  407. package/src/functional/optional/impl/optional-is-some.mts +1 -0
  408. package/src/functional/optional/impl/optional-map.mts +5 -0
  409. package/src/functional/optional/impl/optional-none.mts +2 -0
  410. package/src/functional/optional/impl/optional-or-else.mts +6 -0
  411. package/src/functional/optional/impl/optional-some.mts +3 -1
  412. package/src/functional/optional/impl/optional-to-nullable.mts +2 -0
  413. package/src/functional/optional/impl/optional-unwrap-or.mts +5 -0
  414. package/src/functional/optional/impl/optional-unwrap-throw.mts +1 -0
  415. package/src/functional/optional/impl/optional-unwrap.mts +2 -0
  416. package/src/functional/optional/impl/optional-zip.mts +2 -0
  417. package/src/functional/optional.test.mts +73 -0
  418. package/src/functional/pipe.test.mts +3 -0
  419. package/src/functional/result/impl/result-err.mts +3 -1
  420. package/src/functional/result/impl/result-expect-to-be.mts +3 -0
  421. package/src/functional/result/impl/result-flat-map.mts +7 -0
  422. package/src/functional/result/impl/result-fold.mts +6 -0
  423. package/src/functional/result/impl/result-from-promise.mts +3 -0
  424. package/src/functional/result/impl/result-from-throwable.mts +6 -1
  425. package/src/functional/result/impl/result-is-err.mts +2 -0
  426. package/src/functional/result/impl/result-is-ok.mts +2 -0
  427. package/src/functional/result/impl/result-is-result.mts +4 -0
  428. package/src/functional/result/impl/result-map-err.mts +5 -0
  429. package/src/functional/result/impl/result-map.mts +6 -0
  430. package/src/functional/result/impl/result-ok.mts +3 -1
  431. package/src/functional/result/impl/result-or-else.mts +6 -0
  432. package/src/functional/result/impl/result-swap.mts +2 -0
  433. package/src/functional/result/impl/result-to-optional.mts +2 -0
  434. package/src/functional/result/impl/result-unwrap-err-or.mts +5 -0
  435. package/src/functional/result/impl/result-unwrap-err-throw.mts +2 -0
  436. package/src/functional/result/impl/result-unwrap-err.mts +1 -0
  437. package/src/functional/result/impl/result-unwrap-ok-or.mts +5 -0
  438. package/src/functional/result/impl/result-unwrap-ok.mts +2 -0
  439. package/src/functional/result/impl/result-unwrap-throw.mts +2 -0
  440. package/src/functional/result/impl/result-zip.mts +3 -1
  441. package/src/functional/result.test.mts +88 -0
  442. package/src/functional/ternary-result/impl/ternary-result-err.mts +2 -1
  443. package/src/functional/ternary-result/impl/ternary-result-expect-to-be.mts +4 -0
  444. package/src/functional/ternary-result/impl/ternary-result-flat-map.mts +7 -0
  445. package/src/functional/ternary-result/impl/ternary-result-fold.mts +5 -0
  446. package/src/functional/ternary-result/impl/ternary-result-from-promise.mts +2 -0
  447. package/src/functional/ternary-result/impl/ternary-result-from-throwable.mts +5 -1
  448. package/src/functional/ternary-result/impl/ternary-result-is-ok.mts +1 -0
  449. package/src/functional/ternary-result/impl/ternary-result-is-ternary-result.mts +4 -0
  450. package/src/functional/ternary-result/impl/ternary-result-is-warn.mts +1 -0
  451. package/src/functional/ternary-result/impl/ternary-result-map-err.mts +6 -0
  452. package/src/functional/ternary-result/impl/ternary-result-map-warn.mts +6 -0
  453. package/src/functional/ternary-result/impl/ternary-result-map.mts +9 -0
  454. package/src/functional/ternary-result/impl/ternary-result-ok.mts +1 -1
  455. package/src/functional/ternary-result/impl/ternary-result-or-else.mts +5 -0
  456. package/src/functional/ternary-result/impl/ternary-result-to-optional.mts +2 -0
  457. package/src/functional/ternary-result/impl/ternary-result-unwrap-err-or.mts +5 -0
  458. package/src/functional/ternary-result/impl/ternary-result-unwrap-err-throw.mts +1 -0
  459. package/src/functional/ternary-result/impl/ternary-result-unwrap-err.mts +2 -0
  460. package/src/functional/ternary-result/impl/ternary-result-unwrap-ok-or.mts +5 -0
  461. package/src/functional/ternary-result/impl/ternary-result-unwrap-ok.mts +3 -0
  462. package/src/functional/ternary-result/impl/ternary-result-unwrap-throw.mts +1 -0
  463. package/src/functional/ternary-result/impl/ternary-result-unwrap-warn-or.mts +5 -0
  464. package/src/functional/ternary-result/impl/ternary-result-unwrap-warn-throw.mts +1 -0
  465. package/src/functional/ternary-result/impl/ternary-result-unwrap-warn.mts +2 -0
  466. package/src/functional/ternary-result/impl/ternary-result-warn.mts +4 -1
  467. package/src/functional/ternary-result/impl/ternary-result-zip.mts +4 -0
  468. package/src/functional/ternary-result.test.mts +91 -0
  469. package/src/globals.d.mts +10 -0
  470. package/src/guard/has-key.test.mts +9 -0
  471. package/src/guard/is-non-empty-string.test.mts +20 -0
  472. package/src/guard/is-non-null-object.test.mts +19 -0
  473. package/src/guard/is-primitive.test.mts +23 -0
  474. package/src/guard/is-record.mts +34 -0
  475. package/src/guard/is-record.test.mts +21 -0
  476. package/src/guard/is-type.mts +3 -0
  477. package/src/guard/is-type.test.mts +134 -0
  478. package/src/guard/key-is-in.mts +1 -0
  479. package/src/iterator/range.mts +9 -0
  480. package/src/json/json.mts +29 -0
  481. package/src/json/json.test.mts +87 -0
  482. package/src/number/branded-types/finite-number.test.mts +38 -0
  483. package/src/number/branded-types/int.mts +14 -0
  484. package/src/number/branded-types/int.test.mts +42 -0
  485. package/src/number/branded-types/int16.test.mts +47 -0
  486. package/src/number/branded-types/int32.test.mts +47 -0
  487. package/src/number/branded-types/non-negative-finite-number.test.mts +40 -0
  488. package/src/number/branded-types/non-negative-int16.test.mts +43 -0
  489. package/src/number/branded-types/non-negative-int32.test.mts +43 -0
  490. package/src/number/branded-types/non-zero-finite-number.test.mts +51 -0
  491. package/src/number/branded-types/non-zero-int.test.mts +53 -0
  492. package/src/number/branded-types/non-zero-int16.test.mts +44 -0
  493. package/src/number/branded-types/non-zero-int32.test.mts +44 -0
  494. package/src/number/branded-types/non-zero-safe-int.mts +2 -2
  495. package/src/number/branded-types/non-zero-safe-int.test.mts +62 -0
  496. package/src/number/branded-types/non-zero-uint16.test.mts +37 -0
  497. package/src/number/branded-types/non-zero-uint32.test.mts +37 -0
  498. package/src/number/branded-types/positive-finite-number.test.mts +45 -0
  499. package/src/number/branded-types/positive-int.mts +14 -0
  500. package/src/number/branded-types/positive-int.test.mts +47 -0
  501. package/src/number/branded-types/positive-int16.test.mts +35 -0
  502. package/src/number/branded-types/positive-int32.test.mts +35 -0
  503. package/src/number/branded-types/positive-safe-int.mts +22 -1
  504. package/src/number/branded-types/positive-safe-int.test.mts +49 -0
  505. package/src/number/branded-types/positive-uint16.test.mts +37 -0
  506. package/src/number/branded-types/positive-uint32.test.mts +37 -0
  507. package/src/number/branded-types/safe-int.mts +23 -2
  508. package/src/number/branded-types/safe-int.test.mts +52 -0
  509. package/src/number/branded-types/safe-uint.mts +1 -1
  510. package/src/number/branded-types/safe-uint.test.mts +48 -0
  511. package/src/number/branded-types/uint.mts +12 -0
  512. package/src/number/branded-types/uint.test.mts +43 -0
  513. package/src/number/branded-types/uint16.test.mts +41 -0
  514. package/src/number/branded-types/uint32.test.mts +41 -0
  515. package/src/number/enum/int8.test.mts +6 -0
  516. package/src/number/enum/uint8.test.mts +6 -0
  517. package/src/number/num.mts +12 -1
  518. package/src/number/num.test.mts +62 -0
  519. package/src/number/refined-number-utils.mts +25 -0
  520. package/src/object/object.mts +15 -0
  521. package/src/object/object.test.mts +10 -0
  522. package/src/others/cast-mutable.test.mts +7 -0
  523. package/src/others/cast-readonly.test.mts +17 -0
  524. package/src/others/if-then.test.mts +16 -0
  525. package/src/others/map-nullable.mts +3 -0
  526. package/src/others/map-nullable.test.mts +27 -0
  527. package/src/others/memoize-function.test.mts +41 -0
  528. package/src/others/tuple.mts +11 -0
  529. package/src/others/unknown-to-string.mts +4 -1
  530. package/src/others/unknown-to-string.test.mts +10 -0
  531. package/src/promise/promise.mts +4 -0
  532. package/src/promise/promise.test.mts +1 -0
@@ -10,8 +10,11 @@ describe('NonZeroInt32 test', () => {
10
10
  describe(asNonZeroInt32, () => {
11
11
  test('accepts valid non-zero int32 values', () => {
12
12
  expect(() => asNonZeroInt32(1)).not.toThrow();
13
+
13
14
  expect(() => asNonZeroInt32(-1)).not.toThrow();
15
+
14
16
  expect(() => asNonZeroInt32(2_147_483_647)).not.toThrow(); // 2^31 - 1
17
+
15
18
  expect(() => asNonZeroInt32(-2_147_483_648)).not.toThrow(); // -2^31
16
19
  });
17
20
 
@@ -21,23 +24,33 @@ describe('NonZeroInt32 test', () => {
21
24
 
22
25
  test('rejects values outside int32 range', () => {
23
26
  expect(() => asNonZeroInt32(2_147_483_648)).toThrow(TypeError); // 2^31
27
+
24
28
  expect(() => asNonZeroInt32(-2_147_483_649)).toThrow(TypeError); // -2^31 - 1
29
+
25
30
  expect(() => asNonZeroInt32(4_294_967_296)).toThrow(TypeError);
31
+
26
32
  expect(() => asNonZeroInt32(-4_294_967_296)).toThrow(TypeError);
27
33
  });
28
34
 
29
35
  test('rejects non-integers', () => {
30
36
  expect(() => asNonZeroInt32(Number.NaN)).toThrow(TypeError);
37
+
31
38
  expect(() => asNonZeroInt32(Number.POSITIVE_INFINITY)).toThrow(TypeError);
39
+
32
40
  expect(() => asNonZeroInt32(Number.NEGATIVE_INFINITY)).toThrow(TypeError);
41
+
33
42
  expect(() => asNonZeroInt32(1.2)).toThrow(TypeError);
43
+
34
44
  expect(() => asNonZeroInt32(-3.4)).toThrow(TypeError);
35
45
  });
36
46
 
37
47
  test('returns the same value for valid inputs', () => {
38
48
  expect(asNonZeroInt32(5)).toBe(5);
49
+
39
50
  expect(asNonZeroInt32(-10)).toBe(-10);
51
+
40
52
  expect(asNonZeroInt32(2_147_483_647)).toBe(2_147_483_647);
53
+
41
54
  expect(asNonZeroInt32(-2_147_483_648)).toBe(-2_147_483_648);
42
55
  });
43
56
 
@@ -65,8 +78,11 @@ describe('NonZeroInt32 test', () => {
65
78
  describe(isNonZeroInt32, () => {
66
79
  test('correctly identifies non-zero int32 values', () => {
67
80
  expect(isNonZeroInt32(1)).toBe(true);
81
+
68
82
  expect(isNonZeroInt32(-1)).toBe(true);
83
+
69
84
  expect(isNonZeroInt32(2_147_483_647)).toBe(true);
85
+
70
86
  expect(isNonZeroInt32(-2_147_483_648)).toBe(true);
71
87
  });
72
88
 
@@ -76,16 +92,23 @@ describe('NonZeroInt32 test', () => {
76
92
 
77
93
  test('correctly identifies values outside int32 range', () => {
78
94
  expect(isNonZeroInt32(2_147_483_648)).toBe(false);
95
+
79
96
  expect(isNonZeroInt32(-2_147_483_649)).toBe(false);
97
+
80
98
  expect(isNonZeroInt32(4_294_967_296)).toBe(false);
99
+
81
100
  expect(isNonZeroInt32(-4_294_967_296)).toBe(false);
82
101
  });
83
102
 
84
103
  test('correctly identifies non-integers', () => {
85
104
  expect(isNonZeroInt32(Number.NaN)).toBe(false);
105
+
86
106
  expect(isNonZeroInt32(Number.POSITIVE_INFINITY)).toBe(false);
107
+
87
108
  expect(isNonZeroInt32(Number.NEGATIVE_INFINITY)).toBe(false);
109
+
88
110
  expect(isNonZeroInt32(1.2)).toBe(false);
111
+
89
112
  expect(isNonZeroInt32(-3.4)).toBe(false);
90
113
  });
91
114
  });
@@ -93,7 +116,9 @@ describe('NonZeroInt32 test', () => {
93
116
  describe('NonZeroInt32.is', () => {
94
117
  test('same as isNonZeroInt32 function', () => {
95
118
  expect(NonZeroInt32.is(5)).toBe(isNonZeroInt32(5));
119
+
96
120
  expect(NonZeroInt32.is(0)).toBe(isNonZeroInt32(0));
121
+
97
122
  expect(NonZeroInt32.is(-1)).toBe(isNonZeroInt32(-1));
98
123
  });
99
124
  });
@@ -101,24 +126,31 @@ describe('NonZeroInt32 test', () => {
101
126
  describe('constants', () => {
102
127
  test('MIN_VALUE and MAX_VALUE', () => {
103
128
  expect(NonZeroInt32.MIN_VALUE).toBe(-2_147_483_648);
129
+
104
130
  expect(NonZeroInt32.MAX_VALUE).toBe(2_147_483_647);
105
131
  });
106
132
  });
107
133
 
108
134
  describe('mathematical operations', () => {
109
135
  const a = asNonZeroInt32(1_000_000);
136
+
110
137
  const b = asNonZeroInt32(500_000);
138
+
111
139
  const c = asNonZeroInt32(-300_000);
112
140
 
113
141
  test('abs', () => {
114
142
  expect(NonZeroInt32.abs(a)).toBe(1_000_000);
143
+
115
144
  expect(NonZeroInt32.abs(c)).toBe(300_000);
116
145
  });
117
146
 
118
147
  test('min and max', () => {
119
148
  expect(NonZeroInt32.min(a, b)).toBe(500_000);
149
+
120
150
  expect(NonZeroInt32.max(a, b)).toBe(1_000_000);
151
+
121
152
  expect(NonZeroInt32.min(a, c)).toBe(-300_000);
153
+
122
154
  expect(NonZeroInt32.max(a, c)).toBe(1_000_000);
123
155
  });
124
156
 
@@ -129,6 +161,7 @@ describe('NonZeroInt32 test', () => {
129
161
  );
130
162
 
131
163
  expect(result).toBe(2_147_483_647); // clamped to max
164
+
132
165
  expect(NonZeroInt32.add(a, b)).toBe(1_500_000);
133
166
  });
134
167
 
@@ -139,6 +172,7 @@ describe('NonZeroInt32 test', () => {
139
172
  );
140
173
 
141
174
  expect(result).toBe(-2_147_483_648); // clamped to min
175
+
142
176
  expect(NonZeroInt32.sub(a, b)).toBe(500_000);
143
177
  });
144
178
 
@@ -149,6 +183,7 @@ describe('NonZeroInt32 test', () => {
149
183
  );
150
184
 
151
185
  expect(result).toBe(2_147_483_647); // clamped to max
186
+
152
187
  expect(NonZeroInt32.mul(asNonZeroInt32(1000), asNonZeroInt32(5))).toBe(
153
188
  5000,
154
189
  );
@@ -156,7 +191,9 @@ describe('NonZeroInt32 test', () => {
156
191
 
157
192
  test('div (floor division with clamping)', () => {
158
193
  expect(NonZeroInt32.div(a, asNonZeroInt32(500_000))).toBe(2);
194
+
159
195
  expect(NonZeroInt32.div(asNonZeroInt32(7), asNonZeroInt32(3))).toBe(2);
196
+
160
197
  expect(NonZeroInt32.div(asNonZeroInt32(-7), asNonZeroInt32(3))).toBe(-3);
161
198
  });
162
199
 
@@ -167,6 +204,7 @@ describe('NonZeroInt32 test', () => {
167
204
  );
168
205
 
169
206
  expect(result).toBe(2_147_483_647); // clamped to max
207
+
170
208
  expect(NonZeroInt32.pow(asNonZeroInt32(2), asNonZeroInt32(3))).toBe(8);
171
209
  });
172
210
  });
@@ -174,15 +212,20 @@ describe('NonZeroInt32 test', () => {
174
212
  describe('random', () => {
175
213
  test('generates non-zero int32 values within specified range', () => {
176
214
  const min = -10;
215
+
177
216
  const max = 10;
178
217
 
179
218
  for (const _ of range(10)) {
180
219
  const result = NonZeroInt32.random(min, max);
181
220
 
182
221
  expect(result).toBeGreaterThanOrEqual(min);
222
+
183
223
  expect(result).toBeLessThanOrEqual(max);
224
+
184
225
  expect(NonZeroInt32.is(result)).toBe(true);
226
+
185
227
  expect(Number.isInteger(result)).toBe(true);
228
+
186
229
  expect(result).not.toBe(0);
187
230
  }
188
231
  });
@@ -192,6 +235,7 @@ describe('NonZeroInt32 test', () => {
192
235
  const result = NonZeroInt32.random(-20, 20);
193
236
 
194
237
  expect(result).toBeGreaterThanOrEqual(-2_147_483_648);
238
+
195
239
  expect(result).toBeLessThanOrEqual(2_147_483_647);
196
240
  }
197
241
  });
@@ -27,9 +27,9 @@ const {
27
27
  >({
28
28
  integerOrSafeInteger: 'SafeInteger',
29
29
  nonZero: true,
30
- // eslint-disable-next-line total-functions/no-unsafe-type-assertion
30
+ // eslint-disable-next-line total-functions/no-unsafe-type-assertion, math/prefer-number-min-safe-integer
31
31
  MIN_VALUE: Number.MIN_SAFE_INTEGER as SafeInt,
32
- // eslint-disable-next-line total-functions/no-unsafe-type-assertion
32
+ // eslint-disable-next-line total-functions/no-unsafe-type-assertion, math/prefer-number-max-safe-integer
33
33
  MAX_VALUE: Number.MAX_SAFE_INTEGER as SafeUint,
34
34
  typeNameInMessage,
35
35
  } as const);
@@ -10,15 +10,21 @@ describe('NonZeroSafeInt test', () => {
10
10
  describe(asNonZeroSafeInt, () => {
11
11
  test('accepts valid non-zero safe integers', () => {
12
12
  expect(() => asNonZeroSafeInt(1)).not.toThrow();
13
+
13
14
  expect(() => asNonZeroSafeInt(-1)).not.toThrow();
15
+
14
16
  expect(() => asNonZeroSafeInt(42)).not.toThrow();
17
+
15
18
  expect(() => asNonZeroSafeInt(-42)).not.toThrow();
19
+
16
20
  expect(() => asNonZeroSafeInt(Number.MAX_SAFE_INTEGER)).not.toThrow();
21
+
17
22
  expect(() => asNonZeroSafeInt(Number.MIN_SAFE_INTEGER)).not.toThrow();
18
23
  });
19
24
 
20
25
  test('rejects zero', () => {
21
26
  expect(() => asNonZeroSafeInt(0)).toThrow(TypeError);
27
+
22
28
  expect(() => asNonZeroSafeInt(-0)).toThrow(TypeError);
23
29
  });
24
30
 
@@ -26,28 +32,37 @@ describe('NonZeroSafeInt test', () => {
26
32
  expect(() => asNonZeroSafeInt(Number.MAX_SAFE_INTEGER + 1)).toThrow(
27
33
  TypeError,
28
34
  );
35
+
29
36
  expect(() => asNonZeroSafeInt(Number.MIN_SAFE_INTEGER - 1)).toThrow(
30
37
  TypeError,
31
38
  );
39
+
32
40
  expect(() => asNonZeroSafeInt(Number.MAX_VALUE)).toThrow(TypeError);
41
+
33
42
  expect(() => asNonZeroSafeInt(-Number.MAX_VALUE)).toThrow(TypeError);
34
43
  });
35
44
 
36
45
  test('rejects non-integers', () => {
37
46
  expect(() => asNonZeroSafeInt(Number.NaN)).toThrow(TypeError);
47
+
38
48
  expect(() => asNonZeroSafeInt(Number.POSITIVE_INFINITY)).toThrow(
39
49
  TypeError,
40
50
  );
51
+
41
52
  expect(() => asNonZeroSafeInt(Number.NEGATIVE_INFINITY)).toThrow(
42
53
  TypeError,
43
54
  );
55
+
44
56
  expect(() => asNonZeroSafeInt(1.2)).toThrow(TypeError);
57
+
45
58
  expect(() => asNonZeroSafeInt(-3.4)).toThrow(TypeError);
46
59
  });
47
60
 
48
61
  test('returns the same value for valid inputs', () => {
49
62
  expect(asNonZeroSafeInt(5)).toBe(5);
63
+
50
64
  expect(asNonZeroSafeInt(-10)).toBe(-10);
65
+
51
66
  expect(asNonZeroSafeInt(1)).toBe(1);
52
67
  });
53
68
 
@@ -71,30 +86,43 @@ describe('NonZeroSafeInt test', () => {
71
86
  describe(isNonZeroSafeInt, () => {
72
87
  test('correctly identifies non-zero safe integers', () => {
73
88
  expect(isNonZeroSafeInt(1)).toBe(true);
89
+
74
90
  expect(isNonZeroSafeInt(-1)).toBe(true);
91
+
75
92
  expect(isNonZeroSafeInt(42)).toBe(true);
93
+
76
94
  expect(isNonZeroSafeInt(-42)).toBe(true);
95
+
77
96
  expect(isNonZeroSafeInt(Number.MAX_SAFE_INTEGER)).toBe(true);
97
+
78
98
  expect(isNonZeroSafeInt(Number.MIN_SAFE_INTEGER)).toBe(true);
79
99
  });
80
100
 
81
101
  test('correctly identifies zero', () => {
82
102
  expect(isNonZeroSafeInt(0)).toBe(false);
103
+
83
104
  expect(isNonZeroSafeInt(-0)).toBe(false);
84
105
  });
85
106
 
86
107
  test('correctly identifies values outside safe integer range', () => {
87
108
  expect(isNonZeroSafeInt(Number.MAX_SAFE_INTEGER + 1)).toBe(false);
109
+
88
110
  expect(isNonZeroSafeInt(Number.MIN_SAFE_INTEGER - 1)).toBe(false);
111
+
89
112
  expect(isNonZeroSafeInt(Number.MAX_VALUE)).toBe(false);
113
+
90
114
  expect(isNonZeroSafeInt(-Number.MAX_VALUE)).toBe(false);
91
115
  });
92
116
 
93
117
  test('correctly identifies non-integers', () => {
94
118
  expect(isNonZeroSafeInt(Number.NaN)).toBe(false);
119
+
95
120
  expect(isNonZeroSafeInt(Number.POSITIVE_INFINITY)).toBe(false);
121
+
96
122
  expect(isNonZeroSafeInt(Number.NEGATIVE_INFINITY)).toBe(false);
123
+
97
124
  expect(isNonZeroSafeInt(1.2)).toBe(false);
125
+
98
126
  expect(isNonZeroSafeInt(-3.4)).toBe(false);
99
127
  });
100
128
  });
@@ -102,7 +130,9 @@ describe('NonZeroSafeInt test', () => {
102
130
  describe('NonZeroSafeInt.is', () => {
103
131
  test('same as isNonZeroSafeInt function', () => {
104
132
  expect(NonZeroSafeInt.is(5)).toBe(isNonZeroSafeInt(5));
133
+
105
134
  expect(NonZeroSafeInt.is(0)).toBe(isNonZeroSafeInt(0));
135
+
106
136
  expect(NonZeroSafeInt.is(-10)).toBe(isNonZeroSafeInt(-10));
107
137
  });
108
138
  });
@@ -110,41 +140,53 @@ describe('NonZeroSafeInt test', () => {
110
140
  describe('constants', () => {
111
141
  test('MIN_VALUE and MAX_VALUE', () => {
112
142
  expect(NonZeroSafeInt.MIN_VALUE).toBe(Number.MIN_SAFE_INTEGER);
143
+
113
144
  expect(NonZeroSafeInt.MAX_VALUE).toBe(Number.MAX_SAFE_INTEGER);
114
145
  });
115
146
  });
116
147
 
117
148
  describe('mathematical operations', () => {
118
149
  const a = asNonZeroSafeInt(5);
150
+
119
151
  const b = asNonZeroSafeInt(2);
152
+
120
153
  const c = asNonZeroSafeInt(-3);
121
154
 
122
155
  test('abs', () => {
123
156
  expect(NonZeroSafeInt.abs(a)).toBe(5);
157
+
124
158
  expect(NonZeroSafeInt.abs(c)).toBe(3);
159
+
125
160
  expect(NonZeroSafeInt.abs(asNonZeroSafeInt(-1))).toBe(1);
126
161
  });
127
162
 
128
163
  test('min and max', () => {
129
164
  expect(NonZeroSafeInt.min(a, b)).toBe(2);
165
+
130
166
  expect(NonZeroSafeInt.max(a, b)).toBe(5);
167
+
131
168
  expect(NonZeroSafeInt.min(a, c)).toBe(-3);
169
+
132
170
  expect(NonZeroSafeInt.max(a, c)).toBe(5);
133
171
  });
134
172
 
135
173
  test('add (with clamping to safe integer range)', () => {
136
174
  const largeValue = asNonZeroSafeInt(Number.MAX_SAFE_INTEGER - 1);
175
+
137
176
  const result = NonZeroSafeInt.add(largeValue, asNonZeroSafeInt(10));
138
177
 
139
178
  expect(result).toBe(Number.MAX_SAFE_INTEGER); // clamped to max
179
+
140
180
  expect(NonZeroSafeInt.add(a, b)).toBe(7);
141
181
  });
142
182
 
143
183
  test('sub (with clamping to safe integer range)', () => {
144
184
  const smallValue = asNonZeroSafeInt(Number.MIN_SAFE_INTEGER + 1);
185
+
145
186
  const result = NonZeroSafeInt.sub(smallValue, asNonZeroSafeInt(10));
146
187
 
147
188
  expect(result).toBe(Number.MIN_SAFE_INTEGER); // clamped to min
189
+
148
190
  expect(NonZeroSafeInt.sub(a, b)).toBe(3);
149
191
  });
150
192
 
@@ -152,9 +194,11 @@ describe('NonZeroSafeInt test', () => {
152
194
  const largeValue = asNonZeroSafeInt(
153
195
  Math.floor(Math.sqrt(Number.MAX_SAFE_INTEGER)),
154
196
  );
197
+
155
198
  const result = NonZeroSafeInt.mul(largeValue, largeValue);
156
199
 
157
200
  expect(result).toBeLessThanOrEqual(Number.MAX_SAFE_INTEGER);
201
+
158
202
  expect(
159
203
  NonZeroSafeInt.mul(asNonZeroSafeInt(10), asNonZeroSafeInt(5)),
160
204
  ).toBe(50);
@@ -162,9 +206,11 @@ describe('NonZeroSafeInt test', () => {
162
206
 
163
207
  test('div (floor division with clamping)', () => {
164
208
  expect(NonZeroSafeInt.div(a, b)).toBe(2);
209
+
165
210
  expect(NonZeroSafeInt.div(asNonZeroSafeInt(7), asNonZeroSafeInt(3))).toBe(
166
211
  2,
167
212
  );
213
+
168
214
  expect(
169
215
  NonZeroSafeInt.div(asNonZeroSafeInt(-7), asNonZeroSafeInt(3)),
170
216
  ).toBe(-3);
@@ -177,6 +223,7 @@ describe('NonZeroSafeInt test', () => {
177
223
  );
178
224
 
179
225
  expect(result).toBe(Number.MAX_SAFE_INTEGER); // clamped to max
226
+
180
227
  expect(NonZeroSafeInt.pow(asNonZeroSafeInt(2), asNonZeroSafeInt(3))).toBe(
181
228
  8,
182
229
  );
@@ -186,45 +233,60 @@ describe('NonZeroSafeInt test', () => {
186
233
  describe('random', () => {
187
234
  test('generates non-zero safe integers within specified range (positive range)', () => {
188
235
  const min = 1;
236
+
189
237
  const max = 20;
190
238
 
191
239
  for (const _ of range(10)) {
192
240
  const result = NonZeroSafeInt.random(min, max);
193
241
 
194
242
  expect(result).toBeGreaterThanOrEqual(min);
243
+
195
244
  expect(result).toBeLessThanOrEqual(max);
245
+
196
246
  expect(NonZeroSafeInt.is(result)).toBe(true);
247
+
197
248
  expect(Number.isInteger(result)).toBe(true);
249
+
198
250
  expect(result).not.toBe(0);
199
251
  }
200
252
  });
201
253
 
202
254
  test('generates non-zero safe integers within specified range (negative range)', () => {
203
255
  const min = -20;
256
+
204
257
  const max = -1;
205
258
 
206
259
  for (const _ of range(10)) {
207
260
  const result = NonZeroSafeInt.random(min, max);
208
261
 
209
262
  expect(result).toBeGreaterThanOrEqual(min);
263
+
210
264
  expect(result).toBeLessThanOrEqual(max);
265
+
211
266
  expect(NonZeroSafeInt.is(result)).toBe(true);
267
+
212
268
  expect(Number.isInteger(result)).toBe(true);
269
+
213
270
  expect(result).not.toBe(0);
214
271
  }
215
272
  });
216
273
 
217
274
  test('generates non-zero safe integers within range that spans zero', () => {
218
275
  const min = -5;
276
+
219
277
  const max = 5;
220
278
 
221
279
  for (const _ of range(10)) {
222
280
  const result = NonZeroSafeInt.random(min, max);
223
281
 
224
282
  expect(result).toBeGreaterThanOrEqual(min);
283
+
225
284
  expect(result).toBeLessThanOrEqual(max);
285
+
226
286
  expect(NonZeroSafeInt.is(result)).toBe(true);
287
+
227
288
  expect(Number.isInteger(result)).toBe(true);
289
+
228
290
  expect(result).not.toBe(0);
229
291
  }
230
292
  });
@@ -10,8 +10,11 @@ describe('NonZeroUint16 test', () => {
10
10
  describe(asNonZeroUint16, () => {
11
11
  test('accepts valid non-zero uint16 values', () => {
12
12
  expect(() => asNonZeroUint16(1)).not.toThrow();
13
+
13
14
  expect(() => asNonZeroUint16(1000)).not.toThrow();
15
+
14
16
  expect(() => asNonZeroUint16(65_535)).not.toThrow(); // 2^16 - 1
17
+
15
18
  expect(() => asNonZeroUint16(32_768)).not.toThrow(); // 2^15
16
19
  });
17
20
 
@@ -21,29 +24,37 @@ describe('NonZeroUint16 test', () => {
21
24
 
22
25
  test('rejects values outside uint16 range', () => {
23
26
  expect(() => asNonZeroUint16(65_536)).toThrow(TypeError); // 2^16
27
+
24
28
  expect(() => asNonZeroUint16(100_000)).toThrow(TypeError);
25
29
  });
26
30
 
27
31
  test('rejects negative integers', () => {
28
32
  expect(() => asNonZeroUint16(-1)).toThrow(TypeError);
33
+
29
34
  expect(() => asNonZeroUint16(-42)).toThrow(TypeError);
30
35
  });
31
36
 
32
37
  test('rejects non-integers', () => {
33
38
  expect(() => asNonZeroUint16(Number.NaN)).toThrow(TypeError);
39
+
34
40
  expect(() => asNonZeroUint16(Number.POSITIVE_INFINITY)).toThrow(
35
41
  TypeError,
36
42
  );
43
+
37
44
  expect(() => asNonZeroUint16(Number.NEGATIVE_INFINITY)).toThrow(
38
45
  TypeError,
39
46
  );
47
+
40
48
  expect(() => asNonZeroUint16(1.2)).toThrow(TypeError);
49
+
41
50
  expect(() => asNonZeroUint16(-3.4)).toThrow(TypeError);
42
51
  });
43
52
 
44
53
  test('returns the same value for valid inputs', () => {
45
54
  expect(asNonZeroUint16(5)).toBe(5);
55
+
46
56
  expect(asNonZeroUint16(1)).toBe(1);
57
+
47
58
  expect(asNonZeroUint16(65_535)).toBe(65_535);
48
59
  });
49
60
 
@@ -71,8 +82,11 @@ describe('NonZeroUint16 test', () => {
71
82
  describe(isNonZeroUint16, () => {
72
83
  test('correctly identifies non-zero uint16 values', () => {
73
84
  expect(isNonZeroUint16(1)).toBe(true);
85
+
74
86
  expect(isNonZeroUint16(1000)).toBe(true);
87
+
75
88
  expect(isNonZeroUint16(65_535)).toBe(true);
89
+
76
90
  expect(isNonZeroUint16(32_768)).toBe(true);
77
91
  });
78
92
 
@@ -82,19 +96,25 @@ describe('NonZeroUint16 test', () => {
82
96
 
83
97
  test('correctly identifies values outside uint16 range', () => {
84
98
  expect(isNonZeroUint16(65_536)).toBe(false);
99
+
85
100
  expect(isNonZeroUint16(100_000)).toBe(false);
86
101
  });
87
102
 
88
103
  test('correctly identifies negative integers', () => {
89
104
  expect(isNonZeroUint16(-1)).toBe(false);
105
+
90
106
  expect(isNonZeroUint16(-42)).toBe(false);
91
107
  });
92
108
 
93
109
  test('correctly identifies non-integers', () => {
94
110
  expect(isNonZeroUint16(Number.NaN)).toBe(false);
111
+
95
112
  expect(isNonZeroUint16(Number.POSITIVE_INFINITY)).toBe(false);
113
+
96
114
  expect(isNonZeroUint16(Number.NEGATIVE_INFINITY)).toBe(false);
115
+
97
116
  expect(isNonZeroUint16(1.2)).toBe(false);
117
+
98
118
  expect(isNonZeroUint16(-3.4)).toBe(false);
99
119
  });
100
120
  });
@@ -102,7 +122,9 @@ describe('NonZeroUint16 test', () => {
102
122
  describe('NonZeroUint16.is', () => {
103
123
  test('same as isNonZeroUint16 function', () => {
104
124
  expect(NonZeroUint16.is(5)).toBe(isNonZeroUint16(5));
125
+
105
126
  expect(NonZeroUint16.is(0)).toBe(isNonZeroUint16(0));
127
+
106
128
  expect(NonZeroUint16.is(-1)).toBe(isNonZeroUint16(-1));
107
129
  });
108
130
  });
@@ -110,16 +132,19 @@ describe('NonZeroUint16 test', () => {
110
132
  describe('constants', () => {
111
133
  test('MIN_VALUE and MAX_VALUE', () => {
112
134
  expect(NonZeroUint16.MIN_VALUE).toBe(1);
135
+
113
136
  expect(NonZeroUint16.MAX_VALUE).toBe(65_535);
114
137
  });
115
138
  });
116
139
 
117
140
  describe('mathematical operations', () => {
118
141
  const a = asNonZeroUint16(100);
142
+
119
143
  const b = asNonZeroUint16(50);
120
144
 
121
145
  test('min and max', () => {
122
146
  expect(NonZeroUint16.min(a, b)).toBe(50);
147
+
123
148
  expect(NonZeroUint16.max(a, b)).toBe(100);
124
149
  });
125
150
 
@@ -130,11 +155,13 @@ describe('NonZeroUint16 test', () => {
130
155
  );
131
156
 
132
157
  expect(result).toBe(65_535); // clamped to max
158
+
133
159
  expect(NonZeroUint16.add(a, b)).toBe(150);
134
160
  });
135
161
 
136
162
  test('sub (never goes below 1)', () => {
137
163
  expect(NonZeroUint16.sub(a, b)).toBe(50);
164
+
138
165
  expect(NonZeroUint16.sub(b, a)).toBe(1); // clamped to 1
139
166
  });
140
167
 
@@ -145,6 +172,7 @@ describe('NonZeroUint16 test', () => {
145
172
  );
146
173
 
147
174
  expect(result).toBe(65_535); // clamped to max
175
+
148
176
  expect(NonZeroUint16.mul(asNonZeroUint16(10), asNonZeroUint16(5))).toBe(
149
177
  50,
150
178
  );
@@ -152,7 +180,9 @@ describe('NonZeroUint16 test', () => {
152
180
 
153
181
  test('div (floor division, never goes below 1)', () => {
154
182
  expect(NonZeroUint16.div(a, asNonZeroUint16(50))).toBe(2);
183
+
155
184
  expect(NonZeroUint16.div(asNonZeroUint16(7), asNonZeroUint16(3))).toBe(2);
185
+
156
186
  expect(NonZeroUint16.div(asNonZeroUint16(50), asNonZeroUint16(100))).toBe(
157
187
  1,
158
188
  ); // floor(50/100) = 0, clamped to 1
@@ -165,6 +195,7 @@ describe('NonZeroUint16 test', () => {
165
195
  );
166
196
 
167
197
  expect(result).toBe(65_535); // clamped to max
198
+
168
199
  expect(NonZeroUint16.pow(asNonZeroUint16(2), asNonZeroUint16(3))).toBe(8);
169
200
  });
170
201
  });
@@ -172,15 +203,20 @@ describe('NonZeroUint16 test', () => {
172
203
  describe('random', () => {
173
204
  test('generates non-zero uint16 values within specified range', () => {
174
205
  const min = 1;
206
+
175
207
  const max = 20;
176
208
 
177
209
  for (const _ of range(10)) {
178
210
  const result = NonZeroUint16.random(min, max);
179
211
 
180
212
  expect(result).toBeGreaterThanOrEqual(min);
213
+
181
214
  expect(result).toBeLessThanOrEqual(max);
215
+
182
216
  expect(NonZeroUint16.is(result)).toBe(true);
217
+
183
218
  expect(Number.isInteger(result)).toBe(true);
219
+
184
220
  expect(result).not.toBe(0);
185
221
  }
186
222
  });
@@ -190,6 +226,7 @@ describe('NonZeroUint16 test', () => {
190
226
  const result = NonZeroUint16.random(1, 30);
191
227
 
192
228
  expect(result).toBeGreaterThanOrEqual(1);
229
+
193
230
  expect(result).toBeLessThanOrEqual(65_535);
194
231
  }
195
232
  });