ts-data-forge 11.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 (171) hide show
  1. package/dist/number/branded-types/finite-number.d.mts +47 -61
  2. package/dist/number/branded-types/finite-number.d.mts.map +1 -1
  3. package/dist/number/branded-types/finite-number.mjs +37 -41
  4. package/dist/number/branded-types/finite-number.mjs.map +1 -1
  5. package/dist/number/branded-types/int.d.mts +40 -46
  6. package/dist/number/branded-types/int.d.mts.map +1 -1
  7. package/dist/number/branded-types/int.mjs +29 -31
  8. package/dist/number/branded-types/int.mjs.map +1 -1
  9. package/dist/number/branded-types/int16.d.mts +65 -58
  10. package/dist/number/branded-types/int16.d.mts.map +1 -1
  11. package/dist/number/branded-types/int16.mjs +49 -45
  12. package/dist/number/branded-types/int16.mjs.map +1 -1
  13. package/dist/number/branded-types/int32.d.mts +65 -58
  14. package/dist/number/branded-types/int32.d.mts.map +1 -1
  15. package/dist/number/branded-types/int32.mjs +49 -45
  16. package/dist/number/branded-types/int32.mjs.map +1 -1
  17. package/dist/number/branded-types/negative-finite-number.d.mts +68 -59
  18. package/dist/number/branded-types/negative-finite-number.d.mts.map +1 -1
  19. package/dist/number/branded-types/negative-finite-number.mjs +52 -46
  20. package/dist/number/branded-types/negative-finite-number.mjs.map +1 -1
  21. package/dist/number/branded-types/negative-int.d.mts +60 -48
  22. package/dist/number/branded-types/negative-int.d.mts.map +1 -1
  23. package/dist/number/branded-types/negative-int.mjs +40 -36
  24. package/dist/number/branded-types/negative-int.mjs.map +1 -1
  25. package/dist/number/branded-types/negative-safe-int.d.mts +57 -56
  26. package/dist/number/branded-types/negative-safe-int.d.mts.map +1 -1
  27. package/dist/number/branded-types/negative-safe-int.mjs +40 -41
  28. package/dist/number/branded-types/negative-safe-int.mjs.map +1 -1
  29. package/dist/number/branded-types/non-negative-finite-number.d.mts +74 -64
  30. package/dist/number/branded-types/non-negative-finite-number.d.mts.map +1 -1
  31. package/dist/number/branded-types/non-negative-finite-number.mjs +58 -51
  32. package/dist/number/branded-types/non-negative-finite-number.mjs.map +1 -1
  33. package/dist/number/branded-types/non-negative-int16.d.mts +64 -57
  34. package/dist/number/branded-types/non-negative-int16.d.mts.map +1 -1
  35. package/dist/number/branded-types/non-negative-int16.mjs +47 -43
  36. package/dist/number/branded-types/non-negative-int16.mjs.map +1 -1
  37. package/dist/number/branded-types/non-negative-int32.d.mts +64 -58
  38. package/dist/number/branded-types/non-negative-int32.d.mts.map +1 -1
  39. package/dist/number/branded-types/non-negative-int32.mjs +47 -44
  40. package/dist/number/branded-types/non-negative-int32.mjs.map +1 -1
  41. package/dist/number/branded-types/non-positive-finite-number.d.mts +64 -54
  42. package/dist/number/branded-types/non-positive-finite-number.d.mts.map +1 -1
  43. package/dist/number/branded-types/non-positive-finite-number.mjs +48 -41
  44. package/dist/number/branded-types/non-positive-finite-number.mjs.map +1 -1
  45. package/dist/number/branded-types/non-positive-int.d.mts +41 -146
  46. package/dist/number/branded-types/non-positive-int.d.mts.map +1 -1
  47. package/dist/number/branded-types/non-positive-int.mjs +27 -107
  48. package/dist/number/branded-types/non-positive-int.mjs.map +1 -1
  49. package/dist/number/branded-types/non-positive-safe-int.d.mts +54 -53
  50. package/dist/number/branded-types/non-positive-safe-int.d.mts.map +1 -1
  51. package/dist/number/branded-types/non-positive-safe-int.mjs +37 -39
  52. package/dist/number/branded-types/non-positive-safe-int.mjs.map +1 -1
  53. package/dist/number/branded-types/non-zero-finite-number.d.mts +62 -49
  54. package/dist/number/branded-types/non-zero-finite-number.d.mts.map +1 -1
  55. package/dist/number/branded-types/non-zero-finite-number.mjs +46 -37
  56. package/dist/number/branded-types/non-zero-finite-number.mjs.map +1 -1
  57. package/dist/number/branded-types/non-zero-int.d.mts +51 -38
  58. package/dist/number/branded-types/non-zero-int.d.mts.map +1 -1
  59. package/dist/number/branded-types/non-zero-int.mjs +31 -27
  60. package/dist/number/branded-types/non-zero-int.mjs.map +1 -1
  61. package/dist/number/branded-types/non-zero-int16.d.mts +52 -53
  62. package/dist/number/branded-types/non-zero-int16.d.mts.map +1 -1
  63. package/dist/number/branded-types/non-zero-int16.mjs +36 -39
  64. package/dist/number/branded-types/non-zero-int16.mjs.map +1 -1
  65. package/dist/number/branded-types/non-zero-int32.d.mts +52 -54
  66. package/dist/number/branded-types/non-zero-int32.d.mts.map +1 -1
  67. package/dist/number/branded-types/non-zero-int32.mjs +36 -40
  68. package/dist/number/branded-types/non-zero-int32.mjs.map +1 -1
  69. package/dist/number/branded-types/non-zero-safe-int.d.mts +53 -54
  70. package/dist/number/branded-types/non-zero-safe-int.d.mts.map +1 -1
  71. package/dist/number/branded-types/non-zero-safe-int.mjs +36 -40
  72. package/dist/number/branded-types/non-zero-safe-int.mjs.map +1 -1
  73. package/dist/number/branded-types/non-zero-uint16.d.mts +52 -53
  74. package/dist/number/branded-types/non-zero-uint16.d.mts.map +1 -1
  75. package/dist/number/branded-types/non-zero-uint16.mjs +35 -39
  76. package/dist/number/branded-types/non-zero-uint16.mjs.map +1 -1
  77. package/dist/number/branded-types/non-zero-uint32.d.mts +52 -53
  78. package/dist/number/branded-types/non-zero-uint32.d.mts.map +1 -1
  79. package/dist/number/branded-types/non-zero-uint32.mjs +35 -39
  80. package/dist/number/branded-types/non-zero-uint32.mjs.map +1 -1
  81. package/dist/number/branded-types/positive-finite-number.d.mts +74 -63
  82. package/dist/number/branded-types/positive-finite-number.d.mts.map +1 -1
  83. package/dist/number/branded-types/positive-finite-number.mjs +58 -50
  84. package/dist/number/branded-types/positive-finite-number.mjs.map +1 -1
  85. package/dist/number/branded-types/positive-int.d.mts +46 -68
  86. package/dist/number/branded-types/positive-int.d.mts.map +1 -1
  87. package/dist/number/branded-types/positive-int.mjs +34 -49
  88. package/dist/number/branded-types/positive-int.mjs.map +1 -1
  89. package/dist/number/branded-types/positive-int16.d.mts +61 -57
  90. package/dist/number/branded-types/positive-int16.d.mts.map +1 -1
  91. package/dist/number/branded-types/positive-int16.mjs +44 -43
  92. package/dist/number/branded-types/positive-int16.mjs.map +1 -1
  93. package/dist/number/branded-types/positive-int32.d.mts +61 -57
  94. package/dist/number/branded-types/positive-int32.d.mts.map +1 -1
  95. package/dist/number/branded-types/positive-int32.mjs +44 -43
  96. package/dist/number/branded-types/positive-int32.mjs.map +1 -1
  97. package/dist/number/branded-types/positive-safe-int.d.mts +62 -57
  98. package/dist/number/branded-types/positive-safe-int.d.mts.map +1 -1
  99. package/dist/number/branded-types/positive-safe-int.mjs +45 -43
  100. package/dist/number/branded-types/positive-safe-int.mjs.map +1 -1
  101. package/dist/number/branded-types/positive-uint16.d.mts +61 -57
  102. package/dist/number/branded-types/positive-uint16.d.mts.map +1 -1
  103. package/dist/number/branded-types/positive-uint16.mjs +44 -43
  104. package/dist/number/branded-types/positive-uint16.mjs.map +1 -1
  105. package/dist/number/branded-types/positive-uint32.d.mts +61 -58
  106. package/dist/number/branded-types/positive-uint32.d.mts.map +1 -1
  107. package/dist/number/branded-types/positive-uint32.mjs +44 -44
  108. package/dist/number/branded-types/positive-uint32.mjs.map +1 -1
  109. package/dist/number/branded-types/safe-int.d.mts +43 -62
  110. package/dist/number/branded-types/safe-int.d.mts.map +1 -1
  111. package/dist/number/branded-types/safe-int.mjs +35 -42
  112. package/dist/number/branded-types/safe-int.mjs.map +1 -1
  113. package/dist/number/branded-types/safe-uint.d.mts +62 -57
  114. package/dist/number/branded-types/safe-uint.d.mts.map +1 -1
  115. package/dist/number/branded-types/safe-uint.mjs +46 -44
  116. package/dist/number/branded-types/safe-uint.mjs.map +1 -1
  117. package/dist/number/branded-types/uint.d.mts +63 -50
  118. package/dist/number/branded-types/uint.d.mts.map +1 -1
  119. package/dist/number/branded-types/uint.mjs +42 -39
  120. package/dist/number/branded-types/uint.mjs.map +1 -1
  121. package/dist/number/branded-types/uint16.d.mts +60 -58
  122. package/dist/number/branded-types/uint16.d.mts.map +1 -1
  123. package/dist/number/branded-types/uint16.mjs +44 -43
  124. package/dist/number/branded-types/uint16.mjs.map +1 -1
  125. package/dist/number/branded-types/uint32.d.mts +59 -55
  126. package/dist/number/branded-types/uint32.d.mts.map +1 -1
  127. package/dist/number/branded-types/uint32.mjs +42 -42
  128. package/dist/number/branded-types/uint32.mjs.map +1 -1
  129. package/dist/number/enum/int8.d.mts +56 -65
  130. package/dist/number/enum/int8.d.mts.map +1 -1
  131. package/dist/number/enum/int8.mjs +44 -43
  132. package/dist/number/enum/int8.mjs.map +1 -1
  133. package/dist/number/enum/uint8.d.mts +60 -58
  134. package/dist/number/enum/uint8.d.mts.map +1 -1
  135. package/dist/number/enum/uint8.mjs +44 -43
  136. package/dist/number/enum/uint8.mjs.map +1 -1
  137. package/package.json +2 -1
  138. package/src/number/branded-types/finite-number.mts +47 -61
  139. package/src/number/branded-types/int.mts +40 -46
  140. package/src/number/branded-types/int16.mts +65 -58
  141. package/src/number/branded-types/int32.mts +65 -58
  142. package/src/number/branded-types/negative-finite-number.mts +68 -68
  143. package/src/number/branded-types/negative-int.mts +60 -57
  144. package/src/number/branded-types/negative-safe-int.mts +57 -65
  145. package/src/number/branded-types/non-negative-finite-number.mts +74 -64
  146. package/src/number/branded-types/non-negative-int16.mts +64 -57
  147. package/src/number/branded-types/non-negative-int32.mts +64 -58
  148. package/src/number/branded-types/non-positive-finite-number.mts +64 -54
  149. package/src/number/branded-types/non-positive-int.mts +41 -146
  150. package/src/number/branded-types/non-positive-safe-int.mts +54 -53
  151. package/src/number/branded-types/non-zero-finite-number.mts +62 -51
  152. package/src/number/branded-types/non-zero-int.mts +51 -38
  153. package/src/number/branded-types/non-zero-int16.mts +52 -53
  154. package/src/number/branded-types/non-zero-int32.mts +52 -54
  155. package/src/number/branded-types/non-zero-safe-int.mts +53 -54
  156. package/src/number/branded-types/non-zero-uint16.mts +52 -53
  157. package/src/number/branded-types/non-zero-uint32.mts +52 -53
  158. package/src/number/branded-types/positive-finite-number.mts +74 -63
  159. package/src/number/branded-types/positive-int.mts +46 -68
  160. package/src/number/branded-types/positive-int16.mts +61 -57
  161. package/src/number/branded-types/positive-int32.mts +61 -57
  162. package/src/number/branded-types/positive-safe-int.mts +62 -57
  163. package/src/number/branded-types/positive-uint16.mts +61 -57
  164. package/src/number/branded-types/positive-uint32.mts +61 -58
  165. package/src/number/branded-types/safe-int.mts +43 -62
  166. package/src/number/branded-types/safe-uint.mts +62 -57
  167. package/src/number/branded-types/uint.mts +63 -50
  168. package/src/number/branded-types/uint16.mts +60 -58
  169. package/src/number/branded-types/uint32.mts +59 -55
  170. package/src/number/enum/int8.mts +56 -65
  171. package/src/number/enum/uint8.mts +60 -58
