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
@@ -26,98 +26,102 @@ const isInt16 = is;
26
26
  const asInt16 = castType;
27
27
  const Int16 = {
28
28
  /**
29
- * Type guard to check if a value is an Int16.
29
+ * Type guard that checks if a value is an integer in [-2^15, 2^15).
30
30
  *
31
- * @param value The value to check.
32
- * @returns `true` if the value is a 16-bit signed integer, `false` otherwise.
31
+ * @param value - The value to check
32
+ * @returns `true` if the value is an integer in [-2^15, 2^15), `false` otherwise
33
+ * @see {@link isInt16} for usage examples
33
34
  */
34
35
  is,
35
36
  /**
36
- * The minimum value for a 16-bit signed integer.
37
- *
38
- * @readonly
37
+ * The smallest value representable as `Int16`.
39
38
  */
40
39
  MIN_VALUE,
41
40
  /**
42
- * The maximum value for a 16-bit signed integer.
43
- *
44
- * @readonly
41
+ * The largest value representable as `Int16`.
45
42
  */
46
43
  MAX_VALUE,
47
44
  /**
48
- * Returns the absolute value of a 16-bit signed integer.
45
+ * Returns the absolute value of an integer in [-2^15, 2^15).
49
46
  *
50
- * @param a The Int16 value.
51
- * @returns The absolute value as an Int16, clamped to valid range.
47
+ * The result is non-negative and keeps the `Int16` brand.
48
+ *
49
+ * @param a - The integer value
50
+ * @returns The absolute value as a non-negative `Int16`
52
51
  */
53
52
  abs,
54
53
  /**
55
- * Returns the smaller of two Int16 values.
54
+ * Returns the smallest of the given integers.
56
55
  *
57
- * @param a The first Int16.
58
- * @param b The second Int16.
59
- * @returns The minimum value as an Int16.
56
+ * @param values - The integers to compare (at least one required)
57
+ * @returns The smallest value as an `Int16`
60
58
  */
61
59
  min: min_,
62
60
  /**
63
- * Returns the larger of two Int16 values.
61
+ * Returns the largest of the given integers.
64
62
  *
65
- * @param a The first Int16.
66
- * @param b The second Int16.
67
- * @returns The maximum value as an Int16.
63
+ * @param values - The integers to compare (at least one required)
64
+ * @returns The largest value as an `Int16`
68
65
  */
69
66
  max: max_,
70
67
  /**
71
- * Clamps a number to the Int16 range.
68
+ * Clamps a `number` into the `Int16` range, rounding to the nearest integer
69
+ * and constraining the result to `[MIN_VALUE, MAX_VALUE]`.
72
70
  *
73
- * @param value The number to clamp.
74
- * @returns The value clamped to [-32768, 32767] as an Int16.
71
+ * @param value - The value to clamp
72
+ * @returns The clamped value as an `Int16`
75
73
  */
76
74
  clamp,
77
75
  /**
78
- * Generates a random Int16 value within the valid range.
76
+ * Generates a random `Int16` within the given range.
77
+ *
78
+ * The range is inclusive on both ends.
79
79
  *
80
- * @returns A random Int16 between MIN_VALUE and MAX_VALUE.
80
+ * @param min - The minimum value (inclusive)
81
+ * @param max - The maximum value (inclusive)
82
+ * @returns A random `Int16` in `[min, max]`
81
83
  */
82
84
  random,
83
85
  /**
84
- * Raises an Int16 to the power of another Int16.
86
+ * Raises `a` to the power `b`, returning `a ** b` as an `Int16` (floored to
87
+ * an integer).
85
88
  *
86
- * @param a The base Int16.
87
- * @param b The exponent Int16.
88
- * @returns `a ** b` clamped to [-32768, 32767] as an Int16.
89
+ * @param a - The base integer
90
+ * @param b - The exponent integer
91
+ * @returns `a ** b` as an `Int16`
89
92
  */
90
93
  pow,
91
94
  /**
92
- * Adds two Int16 values.
95
+ * Adds two integers, returning `a + b` as an `Int16`.
93
96
  *
94
- * @param a The first Int16.
95
- * @param b The second Int16.
96
- * @returns `a + b` clamped to [-32768, 32767] as an Int16.
97
+ * @param a - The first integer
98
+ * @param b - The second integer
99
+ * @returns The sum of `a` and `b` as an `Int16`
97
100
  */
98
101
  add,
99
102
  /**
100
- * Subtracts one Int16 from another.
103
+ * Subtracts two integers, returning `a - b` as an `Int16`.
101
104
  *
102
- * @param a The minuend Int16.
103
- * @param b The subtrahend Int16.
104
- * @returns `a - b` clamped to [-32768, 32767] as an Int16.
105
+ * @param a - The first integer
106
+ * @param b - The second integer
107
+ * @returns The difference of `a` and `b` as an `Int16`
105
108
  */
106
109
  sub,
107
110
  /**
108
- * Multiplies two Int16 values.
111
+ * Multiplies two integers, returning `a * b` as an `Int16`.
109
112
  *
110
- * @param a The first Int16.
111
- * @param b The second Int16.
112
- * @returns `a * b` clamped to [-32768, 32767] as an Int16.
113
+ * @param a - The first integer
114
+ * @param b - The second integer
115
+ * @returns The product of `a` and `b` as an `Int16`
113
116
  */
114
117
  mul,
115
118
  /**
116
- * Divides one Int16 by another using floor division.
119
+ * Divides two integers using floor division (`⌊a / b⌋`): the result is `a /
120
+ * b` rounded toward negative infinity, as an `Int16`.
117
121
  *
118
- * @param a The dividend Int16.
119
- * @param b The divisor Int16.
120
- * @returns `⌊a / b⌋` clamped to [-32768, 32767] as an Int16.
122
+ * @param a - The dividend
123
+ * @param b - The divisor (must be non-zero)
124
+ * @returns The floored quotient as an `Int16`
121
125
  */
122
126
  div
123
127
  };
