ts-data-forge 11.0.0 → 12.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (185) hide show
  1. package/README.md +2 -2
  2. package/dist/number/branded-types/finite-number.d.mts +47 -61
  3. package/dist/number/branded-types/finite-number.d.mts.map +1 -1
  4. package/dist/number/branded-types/finite-number.mjs +37 -41
  5. package/dist/number/branded-types/finite-number.mjs.map +1 -1
  6. package/dist/number/branded-types/int.d.mts +40 -46
  7. package/dist/number/branded-types/int.d.mts.map +1 -1
  8. package/dist/number/branded-types/int.mjs +29 -31
  9. package/dist/number/branded-types/int.mjs.map +1 -1
  10. package/dist/number/branded-types/int16.d.mts +71 -59
  11. package/dist/number/branded-types/int16.d.mts.map +1 -1
  12. package/dist/number/branded-types/int16.mjs +56 -47
  13. package/dist/number/branded-types/int16.mjs.map +1 -1
  14. package/dist/number/branded-types/int32.d.mts +71 -59
  15. package/dist/number/branded-types/int32.d.mts.map +1 -1
  16. package/dist/number/branded-types/int32.mjs +56 -47
  17. package/dist/number/branded-types/int32.mjs.map +1 -1
  18. package/dist/number/branded-types/negative-finite-number.d.mts +76 -60
  19. package/dist/number/branded-types/negative-finite-number.d.mts.map +1 -1
  20. package/dist/number/branded-types/negative-finite-number.mjs +62 -49
  21. package/dist/number/branded-types/negative-finite-number.mjs.map +1 -1
  22. package/dist/number/branded-types/negative-int.d.mts +66 -49
  23. package/dist/number/branded-types/negative-int.d.mts.map +1 -1
  24. package/dist/number/branded-types/negative-int.mjs +48 -39
  25. package/dist/number/branded-types/negative-int.mjs.map +1 -1
  26. package/dist/number/branded-types/negative-safe-int.d.mts +64 -57
  27. package/dist/number/branded-types/negative-safe-int.d.mts.map +1 -1
  28. package/dist/number/branded-types/negative-safe-int.mjs +49 -44
  29. package/dist/number/branded-types/negative-safe-int.mjs.map +1 -1
  30. package/dist/number/branded-types/non-negative-finite-number.d.mts +80 -65
  31. package/dist/number/branded-types/non-negative-finite-number.d.mts.map +1 -1
  32. package/dist/number/branded-types/non-negative-finite-number.mjs +65 -53
  33. package/dist/number/branded-types/non-negative-finite-number.mjs.map +1 -1
  34. package/dist/number/branded-types/non-negative-int16.d.mts +71 -58
  35. package/dist/number/branded-types/non-negative-int16.d.mts.map +1 -1
  36. package/dist/number/branded-types/non-negative-int16.mjs +55 -45
  37. package/dist/number/branded-types/non-negative-int16.mjs.map +1 -1
  38. package/dist/number/branded-types/non-negative-int32.d.mts +71 -59
  39. package/dist/number/branded-types/non-negative-int32.d.mts.map +1 -1
  40. package/dist/number/branded-types/non-negative-int32.mjs +55 -46
  41. package/dist/number/branded-types/non-negative-int32.mjs.map +1 -1
  42. package/dist/number/branded-types/non-positive-finite-number.d.mts +70 -55
  43. package/dist/number/branded-types/non-positive-finite-number.d.mts.map +1 -1
  44. package/dist/number/branded-types/non-positive-finite-number.mjs +55 -43
  45. package/dist/number/branded-types/non-positive-finite-number.mjs.map +1 -1
  46. package/dist/number/branded-types/non-positive-int.d.mts +46 -146
  47. package/dist/number/branded-types/non-positive-int.d.mts.map +1 -1
  48. package/dist/number/branded-types/non-positive-int.mjs +33 -108
  49. package/dist/number/branded-types/non-positive-int.mjs.map +1 -1
  50. package/dist/number/branded-types/non-positive-safe-int.d.mts +62 -54
  51. package/dist/number/branded-types/non-positive-safe-int.d.mts.map +1 -1
  52. package/dist/number/branded-types/non-positive-safe-int.mjs +46 -41
  53. package/dist/number/branded-types/non-positive-safe-int.mjs.map +1 -1
  54. package/dist/number/branded-types/non-zero-finite-number.d.mts +62 -49
  55. package/dist/number/branded-types/non-zero-finite-number.d.mts.map +1 -1
  56. package/dist/number/branded-types/non-zero-finite-number.mjs +46 -37
  57. package/dist/number/branded-types/non-zero-finite-number.mjs.map +1 -1
  58. package/dist/number/branded-types/non-zero-int.d.mts +51 -38
  59. package/dist/number/branded-types/non-zero-int.d.mts.map +1 -1
  60. package/dist/number/branded-types/non-zero-int.mjs +31 -27
  61. package/dist/number/branded-types/non-zero-int.mjs.map +1 -1
  62. package/dist/number/branded-types/non-zero-int16.d.mts +59 -54
  63. package/dist/number/branded-types/non-zero-int16.d.mts.map +1 -1
  64. package/dist/number/branded-types/non-zero-int16.mjs +44 -41
  65. package/dist/number/branded-types/non-zero-int16.mjs.map +1 -1
  66. package/dist/number/branded-types/non-zero-int32.d.mts +59 -55
  67. package/dist/number/branded-types/non-zero-int32.d.mts.map +1 -1
  68. package/dist/number/branded-types/non-zero-int32.mjs +44 -42
  69. package/dist/number/branded-types/non-zero-int32.mjs.map +1 -1
  70. package/dist/number/branded-types/non-zero-safe-int.d.mts +60 -55
  71. package/dist/number/branded-types/non-zero-safe-int.d.mts.map +1 -1
  72. package/dist/number/branded-types/non-zero-safe-int.mjs +44 -42
  73. package/dist/number/branded-types/non-zero-safe-int.mjs.map +1 -1
  74. package/dist/number/branded-types/non-zero-uint16.d.mts +59 -54
  75. package/dist/number/branded-types/non-zero-uint16.d.mts.map +1 -1
  76. package/dist/number/branded-types/non-zero-uint16.mjs +43 -41
  77. package/dist/number/branded-types/non-zero-uint16.mjs.map +1 -1
  78. package/dist/number/branded-types/non-zero-uint32.d.mts +59 -54
  79. package/dist/number/branded-types/non-zero-uint32.d.mts.map +1 -1
  80. package/dist/number/branded-types/non-zero-uint32.mjs +43 -41
  81. package/dist/number/branded-types/non-zero-uint32.mjs.map +1 -1
  82. package/dist/number/branded-types/positive-finite-number.d.mts +82 -64
  83. package/dist/number/branded-types/positive-finite-number.d.mts.map +1 -1
  84. package/dist/number/branded-types/positive-finite-number.mjs +67 -52
  85. package/dist/number/branded-types/positive-finite-number.mjs.map +1 -1
  86. package/dist/number/branded-types/positive-int.d.mts +53 -70
  87. package/dist/number/branded-types/positive-int.d.mts.map +1 -1
  88. package/dist/number/branded-types/positive-int.mjs +42 -52
  89. package/dist/number/branded-types/positive-int.mjs.map +1 -1
  90. package/dist/number/branded-types/positive-int16.d.mts +68 -58
  91. package/dist/number/branded-types/positive-int16.d.mts.map +1 -1
  92. package/dist/number/branded-types/positive-int16.mjs +52 -45
  93. package/dist/number/branded-types/positive-int16.mjs.map +1 -1
  94. package/dist/number/branded-types/positive-int32.d.mts +68 -58
  95. package/dist/number/branded-types/positive-int32.d.mts.map +1 -1
  96. package/dist/number/branded-types/positive-int32.mjs +52 -45
  97. package/dist/number/branded-types/positive-int32.mjs.map +1 -1
  98. package/dist/number/branded-types/positive-safe-int.d.mts +72 -61
  99. package/dist/number/branded-types/positive-safe-int.d.mts.map +1 -1
  100. package/dist/number/branded-types/positive-safe-int.mjs +56 -48
  101. package/dist/number/branded-types/positive-safe-int.mjs.map +1 -1
  102. package/dist/number/branded-types/positive-uint16.d.mts +68 -58
  103. package/dist/number/branded-types/positive-uint16.d.mts.map +1 -1
  104. package/dist/number/branded-types/positive-uint16.mjs +52 -45
  105. package/dist/number/branded-types/positive-uint16.mjs.map +1 -1
  106. package/dist/number/branded-types/positive-uint32.d.mts +68 -59
  107. package/dist/number/branded-types/positive-uint32.d.mts.map +1 -1
  108. package/dist/number/branded-types/positive-uint32.mjs +52 -46
  109. package/dist/number/branded-types/positive-uint32.mjs.map +1 -1
  110. package/dist/number/branded-types/safe-int.d.mts +52 -66
  111. package/dist/number/branded-types/safe-int.d.mts.map +1 -1
  112. package/dist/number/branded-types/safe-int.mjs +45 -47
  113. package/dist/number/branded-types/safe-int.mjs.map +1 -1
  114. package/dist/number/branded-types/safe-uint.d.mts +68 -58
  115. package/dist/number/branded-types/safe-uint.d.mts.map +1 -1
  116. package/dist/number/branded-types/safe-uint.mjs +53 -46
  117. package/dist/number/branded-types/safe-uint.mjs.map +1 -1
  118. package/dist/number/branded-types/uint.d.mts +72 -55
  119. package/dist/number/branded-types/uint.d.mts.map +1 -1
  120. package/dist/number/branded-types/uint.mjs +52 -45
  121. package/dist/number/branded-types/uint.mjs.map +1 -1
  122. package/dist/number/branded-types/uint16.d.mts +66 -59
  123. package/dist/number/branded-types/uint16.d.mts.map +1 -1
  124. package/dist/number/branded-types/uint16.mjs +51 -45
  125. package/dist/number/branded-types/uint16.mjs.map +1 -1
  126. package/dist/number/branded-types/uint32.d.mts +66 -57
  127. package/dist/number/branded-types/uint32.d.mts.map +1 -1
  128. package/dist/number/branded-types/uint32.mjs +50 -45
  129. package/dist/number/branded-types/uint32.mjs.map +1 -1
  130. package/dist/number/enum/int8.d.mts +62 -66
  131. package/dist/number/enum/int8.d.mts.map +1 -1
  132. package/dist/number/enum/int8.mjs +57 -51
  133. package/dist/number/enum/int8.mjs.map +1 -1
  134. package/dist/number/enum/uint8.d.mts +66 -59
  135. package/dist/number/enum/uint8.d.mts.map +1 -1
  136. package/dist/number/enum/uint8.mjs +57 -51
  137. package/dist/number/enum/uint8.mjs.map +1 -1
  138. package/dist/number/refined-number-utils.d.mts +9 -9
  139. package/dist/number/refined-number-utils.d.mts.map +1 -1
  140. package/dist/number/refined-number-utils.mjs +7 -7
  141. package/dist/number/refined-number-utils.mjs.map +1 -1
  142. package/package.json +2 -1
  143. package/src/number/branded-types/finite-number.mts +47 -61
  144. package/src/number/branded-types/int.mts +40 -46
  145. package/src/number/branded-types/int16.mts +72 -60
  146. package/src/number/branded-types/int32.mts +72 -60
  147. package/src/number/branded-types/negative-finite-number.mts +78 -71
  148. package/src/number/branded-types/negative-finite-number.test.mts +4 -4
  149. package/src/number/branded-types/negative-int.mts +68 -60
  150. package/src/number/branded-types/negative-int.test.mts +5 -5
  151. package/src/number/branded-types/negative-safe-int.mts +66 -68
  152. package/src/number/branded-types/negative-safe-int.test.mts +4 -4
  153. package/src/number/branded-types/non-negative-finite-number.mts +81 -66
  154. package/src/number/branded-types/non-negative-int16.mts +72 -59
  155. package/src/number/branded-types/non-negative-int32.mts +72 -60
  156. package/src/number/branded-types/non-positive-finite-number.mts +71 -56
  157. package/src/number/branded-types/non-positive-finite-number.test.mts +7 -7
  158. package/src/number/branded-types/non-positive-int.mts +47 -147
  159. package/src/number/branded-types/non-positive-int.test.mts +7 -7
  160. package/src/number/branded-types/non-positive-safe-int.mts +63 -55
  161. package/src/number/branded-types/non-positive-safe-int.test.mts +7 -7
  162. package/src/number/branded-types/non-zero-finite-number.mts +62 -51
  163. package/src/number/branded-types/non-zero-int.mts +51 -38
  164. package/src/number/branded-types/non-zero-int16.mts +60 -55
  165. package/src/number/branded-types/non-zero-int32.mts +60 -56
  166. package/src/number/branded-types/non-zero-safe-int.mts +61 -56
  167. package/src/number/branded-types/non-zero-uint16.mts +60 -55
  168. package/src/number/branded-types/non-zero-uint32.mts +60 -55
  169. package/src/number/branded-types/positive-finite-number.mts +83 -65
  170. package/src/number/branded-types/positive-int.mts +54 -71
  171. package/src/number/branded-types/positive-int16.mts +69 -59
  172. package/src/number/branded-types/positive-int32.mts +69 -59
  173. package/src/number/branded-types/positive-safe-int.mts +73 -62
  174. package/src/number/branded-types/positive-uint16.mts +69 -59
  175. package/src/number/branded-types/positive-uint32.mts +69 -60
  176. package/src/number/branded-types/safe-int.mts +53 -67
  177. package/src/number/branded-types/safe-uint.mts +69 -59
  178. package/src/number/branded-types/uint.mts +73 -56
  179. package/src/number/branded-types/uint16.mts +67 -60
  180. package/src/number/branded-types/uint32.mts +67 -58
  181. package/src/number/enum/int8.mts +70 -73
  182. package/src/number/enum/int8.test.mts +7 -4
  183. package/src/number/enum/uint8.mts +74 -66
  184. package/src/number/enum/uint8.test.mts +7 -4
  185. package/src/number/refined-number-utils.mts +22 -19
