ts-data-forge 14.10.2 → 14.11.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 (416) hide show
  1. package/README.md +34 -1
  2. package/dist/array/impl/array-utils-reducing-value.d.mts.map +1 -1
  3. package/dist/array/impl/array-utils-reducing-value.mjs +4 -3
  4. package/dist/array/impl/array-utils-reducing-value.mjs.map +1 -1
  5. package/dist/array/impl/array-utils-slice-clamped.mjs +1 -1
  6. package/dist/array/impl/array-utils-slice-clamped.mjs.map +1 -1
  7. package/dist/array/impl/array-utils-slicing.d.mts.map +1 -1
  8. package/dist/array/impl/array-utils-slicing.mjs +10 -3
  9. package/dist/array/impl/array-utils-slicing.mjs.map +1 -1
  10. package/dist/array/impl/array-utils-transformation.d.mts.map +1 -1
  11. package/dist/array/impl/array-utils-transformation.mjs +2 -2
  12. package/dist/array/impl/array-utils-transformation.mjs.map +1 -1
  13. package/dist/array/impl/array-utils-validation.d.mts.map +1 -1
  14. package/dist/array/impl/array-utils-validation.mjs +2 -1
  15. package/dist/array/impl/array-utils-validation.mjs.map +1 -1
  16. package/dist/built-in-tag.d.mts +22 -0
  17. package/dist/built-in-tag.d.mts.map +1 -0
  18. package/dist/built-in-tag.mjs +34 -0
  19. package/dist/built-in-tag.mjs.map +1 -0
  20. package/dist/collections/stack.mjs +3 -3
  21. package/dist/collections/stack.mjs.map +1 -1
  22. package/dist/iterator/range.d.mts +1 -1
  23. package/dist/iterator/range.d.mts.map +1 -1
  24. package/dist/iterator/range.mjs +5 -2
  25. package/dist/iterator/range.mjs.map +1 -1
  26. package/dist/number/branded-types/finite-number.d.mts +4 -9
  27. package/dist/number/branded-types/finite-number.d.mts.map +1 -1
  28. package/dist/number/branded-types/finite-number.mjs +9 -9
  29. package/dist/number/branded-types/finite-number.mjs.map +1 -1
  30. package/dist/number/branded-types/int.d.mts +3 -9
  31. package/dist/number/branded-types/int.d.mts.map +1 -1
  32. package/dist/number/branded-types/int.mjs +9 -10
  33. package/dist/number/branded-types/int.mjs.map +1 -1
  34. package/dist/number/branded-types/int16.d.mts +3 -18
  35. package/dist/number/branded-types/int16.d.mts.map +1 -1
  36. package/dist/number/branded-types/int16.mjs +9 -10
  37. package/dist/number/branded-types/int16.mjs.map +1 -1
  38. package/dist/number/branded-types/int32.d.mts +3 -14
  39. package/dist/number/branded-types/int32.d.mts.map +1 -1
  40. package/dist/number/branded-types/int32.mjs +9 -10
  41. package/dist/number/branded-types/int32.mjs.map +1 -1
  42. package/dist/number/branded-types/negative-finite-number.d.mts +4 -16
  43. package/dist/number/branded-types/negative-finite-number.d.mts.map +1 -1
  44. package/dist/number/branded-types/negative-finite-number.mjs +9 -10
  45. package/dist/number/branded-types/negative-finite-number.mjs.map +1 -1
  46. package/dist/number/branded-types/negative-int.d.mts +3 -16
  47. package/dist/number/branded-types/negative-int.d.mts.map +1 -1
  48. package/dist/number/branded-types/negative-int.mjs +9 -11
  49. package/dist/number/branded-types/negative-int.mjs.map +1 -1
  50. package/dist/number/branded-types/negative-safe-int.d.mts +3 -17
  51. package/dist/number/branded-types/negative-safe-int.d.mts.map +1 -1
  52. package/dist/number/branded-types/negative-safe-int.mjs +9 -11
  53. package/dist/number/branded-types/negative-safe-int.mjs.map +1 -1
  54. package/dist/number/branded-types/non-negative-finite-number.d.mts +4 -14
  55. package/dist/number/branded-types/non-negative-finite-number.d.mts.map +1 -1
  56. package/dist/number/branded-types/non-negative-finite-number.mjs +9 -9
  57. package/dist/number/branded-types/non-negative-finite-number.mjs.map +1 -1
  58. package/dist/number/branded-types/non-negative-int16.d.mts +3 -19
  59. package/dist/number/branded-types/non-negative-int16.d.mts.map +1 -1
  60. package/dist/number/branded-types/non-negative-int16.mjs +9 -10
  61. package/dist/number/branded-types/non-negative-int16.mjs.map +1 -1
  62. package/dist/number/branded-types/non-negative-int32.d.mts +3 -17
  63. package/dist/number/branded-types/non-negative-int32.d.mts.map +1 -1
  64. package/dist/number/branded-types/non-negative-int32.mjs +9 -10
  65. package/dist/number/branded-types/non-negative-int32.mjs.map +1 -1
  66. package/dist/number/branded-types/non-positive-finite-number.d.mts +4 -14
  67. package/dist/number/branded-types/non-positive-finite-number.d.mts.map +1 -1
  68. package/dist/number/branded-types/non-positive-finite-number.mjs +9 -9
  69. package/dist/number/branded-types/non-positive-finite-number.mjs.map +1 -1
  70. package/dist/number/branded-types/non-positive-int.d.mts +3 -14
  71. package/dist/number/branded-types/non-positive-int.d.mts.map +1 -1
  72. package/dist/number/branded-types/non-positive-int.mjs +9 -10
  73. package/dist/number/branded-types/non-positive-int.mjs.map +1 -1
  74. package/dist/number/branded-types/non-positive-safe-int.d.mts +3 -15
  75. package/dist/number/branded-types/non-positive-safe-int.d.mts.map +1 -1
  76. package/dist/number/branded-types/non-positive-safe-int.mjs +9 -10
  77. package/dist/number/branded-types/non-positive-safe-int.mjs.map +1 -1
  78. package/dist/number/branded-types/non-zero-finite-number.d.mts +4 -10
  79. package/dist/number/branded-types/non-zero-finite-number.d.mts.map +1 -1
  80. package/dist/number/branded-types/non-zero-finite-number.mjs +9 -10
  81. package/dist/number/branded-types/non-zero-finite-number.mjs.map +1 -1
  82. package/dist/number/branded-types/non-zero-int.d.mts +3 -10
  83. package/dist/number/branded-types/non-zero-int.d.mts.map +1 -1
  84. package/dist/number/branded-types/non-zero-int.mjs +9 -11
  85. package/dist/number/branded-types/non-zero-int.mjs.map +1 -1
  86. package/dist/number/branded-types/non-zero-int16.d.mts +3 -19
  87. package/dist/number/branded-types/non-zero-int16.d.mts.map +1 -1
  88. package/dist/number/branded-types/non-zero-int16.mjs +12 -11
  89. package/dist/number/branded-types/non-zero-int16.mjs.map +1 -1
  90. package/dist/number/branded-types/non-zero-int32.d.mts +3 -15
  91. package/dist/number/branded-types/non-zero-int32.d.mts.map +1 -1
  92. package/dist/number/branded-types/non-zero-int32.mjs +12 -11
  93. package/dist/number/branded-types/non-zero-int32.mjs.map +1 -1
  94. package/dist/number/branded-types/non-zero-safe-int.d.mts +6 -14
  95. package/dist/number/branded-types/non-zero-safe-int.d.mts.map +1 -1
  96. package/dist/number/branded-types/non-zero-safe-int.mjs +9 -13
  97. package/dist/number/branded-types/non-zero-safe-int.mjs.map +1 -1
  98. package/dist/number/branded-types/non-zero-uint16.d.mts +3 -20
  99. package/dist/number/branded-types/non-zero-uint16.d.mts.map +1 -1
  100. package/dist/number/branded-types/non-zero-uint16.mjs +9 -11
  101. package/dist/number/branded-types/non-zero-uint16.mjs.map +1 -1
  102. package/dist/number/branded-types/non-zero-uint32.d.mts +3 -18
  103. package/dist/number/branded-types/non-zero-uint32.d.mts.map +1 -1
  104. package/dist/number/branded-types/non-zero-uint32.mjs +9 -11
  105. package/dist/number/branded-types/non-zero-uint32.mjs.map +1 -1
  106. package/dist/number/branded-types/positive-finite-number.d.mts +4 -16
  107. package/dist/number/branded-types/positive-finite-number.d.mts.map +1 -1
  108. package/dist/number/branded-types/positive-finite-number.mjs +9 -9
  109. package/dist/number/branded-types/positive-finite-number.mjs.map +1 -1
  110. package/dist/number/branded-types/positive-int.d.mts +3 -16
  111. package/dist/number/branded-types/positive-int.d.mts.map +1 -1
  112. package/dist/number/branded-types/positive-int.mjs +9 -10
  113. package/dist/number/branded-types/positive-int.mjs.map +1 -1
  114. package/dist/number/branded-types/positive-int16.d.mts +3 -21
  115. package/dist/number/branded-types/positive-int16.d.mts.map +1 -1
  116. package/dist/number/branded-types/positive-int16.mjs +9 -10
  117. package/dist/number/branded-types/positive-int16.mjs.map +1 -1
  118. package/dist/number/branded-types/positive-int32.d.mts +3 -19
  119. package/dist/number/branded-types/positive-int32.d.mts.map +1 -1
  120. package/dist/number/branded-types/positive-int32.mjs +9 -10
  121. package/dist/number/branded-types/positive-int32.mjs.map +1 -1
  122. package/dist/number/branded-types/positive-safe-int.d.mts +5 -19
  123. package/dist/number/branded-types/positive-safe-int.d.mts.map +1 -1
  124. package/dist/number/branded-types/positive-safe-int.mjs +9 -11
  125. package/dist/number/branded-types/positive-safe-int.mjs.map +1 -1
  126. package/dist/number/branded-types/positive-uint16.d.mts +3 -20
  127. package/dist/number/branded-types/positive-uint16.d.mts.map +1 -1
  128. package/dist/number/branded-types/positive-uint16.mjs +9 -10
  129. package/dist/number/branded-types/positive-uint16.mjs.map +1 -1
  130. package/dist/number/branded-types/positive-uint32.d.mts +3 -18
  131. package/dist/number/branded-types/positive-uint32.d.mts.map +1 -1
  132. package/dist/number/branded-types/positive-uint32.mjs +9 -10
  133. package/dist/number/branded-types/positive-uint32.mjs.map +1 -1
  134. package/dist/number/branded-types/safe-int.d.mts +5 -12
  135. package/dist/number/branded-types/safe-int.d.mts.map +1 -1
  136. package/dist/number/branded-types/safe-int.mjs +9 -12
  137. package/dist/number/branded-types/safe-int.mjs.map +1 -1
  138. package/dist/number/branded-types/safe-uint.d.mts +3 -15
  139. package/dist/number/branded-types/safe-uint.d.mts.map +1 -1
  140. package/dist/number/branded-types/safe-uint.mjs +9 -11
  141. package/dist/number/branded-types/safe-uint.mjs.map +1 -1
  142. package/dist/number/branded-types/uint.d.mts +3 -14
  143. package/dist/number/branded-types/uint.d.mts.map +1 -1
  144. package/dist/number/branded-types/uint.mjs +9 -10
  145. package/dist/number/branded-types/uint.mjs.map +1 -1
  146. package/dist/number/branded-types/uint16.d.mts +3 -18
  147. package/dist/number/branded-types/uint16.d.mts.map +1 -1
  148. package/dist/number/branded-types/uint16.mjs +9 -10
  149. package/dist/number/branded-types/uint16.mjs.map +1 -1
  150. package/dist/number/branded-types/uint32.d.mts +3 -16
  151. package/dist/number/branded-types/uint32.d.mts.map +1 -1
  152. package/dist/number/branded-types/uint32.mjs +9 -10
  153. package/dist/number/branded-types/uint32.mjs.map +1 -1
  154. package/dist/number/enum/int8.d.mts +13 -15
  155. package/dist/number/enum/int8.d.mts.map +1 -1
  156. package/dist/number/enum/int8.mjs +20 -25
  157. package/dist/number/enum/int8.mjs.map +1 -1
  158. package/dist/number/enum/uint8.d.mts +12 -14
  159. package/dist/number/enum/uint8.d.mts.map +1 -1
  160. package/dist/number/enum/uint8.mjs +18 -23
  161. package/dist/number/enum/uint8.mjs.map +1 -1
  162. package/dist/number/index.d.mts +1 -1
  163. package/dist/number/index.d.mts.map +1 -1
  164. package/dist/number/index.mjs +1 -1
  165. package/dist/number/index.mjs.map +1 -1
  166. package/dist/number/num/impl/index.d.mts +2 -0
  167. package/dist/number/num/impl/index.d.mts.map +1 -0
  168. package/dist/number/num/impl/index.mjs +2 -0
  169. package/dist/number/num/impl/index.mjs.map +1 -0
  170. package/dist/number/num/impl/num.d.mts +531 -0
  171. package/dist/number/num/impl/num.d.mts.map +1 -0
  172. package/dist/number/num/impl/num.mjs +542 -0
  173. package/dist/number/num/impl/num.mjs.map +1 -0
  174. package/dist/number/num/index.d.mts +17 -0
  175. package/dist/number/num/index.d.mts.map +1 -0
  176. package/dist/number/num/index.mjs +17 -0
  177. package/dist/number/num/index.mjs.map +1 -0
  178. package/dist/number/operators/finite-number.d.mts +16 -0
  179. package/dist/number/operators/finite-number.d.mts.map +1 -0
  180. package/dist/number/operators/finite-number.mjs +7 -0
  181. package/dist/number/operators/finite-number.mjs.map +1 -0
  182. package/dist/number/operators/int.d.mts +16 -0
  183. package/dist/number/operators/int.d.mts.map +1 -0
  184. package/dist/number/operators/int.mjs +8 -0
  185. package/dist/number/operators/int.mjs.map +1 -0
  186. package/dist/number/operators/int16.d.mts +25 -0
  187. package/dist/number/operators/int16.d.mts.map +1 -0
  188. package/dist/number/operators/int16.mjs +8 -0
  189. package/dist/number/operators/int16.mjs.map +1 -0
  190. package/dist/number/operators/int32.d.mts +21 -0
  191. package/dist/number/operators/int32.d.mts.map +1 -0
  192. package/dist/number/operators/int32.mjs +8 -0
  193. package/dist/number/operators/int32.mjs.map +1 -0
  194. package/dist/number/operators/int8.d.mts +24 -0
  195. package/dist/number/operators/int8.d.mts.map +1 -0
  196. package/dist/number/operators/int8.mjs +8 -0
  197. package/dist/number/operators/int8.mjs.map +1 -0
  198. package/dist/number/operators/negative-finite-number.d.mts +11 -0
  199. package/dist/number/operators/negative-finite-number.d.mts.map +1 -0
  200. package/dist/number/operators/negative-finite-number.mjs +8 -0
  201. package/dist/number/operators/negative-finite-number.mjs.map +1 -0
  202. package/dist/number/operators/negative-int.d.mts +10 -0
  203. package/dist/number/operators/negative-int.d.mts.map +1 -0
  204. package/dist/number/operators/negative-int.mjs +9 -0
  205. package/dist/number/operators/negative-int.mjs.map +1 -0
  206. package/dist/number/operators/negative-safe-int.d.mts +10 -0
  207. package/dist/number/operators/negative-safe-int.d.mts.map +1 -0
  208. package/dist/number/operators/negative-safe-int.mjs +9 -0
  209. package/dist/number/operators/negative-safe-int.mjs.map +1 -0
  210. package/dist/number/operators/non-negative-finite-number.d.mts +22 -0
  211. package/dist/number/operators/non-negative-finite-number.d.mts.map +1 -0
  212. package/dist/number/operators/non-negative-finite-number.mjs +7 -0
  213. package/dist/number/operators/non-negative-finite-number.mjs.map +1 -0
  214. package/dist/number/operators/non-negative-int16.d.mts +27 -0
  215. package/dist/number/operators/non-negative-int16.d.mts.map +1 -0
  216. package/dist/number/operators/non-negative-int16.mjs +8 -0
  217. package/dist/number/operators/non-negative-int16.mjs.map +1 -0
  218. package/dist/number/operators/non-negative-int32.d.mts +25 -0
  219. package/dist/number/operators/non-negative-int32.d.mts.map +1 -0
  220. package/dist/number/operators/non-negative-int32.mjs +8 -0
  221. package/dist/number/operators/non-negative-int32.mjs.map +1 -0
  222. package/dist/number/operators/non-positive-finite-number.d.mts +11 -0
  223. package/dist/number/operators/non-positive-finite-number.d.mts.map +1 -0
  224. package/dist/number/operators/non-positive-finite-number.mjs +7 -0
  225. package/dist/number/operators/non-positive-finite-number.mjs.map +1 -0
  226. package/dist/number/operators/non-positive-int.d.mts +10 -0
  227. package/dist/number/operators/non-positive-int.d.mts.map +1 -0
  228. package/dist/number/operators/non-positive-int.mjs +8 -0
  229. package/dist/number/operators/non-positive-int.mjs.map +1 -0
  230. package/dist/number/operators/non-positive-safe-int.d.mts +10 -0
  231. package/dist/number/operators/non-positive-safe-int.d.mts.map +1 -0
  232. package/dist/number/operators/non-positive-safe-int.mjs +8 -0
  233. package/dist/number/operators/non-positive-safe-int.mjs.map +1 -0
  234. package/dist/number/operators/non-zero-finite-number.d.mts +16 -0
  235. package/dist/number/operators/non-zero-finite-number.d.mts.map +1 -0
  236. package/dist/number/operators/non-zero-finite-number.mjs +8 -0
  237. package/dist/number/operators/non-zero-finite-number.mjs.map +1 -0
  238. package/dist/number/operators/non-zero-int.d.mts +10 -0
  239. package/dist/number/operators/non-zero-int.d.mts.map +1 -0
  240. package/dist/number/operators/non-zero-int.mjs +9 -0
  241. package/dist/number/operators/non-zero-int.mjs.map +1 -0
  242. package/dist/number/operators/non-zero-int16.d.mts +10 -0
  243. package/dist/number/operators/non-zero-int16.d.mts.map +1 -0
  244. package/dist/number/operators/non-zero-int16.mjs +9 -0
  245. package/dist/number/operators/non-zero-int16.mjs.map +1 -0
  246. package/dist/number/operators/non-zero-int32.d.mts +10 -0
  247. package/dist/number/operators/non-zero-int32.d.mts.map +1 -0
  248. package/dist/number/operators/non-zero-int32.mjs +9 -0
  249. package/dist/number/operators/non-zero-int32.mjs.map +1 -0
  250. package/dist/number/operators/non-zero-safe-int.d.mts +10 -0
  251. package/dist/number/operators/non-zero-safe-int.d.mts.map +1 -0
  252. package/dist/number/operators/non-zero-safe-int.mjs +11 -0
  253. package/dist/number/operators/non-zero-safe-int.mjs.map +1 -0
  254. package/dist/number/operators/non-zero-uint16.d.mts +2 -0
  255. package/dist/number/operators/non-zero-uint16.d.mts.map +1 -0
  256. package/dist/number/operators/non-zero-uint16.mjs +9 -0
  257. package/dist/number/operators/non-zero-uint16.mjs.map +1 -0
  258. package/dist/number/operators/non-zero-uint32.d.mts +2 -0
  259. package/dist/number/operators/non-zero-uint32.d.mts.map +1 -0
  260. package/dist/number/operators/non-zero-uint32.mjs +9 -0
  261. package/dist/number/operators/non-zero-uint32.mjs.map +1 -0
  262. package/dist/number/operators/positive-finite-number.d.mts +23 -0
  263. package/dist/number/operators/positive-finite-number.d.mts.map +1 -0
  264. package/dist/number/operators/positive-finite-number.mjs +7 -0
  265. package/dist/number/operators/positive-finite-number.mjs.map +1 -0
  266. package/dist/number/operators/positive-int.d.mts +23 -0
  267. package/dist/number/operators/positive-int.d.mts.map +1 -0
  268. package/dist/number/operators/positive-int.mjs +8 -0
  269. package/dist/number/operators/positive-int.mjs.map +1 -0
  270. package/dist/number/operators/positive-int16.d.mts +28 -0
  271. package/dist/number/operators/positive-int16.d.mts.map +1 -0
  272. package/dist/number/operators/positive-int16.mjs +8 -0
  273. package/dist/number/operators/positive-int16.mjs.map +1 -0
  274. package/dist/number/operators/positive-int32.d.mts +26 -0
  275. package/dist/number/operators/positive-int32.d.mts.map +1 -0
  276. package/dist/number/operators/positive-int32.mjs +8 -0
  277. package/dist/number/operators/positive-int32.mjs.map +1 -0
  278. package/dist/number/operators/positive-safe-int.d.mts +24 -0
  279. package/dist/number/operators/positive-safe-int.d.mts.map +1 -0
  280. package/dist/number/operators/positive-safe-int.mjs +9 -0
  281. package/dist/number/operators/positive-safe-int.mjs.map +1 -0
  282. package/dist/number/operators/positive-uint16.d.mts +27 -0
  283. package/dist/number/operators/positive-uint16.d.mts.map +1 -0
  284. package/dist/number/operators/positive-uint16.mjs +8 -0
  285. package/dist/number/operators/positive-uint16.mjs.map +1 -0
  286. package/dist/number/operators/positive-uint32.d.mts +25 -0
  287. package/dist/number/operators/positive-uint32.d.mts.map +1 -0
  288. package/dist/number/operators/positive-uint32.mjs +8 -0
  289. package/dist/number/operators/positive-uint32.mjs.map +1 -0
  290. package/dist/number/operators/safe-int.d.mts +17 -0
  291. package/dist/number/operators/safe-int.d.mts.map +1 -0
  292. package/dist/number/operators/safe-int.mjs +10 -0
  293. package/dist/number/operators/safe-int.mjs.map +1 -0
  294. package/dist/number/operators/safe-uint.d.mts +22 -0
  295. package/dist/number/operators/safe-uint.d.mts.map +1 -0
  296. package/dist/number/operators/safe-uint.mjs +9 -0
  297. package/dist/number/operators/safe-uint.mjs.map +1 -0
  298. package/dist/number/operators/uint.d.mts +14 -0
  299. package/dist/number/operators/uint.d.mts.map +1 -0
  300. package/dist/number/operators/uint.mjs +8 -0
  301. package/dist/number/operators/uint.mjs.map +1 -0
  302. package/dist/number/operators/uint16.d.mts +25 -0
  303. package/dist/number/operators/uint16.d.mts.map +1 -0
  304. package/dist/number/operators/uint16.mjs +8 -0
  305. package/dist/number/operators/uint16.mjs.map +1 -0
  306. package/dist/number/operators/uint32.d.mts +23 -0
  307. package/dist/number/operators/uint32.d.mts.map +1 -0
  308. package/dist/number/operators/uint32.mjs +8 -0
  309. package/dist/number/operators/uint32.mjs.map +1 -0
  310. package/dist/number/operators/uint8.d.mts +24 -0
  311. package/dist/number/operators/uint8.d.mts.map +1 -0
  312. package/dist/number/operators/uint8.mjs +8 -0
  313. package/dist/number/operators/uint8.mjs.map +1 -0
  314. package/dist/number/refined-number-utils.d.mts +2 -2
  315. package/dist/number/refined-number-utils.d.mts.map +1 -1
  316. package/dist/number/refined-number-utils.mjs +1 -1
  317. package/dist/number/refined-number-utils.mjs.map +1 -1
  318. package/dist/object/object.mjs +1 -1
  319. package/dist/object/object.mjs.map +1 -1
  320. package/dist/others/fast-deep-equal.mjs +1 -1
  321. package/dist/others/fast-deep-equal.mjs.map +1 -1
  322. package/package.json +22 -9
  323. package/src/array/impl/array-utils-reducing-value.mts +4 -3
  324. package/src/array/impl/array-utils-shape-invariants.test.mts +1 -1
  325. package/src/array/impl/array-utils-slice-clamped.mts +1 -1
  326. package/src/array/impl/array-utils-slicing.mts +12 -3
  327. package/src/array/impl/array-utils-transformation.mts +6 -2
  328. package/src/array/impl/array-utils-validation.mts +2 -1
  329. package/src/built-in-tag.mts +59 -0
  330. package/src/built-in-tag.test.mts +215 -0
  331. package/src/collections/stack.mts +3 -3
  332. package/src/iterator/range.mts +10 -2
  333. package/src/iterator/range.test.mts +7 -0
  334. package/src/number/branded-types/finite-number.mts +23 -25
  335. package/src/number/branded-types/int.mts +20 -26
  336. package/src/number/branded-types/int16.mts +21 -26
  337. package/src/number/branded-types/int32.mts +21 -26
  338. package/src/number/branded-types/negative-finite-number.mts +25 -26
  339. package/src/number/branded-types/negative-int.mts +20 -27
  340. package/src/number/branded-types/negative-safe-int.mts +23 -28
  341. package/src/number/branded-types/non-negative-finite-number.mts +24 -25
  342. package/src/number/branded-types/non-negative-int16.mts +23 -26
  343. package/src/number/branded-types/non-negative-int32.mts +23 -26
  344. package/src/number/branded-types/non-positive-finite-number.mts +24 -25
  345. package/src/number/branded-types/non-positive-int.mts +20 -26
  346. package/src/number/branded-types/non-positive-safe-int.mts +21 -26
  347. package/src/number/branded-types/non-zero-finite-number.mts +23 -25
  348. package/src/number/branded-types/non-zero-int.mts +19 -25
  349. package/src/number/branded-types/non-zero-int16.mts +27 -28
  350. package/src/number/branded-types/non-zero-int32.mts +27 -28
  351. package/src/number/branded-types/non-zero-safe-int.mts +25 -35
  352. package/src/number/branded-types/non-zero-uint16.mts +24 -28
  353. package/src/number/branded-types/non-zero-uint32.mts +24 -28
  354. package/src/number/branded-types/positive-finite-number.mts +25 -25
  355. package/src/number/branded-types/positive-int.mts +21 -26
  356. package/src/number/branded-types/positive-int16.mts +23 -26
  357. package/src/number/branded-types/positive-int32.mts +23 -26
  358. package/src/number/branded-types/positive-safe-int.mts +24 -31
  359. package/src/number/branded-types/positive-uint16.mts +23 -26
  360. package/src/number/branded-types/positive-uint32.mts +23 -26
  361. package/src/number/branded-types/safe-int.mts +22 -29
  362. package/src/number/branded-types/safe-uint.mts +21 -27
  363. package/src/number/branded-types/uint.mts +21 -26
  364. package/src/number/branded-types/uint16.mts +21 -26
  365. package/src/number/branded-types/uint32.mts +21 -26
  366. package/src/number/enum/int8.mts +40 -52
  367. package/src/number/enum/uint8.mts +40 -48
  368. package/src/number/index.mts +1 -1
  369. package/src/number/num/impl/index.mts +1 -0
  370. package/src/number/num/impl/num.mts +715 -0
  371. package/src/number/{num.test.mts → num/impl/num.test.mts} +4 -4
  372. package/src/number/num/index.mts +16 -0
  373. package/src/number/num-arithmetic.test.mts +1 -1
  374. package/src/number/operators/finite-number.mts +20 -0
  375. package/src/number/operators/int.mts +20 -0
  376. package/src/number/operators/int16.mts +33 -0
  377. package/src/number/operators/int32.mts +33 -0
  378. package/src/number/operators/int8.mts +18 -0
  379. package/src/number/operators/negative-finite-number.mts +22 -0
  380. package/src/number/operators/negative-int.mts +22 -0
  381. package/src/number/operators/negative-safe-int.mts +32 -0
  382. package/src/number/operators/non-negative-finite-number.mts +32 -0
  383. package/src/number/operators/non-negative-int16.mts +33 -0
  384. package/src/number/operators/non-negative-int32.mts +33 -0
  385. package/src/number/operators/non-positive-finite-number.mts +21 -0
  386. package/src/number/operators/non-positive-int.mts +21 -0
  387. package/src/number/operators/non-positive-safe-int.mts +31 -0
  388. package/src/number/operators/non-zero-finite-number.mts +21 -0
  389. package/src/number/operators/non-zero-int.mts +22 -0
  390. package/src/number/operators/non-zero-int16.mts +32 -0
  391. package/src/number/operators/non-zero-int32.mts +32 -0
  392. package/src/number/operators/non-zero-safe-int.mts +34 -0
  393. package/src/number/operators/non-zero-uint16.mts +32 -0
  394. package/src/number/operators/non-zero-uint32.mts +32 -0
  395. package/src/number/operators/positive-finite-number.mts +32 -0
  396. package/src/number/operators/positive-int.mts +32 -0
  397. package/src/number/operators/positive-int16.mts +33 -0
  398. package/src/number/operators/positive-int32.mts +33 -0
  399. package/src/number/operators/positive-safe-int.mts +34 -0
  400. package/src/number/operators/positive-uint16.mts +33 -0
  401. package/src/number/operators/positive-uint32.mts +33 -0
  402. package/src/number/operators/safe-int.mts +35 -0
  403. package/src/number/operators/safe-uint.mts +33 -0
  404. package/src/number/operators/uint.mts +31 -0
  405. package/src/number/operators/uint16.mts +32 -0
  406. package/src/number/operators/uint32.mts +32 -0
  407. package/src/number/operators/uint8.mts +16 -0
  408. package/src/number/refined-number-utils.mts +4 -4
  409. package/src/object/object.mts +1 -1
  410. package/src/others/fast-deep-equal.mts +1 -1
  411. package/dist/number/num.d.mts +0 -550
  412. package/dist/number/num.d.mts.map +0 -1
  413. package/dist/number/num.mjs +0 -563
  414. package/dist/number/num.mjs.map +0 -1
  415. package/src/guard/is-error.test.mts +0 -145
  416. package/src/number/num.mts +0 -735
