ts-data-forge 14.6.0 → 14.6.2

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 (409) hide show
  1. package/dist/array/impl/array-utils-creation.mjs +126 -26
  2. package/dist/array/impl/array-utils-creation.mjs.map +1 -1
  3. package/dist/array/impl/array-utils-element-access.mjs +63 -30
  4. package/dist/array/impl/array-utils-element-access.mjs.map +1 -1
  5. package/dist/array/impl/array-utils-iterators.mjs +69 -53
  6. package/dist/array/impl/array-utils-iterators.mjs.map +1 -1
  7. package/dist/array/impl/array-utils-length-bounded-array-cast.mjs +109 -73
  8. package/dist/array/impl/array-utils-length-bounded-array-cast.mjs.map +1 -1
  9. package/dist/array/impl/array-utils-length-bounded-array-guard.mjs +71 -33
  10. package/dist/array/impl/array-utils-length-bounded-array-guard.mjs.map +1 -1
  11. package/dist/array/impl/array-utils-length-bounded-tuple-cast.mjs +102 -73
  12. package/dist/array/impl/array-utils-length-bounded-tuple-cast.mjs.map +1 -1
  13. package/dist/array/impl/array-utils-length-bounded-tuple-guard.mjs +77 -33
  14. package/dist/array/impl/array-utils-length-bounded-tuple-guard.mjs.map +1 -1
  15. package/dist/array/impl/array-utils-modification.mjs +75 -122
  16. package/dist/array/impl/array-utils-modification.mjs.map +1 -1
  17. package/dist/array/impl/array-utils-reducing-value.mjs +100 -150
  18. package/dist/array/impl/array-utils-reducing-value.mjs.map +1 -1
  19. package/dist/array/impl/array-utils-search.mjs +110 -134
  20. package/dist/array/impl/array-utils-search.mjs.map +1 -1
  21. package/dist/array/impl/array-utils-set-op.mjs +146 -38
  22. package/dist/array/impl/array-utils-set-op.mjs.map +1 -1
  23. package/dist/array/impl/array-utils-size.mjs +10 -8
  24. package/dist/array/impl/array-utils-size.mjs.map +1 -1
  25. package/dist/array/impl/array-utils-slice-clamped.mjs +13 -50
  26. package/dist/array/impl/array-utils-slice-clamped.mjs.map +1 -1
  27. package/dist/array/impl/array-utils-slicing.mjs +94 -78
  28. package/dist/array/impl/array-utils-slicing.mjs.map +1 -1
  29. package/dist/array/impl/array-utils-transformation.mjs +291 -199
  30. package/dist/array/impl/array-utils-transformation.mjs.map +1 -1
  31. package/dist/array/impl/array-utils-validation.mjs +54 -56
  32. package/dist/array/impl/array-utils-validation.mjs.map +1 -1
  33. package/dist/array/impl/index.mjs +17 -17
  34. package/dist/array/impl/index.mjs.map +1 -1
  35. package/dist/array/index.mjs +2 -3
  36. package/dist/array/index.mjs.map +1 -1
  37. package/dist/collections/imap-mapped.mjs +335 -291
  38. package/dist/collections/imap-mapped.mjs.map +1 -1
  39. package/dist/collections/imap.mjs +280 -239
  40. package/dist/collections/imap.mjs.map +1 -1
  41. package/dist/collections/index.mjs +7 -7
  42. package/dist/collections/index.mjs.map +1 -1
  43. package/dist/collections/iset-mapped.d.mts.map +1 -1
  44. package/dist/collections/iset-mapped.mjs +448 -263
  45. package/dist/collections/iset-mapped.mjs.map +1 -1
  46. package/dist/collections/iset.mjs +328 -201
  47. package/dist/collections/iset.mjs.map +1 -1
  48. package/dist/collections/queue.mjs +183 -151
  49. package/dist/collections/queue.mjs.map +1 -1
  50. package/dist/collections/stack.mjs +169 -140
  51. package/dist/collections/stack.mjs.map +1 -1
  52. package/dist/entry-point.mjs +4 -77
  53. package/dist/entry-point.mjs.map +1 -1
  54. package/dist/expect-type.mjs +70 -4
  55. package/dist/expect-type.mjs.map +1 -1
  56. package/dist/functional/async-result/async-result.mjs +2 -3
  57. package/dist/functional/async-result/async-result.mjs.map +1 -1
  58. package/dist/functional/async-result/impl/async-result-flat-map.mjs +19 -21
  59. package/dist/functional/async-result/impl/async-result-flat-map.mjs.map +1 -1
  60. package/dist/functional/async-result/impl/async-result-from-promise.mjs +9 -10
  61. package/dist/functional/async-result/impl/async-result-from-promise.mjs.map +1 -1
  62. package/dist/functional/async-result/impl/async-result-from-throwable.mjs +12 -14
  63. package/dist/functional/async-result/impl/async-result-from-throwable.mjs.map +1 -1
  64. package/dist/functional/async-result/impl/async-result-map-err.mjs +16 -19
  65. package/dist/functional/async-result/impl/async-result-map-err.mjs.map +1 -1
  66. package/dist/functional/async-result/impl/async-result-map.mjs +16 -19
  67. package/dist/functional/async-result/impl/async-result-map.mjs.map +1 -1
  68. package/dist/functional/async-result/impl/async-result-unwrap-or.mjs +36 -9
  69. package/dist/functional/async-result/impl/async-result-unwrap-or.mjs.map +1 -1
  70. package/dist/functional/async-result/impl/index.mjs +8 -7
  71. package/dist/functional/async-result/impl/index.mjs.map +1 -1
  72. package/dist/functional/async-result/impl/types.mjs +2 -2
  73. package/dist/functional/async-result/impl/types.mjs.map +1 -1
  74. package/dist/functional/async-result/index.mjs +2 -3
  75. package/dist/functional/async-result/index.mjs.map +1 -1
  76. package/dist/functional/index.mjs +7 -11
  77. package/dist/functional/index.mjs.map +1 -1
  78. package/dist/functional/match.mjs +27 -13
  79. package/dist/functional/match.mjs.map +1 -1
  80. package/dist/functional/optional/impl/index.mjs +19 -18
  81. package/dist/functional/optional/impl/index.mjs.map +1 -1
  82. package/dist/functional/optional/impl/optional-expect-to-be.mjs +16 -18
  83. package/dist/functional/optional/impl/optional-expect-to-be.mjs.map +1 -1
  84. package/dist/functional/optional/impl/optional-filter.mjs +17 -19
  85. package/dist/functional/optional/impl/optional-filter.mjs.map +1 -1
  86. package/dist/functional/optional/impl/optional-flat-map.mjs +13 -15
  87. package/dist/functional/optional/impl/optional-flat-map.mjs.map +1 -1
  88. package/dist/functional/optional/impl/optional-from-nullable.mjs +26 -5
  89. package/dist/functional/optional/impl/optional-from-nullable.mjs.map +1 -1
  90. package/dist/functional/optional/impl/optional-is-none.mjs +21 -5
  91. package/dist/functional/optional/impl/optional-is-none.mjs.map +1 -1
  92. package/dist/functional/optional/impl/optional-is-optional.mjs +26 -8
  93. package/dist/functional/optional/impl/optional-is-optional.mjs.map +1 -1
  94. package/dist/functional/optional/impl/optional-is-some.mjs +22 -5
  95. package/dist/functional/optional/impl/optional-is-some.mjs.map +1 -1
  96. package/dist/functional/optional/impl/optional-map.mjs +16 -18
  97. package/dist/functional/optional/impl/optional-map.mjs.map +1 -1
  98. package/dist/functional/optional/impl/optional-match.mjs +16 -18
  99. package/dist/functional/optional/impl/optional-match.mjs.map +1 -1
  100. package/dist/functional/optional/impl/optional-none.mjs +18 -5
  101. package/dist/functional/optional/impl/optional-none.mjs.map +1 -1
  102. package/dist/functional/optional/impl/optional-or-else.mjs +13 -15
  103. package/dist/functional/optional/impl/optional-or-else.mjs.map +1 -1
  104. package/dist/functional/optional/impl/optional-some.mjs +23 -7
  105. package/dist/functional/optional/impl/optional-some.mjs.map +1 -1
  106. package/dist/functional/optional/impl/optional-to-nullable.mjs +28 -5
  107. package/dist/functional/optional/impl/optional-to-nullable.mjs.map +1 -1
  108. package/dist/functional/optional/impl/optional-unwrap-or.mjs +12 -14
  109. package/dist/functional/optional/impl/optional-unwrap-or.mjs.map +1 -1
  110. package/dist/functional/optional/impl/optional-unwrap-throw.mjs +34 -9
  111. package/dist/functional/optional/impl/optional-unwrap-throw.mjs.map +1 -1
  112. package/dist/functional/optional/impl/optional-unwrap.mjs +6 -9
  113. package/dist/functional/optional/impl/optional-unwrap.mjs.map +1 -1
  114. package/dist/functional/optional/impl/optional-zip.mjs +36 -5
  115. package/dist/functional/optional/impl/optional-zip.mjs.map +1 -1
  116. package/dist/functional/optional/impl/tag.mjs +4 -5
  117. package/dist/functional/optional/impl/tag.mjs.map +1 -1
  118. package/dist/functional/optional/impl/types.mjs +2 -2
  119. package/dist/functional/optional/impl/types.mjs.map +1 -1
  120. package/dist/functional/optional/index.mjs +2 -3
  121. package/dist/functional/optional/index.mjs.map +1 -1
  122. package/dist/functional/optional/optional.mjs +2 -3
  123. package/dist/functional/optional/optional.mjs.map +1 -1
  124. package/dist/functional/pipe.mjs +42 -14
  125. package/dist/functional/pipe.mjs.map +1 -1
  126. package/dist/functional/result/impl/index.mjs +28 -27
  127. package/dist/functional/result/impl/index.mjs.map +1 -1
  128. package/dist/functional/result/impl/result-err.mjs +29 -7
  129. package/dist/functional/result/impl/result-err.mjs.map +1 -1
  130. package/dist/functional/result/impl/result-expect-to-be.mjs +17 -18
  131. package/dist/functional/result/impl/result-expect-to-be.mjs.map +1 -1
  132. package/dist/functional/result/impl/result-flat-map.mjs +18 -21
  133. package/dist/functional/result/impl/result-flat-map.mjs.map +1 -1
  134. package/dist/functional/result/impl/result-fold.mjs +18 -21
  135. package/dist/functional/result/impl/result-fold.mjs.map +1 -1
  136. package/dist/functional/result/impl/result-from-optional.mjs +17 -20
  137. package/dist/functional/result/impl/result-from-optional.mjs.map +1 -1
  138. package/dist/functional/result/impl/result-from-promise.mjs +37 -8
  139. package/dist/functional/result/impl/result-from-promise.mjs.map +1 -1
  140. package/dist/functional/result/impl/result-from-throwable.mjs +41 -14
  141. package/dist/functional/result/impl/result-from-throwable.mjs.map +1 -1
  142. package/dist/functional/result/impl/result-is-err.mjs +21 -5
  143. package/dist/functional/result/impl/result-is-err.mjs.map +1 -1
  144. package/dist/functional/result/impl/result-is-ok.mjs +21 -5
  145. package/dist/functional/result/impl/result-is-ok.mjs.map +1 -1
  146. package/dist/functional/result/impl/result-is-result.mjs +25 -7
  147. package/dist/functional/result/impl/result-is-result.mjs.map +1 -1
  148. package/dist/functional/result/impl/result-map-err.mjs +18 -21
  149. package/dist/functional/result/impl/result-map-err.mjs.map +1 -1
  150. package/dist/functional/result/impl/result-map.mjs +18 -21
  151. package/dist/functional/result/impl/result-map.mjs.map +1 -1
  152. package/dist/functional/result/impl/result-match.mjs +17 -21
  153. package/dist/functional/result/impl/result-match.mjs.map +1 -1
  154. package/dist/functional/result/impl/result-ok.mjs +29 -7
  155. package/dist/functional/result/impl/result-ok.mjs.map +1 -1
  156. package/dist/functional/result/impl/result-or-else.mjs +14 -15
  157. package/dist/functional/result/impl/result-or-else.mjs.map +1 -1
  158. package/dist/functional/result/impl/result-safe-try.mjs +32 -21
  159. package/dist/functional/result/impl/result-safe-try.mjs.map +1 -1
  160. package/dist/functional/result/impl/result-safe-unwrap.mjs +40 -12
  161. package/dist/functional/result/impl/result-safe-unwrap.mjs.map +1 -1
  162. package/dist/functional/result/impl/result-swap.mjs +23 -8
  163. package/dist/functional/result/impl/result-swap.mjs.map +1 -1
  164. package/dist/functional/result/impl/result-to-optional.mjs +30 -7
  165. package/dist/functional/result/impl/result-to-optional.mjs.map +1 -1
  166. package/dist/functional/result/impl/result-unwrap-err-or.mjs +13 -14
  167. package/dist/functional/result/impl/result-unwrap-err-or.mjs.map +1 -1
  168. package/dist/functional/result/impl/result-unwrap-err-throw.mjs +43 -20
  169. package/dist/functional/result/impl/result-unwrap-err-throw.mjs.map +1 -1
  170. package/dist/functional/result/impl/result-unwrap-err.mjs +33 -8
  171. package/dist/functional/result/impl/result-unwrap-err.mjs.map +1 -1
  172. package/dist/functional/result/impl/result-unwrap-ok-or.mjs +13 -14
  173. package/dist/functional/result/impl/result-unwrap-ok-or.mjs.map +1 -1
  174. package/dist/functional/result/impl/result-unwrap-ok.mjs +6 -9
  175. package/dist/functional/result/impl/result-unwrap-ok.mjs.map +1 -1
  176. package/dist/functional/result/impl/result-unwrap-throw.mjs +38 -11
  177. package/dist/functional/result/impl/result-unwrap-throw.mjs.map +1 -1
  178. package/dist/functional/result/impl/result-zip.mjs +35 -5
  179. package/dist/functional/result/impl/result-zip.mjs.map +1 -1
  180. package/dist/functional/result/impl/tag.mjs +4 -5
  181. package/dist/functional/result/impl/tag.mjs.map +1 -1
  182. package/dist/functional/result/impl/types.mjs +2 -2
  183. package/dist/functional/result/impl/types.mjs.map +1 -1
  184. package/dist/functional/result/index.mjs +2 -3
  185. package/dist/functional/result/index.mjs.map +1 -1
  186. package/dist/functional/result/result.mjs +2 -3
  187. package/dist/functional/result/result.mjs.map +1 -1
  188. package/dist/functional/ternary-result/impl/index.mjs +29 -28
  189. package/dist/functional/ternary-result/impl/index.mjs.map +1 -1
  190. package/dist/functional/ternary-result/impl/tag.mjs +6 -6
  191. package/dist/functional/ternary-result/impl/tag.mjs.map +1 -1
  192. package/dist/functional/ternary-result/impl/ternary-result-err.mjs +17 -7
  193. package/dist/functional/ternary-result/impl/ternary-result-err.mjs.map +1 -1
  194. package/dist/functional/ternary-result/impl/ternary-result-expect-to-be.mjs +15 -18
  195. package/dist/functional/ternary-result/impl/ternary-result-expect-to-be.mjs.map +1 -1
  196. package/dist/functional/ternary-result/impl/ternary-result-flat-map.mjs +28 -32
  197. package/dist/functional/ternary-result/impl/ternary-result-flat-map.mjs.map +1 -1
  198. package/dist/functional/ternary-result/impl/ternary-result-fold.mjs +24 -26
  199. package/dist/functional/ternary-result/impl/ternary-result-fold.mjs.map +1 -1
  200. package/dist/functional/ternary-result/impl/ternary-result-from-promise.mjs +21 -8
  201. package/dist/functional/ternary-result/impl/ternary-result-from-promise.mjs.map +1 -1
  202. package/dist/functional/ternary-result/impl/ternary-result-from-throwable.mjs +28 -13
  203. package/dist/functional/ternary-result/impl/ternary-result-from-throwable.mjs.map +1 -1
  204. package/dist/functional/ternary-result/impl/ternary-result-is-err.mjs +19 -5
  205. package/dist/functional/ternary-result/impl/ternary-result-is-err.mjs.map +1 -1
  206. package/dist/functional/ternary-result/impl/ternary-result-is-ok.mjs +21 -5
  207. package/dist/functional/ternary-result/impl/ternary-result-is-ok.mjs.map +1 -1
  208. package/dist/functional/ternary-result/impl/ternary-result-is-ternary-result.mjs +28 -8
  209. package/dist/functional/ternary-result/impl/ternary-result-is-ternary-result.mjs.map +1 -1
  210. package/dist/functional/ternary-result/impl/ternary-result-is-warn.mjs +20 -5
  211. package/dist/functional/ternary-result/impl/ternary-result-is-warn.mjs.map +1 -1
  212. package/dist/functional/ternary-result/impl/ternary-result-map-err.mjs +17 -18
  213. package/dist/functional/ternary-result/impl/ternary-result-map-err.mjs.map +1 -1
  214. package/dist/functional/ternary-result/impl/ternary-result-map-warn.mjs +20 -23
  215. package/dist/functional/ternary-result/impl/ternary-result-map-warn.mjs.map +1 -1
  216. package/dist/functional/ternary-result/impl/ternary-result-map.mjs +24 -26
  217. package/dist/functional/ternary-result/impl/ternary-result-map.mjs.map +1 -1
  218. package/dist/functional/ternary-result/impl/ternary-result-ok.mjs +18 -7
  219. package/dist/functional/ternary-result/impl/ternary-result-ok.mjs.map +1 -1
  220. package/dist/functional/ternary-result/impl/ternary-result-or-else.mjs +11 -14
  221. package/dist/functional/ternary-result/impl/ternary-result-or-else.mjs.map +1 -1
  222. package/dist/functional/ternary-result/impl/ternary-result-to-optional.mjs +24 -10
  223. package/dist/functional/ternary-result/impl/ternary-result-to-optional.mjs.map +1 -1
  224. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-or.mjs +11 -14
  225. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-or.mjs.map +1 -1
  226. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-throw.mjs +30 -19
  227. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-throw.mjs.map +1 -1
  228. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err.mjs +20 -8
  229. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err.mjs.map +1 -1
  230. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok-or.mjs +11 -14
  231. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok-or.mjs.map +1 -1
  232. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok.mjs +7 -9
  233. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok.mjs.map +1 -1
  234. package/dist/functional/ternary-result/impl/ternary-result-unwrap-throw.mjs +30 -22
  235. package/dist/functional/ternary-result/impl/ternary-result-unwrap-throw.mjs.map +1 -1
  236. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-or.mjs +11 -14
  237. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-or.mjs.map +1 -1
  238. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-throw.mjs +27 -17
  239. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-throw.mjs.map +1 -1
  240. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn.mjs +20 -8
  241. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn.mjs.map +1 -1
  242. package/dist/functional/ternary-result/impl/ternary-result-warn.mjs +21 -8
  243. package/dist/functional/ternary-result/impl/ternary-result-warn.mjs.map +1 -1
  244. package/dist/functional/ternary-result/impl/ternary-result-zip.mjs +47 -19
  245. package/dist/functional/ternary-result/impl/ternary-result-zip.mjs.map +1 -1
  246. package/dist/functional/ternary-result/impl/types.mjs +2 -2
  247. package/dist/functional/ternary-result/impl/types.mjs.map +1 -1
  248. package/dist/functional/ternary-result/impl/variant-name.mjs +12 -14
  249. package/dist/functional/ternary-result/impl/variant-name.mjs.map +1 -1
  250. package/dist/functional/ternary-result/index.mjs +2 -3
  251. package/dist/functional/ternary-result/index.mjs.map +1 -1
  252. package/dist/functional/ternary-result/ternary-result.mjs +2 -3
  253. package/dist/functional/ternary-result/ternary-result.mjs.map +1 -1
  254. package/dist/guard/has-key.mjs +43 -4
  255. package/dist/guard/has-key.mjs.map +1 -1
  256. package/dist/guard/index.mjs +8 -8
  257. package/dist/guard/index.mjs.map +1 -1
  258. package/dist/guard/is-non-empty-string.mjs +39 -4
  259. package/dist/guard/is-non-empty-string.mjs.map +1 -1
  260. package/dist/guard/is-non-null-object.mjs +36 -4
  261. package/dist/guard/is-non-null-object.mjs.map +1 -1
  262. package/dist/guard/is-primitive.mjs +46 -15
  263. package/dist/guard/is-primitive.mjs.map +1 -1
  264. package/dist/guard/is-record.mjs +89 -6
  265. package/dist/guard/is-record.mjs.map +1 -1
  266. package/dist/guard/is-type.mjs +404 -19
  267. package/dist/guard/is-type.mjs.map +1 -1
  268. package/dist/guard/key-is-in.mjs +42 -4
  269. package/dist/guard/key-is-in.mjs.map +1 -1
  270. package/dist/index.mjs +12 -65
  271. package/dist/index.mjs.map +1 -1
  272. package/dist/iterator/index.mjs +2 -2
  273. package/dist/iterator/index.mjs.map +1 -1
  274. package/dist/iterator/range.mjs +19 -57
  275. package/dist/iterator/range.mjs.map +1 -1
  276. package/dist/json/index.mjs +2 -2
  277. package/dist/json/index.mjs.map +1 -1
  278. package/dist/json/json.mjs +346 -105
  279. package/dist/json/json.mjs.map +1 -1
  280. package/dist/number/branded-types/finite-number.mjs +148 -137
  281. package/dist/number/branded-types/finite-number.mjs.map +1 -1
  282. package/dist/number/branded-types/index.mjs +33 -33
  283. package/dist/number/branded-types/index.mjs.map +1 -1
  284. package/dist/number/branded-types/int.mjs +245 -209
  285. package/dist/number/branded-types/int.mjs.map +1 -1
  286. package/dist/number/branded-types/int16.mjs +141 -131
  287. package/dist/number/branded-types/int16.mjs.map +1 -1
  288. package/dist/number/branded-types/int32.mjs +141 -131
  289. package/dist/number/branded-types/int32.mjs.map +1 -1
  290. package/dist/number/branded-types/negative-finite-number.mjs +155 -149
  291. package/dist/number/branded-types/negative-finite-number.mjs.map +1 -1
  292. package/dist/number/branded-types/negative-int.mjs +125 -110
  293. package/dist/number/branded-types/negative-int.mjs.map +1 -1
  294. package/dist/number/branded-types/negative-safe-int.mjs +126 -115
  295. package/dist/number/branded-types/negative-safe-int.mjs.map +1 -1
  296. package/dist/number/branded-types/non-negative-finite-number.mjs +164 -154
  297. package/dist/number/branded-types/non-negative-finite-number.mjs.map +1 -1
  298. package/dist/number/branded-types/non-negative-int16.mjs +137 -125
  299. package/dist/number/branded-types/non-negative-int16.mjs.map +1 -1
  300. package/dist/number/branded-types/non-negative-int32.mjs +137 -125
  301. package/dist/number/branded-types/non-negative-int32.mjs.map +1 -1
  302. package/dist/number/branded-types/non-positive-finite-number.mjs +143 -139
  303. package/dist/number/branded-types/non-positive-finite-number.mjs.map +1 -1
  304. package/dist/number/branded-types/non-positive-int.mjs +116 -99
  305. package/dist/number/branded-types/non-positive-int.mjs.map +1 -1
  306. package/dist/number/branded-types/non-positive-safe-int.mjs +118 -107
  307. package/dist/number/branded-types/non-positive-safe-int.mjs.map +1 -1
  308. package/dist/number/branded-types/non-zero-finite-number.mjs +144 -129
  309. package/dist/number/branded-types/non-zero-finite-number.mjs.map +1 -1
  310. package/dist/number/branded-types/non-zero-int.mjs +102 -82
  311. package/dist/number/branded-types/non-zero-int.mjs.map +1 -1
  312. package/dist/number/branded-types/non-zero-int16.mjs +118 -105
  313. package/dist/number/branded-types/non-zero-int16.mjs.map +1 -1
  314. package/dist/number/branded-types/non-zero-int32.mjs +118 -105
  315. package/dist/number/branded-types/non-zero-int32.mjs.map +1 -1
  316. package/dist/number/branded-types/non-zero-safe-int.mjs +122 -108
  317. package/dist/number/branded-types/non-zero-safe-int.mjs.map +1 -1
  318. package/dist/number/branded-types/non-zero-uint16.mjs +118 -104
  319. package/dist/number/branded-types/non-zero-uint16.mjs.map +1 -1
  320. package/dist/number/branded-types/non-zero-uint32.mjs +118 -104
  321. package/dist/number/branded-types/non-zero-uint32.mjs.map +1 -1
  322. package/dist/number/branded-types/positive-finite-number.mjs +167 -160
  323. package/dist/number/branded-types/positive-finite-number.mjs.map +1 -1
  324. package/dist/number/branded-types/positive-int.mjs +260 -224
  325. package/dist/number/branded-types/positive-int.mjs.map +1 -1
  326. package/dist/number/branded-types/positive-int16.mjs +134 -122
  327. package/dist/number/branded-types/positive-int16.mjs.map +1 -1
  328. package/dist/number/branded-types/positive-int32.mjs +134 -122
  329. package/dist/number/branded-types/positive-int32.mjs.map +1 -1
  330. package/dist/number/branded-types/positive-safe-int.mjs +292 -258
  331. package/dist/number/branded-types/positive-safe-int.mjs.map +1 -1
  332. package/dist/number/branded-types/positive-uint16.mjs +134 -122
  333. package/dist/number/branded-types/positive-uint16.mjs.map +1 -1
  334. package/dist/number/branded-types/positive-uint32.mjs +134 -122
  335. package/dist/number/branded-types/positive-uint32.mjs.map +1 -1
  336. package/dist/number/branded-types/safe-int.mjs +284 -255
  337. package/dist/number/branded-types/safe-int.mjs.map +1 -1
  338. package/dist/number/branded-types/safe-uint.mjs +135 -124
  339. package/dist/number/branded-types/safe-uint.mjs.map +1 -1
  340. package/dist/number/branded-types/uint.mjs +248 -211
  341. package/dist/number/branded-types/uint.mjs.map +1 -1
  342. package/dist/number/branded-types/uint16.mjs +132 -121
  343. package/dist/number/branded-types/uint16.mjs.map +1 -1
  344. package/dist/number/branded-types/uint32.mjs +132 -121
  345. package/dist/number/branded-types/uint32.mjs.map +1 -1
  346. package/dist/number/enum/index.mjs +3 -3
  347. package/dist/number/enum/index.mjs.map +1 -1
  348. package/dist/number/enum/int8.mjs +146 -131
  349. package/dist/number/enum/int8.mjs.map +1 -1
  350. package/dist/number/enum/uint8.mjs +133 -119
  351. package/dist/number/enum/uint8.mjs.map +1 -1
  352. package/dist/number/index.mjs +6 -37
  353. package/dist/number/index.mjs.map +1 -1
  354. package/dist/number/num-arithmetic-types.mjs +42 -1
  355. package/dist/number/num-arithmetic-types.mjs.map +1 -1
  356. package/dist/number/num.mjs +541 -83
  357. package/dist/number/num.mjs.map +1 -1
  358. package/dist/number/refined-number-utils.mjs +294 -133
  359. package/dist/number/refined-number-utils.mjs.map +1 -1
  360. package/dist/object/index.mjs +2 -2
  361. package/dist/object/index.mjs.map +1 -1
  362. package/dist/object/object.mjs +355 -202
  363. package/dist/object/object.mjs.map +1 -1
  364. package/dist/others/cast-mutable.mjs +38 -11
  365. package/dist/others/cast-mutable.mjs.map +1 -1
  366. package/dist/others/cast-readonly.mjs +37 -11
  367. package/dist/others/cast-readonly.mjs.map +1 -1
  368. package/dist/others/debounce-function.mjs +22 -11
  369. package/dist/others/debounce-function.mjs.map +1 -1
  370. package/dist/others/fast-deep-equal.mjs +70 -51
  371. package/dist/others/fast-deep-equal.mjs.map +1 -1
  372. package/dist/others/if-then.mjs +32 -5
  373. package/dist/others/if-then.mjs.map +1 -1
  374. package/dist/others/index.mjs +10 -10
  375. package/dist/others/index.mjs.map +1 -1
  376. package/dist/others/map-nullable.mjs +11 -13
  377. package/dist/others/map-nullable.mjs.map +1 -1
  378. package/dist/others/memoize-function.mjs +14 -16
  379. package/dist/others/memoize-function.mjs.map +1 -1
  380. package/dist/others/tuple.mjs +52 -4
  381. package/dist/others/tuple.mjs.map +1 -1
  382. package/dist/others/unknown-to-string.mjs +91 -47
  383. package/dist/others/unknown-to-string.mjs.map +1 -1
  384. package/dist/promise/index.mjs +2 -2
  385. package/dist/promise/index.mjs.map +1 -1
  386. package/dist/promise/promise.mjs +51 -10
  387. package/dist/promise/promise.mjs.map +1 -1
  388. package/dist/string/index.mjs +2 -2
  389. package/dist/string/index.mjs.map +1 -1
  390. package/dist/string/str.mjs +250 -83
  391. package/dist/string/str.mjs.map +1 -1
  392. package/dist/types.mjs +3 -2
  393. package/dist/types.mjs.map +1 -1
  394. package/package.json +5 -6
  395. package/src/array/impl/array-utils-length-constraint-preservation.test.mts +2 -2
  396. package/src/collections/imap-mapped.mts +4 -4
  397. package/src/collections/imap.mts +1 -1
  398. package/src/collections/imap.test.mts +1 -1
  399. package/src/collections/iset-mapped.mts +2 -1
  400. package/src/collections/iset.mts +1 -1
  401. package/src/functional/async-result.test.mts +3 -2
  402. package/src/functional/optional.test.mts +2 -1
  403. package/src/functional/result.test.mts +0 -2
  404. package/src/guard/is-non-empty-string.test.mts +2 -2
  405. package/src/guard/is-non-null-object.test.mts +3 -3
  406. package/src/guard/is-primitive.test.mts +3 -3
  407. package/src/guard/is-type.test.mts +3 -3
  408. package/src/json/json.test.mts +1 -1
  409. package/src/number/enum/int8.mts +1 -1
