ts-data-forge 10.0.0 → 11.0.1

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 (249) hide show
  1. package/dist/array/impl/array-utils-creation.d.mts +3 -3
  2. package/dist/array/impl/array-utils-creation.d.mts.map +1 -1
  3. package/dist/array/impl/array-utils-creation.mjs.map +1 -1
  4. package/dist/array/impl/array-utils-element-access.d.mts +4 -4
  5. package/dist/array/impl/array-utils-element-access.mjs.map +1 -1
  6. package/dist/{guard/as-length-bounded-array.d.mts → array/impl/array-utils-length-bounded-array-cast.d.mts} +9 -9
  7. package/dist/array/impl/array-utils-length-bounded-array-cast.d.mts.map +1 -0
  8. package/dist/{guard/as-length-bounded-array.mjs → array/impl/array-utils-length-bounded-array-cast.mjs} +2 -2
  9. package/dist/array/impl/array-utils-length-bounded-array-cast.mjs.map +1 -0
  10. package/dist/{guard/is-length-bounded-array.d.mts → array/impl/array-utils-length-bounded-array-guard.d.mts} +13 -13
  11. package/dist/array/impl/array-utils-length-bounded-array-guard.d.mts.map +1 -0
  12. package/dist/{guard/is-length-bounded-array.mjs → array/impl/array-utils-length-bounded-array-guard.mjs} +1 -1
  13. package/dist/array/impl/array-utils-length-bounded-array-guard.mjs.map +1 -0
  14. package/dist/array/impl/array-utils-modification.d.mts +9 -9
  15. package/dist/array/impl/array-utils-modification.d.mts.map +1 -1
  16. package/dist/array/impl/array-utils-modification.mjs.map +1 -1
  17. package/dist/array/impl/array-utils-reducing-value.d.mts +9 -9
  18. package/dist/array/impl/array-utils-reducing-value.mjs.map +1 -1
  19. package/dist/array/impl/array-utils-size.d.mts +3 -3
  20. package/dist/array/impl/array-utils-size.mjs.map +1 -1
  21. package/dist/array/impl/array-utils-slicing.d.mts +9 -9
  22. package/dist/array/impl/array-utils-slicing.d.mts.map +1 -1
  23. package/dist/array/impl/array-utils-slicing.mjs.map +1 -1
  24. package/dist/array/impl/array-utils-transformation.d.mts +16 -10
  25. package/dist/array/impl/array-utils-transformation.d.mts.map +1 -1
  26. package/dist/array/impl/array-utils-transformation.mjs.map +1 -1
  27. package/dist/array/impl/index.d.mts +2 -0
  28. package/dist/array/impl/index.d.mts.map +1 -1
  29. package/dist/array/impl/index.mjs +2 -0
  30. package/dist/array/impl/index.mjs.map +1 -1
  31. package/dist/entry-point.mjs +1 -3
  32. package/dist/entry-point.mjs.map +1 -1
  33. package/dist/guard/index.d.mts +0 -3
  34. package/dist/guard/index.d.mts.map +1 -1
  35. package/dist/guard/index.mjs +0 -3
  36. package/dist/guard/index.mjs.map +1 -1
  37. package/dist/index.d.mts +1 -0
  38. package/dist/index.d.mts.map +1 -1
  39. package/dist/index.mjs +1 -3
  40. package/dist/index.mjs.map +1 -1
  41. package/dist/number/branded-types/finite-number.d.mts +47 -61
  42. package/dist/number/branded-types/finite-number.d.mts.map +1 -1
  43. package/dist/number/branded-types/finite-number.mjs +37 -41
  44. package/dist/number/branded-types/finite-number.mjs.map +1 -1
  45. package/dist/number/branded-types/int.d.mts +40 -46
  46. package/dist/number/branded-types/int.d.mts.map +1 -1
  47. package/dist/number/branded-types/int.mjs +29 -31
  48. package/dist/number/branded-types/int.mjs.map +1 -1
  49. package/dist/number/branded-types/int16.d.mts +65 -58
  50. package/dist/number/branded-types/int16.d.mts.map +1 -1
  51. package/dist/number/branded-types/int16.mjs +49 -45
  52. package/dist/number/branded-types/int16.mjs.map +1 -1
  53. package/dist/number/branded-types/int32.d.mts +65 -58
  54. package/dist/number/branded-types/int32.d.mts.map +1 -1
  55. package/dist/number/branded-types/int32.mjs +49 -45
  56. package/dist/number/branded-types/int32.mjs.map +1 -1
  57. package/dist/number/branded-types/negative-finite-number.d.mts +68 -59
  58. package/dist/number/branded-types/negative-finite-number.d.mts.map +1 -1
  59. package/dist/number/branded-types/negative-finite-number.mjs +52 -46
  60. package/dist/number/branded-types/negative-finite-number.mjs.map +1 -1
  61. package/dist/number/branded-types/negative-int.d.mts +60 -48
  62. package/dist/number/branded-types/negative-int.d.mts.map +1 -1
  63. package/dist/number/branded-types/negative-int.mjs +40 -36
  64. package/dist/number/branded-types/negative-int.mjs.map +1 -1
  65. package/dist/number/branded-types/negative-safe-int.d.mts +57 -56
  66. package/dist/number/branded-types/negative-safe-int.d.mts.map +1 -1
  67. package/dist/number/branded-types/negative-safe-int.mjs +40 -41
  68. package/dist/number/branded-types/negative-safe-int.mjs.map +1 -1
  69. package/dist/number/branded-types/non-negative-finite-number.d.mts +74 -64
  70. package/dist/number/branded-types/non-negative-finite-number.d.mts.map +1 -1
  71. package/dist/number/branded-types/non-negative-finite-number.mjs +58 -51
  72. package/dist/number/branded-types/non-negative-finite-number.mjs.map +1 -1
  73. package/dist/number/branded-types/non-negative-int16.d.mts +64 -57
  74. package/dist/number/branded-types/non-negative-int16.d.mts.map +1 -1
  75. package/dist/number/branded-types/non-negative-int16.mjs +47 -43
  76. package/dist/number/branded-types/non-negative-int16.mjs.map +1 -1
  77. package/dist/number/branded-types/non-negative-int32.d.mts +64 -58
  78. package/dist/number/branded-types/non-negative-int32.d.mts.map +1 -1
  79. package/dist/number/branded-types/non-negative-int32.mjs +47 -44
  80. package/dist/number/branded-types/non-negative-int32.mjs.map +1 -1
  81. package/dist/number/branded-types/non-positive-finite-number.d.mts +64 -54
  82. package/dist/number/branded-types/non-positive-finite-number.d.mts.map +1 -1
  83. package/dist/number/branded-types/non-positive-finite-number.mjs +48 -41
  84. package/dist/number/branded-types/non-positive-finite-number.mjs.map +1 -1
  85. package/dist/number/branded-types/non-positive-int.d.mts +41 -146
  86. package/dist/number/branded-types/non-positive-int.d.mts.map +1 -1
  87. package/dist/number/branded-types/non-positive-int.mjs +27 -107
  88. package/dist/number/branded-types/non-positive-int.mjs.map +1 -1
  89. package/dist/number/branded-types/non-positive-safe-int.d.mts +54 -53
  90. package/dist/number/branded-types/non-positive-safe-int.d.mts.map +1 -1
  91. package/dist/number/branded-types/non-positive-safe-int.mjs +37 -39
  92. package/dist/number/branded-types/non-positive-safe-int.mjs.map +1 -1
  93. package/dist/number/branded-types/non-zero-finite-number.d.mts +62 -49
  94. package/dist/number/branded-types/non-zero-finite-number.d.mts.map +1 -1
  95. package/dist/number/branded-types/non-zero-finite-number.mjs +46 -37
  96. package/dist/number/branded-types/non-zero-finite-number.mjs.map +1 -1
  97. package/dist/number/branded-types/non-zero-int.d.mts +51 -38
  98. package/dist/number/branded-types/non-zero-int.d.mts.map +1 -1
  99. package/dist/number/branded-types/non-zero-int.mjs +31 -27
  100. package/dist/number/branded-types/non-zero-int.mjs.map +1 -1
  101. package/dist/number/branded-types/non-zero-int16.d.mts +52 -53
  102. package/dist/number/branded-types/non-zero-int16.d.mts.map +1 -1
  103. package/dist/number/branded-types/non-zero-int16.mjs +36 -39
  104. package/dist/number/branded-types/non-zero-int16.mjs.map +1 -1
  105. package/dist/number/branded-types/non-zero-int32.d.mts +52 -54
  106. package/dist/number/branded-types/non-zero-int32.d.mts.map +1 -1
  107. package/dist/number/branded-types/non-zero-int32.mjs +36 -40
  108. package/dist/number/branded-types/non-zero-int32.mjs.map +1 -1
  109. package/dist/number/branded-types/non-zero-safe-int.d.mts +53 -54
  110. package/dist/number/branded-types/non-zero-safe-int.d.mts.map +1 -1
  111. package/dist/number/branded-types/non-zero-safe-int.mjs +36 -40
  112. package/dist/number/branded-types/non-zero-safe-int.mjs.map +1 -1
  113. package/dist/number/branded-types/non-zero-uint16.d.mts +52 -53
  114. package/dist/number/branded-types/non-zero-uint16.d.mts.map +1 -1
  115. package/dist/number/branded-types/non-zero-uint16.mjs +35 -39
  116. package/dist/number/branded-types/non-zero-uint16.mjs.map +1 -1
  117. package/dist/number/branded-types/non-zero-uint32.d.mts +52 -53
  118. package/dist/number/branded-types/non-zero-uint32.d.mts.map +1 -1
  119. package/dist/number/branded-types/non-zero-uint32.mjs +35 -39
  120. package/dist/number/branded-types/non-zero-uint32.mjs.map +1 -1
  121. package/dist/number/branded-types/positive-finite-number.d.mts +74 -63
  122. package/dist/number/branded-types/positive-finite-number.d.mts.map +1 -1
  123. package/dist/number/branded-types/positive-finite-number.mjs +58 -50
  124. package/dist/number/branded-types/positive-finite-number.mjs.map +1 -1
  125. package/dist/number/branded-types/positive-int.d.mts +46 -68
  126. package/dist/number/branded-types/positive-int.d.mts.map +1 -1
  127. package/dist/number/branded-types/positive-int.mjs +34 -49
  128. package/dist/number/branded-types/positive-int.mjs.map +1 -1
  129. package/dist/number/branded-types/positive-int16.d.mts +61 -57
  130. package/dist/number/branded-types/positive-int16.d.mts.map +1 -1
  131. package/dist/number/branded-types/positive-int16.mjs +44 -43
  132. package/dist/number/branded-types/positive-int16.mjs.map +1 -1
  133. package/dist/number/branded-types/positive-int32.d.mts +61 -57
  134. package/dist/number/branded-types/positive-int32.d.mts.map +1 -1
  135. package/dist/number/branded-types/positive-int32.mjs +44 -43
  136. package/dist/number/branded-types/positive-int32.mjs.map +1 -1
  137. package/dist/number/branded-types/positive-safe-int.d.mts +62 -57
  138. package/dist/number/branded-types/positive-safe-int.d.mts.map +1 -1
  139. package/dist/number/branded-types/positive-safe-int.mjs +45 -43
  140. package/dist/number/branded-types/positive-safe-int.mjs.map +1 -1
  141. package/dist/number/branded-types/positive-uint16.d.mts +61 -57
  142. package/dist/number/branded-types/positive-uint16.d.mts.map +1 -1
  143. package/dist/number/branded-types/positive-uint16.mjs +44 -43
  144. package/dist/number/branded-types/positive-uint16.mjs.map +1 -1
  145. package/dist/number/branded-types/positive-uint32.d.mts +61 -58
  146. package/dist/number/branded-types/positive-uint32.d.mts.map +1 -1
  147. package/dist/number/branded-types/positive-uint32.mjs +44 -44
  148. package/dist/number/branded-types/positive-uint32.mjs.map +1 -1
  149. package/dist/number/branded-types/safe-int.d.mts +43 -62
  150. package/dist/number/branded-types/safe-int.d.mts.map +1 -1
  151. package/dist/number/branded-types/safe-int.mjs +35 -42
  152. package/dist/number/branded-types/safe-int.mjs.map +1 -1
  153. package/dist/number/branded-types/safe-uint.d.mts +62 -57
  154. package/dist/number/branded-types/safe-uint.d.mts.map +1 -1
  155. package/dist/number/branded-types/safe-uint.mjs +46 -44
  156. package/dist/number/branded-types/safe-uint.mjs.map +1 -1
  157. package/dist/number/branded-types/uint.d.mts +63 -50
  158. package/dist/number/branded-types/uint.d.mts.map +1 -1
  159. package/dist/number/branded-types/uint.mjs +42 -39
  160. package/dist/number/branded-types/uint.mjs.map +1 -1
  161. package/dist/number/branded-types/uint16.d.mts +60 -58
  162. package/dist/number/branded-types/uint16.d.mts.map +1 -1
  163. package/dist/number/branded-types/uint16.mjs +44 -43
  164. package/dist/number/branded-types/uint16.mjs.map +1 -1
  165. package/dist/number/branded-types/uint32.d.mts +59 -55
  166. package/dist/number/branded-types/uint32.d.mts.map +1 -1
  167. package/dist/number/branded-types/uint32.mjs +42 -42
  168. package/dist/number/branded-types/uint32.mjs.map +1 -1
  169. package/dist/number/enum/int8.d.mts +56 -65
  170. package/dist/number/enum/int8.d.mts.map +1 -1
  171. package/dist/number/enum/int8.mjs +44 -43
  172. package/dist/number/enum/int8.mjs.map +1 -1
  173. package/dist/number/enum/uint8.d.mts +60 -58
  174. package/dist/number/enum/uint8.d.mts.map +1 -1
  175. package/dist/number/enum/uint8.mjs +44 -43
  176. package/dist/number/enum/uint8.mjs.map +1 -1
  177. package/dist/string/index.d.mts +2 -0
  178. package/dist/string/index.d.mts.map +1 -0
  179. package/dist/string/index.mjs +2 -0
  180. package/dist/string/index.mjs.map +1 -0
  181. package/dist/string/str.d.mts +273 -0
  182. package/dist/string/str.d.mts.map +1 -0
  183. package/dist/string/str.mjs +42 -0
  184. package/dist/string/str.mjs.map +1 -0
  185. package/package.json +31 -92
  186. package/src/array/impl/array-utils-creation.mts +2 -1
  187. package/src/array/impl/array-utils-element-access.mts +3 -3
  188. package/src/array/impl/array-utils-element-access.test.mts +3 -3
  189. package/src/{guard/as-length-bounded-array.mts → array/impl/array-utils-length-bounded-array-cast.mts} +9 -9
  190. package/src/{guard/as-length-bounded-array.test.mts → array/impl/array-utils-length-bounded-array-cast.test.mts} +2 -2
  191. package/src/{guard/is-length-bounded-array.mts → array/impl/array-utils-length-bounded-array-guard.mts} +12 -12
  192. package/src/{guard/is-length-bounded-array.test.mts → array/impl/array-utils-length-bounded-array-guard.test.mts} +2 -2
  193. package/src/array/impl/array-utils-modification.mts +9 -8
  194. package/src/array/impl/array-utils-modification.test.mts +6 -1
  195. package/src/array/impl/array-utils-reducing-value.mts +9 -9
  196. package/src/array/impl/array-utils-size.mts +2 -2
  197. package/src/array/impl/array-utils-slicing.mts +24 -13
  198. package/src/array/impl/array-utils-transformation.mts +18 -12
  199. package/src/array/impl/array-utils-transformation.test.mts +12 -12
  200. package/src/array/impl/index.mts +2 -0
  201. package/src/guard/index.mts +0 -3
  202. package/src/index.mts +1 -0
  203. package/src/number/branded-types/finite-number.mts +47 -61
  204. package/src/number/branded-types/int.mts +40 -46
  205. package/src/number/branded-types/int16.mts +65 -58
  206. package/src/number/branded-types/int32.mts +65 -58
  207. package/src/number/branded-types/negative-finite-number.mts +68 -68
  208. package/src/number/branded-types/negative-int.mts +60 -57
  209. package/src/number/branded-types/negative-safe-int.mts +57 -65
  210. package/src/number/branded-types/non-negative-finite-number.mts +74 -64
  211. package/src/number/branded-types/non-negative-int16.mts +64 -57
  212. package/src/number/branded-types/non-negative-int32.mts +64 -58
  213. package/src/number/branded-types/non-positive-finite-number.mts +64 -54
  214. package/src/number/branded-types/non-positive-int.mts +41 -146
  215. package/src/number/branded-types/non-positive-safe-int.mts +54 -53
  216. package/src/number/branded-types/non-zero-finite-number.mts +62 -51
  217. package/src/number/branded-types/non-zero-int.mts +51 -38
  218. package/src/number/branded-types/non-zero-int16.mts +52 -53
  219. package/src/number/branded-types/non-zero-int32.mts +52 -54
  220. package/src/number/branded-types/non-zero-safe-int.mts +53 -54
  221. package/src/number/branded-types/non-zero-uint16.mts +52 -53
  222. package/src/number/branded-types/non-zero-uint32.mts +52 -53
  223. package/src/number/branded-types/positive-finite-number.mts +74 -63
  224. package/src/number/branded-types/positive-int.mts +46 -68
  225. package/src/number/branded-types/positive-int16.mts +61 -57
  226. package/src/number/branded-types/positive-int32.mts +61 -57
  227. package/src/number/branded-types/positive-safe-int.mts +62 -57
  228. package/src/number/branded-types/positive-uint16.mts +61 -57
  229. package/src/number/branded-types/positive-uint32.mts +61 -58
  230. package/src/number/branded-types/safe-int.mts +43 -62
  231. package/src/number/branded-types/safe-uint.mts +62 -57
  232. package/src/number/branded-types/uint.mts +63 -50
  233. package/src/number/branded-types/uint16.mts +60 -58
  234. package/src/number/branded-types/uint32.mts +59 -55
  235. package/src/number/enum/int8.mts +56 -65
  236. package/src/number/enum/uint8.mts +60 -58
  237. package/src/string/index.mts +1 -0
  238. package/src/string/str.mts +371 -0
  239. package/src/string/str.test.mts +215 -0
  240. package/dist/guard/as-length-bounded-array.d.mts.map +0 -1
  241. package/dist/guard/as-length-bounded-array.mjs.map +0 -1
  242. package/dist/guard/is-length-bounded-array.d.mts.map +0 -1
  243. package/dist/guard/is-length-bounded-array.mjs.map +0 -1
  244. package/dist/guard/is-length-bounded-string.d.mts +0 -163
  245. package/dist/guard/is-length-bounded-string.d.mts.map +0 -1
  246. package/dist/guard/is-length-bounded-string.mjs +0 -7
  247. package/dist/guard/is-length-bounded-string.mjs.map +0 -1
  248. package/src/guard/is-length-bounded-string.mts +0 -199
  249. package/src/guard/is-length-bounded-string.test.mts +0 -170
