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
@@ -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 isPositiveInt32 = is;
25
25
  const asPositiveInt32 = castType;
26
26
  const PositiveInt32 = {
27
27
  /**
28
- * Type guard to check if a value is a PositiveInt32.
28
+ * Type guard that checks if a value is a positive integer in [1, 2^31).
29
29
  *
30
- * @param value The value to check.
31
- * @returns `true` if the value is a 32-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^31), `false` otherwise
32
+ * @see {@link isPositiveInt32} for usage examples
33
33
  */
34
34
  is,
35
35
  /**
36
- * The minimum value for a 32-bit positive integer.
37
- *
38
- * @readonly
36
+ * The smallest value representable as `PositiveInt32` (the lower saturation
37
+ * target of `fromNumber`).
39
38
  */
40
39
  MIN_VALUE,
41
40
  /**
42
- * The maximum value for a 32-bit positive integer.
43
- *
44
- * @readonly
41
+ * The largest value representable as `PositiveInt32` (the upper saturation
42
+ * target of `fromNumber`).
45
43
  */
46
44
  MAX_VALUE,
47
45
  /**
48
- * Returns the smaller of two PositiveInt32 values.
46
+ * Returns the smallest of the given positive integers.
49
47
  *
50
- * @param a The first PositiveInt32.
51
- * @param b The second PositiveInt32.
52
- * @returns The minimum value as a PositiveInt32.
48
+ * @param values - The positive integers to compare (at least one required)
49
+ * @returns The smallest value as a `PositiveInt32`
53
50
  */
54
51
  min: min_,
55
52
  /**
56
- * Returns the larger of two PositiveInt32 values.
53
+ * Returns the largest of the given positive integers.
57
54
  *
58
- * @param a The first PositiveInt32.
59
- * @param b The second PositiveInt32.
60
- * @returns The maximum value as a PositiveInt32.
55
+ * @param values - The positive integers to compare (at least one required)
56
+ * @returns The largest value as a `PositiveInt32`
61
57
  */
62
58
  max: max_,
63
59
  /**
64
- * Clamps a number to the PositiveInt32 range.
60
+ * Converts an arbitrary `number` into a `PositiveInt32`, 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, 2147483647] as a PositiveInt32.
64
+ * Unlike `asPositiveInt32`, this is total: out-of-range inputs are clamped to
65
+ * the nearest representable `PositiveInt32` instead of throwing.
66
+ *
67
+ * @param value - The value to convert
68
+ * @returns The value as a `PositiveInt32`
68
69
  */
69
- clamp,
70
+ fromNumber,
70
71
  /**
71
- * Generates a random PositiveInt32 value within the valid range.
72
+ * Generates a random `PositiveInt32` within the given range.
73
+ *
74
+ * The range is inclusive on both ends.
72
75
  *
73
- * @returns A random PositiveInt32 between 1 and 2147483647.
76
+ * @param min - The minimum value (inclusive)
77
+ * @param max - The maximum value (inclusive)
78
+ * @returns A random `PositiveInt32` in `[min, max]`
74
79
  */
75
80
  random,
76
81
  /**
77
- * Raises a PositiveInt32 to the power of another PositiveInt32.
82
+ * Raises `a` to the power `b`, returning `a ** b` as a `PositiveInt32`
83
+ * (floored to an integer).
78
84
  *
79
- * @param a The base PositiveInt32.
80
- * @param b The exponent PositiveInt32.
81
- * @returns `a ** b` clamped to [1, 2147483647] as a PositiveInt32.
85
+ * @param a - The base positive integer
86
+ * @param b - The exponent positive integer
87
+ * @returns `a ** b` as a `PositiveInt32`
82
88
  */
83
89
  pow,
84
90
  /**
85
- * Adds two PositiveInt32 values.
91
+ * Adds two positive integers, returning `a + b` as a `PositiveInt32`.
86
92
  *
87
- * @param a The first PositiveInt32.
88
- * @param b The second PositiveInt32.
89
- * @returns `a + b` clamped to [1, 2147483647] as a PositiveInt32.
93
+ * @param a - The first positive integer
94
+ * @param b - The second positive integer
95
+ * @returns The sum of `a` and `b` as a `PositiveInt32`
90
96
  */
91
97
  add,
92
98
  /**
93
- * Subtracts one PositiveInt32 from another.
99
+ * Subtracts two positive integers, returning `a - b` as a `PositiveInt32`.
94
100
  *
95
- * @param a The minuend PositiveInt32.
96
- * @param b The subtrahend PositiveInt32.
97
- * @returns `a - b` clamped to [1, 2147483647] as a PositiveInt32 (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 `PositiveInt32`
98
104
  */
99
105
  sub,
100
106
  /**
101
- * Multiplies two PositiveInt32 values.
107
+ * Multiplies two positive integers, returning `a * b` as a `PositiveInt32`.
102
108
  *
103
- * @param a The first PositiveInt32.
104
- * @param b The second PositiveInt32.
105
- * @returns `a * b` clamped to [1, 2147483647] as a PositiveInt32.
109
+ * @param a - The first positive integer
110
+ * @param b - The second positive integer
111
+ * @returns The product of `a` and `b` as a `PositiveInt32`
106
112
  */
107
113
  mul,
108
114
  /**
109
- * Divides one PositiveInt32 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 `PositiveInt32`.
110
117
  *
111
- * @param a The dividend PositiveInt32.
112
- * @param b The divisor PositiveInt32.
113
- * @returns `⌊a / b⌋` clamped to [1, 2147483647] as a PositiveInt32.
118
+ * @param a - The dividend
119
+ * @param b - The divisor (must be non-zero)
120
+ * @returns The floored quotient as a `PositiveInt32`
114
121
  */
115
122
  div
116
123
  };
