ts-data-forge 11.0.0 → 11.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (171) hide show
  1. package/dist/number/branded-types/finite-number.d.mts +47 -61
  2. package/dist/number/branded-types/finite-number.d.mts.map +1 -1
  3. package/dist/number/branded-types/finite-number.mjs +37 -41
  4. package/dist/number/branded-types/finite-number.mjs.map +1 -1
  5. package/dist/number/branded-types/int.d.mts +40 -46
  6. package/dist/number/branded-types/int.d.mts.map +1 -1
  7. package/dist/number/branded-types/int.mjs +29 -31
  8. package/dist/number/branded-types/int.mjs.map +1 -1
  9. package/dist/number/branded-types/int16.d.mts +65 -58
  10. package/dist/number/branded-types/int16.d.mts.map +1 -1
  11. package/dist/number/branded-types/int16.mjs +49 -45
  12. package/dist/number/branded-types/int16.mjs.map +1 -1
  13. package/dist/number/branded-types/int32.d.mts +65 -58
  14. package/dist/number/branded-types/int32.d.mts.map +1 -1
  15. package/dist/number/branded-types/int32.mjs +49 -45
  16. package/dist/number/branded-types/int32.mjs.map +1 -1
  17. package/dist/number/branded-types/negative-finite-number.d.mts +68 -59
  18. package/dist/number/branded-types/negative-finite-number.d.mts.map +1 -1
  19. package/dist/number/branded-types/negative-finite-number.mjs +52 -46
  20. package/dist/number/branded-types/negative-finite-number.mjs.map +1 -1
  21. package/dist/number/branded-types/negative-int.d.mts +60 -48
  22. package/dist/number/branded-types/negative-int.d.mts.map +1 -1
  23. package/dist/number/branded-types/negative-int.mjs +40 -36
  24. package/dist/number/branded-types/negative-int.mjs.map +1 -1
  25. package/dist/number/branded-types/negative-safe-int.d.mts +57 -56
  26. package/dist/number/branded-types/negative-safe-int.d.mts.map +1 -1
  27. package/dist/number/branded-types/negative-safe-int.mjs +40 -41
  28. package/dist/number/branded-types/negative-safe-int.mjs.map +1 -1
  29. package/dist/number/branded-types/non-negative-finite-number.d.mts +74 -64
  30. package/dist/number/branded-types/non-negative-finite-number.d.mts.map +1 -1
  31. package/dist/number/branded-types/non-negative-finite-number.mjs +58 -51
  32. package/dist/number/branded-types/non-negative-finite-number.mjs.map +1 -1
  33. package/dist/number/branded-types/non-negative-int16.d.mts +64 -57
  34. package/dist/number/branded-types/non-negative-int16.d.mts.map +1 -1
  35. package/dist/number/branded-types/non-negative-int16.mjs +47 -43
  36. package/dist/number/branded-types/non-negative-int16.mjs.map +1 -1
  37. package/dist/number/branded-types/non-negative-int32.d.mts +64 -58
  38. package/dist/number/branded-types/non-negative-int32.d.mts.map +1 -1
  39. package/dist/number/branded-types/non-negative-int32.mjs +47 -44
  40. package/dist/number/branded-types/non-negative-int32.mjs.map +1 -1
  41. package/dist/number/branded-types/non-positive-finite-number.d.mts +64 -54
  42. package/dist/number/branded-types/non-positive-finite-number.d.mts.map +1 -1
  43. package/dist/number/branded-types/non-positive-finite-number.mjs +48 -41
  44. package/dist/number/branded-types/non-positive-finite-number.mjs.map +1 -1
  45. package/dist/number/branded-types/non-positive-int.d.mts +41 -146
  46. package/dist/number/branded-types/non-positive-int.d.mts.map +1 -1
  47. package/dist/number/branded-types/non-positive-int.mjs +27 -107
  48. package/dist/number/branded-types/non-positive-int.mjs.map +1 -1
  49. package/dist/number/branded-types/non-positive-safe-int.d.mts +54 -53
  50. package/dist/number/branded-types/non-positive-safe-int.d.mts.map +1 -1
  51. package/dist/number/branded-types/non-positive-safe-int.mjs +37 -39
  52. package/dist/number/branded-types/non-positive-safe-int.mjs.map +1 -1
  53. package/dist/number/branded-types/non-zero-finite-number.d.mts +62 -49
  54. package/dist/number/branded-types/non-zero-finite-number.d.mts.map +1 -1
  55. package/dist/number/branded-types/non-zero-finite-number.mjs +46 -37
  56. package/dist/number/branded-types/non-zero-finite-number.mjs.map +1 -1
  57. package/dist/number/branded-types/non-zero-int.d.mts +51 -38
  58. package/dist/number/branded-types/non-zero-int.d.mts.map +1 -1
  59. package/dist/number/branded-types/non-zero-int.mjs +31 -27
  60. package/dist/number/branded-types/non-zero-int.mjs.map +1 -1
  61. package/dist/number/branded-types/non-zero-int16.d.mts +52 -53
  62. package/dist/number/branded-types/non-zero-int16.d.mts.map +1 -1
  63. package/dist/number/branded-types/non-zero-int16.mjs +36 -39
  64. package/dist/number/branded-types/non-zero-int16.mjs.map +1 -1
  65. package/dist/number/branded-types/non-zero-int32.d.mts +52 -54
  66. package/dist/number/branded-types/non-zero-int32.d.mts.map +1 -1
  67. package/dist/number/branded-types/non-zero-int32.mjs +36 -40
  68. package/dist/number/branded-types/non-zero-int32.mjs.map +1 -1
  69. package/dist/number/branded-types/non-zero-safe-int.d.mts +53 -54
  70. package/dist/number/branded-types/non-zero-safe-int.d.mts.map +1 -1
  71. package/dist/number/branded-types/non-zero-safe-int.mjs +36 -40
  72. package/dist/number/branded-types/non-zero-safe-int.mjs.map +1 -1
  73. package/dist/number/branded-types/non-zero-uint16.d.mts +52 -53
  74. package/dist/number/branded-types/non-zero-uint16.d.mts.map +1 -1
  75. package/dist/number/branded-types/non-zero-uint16.mjs +35 -39
  76. package/dist/number/branded-types/non-zero-uint16.mjs.map +1 -1
  77. package/dist/number/branded-types/non-zero-uint32.d.mts +52 -53
  78. package/dist/number/branded-types/non-zero-uint32.d.mts.map +1 -1
  79. package/dist/number/branded-types/non-zero-uint32.mjs +35 -39
  80. package/dist/number/branded-types/non-zero-uint32.mjs.map +1 -1
  81. package/dist/number/branded-types/positive-finite-number.d.mts +74 -63
  82. package/dist/number/branded-types/positive-finite-number.d.mts.map +1 -1
  83. package/dist/number/branded-types/positive-finite-number.mjs +58 -50
  84. package/dist/number/branded-types/positive-finite-number.mjs.map +1 -1
  85. package/dist/number/branded-types/positive-int.d.mts +46 -68
  86. package/dist/number/branded-types/positive-int.d.mts.map +1 -1
  87. package/dist/number/branded-types/positive-int.mjs +34 -49
  88. package/dist/number/branded-types/positive-int.mjs.map +1 -1
  89. package/dist/number/branded-types/positive-int16.d.mts +61 -57
  90. package/dist/number/branded-types/positive-int16.d.mts.map +1 -1
  91. package/dist/number/branded-types/positive-int16.mjs +44 -43
  92. package/dist/number/branded-types/positive-int16.mjs.map +1 -1
  93. package/dist/number/branded-types/positive-int32.d.mts +61 -57
  94. package/dist/number/branded-types/positive-int32.d.mts.map +1 -1
  95. package/dist/number/branded-types/positive-int32.mjs +44 -43
  96. package/dist/number/branded-types/positive-int32.mjs.map +1 -1
  97. package/dist/number/branded-types/positive-safe-int.d.mts +62 -57
  98. package/dist/number/branded-types/positive-safe-int.d.mts.map +1 -1
  99. package/dist/number/branded-types/positive-safe-int.mjs +45 -43
  100. package/dist/number/branded-types/positive-safe-int.mjs.map +1 -1
  101. package/dist/number/branded-types/positive-uint16.d.mts +61 -57
  102. package/dist/number/branded-types/positive-uint16.d.mts.map +1 -1
  103. package/dist/number/branded-types/positive-uint16.mjs +44 -43
  104. package/dist/number/branded-types/positive-uint16.mjs.map +1 -1
  105. package/dist/number/branded-types/positive-uint32.d.mts +61 -58
  106. package/dist/number/branded-types/positive-uint32.d.mts.map +1 -1
  107. package/dist/number/branded-types/positive-uint32.mjs +44 -44
  108. package/dist/number/branded-types/positive-uint32.mjs.map +1 -1
  109. package/dist/number/branded-types/safe-int.d.mts +43 -62
  110. package/dist/number/branded-types/safe-int.d.mts.map +1 -1
  111. package/dist/number/branded-types/safe-int.mjs +35 -42
  112. package/dist/number/branded-types/safe-int.mjs.map +1 -1
  113. package/dist/number/branded-types/safe-uint.d.mts +62 -57
  114. package/dist/number/branded-types/safe-uint.d.mts.map +1 -1
  115. package/dist/number/branded-types/safe-uint.mjs +46 -44
  116. package/dist/number/branded-types/safe-uint.mjs.map +1 -1
  117. package/dist/number/branded-types/uint.d.mts +63 -50
  118. package/dist/number/branded-types/uint.d.mts.map +1 -1
  119. package/dist/number/branded-types/uint.mjs +42 -39
  120. package/dist/number/branded-types/uint.mjs.map +1 -1
  121. package/dist/number/branded-types/uint16.d.mts +60 -58
  122. package/dist/number/branded-types/uint16.d.mts.map +1 -1
  123. package/dist/number/branded-types/uint16.mjs +44 -43
  124. package/dist/number/branded-types/uint16.mjs.map +1 -1
  125. package/dist/number/branded-types/uint32.d.mts +59 -55
  126. package/dist/number/branded-types/uint32.d.mts.map +1 -1
  127. package/dist/number/branded-types/uint32.mjs +42 -42
  128. package/dist/number/branded-types/uint32.mjs.map +1 -1
  129. package/dist/number/enum/int8.d.mts +56 -65
  130. package/dist/number/enum/int8.d.mts.map +1 -1
  131. package/dist/number/enum/int8.mjs +44 -43
  132. package/dist/number/enum/int8.mjs.map +1 -1
  133. package/dist/number/enum/uint8.d.mts +60 -58
  134. package/dist/number/enum/uint8.d.mts.map +1 -1
  135. package/dist/number/enum/uint8.mjs +44 -43
  136. package/dist/number/enum/uint8.mjs.map +1 -1
  137. package/package.json +2 -1
  138. package/src/number/branded-types/finite-number.mts +47 -61
  139. package/src/number/branded-types/int.mts +40 -46
  140. package/src/number/branded-types/int16.mts +65 -58
  141. package/src/number/branded-types/int32.mts +65 -58
  142. package/src/number/branded-types/negative-finite-number.mts +68 -68
  143. package/src/number/branded-types/negative-int.mts +60 -57
  144. package/src/number/branded-types/negative-safe-int.mts +57 -65
  145. package/src/number/branded-types/non-negative-finite-number.mts +74 -64
  146. package/src/number/branded-types/non-negative-int16.mts +64 -57
  147. package/src/number/branded-types/non-negative-int32.mts +64 -58
  148. package/src/number/branded-types/non-positive-finite-number.mts +64 -54
  149. package/src/number/branded-types/non-positive-int.mts +41 -146
  150. package/src/number/branded-types/non-positive-safe-int.mts +54 -53
  151. package/src/number/branded-types/non-zero-finite-number.mts +62 -51
  152. package/src/number/branded-types/non-zero-int.mts +51 -38
  153. package/src/number/branded-types/non-zero-int16.mts +52 -53
  154. package/src/number/branded-types/non-zero-int32.mts +52 -54
  155. package/src/number/branded-types/non-zero-safe-int.mts +53 -54
  156. package/src/number/branded-types/non-zero-uint16.mts +52 -53
  157. package/src/number/branded-types/non-zero-uint32.mts +52 -53
  158. package/src/number/branded-types/positive-finite-number.mts +74 -63
  159. package/src/number/branded-types/positive-int.mts +46 -68
  160. package/src/number/branded-types/positive-int16.mts +61 -57
  161. package/src/number/branded-types/positive-int32.mts +61 -57
  162. package/src/number/branded-types/positive-safe-int.mts +62 -57
  163. package/src/number/branded-types/positive-uint16.mts +61 -57
  164. package/src/number/branded-types/positive-uint32.mts +61 -58
  165. package/src/number/branded-types/safe-int.mts +43 -62
  166. package/src/number/branded-types/safe-uint.mts +62 -57
  167. package/src/number/branded-types/uint.mts +63 -50
  168. package/src/number/branded-types/uint16.mts +60 -58
  169. package/src/number/branded-types/uint32.mts +59 -55
  170. package/src/number/enum/int8.mts +56 -65
  171. package/src/number/enum/uint8.mts +60 -58
