ts-data-forge 11.0.0 → 12.0.0

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