@@ -1 +1 @@
1
- {"version":3,"file":"int16.mjs","sources":["../../../src/number/branded-types/int16.mts"],"sourcesContent":["import { type Int16 as TtfImported_Int16 } from 'ts-type-forge';\nimport { expectType } from '../../expect-type.mjs';\nimport { TsDataForgeInternals } from '../refined-number-utils.mjs';\n\nexport type Int16 = TtfImported_Int16;\n\ntype ElementType = Int16;\n\nconst typeNameInMessage = 'an integer in [-2^15, 2^15)';\n\nconst {\n MAX_VALUE,\n MIN_VALUE,\n abs,\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 number,\n number\n>({\n integerOrSafeInteger: 'SafeInteger',\n MIN_VALUE: -(2 ** 15),\n MAX_VALUE: 2 ** 15 - 1,\n typeNameInMessage,\n} as const);\n\n/**\n * Checks if a number is an Int16 (16-bit signed integer in the range [-2^15,\n * 2^15)).\n *\n * @param value The value to check.\n * @returns `true` if the value is an Int16, `false` otherwise.\n */\nexport const isInt16 = is;\n\n/**\n * Casts a number to an Int16 type.\n *\n * @param value The value to cast.\n * @returns The value as an Int16 type.\n * @throws {TypeError} If the value is not an integer in [-2^15, 2^15).\n */\nexport const asInt16 = castType;\n\n/**\n * Namespace providing type-safe arithmetic operations for 16-bit signed\n * integers.\n *\n * All operations automatically clamp results to the valid Int16 range [-32768,\n * 32767]. This ensures that all arithmetic maintains the 16-bit signed integer\n * constraint.\n */\nexport const Int16 = {\n /**\n * Type guard to check if a value is an Int16.\n *\n * @param value The value to check.\n * @returns `true` if the value is a 16-bit signed integer, `false` otherwise.\n */\n is,\n\n /**\n * The minimum value for a 16-bit signed integer.\n *\n * @readonly\n */\n MIN_VALUE,\n\n /**\n * The maximum value for a 16-bit signed integer.\n *\n * @readonly\n */\n MAX_VALUE,\n\n /**\n * Returns the absolute value of a 16-bit signed integer.\n *\n * @param a The Int16 value.\n * @returns The absolute value as an Int16, clamped to valid range.\n */\n abs,\n\n /**\n * Returns the smaller of two Int16 values.\n *\n * @param a The first Int16.\n * @param b The second Int16.\n * @returns The minimum value as an Int16.\n */\n min: min_,\n\n /**\n * Returns the larger of two Int16 values.\n *\n * @param a The first Int16.\n * @param b The second Int16.\n * @returns The maximum value as an Int16.\n */\n max: max_,\n\n /**\n * Clamps a number to the Int16 range.\n *\n * @param value The number to clamp.\n * @returns The value clamped to [-32768, 32767] as an Int16.\n */\n clamp,\n\n /**\n * Generates a random Int16 value within the valid range.\n *\n * @returns A random Int16 between MIN_VALUE and MAX_VALUE.\n */\n random,\n\n /**\n * Raises an Int16 to the power of another Int16.\n *\n * @param a The base Int16.\n * @param b The exponent Int16.\n * @returns `a ** b` clamped to [-32768, 32767] as an Int16.\n */\n pow,\n\n /**\n * Adds two Int16 values.\n *\n * @param a The first Int16.\n * @param b The second Int16.\n * @returns `a + b` clamped to [-32768, 32767] as an Int16.\n */\n add,\n\n /**\n * Subtracts one Int16 from another.\n *\n * @param a The minuend Int16.\n * @param b The subtrahend Int16.\n * @returns `a - b` clamped to [-32768, 32767] as an Int16.\n */\n sub,\n\n /**\n * Multiplies two Int16 values.\n *\n * @param a The first Int16.\n * @param b The second Int16.\n * @returns `a * b` clamped to [-32768, 32767] as an Int16.\n */\n mul,\n\n /**\n * Divides one Int16 by another using floor division.\n *\n * @param a The dividend Int16.\n * @param b The divisor Int16.\n * @returns `⌊a / b⌋` clamped to [-32768, 32767] as an Int16.\n */\n div,\n} as const;\n\nexpectType<\n keyof typeof Int16,\n keyof TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'range'\n >\n>('=');\n\nexpectType<\n typeof Int16,\n TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'range'\n >\n>('<=');\n"],"names":[],"mappings":";;AAQA,MAAM,iBAAA,GAAoB,6BAAA;AAE1B,MAAM;AAAA,EACJ,SAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAA;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,MAAO;AAAA,EAClB,SAAA,EAAW,KAAK,EAAA,GAAK,CAAA;AAAA,EACrB;AACF,CAAU,CAAA;AASH,MAAM,OAAA,GAAU;AAShB,MAAM,OAAA,GAAU;AAUhB,MAAM,KAAA,GAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOnB,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,GAAA;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":"int16.mjs","sources":["../../../src/number/branded-types/int16.mts"],"sourcesContent":["import { type Int16 as TtfImported_Int16 } from 'ts-type-forge';\nimport { expectType } from '../../expect-type.mjs';\nimport { TsDataForgeInternals } from '../refined-number-utils.mjs';\n\nexport type Int16 = TtfImported_Int16;\n\ntype ElementType = Int16;\n\nconst typeNameInMessage = 'an integer in [-2^15, 2^15)';\n\nconst {\n MAX_VALUE,\n MIN_VALUE,\n abs,\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 number,\n number\n>({\n integerOrSafeInteger: 'SafeInteger',\n MIN_VALUE: -(2 ** 15),\n MAX_VALUE: 2 ** 15 - 1,\n typeNameInMessage,\n} as const);\n\n/**\n * Type guard that checks if a value is an integer in [-2^15, 2^15).\n *\n * Returns `true` for an integer in [-2^15, 2^15) — a value with no fractional\n * component.\n *\n * @param value - The value to check\n * @returns `true` if the value is an integer in [-2^15, 2^15), `false` otherwise\n */\nexport const isInt16 = is;\n\n/**\n * Casts a `number` to the `Int16` branded type.\n *\n * Validates that the value is an integer in [-2^15, 2^15) and returns it with\n * the `Int16` brand. Throws a `TypeError` otherwise.\n *\n * @param value - The value to cast\n * @returns The value as an `Int16`\n * @throws {TypeError} If the value is not an integer in [-2^15, 2^15)\n */\nexport const asInt16 = castType;\n\n/**\n * Namespace providing type-safe operations for the `Int16` branded type.\n *\n * The `Int16` type represents an integer in [-2^15, 2^15). Division (`div`)\n * uses floor division.\n */\nexport const Int16 = {\n /**\n * Type guard that checks if a value is an integer in [-2^15, 2^15).\n *\n * @param value - The value to check\n * @returns `true` if the value is an integer in [-2^15, 2^15), `false` otherwise\n * @see {@link isInt16} for usage examples\n */\n is,\n\n /**\n * The smallest value representable as `Int16`.\n */\n MIN_VALUE,\n\n /**\n * The largest value representable as `Int16`.\n */\n MAX_VALUE,\n\n /**\n * Returns the absolute value of an integer in [-2^15, 2^15).\n *\n * The result is non-negative and keeps the `Int16` brand.\n *\n * @param a - The integer value\n * @returns The absolute value as a non-negative `Int16`\n */\n abs,\n\n /**\n * Returns the smallest of the given integers.\n *\n * @param values - The integers to compare (at least one required)\n * @returns The smallest value as an `Int16`\n */\n min: min_,\n\n /**\n * Returns the largest of the given integers.\n *\n * @param values - The integers to compare (at least one required)\n * @returns The largest value as an `Int16`\n */\n max: max_,\n\n /**\n * Clamps a `number` into the `Int16` range, rounding to the nearest integer\n * and constraining the result to `[MIN_VALUE, MAX_VALUE]`.\n *\n * @param value - The value to clamp\n * @returns The clamped value as an `Int16`\n */\n clamp,\n\n /**\n * Generates a random `Int16` 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 `Int16` in `[min, max]`\n */\n random,\n\n /**\n * Raises `a` to the power `b`, returning `a ** b` as an `Int16` (floored to\n * an integer).\n *\n * @param a - The base integer\n * @param b - The exponent integer\n * @returns `a ** b` as an `Int16`\n */\n pow,\n\n /**\n * Adds two integers, returning `a + b` as an `Int16`.\n *\n * @param a - The first integer\n * @param b - The second integer\n * @returns The sum of `a` and `b` as an `Int16`\n */\n add,\n\n /**\n * Subtracts two integers, returning `a - b` as an `Int16`.\n *\n * @param a - The first integer\n * @param b - The second integer\n * @returns The difference of `a` and `b` as an `Int16`\n */\n sub,\n\n /**\n * Multiplies two integers, returning `a * b` as an `Int16`.\n *\n * @param a - The first integer\n * @param b - The second integer\n * @returns The product of `a` and `b` as an `Int16`\n */\n mul,\n\n /**\n * Divides two integers using floor division (`⌊a / b⌋`): the result is `a /\n * b` rounded toward negative infinity, as an `Int16`.\n *\n * @param a - The dividend\n * @param b - The divisor (must be non-zero)\n * @returns The floored quotient as an `Int16`\n */\n div,\n} as const;\n\nexpectType<\n keyof typeof Int16,\n keyof TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'range'\n >\n>('=');\n\nexpectType<\n typeof Int16,\n TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'range'\n >\n>('<=');\n"],"names":[],"mappings":";;AAQA,MAAM,iBAAA,GAAoB,6BAAA;AAE1B,MAAM;AAAA,EACJ,SAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAA;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,MAAO;AAAA,EAClB,SAAA,EAAW,KAAK,EAAA,GAAK,CAAA;AAAA,EACrB;AACF,CAAU,CAAA;AAWH,MAAM,OAAA,GAAU;AAYhB,MAAM,OAAA,GAAU;AAQhB,MAAM,KAAA,GAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQnB,EAAA;AAAA;AAAA;AAAA;AAAA,EAKA,SAAA;AAAA;AAAA;AAAA;AAAA,EAKA,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,GAAA;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,EASA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA;AACF;;;;"}
@@ -1,19 +1,24 @@
1
1
  import { type Int32 as TtfImported_Int32 } from 'ts-type-forge';