@@ -1,36 +1,24 @@
1
1
  import type { Uint as TtfImported_Uint } from 'ts-type-forge';
2
2
  import { expectType } from '../../expect-type.mjs';
3
- import { TsDataForgeInternals } from '../refined-number-utils.mjs';
4
-
5
- export type Uint = TtfImported_Uint;
6
-
7
- type ElementType = Uint;
8
-
9
- const typeNameInMessage = 'a non-negative integer';
10
-
11
- const {
3
+ import {
12
4
  MIN_VALUE,
13
5
  add,
14
- castType,
15
6
  div,
16
7
  fromNumber,
17
- is,
18
- max: max_,
19
- min: min_,
8
+ max as max_,
9
+ min as min_,
20
10
  mul,
21
11
  pow,
22
12
  random,
23
13
  sub,
24
- } = TsDataForgeInternals.RefinedNumberUtils.operatorsForInteger<
25
- ElementType,
26
- 0,
27
- number
28
- >({
29
- integerOrSafeInteger: 'Integer',
30
- MIN_VALUE: 0,
31
- MAX_VALUE: Number.MAX_VALUE,
32
- typeNameInMessage,
33
- } as const);
14
+ } from '../operators/uint.mjs';
15
+ import type { TsDataForgeInternals } from '../refined-number-utils.mjs';
16
+
17
+ export type Uint = TtfImported_Uint;
18
+
19
+ type ElementType = Uint;
20
+
21
+ const typeNameInMessage = 'a non-negative integer';
34
22
 
