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
@@ -25,93 +25,93 @@ const isPositiveUint32 = is;
25
25
  const asPositiveUint32 = castType;
26
26
  const PositiveUint32 = {
27
27
  /**
28
- * Type guard to check if a value is a PositiveUint32.
28
+ * Type guard that checks if a value is a positive integer in [1, 2^32).
29
29
  *
30
- * @param value The value to check.
31
- * @returns `true` if the value is a 32-bit positive unsigned integer, `false`
32
- * otherwise.
30
+ * @param value - The value to check
31
+ * @returns `true` if the value is a positive integer in [1, 2^32), `false` otherwise
32
+ * @see {@link isPositiveUint32} for usage examples
33
33
  */
34
34
  is,
35
35
  /**
36
- * The minimum value for a 32-bit positive unsigned integer.
37
- *
38
- * @readonly
36
+ * The smallest value representable as `PositiveUint32`.
39
37
  */
40
38
  MIN_VALUE,
41
39
  /**
42
- * The maximum value for a 32-bit positive unsigned integer.
43
- *
44
- * @readonly
40
+ * The largest value representable as `PositiveUint32`.
45
41
  */
46
42
  MAX_VALUE,
47
43
  /**
48
- * Returns the smaller of two PositiveUint32 values.
44
+ * Returns the smallest of the given positive integers.
49
45
  *
50
- * @param a The first PositiveUint32.
51
- * @param b The second PositiveUint32.
52
- * @returns The minimum value as a PositiveUint32.
46
+ * @param values - The positive integers to compare (at least one required)
47
+ * @returns The smallest value as a `PositiveUint32`
53
48
  */
54
49
  min: min_,
55
50
  /**
56
- * Returns the larger of two PositiveUint32 values.
51
+ * Returns the largest of the given positive integers.
57
52
  *
58
- * @param a The first PositiveUint32.
59
- * @param b The second PositiveUint32.
60
- * @returns The maximum value as a PositiveUint32.
53
+ * @param values - The positive integers to compare (at least one required)
54
+ * @returns The largest value as a `PositiveUint32`
61
55
  */
62
56
  max: max_,
63
57
  /**
64
- * Clamps a number to the PositiveUint32 range.
58
+ * Clamps a `number` into the `PositiveUint32` range, rounding to the nearest
59
+ * 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 [1, 4294967295] as a PositiveUint32.
61
+ * @param value - The value to clamp
62
+ * @returns The clamped value as a `PositiveUint32`
68
63
  */
69
64
  clamp,
70
65
  /**
71
- * Generates a random PositiveUint32 value within the valid range.
66
+ * Generates a random `PositiveUint32` within the given range.
67
+ *
68
+ * The range is inclusive on both ends.
72
69
  *
73
- * @returns A random PositiveUint32 between 1 and 4294967295.
70
+ * @param min - The minimum value (inclusive)
71
+ * @param max - The maximum value (inclusive)
72
+ * @returns A random `PositiveUint32` in `[min, max]`
74
73
  */
75
74
  random,
76
75
  /**
77
- * Raises a PositiveUint32 to the power of another PositiveUint32.
76
+ * Raises `a` to the power `b`, returning `a ** b` as a `PositiveUint32`
77
+ * (floored to an integer).
78
78
  *
79
- * @param a The base PositiveUint32.
80
- * @param b The exponent PositiveUint32.
81
- * @returns `a ** b` clamped to [1, 4294967295] as a PositiveUint32.
79
+ * @param a - The base positive integer
80
+ * @param b - The exponent positive integer
81
+ * @returns `a ** b` as a `PositiveUint32`
82
82
  */
83
83
  pow,
84
84
  /**
85
- * Adds two PositiveUint32 values.
85
+ * Adds two positive integers, returning `a + b` as a `PositiveUint32`.
86
86
  *
87
- * @param a The first PositiveUint32.
88
- * @param b The second PositiveUint32.
89
- * @returns `a + b` clamped to [1, 4294967295] as a PositiveUint32.
87
+ * @param a - The first positive integer
88
+ * @param b - The second positive integer
89
+ * @returns The sum of `a` and `b` as a `PositiveUint32`
90
90
  */
91
91
  add,
92
92
  /**
93
- * Subtracts one PositiveUint32 from another.
93
+ * Subtracts two positive integers, returning `a - b` as a `PositiveUint32`.
94
94
  *
95
- * @param a The minuend PositiveUint32.
96
- * @param b The subtrahend PositiveUint32.
97
- * @returns `a - b` clamped to [1, 4294967295] as a PositiveUint32 (minimum
98
- * 1).
95
+ * @param a - The first positive integer
96
+ * @param b - The second positive integer
97
+ * @returns The difference of `a` and `b` as a `PositiveUint32`
99
98
  */
100
99
  sub,
101
100
  /**
102
- * Multiplies two PositiveUint32 values.
101
+ * Multiplies two positive integers, returning `a * b` as a `PositiveUint32`.
103
102
  *
104
- * @param a The first PositiveUint32.
105
- * @param b The second PositiveUint32.
106
- * @returns `a * b` clamped to [1, 4294967295] as a PositiveUint32.
103
+ * @param a - The first positive integer
104
+ * @param b - The second positive integer
105
+ * @returns The product of `a` and `b` as a `PositiveUint32`
107
106
  */
108
107
  mul,
109
108
  /**
110
- * Divides one PositiveUint32 by another using floor division.
109
+ * Divides two positive integers using floor division (`⌊a / b⌋`): the result
110
+ * is `a / b` rounded toward negative infinity, as a `PositiveUint32`.
111
111
  *
112
- * @param a The dividend PositiveUint32.
113
- * @param b The divisor PositiveUint32.
114
- * @returns `⌊a / b⌋` clamped to [1, 4294967295] as a PositiveUint32.
112
+ * @param a - The dividend
113
+ * @param b - The divisor (must be non-zero)
114
+ * @returns The floored quotient as a `PositiveUint32`
115
115
  */
116
116
  div
117
117
  };