@@ -1 +1 @@
1
- {"version":3,"file":"positive-int.mjs","sources":["../../../src/number/branded-types/positive-int.mts"],"sourcesContent":["import { type PositiveInt as TtfImported_PositiveInt } from 'ts-type-forge';\nimport { expectType } from '../../expect-type.mjs';\nimport { TsDataForgeInternals } from '../refined-number-utils.mjs';\n\nexport type PositiveInt = TtfImported_PositiveInt;\n\ntype ElementType = PositiveInt;\n\nconst typeNameInMessage = 'a positive integer';\n\nconst {\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: 'Integer',\n MIN_VALUE: 1,\n MAX_VALUE: Number.MAX_VALUE,\n typeNameInMessage,\n} as const);\n\n/**\n * Type guard that checks if a value is a positive integer.\n *\n * A positive integer is any integer greater than zero (>= 1). This excludes\n * zero, negative numbers, and non-integers.\n *\n * @example\n *\n * ```ts\n * assert.isTrue(isPositiveInt(5));\n *\n * assert.isFalse(isPositiveInt(0));\n *\n * assert.isTrue(PositiveInt.is(10));\n * ```\n *\n * @param value - The value to check\n * @returns `true` if the value is a positive integer, `false` otherwise\n */\nexport const isPositiveInt = is;\n\n/**\n * Casts a number to a PositiveInt branded type.\n *\n * This function validates that the input is a positive integer (>= 1) and\n * returns it with the PositiveInt brand. This ensures type safety for\n * operations that require strictly positive integer values.\n *\n * @example\n *\n * ```ts\n * const branded = asPositiveInt(7);\n *\n * assert.isTrue(branded === 7);\n *\n * assert.isTrue(PositiveInt.is(branded));\n * ```\n *\n * @param value - The value to cast\n * @returns The value as a PositiveInt branded type\n * @throws {TypeError} If the value is not a positive integer\n */\nexport const asPositiveInt = castType;\n\n/**\n * Namespace providing type-safe operations for PositiveInt branded types.\n *\n * PositiveInt represents integers that are strictly greater than zero (>= 1).\n * All operations automatically clamp results to maintain the positive\n * constraint, ensuring that arithmetic operations never produce zero or\n * negative values.\n *\n * This type is essential for:\n *\n * - Array lengths and sizes (length >= 1)\n * - Counts and quantities that must be positive\n * - Denominators in division operations\n * - Loop counters and iteration counts\n * - Database primary keys and IDs\n */\nexport const PositiveInt = {\n /**\n * Type guard that checks if a value is a positive integer.\n *\n * @example\n *\n * ```ts\n * assert.isTrue(isPositiveInt(5));\n *\n * assert.isFalse(isPositiveInt(0));\n *\n * assert.isTrue(PositiveInt.is(10));\n * ```\n *\n * @param value - The value to check\n * @returns `true` if the value is a positive integer, `false` otherwise\n * @see {@link isPositiveInt} for usage examples\n */\n is,\n\n /**\n * The minimum value for a PositiveInt.\n *\n * @readonly\n */\n MIN_VALUE,\n\n /**\n * Returns the minimum value from a list of positive integers.\n *\n * Since all inputs are guaranteed to be >= 1, the result is also guaranteed\n * to be a positive integer.\n *\n * @example\n *\n * ```ts\n * const smallest = PositiveInt.min(\n * asPositiveInt(9),\n * asPositiveInt(3),\n * asPositiveInt(12),\n * );\n *\n * assert.isTrue(smallest === 3);\n * ```\n *\n * @param values - The positive integers to compare (at least one required)\n * @returns The smallest value as a PositiveInt\n */\n min: min_,\n\n /**\n * Returns the maximum value from a list of positive integers.\n *\n * @example\n *\n * ```ts\n * const largest = PositiveInt.max(\n * asPositiveInt(9),\n * asPositiveInt(3),\n * asPositiveInt(12),\n * );\n *\n * assert.isTrue(largest === 12);\n * ```\n *\n * @param values - The positive integers to compare (at least one required)\n * @returns The largest value as a PositiveInt\n */\n max: max_,\n\n /**\n * Clamps a number to the positive integer range.\n *\n * Since PositiveInt has a minimum value of 1, this function ensures that any\n * input less than 1 is clamped to 1.\n *\n * @example\n *\n * ```ts\n * const belowRange = PositiveInt.clamp(0);\n *\n * const withinRange = PositiveInt.clamp(10);\n *\n * assert.isTrue(belowRange === 1);\n *\n * assert.isTrue(withinRange === 10);\n * ```\n *\n * @param value - The number to clamp\n * @returns The value clamped to >= 1 as a PositiveInt\n */\n clamp,\n\n /**\n * Generates a random positive integer within the specified range (inclusive).\n *\n * Both bounds are inclusive, and both min and max must be positive integers.\n * If min > max, they are automatically swapped.\n *\n * @example\n *\n * ```ts\n * const min = asPositiveInt(3);\n *\n * const max = asPositiveInt(6);\n *\n * const randomValue = PositiveInt.random(min, max);\n *\n * assert.isTrue(PositiveInt.is(randomValue));\n *\n * assert.isTrue(randomValue >= 3 && randomValue <= 6);\n * ```\n *\n * @param min - The minimum value (inclusive, must be >= 1)\n * @param max - The maximum value (inclusive, must be >= min)\n * @returns A random PositiveInt in the range [min, max]\n */\n random,\n\n /**\n * Raises a positive integer to a power, ensuring the result is never less\n * than 1.\n *\n * @example\n *\n * ```ts\n * const base = asPositiveInt(2);\n *\n * const exponent = asPositiveInt(4);\n *\n * const power = PositiveInt.pow(base, exponent);\n *\n * assert.isTrue(power === 16);\n * ```\n *\n * @param a - The base positive integer\n * @param b - The exponent positive integer\n * @returns `a ** b` as a PositiveInt, but never less than 1\n */\n pow,\n\n /**\n * Adds two positive integers, ensuring the result is never less than 1.\n *\n * @example\n *\n * ```ts\n * const sum = PositiveInt.add(asPositiveInt(4), asPositiveInt(5));\n *\n * assert.isTrue(sum === 9);\n * ```\n *\n * @param a - First positive integer\n * @param b - Second positive integer\n * @returns `a + b` as a PositiveInt, but never less than 1\n */\n add,\n\n /**\n * Subtracts two positive integers, clamping the result to remain positive.\n *\n * If the mathematical result would be <= 0, it is clamped to 1 to maintain\n * the positive integer constraint.\n *\n * @example\n *\n * ```ts\n * const difference = PositiveInt.sub(asPositiveInt(5), asPositiveInt(7));\n *\n * assert.isTrue(difference === 1);\n * ```\n *\n * @param a - The minuend (positive integer)\n * @param b - The subtrahend (positive integer)\n * @returns `max(1, a - b)` as a PositiveInt\n */\n sub,\n\n /**\n * Multiplies two positive integers, ensuring the result is never less than 1.\n *\n * @example\n *\n * ```ts\n * const product = PositiveInt.mul(asPositiveInt(3), asPositiveInt(7));\n *\n * assert.isTrue(product === 21);\n * ```\n *\n * @param a - First positive integer\n * @param b - Second positive integer\n * @returns `a * b` as a PositiveInt, but never less than 1\n */\n mul,\n\n /**\n * Divides two positive integers using floor division, clamping to remain\n * positive.\n *\n * Performs mathematical floor division: `⌊a / b⌋`. If the result would be 0\n * (when a < b), it is clamped to 1 to maintain the positive integer\n * constraint.\n *\n * @example\n *\n * ```ts\n * const quotient = PositiveInt.div(asPositiveInt(9), asPositiveInt(2));\n *\n * const clamped = PositiveInt.div(asPositiveInt(3), asPositiveInt(10));\n *\n * assert.isTrue(quotient === 4);\n *\n * assert.isTrue(clamped === 1);\n * ```\n *\n * @param a - The dividend (positive integer)\n * @param b - The divisor (positive integer, guaranteed non-zero)\n * @returns `max(1, ⌊a / b⌋)` as a PositiveInt\n */\n div,\n} as const;\n\nexpectType<\n keyof typeof PositiveInt,\n keyof TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'positive'\n >\n>('=');\n\nexpectType<\n typeof PositiveInt,\n TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'positive'\n >\n>('<=');\n"],"names":[],"mappings":";;AAQA,MAAM,iBAAA,GAAoB,oBAAA;AAE1B,MAAM;AAAA,EACJ,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,SAAA;AAAA,EACtB,SAAA,EAAW,CAAA;AAAA,EACX,WAAW,MAAA,CAAO,SAAA;AAAA,EAClB;AACF,CAAU,CAAA;AAqBH,MAAM,aAAA,GAAgB;AAuBtB,MAAM,aAAA,GAAgB;AAkBtB,MAAM,WAAA,GAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAkBzB,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAuBA,GAAA,EAAK,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAoBL,GAAA,EAAK,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAuBL,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA0BA,MAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAsBA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAiBA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAoBA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAiBA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA0BA;AACF;;;;"}
1
+ {"version":3,"file":"positive-int.mjs","sources":["../../../src/number/branded-types/positive-int.mts"],"sourcesContent":["import { type PositiveInt as TtfImported_PositiveInt } from 'ts-type-forge';\nimport { expectType } from '../../expect-type.mjs';\nimport { TsDataForgeInternals } from '../refined-number-utils.mjs';\n\nexport type PositiveInt = TtfImported_PositiveInt;\n\ntype ElementType = PositiveInt;\n\nconst typeNameInMessage = 'a positive integer';\n\nconst {\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: 'Integer',\n MIN_VALUE: 1,\n MAX_VALUE: Number.MAX_VALUE,\n typeNameInMessage,\n} as const);\n\n/**\n * Type guard that checks if a value is a positive integer.\n *\n * Returns `true` for a positive integer — a value with no fractional component,\n * including values outside the safe integer range (unlike `SafeInt`).\n *\n * @example\n *\n * ```ts\n * assert.isTrue(isPositiveInt(5));\n *\n * assert.isFalse(isPositiveInt(0));\n *\n * assert.isTrue(PositiveInt.is(10));\n * ```\n *\n * @param value - The value to check\n * @returns `true` if the value is a positive integer, `false` otherwise\n */\nexport const isPositiveInt = is;\n\n/**\n * Casts a `number` to the `PositiveInt` branded type.\n *\n * Validates that the value is a positive integer and returns it with the\n * `PositiveInt` brand. Throws a `TypeError` otherwise.\n *\n * @example\n *\n * ```ts\n * const branded = asPositiveInt(7);\n *\n * assert.isTrue(branded === 7);\n *\n * assert.isTrue(PositiveInt.is(branded));\n * ```\n *\n * @param value - The value to cast\n * @returns The value as a `PositiveInt`\n * @throws {TypeError} If the value is not a positive integer\n */\nexport const asPositiveInt = castType;\n\n/**\n * Namespace providing type-safe operations for the `PositiveInt` branded type.\n *\n * The `PositiveInt` type represents a positive integer. Division (`div`) uses\n * floor division.\n *\n * Unlike `SafeInt`, `PositiveInt` allows values outside the safe integer range\n * (±2^53 − 1), so very large magnitudes may lose precision in JavaScript's\n * `number` type.\n */\nexport const PositiveInt = {\n /**\n * Type guard that checks if a value is a positive integer.\n *\n * @example\n *\n * ```ts\n * assert.isTrue(isPositiveInt(5));\n *\n * assert.isFalse(isPositiveInt(0));\n *\n * assert.isTrue(PositiveInt.is(10));\n * ```\n *\n * @param value - The value to check\n * @returns `true` if the value is a positive integer, `false` otherwise\n * @see {@link isPositiveInt} for usage examples\n */\n is,\n\n /**\n * The smallest value representable as `PositiveInt`.\n */\n MIN_VALUE,\n\n /**\n * Returns the smallest of the given positive integers.\n *\n * @example\n *\n * ```ts\n * const smallest = PositiveInt.min(\n * asPositiveInt(9),\n * asPositiveInt(3),\n * asPositiveInt(12),\n * );\n *\n * assert.isTrue(smallest === 3);\n * ```\n *\n * @param values - The positive integers to compare (at least one required)\n * @returns The smallest value as a `PositiveInt`\n */\n min: min_,\n\n /**\n * Returns the largest of the given positive integers.\n *\n * @example\n *\n * ```ts\n * const largest = PositiveInt.max(\n * asPositiveInt(9),\n * asPositiveInt(3),\n * asPositiveInt(12),\n * );\n *\n * assert.isTrue(largest === 12);\n * ```\n *\n * @param values - The positive integers to compare (at least one required)\n * @returns The largest value as a `PositiveInt`\n */\n max: max_,\n\n /**\n * Clamps a `number` into the `PositiveInt` range, rounding to the nearest\n * integer and constraining the result to `[MIN_VALUE, MAX_VALUE]`.\n *\n * @example\n *\n * ```ts\n * const belowRange = PositiveInt.clamp(0);\n *\n * const withinRange = PositiveInt.clamp(10);\n *\n * assert.isTrue(belowRange === 1);\n *\n * assert.isTrue(withinRange === 10);\n * ```\n *\n * @param value - The value to clamp\n * @returns The clamped value as a `PositiveInt`\n */\n clamp,\n\n /**\n * Generates a random `PositiveInt` within the given range.\n *\n * The range is inclusive on both ends.\n *\n * @example\n *\n * ```ts\n * const min = asPositiveInt(3);\n *\n * const max = asPositiveInt(6);\n *\n * const randomValue = PositiveInt.random(min, max);\n *\n * assert.isTrue(PositiveInt.is(randomValue));\n *\n * assert.isTrue(randomValue >= 3 && randomValue <= 6);\n * ```\n *\n * @param min - The minimum value (inclusive)\n * @param max - The maximum value (inclusive)\n * @returns A random `PositiveInt` in `[min, max]`\n */\n random,\n\n /**\n * Raises `a` to the power `b`, returning `a ** b` as a `PositiveInt` (floored\n * to an integer).\n *\n * @example\n *\n * ```ts\n * const base = asPositiveInt(2);\n *\n * const exponent = asPositiveInt(4);\n *\n * const power = PositiveInt.pow(base, exponent);\n *\n * assert.isTrue(power === 16);\n * ```\n *\n * @param a - The base positive integer\n * @param b - The exponent positive integer\n * @returns `a ** b` as a `PositiveInt`\n */\n pow,\n\n /**\n * Adds two positive integers, returning `a + b` as a `PositiveInt`.\n *\n * @example\n *\n * ```ts\n * const sum = PositiveInt.add(asPositiveInt(4), asPositiveInt(5));\n *\n * assert.isTrue(sum === 9);\n * ```\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 `PositiveInt`\n */\n add,\n\n /**\n * Subtracts two positive integers, returning `a - b` as a `PositiveInt`.\n *\n * @example\n *\n * ```ts\n * const difference = PositiveInt.sub(asPositiveInt(5), asPositiveInt(7));\n *\n * assert.isTrue(difference === 1);\n * ```\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 `PositiveInt`\n */\n sub,\n\n /**\n * Multiplies two positive integers, returning `a * b` as a `PositiveInt`.\n *\n * @example\n *\n * ```ts\n * const product = PositiveInt.mul(asPositiveInt(3), asPositiveInt(7));\n *\n * assert.isTrue(product === 21);\n * ```\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 `PositiveInt`\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 `PositiveInt`.\n *\n * @example\n *\n * ```ts\n * const quotient = PositiveInt.div(asPositiveInt(9), asPositiveInt(2));\n *\n * const clamped = PositiveInt.div(asPositiveInt(3), asPositiveInt(10));\n *\n * assert.isTrue(quotient === 4);\n *\n * assert.isTrue(clamped === 1);\n * ```\n *\n * @param a - The dividend\n * @param b - The divisor (must be non-zero)\n * @returns The floored quotient as a `PositiveInt`\n */\n div,\n} as const;\n\nexpectType<\n keyof typeof PositiveInt,\n keyof TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'positive'\n >\n>('=');\n\nexpectType<\n typeof PositiveInt,\n TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'positive'\n >\n>('<=');\n"],"names":[],"mappings":";;AAQA,MAAM,iBAAA,GAAoB,oBAAA;AAE1B,MAAM;AAAA,EACJ,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,SAAA;AAAA,EACtB,SAAA,EAAW,CAAA;AAAA,EACX,WAAW,MAAA,CAAO,SAAA;AAAA,EAClB;AACF,CAAU,CAAA;AAqBH,MAAM,aAAA,GAAgB;AAsBtB,MAAM,aAAA,GAAgB;AAYtB,MAAM,WAAA,GAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAkBzB,EAAA;AAAA;AAAA;AAAA;AAAA,EAKA,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAoBA,GAAA,EAAK,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAoBL,GAAA,EAAK,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAqBL,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAyBA,MAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAsBA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAiBA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAiBA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAiBA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAsBA;AACF;;;;"}
@@ -1,19 +1,24 @@
1
1
  import { type PositiveInt16 as TtfImported_PositiveInt16 } from 'ts-type-forge';
