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,228 +1,264 @@
1
- import { TsDataForgeInternals } from '../refined-number-utils.mjs';
2
1
 
3
- const typeNameInMessage = "a positive 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: 1,
20
- MAX_VALUE: Number.MAX_VALUE,
21
- typeNameInMessage
2
+ import { TsDataForgeInternals } from '../refined-number-utils.mjs';
3
+ const typeNameInMessage = 'a positive 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: 1,
7
+ MAX_VALUE: Number.MAX_VALUE,
8
+ typeNameInMessage,
22
9
  });
23
- const isPositiveInt = is;
24
- const asPositiveInt = castType;
25
- const PositiveInt = {
26
- /**
27
- * Type guard that checks if a value is a positive integer.
28
- *
29
- * @example
30
- *
31
- * ```ts
32
- * assert.isTrue(isPositiveInt(5));
33
- *
34
- * assert.isFalse(isPositiveInt(0));
35
- *
36
- * assert.isTrue(PositiveInt.is(10));
37
- * ```
38
- *
39
- * @param value - The value to check
40
- * @returns `true` if the value is a positive integer, `false` otherwise
41
- * @see {@link isPositiveInt} for usage examples
42
- */
43
- is,
44
- /**
45
- * The smallest value representable as `PositiveInt` (the lower saturation
46
- * target of `fromNumber`).
47
- */
48
- MIN_VALUE,
49
- /**
50
- * Returns the smallest of the given positive integers.
51
- *
52
- * @example
53
- *
54
- * ```ts
55
- * const smallest = PositiveInt.min(
56
- * asPositiveInt(9),
57
- * asPositiveInt(3),
58
- * asPositiveInt(12),
59
- * );
60
- *
61
- * assert.isTrue(smallest === 3);
62
- * ```
63
- *
64
- * @param values - The positive integers to compare (at least one required)
65
- * @returns The smallest value as a `PositiveInt`
66
- */
67
- min: min_,
68
- /**
69
- * Returns the largest of the given positive integers.
70
- *
71
- * @example
72
- *
73
- * ```ts
74
- * const largest = PositiveInt.max(
75
- * asPositiveInt(9),
76
- * asPositiveInt(3),
77
- * asPositiveInt(12),
78
- * );
79
- *
80
- * assert.isTrue(largest === 12);
81
- * ```
82
- *
83
- * @param values - The positive integers to compare (at least one required)
84
- * @returns The largest value as a `PositiveInt`
85
- */
86
- max: max_,
87
- /**
88
- * Converts an arbitrary `number` into a `PositiveInt`, rounding to the
89
- * nearest integer and saturating the result into the range `[MIN_VALUE,
90
- * MAX_VALUE]`.
91
- *
92
- * Unlike `asPositiveInt`, this is total: out-of-range inputs are clamped to
93
- * the nearest representable `PositiveInt` instead of throwing.
94
- *
95
- * @example
96
- *
97
- * ```ts
98
- * const belowRange = PositiveInt.fromNumber(0);
99
- *
100
- * const withinRange = PositiveInt.fromNumber(10);
101
- *
102
- * assert.isTrue(belowRange === 1);
103
- *
104
- * assert.isTrue(withinRange === 10);
105
- * ```
106
- *
107
- * @param value - The value to convert
108
- * @returns The value as a `PositiveInt`
109
- */
110
- fromNumber,
111
- /**
112
- * Generates a random `PositiveInt` within the given range.
113
- *
114
- * The range is inclusive on both ends.
115
- *
116
- * @example
117
- *
118
- * ```ts
119
- * const min = asPositiveInt(3);
120
- *
121
- * const max = asPositiveInt(6);
122
- *
123
- * const randomValue = PositiveInt.random(min, max);
124
- *
125
- * assert.isTrue(PositiveInt.is(randomValue));
126
- *
127
- * assert.isTrue(randomValue >= 3 && randomValue <= 6);
128
- * ```
129
- *
130
- * @param min - The minimum value (inclusive)
131
- * @param max - The maximum value (inclusive)
132
- * @returns A random `PositiveInt` in `[min, max]`
133
- */
134
- random,
135
- /**
136
- * Raises `a` to the power `b`, returning `a ** b` as a `PositiveInt` (floored
137
- * to an integer).
138
- *
139
- * @example
140
- *
141
- * ```ts
142
- * const base = asPositiveInt(2);
143
- *
144
- * const exponent = asPositiveInt(4);
145
- *
146
- * const power = PositiveInt.pow(base, exponent);
147
- *
148
- * assert.isTrue(power === 16);
149
- * ```
150
- *
151
- * @param a - The base positive integer
152
- * @param b - The exponent positive integer
153
- * @returns `a ** b` as a `PositiveInt`
154
- */
155
- pow,
156
- /**
157
- * Adds two positive integers, returning `a + b` as a `PositiveInt`.
158
- *
159
- * @example
160
- *
161
- * ```ts
162
- * const sum = PositiveInt.add(asPositiveInt(4), asPositiveInt(5));
163
- *
164
- * assert.isTrue(sum === 9);
165
- * ```
166
- *
167
- * @param a - The first positive integer
168
- * @param b - The second positive integer
169
- * @returns The sum of `a` and `b` as a `PositiveInt`
170
- */
171
- add,
172
- /**
173
- * Subtracts two positive integers, returning `a - b` as a `PositiveInt`.
174
- *
175
- * @example
176
- *
177
- * ```ts
178
- * const difference = PositiveInt.sub(asPositiveInt(5), asPositiveInt(7));
179
- *
180
- * assert.isTrue(difference === 1);
181
- * ```
182
- *
183
- * @param a - The first positive integer
184
- * @param b - The second positive integer
185
- * @returns The difference of `a` and `b` as a `PositiveInt`
186
- */
187
- sub,
188
- /**
189
- * Multiplies two positive integers, returning `a * b` as a `PositiveInt`.
190
- *
191
- * @example
192
- *
193
- * ```ts
194
- * const product = PositiveInt.mul(asPositiveInt(3), asPositiveInt(7));
195
- *
196
- * assert.isTrue(product === 21);
197
- * ```
198
- *
199
- * @param a - The first positive integer
200
- * @param b - The second positive integer
201
- * @returns The product of `a` and `b` as a `PositiveInt`
202
- */
203
- mul,
204
- /**
205
- * Divides two positive integers using floor division (`⌊a / b⌋`): the result
206
- * is `a / b` rounded toward negative infinity, as a `PositiveInt`.
207
- *
208
- * @example
209
- *
210
- * ```ts
211
- * const quotient = PositiveInt.div(asPositiveInt(9), asPositiveInt(2));
212
- *
213
- * const clamped = PositiveInt.div(asPositiveInt(3), asPositiveInt(10));
214
- *
215
- * assert.isTrue(quotient === 4);
216
- *
217
- * assert.isTrue(clamped === 1);
218
- * ```
219
- *
220
- * @param a - The dividend
221
- * @param b - The divisor (must be non-zero)
222
- * @returns The floored quotient as a `PositiveInt`
223
- */
224
- div
10
+ /**
11
+ * Type guard that checks if a value is a positive integer.
12
+ *
13
+ * Returns `true` for a positive integer — a value with no fractional component,
14
+ * including values outside the safe integer range (unlike `SafeInt`).
15
+ *
16
+ * @example
17
+ *
18
+ * ```ts
19
+ * assert.isTrue(isPositiveInt(5));
20
+ *
21
+ * assert.isFalse(isPositiveInt(0));
22
+ *
23
+ * assert.isTrue(PositiveInt.is(10));
24
+ * ```
25
+ *
26
+ * @param value - The value to check
27
+ * @returns `true` if the value is a positive integer, `false` otherwise
28
+ */
29
+ export const isPositiveInt = is;
30
+ /**
31
+ * Casts a `number` to the `PositiveInt` branded type.
32
+ *
33
+ * Validates that the value is a positive integer and returns it with the
34
+ * `PositiveInt` brand. Throws a `TypeError` otherwise.
35
+ *
36
+ * @example
37
+ *
38
+ * ```ts
39
+ * const branded = asPositiveInt(7);
40
+ *
41
+ * assert.isTrue(branded === 7);
42
+ *
43
+ * assert.isTrue(PositiveInt.is(branded));
44
+ * ```
45
+ *
46
+ * @param value - The value to cast
47
+ * @returns The value as a `PositiveInt`
48
+ * @throws {TypeError} If the value is not a positive integer
49
+ */
50
+ export const asPositiveInt = castType;
51
+ /**
52
+ * Namespace providing type-safe operations for the `PositiveInt` branded type.
53
+ *
54
+ * The `PositiveInt` type represents a positive integer. Division (`div`) uses
55
+ * floor division.
56
+ *
57
+ * Unlike `SafeInt`, `PositiveInt` allows values outside the safe integer range
58
+ * (±2^53 − 1), so very large magnitudes may lose precision in JavaScript's
59
+ * `number` type.
60
+ */
61
+ export const PositiveInt = {
62
+ /**
63
+ * Type guard that checks if a value is a positive integer.
64
+ *
65
+ * @example
66
+ *
67
+ * ```ts
68
+ * assert.isTrue(isPositiveInt(5));
69
+ *
70
+ * assert.isFalse(isPositiveInt(0));
71
+ *
72
+ * assert.isTrue(PositiveInt.is(10));
73
+ * ```
74
+ *
75
+ * @param value - The value to check
76
+ * @returns `true` if the value is a positive integer, `false` otherwise
77
+ * @see {@link isPositiveInt} for usage examples
78
+ */
79
+ is,
80
+ /**
81
+ * The smallest value representable as `PositiveInt` (the lower saturation
82
+ * target of `fromNumber`).
83
+ */
84
+ MIN_VALUE,
85
+ /**
86
+ * Returns the smallest of the given positive integers.
87
+ *
88
+ * @example
89
+ *
90
+ * ```ts
91
+ * const smallest = PositiveInt.min(
92
+ * asPositiveInt(9),
93
+ * asPositiveInt(3),
94
+ * asPositiveInt(12),
95
+ * );
96
+ *
97
+ * assert.isTrue(smallest === 3);
98
+ * ```
99
+ *
100
+ * @param values - The positive integers to compare (at least one required)
101
+ * @returns The smallest value as a `PositiveInt`
102
+ */
103
+ min: min_,
104
+ /**
105
+ * Returns the largest of the given positive integers.
106
+ *
107
+ * @example
108
+ *
109
+ * ```ts
110
+ * const largest = PositiveInt.max(
111
+ * asPositiveInt(9),
112
+ * asPositiveInt(3),
113
+ * asPositiveInt(12),
114
+ * );
115
+ *
116
+ * assert.isTrue(largest === 12);
117
+ * ```
118
+ *
119
+ * @param values - The positive integers to compare (at least one required)
120
+ * @returns The largest value as a `PositiveInt`
121
+ */
122
+ max: max_,
123
+ /**
124
+ * Converts an arbitrary `number` into a `PositiveInt`, rounding to the
125
+ * nearest integer and saturating the result into the range `[MIN_VALUE,
126
+ * MAX_VALUE]`.
127
+ *
128
+ * Unlike `asPositiveInt`, this is total: out-of-range inputs are clamped to
129
+ * the nearest representable `PositiveInt` instead of throwing.
130
+ *
131
+ * @example
132
+ *
133
+ * ```ts
134
+ * const belowRange = PositiveInt.fromNumber(0);
135
+ *
136
+ * const withinRange = PositiveInt.fromNumber(10);
137
+ *
138
+ * assert.isTrue(belowRange === 1);
139
+ *
140
+ * assert.isTrue(withinRange === 10);
141
+ * ```
142
+ *
143
+ * @param value - The value to convert
144
+ * @returns The value as a `PositiveInt`
145
+ */
146
+ fromNumber,
147
+ /**
148
+ * Generates a random `PositiveInt` within the given range.
149
+ *
150
+ * The range is inclusive on both ends.
151
+ *
152
+ * @example
153
+ *
154
+ * ```ts
155
+ * const min = asPositiveInt(3);
156
+ *
157
+ * const max = asPositiveInt(6);
158
+ *
159
+ * const randomValue = PositiveInt.random(min, max);
160
+ *
161
+ * assert.isTrue(PositiveInt.is(randomValue));
162
+ *
163
+ * assert.isTrue(randomValue >= 3 && randomValue <= 6);
164
+ * ```
165
+ *
166
+ * @param min - The minimum value (inclusive)
167
+ * @param max - The maximum value (inclusive)
168
+ * @returns A random `PositiveInt` in `[min, max]`
169
+ */
170
+ random,
171
+ /**
172
+ * Raises `a` to the power `b`, returning `a ** b` as a `PositiveInt` (floored
173
+ * to an integer).
174
+ *
175
+ * @example
176
+ *
177
+ * ```ts
178
+ * const base = asPositiveInt(2);
179
+ *
180
+ * const exponent = asPositiveInt(4);
181
+ *
182
+ * const power = PositiveInt.pow(base, exponent);
183
+ *
184
+ * assert.isTrue(power === 16);
185
+ * ```
186
+ *
187
+ * @param a - The base positive integer
188
+ * @param b - The exponent positive integer
189
+ * @returns `a ** b` as a `PositiveInt`
190
+ */
191
+ pow,
192
+ /**
193
+ * Adds two positive integers, returning `a + b` as a `PositiveInt`.
194
+ *
195
+ * @example
196
+ *
197
+ * ```ts
198
+ * const sum = PositiveInt.add(asPositiveInt(4), asPositiveInt(5));
199
+ *
200
+ * assert.isTrue(sum === 9);
201
+ * ```
202
+ *
203
+ * @param a - The first positive integer
204
+ * @param b - The second positive integer
205
+ * @returns The sum of `a` and `b` as a `PositiveInt`
206
+ */
207
+ add,
208
+ /**
209
+ * Subtracts two positive integers, returning `a - b` as a `PositiveInt`.
210
+ *
211
+ * @example
212
+ *
213
+ * ```ts
214
+ * const difference = PositiveInt.sub(asPositiveInt(5), asPositiveInt(7));
215
+ *
216
+ * assert.isTrue(difference === 1);
217
+ * ```
218
+ *
219
+ * @param a - The first positive integer
220
+ * @param b - The second positive integer
221
+ * @returns The difference of `a` and `b` as a `PositiveInt`
222
+ */
223
+ sub,
224
+ /**
225
+ * Multiplies two positive integers, returning `a * b` as a `PositiveInt`.
226
+ *
227
+ * @example
228
+ *
229
+ * ```ts
230
+ * const product = PositiveInt.mul(asPositiveInt(3), asPositiveInt(7));
231
+ *
232
+ * assert.isTrue(product === 21);
233
+ * ```
234
+ *
235
+ * @param a - The first positive integer
236
+ * @param b - The second positive integer
237
+ * @returns The product of `a` and `b` as a `PositiveInt`
238
+ */
239
+ mul,
240
+ /**
241
+ * Divides two positive integers using floor division (`⌊a / b⌋`): the result
242
+ * is `a / b` rounded toward negative infinity, as a `PositiveInt`.
243
+ *
244
+ * @example
245
+ *
246
+ * ```ts
247
+ * const quotient = PositiveInt.div(asPositiveInt(9), asPositiveInt(2));
248
+ *
249
+ * const clamped = PositiveInt.div(asPositiveInt(3), asPositiveInt(10));
250
+ *
251
+ * assert.isTrue(quotient === 4);
252
+ *
253
+ * assert.isTrue(clamped === 1);
254
+ * ```
255
+ *
256
+ * @param a - The dividend
257
+ * @param b - The divisor (must be non-zero)
258
+ * @returns The floored quotient as a `PositiveInt`
259
+ */
260
+ div,
225
261
  };
226
262
 
227
- export { PositiveInt, asPositiveInt, isPositiveInt };
228
- //# sourceMappingURL=positive-int.mjs.map
263
+
264
+ //# sourceMappingURL=positive-int.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"positive-int.mjs","sources":["../../../src/number/branded-types/positive-int.mts"],"sourcesContent":["import { type PositiveInt as TtfImported_PositiveInt } from 'ts-type-forge';\nimport { expectType } from '../../expect-type.mjs';\nimport { TsDataForgeInternals } from '../refined-number-utils.mjs';\n\nexport type PositiveInt = TtfImported_PositiveInt;\n\ntype ElementType = PositiveInt;\n\nconst typeNameInMessage = 'a positive 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 1,\n number\n>({\n integerOrSafeInteger: 'Integer',\n MIN_VALUE: 1,\n MAX_VALUE: Number.MAX_VALUE,\n typeNameInMessage,\n} as const);\n\n/**\n * Type guard that checks if a value is a positive integer.\n *\n * Returns `true` for a positive integer — a value with no fractional component,\n * including values outside the safe integer range (unlike `SafeInt`).\n *\n * @example\n *\n * ```ts\n * assert.isTrue(isPositiveInt(5));\n *\n * assert.isFalse(isPositiveInt(0));\n *\n * assert.isTrue(PositiveInt.is(10));\n * ```\n *\n * @param value - The value to check\n * @returns `true` if the value is a positive integer, `false` otherwise\n */\nexport const isPositiveInt = is;\n\n/**\n * Casts a `number` to the `PositiveInt` branded type.\n *\n * Validates that the value is a positive integer and returns it with the\n * `PositiveInt` brand. Throws a `TypeError` otherwise.\n *\n * @example\n *\n * ```ts\n * const branded = asPositiveInt(7);\n *\n * assert.isTrue(branded === 7);\n *\n * assert.isTrue(PositiveInt.is(branded));\n * ```\n *\n * @param value - The value to cast\n * @returns The value as a `PositiveInt`\n * @throws {TypeError} If the value is not a positive integer\n */\nexport const asPositiveInt = castType;\n\n/**\n * Namespace providing type-safe operations for the `PositiveInt` branded type.\n *\n * The `PositiveInt` type represents a positive integer. Division (`div`) uses\n * floor division.\n *\n * Unlike `SafeInt`, `PositiveInt` allows values outside the safe integer range\n * (±2^53 − 1), so very large magnitudes may lose precision in JavaScript's\n * `number` type.\n */\nexport const PositiveInt = {\n /**\n * Type guard that checks if a value is a positive integer.\n *\n * @example\n *\n * ```ts\n * assert.isTrue(isPositiveInt(5));\n *\n * assert.isFalse(isPositiveInt(0));\n *\n * assert.isTrue(PositiveInt.is(10));\n * ```\n *\n * @param value - The value to check\n * @returns `true` if the value is a positive integer, `false` otherwise\n * @see {@link isPositiveInt} for usage examples\n */\n is,\n\n /**\n * The smallest value representable as `PositiveInt` (the lower saturation\n * target of `fromNumber`).\n */\n MIN_VALUE,\n\n /**\n * Returns the smallest of the given positive integers.\n *\n * @example\n *\n * ```ts\n * const smallest = PositiveInt.min(\n * asPositiveInt(9),\n * asPositiveInt(3),\n * asPositiveInt(12),\n * );\n *\n * assert.isTrue(smallest === 3);\n * ```\n *\n * @param values - The positive integers to compare (at least one required)\n * @returns The smallest value as a `PositiveInt`\n */\n min: min_,\n\n /**\n * Returns the largest of the given positive integers.\n *\n * @example\n *\n * ```ts\n * const largest = PositiveInt.max(\n * asPositiveInt(9),\n * asPositiveInt(3),\n * asPositiveInt(12),\n * );\n *\n * assert.isTrue(largest === 12);\n * ```\n *\n * @param values - The positive integers to compare (at least one required)\n * @returns The largest value as a `PositiveInt`\n */\n max: max_,\n\n /**\n * Converts an arbitrary `number` into a `PositiveInt`, rounding to the\n * nearest integer and saturating the result into the range `[MIN_VALUE,\n * MAX_VALUE]`.\n *\n * Unlike `asPositiveInt`, this is total: out-of-range inputs are clamped to\n * the nearest representable `PositiveInt` instead of throwing.\n *\n * @example\n *\n * ```ts\n * const belowRange = PositiveInt.fromNumber(0);\n *\n * const withinRange = PositiveInt.fromNumber(10);\n *\n * assert.isTrue(belowRange === 1);\n *\n * assert.isTrue(withinRange === 10);\n * ```\n *\n * @param value - The value to convert\n * @returns The value as a `PositiveInt`\n */\n fromNumber,\n\n /**\n * Generates a random `PositiveInt` within the given range.\n *\n * The range is inclusive on both ends.\n *\n * @example\n *\n * ```ts\n * const min = asPositiveInt(3);\n *\n * const max = asPositiveInt(6);\n *\n * const randomValue = PositiveInt.random(min, max);\n *\n * assert.isTrue(PositiveInt.is(randomValue));\n *\n * assert.isTrue(randomValue >= 3 && randomValue <= 6);\n * ```\n *\n * @param min - The minimum value (inclusive)\n * @param max - The maximum value (inclusive)\n * @returns A random `PositiveInt` in `[min, max]`\n */\n random,\n\n /**\n * Raises `a` to the power `b`, returning `a ** b` as a `PositiveInt` (floored\n * to an integer).\n *\n * @example\n *\n * ```ts\n * const base = asPositiveInt(2);\n *\n * const exponent = asPositiveInt(4);\n *\n * const power = PositiveInt.pow(base, exponent);\n *\n * assert.isTrue(power === 16);\n * ```\n *\n * @param a - The base positive integer\n * @param b - The exponent positive integer\n * @returns `a ** b` as a `PositiveInt`\n */\n pow,\n\n /**\n * Adds two positive integers, returning `a + b` as a `PositiveInt`.\n *\n * @example\n *\n * ```ts\n * const sum = PositiveInt.add(asPositiveInt(4), asPositiveInt(5));\n *\n * assert.isTrue(sum === 9);\n * ```\n *\n * @param a - The first positive integer\n * @param b - The second positive integer\n * @returns The sum of `a` and `b` as a `PositiveInt`\n */\n add,\n\n /**\n * Subtracts two positive integers, returning `a - b` as a `PositiveInt`.\n *\n * @example\n *\n * ```ts\n * const difference = PositiveInt.sub(asPositiveInt(5), asPositiveInt(7));\n *\n * assert.isTrue(difference === 1);\n * ```\n *\n * @param a - The first positive integer\n * @param b - The second positive integer\n * @returns The difference of `a` and `b` as a `PositiveInt`\n */\n sub,\n\n /**\n * Multiplies two positive integers, returning `a * b` as a `PositiveInt`.\n *\n * @example\n *\n * ```ts\n * const product = PositiveInt.mul(asPositiveInt(3), asPositiveInt(7));\n *\n * assert.isTrue(product === 21);\n * ```\n *\n * @param a - The first positive integer\n * @param b - The second positive integer\n * @returns The product of `a` and `b` as a `PositiveInt`\n */\n mul,\n\n /**\n * Divides two positive integers using floor division (`⌊a / b⌋`): the result\n * is `a / b` rounded toward negative infinity, as a `PositiveInt`.\n *\n * @example\n *\n * ```ts\n * const quotient = PositiveInt.div(asPositiveInt(9), asPositiveInt(2));\n *\n * const clamped = PositiveInt.div(asPositiveInt(3), asPositiveInt(10));\n *\n * assert.isTrue(quotient === 4);\n *\n * assert.isTrue(clamped === 1);\n * ```\n *\n * @param a - The dividend\n * @param b - The divisor (must be non-zero)\n * @returns The floored quotient as a `PositiveInt`\n */\n div,\n} as const;\n\nexpectType<\n keyof typeof PositiveInt,\n keyof TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'positive'\n >\n>('=');\n\nexpectType<\n typeof PositiveInt,\n TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'positive'\n >\n>('<=');\n"],"names":[],"mappings":";;AAQA,MAAM,iBAAA,GAAoB,oBAAA;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;AAqBH,MAAM,aAAA,GAAgB;AAsBtB,MAAM,aAAA,GAAgB;AAYtB,MAAM,WAAA,GAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAkBzB,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAoBA,GAAA,EAAK,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAoBL,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;AAAA,EAyBL,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;AAAA;AAAA;AAAA;AAAA,EAsBA;AACF;;;;"}
1
+ {"version":3,"file":"positive-int.mjs","sourceRoot":"","sources":["../../../src/number/branded-types/positive-int.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAMnE,MAAM,iBAAiB,GAAG,oBAAoB,CAAC;AAE/C,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;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,CAAC;AAEhC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,QAAQ,CAAC;AAEtC;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB;;;;;;;;;;;;;;;;OAgBG;IACH,EAAE;IAEF;;;OAGG;IACH,SAAS;IAET;;;;;;;;;;;;;;;;;OAiBG;IACH,GAAG,EAAE,IAAI;IAET;;;;;;;;;;;;;;;;;OAiBG;IACH,GAAG,EAAE,IAAI;IAET;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,UAAU;IAEV;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,MAAM;IAEN;;;;;;;;;;;;;;;;;;;OAmBG;IACH,GAAG;IAEH;;;;;;;;;;;;;;OAcG;IACH,GAAG;IAEH;;;;;;;;;;;;;;OAcG;IACH,GAAG;IAEH;;;;;;;;;;;;;;OAcG;IACH,GAAG;IAEH;;;;;;;;;;;;;;;;;;;OAmBG;IACH,GAAG;CACK,CAAC;AAEX,UAAU,CAMR,GAAG,CAAC,CAAC;AAEP,UAAU,CAMR,IAAI,CAAC,CAAC"}