@@ -1 +1 @@
1
- {"version":3,"file":"positive-uint32.mjs","sources":["../../../src/number/branded-types/positive-uint32.mts"],"sourcesContent":["import { type PositiveUint32 as TtfImported_PositiveUint32 } from 'ts-type-forge';\nimport { expectType } from '../../expect-type.mjs';\nimport { TsDataForgeInternals } from '../refined-number-utils.mjs';\n\nexport type PositiveUint32 = TtfImported_PositiveUint32;\n\ntype ElementType = PositiveUint32;\n\nconst typeNameInMessage = 'a positive integer in [1, 2^32)';\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 ** 32 - 1,\n typeNameInMessage,\n} as const);\n\n/**\n * Checks if a number is a PositiveUint32 (32-bit positive unsigned integer in\n * the range [1, 2^32)).\n *\n * @param value The value to check.\n * @returns `true` if the value is a PositiveUint32, `false` otherwise.\n */\nexport const isPositiveUint32 = is;\n\n/**\n * Casts a number to a PositiveUint32 type.\n *\n * @param value The value to cast.\n * @returns The value as a PositiveUint32 type.\n * @throws {TypeError} If the value is not a positive integer in [1, 2^32).\n */\nexport const asPositiveUint32 = castType;\n\n/**\n * Namespace providing type-safe arithmetic operations for 32-bit positive\n * unsigned integers.\n *\n * All operations automatically clamp results to the valid PositiveUint32 range\n * [1, 4294967295]. This ensures that all arithmetic maintains the 32-bit\n * positive unsigned integer constraint, with results below 1 clamped to\n * MIN_VALUE and overflow results clamped to MAX_VALUE.\n */\nexport const PositiveUint32 = {\n /**\n * Type guard to check if a value is a PositiveUint32.\n *\n * @param value The value to check.\n * @returns `true` if the value is a 32-bit positive unsigned integer, `false`\n * otherwise.\n */\n is,\n\n /**\n * The minimum value for a 32-bit positive unsigned integer.\n *\n * @readonly\n */\n MIN_VALUE,\n\n /**\n * The maximum value for a 32-bit positive unsigned integer.\n *\n * @readonly\n */\n MAX_VALUE,\n\n /**\n * Returns the smaller of two PositiveUint32 values.\n *\n * @param a The first PositiveUint32.\n * @param b The second PositiveUint32.\n * @returns The minimum value as a PositiveUint32.\n */\n min: min_,\n\n /**\n * Returns the larger of two PositiveUint32 values.\n *\n * @param a The first PositiveUint32.\n * @param b The second PositiveUint32.\n * @returns The maximum value as a PositiveUint32.\n */\n max: max_,\n\n /**\n * Clamps a number to the PositiveUint32 range.\n *\n * @param value The number to clamp.\n * @returns The value clamped to [1, 4294967295] as a PositiveUint32.\n */\n clamp,\n\n /**\n * Generates a random PositiveUint32 value within the valid range.\n *\n * @returns A random PositiveUint32 between 1 and 4294967295.\n */\n random,\n\n /**\n * Raises a PositiveUint32 to the power of another PositiveUint32.\n *\n * @param a The base PositiveUint32.\n * @param b The exponent PositiveUint32.\n * @returns `a ** b` clamped to [1, 4294967295] as a PositiveUint32.\n */\n pow,\n\n /**\n * Adds two PositiveUint32 values.\n *\n * @param a The first PositiveUint32.\n * @param b The second PositiveUint32.\n * @returns `a + b` clamped to [1, 4294967295] as a PositiveUint32.\n */\n add,\n\n /**\n * Subtracts one PositiveUint32 from another.\n *\n * @param a The minuend PositiveUint32.\n * @param b The subtrahend PositiveUint32.\n * @returns `a - b` clamped to [1, 4294967295] as a PositiveUint32 (minimum\n * 1).\n */\n sub,\n\n /**\n * Multiplies two PositiveUint32 values.\n *\n * @param a The first PositiveUint32.\n * @param b The second PositiveUint32.\n * @returns `a * b` clamped to [1, 4294967295] as a PositiveUint32.\n */\n mul,\n\n /**\n * Divides one PositiveUint32 by another using floor division.\n *\n * @param a The dividend PositiveUint32.\n * @param b The divisor PositiveUint32.\n * @returns `⌊a / b⌋` clamped to [1, 4294967295] as a PositiveUint32.\n */\n div,\n} as const;\n\nexpectType<\n keyof typeof PositiveUint32,\n keyof TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'positive' | 'range'\n >\n>('=');\n\nexpectType<\n typeof PositiveUint32,\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,gBAAA,GAAmB;AASzB,MAAM,gBAAA,GAAmB;AAWzB,MAAM,cAAA,GAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ5B,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":"positive-uint32.mjs","sources":["../../../src/number/branded-types/positive-uint32.mts"],"sourcesContent":["import { type PositiveUint32 as TtfImported_PositiveUint32 } from 'ts-type-forge';\nimport { expectType } from '../../expect-type.mjs';\nimport { TsDataForgeInternals } from '../refined-number-utils.mjs';\n\nexport type PositiveUint32 = TtfImported_PositiveUint32;\n\ntype ElementType = PositiveUint32;\n\nconst typeNameInMessage = 'a positive integer in [1, 2^32)';\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 ** 32 - 1,\n typeNameInMessage,\n} as const);\n\n/**\n * Type guard that checks if a value is a positive integer in [1, 2^32).\n *\n * Returns `true` for a positive integer in [1, 2^32) — 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^32), `false` otherwise\n */\nexport const isPositiveUint32 = is;\n\n/**\n * Casts a `number` to the `PositiveUint32` branded type.\n *\n * Validates that the value is a positive integer in [1, 2^32) and returns it\n * with the `PositiveUint32` brand. Throws a `TypeError` otherwise.\n *\n * @param value - The value to cast\n * @returns The value as a `PositiveUint32`\n * @throws {TypeError} If the value is not a positive integer in [1, 2^32)\n */\nexport const asPositiveUint32 = castType;\n\n/**\n * Namespace providing type-safe operations for the `PositiveUint32` branded\n * type.\n *\n * The `PositiveUint32` type represents a positive integer in [1, 2^32).\n * Division (`div`) uses floor division.\n */\nexport const PositiveUint32 = {\n /**\n * Type guard that checks if a value is a positive integer in [1, 2^32).\n *\n * @param value - The value to check\n * @returns `true` if the value is a positive integer in [1, 2^32), `false` otherwise\n * @see {@link isPositiveUint32} for usage examples\n */\n is,\n\n /**\n * The smallest value representable as `PositiveUint32`.\n */\n MIN_VALUE,\n\n /**\n * The largest value representable as `PositiveUint32`.\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 `PositiveUint32`\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 `PositiveUint32`\n */\n max: max_,\n\n /**\n * Clamps a `number` into the `PositiveUint32` range, rounding to the nearest\n * 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 `PositiveUint32`\n */\n clamp,\n\n /**\n * Generates a random `PositiveUint32` 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 `PositiveUint32` in `[min, max]`\n */\n random,\n\n /**\n * Raises `a` to the power `b`, returning `a ** b` as a `PositiveUint32`\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 `PositiveUint32`\n */\n pow,\n\n /**\n * Adds two positive integers, returning `a + b` as a `PositiveUint32`.\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 `PositiveUint32`\n */\n add,\n\n /**\n * Subtracts two positive integers, returning `a - b` as a `PositiveUint32`.\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 `PositiveUint32`\n */\n sub,\n\n /**\n * Multiplies two positive integers, returning `a * b` as a `PositiveUint32`.\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 `PositiveUint32`\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 `PositiveUint32`.\n *\n * @param a - The dividend\n * @param b - The divisor (must be non-zero)\n * @returns The floored quotient as a `PositiveUint32`\n */\n div,\n} as const;\n\nexpectType<\n keyof typeof PositiveUint32,\n keyof TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'positive' | 'range'\n >\n>('=');\n\nexpectType<\n typeof PositiveUint32,\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;AAWH,MAAM,gBAAA,GAAmB;AAYzB,MAAM,gBAAA,GAAmB;AASzB,MAAM,cAAA,GAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ5B,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,EASA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA;AACF;;;;"}
@@ -3,8 +3,7 @@ export type SafeInt = TtfImported_SafeInt;
3
3
  /**
4
4
  * Type guard that checks if a value is a safe integer.
5
5
  *
6
- * A safe integer is an integer that can be exactly represented in JavaScript
7
- * without precision loss. The range is [±(2^53 - 1)].
6
+ * Returns `true` for a safe integer — a value with no fractional component.
8
7
  *
9
8
  * @example
10
9
  *
@@ -21,11 +20,10 @@ export type SafeInt = TtfImported_SafeInt;
21
20
  */
22
21
  export declare const isSafeInt: (a: number) => a is TtfImported_SafeInt;
23
22
  /**
24
- * Casts a number to a SafeInt branded type.
23
+ * Casts a `number` to the `SafeInt` branded type.
25
24
  *
26
- * This function validates that the input is a safe integer (within ±(2^53 - 1))
27
- * and returns it with the SafeInt brand. This ensures type safety for
28
- * operations that require precise integer arithmetic.
25
+ * Validates that the value is a safe integer and returns it with the `SafeInt`
26
+ * brand. Throws a `TypeError` otherwise.
29
27
  *
30
28
  * @example
31
29
  *
@@ -38,7 +36,7 @@ export declare const isSafeInt: (a: number) => a is TtfImported_SafeInt;
38
36
  * ```
39
37
  *
40
38
  * @param value - The value to cast
41
- * @returns The value as a SafeInt branded type
39
+ * @returns The value as a `SafeInt`
42
40
  * @throws {TypeError} If the value is not a safe integer
43
41
  */
44
42
  export declare const asSafeInt: <N extends number>(x: N) => number & {
@@ -50,20 +48,10 @@ export declare const asSafeInt: <N extends number>(x: N) => number & {
50
48
  'TSTypeForgeInternals--edd2f9ce-7ca5-45b0-9d1a-bd61b9b5d9c3': unknown;
51
49
  }> & N;
52
50
  /**
53
- * Namespace providing type-safe operations for SafeInt branded types.
51
+ * Namespace providing type-safe operations for the `SafeInt` branded type.
54
52
  *
55
- * SafeInt represents integers that can be exactly represented in JavaScript's
56
- * number type without precision loss. The range is [±(2^53 - 1)], which covers
57
- * approximately ±9 quadrillion.
58
- *
59
- * All operations automatically clamp results to stay within the safe range,
60
- * preventing precision loss that occurs with larger integers. This makes
61
- * SafeInt ideal for:
62
- *
63
- * - Financial calculations requiring exact cents
64
- * - Database IDs and counters
65
- * - Array indices and sizes
66
- * - Any integer arithmetic requiring precision guarantees
53
+ * The `SafeInt` type represents a safe integer. Division (`div`) uses floor
54
+ * division.
67
55
  */
68
56
  export declare const SafeInt: {
69
57
  /**
@@ -85,22 +73,17 @@ export declare const SafeInt: {
85
73
  */
86
74
  readonly is: (a: number) => a is TtfImported_SafeInt;
87
75
  /**
88
- * The minimum safe integer value (-(2^53 - 1)).
89
- *
90
- * @readonly
76
+ * The smallest value representable as `SafeInt`.
91
77
  */
92
78
  readonly MIN_VALUE: TtfImported_SafeInt;
93
79
  /**
94
- * The maximum safe integer value (2^53 - 1).
95
- *
96
- * @readonly
80
+ * The largest value representable as `SafeInt`.
97
81
  */
98
82
  readonly MAX_VALUE: SafeUint;
99
83
  /**
100
84
  * Returns the absolute value of a safe integer.
101
85
  *
102
- * Note: `Math.abs(MIN_SAFE_INTEGER)` would exceed `MAX_SAFE_INTEGER`, so this
103
- * function clamps the result to maintain the safe integer guarantee.
86
+ * The result is non-negative and keeps the `SafeInt` brand.
104
87
  *
105
88
  * @example
106
89
  *
@@ -115,11 +98,11 @@ export declare const SafeInt: {
115
98
  * ```
116
99
  *
117
100
  * @param a - The safe integer value
118
- * @returns The absolute value as a SafeInt, clamped if necessary
101
+ * @returns The absolute value as a non-negative `SafeInt`
119
102
  */
120
103
  readonly abs: (x: import("ts-type-forge").WithSmallInt<TtfImported_SafeInt>) => import("ts-type-forge").IntersectBrand<TtfImported_SafeInt, import("ts-type-forge").NonNegativeNumber>;
121
104
  /**
122
- * Returns the minimum value from a list of safe integers.
105
+ * Returns the smallest of the given safe integers.
123
106
  *
124
107
  * @example
125
108
  *
@@ -130,11 +113,11 @@ export declare const SafeInt: {
130
113
  * ```
131
114
  *
132
115
  * @param values - The safe integers to compare (at least one required)
133
- * @returns The smallest value as a SafeInt
116
+ * @returns The smallest value as a `SafeInt`
134
117
  */
135
118
  readonly min: (...values: readonly import("ts-type-forge").WithSmallInt<TtfImported_SafeInt>[]) => TtfImported_SafeInt;
136
119
  /**
137
- * Returns the maximum value from a list of safe integers.
120
+ * Returns the largest of the given safe integers.
138
121
  *
139
122
  * @example
140
123
  *
@@ -145,11 +128,12 @@ export declare const SafeInt: {
145
128
  * ```
146
129
  *
147
130
  * @param values - The safe integers to compare (at least one required)
148
- * @returns The largest value as a SafeInt
131
+ * @returns The largest value as a `SafeInt`
149
132
  */
150
133
  readonly max: (...values: readonly import("ts-type-forge").WithSmallInt<TtfImported_SafeInt>[]) => TtfImported_SafeInt;
151
134
  /**
152
- * Clamps a number to the safe integer range.
135
+ * Clamps a `number` into the `SafeInt` range, rounding to the nearest integer
136
+ * and constraining the result to `[MIN_VALUE, MAX_VALUE]`.
153
137
  *
154
138
  * @example
155
139
  *
@@ -167,16 +151,14 @@ export declare const SafeInt: {
167
151
  * assert.isTrue(belowRange === Number.MIN_SAFE_INTEGER);
168
152
  * ```
169
153
  *
170
- * @param value The number to clamp.
171
- * @returns The value clamped to [MIN_SAFE_INTEGER, MAX_SAFE_INTEGER] as a
172
- * SafeInt.
154
+ * @param value - The value to clamp
155
+ * @returns The clamped value as a `SafeInt`
173
156
  */
174
157
  readonly clamp: (x: number) => TtfImported_SafeInt;
175
158
  /**
176
- * Generates a random safe integer within the specified range (inclusive).
159
+ * Generates a random `SafeInt` within the given range.
177
160
  *
178
- * The range is inclusive on both ends. If min > max, they are automatically
179
- * swapped.
161
+ * The range is inclusive on both ends.
180
162
  *
181
163
  * @example
182
164
  *
@@ -194,11 +176,12 @@ export declare const SafeInt: {
194
176
  *
195
177
  * @param min - The minimum value (inclusive)
196
178
  * @param max - The maximum value (inclusive)
197
- * @returns A random SafeInt in the range [min, max]
179
+ * @returns A random `SafeInt` in `[min, max]`
198
180
  */
199
181
  readonly random: (min?: import("ts-type-forge").WithSmallInt<TtfImported_SafeInt> | undefined, max?: import("ts-type-forge").WithSmallInt<TtfImported_SafeInt> | undefined) => TtfImported_SafeInt;
200
182
  /**
201
- * Raises a SafeInt to the power of another SafeInt.
183
+ * Raises `a` to the power `b`, returning `a ** b` as a `SafeInt` (floored to
184
+ * an integer).
202
185
  *
203
186
  * @example
204
187
  *
@@ -214,13 +197,13 @@ export declare const SafeInt: {
214
197
  * assert.isTrue(SafeInt.is(power));
215
198
  * ```
216
199
  *
217
- * @param a The base SafeInt.
218
- * @param b The exponent SafeInt.
219
- * @returns `a ** b` clamped to safe integer range as a SafeInt.
200
+ * @param a - The base safe integer
201
+ * @param b - The exponent safe integer
202
+ * @returns `a ** b` as a `SafeInt`
220
203
  */
221
204
  readonly pow: (x: import("ts-type-forge").WithSmallInt<TtfImported_SafeInt>, y: import("ts-type-forge").WithSmallInt<TtfImported_SafeInt>) => TtfImported_SafeInt;
222
205
  /**
223
- * Adds two SafeInt values.
206
+ * Adds two safe integers, returning `a + b` as a `SafeInt`.
224
207
  *
225
208
  * @example
226
209
  *
@@ -232,13 +215,13 @@ export declare const SafeInt: {
232
215
  * assert.isTrue(SafeInt.is(sum));
233
216
  * ```
234
217
  *
235
- * @param a The first SafeInt.
236
- * @param b The second SafeInt.
237
- * @returns `a + b` clamped to safe integer range as a SafeInt.
218
+ * @param a - The first safe integer
219
+ * @param b - The second safe integer
220
+ * @returns The sum of `a` and `b` as a `SafeInt`
238
221
  */
239
222
  readonly add: (x: import("ts-type-forge").WithSmallInt<TtfImported_SafeInt>, y: import("ts-type-forge").WithSmallInt<TtfImported_SafeInt>) => TtfImported_SafeInt;
240
223
  /**
241
- * Subtracts one SafeInt from another.
224
+ * Subtracts two safe integers, returning `a - b` as a `SafeInt`.
242
225
  *
243
226
  * @example
244
227
  *
@@ -250,13 +233,13 @@ export declare const SafeInt: {
250
233
  * assert.isTrue(SafeInt.is(difference));
251
234
  * ```
252
235
  *
253
- * @param a The minuend SafeInt.
254
- * @param b The subtrahend SafeInt.
255
- * @returns `a - b` clamped to safe integer range as a SafeInt.
236
+ * @param a - The first safe integer
237
+ * @param b - The second safe integer
238
+ * @returns The difference of `a` and `b` as a `SafeInt`
256
239
  */
257
240
  readonly sub: (x: import("ts-type-forge").WithSmallInt<TtfImported_SafeInt>, y: import("ts-type-forge").WithSmallInt<TtfImported_SafeInt>) => TtfImported_SafeInt;
258
241
  /**
259
- * Multiplies two SafeInt values.
242
+ * Multiplies two safe integers, returning `a * b` as a `SafeInt`.
260
243
  *
261
244
  * @example
262
245
  *
@@ -268,16 +251,14 @@ export declare const SafeInt: {
268
251
  * assert.isTrue(SafeInt.is(product));
269
252
  * ```
270
253
  *
271
- * @param a The first SafeInt.
272
- * @param b The second SafeInt.
273
- * @returns `a * b` clamped to safe integer range as a SafeInt.
254
+ * @param a - The first safe integer
255
+ * @param b - The second safe integer
256
+ * @returns The product of `a` and `b` as a `SafeInt`
274
257
  */
275
258
  readonly mul: (x: import("ts-type-forge").WithSmallInt<TtfImported_SafeInt>, y: import("ts-type-forge").WithSmallInt<TtfImported_SafeInt>) => TtfImported_SafeInt;
276
259
  /**
277
- * Divides one SafeInt by another using floor division.
278
- *
279
- * Performs mathematical floor division: `⌊a / b⌋`. The divisor must be
280
- * non-zero (enforced by type constraints).
260
+ * Divides two safe integers using floor division (`⌊a / b⌋`): the result is
261
+ * `a / b` rounded toward negative infinity, as a `SafeInt`.
281
262
  *
282
263
  * @example
283
264
  *
@@ -291,7 +272,7 @@ export declare const SafeInt: {
291
272
  *
292
273
  * @param a - The dividend
293
274
  * @param b - The divisor (must be non-zero)
294
- * @returns The integer quotient as a SafeInt
275
+ * @returns The floored quotient as a `SafeInt`
295
276
  */
296
277
  readonly div: (x: import("ts-type-forge").WithSmallInt<TtfImported_SafeInt>, y: -40 | -39 | -38 | -37 | -36 | -35 | -34 | -33 | -32 | -31 | -30 | -29 | -28 | -27 | -26 | -25 | -24 | -23 | -22 | -21 | -20 | -19 | -18 | -17 | -16 | -15 | -14 | -13 | -12 | -11 | -10 | -9 | -8 | -7 | -6 | -5 | -4 | -3 | -2 | -1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | import("ts-type-forge").NormalizeBrandUnion<number & {
297
278
  readonly "!=0": true;
@@ -1 +1 @@
1
- {"version":3,"file":"safe-int.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/safe-int.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,OAAO,IAAI,mBAAmB,EACpC,MAAM,eAAe,CAAC;AAIvB,MAAM,MAAM,OAAO,GAAG,mBAAmB,CAAC;AAkC1C;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,SAAS,yCAAK,CAAC;AAE5B;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,SAAS;;;;;;;MAAW,CAAC;AAElC;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,OAAO;IAClB;;;;;;;;;;;;;;;;OAgBG;;IAGH;;;;OAIG;;IAGH;;;;OAIG;;IAGH;;;;;;;;;;;;;;;;;;;;OAoBG;;IAGH;;;;;;;;;;;;;OAaG;;IAGH;;;;;;;;;;;;;OAaG;;IAGH;;;;;;;;;;;;;;;;;;;;;;OAsBG;;IAGH;;;;;;;;;;;;;;;;;;;;;;;OAuBG;;IAGH;;;;;;;;;;;;;;;;;;;;OAoBG;;IAGH;;;;;;;;;;;;;;;;OAgBG;;IAGH;;;;;;;;;;;;;;;;OAgBG;;IAGH;;;;;;;;;;;;;;;;OAgBG;;IAGH;;;;;;;;;;;;;;;;;;;OAmBG;;;;;;;;;;CAEK,CAAC"}
1
+ {"version":3,"file":"safe-int.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/safe-int.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,OAAO,IAAI,mBAAmB,EACpC,MAAM,eAAe,CAAC;AAIvB,MAAM,MAAM,OAAO,GAAG,mBAAmB,CAAC;AAkC1C;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,SAAS,yCAAK,CAAC;AAE5B;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,SAAS;;;;;;;MAAW,CAAC;AAElC;;;;;GAKG;AACH,eAAO,MAAM,OAAO;IAClB;;;;;;;;;;;;;;;;OAgBG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;;;;;;;;;;;;;;;;;;OAmBG;;IAGH;;;;;;;;;;;;;OAaG;;IAGH;;;;;;;;;;;;;OAaG;;IAGH;;;;;;;;;;;;;;;;;;;;;;OAsBG;;IAGH;;;;;;;;;;;;;;;;;;;;;;OAsBG;;IAGH;;;;;;;;;;;;;;;;;;;;;OAqBG;;IAGH;;;;;;;;;;;;;;;;OAgBG;;IAGH;;;;;;;;;;;;;;;;OAgBG;;IAGH;;;;;;;;;;;;;;;;OAgBG;;IAGH;;;;;;;;;;;;;;;;;OAiBG;;;;;;;;;;CAEK,CAAC"}
@@ -46,22 +46,17 @@ const SafeInt = {
46
46
  */
47
47
  is,
48
48
  /**
49
- * The minimum safe integer value (-(2^53 - 1)).
50
- *
51
- * @readonly
49
+ * The smallest value representable as `SafeInt`.
52
50
  */
53
51
  MIN_VALUE,
54
52
  /**
55
- * The maximum safe integer value (2^53 - 1).
56
- *
57
- * @readonly
53
+ * The largest value representable as `SafeInt`.
58
54
  */
59
55
  MAX_VALUE,
60
56
  /**
61
57
  * Returns the absolute value of a safe integer.
62
58
  *
63
- * Note: `Math.abs(MIN_SAFE_INTEGER)` would exceed `MAX_SAFE_INTEGER`, so this
64
- * function clamps the result to maintain the safe integer guarantee.
59
+ * The result is non-negative and keeps the `SafeInt` brand.
65
60
  *
66
61
  * @example
67
62
  *
@@ -76,11 +71,11 @@ const SafeInt = {
76
71
  * ```
77
72
  *
78
73
  * @param a - The safe integer value
79
- * @returns The absolute value as a SafeInt, clamped if necessary
74
+ * @returns The absolute value as a non-negative `SafeInt`
80
75
  */
81
76
  abs,
82
77
  /**
83
- * Returns the minimum value from a list of safe integers.
78
+ * Returns the smallest of the given safe integers.
84
79
  *
85
80
  * @example
86
81
  *
@@ -91,11 +86,11 @@ const SafeInt = {
91
86
  * ```
92
87
  *
93
88
  * @param values - The safe integers to compare (at least one required)
94
- * @returns The smallest value as a SafeInt
89
+ * @returns The smallest value as a `SafeInt`
95
90
  */
96
91
  min: min_,
97
92
  /**
98
- * Returns the maximum value from a list of safe integers.
93
+ * Returns the largest of the given safe integers.
99
94
  *
100
95
  * @example
101
96
  *
@@ -106,11 +101,12 @@ const SafeInt = {
106
101
  * ```
107
102
  *
108
103
  * @param values - The safe integers to compare (at least one required)
109
- * @returns The largest value as a SafeInt
104
+ * @returns The largest value as a `SafeInt`
110
105
  */
111
106
  max: max_,
112
107
  /**
113
- * Clamps a number to the safe integer range.
108
+ * Clamps a `number` into the `SafeInt` range, rounding to the nearest integer
109
+ * and constraining the result to `[MIN_VALUE, MAX_VALUE]`.
114
110
  *
115
111
  * @example
116
112
  *
@@ -128,16 +124,14 @@ const SafeInt = {
128
124
  * assert.isTrue(belowRange === Number.MIN_SAFE_INTEGER);
129
125
  * ```
130
126
  *
131
- * @param value The number to clamp.
132
- * @returns The value clamped to [MIN_SAFE_INTEGER, MAX_SAFE_INTEGER] as a
133
- * SafeInt.
127
+ * @param value - The value to clamp
128
+ * @returns The clamped value as a `SafeInt`
134
129
  */
135
130
  clamp,
136
131
  /**
137
- * Generates a random safe integer within the specified range (inclusive).
132
+ * Generates a random `SafeInt` within the given range.
138
133
  *
139
- * The range is inclusive on both ends. If min > max, they are automatically
140
- * swapped.
134
+ * The range is inclusive on both ends.
141
135
  *
142
136
  * @example
143
137
  *
@@ -155,11 +149,12 @@ const SafeInt = {
155
149
  *
156
150
  * @param min - The minimum value (inclusive)
157
151
  * @param max - The maximum value (inclusive)
158
- * @returns A random SafeInt in the range [min, max]
152
+ * @returns A random `SafeInt` in `[min, max]`
159
153
  */
160
154
  random,
161
155
  /**
162
- * Raises a SafeInt to the power of another SafeInt.
156
+ * Raises `a` to the power `b`, returning `a ** b` as a `SafeInt` (floored to
157
+ * an integer).
163
158
  *
164
159
  * @example
165
160
  *
@@ -175,13 +170,13 @@ const SafeInt = {
175
170
  * assert.isTrue(SafeInt.is(power));
176
171
  * ```
177
172
  *
178
- * @param a The base SafeInt.
179
- * @param b The exponent SafeInt.
180
- * @returns `a ** b` clamped to safe integer range as a SafeInt.
173
+ * @param a - The base safe integer
174
+ * @param b - The exponent safe integer
175
+ * @returns `a ** b` as a `SafeInt`
181
176
  */
182
177
  pow,
183
178
  /**
184
- * Adds two SafeInt values.
179
+ * Adds two safe integers, returning `a + b` as a `SafeInt`.
185
180
  *
186
181
  * @example
187
182
  *
@@ -193,13 +188,13 @@ const SafeInt = {
193
188
  * assert.isTrue(SafeInt.is(sum));
194
189
  * ```
195
190
  *
196
- * @param a The first SafeInt.
197
- * @param b The second SafeInt.
198
- * @returns `a + b` clamped to safe integer range as a SafeInt.
191
+ * @param a - The first safe integer
192
+ * @param b - The second safe integer
193
+ * @returns The sum of `a` and `b` as a `SafeInt`
199
194
  */
200
195
  add,
201
196
  /**
202
- * Subtracts one SafeInt from another.
197
+ * Subtracts two safe integers, returning `a - b` as a `SafeInt`.
203
198
  *
204
199
  * @example
205
200
  *
@@ -211,13 +206,13 @@ const SafeInt = {
211
206
  * assert.isTrue(SafeInt.is(difference));
212
207
  * ```
213
208
  *
214
- * @param a The minuend SafeInt.
215
- * @param b The subtrahend SafeInt.
216
- * @returns `a - b` clamped to safe integer range as a SafeInt.
209
+ * @param a - The first safe integer
210
+ * @param b - The second safe integer
211
+ * @returns The difference of `a` and `b` as a `SafeInt`
217
212
  */
218
213
  sub,
219
214
  /**
220
- * Multiplies two SafeInt values.
215
+ * Multiplies two safe integers, returning `a * b` as a `SafeInt`.
221
216
  *
222
217
  * @example
223
218
  *
@@ -229,16 +224,14 @@ const SafeInt = {
229
224
  * assert.isTrue(SafeInt.is(product));
230
225
  * ```
231
226
  *
232
- * @param a The first SafeInt.
233
- * @param b The second SafeInt.
234
- * @returns `a * b` clamped to safe integer range as a SafeInt.
227
+ * @param a - The first safe integer
228
+ * @param b - The second safe integer
229
+ * @returns The product of `a` and `b` as a `SafeInt`
235
230
  */
236
231
  mul,
237
232
  /**
238
- * Divides one SafeInt by another using floor division.
239
- *
240
- * Performs mathematical floor division: `⌊a / b⌋`. The divisor must be
241
- * non-zero (enforced by type constraints).
233
+ * Divides two safe integers using floor division (`⌊a / b⌋`): the result is
234
+ * `a / b` rounded toward negative infinity, as a `SafeInt`.
242
235
  *
243
236
  * @example
244
237
  *
@@ -252,7 +245,7 @@ const SafeInt = {
252
245
  *
253
246
  * @param a - The dividend
254
247
  * @param b - The divisor (must be non-zero)
255
- * @returns The integer quotient as a SafeInt
248
+ * @returns The floored quotient as a `SafeInt`
256
249
  */
257
250
  div
258
251
  };