@@ -1 +1 @@
1
- {"version":3,"file":"non-negative-int16.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/non-negative-int16.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,IAAI,4BAA4B,EAAE,MAAM,eAAe,CAAC;AAItF,MAAM,MAAM,gBAAgB,GAAG,4BAA4B,CAAC;AA+B5D;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,kDAAK,CAAC;AAErC;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;MAAW,CAAC;AAE3C;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB;IAC3B;;;;;;OAMG;;IAGH;;;;OAIG;;IAGH;;;;OAIG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;OAKG;;IAGH;;;;OAIG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;;;;;;;;;;;;;;;;;;CAEK,CAAC"}
1
+ {"version":3,"file":"non-negative-int16.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/non-negative-int16.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,IAAI,4BAA4B,EAAE,MAAM,eAAe,CAAC;AAItF,MAAM,MAAM,gBAAgB,GAAG,4BAA4B,CAAC;AA+B5D;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,kDAAK,CAAC;AAErC;;;;;;;;;GASG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;MAAW,CAAC;AAE3C;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB;IAC3B;;;;;;OAMG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;;;;OAKG;;IAGH;;;;;OAKG;;IAGH;;;;;;OAMG;;IAGH;;;;;;;;OAQG;;IAGH;;;;;;;OAOG;;IAGH;;;;;;OAMG;;IAGH;;;;;;;OAOG;;IAGH;;;;;;;OAOG;;IAGH;;;;;;;;OAQG;;;;;;;;;;;;;;;;;;;CAEK,CAAC"}
@@ -25,92 +25,96 @@ const isNonNegativeInt16 = is;
25
25
  const asNonNegativeInt16 = castType;