35
23
  /**
36
24
  * Type guard that checks if a value is a non-negative integer.
@@ -52,7 +40,8 @@ const {
52
40
  * @param value - The value to check
53
41
  * @returns `true` if the value is a non-negative integer, `false` otherwise
54
42
  */
55
- export const isUint = is;
43
+ export const isUint = (value: number): value is Uint =>
44
+ Number.isInteger(value) && value >= 0;
56
45
 
57
46
  /**
58
47
  * Casts a `number` to the `Uint` branded type.
@@ -74,7 +63,13 @@ export const isUint = is;
74
63
  * @returns The value as an `Uint`
75
64
  * @throws {TypeError} If the value is not a non-negative integer
76
65
  */
77
- export const asUint = castType;
66
+ export const asUint = <N extends number>(value: N): Uint & N => {
67
+ if (!isUint(value)) {
68
+ throw new TypeError(`Expected ${typeNameInMessage}, got: ${value}`);
69
+ }
70
+
71
+ return value;
72
+ };
78
73
 
79
74
  /**
80
75
  * Namespace providing type-safe operations for the `Uint` branded type.
@@ -104,7 +99,7 @@ export const Uint = {
104
99
  * @returns `true` if the value is a non-negative integer, `false` otherwise
105
100
  * @see {@link isUint} for usage examples
106
101
  */