@@ -1,19 +1,24 @@
1
1
  import { type NonNegativeInt32 as TtfImported_NonNegativeInt32 } from 'ts-type-forge';
2
2
  export type NonNegativeInt32 = TtfImported_NonNegativeInt32;
3
3
  /**
4
- * Checks if a number is a NonNegativeInt32 (32-bit non-negative signed integer
5
- * in the range [0, 2^31)).
4
+ * Type guard that checks if a value is a non-negative integer in [0, 2^31).
6
5
  *
7
- * @param value The value to check.
8
- * @returns `true` if the value is a NonNegativeInt32, `false` otherwise.
6
+ * Returns `true` for a non-negative integer in [0, 2^31) — a value with no
7
+ * fractional component.
8
+ *
9
+ * @param value - The value to check
10
+ * @returns `true` if the value is a non-negative integer in [0, 2^31), `false` otherwise
9
11
  */
10
12
  export declare const isNonNegativeInt32: (a: number) => a is TtfImported_NonNegativeInt32;
11
13
  /**
12
- * Casts a number to a NonNegativeInt32 type.
14
+ * Casts a `number` to the `NonNegativeInt32` branded type.
15
+ *
16
+ * Validates that the value is a non-negative integer in [0, 2^31) and returns
17
+ * it with the `NonNegativeInt32` brand. Throws a `TypeError` otherwise.
13
18
  *
14
- * @param value The value to cast.
15
- * @returns The value as a NonNegativeInt32 type.
16
- * @throws {TypeError} If the value is not a non-negative integer in [0, 2^31).
19
+ * @param value - The value to cast
20
+ * @returns The value as a `NonNegativeInt32`
21
+ * @throws {TypeError} If the value is not a non-negative integer in [0, 2^31)
17
22
  */