26
26
  const NonNegativeInt16 = {
27
27
  /**
28
- * Type guard to check if a value is a NonNegativeInt16.
28
+ * Type guard that checks if a value is a non-negative integer in [0, 2^15).
29
29
  *
30
- * @param value The value to check.
31
- * @returns `true` if the value is a 16-bit non-negative integer, `false`
32
- * otherwise.
30
+ * @param value - The value to check
31
+ * @returns `true` if the value is a non-negative integer in [0, 2^15), `false` otherwise
32
+ * @see {@link isNonNegativeInt16} for usage examples
33
33
  */
34
34
  is,
35
35
  /**
36
- * The minimum value for a 16-bit non-negative integer.
37
- *
38
- * @readonly
36
+ * The smallest value representable as `NonNegativeInt16`.
39
37
  */
40
38
  MIN_VALUE,
41
39
  /**
42
- * The maximum value for a 16-bit non-negative integer.
43
- *
44
- * @readonly
40
+ * The largest value representable as `NonNegativeInt16`.
45
41
  */
46
42
  MAX_VALUE,
47
43
  /**
48
- * Returns the smaller of two NonNegativeInt16 values.
44
+ * Returns the smallest of the given non-negative integers.
49
45
  *
50
- * @param a The first NonNegativeInt16.
51
- * @param b The second NonNegativeInt16.
52
- * @returns The minimum value as a NonNegativeInt16.
46
+ * @param values - The non-negative integers to compare (at least one required)
47
+ * @returns The smallest value as a `NonNegativeInt16`
53
48
  */
54
49
  min: min_,
55
50
  /**
56
- * Returns the larger of two NonNegativeInt16 values.
51
+ * Returns the largest of the given non-negative integers.
57
52
  *
58
- * @param a The first NonNegativeInt16.
59
- * @param b The second NonNegativeInt16.
60
- * @returns The maximum value as a NonNegativeInt16.
53
+ * @param values - The non-negative integers to compare (at least one required)
54
+ * @returns The largest value as a `NonNegativeInt16`
61
55
  */
62
56
  max: max_,
63
57
  /**
64
- * Clamps a number to the NonNegativeInt16 range.
58
+ * Clamps a `number` into the `NonNegativeInt16` range, rounding to the
59
+ * nearest integer and constraining the result to `[MIN_VALUE, MAX_VALUE]`.
65
60
  *
66
- * @param value The number to clamp.
67
- * @returns The value clamped to [0, 32767] as a NonNegativeInt16.
61
+ * @param value - The value to clamp
62
+ * @returns The clamped value as a `NonNegativeInt16`
68
63
  */
69
64
  clamp,
70
65
  /**
71
- * Generates a random NonNegativeInt16 value within the valid range.
66
+ * Generates a random `NonNegativeInt16` within the given range.
67
+ *
68
+ * The range is inclusive on both ends.
72
69
  *
73
- * @returns A random NonNegativeInt16 between 0 and 32767.
70
+ * @param min - The minimum value (inclusive)
71
+ * @param max - The maximum value (inclusive)
72
+ * @returns A random `NonNegativeInt16` in `[min, max]`
74
73
  */
75
74
  random,
76
75
  /**
77
- * Raises a NonNegativeInt16 to the power of another NonNegativeInt16.
76
+ * Raises `a` to the power `b`, returning `a ** b` as a `NonNegativeInt16`
77
+ * (floored to an integer).
78
78
  *
79
- * @param a The base NonNegativeInt16.
80
- * @param b The exponent NonNegativeInt16.
81
- * @returns `a ** b` clamped to [0, 32767] as a NonNegativeInt16.
79
+ * @param a - The base non-negative integer
80
+ * @param b - The exponent non-negative integer
81
+ * @returns `a ** b` as a `NonNegativeInt16`
82
82
  */
83
83
  pow,
84
84
  /**
85
- * Adds two NonNegativeInt16 values.
85
+ * Adds two non-negative integers, returning `a + b` as a `NonNegativeInt16`.
86
86
  *
87
- * @param a The first NonNegativeInt16.
88
- * @param b The second NonNegativeInt16.
89
- * @returns `a + b` clamped to [0, 32767] as a NonNegativeInt16.
87
+ * @param a - The first non-negative integer
88
+ * @param b - The second non-negative integer
89
+ * @returns The sum of `a` and `b` as a `NonNegativeInt16`
90
90
  */
91
91
  add,
92
92
  /**
93
- * Subtracts one NonNegativeInt16 from another.
93
+ * Subtracts two non-negative integers, returning `a - b` as a
94
+ * `NonNegativeInt16`.
94
95
  *
95
- * @param a The minuend NonNegativeInt16.
96
- * @param b The subtrahend NonNegativeInt16.
97
- * @returns `a - b` clamped to [0, 32767] as a NonNegativeInt16 (minimum 0).
96
+ * @param a - The first non-negative integer
97
+ * @param b - The second non-negative integer
98
+ * @returns The difference of `a` and `b` as a `NonNegativeInt16`
98
99
  */
99
100
  sub,
100
101
  /**
101
- * Multiplies two NonNegativeInt16 values.
102
+ * Multiplies two non-negative integers, returning `a * b` as a
103
+ * `NonNegativeInt16`.
102
104
  *
103
- * @param a The first NonNegativeInt16.
104
- * @param b The second NonNegativeInt16.
105
- * @returns `a * b` clamped to [0, 32767] as a NonNegativeInt16.
105
+ * @param a - The first non-negative integer
106
+ * @param b - The second non-negative integer
107
+ * @returns The product of `a` and `b` as a `NonNegativeInt16`
106
108
  */
107
109
  mul,
108
110
  /**
109
- * Divides one NonNegativeInt16 by another using floor division.
111
+ * Divides two non-negative integers using floor division (`⌊a / b⌋`): the
112
+ * result is `a / b` rounded toward negative infinity, as a
113
+ * `NonNegativeInt16`.
110
114
  *
111
- * @param a The dividend NonNegativeInt16.
112
- * @param b The divisor NonNegativeInt16.
113
- * @returns `⌊a / b⌋` clamped to [0, 32767] as a NonNegativeInt16.
115
+ * @param a - The dividend
116
+ * @param b - The divisor (must be non-zero)
117
+ * @returns The floored quotient as a `NonNegativeInt16`
114
118
  */
115
119
  div
116
120
  };