@@ -1,19 +1,24 @@
1
1
  import { type PositiveInt16 as TtfImported_PositiveInt16 } from 'ts-type-forge';
2
2
  export type PositiveInt16 = TtfImported_PositiveInt16;
3
3
  /**
4
- * Checks if a number is a PositiveInt16 (16-bit positive signed integer in the
5
- * range [1, 2^15)).
4
+ * Type guard that checks if a value is a positive integer in [1, 2^15).
6
5
  *
7
- * @param value The value to check.
8
- * @returns `true` if the value is a PositiveInt16, `false` otherwise.
6
+ * Returns `true` for a positive integer in [1, 2^15) — a value with no
7
+ * fractional component.
8
+ *
9
+ * @param value - The value to check
10
+ * @returns `true` if the value is a positive integer in [1, 2^15), `false` otherwise
9
11
  */
10
12
  export declare const isPositiveInt16: (a: number) => a is TtfImported_PositiveInt16;
11
13
  /**
12
- * Casts a number to a PositiveInt16 type.
14
+ * Casts a `number` to the `PositiveInt16` branded type.
15
+ *
16
+ * Validates that the value is a positive integer in [1, 2^15) and returns it
17
+ * with the `PositiveInt16` brand. Throws a `TypeError` otherwise.
13
18
  *
14
- * @param value The value to cast.
15
- * @returns The value as a PositiveInt16 type.
16
- * @throws {TypeError} If the value is not a positive integer in [1, 2^15).
19
+ * @param value - The value to cast
20
+ * @returns The value as a `PositiveInt16`
21
+ * @throws {TypeError} If the value is not a positive integer in [1, 2^15)
17
22
  */