107
- is,
102
+ is: isUint,
108
103
 
109
104
  /**
110
105
  * The smallest value representable as `Uint` (the lower saturation target of
@@ -1,37 +1,25 @@
1
1
  import type { Uint16 as TtfImported_Uint16 } from 'ts-type-forge';
2
2
  import { expectType } from '../../expect-type.mjs';
3
- import { TsDataForgeInternals } from '../refined-number-utils.mjs';
4
-
5
- export type Uint16 = TtfImported_Uint16;
6
-
7
- type ElementType = Uint16;
8
-
9
- const typeNameInMessage = 'a non-negative integer less than 2^16';
10
-
11
- const {
3
+ import {
12
4
  MAX_VALUE,
13
5
  MIN_VALUE,
14
6
  add,
15
- castType,
16
7
  div,
17
8
  fromNumber,
18
- is,
19
- max: max_,
20
- min: min_,
9
+ max as max_,
10
+ min as min_,
21
11
  mul,
22
12
  pow,
23
13
  random,
24
14
  sub,
25
- } = TsDataForgeInternals.RefinedNumberUtils.operatorsForInteger<
26
- ElementType,
27
- 0,
28
- number
29
- >({
30
- integerOrSafeInteger: 'SafeInteger',
31
- MIN_VALUE: 0,
32
- MAX_VALUE: 2 ** 16 - 1,
33
- typeNameInMessage,
34
- } as const);
15
+ } from '../operators/uint16.mjs';
16
+ import type { TsDataForgeInternals } from '../refined-number-utils.mjs';
17
+
18
+ export type Uint16 = TtfImported_Uint16;
19
+
20
+ type ElementType = Uint16;
21
+
22
+ const typeNameInMessage = 'a non-negative integer less than 2^16';
35
23
 
36
24
  /**
37
25
  * Type guard that checks if a value is a non-negative integer less than 2^16.
@@ -42,7 +30,8 @@ const {
42
30
  * @param value - The value to check
43
31
  * @returns `true` if the value is a non-negative integer less than 2^16, `false` otherwise
44
32
  */