@@ -1 +1 @@
1
- {"version":3,"file":"non-negative-int16.mjs","sources":["../../../src/number/branded-types/non-negative-int16.mts"],"sourcesContent":["import { type NonNegativeInt16 as TtfImported_NonNegativeInt16 } from 'ts-type-forge';\nimport { expectType } from '../../expect-type.mjs';\nimport { TsDataForgeInternals } from '../refined-number-utils.mjs';\n\nexport type NonNegativeInt16 = TtfImported_NonNegativeInt16;\n\ntype ElementType = NonNegativeInt16;\n\nconst typeNameInMessage = 'a non-negative integer in [0, 2^15)';\n\nconst {\n MAX_VALUE,\n MIN_VALUE,\n add,\n castType,\n clamp,\n div,\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: 'SafeInteger',\n MIN_VALUE: 0,\n MAX_VALUE: 2 ** 15 - 1,\n typeNameInMessage,\n} as const);\n\n/**\n * Checks if a number is a NonNegativeInt16 (16-bit non-negative signed integer\n * in the range [0, 2^15)).\n *\n * @param value The value to check.\n * @returns `true` if the value is a NonNegativeInt16, `false` otherwise.\n */\nexport const isNonNegativeInt16 = is;\n\n/**\n * Casts a number to a NonNegativeInt16 type.\n *\n * @param value The value to cast.\n * @returns The value as a NonNegativeInt16 type.\n * @throws {TypeError} If the value is not a non-negative integer in [0, 2^15).\n */\nexport const asNonNegativeInt16 = castType;\n\n/**\n * Namespace providing type-safe arithmetic operations for 16-bit non-negative\n * integers.\n *\n * All operations automatically clamp results to the valid NonNegativeInt16\n * range [0, 32767]. This ensures that all arithmetic maintains the 16-bit\n * non-negative integer constraint, with negative results clamped to 0 and\n * overflow results clamped to MAX_VALUE.\n */\nexport const NonNegativeInt16 = {\n /**\n * Type guard to check if a value is a NonNegativeInt16.\n *\n * @param value The value to check.\n * @returns `true` if the value is a 16-bit non-negative integer, `false`\n * otherwise.\n */\n is,\n\n /**\n * The minimum value for a 16-bit non-negative integer.\n *\n * @readonly\n */\n MIN_VALUE,\n\n /**\n * The maximum value for a 16-bit non-negative integer.\n *\n * @readonly\n */\n MAX_VALUE,\n\n /**\n * Returns the smaller of two NonNegativeInt16 values.\n *\n * @param a The first NonNegativeInt16.\n * @param b The second NonNegativeInt16.\n * @returns The minimum value as a NonNegativeInt16.\n */\n min: min_,\n\n /**\n * Returns the larger of two NonNegativeInt16 values.\n *\n * @param a The first NonNegativeInt16.\n * @param b The second NonNegativeInt16.\n * @returns The maximum value as a NonNegativeInt16.\n */\n max: max_,\n\n /**\n * Clamps a number to the NonNegativeInt16 range.\n *\n * @param value The number to clamp.\n * @returns The value clamped to [0, 32767] as a NonNegativeInt16.\n */\n clamp,\n\n /**\n * Generates a random NonNegativeInt16 value within the valid range.\n *\n * @returns A random NonNegativeInt16 between 0 and 32767.\n */\n random,\n\n /**\n * Raises a NonNegativeInt16 to the power of another NonNegativeInt16.\n *\n * @param a The base NonNegativeInt16.\n * @param b The exponent NonNegativeInt16.\n * @returns `a ** b` clamped to [0, 32767] as a NonNegativeInt16.\n */\n pow,\n\n /**\n * Adds two NonNegativeInt16 values.\n *\n * @param a The first NonNegativeInt16.\n * @param b The second NonNegativeInt16.\n * @returns `a + b` clamped to [0, 32767] as a NonNegativeInt16.\n */\n add,\n\n /**\n * Subtracts one NonNegativeInt16 from another.\n *\n * @param a The minuend NonNegativeInt16.\n * @param b The subtrahend NonNegativeInt16.\n * @returns `a - b` clamped to [0, 32767] as a NonNegativeInt16 (minimum 0).\n */\n sub,\n\n /**\n * Multiplies two NonNegativeInt16 values.\n *\n * @param a The first NonNegativeInt16.\n * @param b The second NonNegativeInt16.\n * @returns `a * b` clamped to [0, 32767] as a NonNegativeInt16.\n */\n mul,\n\n /**\n * Divides one NonNegativeInt16 by another using floor division.\n *\n * @param a The dividend NonNegativeInt16.\n * @param b The divisor NonNegativeInt16.\n * @returns `⌊a / b⌋` clamped to [0, 32767] as a NonNegativeInt16.\n */\n div,\n} as const;\n\nexpectType<\n keyof typeof NonNegativeInt16,\n keyof TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'non-negative' | 'range'\n >\n>('=');\n\nexpectType<\n typeof NonNegativeInt16,\n TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'non-negative' | 'range'\n >\n>('<=');\n"],"names":[],"mappings":";;AAQA,MAAM,iBAAA,GAAoB,qCAAA;AAE1B,MAAM;AAAA,EACJ,SAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAA;AAAA,EACA,QAAA;AAAA,EACA,KAAA;AAAA,EACA,GAAA;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,aAAA;AAAA,EACtB,SAAA,EAAW,CAAA;AAAA,EACX,SAAA,EAAW,KAAK,EAAA,GAAK,CAAA;AAAA,EACrB;AACF,CAAU,CAAA;AASH,MAAM,kBAAA,GAAqB;AAS3B,MAAM,kBAAA,GAAqB;AAW3B,MAAM,gBAAA,GAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ9B,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,GAAA,EAAK,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASL,GAAA,EAAK,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQL,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA;AACF;;;;"}
1
+ {"version":3,"file":"non-negative-int16.mjs","sources":["../../../src/number/branded-types/non-negative-int16.mts"],"sourcesContent":["import { type NonNegativeInt16 as TtfImported_NonNegativeInt16 } from 'ts-type-forge';\nimport { expectType } from '../../expect-type.mjs';\nimport { TsDataForgeInternals } from '../refined-number-utils.mjs';\n\nexport type NonNegativeInt16 = TtfImported_NonNegativeInt16;\n\ntype ElementType = NonNegativeInt16;\n\nconst typeNameInMessage = 'a non-negative integer in [0, 2^15)';\n\nconst {\n MAX_VALUE,\n MIN_VALUE,\n add,\n castType,\n clamp,\n div,\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: 'SafeInteger',\n MIN_VALUE: 0,\n MAX_VALUE: 2 ** 15 - 1,\n typeNameInMessage,\n} as const);\n\n/**\n * Type guard that checks if a value is a non-negative integer in [0, 2^15).\n *\n * Returns `true` for a non-negative integer in [0, 2^15) — a value with no\n * fractional component.\n *\n * @param value - The value to check\n * @returns `true` if the value is a non-negative integer in [0, 2^15), `false` otherwise\n */\nexport const isNonNegativeInt16 = is;\n\n/**\n * Casts a `number` to the `NonNegativeInt16` branded type.\n *\n * Validates that the value is a non-negative integer in [0, 2^15) and returns\n * it with the `NonNegativeInt16` brand. Throws a `TypeError` otherwise.\n *\n * @param value - The value to cast\n * @returns The value as a `NonNegativeInt16`\n * @throws {TypeError} If the value is not a non-negative integer in [0, 2^15)\n */\nexport const asNonNegativeInt16 = castType;\n\n/**\n * Namespace providing type-safe operations for the `NonNegativeInt16` branded\n * type.\n *\n * The `NonNegativeInt16` type represents a non-negative integer in [0, 2^15).\n * Division (`div`) uses floor division.\n */\nexport const NonNegativeInt16 = {\n /**\n * Type guard that checks if a value is a non-negative integer in [0, 2^15).\n *\n * @param value - The value to check\n * @returns `true` if the value is a non-negative integer in [0, 2^15), `false` otherwise\n * @see {@link isNonNegativeInt16} for usage examples\n */\n is,\n\n /**\n * The smallest value representable as `NonNegativeInt16`.\n */\n MIN_VALUE,\n\n /**\n * The largest value representable as `NonNegativeInt16`.\n */\n MAX_VALUE,\n\n /**\n * Returns the smallest of the given non-negative integers.\n *\n * @param values - The non-negative integers to compare (at least one required)\n * @returns The smallest value as a `NonNegativeInt16`\n */\n min: min_,\n\n /**\n * Returns the largest of the given non-negative integers.\n *\n * @param values - The non-negative integers to compare (at least one required)\n * @returns The largest value as a `NonNegativeInt16`\n */\n max: max_,\n\n /**\n * Clamps a `number` into the `NonNegativeInt16` range, rounding to the\n * nearest integer and constraining the result to `[MIN_VALUE, MAX_VALUE]`.\n *\n * @param value - The value to clamp\n * @returns The clamped value as a `NonNegativeInt16`\n */\n clamp,\n\n /**\n * Generates a random `NonNegativeInt16` within the given range.\n *\n * The range is inclusive on both ends.\n *\n * @param min - The minimum value (inclusive)\n * @param max - The maximum value (inclusive)\n * @returns A random `NonNegativeInt16` in `[min, max]`\n */\n random,\n\n /**\n * Raises `a` to the power `b`, returning `a ** b` as a `NonNegativeInt16`\n * (floored to an integer).\n *\n * @param a - The base non-negative integer\n * @param b - The exponent non-negative integer\n * @returns `a ** b` as a `NonNegativeInt16`\n */\n pow,\n\n /**\n * Adds two non-negative integers, returning `a + b` as a `NonNegativeInt16`.\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 a `NonNegativeInt16`\n */\n add,\n\n /**\n * Subtracts two non-negative integers, returning `a - b` as a\n * `NonNegativeInt16`.\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 a `NonNegativeInt16`\n */\n sub,\n\n /**\n * Multiplies two non-negative integers, returning `a * b` as a\n * `NonNegativeInt16`.\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 a `NonNegativeInt16`\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 a\n * `NonNegativeInt16`.\n *\n * @param a - The dividend\n * @param b - The divisor (must be non-zero)\n * @returns The floored quotient as a `NonNegativeInt16`\n */\n div,\n} as const;\n\nexpectType<\n keyof typeof NonNegativeInt16,\n keyof TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'non-negative' | 'range'\n >\n>('=');\n\nexpectType<\n typeof NonNegativeInt16,\n TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'non-negative' | 'range'\n >\n>('<=');\n"],"names":[],"mappings":";;AAQA,MAAM,iBAAA,GAAoB,qCAAA;AAE1B,MAAM;AAAA,EACJ,SAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAA;AAAA,EACA,QAAA;AAAA,EACA,KAAA;AAAA,EACA,GAAA;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,aAAA;AAAA,EACtB,SAAA,EAAW,CAAA;AAAA,EACX,SAAA,EAAW,KAAK,EAAA,GAAK,CAAA;AAAA,EACrB;AACF,CAAU,CAAA;AAWH,MAAM,kBAAA,GAAqB;AAY3B,MAAM,kBAAA,GAAqB;AAS3B,MAAM,gBAAA,GAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ9B,EAAA;AAAA;AAAA;AAAA;AAAA,EAKA,SAAA;AAAA;AAAA;AAAA;AAAA,EAKA,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,GAAA,EAAK,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQL,GAAA,EAAK,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASL,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,MAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA;AACF;;;;"}
@@ -1,19 +1,24 @@
1
1
  import { type NonNegativeInt32 as TtfImported_NonNegativeInt32 } from 'ts-type-forge';