@@ -1,215 +1,252 @@
1
- import { TsDataForgeInternals } from '../refined-number-utils.mjs';
2
1
 
3
- const typeNameInMessage = "a non-negative integer";
4
- const {
5
- MIN_VALUE,
6
- add,
7
- castType,
8
- div,
9
- fromNumber,
10
- is,
11
- max: max_,
12
- min: min_,
13
- mul,
14
- pow,
15
- random,
16
- sub
17
- } = TsDataForgeInternals.RefinedNumberUtils.operatorsForInteger({
18
- integerOrSafeInteger: "Integer",
19
- MIN_VALUE: 0,
20
- MAX_VALUE: Number.MAX_VALUE,
21
- typeNameInMessage
2
+ import { TsDataForgeInternals } from '../refined-number-utils.mjs';
3
+ const typeNameInMessage = 'a non-negative integer';
4
+ const { MIN_VALUE, add, castType, div, fromNumber, is, max: max_, min: min_, mul, pow, random, sub, } = TsDataForgeInternals.RefinedNumberUtils.operatorsForInteger({
5
+ integerOrSafeInteger: 'Integer',
6
+ MIN_VALUE: 0,
7
+ MAX_VALUE: Number.MAX_VALUE,
8
+ typeNameInMessage,
22
9
  });
23
- const isUint = is;
24
- const asUint = castType;
25
- const Uint = {
26
- /**
27
- * Type guard that checks if a value is a non-negative integer.
28
- *
29
- * @example
30
- *
31
- * ```ts
32
- * assert.isTrue(isUint(4));
33
- *
34
- * assert.isFalse(isUint(-1));
35
- *
36
- * assert.isTrue(Uint.is(0));
37
- * ```
38
- *
39
- * @param value - The value to check
40
- * @returns `true` if the value is a non-negative integer, `false` otherwise
41
- * @see {@link isUint} for usage examples
42
- */
43
- is,
44
- /**
45
- * The smallest value representable as `Uint` (the lower saturation target of
46
- * `fromNumber`).
47
- */
48
- MIN_VALUE,
49
- /**
50
- * Returns the smallest of the given non-negative integers.
51
- *
52
- * @example
53
- *
54
- * ```ts
55
- * const smallest = Uint.min(asUint(7), asUint(3));
56
- *
57
- * assert.isTrue(smallest === 3);
58
- * ```
59
- *
60
- * @param values - The non-negative integers to compare (at least one required)
61
- * @returns The smallest value as an `Uint`
62
- */
63
- min: min_,
64
- /**
65
- * Returns the largest of the given non-negative integers.
66
- *
67
- * @example
68
- *
69
- * ```ts
70
- * const largest = Uint.max(asUint(7), asUint(3));
71
- *
72
- * assert.isTrue(largest === 7);
73
- * ```
74
- *
75
- * @param values - The non-negative integers to compare (at least one required)
76
- * @returns The largest value as an `Uint`
77
- */
78
- max: max_,
79
- /**
80
- * Converts an arbitrary `number` into an `Uint`, rounding to the nearest
81
- * integer and saturating the result into the range `[MIN_VALUE, MAX_VALUE]`.
82
- *
83
- * Unlike `asUint`, this is total: out-of-range inputs are clamped to the
84
- * nearest representable `Uint` instead of throwing.
85
- *
86
- * @example
87
- *
88
- * ```ts
89
- * const fromNegative = Uint.fromNumber(-5);
90
- *
91
- * const fromPositive = Uint.fromNumber(42);
92
- *
93
- * assert.isTrue(fromNegative === 0);
94
- *
95
- * assert.isTrue(fromPositive === 42);
96
- * ```
97
- *
98
- * @param value - The value to convert
99
- * @returns The value as an `Uint`
100
- */
101
- fromNumber,
102
- /**
103
- * Generates a random `Uint` within the given range.
104
- *
105
- * The range is inclusive on both ends.
106
- *
107
- * @example
108
- *
109
- * ```ts
110
- * const min = asUint(0);
111
- *
112
- * const max = asUint(3);
113
- *
114
- * const randomValue = Uint.random(min, max);
115
- *
116
- * assert.isTrue(Uint.is(randomValue));
117
- *
118
- * assert.isTrue(randomValue >= 0 && randomValue <= 3);
119
- * ```
120
- *
121
- * @param min - The minimum value (inclusive)
122
- * @param max - The maximum value (inclusive)
123
- * @returns A random `Uint` in `[min, max]`
124
- */
125
- random,
126
- /**
127
- * Raises `a` to the power `b`, returning `a ** b` as an `Uint` (floored to an
128
- * integer).
129
- *
130
- * @example
131
- *
132
- * ```ts
133
- * const base = asUint(2);
134
- *
135
- * const exponent = asUint(5);
136
- *
137
- * const power = Uint.pow(base, exponent);
138
- *
139
- * assert.isTrue(power === 32);
140
- * ```
141
- *
142
- * @param a - The base non-negative integer
143
- * @param b - The exponent non-negative integer
144
- * @returns `a ** b` as an `Uint`
145
- */
146
- pow,
147
- /**
148
- * Adds two non-negative integers, returning `a + b` as an `Uint`.
149
- *
150
- * @example
151
- *
152
- * ```ts
153
- * const sum = Uint.add(asUint(5), asUint(8));
154
- *
155
- * assert.isTrue(sum === 13);
156
- * ```
157
- *
158
- * @param a - The first non-negative integer
159
- * @param b - The second non-negative integer
160
- * @returns The sum of `a` and `b` as an `Uint`
161
- */
162
- add,
163
- /**
164
- * Subtracts two non-negative integers, returning `a - b` as an `Uint`.
165
- *
166
- * @example
167
- *
168
- * ```ts
169
- * const difference = Uint.sub(asUint(5), asUint(8));
170
- *
171
- * assert.isTrue(difference === 0);
172
- * ```
173
- *
174
- * @param a - The first non-negative integer
175
- * @param b - The second non-negative integer
176
- * @returns The difference of `a` and `b` as an `Uint`
177
- */
178
- sub,
179
- /**
180
- * Multiplies two non-negative integers, returning `a * b` as an `Uint`.
181
- *
182
- * @example
183
- *
184
- * ```ts
185
- * const product = Uint.mul(asUint(7), asUint(6));
186
- *
187
- * assert.isTrue(product === 42);
188
- * ```
189
- *
190
- * @param a - The first non-negative integer
191
- * @param b - The second non-negative integer
192
- * @returns The product of `a` and `b` as an `Uint`
193
- */
194
- mul,
195
- /**
196
- * Divides two non-negative integers using floor division (`⌊a / b⌋`): the
197
- * result is `a / b` rounded toward negative infinity, as an `Uint`.
198
- *
199
- * @example
200
- *
201
- * ```ts
202
- * const quotient = Uint.div(asUint(10), asUint(4));
203
- *
204
- * assert.isTrue(quotient === 2);
205
- * ```
206
- *
207
- * @param a - The dividend
208
- * @param b - The divisor (must be non-zero)
209
- * @returns The floored quotient as an `Uint`
210
- */
211
- div
10
+ /**
11
+ * Type guard that checks if a value is a non-negative integer.
12
+ *
13
+ * Returns `true` for a non-negative integer — a value with no fractional
14
+ * component, including values outside the safe integer range (unlike
15
+ * `SafeInt`).
16
+ *
17
+ * @example
18
+ *
19
+ * ```ts
20
+ * assert.isTrue(isUint(4));
21
+ *
22
+ * assert.isFalse(isUint(-1));
23
+ *
24
+ * assert.isTrue(Uint.is(0));
25
+ * ```
26
+ *
27
+ * @param value - The value to check
28
+ * @returns `true` if the value is a non-negative integer, `false` otherwise
29
+ */
30
+ export const isUint = is;
31
+ /**
32
+ * Casts a `number` to the `Uint` branded type.
33
+ *
34
+ * Validates that the value is a non-negative integer and returns it with the
35
+ * `Uint` brand. Throws a `TypeError` otherwise.
36
+ *
37
+ * @example
38
+ *
39
+ * ```ts
40
+ * const branded = asUint(12);
41
+ *
42
+ * assert.isTrue(branded === 12);
43
+ *
44
+ * assert.isTrue(Uint.is(branded));
45
+ * ```
46
+ *
47
+ * @param value - The value to cast
48
+ * @returns The value as an `Uint`
49
+ * @throws {TypeError} If the value is not a non-negative integer
50
+ */
51
+ export const asUint = castType;
52
+ /**
53
+ * Namespace providing type-safe operations for the `Uint` branded type.
54
+ *
55
+ * The `Uint` type represents a non-negative integer. Division (`div`) uses
56
+ * floor division.
57
+ *
58
+ * Unlike `SafeInt`, `Uint` allows values outside the safe integer range (±2^53
59
+ * − 1), so very large magnitudes may lose precision in JavaScript's `number`
60
+ * type.
61
+ */
62
+ export const Uint = {
63
+ /**
64
+ * Type guard that checks if a value is a non-negative integer.
65
+ *
66
+ * @example
67
+ *
68
+ * ```ts
69
+ * assert.isTrue(isUint(4));
70
+ *
71
+ * assert.isFalse(isUint(-1));
72
+ *
73
+ * assert.isTrue(Uint.is(0));
74
+ * ```
75
+ *
76
+ * @param value - The value to check
77
+ * @returns `true` if the value is a non-negative integer, `false` otherwise
78
+ * @see {@link isUint} for usage examples
79
+ */
80
+ is,
81
+ /**
82
+ * The smallest value representable as `Uint` (the lower saturation target of
83
+ * `fromNumber`).
84
+ */
85
+ MIN_VALUE,
86
+ /**
87
+ * Returns the smallest of the given non-negative integers.
88
+ *
89
+ * @example
90
+ *
91
+ * ```ts
92
+ * const smallest = Uint.min(asUint(7), asUint(3));
93
+ *
94
+ * assert.isTrue(smallest === 3);
95
+ * ```
96
+ *
97
+ * @param values - The non-negative integers to compare (at least one required)
98
+ * @returns The smallest value as an `Uint`
99
+ */
100
+ min: min_,
101
+ /**
102
+ * Returns the largest of the given non-negative integers.
103
+ *
104
+ * @example
105
+ *
106
+ * ```ts
107
+ * const largest = Uint.max(asUint(7), asUint(3));
108
+ *
109
+ * assert.isTrue(largest === 7);
110
+ * ```
111
+ *
112
+ * @param values - The non-negative integers to compare (at least one required)
113
+ * @returns The largest value as an `Uint`
114
+ */
115
+ max: max_,
116
+ /**
117
+ * Converts an arbitrary `number` into an `Uint`, rounding to the nearest
118
+ * integer and saturating the result into the range `[MIN_VALUE, MAX_VALUE]`.
119
+ *
120
+ * Unlike `asUint`, this is total: out-of-range inputs are clamped to the
121
+ * nearest representable `Uint` instead of throwing.
122
+ *
123
+ * @example
124
+ *
125
+ * ```ts
126
+ * const fromNegative = Uint.fromNumber(-5);
127
+ *
128
+ * const fromPositive = Uint.fromNumber(42);
129
+ *
130
+ * assert.isTrue(fromNegative === 0);
131
+ *
132
+ * assert.isTrue(fromPositive === 42);
133
+ * ```
134
+ *
135
+ * @param value - The value to convert
136
+ * @returns The value as an `Uint`
137
+ */
138
+ fromNumber,
139
+ /**
140
+ * Generates a random `Uint` within the given range.
141
+ *
142
+ * The range is inclusive on both ends.
143
+ *
144
+ * @example
145
+ *
146
+ * ```ts
147
+ * const min = asUint(0);
148
+ *
149
+ * const max = asUint(3);
150
+ *
151
+ * const randomValue = Uint.random(min, max);
152
+ *
153
+ * assert.isTrue(Uint.is(randomValue));
154
+ *
155
+ * assert.isTrue(randomValue >= 0 && randomValue <= 3);
156
+ * ```
157
+ *
158
+ * @param min - The minimum value (inclusive)
159
+ * @param max - The maximum value (inclusive)
160
+ * @returns A random `Uint` in `[min, max]`
161
+ */
162
+ random,
163
+ /**
164
+ * Raises `a` to the power `b`, returning `a ** b` as an `Uint` (floored to an
165
+ * integer).
166
+ *
167
+ * @example
168
+ *
169
+ * ```ts
170
+ * const base = asUint(2);
171
+ *
172
+ * const exponent = asUint(5);
173
+ *
174
+ * const power = Uint.pow(base, exponent);
175
+ *
176
+ * assert.isTrue(power === 32);
177
+ * ```
178
+ *
179
+ * @param a - The base non-negative integer
180
+ * @param b - The exponent non-negative integer
181
+ * @returns `a ** b` as an `Uint`
182
+ */
183
+ pow,
184
+ /**
185
+ * Adds two non-negative integers, returning `a + b` as an `Uint`.
186
+ *
187
+ * @example
188
+ *
189
+ * ```ts
190
+ * const sum = Uint.add(asUint(5), asUint(8));
191
+ *
192
+ * assert.isTrue(sum === 13);
193
+ * ```
194
+ *
195
+ * @param a - The first non-negative integer
196
+ * @param b - The second non-negative integer
197
+ * @returns The sum of `a` and `b` as an `Uint`
198
+ */
199
+ add,
200
+ /**
201
+ * Subtracts two non-negative integers, returning `a - b` as an `Uint`.
202
+ *
203
+ * @example
204
+ *
205
+ * ```ts
206
+ * const difference = Uint.sub(asUint(5), asUint(8));
207
+ *
208
+ * assert.isTrue(difference === 0);
209
+ * ```
210
+ *
211
+ * @param a - The first non-negative integer
212
+ * @param b - The second non-negative integer
213
+ * @returns The difference of `a` and `b` as an `Uint`
214
+ */
215
+ sub,
216
+ /**
217
+ * Multiplies two non-negative integers, returning `a * b` as an `Uint`.
218
+ *
219
+ * @example
220
+ *
221
+ * ```ts
222
+ * const product = Uint.mul(asUint(7), asUint(6));
223
+ *
224
+ * assert.isTrue(product === 42);
225
+ * ```
226
+ *
227
+ * @param a - The first non-negative integer
228
+ * @param b - The second non-negative integer
229
+ * @returns The product of `a` and `b` as an `Uint`
230
+ */
231
+ mul,
232
+ /**
233
+ * Divides two non-negative integers using floor division (`⌊a / b⌋`): the
234
+ * result is `a / b` rounded toward negative infinity, as an `Uint`.
235
+ *
236
+ * @example
237
+ *
238
+ * ```ts
239
+ * const quotient = Uint.div(asUint(10), asUint(4));
240
+ *
241
+ * assert.isTrue(quotient === 2);
242
+ * ```
243
+ *
244
+ * @param a - The dividend
245
+ * @param b - The divisor (must be non-zero)
246
+ * @returns The floored quotient as an `Uint`
247
+ */
248
+ div,
212
249
  };
213
250
 
214
- export { Uint, asUint, isUint };
215
- //# sourceMappingURL=uint.mjs.map
251
+
252
+ //# sourceMappingURL=uint.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"uint.mjs","sources":["../../../src/number/branded-types/uint.mts"],"sourcesContent":["import { type Uint as TtfImported_Uint } from 'ts-type-forge';\nimport { expectType } from '../../expect-type.mjs';\nimport { TsDataForgeInternals } from '../refined-number-utils.mjs';\n\nexport type Uint = TtfImported_Uint;\n\ntype ElementType = Uint;\n\nconst typeNameInMessage = 'a non-negative integer';\n\nconst {\n MIN_VALUE,\n add,\n castType,\n div,\n fromNumber,\n is,\n max: max_,\n min: min_,\n mul,\n pow,\n random,\n sub,\n} = TsDataForgeInternals.RefinedNumberUtils.operatorsForInteger<\n ElementType,\n 0,\n number\n>({\n integerOrSafeInteger: 'Integer',\n MIN_VALUE: 0,\n MAX_VALUE: Number.MAX_VALUE,\n typeNameInMessage,\n} as const);\n\n/**\n * Type guard that checks if a value is a non-negative integer.\n *\n * Returns `true` for a non-negative integer — a value with no fractional\n * component, including values outside the safe integer range (unlike\n * `SafeInt`).\n *\n * @example\n *\n * ```ts\n * assert.isTrue(isUint(4));\n *\n * assert.isFalse(isUint(-1));\n *\n * assert.isTrue(Uint.is(0));\n * ```\n *\n * @param value - The value to check\n * @returns `true` if the value is a non-negative integer, `false` otherwise\n */\nexport const isUint = is;\n\n/**\n * Casts a `number` to the `Uint` branded type.\n *\n * Validates that the value is a non-negative integer and returns it with the\n * `Uint` brand. Throws a `TypeError` otherwise.\n *\n * @example\n *\n * ```ts\n * const branded = asUint(12);\n *\n * assert.isTrue(branded === 12);\n *\n * assert.isTrue(Uint.is(branded));\n * ```\n *\n * @param value - The value to cast\n * @returns The value as an `Uint`\n * @throws {TypeError} If the value is not a non-negative integer\n */\nexport const asUint = castType;\n\n/**\n * Namespace providing type-safe operations for the `Uint` branded type.\n *\n * The `Uint` type represents a non-negative integer. Division (`div`) uses\n * floor division.\n *\n * Unlike `SafeInt`, `Uint` allows values outside the safe integer range (±2^53\n * − 1), so very large magnitudes may lose precision in JavaScript's `number`\n * type.\n */\nexport const Uint = {\n /**\n * Type guard that checks if a value is a non-negative integer.\n *\n * @example\n *\n * ```ts\n * assert.isTrue(isUint(4));\n *\n * assert.isFalse(isUint(-1));\n *\n * assert.isTrue(Uint.is(0));\n * ```\n *\n * @param value - The value to check\n * @returns `true` if the value is a non-negative integer, `false` otherwise\n * @see {@link isUint} for usage examples\n */\n is,\n\n /**\n * The smallest value representable as `Uint` (the lower saturation target of\n * `fromNumber`).\n */\n MIN_VALUE,\n\n /**\n * Returns the smallest of the given non-negative integers.\n *\n * @example\n *\n * ```ts\n * const smallest = Uint.min(asUint(7), asUint(3));\n *\n * assert.isTrue(smallest === 3);\n * ```\n *\n * @param values - The non-negative integers to compare (at least one required)\n * @returns The smallest value as an `Uint`\n */\n min: min_,\n\n /**\n * Returns the largest of the given non-negative integers.\n *\n * @example\n *\n * ```ts\n * const largest = Uint.max(asUint(7), asUint(3));\n *\n * assert.isTrue(largest === 7);\n * ```\n *\n * @param values - The non-negative integers to compare (at least one required)\n * @returns The largest value as an `Uint`\n */\n max: max_,\n\n /**\n * Converts an arbitrary `number` into an `Uint`, rounding to the nearest\n * integer and saturating the result into the range `[MIN_VALUE, MAX_VALUE]`.\n *\n * Unlike `asUint`, this is total: out-of-range inputs are clamped to the\n * nearest representable `Uint` instead of throwing.\n *\n * @example\n *\n * ```ts\n * const fromNegative = Uint.fromNumber(-5);\n *\n * const fromPositive = Uint.fromNumber(42);\n *\n * assert.isTrue(fromNegative === 0);\n *\n * assert.isTrue(fromPositive === 42);\n * ```\n *\n * @param value - The value to convert\n * @returns The value as an `Uint`\n */\n fromNumber,\n\n /**\n * Generates a random `Uint` within the given range.\n *\n * The range is inclusive on both ends.\n *\n * @example\n *\n * ```ts\n * const min = asUint(0);\n *\n * const max = asUint(3);\n *\n * const randomValue = Uint.random(min, max);\n *\n * assert.isTrue(Uint.is(randomValue));\n *\n * assert.isTrue(randomValue >= 0 && randomValue <= 3);\n * ```\n *\n * @param min - The minimum value (inclusive)\n * @param max - The maximum value (inclusive)\n * @returns A random `Uint` in `[min, max]`\n */\n random,\n\n /**\n * Raises `a` to the power `b`, returning `a ** b` as an `Uint` (floored to an\n * integer).\n *\n * @example\n *\n * ```ts\n * const base = asUint(2);\n *\n * const exponent = asUint(5);\n *\n * const power = Uint.pow(base, exponent);\n *\n * assert.isTrue(power === 32);\n * ```\n *\n * @param a - The base non-negative integer\n * @param b - The exponent non-negative integer\n * @returns `a ** b` as an `Uint`\n */\n pow,\n\n /**\n * Adds two non-negative integers, returning `a + b` as an `Uint`.\n *\n * @example\n *\n * ```ts\n * const sum = Uint.add(asUint(5), asUint(8));\n *\n * assert.isTrue(sum === 13);\n * ```\n *\n * @param a - The first non-negative integer\n * @param b - The second non-negative integer\n * @returns The sum of `a` and `b` as an `Uint`\n */\n add,\n\n /**\n * Subtracts two non-negative integers, returning `a - b` as an `Uint`.\n *\n * @example\n *\n * ```ts\n * const difference = Uint.sub(asUint(5), asUint(8));\n *\n * assert.isTrue(difference === 0);\n * ```\n *\n * @param a - The first non-negative integer\n * @param b - The second non-negative integer\n * @returns The difference of `a` and `b` as an `Uint`\n */\n sub,\n\n /**\n * Multiplies two non-negative integers, returning `a * b` as an `Uint`.\n *\n * @example\n *\n * ```ts\n * const product = Uint.mul(asUint(7), asUint(6));\n *\n * assert.isTrue(product === 42);\n * ```\n *\n * @param a - The first non-negative integer\n * @param b - The second non-negative integer\n * @returns The product of `a` and `b` as an `Uint`\n */\n mul,\n\n /**\n * Divides two non-negative integers using floor division (`⌊a / b⌋`): the\n * result is `a / b` rounded toward negative infinity, as an `Uint`.\n *\n * @example\n *\n * ```ts\n * const quotient = Uint.div(asUint(10), asUint(4));\n *\n * assert.isTrue(quotient === 2);\n * ```\n *\n * @param a - The dividend\n * @param b - The divisor (must be non-zero)\n * @returns The floored quotient as an `Uint`\n */\n div,\n} as const;\n\nexpectType<\n keyof typeof Uint,\n keyof TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'non-negative'\n >\n>('=');\n\nexpectType<\n typeof Uint,\n TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'non-negative'\n >\n>('<=');\n"],"names":[],"mappings":";;AAQA,MAAM,iBAAA,GAAoB,wBAAA;AAE1B,MAAM;AAAA,EACJ,SAAA;AAAA,EACA,GAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAA;AAAA,EACA,UAAA;AAAA,EACA,EAAA;AAAA,EACA,GAAA,EAAK,IAAA;AAAA,EACL,GAAA,EAAK,IAAA;AAAA,EACL,GAAA;AAAA,EACA,GAAA;AAAA,EACA,MAAA;AAAA,EACA;AACF,CAAA,GAAI,oBAAA,CAAqB,mBAAmB,mBAAA,CAI1C;AAAA,EACA,oBAAA,EAAsB,SAAA;AAAA,EACtB,SAAA,EAAW,CAAA;AAAA,EACX,WAAW,MAAA,CAAO,SAAA;AAAA,EAClB;AACF,CAAU,CAAA;AAsBH,MAAM,MAAA,GAAS;AAsBf,MAAM,MAAA,GAAS;AAYf,MAAM,IAAA,GAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAkBlB,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAgBA,GAAA,EAAK,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAgBL,GAAA,EAAK,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAwBL,UAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAyBA,MAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAsBA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAiBA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAiBA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAiBA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAkBA;AACF;;;;"}
1
+ {"version":3,"file":"uint.mjs","sourceRoot":"","sources":["../../../src/number/branded-types/uint.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAMnE,MAAM,iBAAiB,GAAG,wBAAwB,CAAC;AAEnD,MAAM,EACJ,SAAS,EACT,GAAG,EACH,QAAQ,EACR,GAAG,EACH,UAAU,EACV,EAAE,EACF,GAAG,EAAE,IAAI,EACT,GAAG,EAAE,IAAI,EACT,GAAG,EACH,GAAG,EACH,MAAM,EACN,GAAG,GACJ,GAAG,oBAAoB,CAAC,kBAAkB,CAAC,mBAAmB,CAI7D;IACA,oBAAoB,EAAE,SAAS;IAC/B,SAAS,EAAE,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC,SAAS;IAC3B,iBAAiB;CACT,CAAC,CAAC;AAEZ;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,EAAE,CAAC;AAEzB;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,QAAQ,CAAC;AAE/B;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB;;;;;;;;;;;;;;;;OAgBG;IACH,EAAE;IAEF;;;OAGG;IACH,SAAS;IAET;;;;;;;;;;;;;OAaG;IACH,GAAG,EAAE,IAAI;IAET;;;;;;;;;;;;;OAaG;IACH,GAAG,EAAE,IAAI;IAET;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,UAAU;IAEV;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,MAAM;IAEN;;;;;;;;;;;;;;;;;;;OAmBG;IACH,GAAG;IAEH;;;;;;;;;;;;;;OAcG;IACH,GAAG;IAEH;;;;;;;;;;;;;;OAcG;IACH,GAAG;IAEH;;;;;;;;;;;;;;OAcG;IACH,GAAG;IAEH;;;;;;;;;;;;;;;OAeG;IACH,GAAG;CACK,CAAC;AAEX,UAAU,CAMR,GAAG,CAAC,CAAC;AAEP,UAAU,CAMR,IAAI,CAAC,CAAC"}