45
- export const isUint16 = is;
33
+ export const isUint16 = (value: number): value is Uint16 =>
34
+ Number.isSafeInteger(value) && 0 <= value && value <= 2 ** 16 - 1;
46
35
 
47
36
  /**
48
37
  * Casts a `number` to the `Uint16` branded type.
@@ -54,7 +43,13 @@ export const isUint16 = is;
54
43
  * @returns The value as an `Uint16`
55
44
  * @throws {TypeError} If the value is not a non-negative integer less than 2^16
56
45
  */
57
- export const asUint16 = castType;
46
+ export const asUint16 = <N extends number>(value: N): Uint16 & N => {
47
+ if (!isUint16(value)) {
48
+ throw new TypeError(`Expected ${typeNameInMessage}, got: ${value}`);
49
+ }
50
+
51
+ return value;
52
+ };
58
53
 
59
54
  /**
60
55
  * Namespace providing type-safe operations for the `Uint16` branded type.
@@ -70,7 +65,7 @@ export const Uint16 = {
70
65
  * @returns `true` if the value is a non-negative integer less than 2^16, `false` otherwise
71
66
  * @see {@link isUint16} for usage examples
72
67
  */
73
- is,
68
+ is: isUint16,
74
69
 
75
70
  /**
76
71
  * The smallest value representable as `Uint16` (the lower saturation target
@@ -1,37 +1,25 @@
1
1
  import type { Uint32 as TtfImported_Uint32 } from 'ts-type-forge';
2
2
  import { expectType } from '../../expect-type.mjs';
3
- import { TsDataForgeInternals } from '../refined-number-utils.mjs';
4
-
5
- export type Uint32 = TtfImported_Uint32;
6
-
7
- type ElementType = Uint32;
8
-
9
- const typeNameInMessage = 'a non-negative integer less than 2^32';
10
-
11
- const {
3
+ import {
12
4
  MAX_VALUE,
13
5
  MIN_VALUE,
14
6
  add,
15
- castType,
16
7
  div,
17
8
  fromNumber,
18
- is,
19
- max: max_,
20
- min: min_,
9
+ max as max_,
10
+ min as min_,
21
11
  mul,
22
12
  pow,
23
13
  random,
24
14
  sub,
25
- } = TsDataForgeInternals.RefinedNumberUtils.operatorsForInteger<
26
- ElementType,
27
- 0,
28
- number
29
- >({
30
- integerOrSafeInteger: 'SafeInteger',
31
- MIN_VALUE: 0,
32
- MAX_VALUE: 2 ** 32 - 1,
33
- typeNameInMessage,
34
- } as const);
15
+ } from '../operators/uint32.mjs';
16
+ import type { TsDataForgeInternals } from '../refined-number-utils.mjs';
17
+
18
+ export type Uint32 = TtfImported_Uint32;
19
+
20
+ type ElementType = Uint32;
21
+
22
+ const typeNameInMessage = 'a non-negative integer less than 2^32';
35
23
 
36
24
  /**
37
25
  * Type guard that checks if a value is a non-negative integer less than 2^32.
@@ -42,7 +30,8 @@ const {
42
30
  * @param value - The value to check
43
31
  * @returns `true` if the value is a non-negative integer less than 2^32, `false` otherwise
44
32
  */