2
2
  export type Int32 = TtfImported_Int32;
3
3
  /**
4
- * Checks if a number is an Int32 (32-bit signed integer in the range [-2^31,
5
- * 2^31)).
4
+ * Type guard that checks if a value is an integer in [-2^31, 2^31).
6
5
  *
7
- * @param value The value to check.
8
- * @returns `true` if the value is an Int32, `false` otherwise.
6
+ * Returns `true` for an integer in [-2^31, 2^31) — a value with no fractional
7
+ * component.
8
+ *
9
+ * @param value - The value to check
10
+ * @returns `true` if the value is an integer in [-2^31, 2^31), `false` otherwise
9
11
  */
10
12
  export declare const isInt32: (a: number) => a is TtfImported_Int32;
11
13
  /**
12
- * Casts a number to an Int32 type.
14
+ * Casts a `number` to the `Int32` branded type.
15
+ *
16
+ * Validates that the value is an integer in [-2^31, 2^31) and returns it with
17
+ * the `Int32` brand. Throws a `TypeError` otherwise.
13
18
  *
14
- * @param value The value to cast.
15
- * @returns The value as an Int32 type.
16
- * @throws {TypeError} If the value is not an integer in [-2^31, 2^31).
19
+ * @param value - The value to cast
20
+ * @returns The value as an `Int32`
21
+ * @throws {TypeError} If the value is not an integer in [-2^31, 2^31)
17
22
  */