2
2
  export type NonNegativeInt32 = TtfImported_NonNegativeInt32;
3
3
  /**
4
- * Checks if a number is a NonNegativeInt32 (32-bit non-negative signed integer
5
- * in the range [0, 2^31)).
4
+ * Type guard that checks if a value is a non-negative integer in [0, 2^31).
6
5
  *
7
- * @param value The value to check.
8
- * @returns `true` if the value is a NonNegativeInt32, `false` otherwise.
6
+ * Returns `true` for a non-negative integer in [0, 2^31) — a value with no
7
+ * fractional component.
8
+ *
9
+ * @param value - The value to check
10
+ * @returns `true` if the value is a non-negative integer in [0, 2^31), `false` otherwise
9
11
  */
10
12
  export declare const isNonNegativeInt32: (a: number) => a is TtfImported_NonNegativeInt32;
11
13
  /**
12
- * Casts a number to a NonNegativeInt32 type.
14
+ * Casts a `number` to the `NonNegativeInt32` branded type.
15
+ *
16
+ * Validates that the value is a non-negative integer in [0, 2^31) and returns
17
+ * it with the `NonNegativeInt32` brand. Throws a `TypeError` otherwise.
13
18
  *
14
- * @param value The value to cast.
15
- * @returns The value as a NonNegativeInt32 type.
16
- * @throws {TypeError} If the value is not a non-negative integer in [0, 2^31).
19
+ * @param value - The value to cast
20
+ * @returns The value as a `NonNegativeInt32`
21
+ * @throws {TypeError} If the value is not a non-negative integer in [0, 2^31)
17
22
  */