45
- export const isUint32 = is;
33
+ export const isUint32 = (value: number): value is Uint32 =>
34
+ Number.isSafeInteger(value) && 0 <= value && value <= 2 ** 32 - 1;
46
35
 
47
36
  /**
48
37
  * Casts a `number` to the `Uint32` branded type.
@@ -54,7 +43,13 @@ export const isUint32 = is;
54
43
  * @returns The value as an `Uint32`
55
44
  * @throws {TypeError} If the value is not a non-negative integer less than 2^32
56
45
  */
57
- export const asUint32 = castType;
46
+ export const asUint32 = <N extends number>(value: N): Uint32 & N => {
47
+ if (!isUint32(value)) {
48
+ throw new TypeError(`Expected ${typeNameInMessage}, got: ${value}`);
49
+ }
50
+
51
+ return value;
52
+ };
58
53
 
59
54
  /**
60
55
  * Namespace providing type-safe operations for the `Uint32` branded type.
@@ -70,7 +65,7 @@ export const Uint32 = {
70
65
  * @returns `true` if the value is a non-negative integer less than 2^32, `false` otherwise
71
66
  * @see {@link isUint32} for usage examples
72
67
  */
73
- is,
68
+ is: isUint32,
74
69
 
75
70
  /**
76
71
  * The smallest value representable as `Uint32` (the lower saturation target
@@ -5,47 +5,58 @@ import type {
5
5
  Int8 as TtfImported_Int8,
6
6
  } from 'ts-type-forge';
7
7
  import { expectType } from '../../expect-type.mjs';
8
- import { TsDataForgeInternals } from '../refined-number-utils.mjs';
8
+ import {
9
+ MAX_VALUE,
10
+ MIN_VALUE,
11
+ castType as castTypeImpl,
12
+ fromNumber as fromNumberImpl,
13
+ random as randomImpl,
14
+ } from '../operators/int8.mjs';
15
+ import type { TsDataForgeInternals } from '../refined-number-utils.mjs';
9
16
 
10
17
  export type Int8 = TtfImported_Int8;
11
18
 
12
19
  const typeNameInMessage = 'an integer in [-128, 127]';
13
20
 
14
- const {
15
- MAX_VALUE,
16
- MIN_VALUE,
17
- castType: castTypeImpl,
18
- fromNumber: fromNumberImpl,
19
- is: isImpl,
20
- random: randomImpl,
21
- } = TsDataForgeInternals.RefinedNumberUtils.operatorsForInteger<
22
- Int16,
23
- -128,
24
- 127
25
- >({
26
- integerOrSafeInteger: 'SafeInteger',
27
- MIN_VALUE: -128,
28
- MAX_VALUE: 127,
29
- typeNameInMessage,
30
- } as const);
21
+ /**
22
+ * Type guard that checks if a value is an integer in [-128, 127].
23
+ *
24
+ * Returns `true` for an integer in [-128, 127] — a value with no fractional
25
+ * component.
26
+ *
27
+ * @param value - The value to check
28
+ * @returns `true` if the value is an integer in [-128, 127], `false` otherwise
29
+ */
30
+ export const isInt8 = (value: number): value is Int8 =>
31
+ Number.isSafeInteger(value) && -128 <= value && value <= 127;
31
32
 
