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":"non-zero-uint16.mjs","sources":["../../../src/number/branded-types/non-zero-uint16.mts"],"sourcesContent":["import { type NonZeroUint16 as TtfImported_NonZeroUint16 } from 'ts-type-forge';\nimport { expectType } from '../../expect-type.mjs';\nimport { TsDataForgeInternals } from '../refined-number-utils.mjs';\n\nexport type NonZeroUint16 = TtfImported_NonZeroUint16;\n\ntype ElementType = NonZeroUint16;\n\nconst typeNameInMessage = 'a non-zero integer in [1, 2^16)';\n\nconst {\n MAX_VALUE,\n MIN_VALUE,\n add,\n castType,\n clamp,\n is,\n max: max_,\n min: min_,\n mul,\n pow,\n randomNonZero: random,\n} = TsDataForgeInternals.RefinedNumberUtils.operatorsForInteger<\n ElementType,\n 1,\n number\n>({\n integerOrSafeInteger: 'SafeInteger',\n nonZero: true,\n MIN_VALUE: 1,\n MAX_VALUE: 2 ** 16 - 1,\n typeNameInMessage,\n} as const);\n\n/**\n * Checks if a number is a NonZeroUint16 (16-bit non-zero 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 NonZeroUint16, `false` otherwise.\n */\nexport const isNonZeroUint16 = is;\n\n/**\n * Casts a number to a NonZeroUint16 type.\n *\n * @param value The value to cast.\n * @returns The value as a NonZeroUint16 type.\n * @throws {TypeError} If the value is not a non-zero integer in [1, 2^16).\n */\nexport const asNonZeroUint16 = castType;\n\n/**\n * Namespace providing type-safe arithmetic operations for 16-bit non-zero\n * unsigned integers.\n *\n * All operations automatically clamp results to the valid NonZeroUint16 range\n * [1, 65535]. This ensures that all arithmetic maintains the 16-bit non-zero\n * unsigned integer constraint, with results below 1 clamped to MIN_VALUE and\n * overflow results clamped to MAX_VALUE.\n */\nexport const NonZeroUint16 = {\n /**\n * Type guard to check if a value is a NonZeroUint16.\n *\n * @param value The value to check.\n * @returns `true` if the value is a 16-bit non-zero unsigned integer, `false`\n * otherwise.\n */\n is,\n\n /**\n * The minimum value for a 16-bit non-zero unsigned integer.\n *\n * @readonly\n */\n MIN_VALUE,\n\n /**\n * The maximum value for a 16-bit non-zero unsigned integer.\n *\n * @readonly\n */\n MAX_VALUE,\n\n /**\n * Returns the smaller of two NonZeroUint16 values.\n *\n * @param a The first NonZeroUint16.\n * @param b The second NonZeroUint16.\n * @returns The minimum value as a NonZeroUint16.\n */\n min: min_,\n\n /**\n * Returns the larger of two NonZeroUint16 values.\n *\n * @param a The first NonZeroUint16.\n * @param b The second NonZeroUint16.\n * @returns The maximum value as a NonZeroUint16.\n */\n max: max_,\n\n /**\n * Clamps a number to the NonZeroUint16 range.\n *\n * @param value The number to clamp.\n * @returns The value clamped to [1, 65535] as a NonZeroUint16.\n */\n clamp,\n\n /**\n * Generates a random NonZeroUint16 value within the valid range.\n *\n * @returns A random NonZeroUint16 between 1 and 65535.\n */\n random,\n\n /**\n * Raises a NonZeroUint16 to the power of another NonZeroUint16.\n *\n * @param a The base NonZeroUint16.\n * @param b The exponent NonZeroUint16.\n * @returns `a ** b` clamped to [1, 65535] as a NonZeroUint16.\n */\n pow,\n\n /**\n * Adds two NonZeroUint16 values.\n *\n * @param a The first NonZeroUint16.\n * @param b The second NonZeroUint16.\n * @returns `a + b` clamped to [1, 65535] as a NonZeroUint16.\n */\n add,\n\n /**\n * Multiplies two NonZeroUint16 values.\n *\n * Both `add` and `mul` stay within `[1, 65535]`. For the non-closed\n * operations (`sub`/`div`, whose result may be `0`) use {@link Num.sub} /\n * {@link Num.divInt}.\n *\n * @param a The first NonZeroUint16.\n * @param b The second NonZeroUint16.\n * @returns `a * b` clamped to [1, 65535] as a NonZeroUint16.\n */\n mul,\n} as const;\n\nexpectType<\n keyof typeof NonZeroUint16,\n keyof TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'positive' | 'range',\n 'add' | 'mul'\n >\n>('=');\n\nexpectType<\n typeof NonZeroUint16,\n TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'positive' | 'range',\n 'add' | 'mul'\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,EAAA;AAAA,EACA,GAAA,EAAK,IAAA;AAAA,EACL,GAAA,EAAK,IAAA;AAAA,EACL,GAAA;AAAA,EACA,GAAA;AAAA,EACA,aAAA,EAAe;AACjB,CAAA,GAAI,oBAAA,CAAqB,mBAAmB,mBAAA,CAI1C;AAAA,EACA,oBAAA,EAAsB,aAAA;AAAA,EACtB,OAAA,EAAS,IAAA;AAAA,EACT,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;AAAA;AAAA;AAAA;AAAA,EAaA;AACF;;;;"}
1
+ {"version":3,"file":"non-zero-uint16.mjs","sources":["../../../src/number/branded-types/non-zero-uint16.mts"],"sourcesContent":["import { type NonZeroUint16 as TtfImported_NonZeroUint16 } from 'ts-type-forge';\nimport { expectType } from '../../expect-type.mjs';\nimport { TsDataForgeInternals } from '../refined-number-utils.mjs';\n\nexport type NonZeroUint16 = TtfImported_NonZeroUint16;\n\ntype ElementType = NonZeroUint16;\n\nconst typeNameInMessage = 'a non-zero integer in [1, 2^16)';\n\nconst {\n MAX_VALUE,\n MIN_VALUE,\n add,\n castType,\n clamp,\n is,\n max: max_,\n min: min_,\n mul,\n pow,\n randomNonZero: random,\n} = TsDataForgeInternals.RefinedNumberUtils.operatorsForInteger<\n ElementType,\n 1,\n number\n>({\n integerOrSafeInteger: 'SafeInteger',\n nonZero: true,\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 non-zero integer in [1, 2^16).\n *\n * Returns `true` for a non-zero 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 non-zero integer in [1, 2^16), `false` otherwise\n */\nexport const isNonZeroUint16 = is;\n\n/**\n * Casts a `number` to the `NonZeroUint16` branded type.\n *\n * Validates that the value is a non-zero integer in [1, 2^16) and returns it\n * with the `NonZeroUint16` brand. Throws a `TypeError` otherwise.\n *\n * @param value - The value to cast\n * @returns The value as a `NonZeroUint16`\n * @throws {TypeError} If the value is not a non-zero integer in [1, 2^16)\n */\nexport const asNonZeroUint16 = castType;\n\n/**\n * Namespace providing type-safe operations for the `NonZeroUint16` branded\n * type.\n *\n * The `NonZeroUint16` type represents a non-zero integer in [1, 2^16). Division\n * (`div`) uses floor division.\n */\nexport const NonZeroUint16 = {\n /**\n * Type guard that checks if a value is a non-zero integer in [1, 2^16).\n *\n * @param value - The value to check\n * @returns `true` if the value is a non-zero integer in [1, 2^16), `false` otherwise\n * @see {@link isNonZeroUint16} for usage examples\n */\n is,\n\n /**\n * The smallest value representable as `NonZeroUint16`.\n */\n MIN_VALUE,\n\n /**\n * The largest value representable as `NonZeroUint16`.\n */\n MAX_VALUE,\n\n /**\n * Returns the smallest of the given non-zero integers.\n *\n * @param values - The non-zero integers to compare (at least one required)\n * @returns The smallest value as a `NonZeroUint16`\n */\n min: min_,\n\n /**\n * Returns the largest of the given non-zero integers.\n *\n * @param values - The non-zero integers to compare (at least one required)\n * @returns The largest value as a `NonZeroUint16`\n */\n max: max_,\n\n /**\n * Clamps a `number` into the `NonZeroUint16` 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 `NonZeroUint16`\n */\n clamp,\n\n /**\n * Generates a random `NonZeroUint16` 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 `NonZeroUint16` in `[min, max]`\n */\n random,\n\n /**\n * Raises `a` to the power `b`, returning `a ** b` as a `NonZeroUint16`\n * (floored to an integer).\n *\n * @param a - The base non-zero integer\n * @param b - The exponent non-zero integer\n * @returns `a ** b` as a `NonZeroUint16`\n */\n pow,\n\n /**\n * Adds two non-zero integers, returning `a + b` as a `NonZeroUint16`.\n *\n * @param a - The first non-zero integer\n * @param b - The second non-zero integer\n * @returns The sum of `a` and `b` as a `NonZeroUint16`\n */\n add,\n\n /**\n * Multiplies two non-zero integers, returning `a * b` as a `NonZeroUint16`.\n *\n * @param a - The first non-zero integer\n * @param b - The second non-zero integer\n * @returns The product of `a` and `b` as a `NonZeroUint16`\n */\n mul,\n} as const;\n\nexpectType<\n keyof typeof NonZeroUint16,\n keyof TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'positive' | 'range',\n 'add' | 'mul'\n >\n>('=');\n\nexpectType<\n typeof NonZeroUint16,\n TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'positive' | 'range',\n 'add' | 'mul'\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,EAAA;AAAA,EACA,GAAA,EAAK,IAAA;AAAA,EACL,GAAA,EAAK,IAAA;AAAA,EACL,GAAA;AAAA,EACA,GAAA;AAAA,EACA,aAAA,EAAe;AACjB,CAAA,GAAI,oBAAA,CAAqB,mBAAmB,mBAAA,CAI1C;AAAA,EACA,oBAAA,EAAsB,aAAA;AAAA,EACtB,OAAA,EAAS,IAAA;AAAA,EACT,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;AACF;;;;"}
@@ -1,19 +1,24 @@
1
1
  import { type NonZeroUint32 as TtfImported_NonZeroUint32 } from 'ts-type-forge';
2
2
  export type NonZeroUint32 = TtfImported_NonZeroUint32;
3
3
  /**
4
- * Checks if a number is a NonZeroUint32 (32-bit non-zero unsigned integer in
5
- * the range [1, 2^32)).
4
+ * Type guard that checks if a value is a non-zero integer in [1, 2^32).
6
5
  *
7
- * @param value The value to check.
8
- * @returns `true` if the value is a NonZeroUint32, `false` otherwise.
6
+ * Returns `true` for a non-zero 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 non-zero integer in [1, 2^32), `false` otherwise
9
11
  */
10
12
  export declare const isNonZeroUint32: (a: number) => a is import("ts-type-forge").PositiveUint32;
11
13
  /**
12
- * Casts a number to a NonZeroUint32 type.
14
+ * Casts a `number` to the `NonZeroUint32` branded type.
15
+ *
16
+ * Validates that the value is a non-zero integer in [1, 2^32) and returns it
17
+ * with the `NonZeroUint32` brand. Throws a `TypeError` otherwise.
13
18
  *
14
- * @param value The value to cast.
15
- * @returns The value as a NonZeroUint32 type.
16
- * @throws {TypeError} If the value is not a non-zero integer in [1, 2^32).
19
+ * @param value - The value to cast
20
+ * @returns The value as a `NonZeroUint32`
21
+ * @throws {TypeError} If the value is not a non-zero integer in [1, 2^32)
17
22
  */
18
23
  export declare const asNonZeroUint32: <N extends number>(x: N) => number & {
19
24
  readonly "!=0": true;
@@ -32,90 +37,84 @@ export declare const asNonZeroUint32: <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 non-zero
36
- * unsigned integers.
40
+ * Namespace providing type-safe operations for the `NonZeroUint32` branded
41
+ * type.
37
42
  *
38
- * All operations automatically clamp results to the valid NonZeroUint32 range
39
- * [1, 4294967295]. This ensures that all arithmetic maintains the 32-bit
40
- * non-zero unsigned integer constraint, with results below 1 clamped to
41
- * MIN_VALUE and overflow results clamped to MAX_VALUE.
43
+ * The `NonZeroUint32` type represents a non-zero integer in [1, 2^32). Division
44
+ * (`div`) uses floor division.
42
45
  */
43
46
  export declare const NonZeroUint32: {
44
47
  /**
45
- * Type guard to check if a value is a NonZeroUint32.
48
+ * Type guard that checks if a value is a non-zero integer in [1, 2^32).
46
49
  *
47
- * @param value The value to check.
48
- * @returns `true` if the value is a 32-bit non-zero unsigned integer, `false`
49
- * otherwise.
50
+ * @param value - The value to check
51
+ * @returns `true` if the value is a non-zero integer in [1, 2^32), `false` otherwise
52
+ * @see {@link isNonZeroUint32} for usage examples
50
53
  */
51
54
  readonly is: (a: number) => a is import("ts-type-forge").PositiveUint32;
52
55
  /**
53
- * The minimum value for a 32-bit non-zero unsigned integer.
54
- *
55
- * @readonly
56
+ * The smallest value representable as `NonZeroUint32`.
56
57
  */
57
58
  readonly MIN_VALUE: 1;
58
59
  /**
59
- * The maximum value for a 32-bit non-zero unsigned integer.
60
- *
61
- * @readonly
60
+ * The largest value representable as `NonZeroUint32`.
62
61
  */
63
62
  readonly MAX_VALUE: number;
64
63
  /**
65
- * Returns the smaller of two NonZeroUint32 values.
64
+ * Returns the smallest of the given non-zero integers.
66
65
  *
67
- * @param a The first NonZeroUint32.
68
- * @param b The second NonZeroUint32.
69
- * @returns The minimum value as a NonZeroUint32.
66
+ * @param values - The non-zero integers to compare (at least one required)
67
+ * @returns The smallest value as a `NonZeroUint32`
70
68
  */
71
69
  readonly min: (...values: readonly import("ts-type-forge").WithSmallInt<import("ts-type-forge").PositiveUint32>[]) => import("ts-type-forge").PositiveUint32;
72
70
  /**
73
- * Returns the larger of two NonZeroUint32 values.
71
+ * Returns the largest of the given non-zero integers.
74
72
  *
75
- * @param a The first NonZeroUint32.
76
- * @param b The second NonZeroUint32.
77
- * @returns The maximum value as a NonZeroUint32.
73
+ * @param values - The non-zero integers to compare (at least one required)
74
+ * @returns The largest value as a `NonZeroUint32`
78
75
  */
79
76
  readonly max: (...values: readonly import("ts-type-forge").WithSmallInt<import("ts-type-forge").PositiveUint32>[]) => import("ts-type-forge").PositiveUint32;
80
77
  /**
81
- * Clamps a number to the NonZeroUint32 range.
78
+ * Clamps a `number` into the `NonZeroUint32` range, rounding to the nearest
79
+ * integer and constraining the result to `[MIN_VALUE, MAX_VALUE]`.
82
80
  *
83
- * @param value The number to clamp.
84
- * @returns The value clamped to [1, 4294967295] as a NonZeroUint32.
81
+ * @param value - The value to clamp
82
+ * @returns The clamped value as a `NonZeroUint32`
85
83
  */
86
84
  readonly clamp: (x: number) => import("ts-type-forge").PositiveUint32;
87
85
  /**
88
- * Generates a random NonZeroUint32 value within the valid range.
86
+ * Generates a random `NonZeroUint32` within the given range.
87
+ *
88
+ * The range is inclusive on both ends.
89
89
  *
90
- * @returns A random NonZeroUint32 between 1 and 4294967295.
90
+ * @param min - The minimum value (inclusive)
91
+ * @param max - The maximum value (inclusive)
92
+ * @returns A random `NonZeroUint32` in `[min, max]`
91
93
  */
92
94
  readonly random: (min?: import("ts-type-forge").WithSmallInt<import("ts-type-forge").PositiveUint32> | undefined, max?: import("ts-type-forge").WithSmallInt<import("ts-type-forge").PositiveUint32> | undefined) => import("ts-type-forge").PositiveUint32;
93
95
  /**
94
- * Raises a NonZeroUint32 to the power of another NonZeroUint32.
96
+ * Raises `a` to the power `b`, returning `a ** b` as a `NonZeroUint32`
97
+ * (floored to an integer).
95
98
  *
96
- * @param a The base NonZeroUint32.
97
- * @param b The exponent NonZeroUint32.
98
- * @returns `a ** b` clamped to [1, 4294967295] as a NonZeroUint32.
99
+ * @param a - The base non-zero integer
100
+ * @param b - The exponent non-zero integer
101
+ * @returns `a ** b` as a `NonZeroUint32`
99
102
  */
100
103
  readonly pow: (x: import("ts-type-forge").WithSmallInt<import("ts-type-forge").PositiveUint32>, y: import("ts-type-forge").WithSmallInt<import("ts-type-forge").PositiveUint32>) => import("ts-type-forge").PositiveUint32;
101
104
  /**
102
- * Adds two NonZeroUint32 values.
105
+ * Adds two non-zero integers, returning `a + b` as a `NonZeroUint32`.
103
106
  *
104
- * @param a The first NonZeroUint32.
105
- * @param b The second NonZeroUint32.
106
- * @returns `a + b` clamped to [1, 4294967295] as a NonZeroUint32.
107
+ * @param a - The first non-zero integer
108
+ * @param b - The second non-zero integer
109
+ * @returns The sum of `a` and `b` as a `NonZeroUint32`
107
110
  */
108
111
  readonly add: (x: import("ts-type-forge").WithSmallInt<import("ts-type-forge").PositiveUint32>, y: import("ts-type-forge").WithSmallInt<import("ts-type-forge").PositiveUint32>) => import("ts-type-forge").PositiveUint32;
109
112
  /**
110
- * Multiplies two NonZeroUint32 values.
111
- *
112
- * Both `add` and `mul` stay within `[1, 4294967295]`. For the non-closed
113
- * operations (`sub`/`div`, whose result may be `0`) use {@link Num.sub} /
114
- * {@link Num.divInt}.
113
+ * Multiplies two non-zero integers, returning `a * b` as a `NonZeroUint32`.
115
114
  *
116
- * @param a The first NonZeroUint32.
117
- * @param b The second NonZeroUint32.
118
- * @returns `a * b` clamped to [1, 4294967295] as a NonZeroUint32.
115
+ * @param a - The first non-zero integer
116
+ * @param b - The second non-zero integer
117
+ * @returns The product of `a` and `b` as a `NonZeroUint32`
119
118
  */
120
119
  readonly mul: (x: import("ts-type-forge").WithSmallInt<import("ts-type-forge").PositiveUint32>, y: import("ts-type-forge").WithSmallInt<import("ts-type-forge").PositiveUint32>) => import("ts-type-forge").PositiveUint32;
121
120
  };
@@ -1 +1 @@
1
- {"version":3,"file":"non-zero-uint32.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/non-zero-uint32.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,IAAI,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAIhF,MAAM,MAAM,aAAa,GAAG,yBAAyB,CAAC;AA8BtD;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,4DAAK,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;;;;;;;;;;OAUG;;CAEK,CAAC"}
1
+ {"version":3,"file":"non-zero-uint32.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/non-zero-uint32.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,IAAI,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAIhF,MAAM,MAAM,aAAa,GAAG,yBAAyB,CAAC;AA8BtD;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,4DAAK,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;;CAEK,CAAC"}
@@ -24,80 +24,76 @@ const isNonZeroUint32 = is;
24
24
  const asNonZeroUint32 = castType;
25
25
  const NonZeroUint32 = {
26
26
  /**
27
- * Type guard to check if a value is a NonZeroUint32.
27
+ * Type guard that checks if a value is a non-zero integer in [1, 2^32).
28
28
  *
29
- * @param value The value to check.
30
- * @returns `true` if the value is a 32-bit non-zero unsigned integer, `false`
31
- * otherwise.
29
+ * @param value - The value to check
30
+ * @returns `true` if the value is a non-zero integer in [1, 2^32), `false` otherwise
31
+ * @see {@link isNonZeroUint32} for usage examples
32
32
  */
33
33
  is,
34
34
  /**
35
- * The minimum value for a 32-bit non-zero unsigned integer.
36
- *
37
- * @readonly
35
+ * The smallest value representable as `NonZeroUint32`.
38
36
  */
39
37
  MIN_VALUE,
40
38
  /**
41
- * The maximum value for a 32-bit non-zero unsigned integer.
42
- *
43
- * @readonly
39
+ * The largest value representable as `NonZeroUint32`.
44
40
  */
45
41
  MAX_VALUE,
46
42
  /**
47
- * Returns the smaller of two NonZeroUint32 values.
43
+ * Returns the smallest of the given non-zero integers.
48
44
  *
49
- * @param a The first NonZeroUint32.
50
- * @param b The second NonZeroUint32.
51
- * @returns The minimum value as a NonZeroUint32.
45
+ * @param values - The non-zero integers to compare (at least one required)
46
+ * @returns The smallest value as a `NonZeroUint32`
52
47
  */
53
48
  min: min_,
54
49
  /**
55
- * Returns the larger of two NonZeroUint32 values.
50
+ * Returns the largest of the given non-zero integers.
56
51
  *
57
- * @param a The first NonZeroUint32.
58
- * @param b The second NonZeroUint32.
59
- * @returns The maximum value as a NonZeroUint32.
52
+ * @param values - The non-zero integers to compare (at least one required)
53
+ * @returns The largest value as a `NonZeroUint32`
60
54
  */
61
55
  max: max_,
62
56
  /**
63
- * Clamps a number to the NonZeroUint32 range.
57
+ * Clamps a `number` into the `NonZeroUint32` range, rounding to the nearest
58
+ * integer and constraining the result to `[MIN_VALUE, MAX_VALUE]`.
64
59
  *
65
- * @param value The number to clamp.
66
- * @returns The value clamped to [1, 4294967295] as a NonZeroUint32.
60
+ * @param value - The value to clamp
61
+ * @returns The clamped value as a `NonZeroUint32`
67
62
  */
68
63
  clamp,
69
64
  /**
70
- * Generates a random NonZeroUint32 value within the valid range.
65
+ * Generates a random `NonZeroUint32` within the given range.
71
66
  *
72
- * @returns A random NonZeroUint32 between 1 and 4294967295.
67
+ * The range is inclusive on both ends.
68
+ *
69
+ * @param min - The minimum value (inclusive)
70
+ * @param max - The maximum value (inclusive)
71
+ * @returns A random `NonZeroUint32` in `[min, max]`
73
72
  */
74
73
  random,
75
74
  /**
76
- * Raises a NonZeroUint32 to the power of another NonZeroUint32.
75
+ * Raises `a` to the power `b`, returning `a ** b` as a `NonZeroUint32`
76
+ * (floored to an integer).
77
77
  *
78
- * @param a The base NonZeroUint32.
79
- * @param b The exponent NonZeroUint32.
80
- * @returns `a ** b` clamped to [1, 4294967295] as a NonZeroUint32.
78
+ * @param a - The base non-zero integer
79
+ * @param b - The exponent non-zero integer
80
+ * @returns `a ** b` as a `NonZeroUint32`
81
81
  */
82
82
  pow,
83
83
  /**
84
- * Adds two NonZeroUint32 values.
84
+ * Adds two non-zero integers, returning `a + b` as a `NonZeroUint32`.
85
85
  *
86
- * @param a The first NonZeroUint32.
87
- * @param b The second NonZeroUint32.
88
- * @returns `a + b` clamped to [1, 4294967295] as a NonZeroUint32.
86
+ * @param a - The first non-zero integer
87
+ * @param b - The second non-zero integer
88
+ * @returns The sum of `a` and `b` as a `NonZeroUint32`
89
89
  */
90
90
  add,
91
91
  /**
92
- * Multiplies two NonZeroUint32 values.
93
- *
94
- * Both `add` and `mul` stay within `[1, 4294967295]`. For the non-closed
95
- * operations (`sub`/`div`, whose result may be `0`) use {@link Num.sub} /
96
- * {@link Num.divInt}.
92
+ * Multiplies two non-zero integers, returning `a * b` as a `NonZeroUint32`.
97
93
  *
98
- * @param a The first NonZeroUint32.
99
- * @param b The second NonZeroUint32.
100
- * @returns `a * b` clamped to [1, 4294967295] as a NonZeroUint32.
94
+ * @param a - The first non-zero integer
95
+ * @param b - The second non-zero integer
96
+ * @returns The product of `a` and `b` as a `NonZeroUint32`
101
97
  */
102
98
  mul
103
99
  };
@@ -1 +1 @@
1
- {"version":3,"file":"non-zero-uint32.mjs","sources":["../../../src/number/branded-types/non-zero-uint32.mts"],"sourcesContent":["import { type NonZeroUint32 as TtfImported_NonZeroUint32 } from 'ts-type-forge';\nimport { expectType } from '../../expect-type.mjs';\nimport { TsDataForgeInternals } from '../refined-number-utils.mjs';\n\nexport type NonZeroUint32 = TtfImported_NonZeroUint32;\n\ntype ElementType = NonZeroUint32;\n\nconst typeNameInMessage = 'a non-zero integer in [1, 2^32)';\n\nconst {\n MAX_VALUE,\n MIN_VALUE,\n add,\n castType,\n clamp,\n is,\n max: max_,\n min: min_,\n mul,\n pow,\n randomNonZero: random,\n} = TsDataForgeInternals.RefinedNumberUtils.operatorsForInteger<\n ElementType,\n 1,\n number\n>({\n integerOrSafeInteger: 'SafeInteger',\n nonZero: true,\n MIN_VALUE: 1,\n MAX_VALUE: 2 ** 32 - 1,\n typeNameInMessage,\n} as const);\n\n/**\n * Checks if a number is a NonZeroUint32 (32-bit non-zero 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 NonZeroUint32, `false` otherwise.\n */\nexport const isNonZeroUint32 = is;\n\n/**\n * Casts a number to a NonZeroUint32 type.\n *\n * @param value The value to cast.\n * @returns The value as a NonZeroUint32 type.\n * @throws {TypeError} If the value is not a non-zero integer in [1, 2^32).\n */\nexport const asNonZeroUint32 = castType;\n\n/**\n * Namespace providing type-safe arithmetic operations for 32-bit non-zero\n * unsigned integers.\n *\n * All operations automatically clamp results to the valid NonZeroUint32 range\n * [1, 4294967295]. This ensures that all arithmetic maintains the 32-bit\n * non-zero unsigned integer constraint, with results below 1 clamped to\n * MIN_VALUE and overflow results clamped to MAX_VALUE.\n */\nexport const NonZeroUint32 = {\n /**\n * Type guard to check if a value is a NonZeroUint32.\n *\n * @param value The value to check.\n * @returns `true` if the value is a 32-bit non-zero unsigned integer, `false`\n * otherwise.\n */\n is,\n\n /**\n * The minimum value for a 32-bit non-zero unsigned integer.\n *\n * @readonly\n */\n MIN_VALUE,\n\n /**\n * The maximum value for a 32-bit non-zero unsigned integer.\n *\n * @readonly\n */\n MAX_VALUE,\n\n /**\n * Returns the smaller of two NonZeroUint32 values.\n *\n * @param a The first NonZeroUint32.\n * @param b The second NonZeroUint32.\n * @returns The minimum value as a NonZeroUint32.\n */\n min: min_,\n\n /**\n * Returns the larger of two NonZeroUint32 values.\n *\n * @param a The first NonZeroUint32.\n * @param b The second NonZeroUint32.\n * @returns The maximum value as a NonZeroUint32.\n */\n max: max_,\n\n /**\n * Clamps a number to the NonZeroUint32 range.\n *\n * @param value The number to clamp.\n * @returns The value clamped to [1, 4294967295] as a NonZeroUint32.\n */\n clamp,\n\n /**\n * Generates a random NonZeroUint32 value within the valid range.\n *\n * @returns A random NonZeroUint32 between 1 and 4294967295.\n */\n random,\n\n /**\n * Raises a NonZeroUint32 to the power of another NonZeroUint32.\n *\n * @param a The base NonZeroUint32.\n * @param b The exponent NonZeroUint32.\n * @returns `a ** b` clamped to [1, 4294967295] as a NonZeroUint32.\n */\n pow,\n\n /**\n * Adds two NonZeroUint32 values.\n *\n * @param a The first NonZeroUint32.\n * @param b The second NonZeroUint32.\n * @returns `a + b` clamped to [1, 4294967295] as a NonZeroUint32.\n */\n add,\n\n /**\n * Multiplies two NonZeroUint32 values.\n *\n * Both `add` and `mul` stay within `[1, 4294967295]`. For the non-closed\n * operations (`sub`/`div`, whose result may be `0`) use {@link Num.sub} /\n * {@link Num.divInt}.\n *\n * @param a The first NonZeroUint32.\n * @param b The second NonZeroUint32.\n * @returns `a * b` clamped to [1, 4294967295] as a NonZeroUint32.\n */\n mul,\n} as const;\n\nexpectType<\n keyof typeof NonZeroUint32,\n keyof TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'positive' | 'range',\n 'add' | 'mul'\n >\n>('=');\n\nexpectType<\n typeof NonZeroUint32,\n TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'positive' | 'range',\n 'add' | 'mul'\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,EAAA;AAAA,EACA,GAAA,EAAK,IAAA;AAAA,EACL,GAAA,EAAK,IAAA;AAAA,EACL,GAAA;AAAA,EACA,GAAA;AAAA,EACA,aAAA,EAAe;AACjB,CAAA,GAAI,oBAAA,CAAqB,mBAAmB,mBAAA,CAI1C;AAAA,EACA,oBAAA,EAAsB,aAAA;AAAA,EACtB,OAAA,EAAS,IAAA;AAAA,EACT,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;AAAA;AAAA;AAAA;AAAA,EAaA;AACF;;;;"}
1
+ {"version":3,"file":"non-zero-uint32.mjs","sources":["../../../src/number/branded-types/non-zero-uint32.mts"],"sourcesContent":["import { type NonZeroUint32 as TtfImported_NonZeroUint32 } from 'ts-type-forge';\nimport { expectType } from '../../expect-type.mjs';\nimport { TsDataForgeInternals } from '../refined-number-utils.mjs';\n\nexport type NonZeroUint32 = TtfImported_NonZeroUint32;\n\ntype ElementType = NonZeroUint32;\n\nconst typeNameInMessage = 'a non-zero integer in [1, 2^32)';\n\nconst {\n MAX_VALUE,\n MIN_VALUE,\n add,\n castType,\n clamp,\n is,\n max: max_,\n min: min_,\n mul,\n pow,\n randomNonZero: random,\n} = TsDataForgeInternals.RefinedNumberUtils.operatorsForInteger<\n ElementType,\n 1,\n number\n>({\n integerOrSafeInteger: 'SafeInteger',\n nonZero: true,\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 non-zero integer in [1, 2^32).\n *\n * Returns `true` for a non-zero 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 non-zero integer in [1, 2^32), `false` otherwise\n */\nexport const isNonZeroUint32 = is;\n\n/**\n * Casts a `number` to the `NonZeroUint32` branded type.\n *\n * Validates that the value is a non-zero integer in [1, 2^32) and returns it\n * with the `NonZeroUint32` brand. Throws a `TypeError` otherwise.\n *\n * @param value - The value to cast\n * @returns The value as a `NonZeroUint32`\n * @throws {TypeError} If the value is not a non-zero integer in [1, 2^32)\n */\nexport const asNonZeroUint32 = castType;\n\n/**\n * Namespace providing type-safe operations for the `NonZeroUint32` branded\n * type.\n *\n * The `NonZeroUint32` type represents a non-zero integer in [1, 2^32). Division\n * (`div`) uses floor division.\n */\nexport const NonZeroUint32 = {\n /**\n * Type guard that checks if a value is a non-zero integer in [1, 2^32).\n *\n * @param value - The value to check\n * @returns `true` if the value is a non-zero integer in [1, 2^32), `false` otherwise\n * @see {@link isNonZeroUint32} for usage examples\n */\n is,\n\n /**\n * The smallest value representable as `NonZeroUint32`.\n */\n MIN_VALUE,\n\n /**\n * The largest value representable as `NonZeroUint32`.\n */\n MAX_VALUE,\n\n /**\n * Returns the smallest of the given non-zero integers.\n *\n * @param values - The non-zero integers to compare (at least one required)\n * @returns The smallest value as a `NonZeroUint32`\n */\n min: min_,\n\n /**\n * Returns the largest of the given non-zero integers.\n *\n * @param values - The non-zero integers to compare (at least one required)\n * @returns The largest value as a `NonZeroUint32`\n */\n max: max_,\n\n /**\n * Clamps a `number` into the `NonZeroUint32` 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 `NonZeroUint32`\n */\n clamp,\n\n /**\n * Generates a random `NonZeroUint32` 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 `NonZeroUint32` in `[min, max]`\n */\n random,\n\n /**\n * Raises `a` to the power `b`, returning `a ** b` as a `NonZeroUint32`\n * (floored to an integer).\n *\n * @param a - The base non-zero integer\n * @param b - The exponent non-zero integer\n * @returns `a ** b` as a `NonZeroUint32`\n */\n pow,\n\n /**\n * Adds two non-zero integers, returning `a + b` as a `NonZeroUint32`.\n *\n * @param a - The first non-zero integer\n * @param b - The second non-zero integer\n * @returns The sum of `a` and `b` as a `NonZeroUint32`\n */\n add,\n\n /**\n * Multiplies two non-zero integers, returning `a * b` as a `NonZeroUint32`.\n *\n * @param a - The first non-zero integer\n * @param b - The second non-zero integer\n * @returns The product of `a` and `b` as a `NonZeroUint32`\n */\n mul,\n} as const;\n\nexpectType<\n keyof typeof NonZeroUint32,\n keyof TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'positive' | 'range',\n 'add' | 'mul'\n >\n>('=');\n\nexpectType<\n typeof NonZeroUint32,\n TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'positive' | 'range',\n 'add' | 'mul'\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,EAAA;AAAA,EACA,GAAA,EAAK,IAAA;AAAA,EACL,GAAA,EAAK,IAAA;AAAA,EACL,GAAA;AAAA,EACA,GAAA;AAAA,EACA,aAAA,EAAe;AACjB,CAAA,GAAI,oBAAA,CAAqB,mBAAmB,mBAAA,CAI1C;AAAA,EACA,oBAAA,EAAsB,aAAA;AAAA,EACtB,OAAA,EAAS,IAAA;AAAA,EACT,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;AACF;;;;"}
@@ -3,18 +3,24 @@ import { TsDataForgeInternals } from '../refined-number-utils.mjs';
3
3
  export type PositiveFiniteNumber = TtfImported_PositiveFiniteNumber;
4
4
  type ElementType = PositiveFiniteNumber;
5
5
  /**
6
- * Checks if a number is a PositiveFiniteNumber (a finite number > 0).
6
+ * Type guard that checks if a value is a positive finite number.
7
7
  *
8
- * @param value The value to check.
9
- * @returns `true` if the value is a PositiveFiniteNumber, `false` otherwise.
8
+ * Returns `true` only for a finite value — never `NaN`, `Infinity`, or
9
+ * `-Infinity`.
10
+ *
11
+ * @param value - The value to check
12
+ * @returns `true` if the value is a positive finite number, `false` otherwise
10
13
  */
11
14
  export declare const isPositiveFiniteNumber: (a: number) => a is TtfImported_PositiveFiniteNumber;
12
15
  /**
13
- * Casts a number to a PositiveFiniteNumber type.
16
+ * Casts a `number` to the `PositiveFiniteNumber` branded type.
17
+ *
18
+ * Validates that the value is a positive finite number and returns it with the
19
+ * `PositiveFiniteNumber` brand. Throws a `TypeError` otherwise.
14
20
  *
15
- * @param value The value to cast.
16
- * @returns The value as a PositiveFiniteNumber type.
17
- * @throws {TypeError} If the value is not a positive finite number.
21
+ * @param value - The value to cast
22
+ * @returns The value as a `PositiveFiniteNumber`
23
+ * @throws {TypeError} If the value is not a positive finite number
18
24
  */
19
25
  export declare const asPositiveFiniteNumber: <N extends number>(x: N) => number & {
20
26
  readonly "!=0": true;
@@ -30,118 +36,123 @@ export declare const asPositiveFiniteNumber: <N extends number>(x: N) => number
30
36
  'TSTypeForgeInternals--edd2f9ce-7ca5-45b0-9d1a-bd61b9b5d9c3': unknown;
31
37
  }> & N;
32
38
  /**
33
- * Namespace providing type-safe arithmetic operations for positive finite
34
- * numbers.
39
+ * Namespace providing type-safe operations for the `PositiveFiniteNumber`
40
+ * branded type.
35
41
  *
36
- * All operations maintain the positive constraint by clamping non-positive
37
- * results to MIN_VALUE, while ensuring results remain finite (excluding NaN and
38
- * Infinity). This type is useful for representing quantities that must always
39
- * be positive, such as probabilities, magnitudes, and physical measurements.
42
+ * The `PositiveFiniteNumber` type represents a positive finite number.
40
43
  */
41
44
  export declare const PositiveFiniteNumber: {
42
45
  /**
43
- * Type guard to check if a value is a PositiveFiniteNumber.
46
+ * Type guard that checks if a value is a positive finite number.
44
47
  *
45
- * @param value The value to check.
46
- * @returns `true` if the value is a positive finite number, `false`
47
- * otherwise.
48
+ * @param value - The value to check
49
+ * @returns `true` if the value is a positive finite number, `false` otherwise
50
+ * @see {@link isPositiveFiniteNumber} for usage examples
48
51
  */
49
52
  readonly is: (a: number) => a is TtfImported_PositiveFiniteNumber;
50
53
  /**
51
- * The minimum value for a positive finite number.
52
- *
53
- * @readonly
54
+ * The smallest value representable as `PositiveFiniteNumber`.
54
55
  */
55
56
  readonly MIN_VALUE: number;
56
57
  /**
57
- * Returns the smaller of two PositiveFiniteNumber values.
58
+ * Returns the smallest of the given positive finite numbers.
58
59
  *
59
- * @param a The first PositiveFiniteNumber.
60
- * @param b The second PositiveFiniteNumber.
61
- * @returns The minimum value as a PositiveFiniteNumber.
60
+ * @param values - The positive finite numbers to compare (at least one required)
61
+ * @returns The smallest value as a `PositiveFiniteNumber`
62
62
  */
63
63
  readonly min: (...values: readonly TtfImported_PositiveFiniteNumber[]) => TtfImported_PositiveFiniteNumber;
64
64
  /**
65
- * Returns the larger of two PositiveFiniteNumber values.
65
+ * Returns the largest of the given positive finite numbers.
66
66
  *
67
- * @param a The first PositiveFiniteNumber.
68
- * @param b The second PositiveFiniteNumber.
69
- * @returns The maximum value as a PositiveFiniteNumber.
67
+ * @param values - The positive finite numbers to compare (at least one required)
68
+ * @returns The largest value as a `PositiveFiniteNumber`
70
69
  */
71
70
  readonly max: (...values: readonly TtfImported_PositiveFiniteNumber[]) => TtfImported_PositiveFiniteNumber;
72
71
  /**
73
- * Clamps a number to the positive finite range.
72
+ * Clamps a `number` into the `PositiveFiniteNumber` range `[MIN_VALUE,
73
+ * MAX_VALUE]`.
74
74
  *
75
- * @param value The number to clamp.
76
- * @returns The value clamped to (0, +∞) as a PositiveFiniteNumber.
75
+ * @param value - The value to clamp
76
+ * @returns The clamped value as a `PositiveFiniteNumber`
77
77
  */
78
78
  readonly clamp: (x: number) => TtfImported_PositiveFiniteNumber;
79
79
  /**
80
- * Rounds down a PositiveFiniteNumber to the nearest integer.
80
+ * Returns the greatest integer less than or equal to a positive finite
81
+ * number.
81
82
  *
82
- * @param x The PositiveFiniteNumber to round down.
83
- * @returns The floor value as a Uint (can be 0).
83
+ * @param a - The positive finite number value
84
+ * @returns The floored value as an integer
84
85
  */
85
86
  readonly floor: (x: ElementType) => TsDataForgeInternals.RefinedNumberUtils.RemoveNonZeroBrandKey<TsDataForgeInternals.RefinedNumberUtils.ToInt<ElementType>>;
86
87
  /**
87
- * Rounds up a PositiveFiniteNumber to the nearest integer.
88
+ * Returns the smallest integer greater than or equal to a positive finite
89
+ * number.
88
90
  *
89
- * @param x The PositiveFiniteNumber to round up.
90
- * @returns The ceiling value as a PositiveInt (always >= 1).
91
+ * @param a - The positive finite number value
92
+ * @returns The ceiled value as an integer
91
93
  */
92
94
  readonly ceil: (x: ElementType) => TsDataForgeInternals.RefinedNumberUtils.ToInt<ElementType>;
93
95
  /**
94
- * Rounds a PositiveFiniteNumber to the nearest integer.
96
+ * Returns the value of a positive finite number rounded to the nearest
97
+ * integer.
95
98
  *
96
- * @param x The PositiveFiniteNumber to round.
97
- * @returns The rounded value as a Uint (can be 0 if x < 0.5).
99
+ * @param a - The positive finite number value
100
+ * @returns The rounded value as an integer
98
101
  */
99
102
  readonly round: (x: ElementType) => TsDataForgeInternals.RefinedNumberUtils.RemoveNonZeroBrandKey<TsDataForgeInternals.RefinedNumberUtils.ToInt<ElementType>>;
100
103
  /**
101
- * Generates a random PositiveFiniteNumber value.
104
+ * Generates a random `PositiveFiniteNumber` within the given range.
105
+ *
106
+ * The range is inclusive on both ends.
102
107
  *
103
- * @returns A random positive finite number.
108
+ * @param min - The minimum value (inclusive)
109
+ * @param max - The maximum value (inclusive)
110
+ * @returns A random `PositiveFiniteNumber` in `[min, max]`
104
111
  */
105
112
  readonly random: (min?: TtfImported_PositiveFiniteNumber | undefined, max?: TtfImported_PositiveFiniteNumber | undefined) => TtfImported_PositiveFiniteNumber;
106
113
  /**
107
- * Raises a PositiveFiniteNumber to the power of another PositiveFiniteNumber.
114
+ * Raises `a` to the power `b`, returning `a ** b` as a
115
+ * `PositiveFiniteNumber`.
108
116
  *
109
- * @param a The base PositiveFiniteNumber.
110
- * @param b The exponent PositiveFiniteNumber.
111
- * @returns `a ** b` clamped to (0, +∞) as a PositiveFiniteNumber.
117
+ * @param a - The base positive finite number
118
+ * @param b - The exponent positive finite number
119
+ * @returns `a ** b` as a `PositiveFiniteNumber`
112
120
  */
113
121
  readonly pow: (x: TtfImported_PositiveFiniteNumber, y: TtfImported_PositiveFiniteNumber) => TtfImported_PositiveFiniteNumber;
114
122
  /**
115
- * Adds two PositiveFiniteNumber values.
123
+ * Adds two positive finite numbers, returning `a + b` as a
124
+ * `PositiveFiniteNumber`.
116
125
  *
117
- * @param a The first PositiveFiniteNumber.
118
- * @param b The second PositiveFiniteNumber.
119
- * @returns `a + b` clamped to (0, +∞) as a PositiveFiniteNumber.
126
+ * @param a - The first positive finite number
127
+ * @param b - The second positive finite number
128
+ * @returns The sum of `a` and `b` as a `PositiveFiniteNumber`
120
129
  */
121
130
  readonly add: (x: TtfImported_PositiveFiniteNumber, y: TtfImported_PositiveFiniteNumber) => TtfImported_PositiveFiniteNumber;
122
131
  /**
123
- * Subtracts one PositiveFiniteNumber from another.
132
+ * Subtracts two positive finite numbers, returning `a - b` as a
133
+ * `PositiveFiniteNumber`.
124
134
  *
125
- * @param a The minuend PositiveFiniteNumber.
126
- * @param b The subtrahend PositiveFiniteNumber.
127
- * @returns `a - b` clamped to (0, +∞) as a PositiveFiniteNumber (minimum
128
- * MIN_VALUE).
135
+ * @param a - The first positive finite number
136
+ * @param b - The second positive finite number
137
+ * @returns The difference of `a` and `b` as a `PositiveFiniteNumber`
129
138
  */
130
139
  readonly sub: (x: TtfImported_PositiveFiniteNumber, y: TtfImported_PositiveFiniteNumber) => TtfImported_PositiveFiniteNumber;
131
140
  /**
132
- * Multiplies two PositiveFiniteNumber values.
141
+ * Multiplies two positive finite numbers, returning `a * b` as a
142
+ * `PositiveFiniteNumber`.
133
143
  *
134
- * @param a The first PositiveFiniteNumber.
135
- * @param b The second PositiveFiniteNumber.
136
- * @returns `a * b` clamped to (0, +∞) as a PositiveFiniteNumber.
144
+ * @param a - The first positive finite number
145
+ * @param b - The second positive finite number
146
+ * @returns The product of `a` and `b` as a `PositiveFiniteNumber`
137
147
  */
138
148
  readonly mul: (x: TtfImported_PositiveFiniteNumber, y: TtfImported_PositiveFiniteNumber) => TtfImported_PositiveFiniteNumber;
139
149
  /**
140
- * Divides one PositiveFiniteNumber by another.
150
+ * Divides two positive finite numbers, returning `a / b` as a
151
+ * `PositiveFiniteNumber`.
141
152
  *
142
- * @param a The dividend PositiveFiniteNumber.
143
- * @param b The divisor PositiveFiniteNumber.
144
- * @returns `a / b` clamped to (0, +∞) as a PositiveFiniteNumber.
153
+ * @param a - The dividend
154
+ * @param b - The divisor (must be non-zero)
155
+ * @returns `a / b` as a `PositiveFiniteNumber`
145
156
  */
146
157
  readonly div: (x: TtfImported_PositiveFiniteNumber, y: number & {
147
158
  readonly "!=0": true;
@@ -1 +1 @@
1
- {"version":3,"file":"positive-finite-number.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/positive-finite-number.mts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,oBAAoB,IAAI,gCAAgC,EAE9D,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,MAAM,MAAM,oBAAoB,GAAG,gCAAgC,CAAC;AAEpE,KAAK,WAAW,GAAG,oBAAoB,CAAC;AAqExC;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,sDAAK,CAAC;AAEzC;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;MAAW,CAAC;AAE/C;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB;IAC/B;;;;;;OAMG;;IAGH;;;;OAIG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;OAKG;;IAGH;;;;;OAKG;wBAnHA,WAAW,KACb,oBAAoB,CAAC,kBAAkB,CAAC,qBAAqB,CAC9D,oBAAoB,CAAC,kBAAkB,CAAC,KAAK,CAAC,WAAW,CAAC,CAC3D;IAmHC;;;;;OAKG;uBA/GA,WAAW,KACb,oBAAoB,CAAC,kBAAkB,CAAC,KAAK,CAAC,WAAW,CAAC;IAiH3D;;;;;OAKG;wBAjHA,WAAW,KACb,oBAAoB,CAAC,kBAAkB,CAAC,qBAAqB,CAC9D,oBAAoB,CAAC,kBAAkB,CAAC,KAAK,CAAC,WAAW,CAAC,CAC3D;IAiHC;;;;OAIG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;;;OAOG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;;;;;;;;;;;;;CAEK,CAAC"}
1
+ {"version":3,"file":"positive-finite-number.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/positive-finite-number.mts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,oBAAoB,IAAI,gCAAgC,EAE9D,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,MAAM,MAAM,oBAAoB,GAAG,gCAAgC,CAAC;AAEpE,KAAK,WAAW,GAAG,oBAAoB,CAAC;AAqExC;;;;;;;;GAQG;AACH,eAAO,MAAM,sBAAsB,sDAAK,CAAC;AAEzC;;;;;;;;;GASG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;MAAW,CAAC;AAE/C;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB;IAC/B;;;;;;OAMG;;IAGH;;OAEG;;IAGH;;;;;OAKG;;IAGH;;;;;OAKG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;wBApHA,WAAW,KACb,oBAAoB,CAAC,kBAAkB,CAAC,qBAAqB,CAC9D,oBAAoB,CAAC,kBAAkB,CAAC,KAAK,CAAC,WAAW,CAAC,CAC3D;IAoHC;;;;;;OAMG;uBAjHA,WAAW,KACb,oBAAoB,CAAC,kBAAkB,CAAC,KAAK,CAAC,WAAW,CAAC;IAmH3D;;;;;;OAMG;wBApHA,WAAW,KACb,oBAAoB,CAAC,kBAAkB,CAAC,qBAAqB,CAC9D,oBAAoB,CAAC,kBAAkB,CAAC,KAAK,CAAC,WAAW,CAAC,CAC3D;IAoHC;;;;;;;;OAQG;;IAGH;;;;;;;OAOG;;IAGH;;;;;;;OAOG;;IAGH;;;;;;;OAOG;;IAGH;;;;;;;OAOG;;IAGH;;;;;;;OAOG;;;;;;;;;;;;;;CAEK,CAAC"}