18
23
  export declare const asPositiveInt16: <N extends number>(x: N) => number & {
19
24
  readonly "!=0": true;
@@ -35,102 +40,107 @@ export declare const asPositiveInt16: <N extends number>(x: N) => number & {
35
40
  'TSTypeForgeInternals--edd2f9ce-7ca5-45b0-9d1a-bd61b9b5d9c3': unknown;
36
41
  }> & N;
37
42
  /**
38
- * Namespace providing type-safe arithmetic operations for 16-bit positive
39
- * integers.
43
+ * Namespace providing type-safe operations for the `PositiveInt16` branded
44
+ * type.
40
45
  *
41
- * All operations automatically clamp results to the valid PositiveInt16 range
42
- * [1, 32767]. This ensures that all arithmetic maintains the 16-bit positive
43
- * integer constraint, with results below 1 clamped to MIN_VALUE and overflow
44
- * results clamped to MAX_VALUE.
46
+ * The `PositiveInt16` type represents a positive integer in [1, 2^15). Division
47
+ * (`div`) uses floor division.
45
48
  */
46
49
  export declare const PositiveInt16: {
47
50
  /**
48
- * Type guard to check if a value is a PositiveInt16.
51
+ * Type guard that checks if a value is a positive integer in [1, 2^15).
49
52
  *
50
- * @param value The value to check.
51
- * @returns `true` if the value is a 16-bit positive integer, `false`
52
- * otherwise.
53
+ * @param value - The value to check
54
+ * @returns `true` if the value is a positive integer in [1, 2^15), `false` otherwise
55
+ * @see {@link isPositiveInt16} for usage examples
53
56
  */
54
57
  readonly is: (a: number) => a is TtfImported_PositiveInt16;
55
58
  /**
56
- * The minimum value for a 16-bit positive integer.
57
- *
58
- * @readonly
59
+ * The smallest value representable as `PositiveInt16` (the lower saturation
60
+ * target of `fromNumber`).
59
61
  */
60
62
  readonly MIN_VALUE: 1;
61
63
  /**
62
- * The maximum value for a 16-bit positive integer.
63
- *
64
- * @readonly
64
+ * The largest value representable as `PositiveInt16` (the upper saturation
65
+ * target of `fromNumber`).
65
66
  */
66
67
  readonly MAX_VALUE: number;
67
68
  /**
68
- * Returns the smaller of two PositiveInt16 values.
69
+ * Returns the smallest of the given positive integers.
69
70
  *
70
- * @param a The first PositiveInt16.
71
- * @param b The second PositiveInt16.
72
- * @returns The minimum value as a PositiveInt16.
71
+ * @param values - The positive integers to compare (at least one required)
72
+ * @returns The smallest value as a `PositiveInt16`
73
73
  */
74
74
  readonly min: (...values: readonly import("ts-type-forge").WithSmallInt<TtfImported_PositiveInt16>[]) => TtfImported_PositiveInt16;
75
75
  /**
76
- * Returns the larger of two PositiveInt16 values.
76
+ * Returns the largest of the given positive integers.
77
77
  *
78
- * @param a The first PositiveInt16.
79
- * @param b The second PositiveInt16.
80
- * @returns The maximum value as a PositiveInt16.
78
+ * @param values - The positive integers to compare (at least one required)
79
+ * @returns The largest value as a `PositiveInt16`
81
80
  */
82
81
  readonly max: (...values: readonly import("ts-type-forge").WithSmallInt<TtfImported_PositiveInt16>[]) => TtfImported_PositiveInt16;
83
82
  /**
84
- * Clamps a number to the PositiveInt16 range.
83
+ * Converts an arbitrary `number` into a `PositiveInt16`, rounding to the
84
+ * nearest integer and saturating the result into the range `[MIN_VALUE,
85
+ * MAX_VALUE]`.
86
+ *
87
+ * Unlike `asPositiveInt16`, this is total: out-of-range inputs are clamped to
88
+ * the nearest representable `PositiveInt16` instead of throwing.
85
89
  *
86
- * @param value The number to clamp.
87
- * @returns The value clamped to [1, 32767] as a PositiveInt16.
90
+ * @param value - The value to convert
91
+ * @returns The value as a `PositiveInt16`
88
92
  */
89
- readonly clamp: (x: number) => TtfImported_PositiveInt16;
93
+ readonly fromNumber: (x: number) => TtfImported_PositiveInt16;
90
94
  /**
91
- * Generates a random PositiveInt16 value within the valid range.
95
+ * Generates a random `PositiveInt16` within the given range.
96
+ *
97
+ * The range is inclusive on both ends.
92
98
  *
93
- * @returns A random PositiveInt16 between 1 and 32767.
99
+ * @param min - The minimum value (inclusive)
100
+ * @param max - The maximum value (inclusive)
101
+ * @returns A random `PositiveInt16` in `[min, max]`
94
102
  */
95
103
  readonly random: (min?: import("ts-type-forge").WithSmallInt<TtfImported_PositiveInt16> | undefined, max?: import("ts-type-forge").WithSmallInt<TtfImported_PositiveInt16> | undefined) => TtfImported_PositiveInt16;
96
104
  /**
97
- * Raises a PositiveInt16 to the power of another PositiveInt16.
105
+ * Raises `a` to the power `b`, returning `a ** b` as a `PositiveInt16`
106
+ * (floored to an integer).
98
107
  *
99
- * @param a The base PositiveInt16.
100
- * @param b The exponent PositiveInt16.
101
- * @returns `a ** b` clamped to [1, 32767] as a PositiveInt16.
108
+ * @param a - The base positive integer
109
+ * @param b - The exponent positive integer
110
+ * @returns `a ** b` as a `PositiveInt16`
102
111
  */
103
112
  readonly pow: (x: import("ts-type-forge").WithSmallInt<TtfImported_PositiveInt16>, y: import("ts-type-forge").WithSmallInt<TtfImported_PositiveInt16>) => TtfImported_PositiveInt16;
104
113
  /**
105
- * Adds two PositiveInt16 values.
114
+ * Adds two positive integers, returning `a + b` as a `PositiveInt16`.
106
115
  *
107
- * @param a The first PositiveInt16.
108
- * @param b The second PositiveInt16.
109
- * @returns `a + b` clamped to [1, 32767] as a PositiveInt16.
116
+ * @param a - The first positive integer
117
+ * @param b - The second positive integer
118
+ * @returns The sum of `a` and `b` as a `PositiveInt16`
110
119
  */
111
120
  readonly add: (x: import("ts-type-forge").WithSmallInt<TtfImported_PositiveInt16>, y: import("ts-type-forge").WithSmallInt<TtfImported_PositiveInt16>) => TtfImported_PositiveInt16;
112
121
  /**
113
- * Subtracts one PositiveInt16 from another.
122
+ * Subtracts two positive integers, returning `a - b` as a `PositiveInt16`.
114
123
  *
115
- * @param a The minuend PositiveInt16.
116
- * @param b The subtrahend PositiveInt16.
117
- * @returns `a - b` clamped to [1, 32767] as a PositiveInt16 (minimum 1).
124
+ * @param a - The first positive integer
125
+ * @param b - The second positive integer
126
+ * @returns The difference of `a` and `b` as a `PositiveInt16`
118
127
  */
119
128
  readonly sub: (x: import("ts-type-forge").WithSmallInt<TtfImported_PositiveInt16>, y: import("ts-type-forge").WithSmallInt<TtfImported_PositiveInt16>) => TtfImported_PositiveInt16;
120
129
  /**
121
- * Multiplies two PositiveInt16 values.
130
+ * Multiplies two positive integers, returning `a * b` as a `PositiveInt16`.
122
131
  *
123
- * @param a The first PositiveInt16.
124
- * @param b The second PositiveInt16.
125
- * @returns `a * b` clamped to [1, 32767] as a PositiveInt16.
132
+ * @param a - The first positive integer
133
+ * @param b - The second positive integer
134
+ * @returns The product of `a` and `b` as a `PositiveInt16`
126
135
  */
127
136
  readonly mul: (x: import("ts-type-forge").WithSmallInt<TtfImported_PositiveInt16>, y: import("ts-type-forge").WithSmallInt<TtfImported_PositiveInt16>) => TtfImported_PositiveInt16;
128
137
  /**
129
- * Divides one PositiveInt16 by another using floor division.
138
+ * Divides two positive integers using floor division (`⌊a / b⌋`): the result
139
+ * is `a / b` rounded toward negative infinity, as a `PositiveInt16`.
130
140
  *
131
- * @param a The dividend PositiveInt16.
132
- * @param b The divisor PositiveInt16.
133
- * @returns `⌊a / b⌋` clamped to [1, 32767] as a PositiveInt16.
141
+ * @param a - The dividend
142
+ * @param b - The divisor (must be non-zero)
143
+ * @returns The floored quotient as a `PositiveInt16`
134
144
  */
135
145
  readonly div: (x: import("ts-type-forge").WithSmallInt<TtfImported_PositiveInt16>, 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 & {
136
146
  readonly "!=0": true;
@@ -1 +1 @@
1
- {"version":3,"file":"positive-int16.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/positive-int16.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,IAAI,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAIhF,MAAM,MAAM,aAAa,GAAG,yBAAyB,CAAC;AA+BtD;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,+CAAK,CAAC;AAElC;;;;;;GAMG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;MAAW,CAAC;AAExC;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa;IACxB;;;;;;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":"positive-int16.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/positive-int16.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,IAAI,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAIhF,MAAM,MAAM,aAAa,GAAG,yBAAyB,CAAC;AA+BtD;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,+CAAK,CAAC;AAElC;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;MAAW,CAAC;AAExC;;;;;;GAMG;AACH,eAAO,MAAM,aAAa;IACxB;;;;;;OAMG;;IAGH;;;OAGG;;IAGH;;;OAGG;;IAGH;;;;;OAKG;;IAGH;;;;;OAKG;;IAGH;;;;;;;;;;OAUG;;IAGH;;;;;;;;OAQG;;IAGH;;;;;;;OAOG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;;;OAOG;;;;;;;;;;;;;;;;;;;;CAEK,CAAC"}
@@ -6,8 +6,8 @@ const {
6
6
  MIN_VALUE,
7
7
  add,
8
8
  castType,
9
- clamp,
10
9
  div,
10
+ fromNumber,
11
11
  is,
12
12
  max: max_,
13
13
  min: min_,
@@ -25,92 +25,99 @@ const isPositiveInt16 = is;
25
25
  const asPositiveInt16 = castType;
26
26
  const PositiveInt16 = {
27
27
  /**
28
- * Type guard to check if a value is a PositiveInt16.
28
+ * Type guard that checks if a value is a positive integer in [1, 2^15).
29
29
  *
30
- * @param value The value to check.
31
- * @returns `true` if the value is a 16-bit positive integer, `false`
32
- * otherwise.
30
+ * @param value - The value to check
31
+ * @returns `true` if the value is a positive integer in [1, 2^15), `false` otherwise
32
+ * @see {@link isPositiveInt16} for usage examples
33
33
  */
34
34
  is,
35
35
  /**
36
- * The minimum value for a 16-bit positive integer.
37
- *
38
- * @readonly
36
+ * The smallest value representable as `PositiveInt16` (the lower saturation
37
+ * target of `fromNumber`).
39
38
  */
40
39
  MIN_VALUE,
41
40
  /**
42
- * The maximum value for a 16-bit positive integer.
43
- *
44
- * @readonly
41
+ * The largest value representable as `PositiveInt16` (the upper saturation
42
+ * target of `fromNumber`).
45
43
  */
46
44
  MAX_VALUE,
47
45
  /**
48
- * Returns the smaller of two PositiveInt16 values.
46
+ * Returns the smallest of the given positive integers.
49
47
  *
50
- * @param a The first PositiveInt16.
51
- * @param b The second PositiveInt16.
52
- * @returns The minimum value as a PositiveInt16.
48
+ * @param values - The positive integers to compare (at least one required)
49
+ * @returns The smallest value as a `PositiveInt16`
53
50
  */
54
51
  min: min_,
55
52
  /**
56
- * Returns the larger of two PositiveInt16 values.
53
+ * Returns the largest of the given positive integers.
57
54
  *
58
- * @param a The first PositiveInt16.
59
- * @param b The second PositiveInt16.
60
- * @returns The maximum value as a PositiveInt16.
55
+ * @param values - The positive integers to compare (at least one required)
56
+ * @returns The largest value as a `PositiveInt16`
61
57
  */
62
58
  max: max_,
63
59
  /**
64
- * Clamps a number to the PositiveInt16 range.
60
+ * Converts an arbitrary `number` into a `PositiveInt16`, rounding to the
61
+ * nearest integer and saturating the result into the range `[MIN_VALUE,
62
+ * MAX_VALUE]`.
65
63
  *
66
- * @param value The number to clamp.
67
- * @returns The value clamped to [1, 32767] as a PositiveInt16.
64
+ * Unlike `asPositiveInt16`, this is total: out-of-range inputs are clamped to
65
+ * the nearest representable `PositiveInt16` instead of throwing.
66
+ *
67
+ * @param value - The value to convert
68
+ * @returns The value as a `PositiveInt16`
68
69
  */
69
- clamp,
70
+ fromNumber,
70
71
  /**
71
- * Generates a random PositiveInt16 value within the valid range.
72
+ * Generates a random `PositiveInt16` within the given range.
73
+ *
74
+ * The range is inclusive on both ends.
72
75
  *
73
- * @returns A random PositiveInt16 between 1 and 32767.
76
+ * @param min - The minimum value (inclusive)
77
+ * @param max - The maximum value (inclusive)
78
+ * @returns A random `PositiveInt16` in `[min, max]`
74
79
  */
75
80
  random,
76
81
  /**
77
- * Raises a PositiveInt16 to the power of another PositiveInt16.
82
+ * Raises `a` to the power `b`, returning `a ** b` as a `PositiveInt16`
83
+ * (floored to an integer).
78
84
  *
79
- * @param a The base PositiveInt16.
80
- * @param b The exponent PositiveInt16.
81
- * @returns `a ** b` clamped to [1, 32767] as a PositiveInt16.
85
+ * @param a - The base positive integer
86
+ * @param b - The exponent positive integer
87
+ * @returns `a ** b` as a `PositiveInt16`
82
88
  */
83
89
  pow,
84
90
  /**
85
- * Adds two PositiveInt16 values.
91
+ * Adds two positive integers, returning `a + b` as a `PositiveInt16`.
86
92
  *
87
- * @param a The first PositiveInt16.
88
- * @param b The second PositiveInt16.
89
- * @returns `a + b` clamped to [1, 32767] as a PositiveInt16.
93
+ * @param a - The first positive integer
94
+ * @param b - The second positive integer
95
+ * @returns The sum of `a` and `b` as a `PositiveInt16`
90
96
  */
91
97
  add,
92
98
  /**
93
- * Subtracts one PositiveInt16 from another.
99
+ * Subtracts two positive integers, returning `a - b` as a `PositiveInt16`.
94
100
  *
95
- * @param a The minuend PositiveInt16.
96
- * @param b The subtrahend PositiveInt16.
97
- * @returns `a - b` clamped to [1, 32767] as a PositiveInt16 (minimum 1).
101
+ * @param a - The first positive integer
102
+ * @param b - The second positive integer
103
+ * @returns The difference of `a` and `b` as a `PositiveInt16`
98
104
  */
99
105
  sub,
100
106
  /**
101
- * Multiplies two PositiveInt16 values.
107
+ * Multiplies two positive integers, returning `a * b` as a `PositiveInt16`.
102
108
  *
103
- * @param a The first PositiveInt16.
104
- * @param b The second PositiveInt16.
105
- * @returns `a * b` clamped to [1, 32767] as a PositiveInt16.
109
+ * @param a - The first positive integer
110
+ * @param b - The second positive integer
111
+ * @returns The product of `a` and `b` as a `PositiveInt16`
106
112
  */
107
113
  mul,
108
114
  /**
109
- * Divides one PositiveInt16 by another using floor division.
115
+ * Divides two positive integers using floor division (`⌊a / b⌋`): the result
116
+ * is `a / b` rounded toward negative infinity, as a `PositiveInt16`.
110
117
  *
111
- * @param a The dividend PositiveInt16.
112
- * @param b The divisor PositiveInt16.
113
- * @returns `⌊a / b⌋` clamped to [1, 32767] as a PositiveInt16.
118
+ * @param a - The dividend
119
+ * @param b - The divisor (must be non-zero)
120
+ * @returns The floored quotient as a `PositiveInt16`
114
121
  */
115
122
  div
116
123
  };
@@ -1 +1 @@
1
- {"version":3,"file":"positive-int16.mjs","sources":["../../../src/number/branded-types/positive-int16.mts"],"sourcesContent":["import { type PositiveInt16 as TtfImported_PositiveInt16 } from 'ts-type-forge';\nimport { expectType } from '../../expect-type.mjs';\nimport { TsDataForgeInternals } from '../refined-number-utils.mjs';\n\nexport type PositiveInt16 = TtfImported_PositiveInt16;\n\ntype ElementType = PositiveInt16;\n\nconst typeNameInMessage = 'a positive integer in [1, 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 1,\n number\n>({\n integerOrSafeInteger: 'SafeInteger',\n MIN_VALUE: 1,\n MAX_VALUE: 2 ** 15 - 1,\n typeNameInMessage,\n} as const);\n\n/**\n * Checks if a number is a PositiveInt16 (16-bit positive signed integer in the\n * range [1, 2^15)).\n *\n * @param value The value to check.\n * @returns `true` if the value is a PositiveInt16, `false` otherwise.\n */\nexport const isPositiveInt16 = is;\n\n/**\n * Casts a number to a PositiveInt16 type.\n *\n * @param value The value to cast.\n * @returns The value as a PositiveInt16 type.\n * @throws {TypeError} If the value is not a positive integer in [1, 2^15).\n */\nexport const asPositiveInt16 = castType;\n\n/**\n * Namespace providing type-safe arithmetic operations for 16-bit positive\n * integers.\n *\n * All operations automatically clamp results to the valid PositiveInt16 range\n * [1, 32767]. This ensures that all arithmetic maintains the 16-bit positive\n * integer constraint, with results below 1 clamped to MIN_VALUE and overflow\n * results clamped to MAX_VALUE.\n */\nexport const PositiveInt16 = {\n /**\n * Type guard to check if a value is a PositiveInt16.\n *\n * @param value The value to check.\n * @returns `true` if the value is a 16-bit positive integer, `false`\n * otherwise.\n */\n is,\n\n /**\n * The minimum value for a 16-bit positive integer.\n *\n * @readonly\n */\n MIN_VALUE,\n\n /**\n * The maximum value for a 16-bit positive integer.\n *\n * @readonly\n */\n MAX_VALUE,\n\n /**\n * Returns the smaller of two PositiveInt16 values.\n *\n * @param a The first PositiveInt16.\n * @param b The second PositiveInt16.\n * @returns The minimum value as a PositiveInt16.\n */\n min: min_,\n\n /**\n * Returns the larger of two PositiveInt16 values.\n *\n * @param a The first PositiveInt16.\n * @param b The second PositiveInt16.\n * @returns The maximum value as a PositiveInt16.\n */\n max: max_,\n\n /**\n * Clamps a number to the PositiveInt16 range.\n *\n * @param value The number to clamp.\n * @returns The value clamped to [1, 32767] as a PositiveInt16.\n */\n clamp,\n\n /**\n * Generates a random PositiveInt16 value within the valid range.\n *\n * @returns A random PositiveInt16 between 1 and 32767.\n */\n random,\n\n /**\n * Raises a PositiveInt16 to the power of another PositiveInt16.\n *\n * @param a The base PositiveInt16.\n * @param b The exponent PositiveInt16.\n * @returns `a ** b` clamped to [1, 32767] as a PositiveInt16.\n */\n pow,\n\n /**\n * Adds two PositiveInt16 values.\n *\n * @param a The first PositiveInt16.\n * @param b The second PositiveInt16.\n * @returns `a + b` clamped to [1, 32767] as a PositiveInt16.\n */\n add,\n\n /**\n * Subtracts one PositiveInt16 from another.\n *\n * @param a The minuend PositiveInt16.\n * @param b The subtrahend PositiveInt16.\n * @returns `a - b` clamped to [1, 32767] as a PositiveInt16 (minimum 1).\n */\n sub,\n\n /**\n * Multiplies two PositiveInt16 values.\n *\n * @param a The first PositiveInt16.\n * @param b The second PositiveInt16.\n * @returns `a * b` clamped to [1, 32767] as a PositiveInt16.\n */\n mul,\n\n /**\n * Divides one PositiveInt16 by another using floor division.\n *\n * @param a The dividend PositiveInt16.\n * @param b The divisor PositiveInt16.\n * @returns `⌊a / b⌋` clamped to [1, 32767] as a PositiveInt16.\n */\n div,\n} as const;\n\nexpectType<\n keyof typeof PositiveInt16,\n keyof TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'positive' | 'range'\n >\n>('=');\n\nexpectType<\n typeof PositiveInt16,\n TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'positive' | 'range'\n >\n>('<=');\n"],"names":[],"mappings":";;AAQA,MAAM,iBAAA,GAAoB,iCAAA;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,eAAA,GAAkB;AASxB,MAAM,eAAA,GAAkB;AAWxB,MAAM,aAAA,GAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ3B,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":"positive-int16.mjs","sources":["../../../src/number/branded-types/positive-int16.mts"],"sourcesContent":["import { type PositiveInt16 as TtfImported_PositiveInt16 } from 'ts-type-forge';\nimport { expectType } from '../../expect-type.mjs';\nimport { TsDataForgeInternals } from '../refined-number-utils.mjs';\n\nexport type PositiveInt16 = TtfImported_PositiveInt16;\n\ntype ElementType = PositiveInt16;\n\nconst typeNameInMessage = 'a positive integer in [1, 2^15)';\n\nconst {\n MAX_VALUE,\n MIN_VALUE,\n add,\n castType,\n div,\n fromNumber,\n is,\n max: max_,\n min: min_,\n mul,\n pow,\n random,\n sub,\n} = TsDataForgeInternals.RefinedNumberUtils.operatorsForInteger<\n ElementType,\n 1,\n number\n>({\n integerOrSafeInteger: 'SafeInteger',\n MIN_VALUE: 1,\n MAX_VALUE: 2 ** 15 - 1,\n typeNameInMessage,\n} as const);\n\n/**\n * Type guard that checks if a value is a positive integer in [1, 2^15).\n *\n * Returns `true` for a positive integer in [1, 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 positive integer in [1, 2^15), `false` otherwise\n */\nexport const isPositiveInt16 = is;\n\n/**\n * Casts a `number` to the `PositiveInt16` branded type.\n *\n * Validates that the value is a positive integer in [1, 2^15) and returns it\n * with the `PositiveInt16` brand. Throws a `TypeError` otherwise.\n *\n * @param value - The value to cast\n * @returns The value as a `PositiveInt16`\n * @throws {TypeError} If the value is not a positive integer in [1, 2^15)\n */\nexport const asPositiveInt16 = castType;\n\n/**\n * Namespace providing type-safe operations for the `PositiveInt16` branded\n * type.\n *\n * The `PositiveInt16` type represents a positive integer in [1, 2^15). Division\n * (`div`) uses floor division.\n */\nexport const PositiveInt16 = {\n /**\n * Type guard that checks if a value is a positive integer in [1, 2^15).\n *\n * @param value - The value to check\n * @returns `true` if the value is a positive integer in [1, 2^15), `false` otherwise\n * @see {@link isPositiveInt16} for usage examples\n */\n is,\n\n /**\n * The smallest value representable as `PositiveInt16` (the lower saturation\n * target of `fromNumber`).\n */\n MIN_VALUE,\n\n /**\n * The largest value representable as `PositiveInt16` (the upper saturation\n * target of `fromNumber`).\n */\n MAX_VALUE,\n\n /**\n * Returns the smallest of the given positive integers.\n *\n * @param values - The positive integers to compare (at least one required)\n * @returns The smallest value as a `PositiveInt16`\n */\n min: min_,\n\n /**\n * Returns the largest of the given positive integers.\n *\n * @param values - The positive integers to compare (at least one required)\n * @returns The largest value as a `PositiveInt16`\n */\n max: max_,\n\n /**\n * Converts an arbitrary `number` into a `PositiveInt16`, rounding to the\n * nearest integer and saturating the result into the range `[MIN_VALUE,\n * MAX_VALUE]`.\n *\n * Unlike `asPositiveInt16`, this is total: out-of-range inputs are clamped to\n * the nearest representable `PositiveInt16` instead of throwing.\n *\n * @param value - The value to convert\n * @returns The value as a `PositiveInt16`\n */\n fromNumber,\n\n /**\n * Generates a random `PositiveInt16` 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 `PositiveInt16` in `[min, max]`\n */\n random,\n\n /**\n * Raises `a` to the power `b`, returning `a ** b` as a `PositiveInt16`\n * (floored to an integer).\n *\n * @param a - The base positive integer\n * @param b - The exponent positive integer\n * @returns `a ** b` as a `PositiveInt16`\n */\n pow,\n\n /**\n * Adds two positive integers, returning `a + b` as a `PositiveInt16`.\n *\n * @param a - The first positive integer\n * @param b - The second positive integer\n * @returns The sum of `a` and `b` as a `PositiveInt16`\n */\n add,\n\n /**\n * Subtracts two positive integers, returning `a - b` as a `PositiveInt16`.\n *\n * @param a - The first positive integer\n * @param b - The second positive integer\n * @returns The difference of `a` and `b` as a `PositiveInt16`\n */\n sub,\n\n /**\n * Multiplies two positive integers, returning `a * b` as a `PositiveInt16`.\n *\n * @param a - The first positive integer\n * @param b - The second positive integer\n * @returns The product of `a` and `b` as a `PositiveInt16`\n */\n mul,\n\n /**\n * Divides two positive integers using floor division (`⌊a / b⌋`): the result\n * is `a / b` rounded toward negative infinity, as a `PositiveInt16`.\n *\n * @param a - The dividend\n * @param b - The divisor (must be non-zero)\n * @returns The floored quotient as a `PositiveInt16`\n */\n div,\n} as const;\n\nexpectType<\n keyof typeof PositiveInt16,\n keyof TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'positive' | 'range'\n >\n>('=');\n\nexpectType<\n typeof PositiveInt16,\n TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'positive' | 'range'\n >\n>('<=');\n"],"names":[],"mappings":";;AAQA,MAAM,iBAAA,GAAoB,iCAAA;AAE1B,MAAM;AAAA,EACJ,SAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAA;AAAA,EACA,UAAA;AAAA,EACA,EAAA;AAAA,EACA,GAAA,EAAK,IAAA;AAAA,EACL,GAAA,EAAK,IAAA;AAAA,EACL,GAAA;AAAA,EACA,GAAA;AAAA,EACA,MAAA;AAAA,EACA;AACF,CAAA,GAAI,oBAAA,CAAqB,mBAAmB,mBAAA,CAI1C;AAAA,EACA,oBAAA,EAAsB,aAAA;AAAA,EACtB,SAAA,EAAW,CAAA;AAAA,EACX,SAAA,EAAW,KAAK,EAAA,GAAK,CAAA;AAAA,EACrB;AACF,CAAU,CAAA;AAWH,MAAM,eAAA,GAAkB;AAYxB,MAAM,eAAA,GAAkB;AASxB,MAAM,aAAA,GAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ3B,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,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;AAAA;AAAA;AAAA;AAAA,EAaL,UAAA;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 PositiveInt32 as TtfImported_PositiveInt32 } from 'ts-type-forge';
2
2
  export type PositiveInt32 = TtfImported_PositiveInt32;
3
3
  /**
4
- * Checks if a number is a PositiveInt32 (32-bit positive signed integer in the
5
- * range [1, 2^31)).
4
+ * Type guard that checks if a value is a positive integer in [1, 2^31).
6
5
  *
7
- * @param value The value to check.
8
- * @returns `true` if the value is a PositiveInt32, `false` otherwise.
6
+ * Returns `true` for a positive integer in [1, 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 positive integer in [1, 2^31), `false` otherwise
9
11
  */
10
12
  export declare const isPositiveInt32: (a: number) => a is TtfImported_PositiveInt32;
11
13
  /**
12
- * Casts a number to a PositiveInt32 type.
14
+ * Casts a `number` to the `PositiveInt32` branded type.
15
+ *
16
+ * Validates that the value is a positive integer in [1, 2^31) and returns it
17
+ * with the `PositiveInt32` brand. Throws a `TypeError` otherwise.
13
18
  *
14
- * @param value The value to cast.
15
- * @returns The value as a PositiveInt32 type.
16
- * @throws {TypeError} If the value is not a positive integer in [1, 2^31).
19
+ * @param value - The value to cast
20
+ * @returns The value as a `PositiveInt32`
21
+ * @throws {TypeError} If the value is not a positive integer in [1, 2^31)
17
22
  */
18
23
  export declare const asPositiveInt32: <N extends number>(x: N) => number & {
19
24
  readonly "!=0": true;
@@ -33,102 +38,107 @@ export declare const asPositiveInt32: <N extends number>(x: N) => number & {
33
38
  'TSTypeForgeInternals--edd2f9ce-7ca5-45b0-9d1a-bd61b9b5d9c3': unknown;
34
39
  }> & N;
35
40
  /**
36
- * Namespace providing type-safe arithmetic operations for 32-bit positive
37
- * integers.
41
+ * Namespace providing type-safe operations for the `PositiveInt32` branded
42
+ * type.
38
43
  *
39
- * All operations automatically clamp results to the valid PositiveInt32 range
40
- * [1, 2147483647]. This ensures that all arithmetic maintains the 32-bit
41
- * positive integer constraint, with results below 1 clamped to MIN_VALUE and
42
- * overflow results clamped to MAX_VALUE.
44
+ * The `PositiveInt32` type represents a positive integer in [1, 2^31). Division
45
+ * (`div`) uses floor division.
43
46
  */
44
47
  export declare const PositiveInt32: {
45
48
  /**
46
- * Type guard to check if a value is a PositiveInt32.
49
+ * Type guard that checks if a value is a positive integer in [1, 2^31).
47
50
  *
48
- * @param value The value to check.
49
- * @returns `true` if the value is a 32-bit positive integer, `false`
50
- * otherwise.
51
+ * @param value - The value to check
52
+ * @returns `true` if the value is a positive integer in [1, 2^31), `false` otherwise
53
+ * @see {@link isPositiveInt32} for usage examples
51
54
  */
52
55
  readonly is: (a: number) => a is TtfImported_PositiveInt32;
53
56
  /**
54
- * The minimum value for a 32-bit positive integer.
55
- *
56
- * @readonly
57
+ * The smallest value representable as `PositiveInt32` (the lower saturation
58
+ * target of `fromNumber`).
57
59
  */
58
60
  readonly MIN_VALUE: 1;
59
61
  /**
60
- * The maximum value for a 32-bit positive integer.
61
- *
62
- * @readonly
62
+ * The largest value representable as `PositiveInt32` (the upper saturation
63
+ * target of `fromNumber`).
63
64
  */
64
65
  readonly MAX_VALUE: number;
65
66
  /**
66
- * Returns the smaller of two PositiveInt32 values.
67
+ * Returns the smallest of the given positive integers.
67
68
  *
68
- * @param a The first PositiveInt32.
69
- * @param b The second PositiveInt32.
70
- * @returns The minimum value as a PositiveInt32.
69
+ * @param values - The positive integers to compare (at least one required)
70
+ * @returns The smallest value as a `PositiveInt32`
71
71
  */
72
72
  readonly min: (...values: readonly import("ts-type-forge").WithSmallInt<TtfImported_PositiveInt32>[]) => TtfImported_PositiveInt32;
73
73
  /**
74
- * Returns the larger of two PositiveInt32 values.
74
+ * Returns the largest of the given positive integers.
75
75
  *
76
- * @param a The first PositiveInt32.
77
- * @param b The second PositiveInt32.
78
- * @returns The maximum value as a PositiveInt32.
76
+ * @param values - The positive integers to compare (at least one required)
77
+ * @returns The largest value as a `PositiveInt32`
79
78
  */
80
79
  readonly max: (...values: readonly import("ts-type-forge").WithSmallInt<TtfImported_PositiveInt32>[]) => TtfImported_PositiveInt32;
81
80
  /**
82
- * Clamps a number to the PositiveInt32 range.
81
+ * Converts an arbitrary `number` into a `PositiveInt32`, rounding to the
82
+ * nearest integer and saturating the result into the range `[MIN_VALUE,
83
+ * MAX_VALUE]`.
84
+ *
85
+ * Unlike `asPositiveInt32`, this is total: out-of-range inputs are clamped to
86
+ * the nearest representable `PositiveInt32` instead of throwing.
83
87
  *
84
- * @param value The number to clamp.
85
- * @returns The value clamped to [1, 2147483647] as a PositiveInt32.
88
+ * @param value - The value to convert
89
+ * @returns The value as a `PositiveInt32`
86
90
  */
87
- readonly clamp: (x: number) => TtfImported_PositiveInt32;
91
+ readonly fromNumber: (x: number) => TtfImported_PositiveInt32;
88
92
  /**
89
- * Generates a random PositiveInt32 value within the valid range.
93
+ * Generates a random `PositiveInt32` within the given range.
94
+ *
95
+ * The range is inclusive on both ends.
90
96
  *
91
- * @returns A random PositiveInt32 between 1 and 2147483647.
97
+ * @param min - The minimum value (inclusive)
98
+ * @param max - The maximum value (inclusive)
99
+ * @returns A random `PositiveInt32` in `[min, max]`
92
100
  */
93
101
  readonly random: (min?: import("ts-type-forge").WithSmallInt<TtfImported_PositiveInt32> | undefined, max?: import("ts-type-forge").WithSmallInt<TtfImported_PositiveInt32> | undefined) => TtfImported_PositiveInt32;
94
102
  /**
95
- * Raises a PositiveInt32 to the power of another PositiveInt32.
103
+ * Raises `a` to the power `b`, returning `a ** b` as a `PositiveInt32`
104
+ * (floored to an integer).
96
105
  *
97
- * @param a The base PositiveInt32.
98
- * @param b The exponent PositiveInt32.
99
- * @returns `a ** b` clamped to [1, 2147483647] as a PositiveInt32.
106
+ * @param a - The base positive integer
107
+ * @param b - The exponent positive integer
108
+ * @returns `a ** b` as a `PositiveInt32`
100
109
  */
101
110
  readonly pow: (x: import("ts-type-forge").WithSmallInt<TtfImported_PositiveInt32>, y: import("ts-type-forge").WithSmallInt<TtfImported_PositiveInt32>) => TtfImported_PositiveInt32;
102
111
  /**
103
- * Adds two PositiveInt32 values.
112
+ * Adds two positive integers, returning `a + b` as a `PositiveInt32`.
104
113
  *
105
- * @param a The first PositiveInt32.
106
- * @param b The second PositiveInt32.
107
- * @returns `a + b` clamped to [1, 2147483647] as a PositiveInt32.
114
+ * @param a - The first positive integer
115
+ * @param b - The second positive integer
116
+ * @returns The sum of `a` and `b` as a `PositiveInt32`
108
117
  */
109
118
  readonly add: (x: import("ts-type-forge").WithSmallInt<TtfImported_PositiveInt32>, y: import("ts-type-forge").WithSmallInt<TtfImported_PositiveInt32>) => TtfImported_PositiveInt32;
110
119
  /**
111
- * Subtracts one PositiveInt32 from another.
120
+ * Subtracts two positive integers, returning `a - b` as a `PositiveInt32`.
112
121
  *
113
- * @param a The minuend PositiveInt32.
114
- * @param b The subtrahend PositiveInt32.
115
- * @returns `a - b` clamped to [1, 2147483647] as a PositiveInt32 (minimum 1).
122
+ * @param a - The first positive integer
123
+ * @param b - The second positive integer
124
+ * @returns The difference of `a` and `b` as a `PositiveInt32`
116
125
  */
117
126
  readonly sub: (x: import("ts-type-forge").WithSmallInt<TtfImported_PositiveInt32>, y: import("ts-type-forge").WithSmallInt<TtfImported_PositiveInt32>) => TtfImported_PositiveInt32;
118
127
  /**
119
- * Multiplies two PositiveInt32 values.
128
+ * Multiplies two positive integers, returning `a * b` as a `PositiveInt32`.
120
129
  *
121
- * @param a The first PositiveInt32.
122
- * @param b The second PositiveInt32.
123
- * @returns `a * b` clamped to [1, 2147483647] as a PositiveInt32.
130
+ * @param a - The first positive integer
131
+ * @param b - The second positive integer
132
+ * @returns The product of `a` and `b` as a `PositiveInt32`
124
133
  */
125
134
  readonly mul: (x: import("ts-type-forge").WithSmallInt<TtfImported_PositiveInt32>, y: import("ts-type-forge").WithSmallInt<TtfImported_PositiveInt32>) => TtfImported_PositiveInt32;
126
135
  /**
127
- * Divides one PositiveInt32 by another using floor division.
136
+ * Divides two positive integers using floor division (`⌊a / b⌋`): the result
137
+ * is `a / b` rounded toward negative infinity, as a `PositiveInt32`.
128
138
  *
129
- * @param a The dividend PositiveInt32.
130
- * @param b The divisor PositiveInt32.
131
- * @returns `⌊a / b⌋` clamped to [1, 2147483647] as a PositiveInt32.
139
+ * @param a - The dividend
140
+ * @param b - The divisor (must be non-zero)
141
+ * @returns The floored quotient as a `PositiveInt32`
132
142
  */
133
143
  readonly div: (x: import("ts-type-forge").WithSmallInt<TtfImported_PositiveInt32>, 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 & {
134
144
  readonly "!=0": true;
@@ -1 +1 @@
1
- {"version":3,"file":"positive-int32.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/positive-int32.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,IAAI,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAIhF,MAAM,MAAM,aAAa,GAAG,yBAAyB,CAAC;AA+BtD;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,+CAAK,CAAC;AAElC;;;;;;GAMG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;MAAW,CAAC;AAExC;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa;IACxB;;;;;;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":"positive-int32.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/positive-int32.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,IAAI,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAIhF,MAAM,MAAM,aAAa,GAAG,yBAAyB,CAAC;AA+BtD;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,+CAAK,CAAC;AAElC;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;MAAW,CAAC;AAExC;;;;;;GAMG;AACH,eAAO,MAAM,aAAa;IACxB;;;;;;OAMG;;IAGH;;;OAGG;;IAGH;;;OAGG;;IAGH;;;;;OAKG;;IAGH;;;;;OAKG;;IAGH;;;;;;;;;;OAUG;;IAGH;;;;;;;;OAQG;;IAGH;;;;;;;OAOG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;;;OAOG;;;;;;;;;;;;;;;;;;CAEK,CAAC"}