32
- const is = (x: number): x is Int8 => isImpl(x);
33
+ /**
34
+ * Casts a `number` to the `Int8` branded type.
35
+ *
36
+ * Validates that the value is an integer in [-128, 127] and returns it with the
37
+ * `Int8` brand. Throws a `TypeError` otherwise.
38
+ *
39
+ * @param value - The value to cast
40
+ * @returns The value as an `Int8`
41
+ * @throws {TypeError} If the value is not an integer in [-128, 127]
42
+ */
43
+ export const asInt8 = (value: number): Int8 => {
44
+ if (!isInt8(value)) {
45
+ throw new TypeError(`Expected ${typeNameInMessage}, got: ${value}`);
46
+ }
33
47
 
34
- const castType = (x: number): Int8 =>
35
- // eslint-disable-next-line total-functions/no-unsafe-type-assertion
36
- castTypeImpl(x) as Int8;
48
+ return value;
49
+ };
37
50
 
38
- const fromNumber = (a: number): Int8 => castType(fromNumberImpl(a));
51
+ const fromNumber = (a: number): Int8 => asInt8(fromNumberImpl(a));
39
52
 
40
53
  const abs = <N extends Int8>(x: N): AbsoluteValue<N> =>
41
54
  // eslint-disable-next-line total-functions/no-unsafe-type-assertion, @typescript-eslint/no-unnecessary-type-assertion -- unnecessary only under the strict standard library; the stock one types `Math.abs` as returning `number`
42
55
  Math.abs(x) as unknown as AbsoluteValue<N>;
43
56
 
44
- const min_ = (...values: readonly Int8[]): Int8 =>
45
- castType(Math.min(...values));
57
+ const min_ = (...values: readonly Int8[]): Int8 => asInt8(Math.min(...values));
46
58
 
47
- const max_ = (...values: readonly Int8[]): Int8 =>
48
- castType(Math.max(...values));
59
+ const max_ = (...values: readonly Int8[]): Int8 => asInt8(Math.max(...values));
49
60
 
50
61
  const pow = (x: Int8, y: Int8): Int8 => fromNumber(x ** y);
51
62
 
@@ -59,30 +70,7 @@ const div = (x: Int8, y: StrictExclude<Int8, 0>): Int8 =>
59
70
  fromNumber(Math.floor(x / y));
60
71
 
61
72
  const random = (min: Int8, max: Int8): Int8 =>
62
- castType(randomImpl(castTypeImpl(min), castTypeImpl(max)));
63
-
64
- /**
65
- * Type guard that checks if a value is an integer in [-128, 127].
66
- *
67
- * Returns `true` for an integer in [-128, 127] — a value with no fractional
68
- * component.
69
- *
70
- * @param value - The value to check
71
- * @returns `true` if the value is an integer in [-128, 127], `false` otherwise
72
- */
73
- export const isInt8 = is;
74
-
75
- /**
76
- * Casts a `number` to the `Int8` branded type.
77
- *
78
- * Validates that the value is an integer in [-128, 127] and returns it with the
79
- * `Int8` brand. Throws a `TypeError` otherwise.
80
- *
81
- * @param value - The value to cast
82
- * @returns The value as an `Int8`
83
- * @throws {TypeError} If the value is not an integer in [-128, 127]
84
- */
85
- export const asInt8 = castType;
73
+ asInt8(randomImpl(castTypeImpl(min), castTypeImpl(max)));
86
74
 