2
2
  export type PositiveInt16 = TtfImported_PositiveInt16;
3
3
  /**
4
- * Checks if a number is a PositiveInt16 (16-bit positive signed integer in the
5
- * range [1, 2^15)).
4
+ * Type guard that checks if a value is a positive integer in [1, 2^15).
6
5
  *
7
- * @param value The value to check.
8
- * @returns `true` if the value is a PositiveInt16, `false` otherwise.
6
+ * Returns `true` for a positive integer in [1, 2^15) — a value with no
7
+ * fractional component.
8
+ *
9
+ * @param value - The value to check
10
+ * @returns `true` if the value is a positive integer in [1, 2^15), `false` otherwise
9
11
  */
10
12
  export declare const isPositiveInt16: (a: number) => a is TtfImported_PositiveInt16;
11
13
  /**
12
- * Casts a number to a PositiveInt16 type.
14
+ * Casts a `number` to the `PositiveInt16` branded type.
15
+ *
16
+ * Validates that the value is a positive integer in [1, 2^15) and returns it
17
+ * with the `PositiveInt16` brand. Throws a `TypeError` otherwise.
13
18
  *
14
- * @param value The value to cast.
15
- * @returns The value as a PositiveInt16 type.
16
- * @throws {TypeError} If the value is not a positive integer in [1, 2^15).
19
+ * @param value - The value to cast
20
+ * @returns The value as a `PositiveInt16`
21
+ * @throws {TypeError} If the value is not a positive integer in [1, 2^15)
17
22
  */