@@ -1 +1 @@
1
- {"version":3,"file":"positive-int32.mjs","sources":["../../../src/number/branded-types/positive-int32.mts"],"sourcesContent":["import { type PositiveInt32 as TtfImported_PositiveInt32 } from 'ts-type-forge';\nimport { expectType } from '../../expect-type.mjs';\nimport { TsDataForgeInternals } from '../refined-number-utils.mjs';\n\nexport type PositiveInt32 = TtfImported_PositiveInt32;\n\ntype ElementType = PositiveInt32;\n\nconst typeNameInMessage = 'a positive integer in [1, 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 1,\n number\n>({\n integerOrSafeInteger: 'SafeInteger',\n MIN_VALUE: 1,\n MAX_VALUE: 2 ** 31 - 1,\n typeNameInMessage,\n} as const);\n\n/**\n * Checks if a number is a PositiveInt32 (32-bit positive signed integer in the\n * range [1, 2^31)).\n *\n * @param value The value to check.\n * @returns `true` if the value is a PositiveInt32, `false` otherwise.\n */\nexport const isPositiveInt32 = is;\n\n/**\n * Casts a number to a PositiveInt32 type.\n *\n * @param value The value to cast.\n * @returns The value as a PositiveInt32 type.\n * @throws {TypeError} If the value is not a positive integer in [1, 2^31).\n */\nexport const asPositiveInt32 = castType;\n\n/**\n * Namespace providing type-safe arithmetic operations for 32-bit positive\n * integers.\n *\n * All operations automatically clamp results to the valid PositiveInt32 range\n * [1, 2147483647]. This ensures that all arithmetic maintains the 32-bit\n * positive integer constraint, with results below 1 clamped to MIN_VALUE and\n * overflow results clamped to MAX_VALUE.\n */\nexport const PositiveInt32 = {\n /**\n * Type guard to check if a value is a PositiveInt32.\n *\n * @param value The value to check.\n * @returns `true` if the value is a 32-bit positive integer, `false`\n * otherwise.\n */\n is,\n\n /**\n * The minimum value for a 32-bit positive integer.\n *\n * @readonly\n */\n MIN_VALUE,\n\n /**\n * The maximum value for a 32-bit positive integer.\n *\n * @readonly\n */\n MAX_VALUE,\n\n /**\n * Returns the smaller of two PositiveInt32 values.\n *\n * @param a The first PositiveInt32.\n * @param b The second PositiveInt32.\n * @returns The minimum value as a PositiveInt32.\n */\n min: min_,\n\n /**\n * Returns the larger of two PositiveInt32 values.\n *\n * @param a The first PositiveInt32.\n * @param b The second PositiveInt32.\n * @returns The maximum value as a PositiveInt32.\n */\n max: max_,\n\n /**\n * Clamps a number to the PositiveInt32 range.\n *\n * @param value The number to clamp.\n * @returns The value clamped to [1, 2147483647] as a PositiveInt32.\n */\n clamp,\n\n /**\n * Generates a random PositiveInt32 value within the valid range.\n *\n * @returns A random PositiveInt32 between 1 and 2147483647.\n */\n random,\n\n /**\n * Raises a PositiveInt32 to the power of another PositiveInt32.\n *\n * @param a The base PositiveInt32.\n * @param b The exponent PositiveInt32.\n * @returns `a ** b` clamped to [1, 2147483647] as a PositiveInt32.\n */\n pow,\n\n /**\n * Adds two PositiveInt32 values.\n *\n * @param a The first PositiveInt32.\n * @param b The second PositiveInt32.\n * @returns `a + b` clamped to [1, 2147483647] as a PositiveInt32.\n */\n add,\n\n /**\n * Subtracts one PositiveInt32 from another.\n *\n * @param a The minuend PositiveInt32.\n * @param b The subtrahend PositiveInt32.\n * @returns `a - b` clamped to [1, 2147483647] as a PositiveInt32 (minimum 1).\n */\n sub,\n\n /**\n * Multiplies two PositiveInt32 values.\n *\n * @param a The first PositiveInt32.\n * @param b The second PositiveInt32.\n * @returns `a * b` clamped to [1, 2147483647] as a PositiveInt32.\n */\n mul,\n\n /**\n * Divides one PositiveInt32 by another using floor division.\n *\n * @param a The dividend PositiveInt32.\n * @param b The divisor PositiveInt32.\n * @returns `⌊a / b⌋` clamped to [1, 2147483647] as a PositiveInt32.\n */\n div,\n} as const;\n\nexpectType<\n keyof typeof PositiveInt32,\n keyof TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'positive' | 'range'\n >\n>('=');\n\nexpectType<\n typeof PositiveInt32,\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-int32.mjs","sources":["../../../src/number/branded-types/positive-int32.mts"],"sourcesContent":["import { type PositiveInt32 as TtfImported_PositiveInt32 } from 'ts-type-forge';\nimport { expectType } from '../../expect-type.mjs';\nimport { TsDataForgeInternals } from '../refined-number-utils.mjs';\n\nexport type PositiveInt32 = TtfImported_PositiveInt32;\n\ntype ElementType = PositiveInt32;\n\nconst typeNameInMessage = 'a positive integer in [1, 2^31)';\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 ** 31 - 1,\n typeNameInMessage,\n} as const);\n\n/**\n * Type guard that checks if a value is a positive integer in [1, 2^31).\n *\n * Returns `true` for a positive integer in [1, 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 positive integer in [1, 2^31), `false` otherwise\n */\nexport const isPositiveInt32 = is;\n\n/**\n * Casts a `number` to the `PositiveInt32` branded type.\n *\n * Validates that the value is a positive integer in [1, 2^31) and returns it\n * with the `PositiveInt32` brand. Throws a `TypeError` otherwise.\n *\n * @param value - The value to cast\n * @returns The value as a `PositiveInt32`\n * @throws {TypeError} If the value is not a positive integer in [1, 2^31)\n */\nexport const asPositiveInt32 = castType;\n\n/**\n * Namespace providing type-safe operations for the `PositiveInt32` branded\n * type.\n *\n * The `PositiveInt32` type represents a positive integer in [1, 2^31). Division\n * (`div`) uses floor division.\n */\nexport const PositiveInt32 = {\n /**\n * Type guard that checks if a value is a positive integer in [1, 2^31).\n *\n * @param value - The value to check\n * @returns `true` if the value is a positive integer in [1, 2^31), `false` otherwise\n * @see {@link isPositiveInt32} for usage examples\n */\n is,\n\n /**\n * The smallest value representable as `PositiveInt32` (the lower saturation\n * target of `fromNumber`).\n */\n MIN_VALUE,\n\n /**\n * The largest value representable as `PositiveInt32` (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 `PositiveInt32`\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 `PositiveInt32`\n */\n max: max_,\n\n /**\n * Converts an arbitrary `number` into a `PositiveInt32`, rounding to the\n * nearest integer and saturating the result into the range `[MIN_VALUE,\n * MAX_VALUE]`.\n *\n * Unlike `asPositiveInt32`, this is total: out-of-range inputs are clamped to\n * the nearest representable `PositiveInt32` instead of throwing.\n *\n * @param value - The value to convert\n * @returns The value as a `PositiveInt32`\n */\n fromNumber,\n\n /**\n * Generates a random `PositiveInt32` 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 `PositiveInt32` in `[min, max]`\n */\n random,\n\n /**\n * Raises `a` to the power `b`, returning `a ** b` as a `PositiveInt32`\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 `PositiveInt32`\n */\n pow,\n\n /**\n * Adds two positive integers, returning `a + b` as a `PositiveInt32`.\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 `PositiveInt32`\n */\n add,\n\n /**\n * Subtracts two positive integers, returning `a - b` as a `PositiveInt32`.\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 `PositiveInt32`\n */\n sub,\n\n /**\n * Multiplies two positive integers, returning `a * b` as a `PositiveInt32`.\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 `PositiveInt32`\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 `PositiveInt32`.\n *\n * @param a - The dividend\n * @param b - The divisor (must be non-zero)\n * @returns The floored quotient as a `PositiveInt32`\n */\n div,\n} as const;\n\nexpectType<\n keyof typeof PositiveInt32,\n keyof TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'positive' | 'range'\n >\n>('=');\n\nexpectType<\n typeof PositiveInt32,\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,8 +1,10 @@
1
1
  import { type SafeUint, type PositiveSafeInt as TtfImported_PositiveSafeInt } from 'ts-type-forge';
2
2
  export type PositiveSafeInt = TtfImported_PositiveSafeInt;
3
3
  /**
4
- * Checks if a number is a PositiveSafeInt (a positive safe integer in the range
5
- * [1, MAX_SAFE_INTEGER]).
4
+ * Type guard that checks if a value is a positive safe integer.
5
+ *
6
+ * Returns `true` for a positive safe integer — a value with no fractional
7
+ * component.
6
8
  *
7
9
  * @example
8
10
  *
@@ -16,12 +18,15 @@ export type PositiveSafeInt = TtfImported_PositiveSafeInt;
16
18
  * assert.isTrue(PositiveSafeInt.is(42));
17
19
  * ```
18
20
  *
19
- * @param value The value to check.
20
- * @returns `true` if the value is a PositiveSafeInt, `false` otherwise.
21
+ * @param value - The value to check
22
+ * @returns `true` if the value is a positive safe integer, `false` otherwise
21
23
  */
22
24
  export declare const isPositiveSafeInt: (a: number) => a is TtfImported_PositiveSafeInt;
23
25
  /**
24
- * Casts a number to a PositiveSafeInt type.
26
+ * Casts a `number` to the `PositiveSafeInt` branded type.
27
+ *
28
+ * Validates that the value is a positive safe integer and returns it with the
29
+ * `PositiveSafeInt` brand. Throws a `TypeError` otherwise.
25
30
  *
26
31
  * @example
27
32
  *
@@ -33,9 +38,9 @@ export declare const isPositiveSafeInt: (a: number) => a is TtfImported_Positive
33
38
  * assert.isTrue(PositiveSafeInt.is(branded));
34
39
  * ```
35
40
  *
36
- * @param value The value to cast.
37
- * @returns The value as a PositiveSafeInt type.
38
- * @throws {TypeError} If the value is not a positive safe integer.
41
+ * @param value - The value to cast
42
+ * @returns The value as a `PositiveSafeInt`
43
+ * @throws {TypeError} If the value is not a positive safe integer
39
44
  */
40
45
  export declare const asPositiveSafeInt: <N extends number>(x: N) => number & {
41
46
  readonly "!=0": true;
@@ -53,17 +58,15 @@ export declare const asPositiveSafeInt: <N extends number>(x: N) => number & {
53
58
  'TSTypeForgeInternals--edd2f9ce-7ca5-45b0-9d1a-bd61b9b5d9c3': unknown;
54
59
  }> & N;
55
60
  /**
56
- * Namespace providing type-safe arithmetic operations for positive safe
57
- * integers.
61
+ * Namespace providing type-safe operations for the `PositiveSafeInt` branded
62
+ * type.
58
63
  *
59
- * All operations automatically clamp results to the positive safe integer range
60
- * [1, MAX_SAFE_INTEGER]. This ensures that all arithmetic maintains both the
61
- * positive constraint and IEEE 754 precision guarantees, preventing precision
62
- * loss and ensuring results are always positive.
64
+ * The `PositiveSafeInt` type represents a positive safe integer. Division
65
+ * (`div`) uses floor division.
63
66
  */
64
67
  export declare const PositiveSafeInt: {
65
68
  /**
66
- * Type guard to check if a value is a PositiveSafeInt.
69
+ * Type guard that checks if a value is a positive safe integer.
67
70
  *
68
71
  * @example
69
72
  *
@@ -77,25 +80,23 @@ export declare const PositiveSafeInt: {
77
80
  * assert.isTrue(PositiveSafeInt.is(42));
78
81
  * ```
79
82
  *
80
- * @param value The value to check.
81
- * @returns `true` if the value is a positive safe integer, `false` otherwise.
83
+ * @param value - The value to check
84
+ * @returns `true` if the value is a positive safe integer, `false` otherwise
82
85
  * @see {@link isPositiveSafeInt} for usage examples
83
86
  */
84
87
  readonly is: (a: number) => a is TtfImported_PositiveSafeInt;
85
88
  /**
86
- * The minimum value for a positive safe integer.
87
- *
88
- * @readonly
89
+ * The smallest value representable as `PositiveSafeInt` (the lower saturation
90
+ * target of `fromNumber`).
89
91
  */
90
92
  readonly MIN_VALUE: 1;
91
93
  /**
92
- * The maximum safe integer value (2^53 - 1).
93
- *
94
- * @readonly
94
+ * The largest value representable as `PositiveSafeInt` (the upper saturation
95
+ * target of `fromNumber`).
95
96
  */
96
97
  readonly MAX_VALUE: SafeUint;
97
98
  /**
98
- * Returns the smaller of two PositiveSafeInt values.
99
+ * Returns the smallest of the given positive safe integers.
99
100
  *
100
101
  * @example
101
102
  *
@@ -108,13 +109,12 @@ export declare const PositiveSafeInt: {
108
109
  * assert.isTrue(smallest === 5);
109
110
  * ```
110
111
  *
111
- * @param a The first PositiveSafeInt.
112
- * @param b The second PositiveSafeInt.
113
- * @returns The minimum value as a PositiveSafeInt.
112
+ * @param values - The positive safe integers to compare (at least one required)
113
+ * @returns The smallest value as a `PositiveSafeInt`
114
114
  */
115
115
  readonly min: (...values: readonly import("ts-type-forge").WithSmallInt<TtfImported_PositiveSafeInt>[]) => TtfImported_PositiveSafeInt;
116
116
  /**
117
- * Returns the larger of two PositiveSafeInt values.
117
+ * Returns the largest of the given positive safe integers.
118
118
  *
119
119
  * @example
120
120
  *
@@ -127,22 +127,26 @@ export declare const PositiveSafeInt: {
127
127
  * assert.isTrue(largest === 10);
128
128
  * ```
129
129
  *
130
- * @param a The first PositiveSafeInt.
131
- * @param b The second PositiveSafeInt.
132
- * @returns The maximum value as a PositiveSafeInt.
130
+ * @param values - The positive safe integers to compare (at least one required)
131
+ * @returns The largest value as a `PositiveSafeInt`
133
132
  */
134
133
  readonly max: (...values: readonly import("ts-type-forge").WithSmallInt<TtfImported_PositiveSafeInt>[]) => TtfImported_PositiveSafeInt;
135
134
  /**
136
- * Clamps a number to the positive safe integer range.
135
+ * Converts an arbitrary `number` into a `PositiveSafeInt`, rounding to the
136
+ * nearest integer and saturating the result into the range `[MIN_VALUE,
137
+ * MAX_VALUE]`.
138
+ *
139
+ * Unlike `asPositiveSafeInt`, this is total: out-of-range inputs are clamped
140
+ * to the nearest representable `PositiveSafeInt` instead of throwing.
137
141
  *
138
142
  * @example
139
143
  *
140
144
  * ```ts
141
- * const belowRange = PositiveSafeInt.clamp(0);
145
+ * const belowRange = PositiveSafeInt.fromNumber(0);
142
146
  *
143
- * const withinRange = PositiveSafeInt.clamp(123);
147
+ * const withinRange = PositiveSafeInt.fromNumber(123);
144
148
  *
145
- * const aboveRange = PositiveSafeInt.clamp(Number.MAX_SAFE_INTEGER + 10);
149
+ * const aboveRange = PositiveSafeInt.fromNumber(Number.MAX_SAFE_INTEGER + 10);
146
150
  *
147
151
  * assert.isTrue(belowRange === 1);
148
152
  *
@@ -151,12 +155,14 @@ export declare const PositiveSafeInt: {
151
155
  * assert.isTrue(aboveRange === Number.MAX_SAFE_INTEGER);
152
156
  * ```
153
157
  *
154
- * @param value The number to clamp.
155
- * @returns The value clamped to [1, MAX_SAFE_INTEGER] as a PositiveSafeInt.
158
+ * @param value - The value to convert
159
+ * @returns The value as a `PositiveSafeInt`
156
160
  */
157
- readonly clamp: (x: number) => TtfImported_PositiveSafeInt;
161
+ readonly fromNumber: (x: number) => TtfImported_PositiveSafeInt;
158
162
  /**
159
- * Generates a random PositiveSafeInt value within the valid range.
163
+ * Generates a random `PositiveSafeInt` within the given range.
164
+ *
165
+ * The range is inclusive on both ends.
160
166
  *
161
167
  * @example
162
168
  *
@@ -172,11 +178,14 @@ export declare const PositiveSafeInt: {
172
178
  * assert.isTrue(randomValue >= 1 && randomValue <= 6);
173
179
  * ```
174
180
  *
175
- * @returns A random PositiveSafeInt between 1 and MAX_SAFE_INTEGER.
181
+ * @param min - The minimum value (inclusive)
182
+ * @param max - The maximum value (inclusive)
183
+ * @returns A random `PositiveSafeInt` in `[min, max]`
176
184
  */
177
185
  readonly random: (min?: import("ts-type-forge").WithSmallInt<TtfImported_PositiveSafeInt> | undefined, max?: import("ts-type-forge").WithSmallInt<TtfImported_PositiveSafeInt> | undefined) => TtfImported_PositiveSafeInt;
178
186
  /**
179
- * Raises a PositiveSafeInt to the power of another PositiveSafeInt.
187
+ * Raises `a` to the power `b`, returning `a ** b` as a `PositiveSafeInt`
188
+ * (floored to an integer).
180
189
  *
181
190
  * @example
182
191
  *
@@ -190,13 +199,13 @@ export declare const PositiveSafeInt: {
190
199
  * assert.isTrue(power === 27);
191
200
  * ```
192
201
  *
193
- * @param a The base PositiveSafeInt.
194
- * @param b The exponent PositiveSafeInt.
195
- * @returns `a ** b` clamped to [1, MAX_SAFE_INTEGER] as a PositiveSafeInt.
202
+ * @param a - The base positive safe integer
203
+ * @param b - The exponent positive safe integer
204
+ * @returns `a ** b` as a `PositiveSafeInt`
196
205
  */
197
206
  readonly pow: (x: import("ts-type-forge").WithSmallInt<TtfImported_PositiveSafeInt>, y: import("ts-type-forge").WithSmallInt<TtfImported_PositiveSafeInt>) => TtfImported_PositiveSafeInt;
198
207
  /**
199
- * Adds two PositiveSafeInt values.
208
+ * Adds two positive safe integers, returning `a + b` as a `PositiveSafeInt`.
200
209
  *
201
210
  * @example
202
211
  *
@@ -211,13 +220,14 @@ export declare const PositiveSafeInt: {
211
220
  * assert.isTrue(PositiveSafeInt.is(sum));
212
221
  * ```
213
222
  *
214
- * @param a The first PositiveSafeInt.
215
- * @param b The second PositiveSafeInt.
216
- * @returns `a + b` clamped to [1, MAX_SAFE_INTEGER] as a PositiveSafeInt.
223
+ * @param a - The first positive safe integer
224
+ * @param b - The second positive safe integer
225
+ * @returns The sum of `a` and `b` as a `PositiveSafeInt`
217
226
  */
218
227
  readonly add: (x: import("ts-type-forge").WithSmallInt<TtfImported_PositiveSafeInt>, y: import("ts-type-forge").WithSmallInt<TtfImported_PositiveSafeInt>) => TtfImported_PositiveSafeInt;
219
228
  /**
220
- * Subtracts one PositiveSafeInt from another.
229
+ * Subtracts two positive safe integers, returning `a - b` as a
230
+ * `PositiveSafeInt`.
221
231
  *
222
232
  * @example
223
233
  *
@@ -232,14 +242,14 @@ export declare const PositiveSafeInt: {
232
242
  * assert.isTrue(PositiveSafeInt.is(difference));
233
243
  * ```
234
244
  *
235
- * @param a The minuend PositiveSafeInt.
236
- * @param b The subtrahend PositiveSafeInt.
237
- * @returns `a - b` clamped to [1, MAX_SAFE_INTEGER] as a PositiveSafeInt
238
- * (minimum 1).
245
+ * @param a - The first positive safe integer
246
+ * @param b - The second positive safe integer
247
+ * @returns The difference of `a` and `b` as a `PositiveSafeInt`
239
248
  */
240
249
  readonly sub: (x: import("ts-type-forge").WithSmallInt<TtfImported_PositiveSafeInt>, y: import("ts-type-forge").WithSmallInt<TtfImported_PositiveSafeInt>) => TtfImported_PositiveSafeInt;
241
250
  /**
242
- * Multiplies two PositiveSafeInt values.
251
+ * Multiplies two positive safe integers, returning `a * b` as a
252
+ * `PositiveSafeInt`.
243
253
  *
244
254
  * @example
245
255
  *
@@ -254,13 +264,14 @@ export declare const PositiveSafeInt: {
254
264
  * assert.isTrue(PositiveSafeInt.is(product));
255
265
  * ```
256
266
  *
257
- * @param a The first PositiveSafeInt.
258
- * @param b The second PositiveSafeInt.
259
- * @returns `a * b` clamped to [1, MAX_SAFE_INTEGER] as a PositiveSafeInt.
267
+ * @param a - The first positive safe integer
268
+ * @param b - The second positive safe integer
269
+ * @returns The product of `a` and `b` as a `PositiveSafeInt`
260
270
  */
261
271
  readonly mul: (x: import("ts-type-forge").WithSmallInt<TtfImported_PositiveSafeInt>, y: import("ts-type-forge").WithSmallInt<TtfImported_PositiveSafeInt>) => TtfImported_PositiveSafeInt;
262
272
  /**
263
- * Divides one PositiveSafeInt by another using floor division.
273
+ * Divides two positive safe integers using floor division (`⌊a / b⌋`): the
274
+ * result is `a / b` rounded toward negative infinity, as a `PositiveSafeInt`.
264
275
  *
265
276
  * @example
266
277
  *
@@ -280,9 +291,9 @@ export declare const PositiveSafeInt: {
280
291
  * assert.isTrue(clamped === 1);
281
292
  * ```
282
293
  *
283
- * @param a The dividend PositiveSafeInt.
284
- * @param b The divisor PositiveSafeInt.
285
- * @returns `⌊a / b⌋` clamped to [1, MAX_SAFE_INTEGER] as a PositiveSafeInt.
294
+ * @param a - The dividend
295
+ * @param b - The divisor (must be non-zero)
296
+ * @returns The floored quotient as a `PositiveSafeInt`
286
297
  */
287
298
  readonly div: (x: import("ts-type-forge").WithSmallInt<TtfImported_PositiveSafeInt>, 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 & {
288
299
  readonly "!=0": true;
@@ -1 +1 @@
1
- {"version":3,"file":"positive-safe-int.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/positive-safe-int.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,eAAe,IAAI,2BAA2B,EACpD,MAAM,eAAe,CAAC;AAIvB,MAAM,MAAM,eAAe,GAAG,2BAA2B,CAAC;AAgC1D;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,iBAAiB,iDAAK,CAAC;AAEpC;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;MAAW,CAAC;AAE1C;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe;IAC1B;;;;;;;;;;;;;;;;;;OAkBG;;IAGH;;;;OAIG;;IAGH;;;;OAIG;;IAGH;;;;;;;;;;;;;;;;;OAiBG;;IAGH;;;;;;;;;;;;;;;;;OAiBG;;IAGH;;;;;;;;;;;;;;;;;;;;;OAqBG;;IAGH;;;;;;;;;;;;;;;;;;OAkBG;;IAGH;;;;;;;;;;;;;;;;;;OAkBG;;IAGH;;;;;;;;;;;;;;;;;;;OAmBG;;IAGH;;;;;;;;;;;;;;;;;;;;OAoBG;;IAGH;;;;;;;;;;;;;;;;;;;OAmBG;;IAGH;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;;;;;;;;;;;;;;;;CAEK,CAAC"}
1
+ {"version":3,"file":"positive-safe-int.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/positive-safe-int.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,eAAe,IAAI,2BAA2B,EACpD,MAAM,eAAe,CAAC;AAIvB,MAAM,MAAM,eAAe,GAAG,2BAA2B,CAAC;AAgC1D;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,iBAAiB,iDAAK,CAAC;AAEpC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;MAAW,CAAC;AAE1C;;;;;;GAMG;AACH,eAAO,MAAM,eAAe;IAC1B;;;;;;;;;;;;;;;;;;OAkBG;;IAGH;;;OAGG;;IAGH;;;OAGG;;IAGH;;;;;;;;;;;;;;;;OAgBG;;IAGH;;;;;;;;;;;;;;;;OAgBG;;IAGH;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;;IAGH;;;;;;;;;;;;;;;;;;;;;;OAsBG;;IAGH;;;;;;;;;;;;;;;;;;;OAmBG;;IAGH;;;;;;;;;;;;;;;;;;;OAmBG;;IAGH;;;;;;;;;;;;;;;;;;;;OAoBG;;IAGH;;;;;;;;;;;;;;;;;;;;OAoBG;;IAGH;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;;;;;;;;;;;;;;;;CAEK,CAAC"}