87
75
  /**
88
76
  * Namespace providing type-safe operations for the `Int8` branded type.
@@ -98,7 +86,7 @@ export const Int8 = {
98
86
  * @returns `true` if the value is an integer in [-128, 127], `false` otherwise
99
87
  * @see {@link isInt8} for usage examples
100
88
  */
101
- is,
89
+ is: isInt8,
102
90
 
103
91
  /**
104
92
  * The smallest value representable as `Int8` (the lower saturation target of
@@ -4,55 +4,18 @@ import type {
4
4
  Uint16,
5
5
  } from 'ts-type-forge';
6
6
  import { expectType } from '../../expect-type.mjs';
7
- import { TsDataForgeInternals } from '../refined-number-utils.mjs';
8
-
9
- export type Uint8 = TtfImported_Uint8;
10
-
11
- const typeNameInMessage = 'an non-negative integer less than 256';
12
-
13
- const {
7
+ import {
14
8
  MAX_VALUE,
15
9
  MIN_VALUE,
16
- castType: castTypeImpl,
17
- fromNumber: fromNumberImpl,
18
- is: isImpl,
19
- random: randomImpl,
20
- } = TsDataForgeInternals.RefinedNumberUtils.operatorsForInteger<Uint16, 0, 255>(
21
- {
22
- integerOrSafeInteger: 'SafeInteger',
23
- MIN_VALUE: 0,
24
- MAX_VALUE: 255,
25
- typeNameInMessage,
26
- } as const,
27
- );
28
-
29
- const is = (x: number): x is Uint8 => isImpl(x);
30
-
31
- const castType = (x: number): Uint8 =>
32
- // eslint-disable-next-line total-functions/no-unsafe-type-assertion
33
- castTypeImpl(x) as Uint8;
34
-
35
- const fromNumber = (a: number): Uint8 => castType(fromNumberImpl(a));
36
-
37
- const min_ = (...values: readonly Uint8[]): Uint8 =>
38
- castType(Math.min(...values));
39
-
40
- const max_ = (...values: readonly Uint8[]): Uint8 =>
41
- castType(Math.max(...values));
42
-
43
- const pow = (x: Uint8, y: Uint8): Uint8 => fromNumber(x ** y);
10
+ castType as castTypeImpl,
11
+ fromNumber as fromNumberImpl,
12
+ random as randomImpl,
13
+ } from '../operators/uint8.mjs';
14
+ import type { TsDataForgeInternals } from '../refined-number-utils.mjs';
44
15
 
45
- const add = (x: Uint8, y: Uint8): Uint8 => fromNumber(x + y);
46
-
47
- const sub = (x: Uint8, y: Uint8): Uint8 => fromNumber(x - y);
48
-
49
- const mul = (x: Uint8, y: Uint8): Uint8 => fromNumber(x * y);
50
-
51
- const div = (x: Uint8, y: StrictExclude<Uint8, 0>): Uint8 =>
52
- fromNumber(Math.floor(x / y));
16
+ export type Uint8 = TtfImported_Uint8;
53
17
 
54
- const random = (min: Uint8, max: Uint8): Uint8 =>
55
- castType(randomImpl(castTypeImpl(min), castTypeImpl(max)));
18
+ const typeNameInMessage = 'an non-negative integer less than 256';
56
19
 
57
20
  /**
58
21
  * Type guard that checks if a value is an non-negative integer less than 256.
@@ -63,7 +26,8 @@ const random = (min: Uint8, max: Uint8): Uint8 =>
63
26
  * @param value - The value to check
64
27
  * @returns `true` if the value is an non-negative integer less than 256, `false` otherwise
65
28
  */
66
- export const isUint8 = is;
29
+ export const isUint8 = (value: number): value is Uint8 =>
30
+ Number.isSafeInteger(value) && 0 <= value && value <= 255;
67
31
 
68
32
  /**
69
33
  * Casts a `number` to the `Uint8` branded type.
@@ -75,7 +39,35 @@ export const isUint8 = is;
75
39
  * @returns The value as an `Uint8`
76
40
  * @throws {TypeError} If the value is not an non-negative integer less than 256
77
41
  */
78
- export const asUint8 = castType;
42
+ export const asUint8 = (value: number): Uint8 => {
43
+ if (!isUint8(value)) {
44
+ throw new TypeError(`Expected ${typeNameInMessage}, got: ${value}`);
45
+ }
46
+
47
+ return value;
48
+ };
49
+
50
+ const fromNumber = (a: number): Uint8 => asUint8(fromNumberImpl(a));
51
+
52
+ const min_ = (...values: readonly Uint8[]): Uint8 =>
53
+ asUint8(Math.min(...values));
54
+
55
+ const max_ = (...values: readonly Uint8[]): Uint8 =>
56
+ asUint8(Math.max(...values));
57
+
58
+ const pow = (x: Uint8, y: Uint8): Uint8 => fromNumber(x ** y);
59
+
60
+ const add = (x: Uint8, y: Uint8): Uint8 => fromNumber(x + y);
61
+
62
+ const sub = (x: Uint8, y: Uint8): Uint8 => fromNumber(x - y);
63
+
64
+ const mul = (x: Uint8, y: Uint8): Uint8 => fromNumber(x * y);
65
+
66
+ const div = (x: Uint8, y: StrictExclude<Uint8, 0>): Uint8 =>
67
+ fromNumber(Math.floor(x / y));
68
+
69
+ const random = (min: Uint8, max: Uint8): Uint8 =>
70
+ asUint8(randomImpl(castTypeImpl(min), castTypeImpl(max)));
79
71
 
80
72
  /**
81
73
  * Namespace providing type-safe operations for the `Uint8` branded type.
@@ -91,7 +83,7 @@ export const Uint8 = {
91
83
  * @returns `true` if the value is an non-negative integer less than 256, `false` otherwise
92
84
  * @see {@link isUint8} for usage examples
93
85
  */
94
- is,
86
+ is: isUint8,
95
87
 
96
88
  /**
97
89
  * The smallest value representable as `Uint8` (the lower saturation target of
@@ -1,5 +1,5 @@
1
1
  export * from './branded-types/index.mjs';
2
2
  export * from './enum/index.mjs';
3
3
  export * from './num-arithmetic-types.mjs';
4
- export * from './num.mjs';
4
+ export * from './num/index.mjs';
5
5
  export * from './refined-number-utils.mjs';
@@ -0,0 +1 @@
1
+ export * from './num.mjs';