18
23
  export declare const asPositiveInt16: <N extends number>(x: N) => number & {
19
24
  readonly "!=0": true;
@@ -35,102 +40,101 @@ export declare const asPositiveInt16: <N extends number>(x: N) => number & {
35
40
  'TSTypeForgeInternals--edd2f9ce-7ca5-45b0-9d1a-bd61b9b5d9c3': unknown;
36
41
  }> & N;
37
42
  /**
38
- * Namespace providing type-safe arithmetic operations for 16-bit positive
39
- * integers.
43
+ * Namespace providing type-safe operations for the `PositiveInt16` branded
44
+ * type.
40
45
  *
41
- * All operations automatically clamp results to the valid PositiveInt16 range
42
- * [1, 32767]. This ensures that all arithmetic maintains the 16-bit positive
43
- * integer constraint, with results below 1 clamped to MIN_VALUE and overflow
44
- * results clamped to MAX_VALUE.
46
+ * The `PositiveInt16` type represents a positive integer in [1, 2^15). Division
47
+ * (`div`) uses floor division.
45
48
  */
46
49
  export declare const PositiveInt16: {
47
50
  /**
48
- * Type guard to check if a value is a PositiveInt16.
51
+ * Type guard that checks if a value is a positive integer in [1, 2^15).
49
52
  *
50
- * @param value The value to check.
51
- * @returns `true` if the value is a 16-bit positive integer, `false`
52
- * otherwise.
53
+ * @param value - The value to check
54
+ * @returns `true` if the value is a positive integer in [1, 2^15), `false` otherwise
55
+ * @see {@link isPositiveInt16} for usage examples
53
56
  */
54
57
  readonly is: (a: number) => a is TtfImported_PositiveInt16;
55
58
  /**
56
- * The minimum value for a 16-bit positive integer.
57
- *
58
- * @readonly
59
+ * The smallest value representable as `PositiveInt16`.
59
60
  */
60
61
  readonly MIN_VALUE: 1;
61
62
  /**
62
- * The maximum value for a 16-bit positive integer.
63
- *
64
- * @readonly
63
+ * The largest value representable as `PositiveInt16`.
65
64
  */
66
65
  readonly MAX_VALUE: number;
67
66
  /**
68
- * Returns the smaller of two PositiveInt16 values.
67
+ * Returns the smallest of the given positive integers.
69
68
  *
70
- * @param a The first PositiveInt16.
71
- * @param b The second PositiveInt16.
72
- * @returns The minimum value as a PositiveInt16.
69
+ * @param values - The positive integers to compare (at least one required)
70
+ * @returns The smallest value as a `PositiveInt16`
73
71
  */
74
72
  readonly min: (...values: readonly import("ts-type-forge").WithSmallInt<TtfImported_PositiveInt16>[]) => TtfImported_PositiveInt16;
75
73
  /**
76
- * Returns the larger of two PositiveInt16 values.
74
+ * Returns the largest of the given positive integers.
77
75
  *
78
- * @param a The first PositiveInt16.
79
- * @param b The second PositiveInt16.
80
- * @returns The maximum value as a PositiveInt16.
76
+ * @param values - The positive integers to compare (at least one required)
77
+ * @returns The largest value as a `PositiveInt16`
81
78
  */
82
79
  readonly max: (...values: readonly import("ts-type-forge").WithSmallInt<TtfImported_PositiveInt16>[]) => TtfImported_PositiveInt16;
83
80
  /**
84
- * Clamps a number to the PositiveInt16 range.
81
+ * Clamps a `number` into the `PositiveInt16` range, rounding to the nearest
82
+ * integer and constraining the result to `[MIN_VALUE, MAX_VALUE]`.
85
83
  *
86
- * @param value The number to clamp.
87
- * @returns The value clamped to [1, 32767] as a PositiveInt16.
84
+ * @param value - The value to clamp
85
+ * @returns The clamped value as a `PositiveInt16`
88
86
  */
89
87
  readonly clamp: (x: number) => TtfImported_PositiveInt16;
90
88
  /**
91
- * Generates a random PositiveInt16 value within the valid range.
89
+ * Generates a random `PositiveInt16` within the given range.
90
+ *
91
+ * The range is inclusive on both ends.
92
92
  *
93
- * @returns A random PositiveInt16 between 1 and 32767.
93
+ * @param min - The minimum value (inclusive)
94
+ * @param max - The maximum value (inclusive)
95
+ * @returns A random `PositiveInt16` in `[min, max]`
94
96
  */
95
97
  readonly random: (min?: import("ts-type-forge").WithSmallInt<TtfImported_PositiveInt16> | undefined, max?: import("ts-type-forge").WithSmallInt<TtfImported_PositiveInt16> | undefined) => TtfImported_PositiveInt16;
96
98
  /**
97
- * Raises a PositiveInt16 to the power of another PositiveInt16.
99
+ * Raises `a` to the power `b`, returning `a ** b` as a `PositiveInt16`
100
+ * (floored to an integer).
98
101
  *
99
- * @param a The base PositiveInt16.
100
- * @param b The exponent PositiveInt16.
101
- * @returns `a ** b` clamped to [1, 32767] as a PositiveInt16.
102
+ * @param a - The base positive integer
103
+ * @param b - The exponent positive integer
104
+ * @returns `a ** b` as a `PositiveInt16`
102
105
  */
103
106
  readonly pow: (x: import("ts-type-forge").WithSmallInt<TtfImported_PositiveInt16>, y: import("ts-type-forge").WithSmallInt<TtfImported_PositiveInt16>) => TtfImported_PositiveInt16;
104
107
  /**
105
- * Adds two PositiveInt16 values.
108
+ * Adds two positive integers, returning `a + b` as a `PositiveInt16`.
106
109
  *
107
- * @param a The first PositiveInt16.
108
- * @param b The second PositiveInt16.
109
- * @returns `a + b` clamped to [1, 32767] as a PositiveInt16.
110
+ * @param a - The first positive integer
111
+ * @param b - The second positive integer
112
+ * @returns The sum of `a` and `b` as a `PositiveInt16`
110
113
  */
111
114
  readonly add: (x: import("ts-type-forge").WithSmallInt<TtfImported_PositiveInt16>, y: import("ts-type-forge").WithSmallInt<TtfImported_PositiveInt16>) => TtfImported_PositiveInt16;
112
115
  /**
113
- * Subtracts one PositiveInt16 from another.
116
+ * Subtracts two positive integers, returning `a - b` as a `PositiveInt16`.
114
117
  *
115
- * @param a The minuend PositiveInt16.
116
- * @param b The subtrahend PositiveInt16.
117
- * @returns `a - b` clamped to [1, 32767] as a PositiveInt16 (minimum 1).
118
+ * @param a - The first positive integer
119
+ * @param b - The second positive integer
120
+ * @returns The difference of `a` and `b` as a `PositiveInt16`
118
121
  */
119
122
  readonly sub: (x: import("ts-type-forge").WithSmallInt<TtfImported_PositiveInt16>, y: import("ts-type-forge").WithSmallInt<TtfImported_PositiveInt16>) => TtfImported_PositiveInt16;
120
123
  /**
121
- * Multiplies two PositiveInt16 values.
124
+ * Multiplies two positive integers, returning `a * b` as a `PositiveInt16`.
122
125
  *
123
- * @param a The first PositiveInt16.
124
- * @param b The second PositiveInt16.
125
- * @returns `a * b` clamped to [1, 32767] as a PositiveInt16.
126
+ * @param a - The first positive integer
127
+ * @param b - The second positive integer
128
+ * @returns The product of `a` and `b` as a `PositiveInt16`
126
129
  */
127
130
  readonly mul: (x: import("ts-type-forge").WithSmallInt<TtfImported_PositiveInt16>, y: import("ts-type-forge").WithSmallInt<TtfImported_PositiveInt16>) => TtfImported_PositiveInt16;
128
131
  /**
129
- * Divides one PositiveInt16 by another using floor division.
132
+ * Divides two positive integers using floor division (`⌊a / b⌋`): the result
133
+ * is `a / b` rounded toward negative infinity, as a `PositiveInt16`.
130
134
  *
131
- * @param a The dividend PositiveInt16.
132
- * @param b The divisor PositiveInt16.
133
- * @returns `⌊a / b⌋` clamped to [1, 32767] as a PositiveInt16.
135
+ * @param a - The dividend
136
+ * @param b - The divisor (must be non-zero)
137
+ * @returns The floored quotient as a `PositiveInt16`
134
138
  */
135
139
  readonly div: (x: import("ts-type-forge").WithSmallInt<TtfImported_PositiveInt16>, y: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | import("ts-type-forge").NormalizeBrandUnion<number & {
136
140
  readonly "!=0": true;
@@ -1 +1 @@
1
- {"version":3,"file":"positive-int16.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/positive-int16.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,IAAI,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAIhF,MAAM,MAAM,aAAa,GAAG,yBAAyB,CAAC;AA+BtD;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,+CAAK,CAAC;AAElC;;;;;;GAMG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;MAAW,CAAC;AAExC;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa;IACxB;;;;;;OAMG;;IAGH;;;;OAIG;;IAGH;;;;OAIG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;OAKG;;IAGH;;;;OAIG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;;;;;;;;;;;;;;;;;;;CAEK,CAAC"}
1
+ {"version":3,"file":"positive-int16.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/positive-int16.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,IAAI,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAIhF,MAAM,MAAM,aAAa,GAAG,yBAAyB,CAAC;AA+BtD;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,+CAAK,CAAC;AAElC;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;MAAW,CAAC;AAExC;;;;;;GAMG;AACH,eAAO,MAAM,aAAa;IACxB;;;;;;OAMG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;;;;OAKG;;IAGH;;;;;OAKG;;IAGH;;;;;;OAMG;;IAGH;;;;;;;;OAQG;;IAGH;;;;;;;OAOG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;;;OAOG;;;;;;;;;;;;;;;;;;;;CAEK,CAAC"}
@@ -25,92 +25,93 @@ const isPositiveInt16 = is;
25
25
  const asPositiveInt16 = castType;
26
26
  const PositiveInt16 = {
27
27
  /**
28
- * Type guard to check if a value is a PositiveInt16.
28
+ * Type guard that checks if a value is a positive integer in [1, 2^15).
29
29
  *
30
- * @param value The value to check.
31
- * @returns `true` if the value is a 16-bit positive integer, `false`
32
- * otherwise.
30
+ * @param value - The value to check
31
+ * @returns `true` if the value is a positive integer in [1, 2^15), `false` otherwise
32
+ * @see {@link isPositiveInt16} for usage examples
33
33
  */
34
34
  is,
35
35
  /**
36
- * The minimum value for a 16-bit positive integer.
37
- *
38
- * @readonly
36
+ * The smallest value representable as `PositiveInt16`.
39
37
  */
40
38
  MIN_VALUE,
41
39
  /**
42
- * The maximum value for a 16-bit positive integer.
43
- *
44
- * @readonly
40
+ * The largest value representable as `PositiveInt16`.
45
41
  */
46
42
  MAX_VALUE,
47
43
  /**
48
- * Returns the smaller of two PositiveInt16 values.
44
+ * Returns the smallest of the given positive integers.
49
45
  *
50
- * @param a The first PositiveInt16.
51
- * @param b The second PositiveInt16.
52
- * @returns The minimum value as a PositiveInt16.
46
+ * @param values - The positive integers to compare (at least one required)
47
+ * @returns The smallest value as a `PositiveInt16`
53
48
  */
54
49
  min: min_,
55
50
  /**
56
- * Returns the larger of two PositiveInt16 values.
51
+ * Returns the largest of the given positive integers.
57
52
  *
58
- * @param a The first PositiveInt16.
59
- * @param b The second PositiveInt16.
60
- * @returns The maximum value as a PositiveInt16.
53
+ * @param values - The positive integers to compare (at least one required)
54
+ * @returns The largest value as a `PositiveInt16`
61
55
  */
62
56
  max: max_,
63
57
  /**
64
- * Clamps a number to the PositiveInt16 range.
58
+ * Clamps a `number` into the `PositiveInt16` 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, 32767] as a PositiveInt16.
61
+ * @param value - The value to clamp
62
+ * @returns The clamped value as a `PositiveInt16`
68
63
  */
69
64
  clamp,
70
65
  /**
71
- * Generates a random PositiveInt16 value within the valid range.
66
+ * Generates a random `PositiveInt16` within the given range.
67
+ *
68
+ * The range is inclusive on both ends.
72
69
  *
73
- * @returns A random PositiveInt16 between 1 and 32767.
70
+ * @param min - The minimum value (inclusive)
71
+ * @param max - The maximum value (inclusive)
72
+ * @returns A random `PositiveInt16` in `[min, max]`
74
73
  */
75
74
  random,
76
75
  /**
77
- * Raises a PositiveInt16 to the power of another PositiveInt16.
76
+ * Raises `a` to the power `b`, returning `a ** b` as a `PositiveInt16`
77
+ * (floored to an integer).
78
78
  *
79
- * @param a The base PositiveInt16.
80
- * @param b The exponent PositiveInt16.
81
- * @returns `a ** b` clamped to [1, 32767] as a PositiveInt16.
79
+ * @param a - The base positive integer
80
+ * @param b - The exponent positive integer
81
+ * @returns `a ** b` as a `PositiveInt16`
82
82
  */
83
83
  pow,
84
84
  /**
85
- * Adds two PositiveInt16 values.
85
+ * Adds two positive integers, returning `a + b` as a `PositiveInt16`.
86
86
  *
87
- * @param a The first PositiveInt16.
88
- * @param b The second PositiveInt16.
89
- * @returns `a + b` clamped to [1, 32767] as a PositiveInt16.
87
+ * @param a - The first positive integer
88
+ * @param b - The second positive integer
89
+ * @returns The sum of `a` and `b` as a `PositiveInt16`
90
90
  */
91
91
  add,
92
92
  /**
93
- * Subtracts one PositiveInt16 from another.
93
+ * Subtracts two positive integers, returning `a - b` as a `PositiveInt16`.
94
94
  *
95
- * @param a The minuend PositiveInt16.
96
- * @param b The subtrahend PositiveInt16.
97
- * @returns `a - b` clamped to [1, 32767] as a PositiveInt16 (minimum 1).
95
+ * @param a - The first positive integer
96
+ * @param b - The second positive integer
97
+ * @returns The difference of `a` and `b` as a `PositiveInt16`
98
98
  */
99
99
  sub,
100
100
  /**
101
- * Multiplies two PositiveInt16 values.
101
+ * Multiplies two positive integers, returning `a * b` as a `PositiveInt16`.
102
102
  *
103
- * @param a The first PositiveInt16.
104
- * @param b The second PositiveInt16.
105
- * @returns `a * b` clamped to [1, 32767] as a PositiveInt16.
103
+ * @param a - The first positive integer
104
+ * @param b - The second positive integer
105
+ * @returns The product of `a` and `b` as a `PositiveInt16`
106
106
  */
107
107
  mul,
108
108
  /**
109
- * Divides one PositiveInt16 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 `PositiveInt16`.
110
111
  *
111
- * @param a The dividend PositiveInt16.
112
- * @param b The divisor PositiveInt16.
113
- * @returns `⌊a / b⌋` clamped to [1, 32767] as a PositiveInt16.
112
+ * @param a - The dividend
113
+ * @param b - The divisor (must be non-zero)
114
+ * @returns The floored quotient as a `PositiveInt16`
114
115
  */
115
116
  div
116
117
  };
@@ -1 +1 @@
1
- {"version":3,"file":"positive-int16.mjs","sources":["../../../src/number/branded-types/positive-int16.mts"],"sourcesContent":["import { type PositiveInt16 as TtfImported_PositiveInt16 } from 'ts-type-forge';\nimport { expectType } from '../../expect-type.mjs';\nimport { TsDataForgeInternals } from '../refined-number-utils.mjs';\n\nexport type PositiveInt16 = TtfImported_PositiveInt16;\n\ntype ElementType = PositiveInt16;\n\nconst typeNameInMessage = 'a positive integer in [1, 2^15)';\n\nconst {\n MAX_VALUE,\n MIN_VALUE,\n add,\n castType,\n clamp,\n div,\n is,\n max: max_,\n min: min_,\n mul,\n pow,\n random,\n sub,\n} = TsDataForgeInternals.RefinedNumberUtils.operatorsForInteger<\n ElementType,\n 1,\n number\n>({\n integerOrSafeInteger: 'SafeInteger',\n MIN_VALUE: 1,\n MAX_VALUE: 2 ** 15 - 1,\n typeNameInMessage,\n} as const);\n\n/**\n * Checks if a number is a PositiveInt16 (16-bit positive signed integer in the\n * range [1, 2^15)).\n *\n * @param value The value to check.\n * @returns `true` if the value is a PositiveInt16, `false` otherwise.\n */\nexport const isPositiveInt16 = is;\n\n/**\n * Casts a number to a PositiveInt16 type.\n *\n * @param value The value to cast.\n * @returns The value as a PositiveInt16 type.\n * @throws {TypeError} If the value is not a positive integer in [1, 2^15).\n */\nexport const asPositiveInt16 = castType;\n\n/**\n * Namespace providing type-safe arithmetic operations for 16-bit positive\n * integers.\n *\n * All operations automatically clamp results to the valid PositiveInt16 range\n * [1, 32767]. This ensures that all arithmetic maintains the 16-bit positive\n * integer constraint, with results below 1 clamped to MIN_VALUE and overflow\n * results clamped to MAX_VALUE.\n */\nexport const PositiveInt16 = {\n /**\n * Type guard to check if a value is a PositiveInt16.\n *\n * @param value The value to check.\n * @returns `true` if the value is a 16-bit positive integer, `false`\n * otherwise.\n */\n is,\n\n /**\n * The minimum value for a 16-bit positive integer.\n *\n * @readonly\n */\n MIN_VALUE,\n\n /**\n * The maximum value for a 16-bit positive integer.\n *\n * @readonly\n */\n MAX_VALUE,\n\n /**\n * Returns the smaller of two PositiveInt16 values.\n *\n * @param a The first PositiveInt16.\n * @param b The second PositiveInt16.\n * @returns The minimum value as a PositiveInt16.\n */\n min: min_,\n\n /**\n * Returns the larger of two PositiveInt16 values.\n *\n * @param a The first PositiveInt16.\n * @param b The second PositiveInt16.\n * @returns The maximum value as a PositiveInt16.\n */\n max: max_,\n\n /**\n * Clamps a number to the PositiveInt16 range.\n *\n * @param value The number to clamp.\n * @returns The value clamped to [1, 32767] as a PositiveInt16.\n */\n clamp,\n\n /**\n * Generates a random PositiveInt16 value within the valid range.\n *\n * @returns A random PositiveInt16 between 1 and 32767.\n */\n random,\n\n /**\n * Raises a PositiveInt16 to the power of another PositiveInt16.\n *\n * @param a The base PositiveInt16.\n * @param b The exponent PositiveInt16.\n * @returns `a ** b` clamped to [1, 32767] as a PositiveInt16.\n */\n pow,\n\n /**\n * Adds two PositiveInt16 values.\n *\n * @param a The first PositiveInt16.\n * @param b The second PositiveInt16.\n * @returns `a + b` clamped to [1, 32767] as a PositiveInt16.\n */\n add,\n\n /**\n * Subtracts one PositiveInt16 from another.\n *\n * @param a The minuend PositiveInt16.\n * @param b The subtrahend PositiveInt16.\n * @returns `a - b` clamped to [1, 32767] as a PositiveInt16 (minimum 1).\n */\n sub,\n\n /**\n * Multiplies two PositiveInt16 values.\n *\n * @param a The first PositiveInt16.\n * @param b The second PositiveInt16.\n * @returns `a * b` clamped to [1, 32767] as a PositiveInt16.\n */\n mul,\n\n /**\n * Divides one PositiveInt16 by another using floor division.\n *\n * @param a The dividend PositiveInt16.\n * @param b The divisor PositiveInt16.\n * @returns `⌊a / b⌋` clamped to [1, 32767] as a PositiveInt16.\n */\n div,\n} as const;\n\nexpectType<\n keyof typeof PositiveInt16,\n keyof TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'positive' | 'range'\n >\n>('=');\n\nexpectType<\n typeof PositiveInt16,\n TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'positive' | 'range'\n >\n>('<=');\n"],"names":[],"mappings":";;AAQA,MAAM,iBAAA,GAAoB,iCAAA;AAE1B,MAAM;AAAA,EACJ,SAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAA;AAAA,EACA,QAAA;AAAA,EACA,KAAA;AAAA,EACA,GAAA;AAAA,EACA,EAAA;AAAA,EACA,GAAA,EAAK,IAAA;AAAA,EACL,GAAA,EAAK,IAAA;AAAA,EACL,GAAA;AAAA,EACA,GAAA;AAAA,EACA,MAAA;AAAA,EACA;AACF,CAAA,GAAI,oBAAA,CAAqB,mBAAmB,mBAAA,CAI1C;AAAA,EACA,oBAAA,EAAsB,aAAA;AAAA,EACtB,SAAA,EAAW,CAAA;AAAA,EACX,SAAA,EAAW,KAAK,EAAA,GAAK,CAAA;AAAA,EACrB;AACF,CAAU,CAAA;AASH,MAAM,eAAA,GAAkB;AASxB,MAAM,eAAA,GAAkB;AAWxB,MAAM,aAAA,GAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ3B,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,GAAA,EAAK,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASL,GAAA,EAAK,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQL,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA;AACF;;;;"}
1
+ {"version":3,"file":"positive-int16.mjs","sources":["../../../src/number/branded-types/positive-int16.mts"],"sourcesContent":["import { type PositiveInt16 as TtfImported_PositiveInt16 } from 'ts-type-forge';\nimport { expectType } from '../../expect-type.mjs';\nimport { TsDataForgeInternals } from '../refined-number-utils.mjs';\n\nexport type PositiveInt16 = TtfImported_PositiveInt16;\n\ntype ElementType = PositiveInt16;\n\nconst typeNameInMessage = 'a positive integer in [1, 2^15)';\n\nconst {\n MAX_VALUE,\n MIN_VALUE,\n add,\n castType,\n clamp,\n div,\n is,\n max: max_,\n min: min_,\n mul,\n pow,\n random,\n sub,\n} = TsDataForgeInternals.RefinedNumberUtils.operatorsForInteger<\n ElementType,\n 1,\n number\n>({\n integerOrSafeInteger: 'SafeInteger',\n MIN_VALUE: 1,\n MAX_VALUE: 2 ** 15 - 1,\n typeNameInMessage,\n} as const);\n\n/**\n * Type guard that checks if a value is a positive integer in [1, 2^15).\n *\n * Returns `true` for a positive integer in [1, 2^15) — a value with no\n * fractional component.\n *\n * @param value - The value to check\n * @returns `true` if the value is a positive integer in [1, 2^15), `false` otherwise\n */\nexport const isPositiveInt16 = is;\n\n/**\n * Casts a `number` to the `PositiveInt16` branded type.\n *\n * Validates that the value is a positive integer in [1, 2^15) and returns it\n * with the `PositiveInt16` brand. Throws a `TypeError` otherwise.\n *\n * @param value - The value to cast\n * @returns The value as a `PositiveInt16`\n * @throws {TypeError} If the value is not a positive integer in [1, 2^15)\n */\nexport const asPositiveInt16 = castType;\n\n/**\n * Namespace providing type-safe operations for the `PositiveInt16` branded\n * type.\n *\n * The `PositiveInt16` type represents a positive integer in [1, 2^15). Division\n * (`div`) uses floor division.\n */\nexport const PositiveInt16 = {\n /**\n * Type guard that checks if a value is a positive integer in [1, 2^15).\n *\n * @param value - The value to check\n * @returns `true` if the value is a positive integer in [1, 2^15), `false` otherwise\n * @see {@link isPositiveInt16} for usage examples\n */\n is,\n\n /**\n * The smallest value representable as `PositiveInt16`.\n */\n MIN_VALUE,\n\n /**\n * The largest value representable as `PositiveInt16`.\n */\n MAX_VALUE,\n\n /**\n * Returns the smallest of the given positive integers.\n *\n * @param values - The positive integers to compare (at least one required)\n * @returns The smallest value as a `PositiveInt16`\n */\n min: min_,\n\n /**\n * Returns the largest of the given positive integers.\n *\n * @param values - The positive integers to compare (at least one required)\n * @returns The largest value as a `PositiveInt16`\n */\n max: max_,\n\n /**\n * Clamps a `number` into the `PositiveInt16` 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 `PositiveInt16`\n */\n clamp,\n\n /**\n * Generates a random `PositiveInt16` within the given range.\n *\n * The range is inclusive on both ends.\n *\n * @param min - The minimum value (inclusive)\n * @param max - The maximum value (inclusive)\n * @returns A random `PositiveInt16` in `[min, max]`\n */\n random,\n\n /**\n * Raises `a` to the power `b`, returning `a ** b` as a `PositiveInt16`\n * (floored to an integer).\n *\n * @param a - The base positive integer\n * @param b - The exponent positive integer\n * @returns `a ** b` as a `PositiveInt16`\n */\n pow,\n\n /**\n * Adds two positive integers, returning `a + b` as a `PositiveInt16`.\n *\n * @param a - The first positive integer\n * @param b - The second positive integer\n * @returns The sum of `a` and `b` as a `PositiveInt16`\n */\n add,\n\n /**\n * Subtracts two positive integers, returning `a - b` as a `PositiveInt16`.\n *\n * @param a - The first positive integer\n * @param b - The second positive integer\n * @returns The difference of `a` and `b` as a `PositiveInt16`\n */\n sub,\n\n /**\n * Multiplies two positive integers, returning `a * b` as a `PositiveInt16`.\n *\n * @param a - The first positive integer\n * @param b - The second positive integer\n * @returns The product of `a` and `b` as a `PositiveInt16`\n */\n mul,\n\n /**\n * Divides two positive integers using floor division (`⌊a / b⌋`): the result\n * is `a / b` rounded toward negative infinity, as a `PositiveInt16`.\n *\n * @param a - The dividend\n * @param b - The divisor (must be non-zero)\n * @returns The floored quotient as a `PositiveInt16`\n */\n div,\n} as const;\n\nexpectType<\n keyof typeof PositiveInt16,\n keyof TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'positive' | 'range'\n >\n>('=');\n\nexpectType<\n typeof PositiveInt16,\n TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'positive' | 'range'\n >\n>('<=');\n"],"names":[],"mappings":";;AAQA,MAAM,iBAAA,GAAoB,iCAAA;AAE1B,MAAM;AAAA,EACJ,SAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAA;AAAA,EACA,QAAA;AAAA,EACA,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,eAAA,GAAkB;AAYxB,MAAM,eAAA,GAAkB;AASxB,MAAM,aAAA,GAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ3B,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;;;;"}
@@ -1,19 +1,24 @@
1
1
  import { type PositiveInt32 as TtfImported_PositiveInt32 } from 'ts-type-forge';
2
2
  export type PositiveInt32 = TtfImported_PositiveInt32;
3
3
  /**
4
- * Checks if a number is a PositiveInt32 (32-bit positive signed integer in the
5
- * range [1, 2^31)).
4
+ * Type guard that checks if a value is a positive integer in [1, 2^31).
6
5
  *
7
- * @param value The value to check.
8
- * @returns `true` if the value is a PositiveInt32, `false` otherwise.
6
+ * Returns `true` for a positive integer in [1, 2^31) — a value with no
7
+ * fractional component.
8
+ *
9
+ * @param value - The value to check
10
+ * @returns `true` if the value is a positive integer in [1, 2^31), `false` otherwise
9
11
  */
10
12
  export declare const isPositiveInt32: (a: number) => a is TtfImported_PositiveInt32;
11
13
  /**
12
- * Casts a number to a PositiveInt32 type.
14
+ * Casts a `number` to the `PositiveInt32` branded type.
15
+ *
16
+ * Validates that the value is a positive integer in [1, 2^31) and returns it
17
+ * with the `PositiveInt32` brand. Throws a `TypeError` otherwise.
13
18
  *
14
- * @param value The value to cast.
15
- * @returns The value as a PositiveInt32 type.
16
- * @throws {TypeError} If the value is not a positive integer in [1, 2^31).
19
+ * @param value - The value to cast
20
+ * @returns The value as a `PositiveInt32`
21
+ * @throws {TypeError} If the value is not a positive integer in [1, 2^31)
17
22
  */
18
23
  export declare const asPositiveInt32: <N extends number>(x: N) => number & {
19
24
  readonly "!=0": true;
@@ -33,102 +38,101 @@ export declare const asPositiveInt32: <N extends number>(x: N) => number & {
33
38
  'TSTypeForgeInternals--edd2f9ce-7ca5-45b0-9d1a-bd61b9b5d9c3': unknown;
34
39
  }> & N;
35
40
  /**
36
- * Namespace providing type-safe arithmetic operations for 32-bit positive
37
- * integers.
41
+ * Namespace providing type-safe operations for the `PositiveInt32` branded
42
+ * type.
38
43
  *
39
- * All operations automatically clamp results to the valid PositiveInt32 range
40
- * [1, 2147483647]. This ensures that all arithmetic maintains the 32-bit
41
- * positive integer constraint, with results below 1 clamped to MIN_VALUE and
42
- * overflow results clamped to MAX_VALUE.
44
+ * The `PositiveInt32` type represents a positive integer in [1, 2^31). Division
45
+ * (`div`) uses floor division.
43
46
  */
44
47
  export declare const PositiveInt32: {
45
48
  /**
46
- * Type guard to check if a value is a PositiveInt32.
49
+ * Type guard that checks if a value is a positive integer in [1, 2^31).
47
50
  *
48
- * @param value The value to check.
49
- * @returns `true` if the value is a 32-bit positive integer, `false`
50
- * otherwise.
51
+ * @param value - The value to check
52
+ * @returns `true` if the value is a positive integer in [1, 2^31), `false` otherwise
53
+ * @see {@link isPositiveInt32} for usage examples
51
54
  */
52
55
  readonly is: (a: number) => a is TtfImported_PositiveInt32;
53
56
  /**
54
- * The minimum value for a 32-bit positive integer.
55
- *
56
- * @readonly
57
+ * The smallest value representable as `PositiveInt32`.
57
58
  */
58
59
  readonly MIN_VALUE: 1;
59
60
  /**
60
- * The maximum value for a 32-bit positive integer.
61
- *
62
- * @readonly
61
+ * The largest value representable as `PositiveInt32`.
63
62
  */
64
63
  readonly MAX_VALUE: number;
65
64
  /**
66
- * Returns the smaller of two PositiveInt32 values.
65
+ * Returns the smallest of the given positive integers.
67
66
  *
68
- * @param a The first PositiveInt32.
69
- * @param b The second PositiveInt32.
70
- * @returns The minimum value as a PositiveInt32.
67
+ * @param values - The positive integers to compare (at least one required)
68
+ * @returns The smallest value as a `PositiveInt32`
71
69
  */
72
70
  readonly min: (...values: readonly import("ts-type-forge").WithSmallInt<TtfImported_PositiveInt32>[]) => TtfImported_PositiveInt32;
73
71
  /**
74
- * Returns the larger of two PositiveInt32 values.
72
+ * Returns the largest of the given positive integers.
75
73
  *
76
- * @param a The first PositiveInt32.
77
- * @param b The second PositiveInt32.
78
- * @returns The maximum value as a PositiveInt32.
74
+ * @param values - The positive integers to compare (at least one required)
75
+ * @returns The largest value as a `PositiveInt32`
79
76
  */
80
77
  readonly max: (...values: readonly import("ts-type-forge").WithSmallInt<TtfImported_PositiveInt32>[]) => TtfImported_PositiveInt32;
81
78
  /**
82
- * Clamps a number to the PositiveInt32 range.
79
+ * Clamps a `number` into the `PositiveInt32` range, rounding to the nearest
80
+ * integer and constraining the result to `[MIN_VALUE, MAX_VALUE]`.
83
81
  *
84
- * @param value The number to clamp.
85
- * @returns The value clamped to [1, 2147483647] as a PositiveInt32.
82
+ * @param value - The value to clamp
83
+ * @returns The clamped value as a `PositiveInt32`
86
84
  */
87
85
  readonly clamp: (x: number) => TtfImported_PositiveInt32;
88
86
  /**
89
- * Generates a random PositiveInt32 value within the valid range.
87
+ * Generates a random `PositiveInt32` within the given range.
88
+ *
89
+ * The range is inclusive on both ends.
90
90
  *
91
- * @returns A random PositiveInt32 between 1 and 2147483647.
91
+ * @param min - The minimum value (inclusive)
92
+ * @param max - The maximum value (inclusive)
93
+ * @returns A random `PositiveInt32` in `[min, max]`
92
94
  */
93
95
  readonly random: (min?: import("ts-type-forge").WithSmallInt<TtfImported_PositiveInt32> | undefined, max?: import("ts-type-forge").WithSmallInt<TtfImported_PositiveInt32> | undefined) => TtfImported_PositiveInt32;
94
96
  /**
95
- * Raises a PositiveInt32 to the power of another PositiveInt32.
97
+ * Raises `a` to the power `b`, returning `a ** b` as a `PositiveInt32`
98
+ * (floored to an integer).
96
99
  *
97
- * @param a The base PositiveInt32.
98
- * @param b The exponent PositiveInt32.
99
- * @returns `a ** b` clamped to [1, 2147483647] as a PositiveInt32.
100
+ * @param a - The base positive integer
101
+ * @param b - The exponent positive integer
102
+ * @returns `a ** b` as a `PositiveInt32`
100
103
  */
101
104
  readonly pow: (x: import("ts-type-forge").WithSmallInt<TtfImported_PositiveInt32>, y: import("ts-type-forge").WithSmallInt<TtfImported_PositiveInt32>) => TtfImported_PositiveInt32;
102
105
  /**
103
- * Adds two PositiveInt32 values.
106
+ * Adds two positive integers, returning `a + b` as a `PositiveInt32`.
104
107
  *
105
- * @param a The first PositiveInt32.
106
- * @param b The second PositiveInt32.
107
- * @returns `a + b` clamped to [1, 2147483647] as a PositiveInt32.
108
+ * @param a - The first positive integer
109
+ * @param b - The second positive integer
110
+ * @returns The sum of `a` and `b` as a `PositiveInt32`
108
111
  */
109
112
  readonly add: (x: import("ts-type-forge").WithSmallInt<TtfImported_PositiveInt32>, y: import("ts-type-forge").WithSmallInt<TtfImported_PositiveInt32>) => TtfImported_PositiveInt32;
110
113
  /**
111
- * Subtracts one PositiveInt32 from another.
114
+ * Subtracts two positive integers, returning `a - b` as a `PositiveInt32`.
112
115
  *
113
- * @param a The minuend PositiveInt32.
114
- * @param b The subtrahend PositiveInt32.
115
- * @returns `a - b` clamped to [1, 2147483647] as a PositiveInt32 (minimum 1).
116
+ * @param a - The first positive integer
117
+ * @param b - The second positive integer
118
+ * @returns The difference of `a` and `b` as a `PositiveInt32`
116
119
  */
117
120
  readonly sub: (x: import("ts-type-forge").WithSmallInt<TtfImported_PositiveInt32>, y: import("ts-type-forge").WithSmallInt<TtfImported_PositiveInt32>) => TtfImported_PositiveInt32;
118
121
  /**
119
- * Multiplies two PositiveInt32 values.
122
+ * Multiplies two positive integers, returning `a * b` as a `PositiveInt32`.
120
123
  *
121
- * @param a The first PositiveInt32.
122
- * @param b The second PositiveInt32.
123
- * @returns `a * b` clamped to [1, 2147483647] as a PositiveInt32.
124
+ * @param a - The first positive integer
125
+ * @param b - The second positive integer
126
+ * @returns The product of `a` and `b` as a `PositiveInt32`
124
127
  */
125
128
  readonly mul: (x: import("ts-type-forge").WithSmallInt<TtfImported_PositiveInt32>, y: import("ts-type-forge").WithSmallInt<TtfImported_PositiveInt32>) => TtfImported_PositiveInt32;
126
129
  /**
127
- * Divides one PositiveInt32 by another using floor division.
130
+ * Divides two positive integers using floor division (`⌊a / b⌋`): the result
131
+ * is `a / b` rounded toward negative infinity, as a `PositiveInt32`.
128
132
  *
129
- * @param a The dividend PositiveInt32.
130
- * @param b The divisor PositiveInt32.
131
- * @returns `⌊a / b⌋` clamped to [1, 2147483647] as a PositiveInt32.
133
+ * @param a - The dividend
134
+ * @param b - The divisor (must be non-zero)
135
+ * @returns The floored quotient as a `PositiveInt32`
132
136
  */
133
137
  readonly div: (x: import("ts-type-forge").WithSmallInt<TtfImported_PositiveInt32>, y: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | import("ts-type-forge").NormalizeBrandUnion<number & {
134
138
  readonly "!=0": true;
@@ -1 +1 @@
1
- {"version":3,"file":"positive-int32.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/positive-int32.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,IAAI,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAIhF,MAAM,MAAM,aAAa,GAAG,yBAAyB,CAAC;AA+BtD;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,+CAAK,CAAC;AAElC;;;;;;GAMG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;MAAW,CAAC;AAExC;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa;IACxB;;;;;;OAMG;;IAGH;;;;OAIG;;IAGH;;;;OAIG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;OAKG;;IAGH;;;;OAIG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;;;;;;;;;;;;;;;;;CAEK,CAAC"}
1
+ {"version":3,"file":"positive-int32.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/positive-int32.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,IAAI,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAIhF,MAAM,MAAM,aAAa,GAAG,yBAAyB,CAAC;AA+BtD;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,+CAAK,CAAC;AAElC;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;MAAW,CAAC;AAExC;;;;;;GAMG;AACH,eAAO,MAAM,aAAa;IACxB;;;;;;OAMG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;;;;OAKG;;IAGH;;;;;OAKG;;IAGH;;;;;;OAMG;;IAGH;;;;;;;;OAQG;;IAGH;;;;;;;OAOG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;;;OAOG;;;;;;;;;;;;;;;;;;CAEK,CAAC"}