18
23
  export declare const asInt32: <N extends number>(x: N) => number & {
19
24
  readonly "< 2^31": true;
@@ -28,107 +33,109 @@ export declare const asInt32: <N extends number>(x: N) => number & {
28
33
  'TSTypeForgeInternals--edd2f9ce-7ca5-45b0-9d1a-bd61b9b5d9c3': unknown;
29
34
  }> & N;
30
35
  /**
31
- * Namespace providing type-safe arithmetic operations for 32-bit signed
32
- * integers.
36
+ * Namespace providing type-safe operations for the `Int32` branded type.
33
37
  *
34
- * All operations automatically clamp results to the valid Int32 range
35
- * [-2147483648, 2147483647]. This ensures that all arithmetic maintains the
36
- * 32-bit signed integer constraint, preventing overflow.
38
+ * The `Int32` type represents an integer in [-2^31, 2^31). Division (`div`)
39
+ * uses floor division.
37
40
  */
38
41
  export declare const Int32: {
39
42
  /**
40
- * Type guard to check if a value is an Int32.
43
+ * Type guard that checks if a value is an integer in [-2^31, 2^31).
41
44
  *
42
- * @param value The value to check.
43
- * @returns `true` if the value is a 32-bit signed integer, `false` otherwise.
45
+ * @param value - The value to check
46
+ * @returns `true` if the value is an integer in [-2^31, 2^31), `false` otherwise
47
+ * @see {@link isInt32} for usage examples
44
48
  */
45
49
  readonly is: (a: number) => a is TtfImported_Int32;
46
50
  /**
47
- * The minimum value for a 32-bit signed integer.
48
- *
49
- * @readonly
51
+ * The smallest value representable as `Int32`.
50
52
  */
51
53
  readonly MIN_VALUE: number;
52
54
  /**
53
- * The maximum value for a 32-bit signed integer.
54
- *
55
- * @readonly
55
+ * The largest value representable as `Int32`.
56
56
  */
57
57
  readonly MAX_VALUE: number;
58
58
  /**
59
- * Returns the absolute value of a 32-bit signed integer.
59
+ * Returns the absolute value of an integer in [-2^31, 2^31).
60
+ *
61
+ * The result is non-negative and keeps the `Int32` brand.
60
62
  *
61
- * @param a The Int32 value.
62
- * @returns The absolute value as an Int32, clamped to valid range.
63
+ * @param a - The integer value
64
+ * @returns The absolute value as a non-negative `Int32`
63
65
  */
64
66
  readonly abs: (x: import("ts-type-forge").WithSmallInt<TtfImported_Int32>) => import("ts-type-forge").IntersectBrand<TtfImported_Int32, import("ts-type-forge").NonNegativeNumber>;
65
67
  /**
66
- * Returns the smaller of two Int32 values.
68
+ * Returns the smallest of the given integers.
67
69
  *
68
- * @param a The first Int32.
69
- * @param b The second Int32.
70
- * @returns The minimum value as an Int32.
70
+ * @param values - The integers to compare (at least one required)
71
+ * @returns The smallest value as an `Int32`
71
72
  */
72
73
  readonly min: (...values: readonly import("ts-type-forge").WithSmallInt<TtfImported_Int32>[]) => TtfImported_Int32;
73
74
  /**
74
- * Returns the larger of two Int32 values.
75
+ * Returns the largest of the given integers.
75
76
  *
76
- * @param a The first Int32.
77
- * @param b The second Int32.
78
- * @returns The maximum value as an Int32.
77
+ * @param values - The integers to compare (at least one required)
78
+ * @returns The largest value as an `Int32`
79
79
  */
80
80
  readonly max: (...values: readonly import("ts-type-forge").WithSmallInt<TtfImported_Int32>[]) => TtfImported_Int32;
81
81
  /**
82
- * Clamps a number to the Int32 range.
82
+ * Clamps a `number` into the `Int32` range, rounding to the nearest integer
83
+ * and constraining the result to `[MIN_VALUE, MAX_VALUE]`.
83
84
  *
84
- * @param value The number to clamp.
85
- * @returns The value clamped to [-2147483648, 2147483647] as an Int32.
85
+ * @param value - The value to clamp
86
+ * @returns The clamped value as an `Int32`
86
87
  */
87
88
  readonly clamp: (x: number) => TtfImported_Int32;
88
89
  /**
89
- * Generates a random Int32 value within the valid range.
90
+ * Generates a random `Int32` within the given range.
91
+ *
92
+ * The range is inclusive on both ends.
90
93
  *
91
- * @returns A random Int32 between MIN_VALUE and MAX_VALUE.
94
+ * @param min - The minimum value (inclusive)
95
+ * @param max - The maximum value (inclusive)
96
+ * @returns A random `Int32` in `[min, max]`
92
97
  */
93
98
  readonly random: (min?: import("ts-type-forge").WithSmallInt<TtfImported_Int32> | undefined, max?: import("ts-type-forge").WithSmallInt<TtfImported_Int32> | undefined) => TtfImported_Int32;
94
99
  /**
95
- * Raises an Int32 to the power of another Int32.
100
+ * Raises `a` to the power `b`, returning `a ** b` as an `Int32` (floored to
101
+ * an integer).
96
102
  *
97
- * @param a The base Int32.
98
- * @param b The exponent Int32.
99
- * @returns `a ** b` clamped to [-2147483648, 2147483647] as an Int32.
103
+ * @param a - The base integer
104
+ * @param b - The exponent integer
105
+ * @returns `a ** b` as an `Int32`
100
106
  */
101
107
  readonly pow: (x: import("ts-type-forge").WithSmallInt<TtfImported_Int32>, y: import("ts-type-forge").WithSmallInt<TtfImported_Int32>) => TtfImported_Int32;
102
108
  /**
103
- * Adds two Int32 values.
109
+ * Adds two integers, returning `a + b` as an `Int32`.
104
110
  *
105
- * @param a The first Int32.
106
- * @param b The second Int32.
107
- * @returns `a + b` clamped to [-2147483648, 2147483647] as an Int32.
111
+ * @param a - The first integer
112
+ * @param b - The second integer
113
+ * @returns The sum of `a` and `b` as an `Int32`
108
114
  */
109
115
  readonly add: (x: import("ts-type-forge").WithSmallInt<TtfImported_Int32>, y: import("ts-type-forge").WithSmallInt<TtfImported_Int32>) => TtfImported_Int32;
110
116
  /**
111
- * Subtracts one Int32 from another.
117
+ * Subtracts two integers, returning `a - b` as an `Int32`.
112
118
  *
113
- * @param a The minuend Int32.
114
- * @param b The subtrahend Int32.
115
- * @returns `a - b` clamped to [-2147483648, 2147483647] as an Int32.
119
+ * @param a - The first integer
120
+ * @param b - The second integer
121
+ * @returns The difference of `a` and `b` as an `Int32`
116
122
  */
117
123
  readonly sub: (x: import("ts-type-forge").WithSmallInt<TtfImported_Int32>, y: import("ts-type-forge").WithSmallInt<TtfImported_Int32>) => TtfImported_Int32;
118
124
  /**
119
- * Multiplies two Int32 values.
125
+ * Multiplies two integers, returning `a * b` as an `Int32`.
120
126
  *
121
- * @param a The first Int32.
122
- * @param b The second Int32.
123
- * @returns `a * b` clamped to [-2147483648, 2147483647] as an Int32.
127
+ * @param a - The first integer
128
+ * @param b - The second integer
129
+ * @returns The product of `a` and `b` as an `Int32`
124
130
  */
125
131
  readonly mul: (x: import("ts-type-forge").WithSmallInt<TtfImported_Int32>, y: import("ts-type-forge").WithSmallInt<TtfImported_Int32>) => TtfImported_Int32;
126
132
  /**
127
- * Divides one Int32 by another using floor division.
133
+ * Divides two integers using floor division (`⌊a / b⌋`): the result is `a /
134
+ * b` rounded toward negative infinity, as an `Int32`.
128
135
  *
129
- * @param a The dividend Int32.
130
- * @param b The divisor Int32.
131
- * @returns `⌊a / b⌋` clamped to [-2147483648, 2147483647] as an Int32.
136
+ * @param a - The dividend
137
+ * @param b - The divisor (must be non-zero)
138
+ * @returns The floored quotient as an `Int32`
132
139
  */
133
140
  readonly div: (x: import("ts-type-forge").WithSmallInt<TtfImported_Int32>, y: -40 | -39 | -38 | -37 | -36 | -35 | -34 | -33 | -32 | -31 | -30 | -29 | -28 | -27 | -26 | -25 | -24 | -23 | -22 | -21 | -20 | -19 | -18 | -17 | -16 | -15 | -14 | -13 | -12 | -11 | -10 | -9 | -8 | -7 | -6 | -5 | -4 | -3 | -2 | -1 | 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 & {
134
141
  readonly "!=0": true;
@@ -1 +1 @@
1
- {"version":3,"file":"int32.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/int32.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,IAAI,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAIhE,MAAM,MAAM,KAAK,GAAG,iBAAiB,CAAC;AAgCtC;;;;;;GAMG;AACH,eAAO,MAAM,OAAO,uCAAK,CAAC;AAE1B;;;;;;GAMG;AACH,eAAO,MAAM,OAAO;;;;;;;;;;;MAAW,CAAC;AAEhC;;;;;;;GAOG;AACH,eAAO,MAAM,KAAK;IAChB;;;;;OAKG;;IAGH;;;;OAIG;;IAGH;;;;OAIG;;IAGH;;;;;OAKG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;OAKG;;IAGH;;;;OAIG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;;;;;;;;;;;;;CAEK,CAAC"}
1
+ {"version":3,"file":"int32.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/int32.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,IAAI,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAIhE,MAAM,MAAM,KAAK,GAAG,iBAAiB,CAAC;AAgCtC;;;;;;;;GAQG;AACH,eAAO,MAAM,OAAO,uCAAK,CAAC;AAE1B;;;;;;;;;GASG;AACH,eAAO,MAAM,OAAO;;;;;;;;;;;MAAW,CAAC;AAEhC;;;;;GAKG;AACH,eAAO,MAAM,KAAK;IAChB;;;;;;OAMG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;;;;;;OAOG;;IAGH;;;;;OAKG;;IAGH;;;;;OAKG;;IAGH;;;;;;OAMG;;IAGH;;;;;;;;OAQG;;IAGH;;;;;;;OAOG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;;;OAOG;;;;;;;;;;;;;;CAEK,CAAC"}
@@ -26,98 +26,102 @@ const isInt32 = is;
26
26
  const asInt32 = castType;
27
27
  const Int32 = {
28
28
  /**
29
- * Type guard to check if a value is an Int32.
29
+ * Type guard that checks if a value is an integer in [-2^31, 2^31).
30
30
  *
31
- * @param value The value to check.
32
- * @returns `true` if the value is a 32-bit signed integer, `false` otherwise.
31
+ * @param value - The value to check
32
+ * @returns `true` if the value is an integer in [-2^31, 2^31), `false` otherwise
33
+ * @see {@link isInt32} for usage examples
33
34
  */
34
35
  is,
35
36
  /**
36
- * The minimum value for a 32-bit signed integer.
37
- *
38
- * @readonly
37
+ * The smallest value representable as `Int32`.
39
38
  */
40
39
  MIN_VALUE,
41
40
  /**
42
- * The maximum value for a 32-bit signed integer.
43
- *
44
- * @readonly
41
+ * The largest value representable as `Int32`.
45
42
  */
46
43
  MAX_VALUE,
47
44
  /**
48
- * Returns the absolute value of a 32-bit signed integer.
45
+ * Returns the absolute value of an integer in [-2^31, 2^31).
49
46
  *
50
- * @param a The Int32 value.
51
- * @returns The absolute value as an Int32, clamped to valid range.
47
+ * The result is non-negative and keeps the `Int32` brand.
48
+ *
49
+ * @param a - The integer value
50
+ * @returns The absolute value as a non-negative `Int32`
52
51
  */
53
52
  abs,
54
53
  /**
55
- * Returns the smaller of two Int32 values.
54
+ * Returns the smallest of the given integers.
56
55
  *
57
- * @param a The first Int32.
58
- * @param b The second Int32.
59
- * @returns The minimum value as an Int32.
56
+ * @param values - The integers to compare (at least one required)
57
+ * @returns The smallest value as an `Int32`
60
58
  */
61
59
  min: min_,
62
60
  /**
63
- * Returns the larger of two Int32 values.
61
+ * Returns the largest of the given integers.
64
62
  *
65
- * @param a The first Int32.
66
- * @param b The second Int32.
67
- * @returns The maximum value as an Int32.
63
+ * @param values - The integers to compare (at least one required)
64
+ * @returns The largest value as an `Int32`
68
65
  */
69
66
  max: max_,
70
67
  /**
71
- * Clamps a number to the Int32 range.
68
+ * Clamps a `number` into the `Int32` range, rounding to the nearest integer
69
+ * and constraining the result to `[MIN_VALUE, MAX_VALUE]`.
72
70
  *
73
- * @param value The number to clamp.
74
- * @returns The value clamped to [-2147483648, 2147483647] as an Int32.
71
+ * @param value - The value to clamp
72
+ * @returns The clamped value as an `Int32`
75
73
  */
76
74
  clamp,
77
75
  /**
78
- * Generates a random Int32 value within the valid range.
76
+ * Generates a random `Int32` within the given range.
77
+ *
78
+ * The range is inclusive on both ends.
79
79
  *
80
- * @returns A random Int32 between MIN_VALUE and MAX_VALUE.
80
+ * @param min - The minimum value (inclusive)
81
+ * @param max - The maximum value (inclusive)
82
+ * @returns A random `Int32` in `[min, max]`
81
83
  */
82
84
  random,
83
85
  /**
84
- * Raises an Int32 to the power of another Int32.
86
+ * Raises `a` to the power `b`, returning `a ** b` as an `Int32` (floored to
87
+ * an integer).
85
88
  *
86
- * @param a The base Int32.
87
- * @param b The exponent Int32.
88
- * @returns `a ** b` clamped to [-2147483648, 2147483647] as an Int32.
89
+ * @param a - The base integer
90
+ * @param b - The exponent integer
91
+ * @returns `a ** b` as an `Int32`
89
92
  */
90
93
  pow,
91
94
  /**
92
- * Adds two Int32 values.
95
+ * Adds two integers, returning `a + b` as an `Int32`.
93
96
  *
94
- * @param a The first Int32.
95
- * @param b The second Int32.
96
- * @returns `a + b` clamped to [-2147483648, 2147483647] as an Int32.
97
+ * @param a - The first integer
98
+ * @param b - The second integer
99
+ * @returns The sum of `a` and `b` as an `Int32`
97
100
  */
98
101
  add,
99
102
  /**
100
- * Subtracts one Int32 from another.
103
+ * Subtracts two integers, returning `a - b` as an `Int32`.
101
104
  *
102
- * @param a The minuend Int32.
103
- * @param b The subtrahend Int32.
104
- * @returns `a - b` clamped to [-2147483648, 2147483647] as an Int32.
105
+ * @param a - The first integer
106
+ * @param b - The second integer
107
+ * @returns The difference of `a` and `b` as an `Int32`
105
108
  */
106
109
  sub,
107
110
  /**
108
- * Multiplies two Int32 values.
111
+ * Multiplies two integers, returning `a * b` as an `Int32`.
109
112
  *
110
- * @param a The first Int32.
111
- * @param b The second Int32.
112
- * @returns `a * b` clamped to [-2147483648, 2147483647] as an Int32.
113
+ * @param a - The first integer
114
+ * @param b - The second integer
115
+ * @returns The product of `a` and `b` as an `Int32`
113
116
  */
114
117
  mul,
115
118
  /**
116
- * Divides one Int32 by another using floor division.
119
+ * Divides two integers using floor division (`⌊a / b⌋`): the result is `a /
120
+ * b` rounded toward negative infinity, as an `Int32`.
117
121
  *
118
- * @param a The dividend Int32.
119
- * @param b The divisor Int32.
120
- * @returns `⌊a / b⌋` clamped to [-2147483648, 2147483647] as an Int32.
122
+ * @param a - The dividend
123
+ * @param b - The divisor (must be non-zero)
124
+ * @returns The floored quotient as an `Int32`
121
125
  */
122
126
  div
123
127
  };
@@ -1 +1 @@
1
- {"version":3,"file":"int32.mjs","sources":["../../../src/number/branded-types/int32.mts"],"sourcesContent":["import { type Int32 as TtfImported_Int32 } from 'ts-type-forge';\nimport { expectType } from '../../expect-type.mjs';\nimport { TsDataForgeInternals } from '../refined-number-utils.mjs';\n\nexport type Int32 = TtfImported_Int32;\n\ntype ElementType = Int32;\n\nconst typeNameInMessage = 'an integer in [-2^31, 2^31)';\n\nconst {\n MAX_VALUE,\n MIN_VALUE,\n abs,\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 number,\n number\n>({\n integerOrSafeInteger: 'SafeInteger',\n MIN_VALUE: -(2 ** 31),\n MAX_VALUE: 2 ** 31 - 1,\n typeNameInMessage,\n} as const);\n\n/**\n * Checks if a number is an Int32 (32-bit signed integer in the range [-2^31,\n * 2^31)).\n *\n * @param value The value to check.\n * @returns `true` if the value is an Int32, `false` otherwise.\n */\nexport const isInt32 = is;\n\n/**\n * Casts a number to an Int32 type.\n *\n * @param value The value to cast.\n * @returns The value as an Int32 type.\n * @throws {TypeError} If the value is not an integer in [-2^31, 2^31).\n */\nexport const asInt32 = castType;\n\n/**\n * Namespace providing type-safe arithmetic operations for 32-bit signed\n * integers.\n *\n * All operations automatically clamp results to the valid Int32 range\n * [-2147483648, 2147483647]. This ensures that all arithmetic maintains the\n * 32-bit signed integer constraint, preventing overflow.\n */\nexport const Int32 = {\n /**\n * Type guard to check if a value is an Int32.\n *\n * @param value The value to check.\n * @returns `true` if the value is a 32-bit signed integer, `false` otherwise.\n */\n is,\n\n /**\n * The minimum value for a 32-bit signed integer.\n *\n * @readonly\n */\n MIN_VALUE,\n\n /**\n * The maximum value for a 32-bit signed integer.\n *\n * @readonly\n */\n MAX_VALUE,\n\n /**\n * Returns the absolute value of a 32-bit signed integer.\n *\n * @param a The Int32 value.\n * @returns The absolute value as an Int32, clamped to valid range.\n */\n abs,\n\n /**\n * Returns the smaller of two Int32 values.\n *\n * @param a The first Int32.\n * @param b The second Int32.\n * @returns The minimum value as an Int32.\n */\n min: min_,\n\n /**\n * Returns the larger of two Int32 values.\n *\n * @param a The first Int32.\n * @param b The second Int32.\n * @returns The maximum value as an Int32.\n */\n max: max_,\n\n /**\n * Clamps a number to the Int32 range.\n *\n * @param value The number to clamp.\n * @returns The value clamped to [-2147483648, 2147483647] as an Int32.\n */\n clamp,\n\n /**\n * Generates a random Int32 value within the valid range.\n *\n * @returns A random Int32 between MIN_VALUE and MAX_VALUE.\n */\n random,\n\n /**\n * Raises an Int32 to the power of another Int32.\n *\n * @param a The base Int32.\n * @param b The exponent Int32.\n * @returns `a ** b` clamped to [-2147483648, 2147483647] as an Int32.\n */\n pow,\n\n /**\n * Adds two Int32 values.\n *\n * @param a The first Int32.\n * @param b The second Int32.\n * @returns `a + b` clamped to [-2147483648, 2147483647] as an Int32.\n */\n add,\n\n /**\n * Subtracts one Int32 from another.\n *\n * @param a The minuend Int32.\n * @param b The subtrahend Int32.\n * @returns `a - b` clamped to [-2147483648, 2147483647] as an Int32.\n */\n sub,\n\n /**\n * Multiplies two Int32 values.\n *\n * @param a The first Int32.\n * @param b The second Int32.\n * @returns `a * b` clamped to [-2147483648, 2147483647] as an Int32.\n */\n mul,\n\n /**\n * Divides one Int32 by another using floor division.\n *\n * @param a The dividend Int32.\n * @param b The divisor Int32.\n * @returns `⌊a / b⌋` clamped to [-2147483648, 2147483647] as an Int32.\n */\n div,\n} as const;\n\nexpectType<\n keyof typeof Int32,\n keyof TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'range'\n >\n>('=');\n\nexpectType<\n typeof Int32,\n TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'range'\n >\n>('<=');\n"],"names":[],"mappings":";;AAQA,MAAM,iBAAA,GAAoB,6BAAA;AAE1B,MAAM;AAAA,EACJ,SAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAA;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,WAAO;AAAA,EAClB,SAAA,EAAW,KAAK,EAAA,GAAK,CAAA;AAAA,EACrB;AACF,CAAU,CAAA;AASH,MAAM,OAAA,GAAU;AAShB,MAAM,OAAA,GAAU;AAUhB,MAAM,KAAA,GAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOnB,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,GAAA;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":"int32.mjs","sources":["../../../src/number/branded-types/int32.mts"],"sourcesContent":["import { type Int32 as TtfImported_Int32 } from 'ts-type-forge';\nimport { expectType } from '../../expect-type.mjs';\nimport { TsDataForgeInternals } from '../refined-number-utils.mjs';\n\nexport type Int32 = TtfImported_Int32;\n\ntype ElementType = Int32;\n\nconst typeNameInMessage = 'an integer in [-2^31, 2^31)';\n\nconst {\n MAX_VALUE,\n MIN_VALUE,\n abs,\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 number,\n number\n>({\n integerOrSafeInteger: 'SafeInteger',\n MIN_VALUE: -(2 ** 31),\n MAX_VALUE: 2 ** 31 - 1,\n typeNameInMessage,\n} as const);\n\n/**\n * Type guard that checks if a value is an integer in [-2^31, 2^31).\n *\n * Returns `true` for an integer in [-2^31, 2^31) — a value with no fractional\n * component.\n *\n * @param value - The value to check\n * @returns `true` if the value is an integer in [-2^31, 2^31), `false` otherwise\n */\nexport const isInt32 = is;\n\n/**\n * Casts a `number` to the `Int32` branded type.\n *\n * Validates that the value is an integer in [-2^31, 2^31) and returns it with\n * the `Int32` brand. Throws a `TypeError` otherwise.\n *\n * @param value - The value to cast\n * @returns The value as an `Int32`\n * @throws {TypeError} If the value is not an integer in [-2^31, 2^31)\n */\nexport const asInt32 = castType;\n\n/**\n * Namespace providing type-safe operations for the `Int32` branded type.\n *\n * The `Int32` type represents an integer in [-2^31, 2^31). Division (`div`)\n * uses floor division.\n */\nexport const Int32 = {\n /**\n * Type guard that checks if a value is an integer in [-2^31, 2^31).\n *\n * @param value - The value to check\n * @returns `true` if the value is an integer in [-2^31, 2^31), `false` otherwise\n * @see {@link isInt32} for usage examples\n */\n is,\n\n /**\n * The smallest value representable as `Int32`.\n */\n MIN_VALUE,\n\n /**\n * The largest value representable as `Int32`.\n */\n MAX_VALUE,\n\n /**\n * Returns the absolute value of an integer in [-2^31, 2^31).\n *\n * The result is non-negative and keeps the `Int32` brand.\n *\n * @param a - The integer value\n * @returns The absolute value as a non-negative `Int32`\n */\n abs,\n\n /**\n * Returns the smallest of the given integers.\n *\n * @param values - The integers to compare (at least one required)\n * @returns The smallest value as an `Int32`\n */\n min: min_,\n\n /**\n * Returns the largest of the given integers.\n *\n * @param values - The integers to compare (at least one required)\n * @returns The largest value as an `Int32`\n */\n max: max_,\n\n /**\n * Clamps a `number` into the `Int32` range, rounding to the nearest integer\n * and constraining the result to `[MIN_VALUE, MAX_VALUE]`.\n *\n * @param value - The value to clamp\n * @returns The clamped value as an `Int32`\n */\n clamp,\n\n /**\n * Generates a random `Int32` 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 `Int32` in `[min, max]`\n */\n random,\n\n /**\n * Raises `a` to the power `b`, returning `a ** b` as an `Int32` (floored to\n * an integer).\n *\n * @param a - The base integer\n * @param b - The exponent integer\n * @returns `a ** b` as an `Int32`\n */\n pow,\n\n /**\n * Adds two integers, returning `a + b` as an `Int32`.\n *\n * @param a - The first integer\n * @param b - The second integer\n * @returns The sum of `a` and `b` as an `Int32`\n */\n add,\n\n /**\n * Subtracts two integers, returning `a - b` as an `Int32`.\n *\n * @param a - The first integer\n * @param b - The second integer\n * @returns The difference of `a` and `b` as an `Int32`\n */\n sub,\n\n /**\n * Multiplies two integers, returning `a * b` as an `Int32`.\n *\n * @param a - The first integer\n * @param b - The second integer\n * @returns The product of `a` and `b` as an `Int32`\n */\n mul,\n\n /**\n * Divides two integers using floor division (`⌊a / b⌋`): the result is `a /\n * b` rounded toward negative infinity, as an `Int32`.\n *\n * @param a - The dividend\n * @param b - The divisor (must be non-zero)\n * @returns The floored quotient as an `Int32`\n */\n div,\n} as const;\n\nexpectType<\n keyof typeof Int32,\n keyof TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'range'\n >\n>('=');\n\nexpectType<\n typeof Int32,\n TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'range'\n >\n>('<=');\n"],"names":[],"mappings":";;AAQA,MAAM,iBAAA,GAAoB,6BAAA;AAE1B,MAAM;AAAA,EACJ,SAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAA;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,WAAO;AAAA,EAClB,SAAA,EAAW,KAAK,EAAA,GAAK,CAAA;AAAA,EACrB;AACF,CAAU,CAAA;AAWH,MAAM,OAAA,GAAU;AAYhB,MAAM,OAAA,GAAU;AAQhB,MAAM,KAAA,GAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQnB,EAAA;AAAA;AAAA;AAAA;AAAA,EAKA,SAAA;AAAA;AAAA;AAAA;AAAA,EAKA,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,GAAA;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,EASA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA;AACF;;;;"}