18
23
  export declare const asNonNegativeInt32: <N extends number>(x: N) => number & {
19
24
  readonly "< 2^31": true;
@@ -31,103 +36,104 @@ export declare const asNonNegativeInt32: <N extends number>(x: N) => number & {
31
36
  'TSTypeForgeInternals--edd2f9ce-7ca5-45b0-9d1a-bd61b9b5d9c3': unknown;
32
37
  }> & N;
33
38
  /**
34
- * Namespace providing type-safe arithmetic operations for 32-bit non-negative
35
- * integers.
39
+ * Namespace providing type-safe operations for the `NonNegativeInt32` branded
40
+ * type.
36
41
  *
37
- * All operations automatically clamp results to the valid NonNegativeInt32
38
- * range [0, 2147483647]. This ensures that all arithmetic maintains the 32-bit
39
- * non-negative integer constraint, with negative results clamped to 0 and
40
- * overflow results clamped to MAX_VALUE.
42
+ * The `NonNegativeInt32` type represents a non-negative integer in [0, 2^31).
43
+ * Division (`div`) uses floor division.
41
44
  */
42
45
  export declare const NonNegativeInt32: {
43
46
  /**
44
- * Type guard to check if a value is a NonNegativeInt32.
47
+ * Type guard that checks if a value is a non-negative integer in [0, 2^31).
45
48
  *
46
- * @param value The value to check.
47
- * @returns `true` if the value is a 32-bit non-negative integer, `false`
48
- * otherwise.
49
+ * @param value - The value to check
50
+ * @returns `true` if the value is a non-negative integer in [0, 2^31), `false` otherwise
51
+ * @see {@link isNonNegativeInt32} for usage examples
49
52
  */
50
53
  readonly is: (a: number) => a is TtfImported_NonNegativeInt32;
51
54
  /**
52
- * The minimum value for a 32-bit non-negative integer.
53
- *
54
- * @readonly
55
+ * The smallest value representable as `NonNegativeInt32`.
55
56
  */
56
57
  readonly MIN_VALUE: 0;
57
58
  /**
58
- * The maximum value for a 32-bit non-negative integer.
59
- *
60
- * @readonly
59
+ * The largest value representable as `NonNegativeInt32`.
61
60
  */
62
61
  readonly MAX_VALUE: number;
63
62
  /**
64
- * Returns the smaller of two NonNegativeInt32 values.
63
+ * Returns the smallest of the given non-negative integers.
65
64
  *
66
- * @param a The first NonNegativeInt32.
67
- * @param b The second NonNegativeInt32.
68
- * @returns The minimum value as a NonNegativeInt32.
65
+ * @param values - The non-negative integers to compare (at least one required)
66
+ * @returns The smallest value as a `NonNegativeInt32`
69
67
  */
70
68
  readonly min: (...values: readonly import("ts-type-forge").WithSmallInt<TtfImported_NonNegativeInt32>[]) => TtfImported_NonNegativeInt32;
71
69
  /**
72
- * Returns the larger of two NonNegativeInt32 values.
70
+ * Returns the largest of the given non-negative integers.
73
71
  *
74
- * @param a The first NonNegativeInt32.
75
- * @param b The second NonNegativeInt32.
76
- * @returns The maximum value as a NonNegativeInt32.
72
+ * @param values - The non-negative integers to compare (at least one required)
73
+ * @returns The largest value as a `NonNegativeInt32`
77
74
  */
78
75
  readonly max: (...values: readonly import("ts-type-forge").WithSmallInt<TtfImported_NonNegativeInt32>[]) => TtfImported_NonNegativeInt32;
79
76
  /**
80
- * Clamps a number to the NonNegativeInt32 range.
77
+ * Clamps a `number` into the `NonNegativeInt32` range, rounding to the
78
+ * nearest integer and constraining the result to `[MIN_VALUE, MAX_VALUE]`.
81
79
  *
82
- * @param value The number to clamp.
83
- * @returns The value clamped to [0, 2147483647] as a NonNegativeInt32.
80
+ * @param value - The value to clamp
81
+ * @returns The clamped value as a `NonNegativeInt32`
84
82
  */
85
83
  readonly clamp: (x: number) => TtfImported_NonNegativeInt32;
86
84
  /**
87
- * Generates a random NonNegativeInt32 value within the valid range.
85
+ * Generates a random `NonNegativeInt32` within the given range.
86
+ *
87
+ * The range is inclusive on both ends.
88
88
  *
89
- * @returns A random NonNegativeInt32 between 0 and 2147483647.
89
+ * @param min - The minimum value (inclusive)
90
+ * @param max - The maximum value (inclusive)
91
+ * @returns A random `NonNegativeInt32` in `[min, max]`
90
92
  */
91
93
  readonly random: (min?: import("ts-type-forge").WithSmallInt<TtfImported_NonNegativeInt32> | undefined, max?: import("ts-type-forge").WithSmallInt<TtfImported_NonNegativeInt32> | undefined) => TtfImported_NonNegativeInt32;
92
94
  /**
93
- * Raises a NonNegativeInt32 to the power of another NonNegativeInt32.
95
+ * Raises `a` to the power `b`, returning `a ** b` as a `NonNegativeInt32`
96
+ * (floored to an integer).
94
97
  *
95
- * @param a The base NonNegativeInt32.
96
- * @param b The exponent NonNegativeInt32.
97
- * @returns `a ** b` clamped to [0, 2147483647] as a NonNegativeInt32.
98
+ * @param a - The base non-negative integer
99
+ * @param b - The exponent non-negative integer
100
+ * @returns `a ** b` as a `NonNegativeInt32`
98
101
  */
99
102
  readonly pow: (x: import("ts-type-forge").WithSmallInt<TtfImported_NonNegativeInt32>, y: import("ts-type-forge").WithSmallInt<TtfImported_NonNegativeInt32>) => TtfImported_NonNegativeInt32;
100
103
  /**
101
- * Adds two NonNegativeInt32 values.
104
+ * Adds two non-negative integers, returning `a + b` as a `NonNegativeInt32`.
102
105
  *
103
- * @param a The first NonNegativeInt32.
104
- * @param b The second NonNegativeInt32.
105
- * @returns `a + b` clamped to [0, 2147483647] as a NonNegativeInt32.
106
+ * @param a - The first non-negative integer
107
+ * @param b - The second non-negative integer
108
+ * @returns The sum of `a` and `b` as a `NonNegativeInt32`
106
109
  */
107
110
  readonly add: (x: import("ts-type-forge").WithSmallInt<TtfImported_NonNegativeInt32>, y: import("ts-type-forge").WithSmallInt<TtfImported_NonNegativeInt32>) => TtfImported_NonNegativeInt32;
108
111
  /**
109
- * Subtracts one NonNegativeInt32 from another.
112
+ * Subtracts two non-negative integers, returning `a - b` as a
113
+ * `NonNegativeInt32`.
110
114
  *
111
- * @param a The minuend NonNegativeInt32.
112
- * @param b The subtrahend NonNegativeInt32.
113
- * @returns `a - b` clamped to [0, 2147483647] as a NonNegativeInt32 (minimum
114
- * 0).
115
+ * @param a - The first non-negative integer
116
+ * @param b - The second non-negative integer
117
+ * @returns The difference of `a` and `b` as a `NonNegativeInt32`
115
118
  */
116
119
  readonly sub: (x: import("ts-type-forge").WithSmallInt<TtfImported_NonNegativeInt32>, y: import("ts-type-forge").WithSmallInt<TtfImported_NonNegativeInt32>) => TtfImported_NonNegativeInt32;
117
120
  /**
118
- * Multiplies two NonNegativeInt32 values.
121
+ * Multiplies two non-negative integers, returning `a * b` as a
122
+ * `NonNegativeInt32`.
119
123
  *
120
- * @param a The first NonNegativeInt32.
121
- * @param b The second NonNegativeInt32.
122
- * @returns `a * b` clamped to [0, 2147483647] as a NonNegativeInt32.
124
+ * @param a - The first non-negative integer
125
+ * @param b - The second non-negative integer
126
+ * @returns The product of `a` and `b` as a `NonNegativeInt32`
123
127
  */
124
128
  readonly mul: (x: import("ts-type-forge").WithSmallInt<TtfImported_NonNegativeInt32>, y: import("ts-type-forge").WithSmallInt<TtfImported_NonNegativeInt32>) => TtfImported_NonNegativeInt32;
125
129
  /**
126
- * Divides one NonNegativeInt32 by another using floor division.
130
+ * Divides two non-negative integers using floor division (`⌊a / b⌋`): the
131
+ * result is `a / b` rounded toward negative infinity, as a
132
+ * `NonNegativeInt32`.
127
133
  *
128
- * @param a The dividend NonNegativeInt32.
129
- * @param b The divisor NonNegativeInt32.
130
- * @returns `⌊a / b⌋` clamped to [0, 2147483647] as a NonNegativeInt32.
134
+ * @param a - The dividend
135
+ * @param b - The divisor (must be non-zero)
136
+ * @returns The floored quotient as a `NonNegativeInt32`
131
137
  */
132
138
  readonly div: (x: import("ts-type-forge").WithSmallInt<TtfImported_NonNegativeInt32>, y: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | import("ts-type-forge").NormalizeBrandUnion<number & {
133
139
  readonly "!=0": true;
@@ -1 +1 @@
1
- {"version":3,"file":"non-negative-int32.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/non-negative-int32.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,IAAI,4BAA4B,EAAE,MAAM,eAAe,CAAC;AAItF,MAAM,MAAM,gBAAgB,GAAG,4BAA4B,CAAC;AA+B5D;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,kDAAK,CAAC;AAErC;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;MAAW,CAAC;AAE3C;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB;IAC3B;;;;;;OAMG;;IAGH;;;;OAIG;;IAGH;;;;OAIG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;OAKG;;IAGH;;;;OAIG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;;;OAOG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;;;;;;;;;;;;;;;;CAEK,CAAC"}
1
+ {"version":3,"file":"non-negative-int32.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/non-negative-int32.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,IAAI,4BAA4B,EAAE,MAAM,eAAe,CAAC;AAItF,MAAM,MAAM,gBAAgB,GAAG,4BAA4B,CAAC;AA+B5D;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,kDAAK,CAAC;AAErC;;;;;;;;;GASG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;MAAW,CAAC;AAE3C;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB;IAC3B;;;;;;OAMG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;;;;OAKG;;IAGH;;;;;OAKG;;IAGH;;;;;;OAMG;;IAGH;;;;;;;;OAQG;;IAGH;;;;;;;OAOG;;IAGH;;;;;;OAMG;;IAGH;;;;;;;OAOG;;IAGH;;;;;;;OAOG;;IAGH;;;;;;;;OAQG;;;;;;;;;;;;;;;;;CAEK,CAAC"}
@@ -25,93 +25,96 @@ const isNonNegativeInt32 = is;
25
25
  const asNonNegativeInt32 = castType;
26
26
  const NonNegativeInt32 = {
27
27
  /**
28
- * Type guard to check if a value is a NonNegativeInt32.
28
+ * Type guard that checks if a value is a non-negative integer in [0, 2^31).
29
29
  *
30
- * @param value The value to check.
31
- * @returns `true` if the value is a 32-bit non-negative integer, `false`
32
- * otherwise.
30
+ * @param value - The value to check
31
+ * @returns `true` if the value is a non-negative integer in [0, 2^31), `false` otherwise
32
+ * @see {@link isNonNegativeInt32} for usage examples
33
33
  */
34
34
  is,
35
35
  /**
36
- * The minimum value for a 32-bit non-negative integer.
37
- *
38
- * @readonly
36
+ * The smallest value representable as `NonNegativeInt32`.
39
37
  */
40
38
  MIN_VALUE,
41
39
  /**
42
- * The maximum value for a 32-bit non-negative integer.
43
- *
44
- * @readonly
40
+ * The largest value representable as `NonNegativeInt32`.
45
41
  */
46
42
  MAX_VALUE,
47
43
  /**
48
- * Returns the smaller of two NonNegativeInt32 values.
44
+ * Returns the smallest of the given non-negative integers.
49
45
  *
50
- * @param a The first NonNegativeInt32.
51
- * @param b The second NonNegativeInt32.
52
- * @returns The minimum value as a NonNegativeInt32.
46
+ * @param values - The non-negative integers to compare (at least one required)
47
+ * @returns The smallest value as a `NonNegativeInt32`
53
48
  */
54
49
  min: min_,
55
50
  /**
56
- * Returns the larger of two NonNegativeInt32 values.
51
+ * Returns the largest of the given non-negative integers.
57
52
  *
58
- * @param a The first NonNegativeInt32.
59
- * @param b The second NonNegativeInt32.
60
- * @returns The maximum value as a NonNegativeInt32.
53
+ * @param values - The non-negative integers to compare (at least one required)
54
+ * @returns The largest value as a `NonNegativeInt32`
61
55
  */
62
56
  max: max_,
63
57
  /**
64
- * Clamps a number to the NonNegativeInt32 range.
58
+ * Clamps a `number` into the `NonNegativeInt32` range, rounding to the
59
+ * nearest integer and constraining the result to `[MIN_VALUE, MAX_VALUE]`.
65
60
  *
66
- * @param value The number to clamp.
67
- * @returns The value clamped to [0, 2147483647] as a NonNegativeInt32.
61
+ * @param value - The value to clamp
62
+ * @returns The clamped value as a `NonNegativeInt32`
68
63
  */
69
64
  clamp,
70
65
  /**
71
- * Generates a random NonNegativeInt32 value within the valid range.
66
+ * Generates a random `NonNegativeInt32` within the given range.
67
+ *
68
+ * The range is inclusive on both ends.
72
69
  *
73
- * @returns A random NonNegativeInt32 between 0 and 2147483647.
70
+ * @param min - The minimum value (inclusive)
71
+ * @param max - The maximum value (inclusive)
72
+ * @returns A random `NonNegativeInt32` in `[min, max]`
74
73
  */
75
74
  random,
76
75
  /**
77
- * Raises a NonNegativeInt32 to the power of another NonNegativeInt32.
76
+ * Raises `a` to the power `b`, returning `a ** b` as a `NonNegativeInt32`
77
+ * (floored to an integer).
78
78
  *
79
- * @param a The base NonNegativeInt32.
80
- * @param b The exponent NonNegativeInt32.
81
- * @returns `a ** b` clamped to [0, 2147483647] as a NonNegativeInt32.
79
+ * @param a - The base non-negative integer
80
+ * @param b - The exponent non-negative integer
81
+ * @returns `a ** b` as a `NonNegativeInt32`
82
82
  */
83
83
  pow,
84
84
  /**
85
- * Adds two NonNegativeInt32 values.
85
+ * Adds two non-negative integers, returning `a + b` as a `NonNegativeInt32`.
86
86
  *
87
- * @param a The first NonNegativeInt32.
88
- * @param b The second NonNegativeInt32.
89
- * @returns `a + b` clamped to [0, 2147483647] as a NonNegativeInt32.
87
+ * @param a - The first non-negative integer
88
+ * @param b - The second non-negative integer
89
+ * @returns The sum of `a` and `b` as a `NonNegativeInt32`
90
90
  */
91
91
  add,
92
92
  /**
93
- * Subtracts one NonNegativeInt32 from another.
93
+ * Subtracts two non-negative integers, returning `a - b` as a
94
+ * `NonNegativeInt32`.
94
95
  *
95
- * @param a The minuend NonNegativeInt32.
96
- * @param b The subtrahend NonNegativeInt32.
97
- * @returns `a - b` clamped to [0, 2147483647] as a NonNegativeInt32 (minimum
98
- * 0).
96
+ * @param a - The first non-negative integer
97
+ * @param b - The second non-negative integer
98
+ * @returns The difference of `a` and `b` as a `NonNegativeInt32`
99
99
  */
100
100
  sub,
101
101
  /**
102
- * Multiplies two NonNegativeInt32 values.
102
+ * Multiplies two non-negative integers, returning `a * b` as a
103
+ * `NonNegativeInt32`.
103
104
  *
104
- * @param a The first NonNegativeInt32.
105
- * @param b The second NonNegativeInt32.
106
- * @returns `a * b` clamped to [0, 2147483647] as a NonNegativeInt32.
105
+ * @param a - The first non-negative integer
106
+ * @param b - The second non-negative integer
107
+ * @returns The product of `a` and `b` as a `NonNegativeInt32`
107
108
  */
108
109
  mul,
109
110
  /**
110
- * Divides one NonNegativeInt32 by another using floor division.
111
+ * Divides two non-negative integers using floor division (`⌊a / b⌋`): the
112
+ * result is `a / b` rounded toward negative infinity, as a
113
+ * `NonNegativeInt32`.
111
114
  *
112
- * @param a The dividend NonNegativeInt32.
113
- * @param b The divisor NonNegativeInt32.
114
- * @returns `⌊a / b⌋` clamped to [0, 2147483647] as a NonNegativeInt32.
115
+ * @param a - The dividend
116
+ * @param b - The divisor (must be non-zero)
117
+ * @returns The floored quotient as a `NonNegativeInt32`
115
118
  */
116
119
  div
117
120
  };
@@ -1 +1 @@
1
- {"version":3,"file":"non-negative-int32.mjs","sources":["../../../src/number/branded-types/non-negative-int32.mts"],"sourcesContent":["import { type NonNegativeInt32 as TtfImported_NonNegativeInt32 } from 'ts-type-forge';\nimport { expectType } from '../../expect-type.mjs';\nimport { TsDataForgeInternals } from '../refined-number-utils.mjs';\n\nexport type NonNegativeInt32 = TtfImported_NonNegativeInt32;\n\ntype ElementType = NonNegativeInt32;\n\nconst typeNameInMessage = 'a non-negative integer in [0, 2^31)';\n\nconst {\n MAX_VALUE,\n MIN_VALUE,\n add,\n castType,\n clamp,\n div,\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: 'SafeInteger',\n MIN_VALUE: 0,\n MAX_VALUE: 2 ** 31 - 1,\n typeNameInMessage,\n} as const);\n\n/**\n * Checks if a number is a NonNegativeInt32 (32-bit non-negative signed integer\n * in the range [0, 2^31)).\n *\n * @param value The value to check.\n * @returns `true` if the value is a NonNegativeInt32, `false` otherwise.\n */\nexport const isNonNegativeInt32 = is;\n\n/**\n * Casts a number to a NonNegativeInt32 type.\n *\n * @param value The value to cast.\n * @returns The value as a NonNegativeInt32 type.\n * @throws {TypeError} If the value is not a non-negative integer in [0, 2^31).\n */\nexport const asNonNegativeInt32 = castType;\n\n/**\n * Namespace providing type-safe arithmetic operations for 32-bit non-negative\n * integers.\n *\n * All operations automatically clamp results to the valid NonNegativeInt32\n * range [0, 2147483647]. This ensures that all arithmetic maintains the 32-bit\n * non-negative integer constraint, with negative results clamped to 0 and\n * overflow results clamped to MAX_VALUE.\n */\nexport const NonNegativeInt32 = {\n /**\n * Type guard to check if a value is a NonNegativeInt32.\n *\n * @param value The value to check.\n * @returns `true` if the value is a 32-bit non-negative integer, `false`\n * otherwise.\n */\n is,\n\n /**\n * The minimum value for a 32-bit non-negative integer.\n *\n * @readonly\n */\n MIN_VALUE,\n\n /**\n * The maximum value for a 32-bit non-negative integer.\n *\n * @readonly\n */\n MAX_VALUE,\n\n /**\n * Returns the smaller of two NonNegativeInt32 values.\n *\n * @param a The first NonNegativeInt32.\n * @param b The second NonNegativeInt32.\n * @returns The minimum value as a NonNegativeInt32.\n */\n min: min_,\n\n /**\n * Returns the larger of two NonNegativeInt32 values.\n *\n * @param a The first NonNegativeInt32.\n * @param b The second NonNegativeInt32.\n * @returns The maximum value as a NonNegativeInt32.\n */\n max: max_,\n\n /**\n * Clamps a number to the NonNegativeInt32 range.\n *\n * @param value The number to clamp.\n * @returns The value clamped to [0, 2147483647] as a NonNegativeInt32.\n */\n clamp,\n\n /**\n * Generates a random NonNegativeInt32 value within the valid range.\n *\n * @returns A random NonNegativeInt32 between 0 and 2147483647.\n */\n random,\n\n /**\n * Raises a NonNegativeInt32 to the power of another NonNegativeInt32.\n *\n * @param a The base NonNegativeInt32.\n * @param b The exponent NonNegativeInt32.\n * @returns `a ** b` clamped to [0, 2147483647] as a NonNegativeInt32.\n */\n pow,\n\n /**\n * Adds two NonNegativeInt32 values.\n *\n * @param a The first NonNegativeInt32.\n * @param b The second NonNegativeInt32.\n * @returns `a + b` clamped to [0, 2147483647] as a NonNegativeInt32.\n */\n add,\n\n /**\n * Subtracts one NonNegativeInt32 from another.\n *\n * @param a The minuend NonNegativeInt32.\n * @param b The subtrahend NonNegativeInt32.\n * @returns `a - b` clamped to [0, 2147483647] as a NonNegativeInt32 (minimum\n * 0).\n */\n sub,\n\n /**\n * Multiplies two NonNegativeInt32 values.\n *\n * @param a The first NonNegativeInt32.\n * @param b The second NonNegativeInt32.\n * @returns `a * b` clamped to [0, 2147483647] as a NonNegativeInt32.\n */\n mul,\n\n /**\n * Divides one NonNegativeInt32 by another using floor division.\n *\n * @param a The dividend NonNegativeInt32.\n * @param b The divisor NonNegativeInt32.\n * @returns `⌊a / b⌋` clamped to [0, 2147483647] as a NonNegativeInt32.\n */\n div,\n} as const;\n\nexpectType<\n keyof typeof NonNegativeInt32,\n keyof TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'non-negative' | 'range'\n >\n>('=');\n\nexpectType<\n typeof NonNegativeInt32,\n TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'non-negative' | 'range'\n >\n>('<=');\n"],"names":[],"mappings":";;AAQA,MAAM,iBAAA,GAAoB,qCAAA;AAE1B,MAAM;AAAA,EACJ,SAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAA;AAAA,EACA,QAAA;AAAA,EACA,KAAA;AAAA,EACA,GAAA;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,aAAA;AAAA,EACtB,SAAA,EAAW,CAAA;AAAA,EACX,SAAA,EAAW,KAAK,EAAA,GAAK,CAAA;AAAA,EACrB;AACF,CAAU,CAAA;AASH,MAAM,kBAAA,GAAqB;AAS3B,MAAM,kBAAA,GAAqB;AAW3B,MAAM,gBAAA,GAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ9B,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,GAAA,EAAK,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASL,GAAA,EAAK,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQL,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA;AACF;;;;"}
1
+ {"version":3,"file":"non-negative-int32.mjs","sources":["../../../src/number/branded-types/non-negative-int32.mts"],"sourcesContent":["import { type NonNegativeInt32 as TtfImported_NonNegativeInt32 } from 'ts-type-forge';\nimport { expectType } from '../../expect-type.mjs';\nimport { TsDataForgeInternals } from '../refined-number-utils.mjs';\n\nexport type NonNegativeInt32 = TtfImported_NonNegativeInt32;\n\ntype ElementType = NonNegativeInt32;\n\nconst typeNameInMessage = 'a non-negative integer in [0, 2^31)';\n\nconst {\n MAX_VALUE,\n MIN_VALUE,\n add,\n castType,\n clamp,\n div,\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: 'SafeInteger',\n MIN_VALUE: 0,\n MAX_VALUE: 2 ** 31 - 1,\n typeNameInMessage,\n} as const);\n\n/**\n * Type guard that checks if a value is a non-negative integer in [0, 2^31).\n *\n * Returns `true` for a non-negative integer in [0, 2^31) — a value with no\n * fractional component.\n *\n * @param value - The value to check\n * @returns `true` if the value is a non-negative integer in [0, 2^31), `false` otherwise\n */\nexport const isNonNegativeInt32 = is;\n\n/**\n * Casts a `number` to the `NonNegativeInt32` branded type.\n *\n * Validates that the value is a non-negative integer in [0, 2^31) and returns\n * it with the `NonNegativeInt32` brand. Throws a `TypeError` otherwise.\n *\n * @param value - The value to cast\n * @returns The value as a `NonNegativeInt32`\n * @throws {TypeError} If the value is not a non-negative integer in [0, 2^31)\n */\nexport const asNonNegativeInt32 = castType;\n\n/**\n * Namespace providing type-safe operations for the `NonNegativeInt32` branded\n * type.\n *\n * The `NonNegativeInt32` type represents a non-negative integer in [0, 2^31).\n * Division (`div`) uses floor division.\n */\nexport const NonNegativeInt32 = {\n /**\n * Type guard that checks if a value is a non-negative integer in [0, 2^31).\n *\n * @param value - The value to check\n * @returns `true` if the value is a non-negative integer in [0, 2^31), `false` otherwise\n * @see {@link isNonNegativeInt32} for usage examples\n */\n is,\n\n /**\n * The smallest value representable as `NonNegativeInt32`.\n */\n MIN_VALUE,\n\n /**\n * The largest value representable as `NonNegativeInt32`.\n */\n MAX_VALUE,\n\n /**\n * Returns the smallest of the given non-negative integers.\n *\n * @param values - The non-negative integers to compare (at least one required)\n * @returns The smallest value as a `NonNegativeInt32`\n */\n min: min_,\n\n /**\n * Returns the largest of the given non-negative integers.\n *\n * @param values - The non-negative integers to compare (at least one required)\n * @returns The largest value as a `NonNegativeInt32`\n */\n max: max_,\n\n /**\n * Clamps a `number` into the `NonNegativeInt32` range, rounding to the\n * nearest integer and constraining the result to `[MIN_VALUE, MAX_VALUE]`.\n *\n * @param value - The value to clamp\n * @returns The clamped value as a `NonNegativeInt32`\n */\n clamp,\n\n /**\n * Generates a random `NonNegativeInt32` within the given range.\n *\n * The range is inclusive on both ends.\n *\n * @param min - The minimum value (inclusive)\n * @param max - The maximum value (inclusive)\n * @returns A random `NonNegativeInt32` in `[min, max]`\n */\n random,\n\n /**\n * Raises `a` to the power `b`, returning `a ** b` as a `NonNegativeInt32`\n * (floored to an integer).\n *\n * @param a - The base non-negative integer\n * @param b - The exponent non-negative integer\n * @returns `a ** b` as a `NonNegativeInt32`\n */\n pow,\n\n /**\n * Adds two non-negative integers, returning `a + b` as a `NonNegativeInt32`.\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 a `NonNegativeInt32`\n */\n add,\n\n /**\n * Subtracts two non-negative integers, returning `a - b` as a\n * `NonNegativeInt32`.\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 a `NonNegativeInt32`\n */\n sub,\n\n /**\n * Multiplies two non-negative integers, returning `a * b` as a\n * `NonNegativeInt32`.\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 a `NonNegativeInt32`\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 a\n * `NonNegativeInt32`.\n *\n * @param a - The dividend\n * @param b - The divisor (must be non-zero)\n * @returns The floored quotient as a `NonNegativeInt32`\n */\n div,\n} as const;\n\nexpectType<\n keyof typeof NonNegativeInt32,\n keyof TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'non-negative' | 'range'\n >\n>('=');\n\nexpectType<\n typeof NonNegativeInt32,\n TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'non-negative' | 'range'\n >\n>('<=');\n"],"names":[],"mappings":";;AAQA,MAAM,iBAAA,GAAoB,qCAAA;AAE1B,MAAM;AAAA,EACJ,SAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAA;AAAA,EACA,QAAA;AAAA,EACA,KAAA;AAAA,EACA,GAAA;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,aAAA;AAAA,EACtB,SAAA,EAAW,CAAA;AAAA,EACX,SAAA,EAAW,KAAK,EAAA,GAAK,CAAA;AAAA,EACrB;AACF,CAAU,CAAA;AAWH,MAAM,kBAAA,GAAqB;AAY3B,MAAM,kBAAA,GAAqB;AAS3B,MAAM,gBAAA,GAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ9B,EAAA;AAAA;AAAA;AAAA;AAAA,EAKA,SAAA;AAAA;AAAA;AAAA;AAAA,EAKA,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,GAAA,EAAK,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQL,GAAA,EAAK,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASL,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,MAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA;AACF;;;;"}