18
23
  export declare const asNonNegativeInt32: <N extends number>(x: N) => number & {
19
24
  readonly "< 2^31": true;
@@ -31,103 +36,104 @@ export declare const asNonNegativeInt32: <N extends number>(x: N) => number & {
31
36
  'TSTypeForgeInternals--edd2f9ce-7ca5-45b0-9d1a-bd61b9b5d9c3': unknown;
32
37
  }> & N;
33
38
  /**
34
- * Namespace providing type-safe arithmetic operations for 32-bit non-negative
35
- * integers.
39
+ * Namespace providing type-safe operations for the `NonNegativeInt32` branded
40
+ * type.
36
41
  *
37
- * All operations automatically clamp results to the valid NonNegativeInt32
38
- * range [0, 2147483647]. This ensures that all arithmetic maintains the 32-bit
39
- * non-negative integer constraint, with negative results clamped to 0 and
40
- * overflow results clamped to MAX_VALUE.
42
+ * The `NonNegativeInt32` type represents a non-negative integer in [0, 2^31).
43
+ * Division (`div`) uses floor division.
41
44
  */
42
45
  export declare const NonNegativeInt32: {
43
46
  /**
44
- * Type guard to check if a value is a NonNegativeInt32.
47
+ * Type guard that checks if a value is a non-negative integer in [0, 2^31).
45
48
  *
46
- * @param value The value to check.
47
- * @returns `true` if the value is a 32-bit non-negative integer, `false`
48
- * otherwise.
49
+ * @param value - The value to check
50
+ * @returns `true` if the value is a non-negative integer in [0, 2^31), `false` otherwise
51
+ * @see {@link isNonNegativeInt32} for usage examples
49
52
  */
50
53
  readonly is: (a: number) => a is TtfImported_NonNegativeInt32;
51
54
  /**
52
- * The minimum value for a 32-bit non-negative integer.
53
- *
54
- * @readonly
55
+ * The smallest value representable as `NonNegativeInt32`.
55
56
  */
56
57
  readonly MIN_VALUE: 0;
57
58
  /**
58
- * The maximum value for a 32-bit non-negative integer.
59
- *
60
- * @readonly
59
+ * The largest value representable as `NonNegativeInt32`.
61
60
  */
62
61
  readonly MAX_VALUE: number;
63
62
  /**
64
- * Returns the smaller of two NonNegativeInt32 values.
63
+ * Returns the smallest of the given non-negative integers.
65
64
  *
66
- * @param a The first NonNegativeInt32.
67
- * @param b The second NonNegativeInt32.
68
- * @returns The minimum value as a NonNegativeInt32.
65
+ * @param values - The non-negative integers to compare (at least one required)
66
+ * @returns The smallest value as a `NonNegativeInt32`
69
67
  */
70
68
  readonly min: (...values: readonly import("ts-type-forge").WithSmallInt<TtfImported_NonNegativeInt32>[]) => TtfImported_NonNegativeInt32;
71
69
  /**
72
- * Returns the larger of two NonNegativeInt32 values.
70
+ * Returns the largest of the given non-negative integers.
73
71
  *
74
- * @param a The first NonNegativeInt32.
75
- * @param b The second NonNegativeInt32.
76
- * @returns The maximum value as a NonNegativeInt32.
72
+ * @param values - The non-negative integers to compare (at least one required)
73
+ * @returns The largest value as a `NonNegativeInt32`
77
74
  */
78
75
  readonly max: (...values: readonly import("ts-type-forge").WithSmallInt<TtfImported_NonNegativeInt32>[]) => TtfImported_NonNegativeInt32;
79
76
  /**
80
- * Clamps a number to the NonNegativeInt32 range.
77
+ * Clamps a `number` into the `NonNegativeInt32` range, rounding to the
78
+ * nearest integer and constraining the result to `[MIN_VALUE, MAX_VALUE]`.
81
79
  *
82
- * @param value The number to clamp.
83
- * @returns The value clamped to [0, 2147483647] as a NonNegativeInt32.
80
+ * @param value - The value to clamp
81
+ * @returns The clamped value as a `NonNegativeInt32`
84
82
  */
85
83
  readonly clamp: (x: number) => TtfImported_NonNegativeInt32;
86
84
  /**
87
- * Generates a random NonNegativeInt32 value within the valid range.
85
+ * Generates a random `NonNegativeInt32` within the given range.
86
+ *
87
+ * The range is inclusive on both ends.
88
88
  *
89
- * @returns A random NonNegativeInt32 between 0 and 2147483647.
89
+ * @param min - The minimum value (inclusive)
90
+ * @param max - The maximum value (inclusive)
91
+ * @returns A random `NonNegativeInt32` in `[min, max]`
90
92
  */
91
93
  readonly random: (min?: import("ts-type-forge").WithSmallInt<TtfImported_NonNegativeInt32> | undefined, max?: import("ts-type-forge").WithSmallInt<TtfImported_NonNegativeInt32> | undefined) => TtfImported_NonNegativeInt32;
92
94
  /**
93
- * Raises a NonNegativeInt32 to the power of another NonNegativeInt32.
95
+ * Raises `a` to the power `b`, returning `a ** b` as a `NonNegativeInt32`
96
+ * (floored to an integer).
94
97
  *
95
- * @param a The base NonNegativeInt32.
96
- * @param b The exponent NonNegativeInt32.
97
- * @returns `a ** b` clamped to [0, 2147483647] as a NonNegativeInt32.
98
+ * @param a - The base non-negative integer
99
+ * @param b - The exponent non-negative integer
100
+ * @returns `a ** b` as a `NonNegativeInt32`
98
101
  */
99
102
  readonly pow: (x: import("ts-type-forge").WithSmallInt<TtfImported_NonNegativeInt32>, y: import("ts-type-forge").WithSmallInt<TtfImported_NonNegativeInt32>) => TtfImported_NonNegativeInt32;
100
103
  /**
101
- * Adds two NonNegativeInt32 values.
104
+ * Adds two non-negative integers, returning `a + b` as a `NonNegativeInt32`.
102
105
  *
103
- * @param a The first NonNegativeInt32.
104
- * @param b The second NonNegativeInt32.
105
- * @returns `a + b` clamped to [0, 2147483647] as a NonNegativeInt32.
106
+ * @param a - The first non-negative integer
107
+ * @param b - The second non-negative integer
108
+ * @returns The sum of `a` and `b` as a `NonNegativeInt32`
106
109
  */
107
110
  readonly add: (x: import("ts-type-forge").WithSmallInt<TtfImported_NonNegativeInt32>, y: import("ts-type-forge").WithSmallInt<TtfImported_NonNegativeInt32>) => TtfImported_NonNegativeInt32;
108
111
  /**
109
- * Subtracts one NonNegativeInt32 from another.
112
+ * Subtracts two non-negative integers, returning `a - b` as a
113
+ * `NonNegativeInt32`.
110
114
  *
111
- * @param a The minuend NonNegativeInt32.
112
- * @param b The subtrahend NonNegativeInt32.
113
- * @returns `a - b` clamped to [0, 2147483647] as a NonNegativeInt32 (minimum
114
- * 0).
115
+ * @param a - The first non-negative integer
116
+ * @param b - The second non-negative integer
117
+ * @returns The difference of `a` and `b` as a `NonNegativeInt32`
115
118
  */
116
119
  readonly sub: (x: import("ts-type-forge").WithSmallInt<TtfImported_NonNegativeInt32>, y: import("ts-type-forge").WithSmallInt<TtfImported_NonNegativeInt32>) => TtfImported_NonNegativeInt32;
117
120
  /**
118
- * Multiplies two NonNegativeInt32 values.
121
+ * Multiplies two non-negative integers, returning `a * b` as a
122
+ * `NonNegativeInt32`.
119
123
  *
120
- * @param a The first NonNegativeInt32.
121
- * @param b The second NonNegativeInt32.
122
- * @returns `a * b` clamped to [0, 2147483647] as a NonNegativeInt32.
124
+ * @param a - The first non-negative integer
125
+ * @param b - The second non-negative integer
126
+ * @returns The product of `a` and `b` as a `NonNegativeInt32`
123
127
  */
124
128
  readonly mul: (x: import("ts-type-forge").WithSmallInt<TtfImported_NonNegativeInt32>, y: import("ts-type-forge").WithSmallInt<TtfImported_NonNegativeInt32>) => TtfImported_NonNegativeInt32;
125
129
  /**
126
- * Divides one NonNegativeInt32 by another using floor division.
130
+ * Divides two non-negative integers using floor division (`⌊a / b⌋`): the
131
+ * result is `a / b` rounded toward negative infinity, as a
132
+ * `NonNegativeInt32`.
127
133
  *
128
- * @param a The dividend NonNegativeInt32.
129
- * @param b The divisor NonNegativeInt32.
130
- * @returns `⌊a / b⌋` clamped to [0, 2147483647] as a NonNegativeInt32.
134
+ * @param a - The dividend
135
+ * @param b - The divisor (must be non-zero)
136
+ * @returns The floored quotient as a `NonNegativeInt32`
131
137
  */
132
138
  readonly div: (x: import("ts-type-forge").WithSmallInt<TtfImported_NonNegativeInt32>, y: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | import("ts-type-forge").NormalizeBrandUnion<number & {
133
139
  readonly "!=0": true;
@@ -1 +1 @@
1
- {"version":3,"file":"non-negative-int32.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/non-negative-int32.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,IAAI,4BAA4B,EAAE,MAAM,eAAe,CAAC;AAItF,MAAM,MAAM,gBAAgB,GAAG,4BAA4B,CAAC;AA+B5D;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,kDAAK,CAAC;AAErC;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;MAAW,CAAC;AAE3C;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB;IAC3B;;;;;;OAMG;;IAGH;;;;OAIG;;IAGH;;;;OAIG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;OAKG;;IAGH;;;;OAIG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;;;OAOG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;;;;;;;;;;;;;;;;CAEK,CAAC"}
1
+ {"version":3,"file":"non-negative-int32.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/non-negative-int32.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,IAAI,4BAA4B,EAAE,MAAM,eAAe,CAAC;AAItF,MAAM,MAAM,gBAAgB,GAAG,4BAA4B,CAAC;AA+B5D;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,kDAAK,CAAC;AAErC;;;;;;;;;GASG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;MAAW,CAAC;AAE3C;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB;IAC3B;;;;;;OAMG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;;;;OAKG;;IAGH;;;;;OAKG;;IAGH;;;;;;OAMG;;IAGH;;;;;;;;OAQG;;IAGH;;;;;;;OAOG;;IAGH;;;;;;OAMG;;IAGH;;;;;;;OAOG;;IAGH;;;;;;;OAOG;;IAGH;;;;;;;;OAQG;;;;;;;;;;;;;;;;;CAEK,CAAC"}
@@ -25,93 +25,96 @@ const isNonNegativeInt32 = is;
25
25
  const asNonNegativeInt32 = castType;
26
26
  const NonNegativeInt32 = {
27
27
  /**
28
- * Type guard to check if a value is a NonNegativeInt32.
28
+ * Type guard that checks if a value is a non-negative integer in [0, 2^31).
29
29
  *
30
- * @param value The value to check.
31
- * @returns `true` if the value is a 32-bit non-negative integer, `false`
32
- * otherwise.
30
+ * @param value - The value to check
31
+ * @returns `true` if the value is a non-negative integer in [0, 2^31), `false` otherwise
32
+ * @see {@link isNonNegativeInt32} for usage examples
33
33
  */
34
34
  is,
35
35
  /**
36
- * The minimum value for a 32-bit non-negative integer.
37
- *
38
- * @readonly
36
+ * The smallest value representable as `NonNegativeInt32`.
39
37
  */
40
38
  MIN_VALUE,
41
39
  /**
42
- * The maximum value for a 32-bit non-negative integer.
43
- *
44
- * @readonly
40
+ * The largest value representable as `NonNegativeInt32`.
45
41
  */
46
42
  MAX_VALUE,
47
43
  /**
48
- * Returns the smaller of two NonNegativeInt32 values.
44
+ * Returns the smallest of the given non-negative integers.
49
45
  *
50
- * @param a The first NonNegativeInt32.
51
- * @param b The second NonNegativeInt32.
52
- * @returns The minimum value as a NonNegativeInt32.
46
+ * @param values - The non-negative integers to compare (at least one required)
47
+ * @returns The smallest value as a `NonNegativeInt32`
53
48
  */
54
49
  min: min_,
55
50
  /**
56
- * Returns the larger of two NonNegativeInt32 values.
51
+ * Returns the largest of the given non-negative integers.
57
52
  *
58
- * @param a The first NonNegativeInt32.
59
- * @param b The second NonNegativeInt32.
60
- * @returns The maximum value as a NonNegativeInt32.
53
+ * @param values - The non-negative integers to compare (at least one required)
54
+ * @returns The largest value as a `NonNegativeInt32`
61
55
  */
62
56
  max: max_,
63
57
  /**
64
- * Clamps a number to the NonNegativeInt32 range.
58
+ * Clamps a `number` into the `NonNegativeInt32` range, rounding to the
59
+ * nearest integer and constraining the result to `[MIN_VALUE, MAX_VALUE]`.
65
60
  *
66
- * @param value The number to clamp.
67
- * @returns The value clamped to [0, 2147483647] as a NonNegativeInt32.
61
+ * @param value - The value to clamp
62
+ * @returns The clamped value as a `NonNegativeInt32`
68
63
  */
69
64
  clamp,
70
65
  /**
71
- * Generates a random NonNegativeInt32 value within the valid range.
66
+ * Generates a random `NonNegativeInt32` within the given range.
67
+ *
68
+ * The range is inclusive on both ends.
72
69
  *
73
- * @returns A random NonNegativeInt32 between 0 and 2147483647.
70
+ * @param min - The minimum value (inclusive)
71
+ * @param max - The maximum value (inclusive)
72
+ * @returns A random `NonNegativeInt32` in `[min, max]`
74
73
  */
75
74
  random,
76
75
  /**
77
- * Raises a NonNegativeInt32 to the power of another NonNegativeInt32.
76
+ * Raises `a` to the power `b`, returning `a ** b` as a `NonNegativeInt32`
77
+ * (floored to an integer).
78
78
  *
79
- * @param a The base NonNegativeInt32.
80
- * @param b The exponent NonNegativeInt32.
81
- * @returns `a ** b` clamped to [0, 2147483647] as a NonNegativeInt32.
79
+ * @param a - The base non-negative integer
80
+ * @param b - The exponent non-negative integer
81
+ * @returns `a ** b` as a `NonNegativeInt32`
82
82
  */
83
83
  pow,
84
84
  /**
85
- * Adds two NonNegativeInt32 values.
85
+ * Adds two non-negative integers, returning `a + b` as a `NonNegativeInt32`.
86
86
  *
87
- * @param a The first NonNegativeInt32.
88
- * @param b The second NonNegativeInt32.
89
- * @returns `a + b` clamped to [0, 2147483647] as a NonNegativeInt32.
87
+ * @param a - The first non-negative integer
88
+ * @param b - The second non-negative integer
89
+ * @returns The sum of `a` and `b` as a `NonNegativeInt32`
90
90
  */
91
91
  add,
92
92
  /**
93
- * Subtracts one NonNegativeInt32 from another.
93
+ * Subtracts two non-negative integers, returning `a - b` as a
94
+ * `NonNegativeInt32`.
94
95
  *
95
- * @param a The minuend NonNegativeInt32.
96
- * @param b The subtrahend NonNegativeInt32.
97
- * @returns `a - b` clamped to [0, 2147483647] as a NonNegativeInt32 (minimum
98
- * 0).
96
+ * @param a - The first non-negative integer
97
+ * @param b - The second non-negative integer
98
+ * @returns The difference of `a` and `b` as a `NonNegativeInt32`
99
99
  */
100
100
  sub,
101
101
  /**
102
- * Multiplies two NonNegativeInt32 values.
102
+ * Multiplies two non-negative integers, returning `a * b` as a
103
+ * `NonNegativeInt32`.
103
104
  *
104
- * @param a The first NonNegativeInt32.
105
- * @param b The second NonNegativeInt32.
106
- * @returns `a * b` clamped to [0, 2147483647] as a NonNegativeInt32.
105
+ * @param a - The first non-negative integer
106
+ * @param b - The second non-negative integer
107
+ * @returns The product of `a` and `b` as a `NonNegativeInt32`
107
108
  */
108
109
  mul,
109
110
  /**
110
- * Divides one NonNegativeInt32 by another using floor division.
111
+ * Divides two non-negative integers using floor division (`⌊a / b⌋`): the
112
+ * result is `a / b` rounded toward negative infinity, as a
113
+ * `NonNegativeInt32`.
111
114
  *
112
- * @param a The dividend NonNegativeInt32.
113
- * @param b The divisor NonNegativeInt32.
114
- * @returns `⌊a / b⌋` clamped to [0, 2147483647] as a NonNegativeInt32.
115
+ * @param a - The dividend
116
+ * @param b - The divisor (must be non-zero)
117
+ * @returns The floored quotient as a `NonNegativeInt32`
115
118
  */
116
119
  div
117
120
  };
@@ -1 +1 @@
1
- {"version":3,"file":"non-negative-int32.mjs","sources":["../../../src/number/branded-types/non-negative-int32.mts"],"sourcesContent":["import { type NonNegativeInt32 as TtfImported_NonNegativeInt32 } from 'ts-type-forge';\nimport { expectType } from '../../expect-type.mjs';\nimport { TsDataForgeInternals } from '../refined-number-utils.mjs';\n\nexport type NonNegativeInt32 = TtfImported_NonNegativeInt32;\n\ntype ElementType = NonNegativeInt32;\n\nconst typeNameInMessage = 'a non-negative integer in [0, 2^31)';\n\nconst {\n MAX_VALUE,\n MIN_VALUE,\n add,\n castType,\n clamp,\n div,\n is,\n max: max_,\n min: min_,\n mul,\n pow,\n random,\n sub,\n} = TsDataForgeInternals.RefinedNumberUtils.operatorsForInteger<\n ElementType,\n 0,\n number\n>({\n integerOrSafeInteger: 'SafeInteger',\n MIN_VALUE: 0,\n MAX_VALUE: 2 ** 31 - 1,\n typeNameInMessage,\n} as const);\n\n/**\n * Checks if a number is a NonNegativeInt32 (32-bit non-negative signed integer\n * in the range [0, 2^31)).\n *\n * @param value The value to check.\n * @returns `true` if the value is a NonNegativeInt32, `false` otherwise.\n */\nexport const isNonNegativeInt32 = is;\n\n/**\n * Casts a number to a NonNegativeInt32 type.\n *\n * @param value The value to cast.\n * @returns The value as a NonNegativeInt32 type.\n * @throws {TypeError} If the value is not a non-negative integer in [0, 2^31).\n */\nexport const asNonNegativeInt32 = castType;\n\n/**\n * Namespace providing type-safe arithmetic operations for 32-bit non-negative\n * integers.\n *\n * All operations automatically clamp results to the valid NonNegativeInt32\n * range [0, 2147483647]. This ensures that all arithmetic maintains the 32-bit\n * non-negative integer constraint, with negative results clamped to 0 and\n * overflow results clamped to MAX_VALUE.\n */\nexport const NonNegativeInt32 = {\n /**\n * Type guard to check if a value is a NonNegativeInt32.\n *\n * @param value The value to check.\n * @returns `true` if the value is a 32-bit non-negative integer, `false`\n * otherwise.\n */\n is,\n\n /**\n * The minimum value for a 32-bit non-negative integer.\n *\n * @readonly\n */\n MIN_VALUE,\n\n /**\n * The maximum value for a 32-bit non-negative integer.\n *\n * @readonly\n */\n MAX_VALUE,\n\n /**\n * Returns the smaller of two NonNegativeInt32 values.\n *\n * @param a The first NonNegativeInt32.\n * @param b The second NonNegativeInt32.\n * @returns The minimum value as a NonNegativeInt32.\n */\n min: min_,\n\n /**\n * Returns the larger of two NonNegativeInt32 values.\n *\n * @param a The first NonNegativeInt32.\n * @param b The second NonNegativeInt32.\n * @returns The maximum value as a NonNegativeInt32.\n */\n max: max_,\n\n /**\n * Clamps a number to the NonNegativeInt32 range.\n *\n * @param value The number to clamp.\n * @returns The value clamped to [0, 2147483647] as a NonNegativeInt32.\n */\n clamp,\n\n /**\n * Generates a random NonNegativeInt32 value within the valid range.\n *\n * @returns A random NonNegativeInt32 between 0 and 2147483647.\n */\n random,\n\n /**\n * Raises a NonNegativeInt32 to the power of another NonNegativeInt32.\n *\n * @param a The base NonNegativeInt32.\n * @param b The exponent NonNegativeInt32.\n * @returns `a ** b` clamped to [0, 2147483647] as a NonNegativeInt32.\n */\n pow,\n\n /**\n * Adds two NonNegativeInt32 values.\n *\n * @param a The first NonNegativeInt32.\n * @param b The second NonNegativeInt32.\n * @returns `a + b` clamped to [0, 2147483647] as a NonNegativeInt32.\n */\n add,\n\n /**\n * Subtracts one NonNegativeInt32 from another.\n *\n * @param a The minuend NonNegativeInt32.\n * @param b The subtrahend NonNegativeInt32.\n * @returns `a - b` clamped to [0, 2147483647] as a NonNegativeInt32 (minimum\n * 0).\n */\n sub,\n\n /**\n * Multiplies two NonNegativeInt32 values.\n *\n * @param a The first NonNegativeInt32.\n * @param b The second NonNegativeInt32.\n * @returns `a * b` clamped to [0, 2147483647] as a NonNegativeInt32.\n */\n mul,\n\n /**\n * Divides one NonNegativeInt32 by another using floor division.\n *\n * @param a The dividend NonNegativeInt32.\n * @param b The divisor NonNegativeInt32.\n * @returns `⌊a / b⌋` clamped to [0, 2147483647] as a NonNegativeInt32.\n */\n div,\n} as const;\n\nexpectType<\n keyof typeof NonNegativeInt32,\n keyof TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'non-negative' | 'range'\n >\n>('=');\n\nexpectType<\n typeof NonNegativeInt32,\n TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'non-negative' | 'range'\n >\n>('<=');\n"],"names":[],"mappings":";;AAQA,MAAM,iBAAA,GAAoB,qCAAA;AAE1B,MAAM;AAAA,EACJ,SAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAA;AAAA,EACA,QAAA;AAAA,EACA,KAAA;AAAA,EACA,GAAA;AAAA,EACA,EAAA;AAAA,EACA,GAAA,EAAK,IAAA;AAAA,EACL,GAAA,EAAK,IAAA;AAAA,EACL,GAAA;AAAA,EACA,GAAA;AAAA,EACA,MAAA;AAAA,EACA;AACF,CAAA,GAAI,oBAAA,CAAqB,mBAAmB,mBAAA,CAI1C;AAAA,EACA,oBAAA,EAAsB,aAAA;AAAA,EACtB,SAAA,EAAW,CAAA;AAAA,EACX,SAAA,EAAW,KAAK,EAAA,GAAK,CAAA;AAAA,EACrB;AACF,CAAU,CAAA;AASH,MAAM,kBAAA,GAAqB;AAS3B,MAAM,kBAAA,GAAqB;AAW3B,MAAM,gBAAA,GAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ9B,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,GAAA,EAAK,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASL,GAAA,EAAK,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQL,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA;AACF;;;;"}
1
+ {"version":3,"file":"non-negative-int32.mjs","sources":["../../../src/number/branded-types/non-negative-int32.mts"],"sourcesContent":["import { type NonNegativeInt32 as TtfImported_NonNegativeInt32 } from 'ts-type-forge';\nimport { expectType } from '../../expect-type.mjs';\nimport { TsDataForgeInternals } from '../refined-number-utils.mjs';\n\nexport type NonNegativeInt32 = TtfImported_NonNegativeInt32;\n\ntype ElementType = NonNegativeInt32;\n\nconst typeNameInMessage = 'a non-negative integer in [0, 2^31)';\n\nconst {\n MAX_VALUE,\n MIN_VALUE,\n add,\n castType,\n clamp,\n div,\n is,\n max: max_,\n min: min_,\n mul,\n pow,\n random,\n sub,\n} = TsDataForgeInternals.RefinedNumberUtils.operatorsForInteger<\n ElementType,\n 0,\n number\n>({\n integerOrSafeInteger: 'SafeInteger',\n MIN_VALUE: 0,\n MAX_VALUE: 2 ** 31 - 1,\n typeNameInMessage,\n} as const);\n\n/**\n * Type guard that checks if a value is a non-negative integer in [0, 2^31).\n *\n * Returns `true` for a non-negative integer in [0, 2^31) — a value with no\n * fractional component.\n *\n * @param value - The value to check\n * @returns `true` if the value is a non-negative integer in [0, 2^31), `false` otherwise\n */\nexport const isNonNegativeInt32 = is;\n\n/**\n * Casts a `number` to the `NonNegativeInt32` branded type.\n *\n * Validates that the value is a non-negative integer in [0, 2^31) and returns\n * it with the `NonNegativeInt32` brand. Throws a `TypeError` otherwise.\n *\n * @param value - The value to cast\n * @returns The value as a `NonNegativeInt32`\n * @throws {TypeError} If the value is not a non-negative integer in [0, 2^31)\n */\nexport const asNonNegativeInt32 = castType;\n\n/**\n * Namespace providing type-safe operations for the `NonNegativeInt32` branded\n * type.\n *\n * The `NonNegativeInt32` type represents a non-negative integer in [0, 2^31).\n * Division (`div`) uses floor division.\n */\nexport const NonNegativeInt32 = {\n /**\n * Type guard that checks if a value is a non-negative integer in [0, 2^31).\n *\n * @param value - The value to check\n * @returns `true` if the value is a non-negative integer in [0, 2^31), `false` otherwise\n * @see {@link isNonNegativeInt32} for usage examples\n */\n is,\n\n /**\n * The smallest value representable as `NonNegativeInt32`.\n */\n MIN_VALUE,\n\n /**\n * The largest value representable as `NonNegativeInt32`.\n */\n MAX_VALUE,\n\n /**\n * Returns the smallest of the given non-negative integers.\n *\n * @param values - The non-negative integers to compare (at least one required)\n * @returns The smallest value as a `NonNegativeInt32`\n */\n min: min_,\n\n /**\n * Returns the largest of the given non-negative integers.\n *\n * @param values - The non-negative integers to compare (at least one required)\n * @returns The largest value as a `NonNegativeInt32`\n */\n max: max_,\n\n /**\n * Clamps a `number` into the `NonNegativeInt32` range, rounding to the\n * nearest integer and constraining the result to `[MIN_VALUE, MAX_VALUE]`.\n *\n * @param value - The value to clamp\n * @returns The clamped value as a `NonNegativeInt32`\n */\n clamp,\n\n /**\n * Generates a random `NonNegativeInt32` within the given range.\n *\n * The range is inclusive on both ends.\n *\n * @param min - The minimum value (inclusive)\n * @param max - The maximum value (inclusive)\n * @returns A random `NonNegativeInt32` in `[min, max]`\n */\n random,\n\n /**\n * Raises `a` to the power `b`, returning `a ** b` as a `NonNegativeInt32`\n * (floored to an integer).\n *\n * @param a - The base non-negative integer\n * @param b - The exponent non-negative integer\n * @returns `a ** b` as a `NonNegativeInt32`\n */\n pow,\n\n /**\n * Adds two non-negative integers, returning `a + b` as a `NonNegativeInt32`.\n *\n * @param a - The first non-negative integer\n * @param b - The second non-negative integer\n * @returns The sum of `a` and `b` as a `NonNegativeInt32`\n */\n add,\n\n /**\n * Subtracts two non-negative integers, returning `a - b` as a\n * `NonNegativeInt32`.\n *\n * @param a - The first non-negative integer\n * @param b - The second non-negative integer\n * @returns The difference of `a` and `b` as a `NonNegativeInt32`\n */\n sub,\n\n /**\n * Multiplies two non-negative integers, returning `a * b` as a\n * `NonNegativeInt32`.\n *\n * @param a - The first non-negative integer\n * @param b - The second non-negative integer\n * @returns The product of `a` and `b` as a `NonNegativeInt32`\n */\n mul,\n\n /**\n * Divides two non-negative integers using floor division (`⌊a / b⌋`): the\n * result is `a / b` rounded toward negative infinity, as a\n * `NonNegativeInt32`.\n *\n * @param a - The dividend\n * @param b - The divisor (must be non-zero)\n * @returns The floored quotient as a `NonNegativeInt32`\n */\n div,\n} as const;\n\nexpectType<\n keyof typeof NonNegativeInt32,\n keyof TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'non-negative' | 'range'\n >\n>('=');\n\nexpectType<\n typeof NonNegativeInt32,\n TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'non-negative' | 'range'\n >\n>('<=');\n"],"names":[],"mappings":";;AAQA,MAAM,iBAAA,GAAoB,qCAAA;AAE1B,MAAM;AAAA,EACJ,SAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAA;AAAA,EACA,QAAA;AAAA,EACA,KAAA;AAAA,EACA,GAAA;AAAA,EACA,EAAA;AAAA,EACA,GAAA,EAAK,IAAA;AAAA,EACL,GAAA,EAAK,IAAA;AAAA,EACL,GAAA;AAAA,EACA,GAAA;AAAA,EACA,MAAA;AAAA,EACA;AACF,CAAA,GAAI,oBAAA,CAAqB,mBAAmB,mBAAA,CAI1C;AAAA,EACA,oBAAA,EAAsB,aAAA;AAAA,EACtB,SAAA,EAAW,CAAA;AAAA,EACX,SAAA,EAAW,KAAK,EAAA,GAAK,CAAA;AAAA,EACrB;AACF,CAAU,CAAA;AAWH,MAAM,kBAAA,GAAqB;AAY3B,MAAM,kBAAA,GAAqB;AAS3B,MAAM,gBAAA,GAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ9B,EAAA;AAAA;AAAA;AAAA;AAAA,EAKA,SAAA;AAAA;AAAA;AAAA;AAAA,EAKA,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,GAAA,EAAK,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQL,GAAA,EAAK,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASL,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,MAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA;AACF;;;;"}
@@ -3,18 +3,24 @@ import { TsDataForgeInternals } from '../refined-number-utils.mjs';
3
3
  export type NonPositiveFiniteNumber = TtfImported_NonPositiveFiniteNumber;
4
4
  type ElementType = NonPositiveFiniteNumber;
5
5
  /**
6
- * Checks if a number is a NonPositiveFiniteNumber (a finite number <= 0).
6
+ * Type guard that checks if a value is a non-positive finite number.
7
7
  *
8
- * @param value The value to check.
9
- * @returns `true` if the value is a NonPositiveFiniteNumber, `false` otherwise.
8
+ * Returns `true` only for a finite value — never `NaN`, `Infinity`, or
9
+ * `-Infinity`.
10
+ *
11
+ * @param value - The value to check
12
+ * @returns `true` if the value is a non-positive finite number, `false` otherwise
10
13
  */
11
14
  export declare const isNonPositiveFiniteNumber: (a: number) => a is TtfImported_NonPositiveFiniteNumber;
12
15
  /**
13
- * Casts a number to a NonPositiveFiniteNumber type.
16
+ * Casts a `number` to the `NonPositiveFiniteNumber` branded type.
17
+ *
18
+ * Validates that the value is a non-positive finite number and returns it with
19
+ * the `NonPositiveFiniteNumber` brand. Throws a `TypeError` otherwise.
14
20
  *
15
- * @param value The value to cast.
16
- * @returns The value as a NonPositiveFiniteNumber type.
17
- * @throws {TypeError} If the value is not a non-positive finite number.
21
+ * @param value - The value to cast
22
+ * @returns The value as a `NonPositiveFiniteNumber`
23
+ * @throws {TypeError} If the value is not a non-positive finite number
18
24
  */
19
25
  export declare const asNonPositiveFiniteNumber: <N extends number>(x: N) => number & {
20
26
  readonly "< 2^15": true;
@@ -28,101 +34,105 @@ export declare const asNonPositiveFiniteNumber: <N extends number>(x: N) => numb
28
34
  'TSTypeForgeInternals--edd2f9ce-7ca5-45b0-9d1a-bd61b9b5d9c3': unknown;
29
35
  }> & N;
30
36
  /**
31
- * Namespace providing type-safe arithmetic operations for non-positive finite
32
- * numbers.
37
+ * Namespace providing type-safe operations for the `NonPositiveFiniteNumber`
38
+ * branded type.
33
39
  *
34
- * All operations maintain the non-positive constraint by clamping positive
35
- * results to MAX_VALUE (0), while ensuring results remain finite (excluding NaN
36
- * and Infinity). This type is useful for representing quantities that must
37
- * always be non-positive, such as debts, penalties, and negative offsets.
40
+ * The `NonPositiveFiniteNumber` type represents a non-positive finite number.
38
41
  */
39
42
  export declare const NonPositiveFiniteNumber: {
40
43
  /**
41
- * Type guard to check if a value is a NonPositiveFiniteNumber.
44
+ * Type guard that checks if a value is a non-positive finite number.
42
45
  *
43
- * @param value The value to check.
44
- * @returns `true` if the value is a non-positive finite number, `false`
45
- * otherwise.
46
+ * @param value - The value to check
47
+ * @returns `true` if the value is a non-positive finite number, `false` otherwise
48
+ * @see {@link isNonPositiveFiniteNumber} for usage examples
46
49
  */
47
50
  readonly is: (a: number) => a is TtfImported_NonPositiveFiniteNumber;
48
51
  /**
49
- * The maximum value for a non-positive finite number.
50
- *
51
- * @readonly
52
+ * The largest value representable as `NonPositiveFiniteNumber`.
52
53
  */
53
54
  readonly MAX_VALUE: 0;
54
55
  /**
55
- * Returns the smaller of two NonPositiveFiniteNumber values.
56
+ * Returns the smallest of the given non-positive finite numbers.
56
57
  *
57
- * @param a The first NonPositiveFiniteNumber.
58
- * @param b The second NonPositiveFiniteNumber.
59
- * @returns The minimum value as a NonPositiveFiniteNumber.
58
+ * @param values - The non-positive finite numbers to compare (at least one required)
59
+ * @returns The smallest value as a `NonPositiveFiniteNumber`
60
60
  */
61
61
  readonly min: (...values: readonly TtfImported_NonPositiveFiniteNumber[]) => TtfImported_NonPositiveFiniteNumber;
62
62
  /**
63
- * Returns the larger of two NonPositiveFiniteNumber values.
63
+ * Returns the largest of the given non-positive finite numbers.
64
64
  *
65
- * @param a The first NonPositiveFiniteNumber.
66
- * @param b The second NonPositiveFiniteNumber.
67
- * @returns The maximum value as a NonPositiveFiniteNumber.
65
+ * @param values - The non-positive finite numbers to compare (at least one required)
66
+ * @returns The largest value as a `NonPositiveFiniteNumber`
68
67
  */
69
68
  readonly max: (...values: readonly TtfImported_NonPositiveFiniteNumber[]) => TtfImported_NonPositiveFiniteNumber;
70
69
  /**
71
- * Clamps a number to the non-positive finite range.
70
+ * Clamps a `number` into the `NonPositiveFiniteNumber` range `[MIN_VALUE,
71
+ * MAX_VALUE]`.
72
72
  *
73
- * @param value The number to clamp.
74
- * @returns The value clamped to (-∞, 0] as a NonPositiveFiniteNumber.
73
+ * @param value - The value to clamp
74
+ * @returns The clamped value as a `NonPositiveFiniteNumber`
75
75
  */
76
76
  readonly clamp: (x: number) => TtfImported_NonPositiveFiniteNumber;
77
77
  /**
78
- * Rounds down a NonPositiveFiniteNumber to the nearest integer.
78
+ * Returns the greatest integer less than or equal to a non-positive finite
79
+ * number.
79
80
  *
80
- * @param x The NonPositiveFiniteNumber to round down.
81
- * @returns The floor value as a NonPositiveInt (can be 0).
81
+ * @param a - The non-positive finite number value
82
+ * @returns The floored value as an integer
82
83
  */
83
84
  readonly floor: (x: ElementType) => TsDataForgeInternals.RefinedNumberUtils.RemoveNonZeroBrandKey<TsDataForgeInternals.RefinedNumberUtils.ToInt<ElementType>>;
84
85
  /**
85
- * Rounds up a NonPositiveFiniteNumber to the nearest integer.
86
+ * Returns the smallest integer greater than or equal to a non-positive finite
87
+ * number.
86
88
  *
87
- * @param x The NonPositiveFiniteNumber to round up.
88
- * @returns The ceiling value as a NegativeInt (always <= -1) or 0.
89
+ * @param a - The non-positive finite number value
90
+ * @returns The ceiled value as an integer
89
91
  */
90
92
  readonly ceil: (x: ElementType) => TsDataForgeInternals.RefinedNumberUtils.RemoveNonZeroBrandKey<TsDataForgeInternals.RefinedNumberUtils.ToInt<ElementType>>;
91
93
  /**
92
- * Rounds a NonPositiveFiniteNumber to the nearest integer.
94
+ * Returns the value of a non-positive finite number rounded to the nearest
95
+ * integer.
93
96
  *
94
- * @param x The NonPositiveFiniteNumber to round.
95
- * @returns The rounded value as a NonPositiveInt (can be 0 if x > -0.5).
97
+ * @param a - The non-positive finite number value
98
+ * @returns The rounded value as an integer
96
99
  */
97
100
  readonly round: (x: ElementType) => TsDataForgeInternals.RefinedNumberUtils.RemoveNonZeroBrandKey<TsDataForgeInternals.RefinedNumberUtils.ToInt<ElementType>>;
98
101
  /**
99
- * Generates a random NonPositiveFiniteNumber value.
102
+ * Generates a random `NonPositiveFiniteNumber` within the given range.
103
+ *
104
+ * The range is inclusive on both ends.
100
105
  *
101
- * @returns A random non-positive finite number.
106
+ * @param min - The minimum value (inclusive)
107
+ * @param max - The maximum value (inclusive)
108
+ * @returns A random `NonPositiveFiniteNumber` in `[min, max]`
102
109
  */
103
110
  readonly random: (min?: TtfImported_NonPositiveFiniteNumber | undefined, max?: TtfImported_NonPositiveFiniteNumber | undefined) => TtfImported_NonPositiveFiniteNumber;
104
111
  /**
105
- * Raises a NonPositiveFiniteNumber to the power of another NonPositiveFiniteNumber.
112
+ * Raises `a` to the power `b`, returning `a ** b` as a
113
+ * `NonPositiveFiniteNumber`.
106
114
  *
107
- * @param a The base NonPositiveFiniteNumber.
108
- * @param b The exponent NonPositiveFiniteNumber.
109
- * @returns `a ** b` clamped to (-∞, 0] as a NonPositiveFiniteNumber.
115
+ * @param a - The base non-positive finite number
116
+ * @param b - The exponent non-positive finite number
117
+ * @returns `a ** b` as a `NonPositiveFiniteNumber`
110
118
  */
111
119
  readonly pow: (x: TtfImported_NonPositiveFiniteNumber, y: TtfImported_NonPositiveFiniteNumber) => TtfImported_NonPositiveFiniteNumber;
112
120
  /**
113
- * Adds two NonPositiveFiniteNumber values.
121
+ * Adds two non-positive finite numbers, returning `a + b` as a
122
+ * `NonPositiveFiniteNumber`.
114
123
  *
115
- * @param a The first NonPositiveFiniteNumber.
116
- * @param b The second NonPositiveFiniteNumber.
117
- * @returns `a + b` clamped to (-∞, 0] as a NonPositiveFiniteNumber.
124
+ * @param a - The first non-positive finite number
125
+ * @param b - The second non-positive finite number
126
+ * @returns The sum of `a` and `b` as a `NonPositiveFiniteNumber`
118
127
  */
119
128
  readonly add: (x: TtfImported_NonPositiveFiniteNumber, y: TtfImported_NonPositiveFiniteNumber) => TtfImported_NonPositiveFiniteNumber;
120
129
  /**
121
- * Subtracts one NonPositiveFiniteNumber from another.
130
+ * Subtracts two non-positive finite numbers, returning `a - b` as a
131
+ * `NonPositiveFiniteNumber`.
122
132
  *
123
- * @param a The minuend NonPositiveFiniteNumber.
124
- * @param b The subtrahend NonPositiveFiniteNumber.
125
- * @returns `a - b` clamped to (-∞, 0] as a NonPositiveFiniteNumber (maximum 0).
133
+ * @param a - The first non-positive finite number
134
+ * @param b - The second non-positive finite number
135
+ * @returns The difference of `a` and `b` as a `NonPositiveFiniteNumber`
126
136
  */
127
137
  readonly sub: (x: TtfImported_NonPositiveFiniteNumber, y: TtfImported_NonPositiveFiniteNumber) => TtfImported_NonPositiveFiniteNumber;
128
138
  };
@@ -1 +1 @@
1
- {"version":3,"file":"non-positive-finite-number.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/non-positive-finite-number.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,uBAAuB,IAAI,mCAAmC,EAAE,MAAM,eAAe,CAAC;AACpG,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,MAAM,MAAM,uBAAuB,GAAG,mCAAmC,CAAC;AAE1E,KAAK,WAAW,GAAG,uBAAuB,CAAC;AA2D3C;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,yDAAK,CAAC;AAE5C;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;MAAW,CAAC;AAElD;;;;;;;;GAQG;AACH,eAAO,MAAM,uBAAuB;IAClC;;;;;;OAMG;;IAGH;;;;OAIG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;OAKG;;IAGH;;;;;OAKG;wBA3GA,WAAW,KACb,oBAAoB,CAAC,kBAAkB,CAAC,qBAAqB,CAC9D,oBAAoB,CAAC,kBAAkB,CAAC,KAAK,CAAC,WAAW,CAAC,CAC3D;IA2GC;;;;;OAKG;uBAvGA,WAAW,KACb,oBAAoB,CAAC,kBAAkB,CAAC,qBAAqB,CAC9D,oBAAoB,CAAC,kBAAkB,CAAC,KAAK,CAAC,WAAW,CAAC,CAC3D;IAuGC;;;;;OAKG;wBArGA,WAAW,KACb,oBAAoB,CAAC,kBAAkB,CAAC,qBAAqB,CAC9D,oBAAoB,CAAC,kBAAkB,CAAC,KAAK,CAAC,WAAW,CAAC,CAC3D;IAqGC;;;;OAIG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;CAEK,CAAC"}
1
+ {"version":3,"file":"non-positive-finite-number.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/non-positive-finite-number.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,uBAAuB,IAAI,mCAAmC,EAAE,MAAM,eAAe,CAAC;AACpG,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,MAAM,MAAM,uBAAuB,GAAG,mCAAmC,CAAC;AAE1E,KAAK,WAAW,GAAG,uBAAuB,CAAC;AA2D3C;;;;;;;;GAQG;AACH,eAAO,MAAM,yBAAyB,yDAAK,CAAC;AAE5C;;;;;;;;;GASG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;MAAW,CAAC;AAElD;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB;IAClC;;;;;;OAMG;;IAGH;;OAEG;;IAGH;;;;;OAKG;;IAGH;;;;;OAKG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;wBA5GA,WAAW,KACb,oBAAoB,CAAC,kBAAkB,CAAC,qBAAqB,CAC9D,oBAAoB,CAAC,kBAAkB,CAAC,KAAK,CAAC,WAAW,CAAC,CAC3D;IA4GC;;;;;;OAMG;uBAzGA,WAAW,KACb,oBAAoB,CAAC,kBAAkB,CAAC,qBAAqB,CAC9D,oBAAoB,CAAC,kBAAkB,CAAC,KAAK,CAAC,WAAW,CAAC,CAC3D;IAyGC;;;;;;OAMG;wBAxGA,WAAW,KACb,oBAAoB,CAAC,kBAAkB,CAAC,qBAAqB,CAC9D,oBAAoB,CAAC,kBAAkB,CAAC,KAAK,CAAC,WAAW,CAAC,CAC3D;IAwGC;;;;;;;;OAQG;;IAGH;;;;;;;OAOG;;IAGH;;;;;;;OAOG;;IAGH;;;;;;;OAOG;;CAEK,CAAC"}