ts-data-forge 10.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 (249) hide show
  1. package/dist/array/impl/array-utils-creation.d.mts +3 -3
  2. package/dist/array/impl/array-utils-creation.d.mts.map +1 -1
  3. package/dist/array/impl/array-utils-creation.mjs.map +1 -1
  4. package/dist/array/impl/array-utils-element-access.d.mts +4 -4
  5. package/dist/array/impl/array-utils-element-access.mjs.map +1 -1
  6. package/dist/{guard/as-length-bounded-array.d.mts → array/impl/array-utils-length-bounded-array-cast.d.mts} +9 -9
  7. package/dist/array/impl/array-utils-length-bounded-array-cast.d.mts.map +1 -0
  8. package/dist/{guard/as-length-bounded-array.mjs → array/impl/array-utils-length-bounded-array-cast.mjs} +2 -2
  9. package/dist/array/impl/array-utils-length-bounded-array-cast.mjs.map +1 -0
  10. package/dist/{guard/is-length-bounded-array.d.mts → array/impl/array-utils-length-bounded-array-guard.d.mts} +13 -13
  11. package/dist/array/impl/array-utils-length-bounded-array-guard.d.mts.map +1 -0
  12. package/dist/{guard/is-length-bounded-array.mjs → array/impl/array-utils-length-bounded-array-guard.mjs} +1 -1
  13. package/dist/array/impl/array-utils-length-bounded-array-guard.mjs.map +1 -0
  14. package/dist/array/impl/array-utils-modification.d.mts +9 -9
  15. package/dist/array/impl/array-utils-modification.d.mts.map +1 -1
  16. package/dist/array/impl/array-utils-modification.mjs.map +1 -1
  17. package/dist/array/impl/array-utils-reducing-value.d.mts +9 -9
  18. package/dist/array/impl/array-utils-reducing-value.mjs.map +1 -1
  19. package/dist/array/impl/array-utils-size.d.mts +3 -3
  20. package/dist/array/impl/array-utils-size.mjs.map +1 -1
  21. package/dist/array/impl/array-utils-slicing.d.mts +9 -9
  22. package/dist/array/impl/array-utils-slicing.d.mts.map +1 -1
  23. package/dist/array/impl/array-utils-slicing.mjs.map +1 -1
  24. package/dist/array/impl/array-utils-transformation.d.mts +16 -10
  25. package/dist/array/impl/array-utils-transformation.d.mts.map +1 -1
  26. package/dist/array/impl/array-utils-transformation.mjs.map +1 -1
  27. package/dist/array/impl/index.d.mts +2 -0
  28. package/dist/array/impl/index.d.mts.map +1 -1
  29. package/dist/array/impl/index.mjs +2 -0
  30. package/dist/array/impl/index.mjs.map +1 -1
  31. package/dist/entry-point.mjs +1 -3
  32. package/dist/entry-point.mjs.map +1 -1
  33. package/dist/guard/index.d.mts +0 -3
  34. package/dist/guard/index.d.mts.map +1 -1
  35. package/dist/guard/index.mjs +0 -3
  36. package/dist/guard/index.mjs.map +1 -1
  37. package/dist/index.d.mts +1 -0
  38. package/dist/index.d.mts.map +1 -1
  39. package/dist/index.mjs +1 -3
  40. package/dist/index.mjs.map +1 -1
  41. package/dist/number/branded-types/finite-number.d.mts +47 -61
  42. package/dist/number/branded-types/finite-number.d.mts.map +1 -1
  43. package/dist/number/branded-types/finite-number.mjs +37 -41
  44. package/dist/number/branded-types/finite-number.mjs.map +1 -1
  45. package/dist/number/branded-types/int.d.mts +40 -46
  46. package/dist/number/branded-types/int.d.mts.map +1 -1
  47. package/dist/number/branded-types/int.mjs +29 -31
  48. package/dist/number/branded-types/int.mjs.map +1 -1
  49. package/dist/number/branded-types/int16.d.mts +65 -58
  50. package/dist/number/branded-types/int16.d.mts.map +1 -1
  51. package/dist/number/branded-types/int16.mjs +49 -45
  52. package/dist/number/branded-types/int16.mjs.map +1 -1
  53. package/dist/number/branded-types/int32.d.mts +65 -58
  54. package/dist/number/branded-types/int32.d.mts.map +1 -1
  55. package/dist/number/branded-types/int32.mjs +49 -45
  56. package/dist/number/branded-types/int32.mjs.map +1 -1
  57. package/dist/number/branded-types/negative-finite-number.d.mts +68 -59
  58. package/dist/number/branded-types/negative-finite-number.d.mts.map +1 -1
  59. package/dist/number/branded-types/negative-finite-number.mjs +52 -46
  60. package/dist/number/branded-types/negative-finite-number.mjs.map +1 -1
  61. package/dist/number/branded-types/negative-int.d.mts +60 -48
  62. package/dist/number/branded-types/negative-int.d.mts.map +1 -1
  63. package/dist/number/branded-types/negative-int.mjs +40 -36
  64. package/dist/number/branded-types/negative-int.mjs.map +1 -1
  65. package/dist/number/branded-types/negative-safe-int.d.mts +57 -56
  66. package/dist/number/branded-types/negative-safe-int.d.mts.map +1 -1
  67. package/dist/number/branded-types/negative-safe-int.mjs +40 -41
  68. package/dist/number/branded-types/negative-safe-int.mjs.map +1 -1
  69. package/dist/number/branded-types/non-negative-finite-number.d.mts +74 -64
  70. package/dist/number/branded-types/non-negative-finite-number.d.mts.map +1 -1
  71. package/dist/number/branded-types/non-negative-finite-number.mjs +58 -51
  72. package/dist/number/branded-types/non-negative-finite-number.mjs.map +1 -1
  73. package/dist/number/branded-types/non-negative-int16.d.mts +64 -57
  74. package/dist/number/branded-types/non-negative-int16.d.mts.map +1 -1
  75. package/dist/number/branded-types/non-negative-int16.mjs +47 -43
  76. package/dist/number/branded-types/non-negative-int16.mjs.map +1 -1
  77. package/dist/number/branded-types/non-negative-int32.d.mts +64 -58
  78. package/dist/number/branded-types/non-negative-int32.d.mts.map +1 -1
  79. package/dist/number/branded-types/non-negative-int32.mjs +47 -44
  80. package/dist/number/branded-types/non-negative-int32.mjs.map +1 -1
  81. package/dist/number/branded-types/non-positive-finite-number.d.mts +64 -54
  82. package/dist/number/branded-types/non-positive-finite-number.d.mts.map +1 -1
  83. package/dist/number/branded-types/non-positive-finite-number.mjs +48 -41
  84. package/dist/number/branded-types/non-positive-finite-number.mjs.map +1 -1
  85. package/dist/number/branded-types/non-positive-int.d.mts +41 -146
  86. package/dist/number/branded-types/non-positive-int.d.mts.map +1 -1
  87. package/dist/number/branded-types/non-positive-int.mjs +27 -107
  88. package/dist/number/branded-types/non-positive-int.mjs.map +1 -1
  89. package/dist/number/branded-types/non-positive-safe-int.d.mts +54 -53
  90. package/dist/number/branded-types/non-positive-safe-int.d.mts.map +1 -1
  91. package/dist/number/branded-types/non-positive-safe-int.mjs +37 -39
  92. package/dist/number/branded-types/non-positive-safe-int.mjs.map +1 -1
  93. package/dist/number/branded-types/non-zero-finite-number.d.mts +62 -49
  94. package/dist/number/branded-types/non-zero-finite-number.d.mts.map +1 -1
  95. package/dist/number/branded-types/non-zero-finite-number.mjs +46 -37
  96. package/dist/number/branded-types/non-zero-finite-number.mjs.map +1 -1
  97. package/dist/number/branded-types/non-zero-int.d.mts +51 -38
  98. package/dist/number/branded-types/non-zero-int.d.mts.map +1 -1
  99. package/dist/number/branded-types/non-zero-int.mjs +31 -27
  100. package/dist/number/branded-types/non-zero-int.mjs.map +1 -1
  101. package/dist/number/branded-types/non-zero-int16.d.mts +52 -53
  102. package/dist/number/branded-types/non-zero-int16.d.mts.map +1 -1
  103. package/dist/number/branded-types/non-zero-int16.mjs +36 -39
  104. package/dist/number/branded-types/non-zero-int16.mjs.map +1 -1
  105. package/dist/number/branded-types/non-zero-int32.d.mts +52 -54
  106. package/dist/number/branded-types/non-zero-int32.d.mts.map +1 -1
  107. package/dist/number/branded-types/non-zero-int32.mjs +36 -40
  108. package/dist/number/branded-types/non-zero-int32.mjs.map +1 -1
  109. package/dist/number/branded-types/non-zero-safe-int.d.mts +53 -54
  110. package/dist/number/branded-types/non-zero-safe-int.d.mts.map +1 -1
  111. package/dist/number/branded-types/non-zero-safe-int.mjs +36 -40
  112. package/dist/number/branded-types/non-zero-safe-int.mjs.map +1 -1
  113. package/dist/number/branded-types/non-zero-uint16.d.mts +52 -53
  114. package/dist/number/branded-types/non-zero-uint16.d.mts.map +1 -1
  115. package/dist/number/branded-types/non-zero-uint16.mjs +35 -39
  116. package/dist/number/branded-types/non-zero-uint16.mjs.map +1 -1
  117. package/dist/number/branded-types/non-zero-uint32.d.mts +52 -53
  118. package/dist/number/branded-types/non-zero-uint32.d.mts.map +1 -1
  119. package/dist/number/branded-types/non-zero-uint32.mjs +35 -39
  120. package/dist/number/branded-types/non-zero-uint32.mjs.map +1 -1
  121. package/dist/number/branded-types/positive-finite-number.d.mts +74 -63
  122. package/dist/number/branded-types/positive-finite-number.d.mts.map +1 -1
  123. package/dist/number/branded-types/positive-finite-number.mjs +58 -50
  124. package/dist/number/branded-types/positive-finite-number.mjs.map +1 -1
  125. package/dist/number/branded-types/positive-int.d.mts +46 -68
  126. package/dist/number/branded-types/positive-int.d.mts.map +1 -1
  127. package/dist/number/branded-types/positive-int.mjs +34 -49
  128. package/dist/number/branded-types/positive-int.mjs.map +1 -1
  129. package/dist/number/branded-types/positive-int16.d.mts +61 -57
  130. package/dist/number/branded-types/positive-int16.d.mts.map +1 -1
  131. package/dist/number/branded-types/positive-int16.mjs +44 -43
  132. package/dist/number/branded-types/positive-int16.mjs.map +1 -1
  133. package/dist/number/branded-types/positive-int32.d.mts +61 -57
  134. package/dist/number/branded-types/positive-int32.d.mts.map +1 -1
  135. package/dist/number/branded-types/positive-int32.mjs +44 -43
  136. package/dist/number/branded-types/positive-int32.mjs.map +1 -1
  137. package/dist/number/branded-types/positive-safe-int.d.mts +62 -57
  138. package/dist/number/branded-types/positive-safe-int.d.mts.map +1 -1
  139. package/dist/number/branded-types/positive-safe-int.mjs +45 -43
  140. package/dist/number/branded-types/positive-safe-int.mjs.map +1 -1
  141. package/dist/number/branded-types/positive-uint16.d.mts +61 -57
  142. package/dist/number/branded-types/positive-uint16.d.mts.map +1 -1
  143. package/dist/number/branded-types/positive-uint16.mjs +44 -43
  144. package/dist/number/branded-types/positive-uint16.mjs.map +1 -1
  145. package/dist/number/branded-types/positive-uint32.d.mts +61 -58
  146. package/dist/number/branded-types/positive-uint32.d.mts.map +1 -1
  147. package/dist/number/branded-types/positive-uint32.mjs +44 -44
  148. package/dist/number/branded-types/positive-uint32.mjs.map +1 -1
  149. package/dist/number/branded-types/safe-int.d.mts +43 -62
  150. package/dist/number/branded-types/safe-int.d.mts.map +1 -1
  151. package/dist/number/branded-types/safe-int.mjs +35 -42
  152. package/dist/number/branded-types/safe-int.mjs.map +1 -1
  153. package/dist/number/branded-types/safe-uint.d.mts +62 -57
  154. package/dist/number/branded-types/safe-uint.d.mts.map +1 -1
  155. package/dist/number/branded-types/safe-uint.mjs +46 -44
  156. package/dist/number/branded-types/safe-uint.mjs.map +1 -1
  157. package/dist/number/branded-types/uint.d.mts +63 -50
  158. package/dist/number/branded-types/uint.d.mts.map +1 -1
  159. package/dist/number/branded-types/uint.mjs +42 -39
  160. package/dist/number/branded-types/uint.mjs.map +1 -1
  161. package/dist/number/branded-types/uint16.d.mts +60 -58
  162. package/dist/number/branded-types/uint16.d.mts.map +1 -1
  163. package/dist/number/branded-types/uint16.mjs +44 -43
  164. package/dist/number/branded-types/uint16.mjs.map +1 -1
  165. package/dist/number/branded-types/uint32.d.mts +59 -55
  166. package/dist/number/branded-types/uint32.d.mts.map +1 -1
  167. package/dist/number/branded-types/uint32.mjs +42 -42
  168. package/dist/number/branded-types/uint32.mjs.map +1 -1
  169. package/dist/number/enum/int8.d.mts +56 -65
  170. package/dist/number/enum/int8.d.mts.map +1 -1
  171. package/dist/number/enum/int8.mjs +44 -43
  172. package/dist/number/enum/int8.mjs.map +1 -1
  173. package/dist/number/enum/uint8.d.mts +60 -58
  174. package/dist/number/enum/uint8.d.mts.map +1 -1
  175. package/dist/number/enum/uint8.mjs +44 -43
  176. package/dist/number/enum/uint8.mjs.map +1 -1
  177. package/dist/string/index.d.mts +2 -0
  178. package/dist/string/index.d.mts.map +1 -0
  179. package/dist/string/index.mjs +2 -0
  180. package/dist/string/index.mjs.map +1 -0
  181. package/dist/string/str.d.mts +273 -0
  182. package/dist/string/str.d.mts.map +1 -0
  183. package/dist/string/str.mjs +42 -0
  184. package/dist/string/str.mjs.map +1 -0
  185. package/package.json +31 -92
  186. package/src/array/impl/array-utils-creation.mts +2 -1
  187. package/src/array/impl/array-utils-element-access.mts +3 -3
  188. package/src/array/impl/array-utils-element-access.test.mts +3 -3
  189. package/src/{guard/as-length-bounded-array.mts → array/impl/array-utils-length-bounded-array-cast.mts} +9 -9
  190. package/src/{guard/as-length-bounded-array.test.mts → array/impl/array-utils-length-bounded-array-cast.test.mts} +2 -2
  191. package/src/{guard/is-length-bounded-array.mts → array/impl/array-utils-length-bounded-array-guard.mts} +12 -12
  192. package/src/{guard/is-length-bounded-array.test.mts → array/impl/array-utils-length-bounded-array-guard.test.mts} +2 -2
  193. package/src/array/impl/array-utils-modification.mts +9 -8
  194. package/src/array/impl/array-utils-modification.test.mts +6 -1
  195. package/src/array/impl/array-utils-reducing-value.mts +9 -9
  196. package/src/array/impl/array-utils-size.mts +2 -2
  197. package/src/array/impl/array-utils-slicing.mts +24 -13
  198. package/src/array/impl/array-utils-transformation.mts +18 -12
  199. package/src/array/impl/array-utils-transformation.test.mts +12 -12
  200. package/src/array/impl/index.mts +2 -0
  201. package/src/guard/index.mts +0 -3
  202. package/src/index.mts +1 -0
  203. package/src/number/branded-types/finite-number.mts +47 -61
  204. package/src/number/branded-types/int.mts +40 -46
  205. package/src/number/branded-types/int16.mts +65 -58
  206. package/src/number/branded-types/int32.mts +65 -58
  207. package/src/number/branded-types/negative-finite-number.mts +68 -68
  208. package/src/number/branded-types/negative-int.mts +60 -57
  209. package/src/number/branded-types/negative-safe-int.mts +57 -65
  210. package/src/number/branded-types/non-negative-finite-number.mts +74 -64
  211. package/src/number/branded-types/non-negative-int16.mts +64 -57
  212. package/src/number/branded-types/non-negative-int32.mts +64 -58
  213. package/src/number/branded-types/non-positive-finite-number.mts +64 -54
  214. package/src/number/branded-types/non-positive-int.mts +41 -146
  215. package/src/number/branded-types/non-positive-safe-int.mts +54 -53
  216. package/src/number/branded-types/non-zero-finite-number.mts +62 -51
  217. package/src/number/branded-types/non-zero-int.mts +51 -38
  218. package/src/number/branded-types/non-zero-int16.mts +52 -53
  219. package/src/number/branded-types/non-zero-int32.mts +52 -54
  220. package/src/number/branded-types/non-zero-safe-int.mts +53 -54
  221. package/src/number/branded-types/non-zero-uint16.mts +52 -53
  222. package/src/number/branded-types/non-zero-uint32.mts +52 -53
  223. package/src/number/branded-types/positive-finite-number.mts +74 -63
  224. package/src/number/branded-types/positive-int.mts +46 -68
  225. package/src/number/branded-types/positive-int16.mts +61 -57
  226. package/src/number/branded-types/positive-int32.mts +61 -57
  227. package/src/number/branded-types/positive-safe-int.mts +62 -57
  228. package/src/number/branded-types/positive-uint16.mts +61 -57
  229. package/src/number/branded-types/positive-uint32.mts +61 -58
  230. package/src/number/branded-types/safe-int.mts +43 -62
  231. package/src/number/branded-types/safe-uint.mts +62 -57
  232. package/src/number/branded-types/uint.mts +63 -50
  233. package/src/number/branded-types/uint16.mts +60 -58
  234. package/src/number/branded-types/uint32.mts +59 -55
  235. package/src/number/enum/int8.mts +56 -65
  236. package/src/number/enum/uint8.mts +60 -58
  237. package/src/string/index.mts +1 -0
  238. package/src/string/str.mts +371 -0
  239. package/src/string/str.test.mts +215 -0
  240. package/dist/guard/as-length-bounded-array.d.mts.map +0 -1
  241. package/dist/guard/as-length-bounded-array.mjs.map +0 -1
  242. package/dist/guard/is-length-bounded-array.d.mts.map +0 -1
  243. package/dist/guard/is-length-bounded-array.mjs.map +0 -1
  244. package/dist/guard/is-length-bounded-string.d.mts +0 -163
  245. package/dist/guard/is-length-bounded-string.d.mts.map +0 -1
  246. package/dist/guard/is-length-bounded-string.mjs +0 -7
  247. package/dist/guard/is-length-bounded-string.mjs.map +0 -1
  248. package/src/guard/is-length-bounded-string.mts +0 -199
  249. package/src/guard/is-length-bounded-string.test.mts +0 -170
@@ -1 +1 @@
1
- {"version":3,"file":"non-zero-int.mjs","sources":["../../../src/number/branded-types/non-zero-int.mts"],"sourcesContent":["import { type NonZeroInt as TtfImported_NonZeroInt } from 'ts-type-forge';\nimport { expectType } from '../../expect-type.mjs';\nimport { TsDataForgeInternals } from '../refined-number-utils.mjs';\n\nexport type NonZeroInt = TtfImported_NonZeroInt;\n\ntype ElementType = NonZeroInt;\n\nconst typeNameInMessage = 'a non-zero integer';\n\nconst {\n abs,\n castType,\n is,\n max: max_,\n min: min_,\n mul,\n pow,\n randomNonZero: random,\n} = TsDataForgeInternals.RefinedNumberUtils.operatorsForInteger<\n ElementType,\n number,\n number\n>({\n integerOrSafeInteger: 'Integer',\n nonZero: true,\n MIN_VALUE: -Number.MAX_VALUE,\n MAX_VALUE: Number.MAX_VALUE,\n typeNameInMessage,\n} as const);\n\n/**\n * Checks if a number is a NonZeroInt.\n *\n * @param value The value to check.\n * @returns `true` if the value is a NonZeroInt, `false` otherwise.\n */\nexport const isNonZeroInt = is;\n\n/**\n * Casts a number to a NonZeroInt type.\n *\n * @param value The value to cast.\n * @returns The value as a NonZeroInt type.\n * @throws {TypeError} If the value is not a non-zero integer.\n */\nexport const asNonZeroInt = castType;\n\n/**\n * Namespace providing type-safe arithmetic operations for non-zero integers.\n *\n * All operations maintain the non-zero constraint, ensuring that results are\n * always valid NonZeroInt values. Division operations return floor division\n * results, and all arithmetic maintains integer precision.\n */\nexport const NonZeroInt = {\n /**\n * Type guard to check if a value is a NonZeroInt.\n *\n * @param value The value to check.\n * @returns `true` if the value is a non-zero integer, `false` otherwise.\n */\n is,\n\n /**\n * Returns the absolute value of a non-zero integer.\n *\n * @param a The non-zero integer.\n * @returns The absolute value as a NonZeroInt.\n */\n abs,\n\n /**\n * Returns the smaller of two non-zero integers.\n *\n * @param a The first non-zero integer.\n * @param b The second non-zero integer.\n * @returns The minimum value as a NonZeroInt.\n */\n min: min_,\n\n /**\n * Returns the larger of two non-zero integers.\n *\n * @param a The first non-zero integer.\n * @param b The second non-zero integer.\n * @returns The maximum value as a NonZeroInt.\n */\n max: max_,\n\n /**\n * Generates a random non-zero integer.\n *\n * @returns A random NonZeroInt value.\n */\n random,\n\n /**\n * Raises a non-zero integer to the power of another non-zero integer.\n *\n * @param a The base non-zero integer.\n * @param b The exponent non-zero integer.\n * @returns `a ** b` as a NonZeroInt.\n */\n pow,\n\n /**\n * Multiplies two non-zero integers.\n *\n * The product of two non-zero integers is always non-zero, so this stays\n * closed; for the non-closed operations (`add`/`sub`/`div`, whose result may\n * be `0`) use {@link Num.add}/{@link Num.sub}/{@link Num.divInt}.\n *\n * @param a The first non-zero integer.\n * @param b The second non-zero integer.\n * @returns `a * b` as a NonZeroInt.\n */\n mul,\n} as const;\n\nexpectType<\n keyof typeof NonZeroInt,\n keyof TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int',\n 'mul'\n >\n>('=');\n\nexpectType<\n typeof NonZeroInt,\n TsDataForgeInternals.RefinedNumberUtils.NumberClass<ElementType, 'int', 'mul'>\n>('<=');\n"],"names":[],"mappings":";;AAQA,MAAM,iBAAA,GAAoB,oBAAA;AAE1B,MAAM;AAAA,EACJ,GAAA;AAAA,EACA,QAAA;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,SAAA;AAAA,EACtB,OAAA,EAAS,IAAA;AAAA,EACT,SAAA,EAAW,CAAC,MAAA,CAAO,SAAA;AAAA,EACnB,WAAW,MAAA,CAAO,SAAA;AAAA,EAClB;AACF,CAAU,CAAA;AAQH,MAAM,YAAA,GAAe;AASrB,MAAM,YAAA,GAAe;AASrB,MAAM,UAAA,GAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOxB,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,GAAA;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,EAOL,MAAA;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-int.mjs","sources":["../../../src/number/branded-types/non-zero-int.mts"],"sourcesContent":["import { type NonZeroInt as TtfImported_NonZeroInt } from 'ts-type-forge';\nimport { expectType } from '../../expect-type.mjs';\nimport { TsDataForgeInternals } from '../refined-number-utils.mjs';\n\nexport type NonZeroInt = TtfImported_NonZeroInt;\n\ntype ElementType = NonZeroInt;\n\nconst typeNameInMessage = 'a non-zero integer';\n\nconst {\n abs,\n castType,\n is,\n max: max_,\n min: min_,\n mul,\n pow,\n randomNonZero: random,\n} = TsDataForgeInternals.RefinedNumberUtils.operatorsForInteger<\n ElementType,\n number,\n number\n>({\n integerOrSafeInteger: 'Integer',\n nonZero: true,\n MIN_VALUE: -Number.MAX_VALUE,\n MAX_VALUE: Number.MAX_VALUE,\n typeNameInMessage,\n} as const);\n\n/**\n * Type guard that checks if a value is a non-zero integer.\n *\n * Returns `true` for a non-zero integer — a value with no fractional component,\n * including values outside the safe integer range (unlike `SafeInt`).\n *\n * @param value - The value to check\n * @returns `true` if the value is a non-zero integer, `false` otherwise\n */\nexport const isNonZeroInt = is;\n\n/**\n * Casts a `number` to the `NonZeroInt` branded type.\n *\n * Validates that the value is a non-zero integer and returns it with the\n * `NonZeroInt` brand. Throws a `TypeError` otherwise.\n *\n * @param value - The value to cast\n * @returns The value as a `NonZeroInt`\n * @throws {TypeError} If the value is not a non-zero integer\n */\nexport const asNonZeroInt = castType;\n\n/**\n * Namespace providing type-safe operations for the `NonZeroInt` branded type.\n *\n * The `NonZeroInt` type represents a non-zero integer. Division (`div`) uses\n * floor division.\n *\n * Unlike `SafeInt`, `NonZeroInt` allows values outside the safe integer range\n * (±2^53 − 1), so very large magnitudes may lose precision in JavaScript's\n * `number` type.\n */\nexport const NonZeroInt = {\n /**\n * Type guard that checks if a value is a non-zero integer.\n *\n * @param value - The value to check\n * @returns `true` if the value is a non-zero integer, `false` otherwise\n * @see {@link isNonZeroInt} for usage examples\n */\n is,\n\n /**\n * Returns the absolute value of a non-zero integer.\n *\n * The result is non-negative and keeps the `NonZeroInt` brand. Note that\n * `Math.abs(Number.MIN_SAFE_INTEGER)` exceeds `Number.MAX_SAFE_INTEGER`, so\n * use `SafeInt` for guaranteed precision.\n *\n * @param a - The non-zero integer value\n * @returns The absolute value as a non-negative `NonZeroInt`\n */\n abs,\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 `NonZeroInt`\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 `NonZeroInt`\n */\n max: max_,\n\n /**\n * Generates a random `NonZeroInt` 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 `NonZeroInt` in `[min, max]`\n */\n random,\n\n /**\n * Raises `a` to the power `b`, returning `a ** b` as a `NonZeroInt` (floored\n * 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 `NonZeroInt`\n */\n pow,\n\n /**\n * Multiplies two non-zero integers, returning `a * b` as a `NonZeroInt`.\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 `NonZeroInt`\n */\n mul,\n} as const;\n\nexpectType<\n keyof typeof NonZeroInt,\n keyof TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int',\n 'mul'\n >\n>('=');\n\nexpectType<\n typeof NonZeroInt,\n TsDataForgeInternals.RefinedNumberUtils.NumberClass<ElementType, 'int', 'mul'>\n>('<=');\n"],"names":[],"mappings":";;AAQA,MAAM,iBAAA,GAAoB,oBAAA;AAE1B,MAAM;AAAA,EACJ,GAAA;AAAA,EACA,QAAA;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,SAAA;AAAA,EACtB,OAAA,EAAS,IAAA;AAAA,EACT,SAAA,EAAW,CAAC,MAAA,CAAO,SAAA;AAAA,EACnB,WAAW,MAAA,CAAO,SAAA;AAAA,EAClB;AACF,CAAU,CAAA;AAWH,MAAM,YAAA,GAAe;AAYrB,MAAM,YAAA,GAAe;AAYrB,MAAM,UAAA,GAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQxB,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,GAAA;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,EAWL,MAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA;AACF;;;;"}
@@ -1,19 +1,24 @@
1
1
  import { type NonZeroInt16 as TtfImported_NonZeroInt16 } from 'ts-type-forge';
2
2
  export type NonZeroInt16 = TtfImported_NonZeroInt16;
3
3
  /**
4
- * Checks if a number is a NonZeroInt16 (16-bit non-zero signed integer in the
5
- * range [-2^15, 2^15) excluding 0).
4
+ * Type guard that checks if a value is a non-zero integer in [-2^15, 2^15).
6
5
  *
7
- * @param value The value to check.
8
- * @returns `true` if the value is a NonZeroInt16, `false` otherwise.
6
+ * Returns `true` for a non-zero integer in [-2^15, 2^15) — a value with no
7
+ * fractional component.
8
+ *
9
+ * @param value - The value to check
10
+ * @returns `true` if the value is a non-zero integer in [-2^15, 2^15), `false` otherwise
9
11
  */
10
12
  export declare const isNonZeroInt16: (a: number) => a is TtfImported_NonZeroInt16;
11
13
  /**
12
- * Casts a number to a NonZeroInt16 type.
14
+ * Casts a `number` to the `NonZeroInt16` branded type.
15
+ *
16
+ * Validates that the value is a non-zero integer in [-2^15, 2^15) and returns
17
+ * it with the `NonZeroInt16` brand. Throws a `TypeError` otherwise.
13
18
  *
14
- * @param value The value to cast.
15
- * @returns The value as a NonZeroInt16 type.
16
- * @throws {TypeError} If the value is not a non-zero integer in [-2^15, 2^15).
19
+ * @param value - The value to cast
20
+ * @returns The value as a `NonZeroInt16`
21
+ * @throws {TypeError} If the value is not a non-zero integer in [-2^15, 2^15)
17
22
  */
18
23
  export declare const asNonZeroInt16: <N extends number>(x: N) => number & {
19
24
  readonly "!=0": true;
@@ -33,90 +38,84 @@ export declare const asNonZeroInt16: <N extends number>(x: N) => number & {
33
38
  'TSTypeForgeInternals--edd2f9ce-7ca5-45b0-9d1a-bd61b9b5d9c3': unknown;
34
39
  }> & N;
35
40
  /**
36
- * Namespace providing type-safe arithmetic operations for 16-bit non-zero
37
- * signed integers.
41
+ * Namespace providing type-safe operations for the `NonZeroInt16` branded type.
38
42
  *
39
- * All operations automatically clamp results to the valid NonZeroInt16 range
40
- * [-32768, 32767] excluding 0. This ensures that all arithmetic maintains the
41
- * 16-bit non-zero signed integer constraint, preventing zero results and
42
- * overflow.
43
+ * The `NonZeroInt16` type represents a non-zero integer in [-2^15, 2^15).
44
+ * Division (`div`) uses floor division.
43
45
  */
44
46
  export declare const NonZeroInt16: {
45
47
  /**
46
- * Type guard to check if a value is a NonZeroInt16.
48
+ * Type guard that checks if a value is a non-zero integer in [-2^15, 2^15).
47
49
  *
48
- * @param value The value to check.
49
- * @returns `true` if the value is a 16-bit non-zero signed integer, `false`
50
- * otherwise.
50
+ * @param value - The value to check
51
+ * @returns `true` if the value is a non-zero integer in [-2^15, 2^15), `false` otherwise
52
+ * @see {@link isNonZeroInt16} for usage examples
51
53
  */
52
54
  readonly is: (a: number) => a is TtfImported_NonZeroInt16;
53
55
  /**
54
- * The minimum value for a 16-bit non-zero signed integer.
55
- *
56
- * @readonly
56
+ * The smallest value representable as `NonZeroInt16`.
57
57
  */
58
58
  readonly MIN_VALUE: number;
59
59
  /**
60
- * The maximum value for a 16-bit non-zero signed integer.
61
- *
62
- * @readonly
60
+ * The largest value representable as `NonZeroInt16`.
63
61
  */
64
62
  readonly MAX_VALUE: number;
65
63
  /**
66
- * Returns the absolute value of a 16-bit non-zero signed integer.
64
+ * Returns the absolute value of a non-zero integer in [-2^15, 2^15).
67
65
  *
68
- * @param a The NonZeroInt16 value.
69
- * @returns The absolute value as a NonZeroInt16, clamped to valid range.
66
+ * The result is non-negative and keeps the `NonZeroInt16` brand.
67
+ *
68
+ * @param a - The non-zero integer value
69
+ * @returns The absolute value as a non-negative `NonZeroInt16`
70
70
  */
71
71
  readonly abs: (x: import("ts-type-forge").WithSmallInt<TtfImported_NonZeroInt16>) => import("ts-type-forge").IntersectBrand<TtfImported_NonZeroInt16, import("ts-type-forge").PositiveNumber>;
72
72
  /**
73
- * Returns the smaller of two NonZeroInt16 values.
73
+ * Returns the smallest of the given non-zero integers.
74
74
  *
75
- * @param a The first NonZeroInt16.
76
- * @param b The second NonZeroInt16.
77
- * @returns The minimum value as a NonZeroInt16.
75
+ * @param values - The non-zero integers to compare (at least one required)
76
+ * @returns The smallest value as a `NonZeroInt16`
78
77
  */
79
78
  readonly min: (...values: readonly import("ts-type-forge").WithSmallInt<TtfImported_NonZeroInt16>[]) => TtfImported_NonZeroInt16;
80
79
  /**
81
- * Returns the larger of two NonZeroInt16 values.
80
+ * Returns the largest of the given non-zero integers.
82
81
  *
83
- * @param a The first NonZeroInt16.
84
- * @param b The second NonZeroInt16.
85
- * @returns The maximum value as a NonZeroInt16.
82
+ * @param values - The non-zero integers to compare (at least one required)
83
+ * @returns The largest value as a `NonZeroInt16`
86
84
  */
87
85
  readonly max: (...values: readonly import("ts-type-forge").WithSmallInt<TtfImported_NonZeroInt16>[]) => TtfImported_NonZeroInt16;
88
86
  /**
89
- * Clamps a number to the NonZeroInt16 range (avoiding zero).
87
+ * Clamps a `number` into the `NonZeroInt16` range, rounding to the nearest
88
+ * integer and constraining the result to `[MIN_VALUE, MAX_VALUE]`.
90
89
  *
91
- * @param value The number to clamp.
92
- * @returns The value clamped to [-32768, 32767] \ {0} as a NonZeroInt16.
90
+ * @param value - The value to clamp
91
+ * @returns The clamped value as a `NonZeroInt16`
93
92
  */
94
93
  readonly clamp: (x: number) => TtfImported_NonZeroInt16;
95
94
  /**
96
- * Generates a random NonZeroInt16 value within the valid range.
95
+ * Generates a random `NonZeroInt16` within the given range.
96
+ *
97
+ * The range is inclusive on both ends.
97
98
  *
98
- * @returns A random NonZeroInt16 between MIN_VALUE and MAX_VALUE (excluding
99
- * 0).
99
+ * @param min - The minimum value (inclusive)
100
+ * @param max - The maximum value (inclusive)
101
+ * @returns A random `NonZeroInt16` in `[min, max]`
100
102
  */
101
103
  readonly random: (min?: import("ts-type-forge").WithSmallInt<TtfImported_NonZeroInt16> | undefined, max?: import("ts-type-forge").WithSmallInt<TtfImported_NonZeroInt16> | undefined) => TtfImported_NonZeroInt16;
102
104
  /**
103
- * Raises a NonZeroInt16 to the power of another NonZeroInt16.
105
+ * Raises `a` to the power `b`, returning `a ** b` as a `NonZeroInt16`
106
+ * (floored to an integer).
104
107
  *
105
- * @param a The base NonZeroInt16.
106
- * @param b The exponent NonZeroInt16.
107
- * @returns `a ** b` clamped to [-32768, 32767] as a NonZeroInt16.
108
+ * @param a - The base non-zero integer
109
+ * @param b - The exponent non-zero integer
110
+ * @returns `a ** b` as a `NonZeroInt16`
108
111
  */
109
112
  readonly pow: (x: import("ts-type-forge").WithSmallInt<TtfImported_NonZeroInt16>, y: import("ts-type-forge").WithSmallInt<TtfImported_NonZeroInt16>) => TtfImported_NonZeroInt16;
110
113
  /**
111
- * Multiplies two NonZeroInt16 values.
112
- *
113
- * The product of two non-zero integers is always non-zero, so this stays
114
- * closed; for the non-closed operations (`add`/`sub`/`div`, whose result may
115
- * be `0`) use {@link Num.add}/{@link Num.sub}/{@link Num.divInt}.
114
+ * Multiplies two non-zero integers, returning `a * b` as a `NonZeroInt16`.
116
115
  *
117
- * @param a The first NonZeroInt16.
118
- * @param b The second NonZeroInt16.
119
- * @returns `a * b` clamped to [-32768, 32767] as a NonZeroInt16.
116
+ * @param a - The first non-zero integer
117
+ * @param b - The second non-zero integer
118
+ * @returns The product of `a` and `b` as a `NonZeroInt16`
120
119
  */
121
120
  readonly mul: (x: import("ts-type-forge").WithSmallInt<TtfImported_NonZeroInt16>, y: import("ts-type-forge").WithSmallInt<TtfImported_NonZeroInt16>) => TtfImported_NonZeroInt16;
122
121
  };
@@ -1 +1 @@
1
- {"version":3,"file":"non-zero-int16.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/non-zero-int16.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,IAAI,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAI9E,MAAM,MAAM,YAAY,GAAG,wBAAwB,CAAC;AA8BpD;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,8CAAK,CAAC;AAEjC;;;;;;GAMG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;MAAW,CAAC;AAEvC;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY;IACvB;;;;;;OAMG;;IAGH;;;;OAIG;;IAGH;;;;OAIG;;IAGH;;;;;OAKG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;OAKG;;IAGH;;;;;OAKG;;IAGH;;;;;;OAMG;;IAGH;;;;;;;;;;OAUG;;CAEK,CAAC"}
1
+ {"version":3,"file":"non-zero-int16.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/non-zero-int16.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,IAAI,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAI9E,MAAM,MAAM,YAAY,GAAG,wBAAwB,CAAC;AA8BpD;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc,8CAAK,CAAC;AAEjC;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;MAAW,CAAC;AAEvC;;;;;GAKG;AACH,eAAO,MAAM,YAAY;IACvB;;;;;;OAMG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;;;;;;OAOG;;IAGH;;;;;OAKG;;IAGH;;;;;OAKG;;IAGH;;;;;;OAMG;;IAGH;;;;;;;;OAQG;;IAGH;;;;;;;OAOG;;IAGH;;;;;;OAMG;;CAEK,CAAC"}
@@ -24,80 +24,77 @@ const isNonZeroInt16 = is;
24
24
  const asNonZeroInt16 = castType;
25
25
  const NonZeroInt16 = {
26
26
  /**
27
- * Type guard to check if a value is a NonZeroInt16.
27
+ * Type guard that checks if a value is a non-zero integer in [-2^15, 2^15).
28
28
  *
29
- * @param value The value to check.
30
- * @returns `true` if the value is a 16-bit non-zero signed integer, `false`
31
- * otherwise.
29
+ * @param value - The value to check
30
+ * @returns `true` if the value is a non-zero integer in [-2^15, 2^15), `false` otherwise
31
+ * @see {@link isNonZeroInt16} for usage examples
32
32
  */
33
33
  is,
34
34
  /**
35
- * The minimum value for a 16-bit non-zero signed integer.
36
- *
37
- * @readonly
35
+ * The smallest value representable as `NonZeroInt16`.
38
36
  */
39
37
  MIN_VALUE,
40
38
  /**
41
- * The maximum value for a 16-bit non-zero signed integer.
42
- *
43
- * @readonly
39
+ * The largest value representable as `NonZeroInt16`.
44
40
  */
45
41
  MAX_VALUE,
46
42
  /**
47
- * Returns the absolute value of a 16-bit non-zero signed integer.
43
+ * Returns the absolute value of a non-zero integer in [-2^15, 2^15).
44
+ *
45
+ * The result is non-negative and keeps the `NonZeroInt16` brand.
48
46
  *
49
- * @param a The NonZeroInt16 value.
50
- * @returns The absolute value as a NonZeroInt16, clamped to valid range.
47
+ * @param a - The non-zero integer value
48
+ * @returns The absolute value as a non-negative `NonZeroInt16`
51
49
  */
52
50
  abs,
53
51
  /**
54
- * Returns the smaller of two NonZeroInt16 values.
52
+ * Returns the smallest of the given non-zero integers.
55
53
  *
56
- * @param a The first NonZeroInt16.
57
- * @param b The second NonZeroInt16.
58
- * @returns The minimum value as a NonZeroInt16.
54
+ * @param values - The non-zero integers to compare (at least one required)
55
+ * @returns The smallest value as a `NonZeroInt16`
59
56
  */
60
57
  min: min_,
61
58
  /**
62
- * Returns the larger of two NonZeroInt16 values.
59
+ * Returns the largest of the given non-zero integers.
63
60
  *
64
- * @param a The first NonZeroInt16.
65
- * @param b The second NonZeroInt16.
66
- * @returns The maximum value as a NonZeroInt16.
61
+ * @param values - The non-zero integers to compare (at least one required)
62
+ * @returns The largest value as a `NonZeroInt16`
67
63
  */
68
64
  max: max_,
69
65
  /**
70
- * Clamps a number to the NonZeroInt16 range (avoiding zero).
66
+ * Clamps a `number` into the `NonZeroInt16` range, rounding to the nearest
67
+ * integer and constraining the result to `[MIN_VALUE, MAX_VALUE]`.
71
68
  *
72
- * @param value The number to clamp.
73
- * @returns The value clamped to [-32768, 32767] \ {0} as a NonZeroInt16.
69
+ * @param value - The value to clamp
70
+ * @returns The clamped value as a `NonZeroInt16`
74
71
  */
75
72
  clamp,
76
73
  /**
77
- * Generates a random NonZeroInt16 value within the valid range.
74
+ * Generates a random `NonZeroInt16` within the given range.
78
75
  *
79
- * @returns A random NonZeroInt16 between MIN_VALUE and MAX_VALUE (excluding
80
- * 0).
76
+ * The range is inclusive on both ends.
77
+ *
78
+ * @param min - The minimum value (inclusive)
79
+ * @param max - The maximum value (inclusive)
80
+ * @returns A random `NonZeroInt16` in `[min, max]`
81
81
  */
82
82
  random,
83
83
  /**
84
- * Raises a NonZeroInt16 to the power of another NonZeroInt16.
84
+ * Raises `a` to the power `b`, returning `a ** b` as a `NonZeroInt16`
85
+ * (floored to an integer).
85
86
  *
86
- * @param a The base NonZeroInt16.
87
- * @param b The exponent NonZeroInt16.
88
- * @returns `a ** b` clamped to [-32768, 32767] as a NonZeroInt16.
87
+ * @param a - The base non-zero integer
88
+ * @param b - The exponent non-zero integer
89
+ * @returns `a ** b` as a `NonZeroInt16`
89
90
  */
90
91
  pow,
91
92
  /**
92
- * Multiplies two NonZeroInt16 values.
93
- *
94
- * The product of two non-zero integers is always non-zero, so this stays
95
- * closed; for the non-closed operations (`add`/`sub`/`div`, whose result may
96
- * be `0`) use {@link Num.add}/{@link Num.sub}/{@link Num.divInt}.
93
+ * Multiplies two non-zero integers, returning `a * b` as a `NonZeroInt16`.
97
94
  *
98
- * @param a The first NonZeroInt16.
99
- * @param b The second NonZeroInt16.
100
- * @returns `a * b` clamped to [-32768, 32767] as a NonZeroInt16.
95
+ * @param a - The first non-zero integer
96
+ * @param b - The second non-zero integer
97
+ * @returns The product of `a` and `b` as a `NonZeroInt16`
101
98
  */
102
99
  mul
103
100
  };
@@ -1 +1 @@
1
- {"version":3,"file":"non-zero-int16.mjs","sources":["../../../src/number/branded-types/non-zero-int16.mts"],"sourcesContent":["import { type NonZeroInt16 as TtfImported_NonZeroInt16 } from 'ts-type-forge';\nimport { expectType } from '../../expect-type.mjs';\nimport { TsDataForgeInternals } from '../refined-number-utils.mjs';\n\nexport type NonZeroInt16 = TtfImported_NonZeroInt16;\n\ntype ElementType = NonZeroInt16;\n\nconst typeNameInMessage = 'a non-zero integer in [-2^15, 2^15)';\n\nconst {\n MAX_VALUE,\n MIN_VALUE,\n abs,\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 number,\n number\n>({\n integerOrSafeInteger: 'SafeInteger',\n nonZero: true,\n MIN_VALUE: -(2 ** 15),\n MAX_VALUE: 2 ** 15 - 1,\n typeNameInMessage,\n} as const);\n\n/**\n * Checks if a number is a NonZeroInt16 (16-bit non-zero signed integer in the\n * range [-2^15, 2^15) excluding 0).\n *\n * @param value The value to check.\n * @returns `true` if the value is a NonZeroInt16, `false` otherwise.\n */\nexport const isNonZeroInt16 = is;\n\n/**\n * Casts a number to a NonZeroInt16 type.\n *\n * @param value The value to cast.\n * @returns The value as a NonZeroInt16 type.\n * @throws {TypeError} If the value is not a non-zero integer in [-2^15, 2^15).\n */\nexport const asNonZeroInt16 = castType;\n\n/**\n * Namespace providing type-safe arithmetic operations for 16-bit non-zero\n * signed integers.\n *\n * All operations automatically clamp results to the valid NonZeroInt16 range\n * [-32768, 32767] excluding 0. This ensures that all arithmetic maintains the\n * 16-bit non-zero signed integer constraint, preventing zero results and\n * overflow.\n */\nexport const NonZeroInt16 = {\n /**\n * Type guard to check if a value is a NonZeroInt16.\n *\n * @param value The value to check.\n * @returns `true` if the value is a 16-bit non-zero signed integer, `false`\n * otherwise.\n */\n is,\n\n /**\n * The minimum value for a 16-bit non-zero signed integer.\n *\n * @readonly\n */\n MIN_VALUE,\n\n /**\n * The maximum value for a 16-bit non-zero signed integer.\n *\n * @readonly\n */\n MAX_VALUE,\n\n /**\n * Returns the absolute value of a 16-bit non-zero signed integer.\n *\n * @param a The NonZeroInt16 value.\n * @returns The absolute value as a NonZeroInt16, clamped to valid range.\n */\n abs,\n\n /**\n * Returns the smaller of two NonZeroInt16 values.\n *\n * @param a The first NonZeroInt16.\n * @param b The second NonZeroInt16.\n * @returns The minimum value as a NonZeroInt16.\n */\n min: min_,\n\n /**\n * Returns the larger of two NonZeroInt16 values.\n *\n * @param a The first NonZeroInt16.\n * @param b The second NonZeroInt16.\n * @returns The maximum value as a NonZeroInt16.\n */\n max: max_,\n\n /**\n * Clamps a number to the NonZeroInt16 range (avoiding zero).\n *\n * @param value The number to clamp.\n * @returns The value clamped to [-32768, 32767] \\ {0} as a NonZeroInt16.\n */\n clamp,\n\n /**\n * Generates a random NonZeroInt16 value within the valid range.\n *\n * @returns A random NonZeroInt16 between MIN_VALUE and MAX_VALUE (excluding\n * 0).\n */\n random,\n\n /**\n * Raises a NonZeroInt16 to the power of another NonZeroInt16.\n *\n * @param a The base NonZeroInt16.\n * @param b The exponent NonZeroInt16.\n * @returns `a ** b` clamped to [-32768, 32767] as a NonZeroInt16.\n */\n pow,\n\n /**\n * Multiplies two NonZeroInt16 values.\n *\n * The product of two non-zero integers is always non-zero, so this stays\n * closed; for the non-closed operations (`add`/`sub`/`div`, whose result may\n * be `0`) use {@link Num.add}/{@link Num.sub}/{@link Num.divInt}.\n *\n * @param a The first NonZeroInt16.\n * @param b The second NonZeroInt16.\n * @returns `a * b` clamped to [-32768, 32767] as a NonZeroInt16.\n */\n mul,\n} as const;\n\nexpectType<\n keyof typeof NonZeroInt16,\n keyof TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'range',\n 'mul'\n >\n>('=');\n\nexpectType<\n typeof NonZeroInt16,\n TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'range',\n 'mul'\n >\n>('<=');\n"],"names":[],"mappings":";;AAQA,MAAM,iBAAA,GAAoB,qCAAA;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,MAAO;AAAA,EAClB,SAAA,EAAW,KAAK,EAAA,GAAK,CAAA;AAAA,EACrB;AACF,CAAU,CAAA;AASH,MAAM,cAAA,GAAiB;AASvB,MAAM,cAAA,GAAiB;AAWvB,MAAM,YAAA,GAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ1B,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,GAAA;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;AAAA,EAQA,MAAA;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-int16.mjs","sources":["../../../src/number/branded-types/non-zero-int16.mts"],"sourcesContent":["import { type NonZeroInt16 as TtfImported_NonZeroInt16 } from 'ts-type-forge';\nimport { expectType } from '../../expect-type.mjs';\nimport { TsDataForgeInternals } from '../refined-number-utils.mjs';\n\nexport type NonZeroInt16 = TtfImported_NonZeroInt16;\n\ntype ElementType = NonZeroInt16;\n\nconst typeNameInMessage = 'a non-zero integer in [-2^15, 2^15)';\n\nconst {\n MAX_VALUE,\n MIN_VALUE,\n abs,\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 number,\n number\n>({\n integerOrSafeInteger: 'SafeInteger',\n nonZero: true,\n MIN_VALUE: -(2 ** 15),\n MAX_VALUE: 2 ** 15 - 1,\n typeNameInMessage,\n} as const);\n\n/**\n * Type guard that checks if a value is a non-zero integer in [-2^15, 2^15).\n *\n * Returns `true` for a non-zero integer in [-2^15, 2^15) — a value with no\n * fractional component.\n *\n * @param value - The value to check\n * @returns `true` if the value is a non-zero integer in [-2^15, 2^15), `false` otherwise\n */\nexport const isNonZeroInt16 = is;\n\n/**\n * Casts a `number` to the `NonZeroInt16` branded type.\n *\n * Validates that the value is a non-zero integer in [-2^15, 2^15) and returns\n * it with the `NonZeroInt16` brand. Throws a `TypeError` otherwise.\n *\n * @param value - The value to cast\n * @returns The value as a `NonZeroInt16`\n * @throws {TypeError} If the value is not a non-zero integer in [-2^15, 2^15)\n */\nexport const asNonZeroInt16 = castType;\n\n/**\n * Namespace providing type-safe operations for the `NonZeroInt16` branded type.\n *\n * The `NonZeroInt16` type represents a non-zero integer in [-2^15, 2^15).\n * Division (`div`) uses floor division.\n */\nexport const NonZeroInt16 = {\n /**\n * Type guard that checks if a value is a non-zero integer in [-2^15, 2^15).\n *\n * @param value - The value to check\n * @returns `true` if the value is a non-zero integer in [-2^15, 2^15), `false` otherwise\n * @see {@link isNonZeroInt16} for usage examples\n */\n is,\n\n /**\n * The smallest value representable as `NonZeroInt16`.\n */\n MIN_VALUE,\n\n /**\n * The largest value representable as `NonZeroInt16`.\n */\n MAX_VALUE,\n\n /**\n * Returns the absolute value of a non-zero integer in [-2^15, 2^15).\n *\n * The result is non-negative and keeps the `NonZeroInt16` brand.\n *\n * @param a - The non-zero integer value\n * @returns The absolute value as a non-negative `NonZeroInt16`\n */\n abs,\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 `NonZeroInt16`\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 `NonZeroInt16`\n */\n max: max_,\n\n /**\n * Clamps a `number` into the `NonZeroInt16` 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 `NonZeroInt16`\n */\n clamp,\n\n /**\n * Generates a random `NonZeroInt16` 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 `NonZeroInt16` in `[min, max]`\n */\n random,\n\n /**\n * Raises `a` to the power `b`, returning `a ** b` as a `NonZeroInt16`\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 `NonZeroInt16`\n */\n pow,\n\n /**\n * Multiplies two non-zero integers, returning `a * b` as a `NonZeroInt16`.\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 `NonZeroInt16`\n */\n mul,\n} as const;\n\nexpectType<\n keyof typeof NonZeroInt16,\n keyof TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'range',\n 'mul'\n >\n>('=');\n\nexpectType<\n typeof NonZeroInt16,\n TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'range',\n 'mul'\n >\n>('<=');\n"],"names":[],"mappings":";;AAQA,MAAM,iBAAA,GAAoB,qCAAA;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,MAAO;AAAA,EAClB,SAAA,EAAW,KAAK,EAAA,GAAK,CAAA;AAAA,EACrB;AACF,CAAU,CAAA;AAWH,MAAM,cAAA,GAAiB;AAYvB,MAAM,cAAA,GAAiB;AAQvB,MAAM,YAAA,GAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ1B,EAAA;AAAA;AAAA;AAAA;AAAA,EAKA,SAAA;AAAA;AAAA;AAAA;AAAA,EAKA,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,GAAA;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;AACF;;;;"}
@@ -1,19 +1,24 @@
1
1
  import { type NonZeroInt32 as TtfImported_NonZeroInt32 } from 'ts-type-forge';
2
2
  export type NonZeroInt32 = TtfImported_NonZeroInt32;
3
3
  /**
4
- * Checks if a number is a NonZeroInt32 (32-bit non-zero signed integer in the
5
- * range [-2^31, 2^31) excluding 0).
4
+ * Type guard that checks if a value is a non-zero integer in [-2^31, 2^31).
6
5
  *
7
- * @param value The value to check.
8
- * @returns `true` if the value is a NonZeroInt32, `false` otherwise.
6
+ * Returns `true` for a non-zero integer in [-2^31, 2^31) — a value with no
7
+ * fractional component.
8
+ *
9
+ * @param value - The value to check
10
+ * @returns `true` if the value is a non-zero integer in [-2^31, 2^31), `false` otherwise
9
11
  */
10
12
  export declare const isNonZeroInt32: (a: number) => a is TtfImported_NonZeroInt32;
11
13
  /**
12
- * Casts a number to a NonZeroInt32 type.
14
+ * Casts a `number` to the `NonZeroInt32` branded type.
15
+ *
16
+ * Validates that the value is a non-zero integer in [-2^31, 2^31) and returns
17
+ * it with the `NonZeroInt32` brand. Throws a `TypeError` otherwise.
13
18
  *
14
- * @param value The value to cast.
15
- * @returns The value as a NonZeroInt32 type.
16
- * @throws {TypeError} If the value is not a non-zero integer in [-2^31, 2^31).
19
+ * @param value - The value to cast
20
+ * @returns The value as a `NonZeroInt32`
21
+ * @throws {TypeError} If the value is not a non-zero integer in [-2^31, 2^31)
17
22
  */
18
23
  export declare const asNonZeroInt32: <N extends number>(x: N) => number & {
19
24
  readonly "!=0": true;
@@ -29,91 +34,84 @@ export declare const asNonZeroInt32: <N extends number>(x: N) => number & {
29
34
  'TSTypeForgeInternals--edd2f9ce-7ca5-45b0-9d1a-bd61b9b5d9c3': unknown;
30
35
  }> & N;
31
36
  /**
32
- * Namespace providing type-safe arithmetic operations for 32-bit non-zero
33
- * signed integers.
37
+ * Namespace providing type-safe operations for the `NonZeroInt32` branded type.
34
38
  *
35
- * All operations automatically clamp results to the valid NonZeroInt32 range
36
- * [-2147483648, 2147483647] excluding 0. This ensures that all arithmetic
37
- * maintains the 32-bit non-zero signed integer constraint, preventing zero
38
- * results and overflow.
39
+ * The `NonZeroInt32` type represents a non-zero integer in [-2^31, 2^31).
40
+ * Division (`div`) uses floor division.
39
41
  */
40
42
  export declare const NonZeroInt32: {
41
43
  /**
42
- * Type guard to check if a value is a NonZeroInt32.
44
+ * Type guard that checks if a value is a non-zero integer in [-2^31, 2^31).
43
45
  *
44
- * @param value The value to check.
45
- * @returns `true` if the value is a 32-bit non-zero signed integer, `false`
46
- * otherwise.
46
+ * @param value - The value to check
47
+ * @returns `true` if the value is a non-zero integer in [-2^31, 2^31), `false` otherwise
48
+ * @see {@link isNonZeroInt32} for usage examples
47
49
  */
48
50
  readonly is: (a: number) => a is TtfImported_NonZeroInt32;
49
51
  /**
50
- * The minimum value for a 32-bit non-zero signed integer.
51
- *
52
- * @readonly
52
+ * The smallest value representable as `NonZeroInt32`.
53
53
  */
54
54
  readonly MIN_VALUE: number;
55
55
  /**
56
- * The maximum value for a 32-bit non-zero signed integer.
57
- *
58
- * @readonly
56
+ * The largest value representable as `NonZeroInt32`.
59
57
  */
60
58
  readonly MAX_VALUE: number;
61
59
  /**
62
- * Returns the absolute value of a 32-bit non-zero signed integer.
60
+ * Returns the absolute value of a non-zero integer in [-2^31, 2^31).
63
61
  *
64
- * @param a The NonZeroInt32 value.
65
- * @returns The absolute value as a NonZeroInt32, clamped to valid range.
62
+ * The result is non-negative and keeps the `NonZeroInt32` brand.
63
+ *
64
+ * @param a - The non-zero integer value
65
+ * @returns The absolute value as a non-negative `NonZeroInt32`
66
66
  */
67
67
  readonly abs: (x: import("ts-type-forge").WithSmallInt<TtfImported_NonZeroInt32>) => import("ts-type-forge").IntersectBrand<TtfImported_NonZeroInt32, import("ts-type-forge").PositiveNumber>;
68
68
  /**
69
- * Returns the smaller of two NonZeroInt32 values.
69
+ * Returns the smallest of the given non-zero integers.
70
70
  *
71
- * @param a The first NonZeroInt32.
72
- * @param b The second NonZeroInt32.
73
- * @returns The minimum value as a NonZeroInt32.
71
+ * @param values - The non-zero integers to compare (at least one required)
72
+ * @returns The smallest value as a `NonZeroInt32`
74
73
  */
75
74
  readonly min: (...values: readonly import("ts-type-forge").WithSmallInt<TtfImported_NonZeroInt32>[]) => TtfImported_NonZeroInt32;
76
75
  /**
77
- * Returns the larger of two NonZeroInt32 values.
76
+ * Returns the largest of the given non-zero integers.
78
77
  *
79
- * @param a The first NonZeroInt32.
80
- * @param b The second NonZeroInt32.
81
- * @returns The maximum value as a NonZeroInt32.
78
+ * @param values - The non-zero integers to compare (at least one required)
79
+ * @returns The largest value as a `NonZeroInt32`
82
80
  */
83
81
  readonly max: (...values: readonly import("ts-type-forge").WithSmallInt<TtfImported_NonZeroInt32>[]) => TtfImported_NonZeroInt32;
84
82
  /**
85
- * Clamps a number to the NonZeroInt32 range (avoiding zero).
83
+ * Clamps a `number` into the `NonZeroInt32` range, rounding to the nearest
84
+ * integer and constraining the result to `[MIN_VALUE, MAX_VALUE]`.
86
85
  *
87
- * @param value The number to clamp.
88
- * @returns The value clamped to [-2147483648, 2147483647] \ {0} as a
89
- * NonZeroInt32.
86
+ * @param value - The value to clamp
87
+ * @returns The clamped value as a `NonZeroInt32`
90
88
  */
91
89
  readonly clamp: (x: number) => TtfImported_NonZeroInt32;
92
90
  /**
93
- * Generates a random NonZeroInt32 value within the valid range.
91
+ * Generates a random `NonZeroInt32` within the given range.
92
+ *
93
+ * The range is inclusive on both ends.
94
94
  *
95
- * @returns A random NonZeroInt32 between MIN_VALUE and MAX_VALUE (excluding
96
- * 0).
95
+ * @param min - The minimum value (inclusive)
96
+ * @param max - The maximum value (inclusive)
97
+ * @returns A random `NonZeroInt32` in `[min, max]`
97
98
  */
98
99
  readonly random: (min?: import("ts-type-forge").WithSmallInt<TtfImported_NonZeroInt32> | undefined, max?: import("ts-type-forge").WithSmallInt<TtfImported_NonZeroInt32> | undefined) => TtfImported_NonZeroInt32;
99
100
  /**
100
- * Raises a NonZeroInt32 to the power of another NonZeroInt32.
101
+ * Raises `a` to the power `b`, returning `a ** b` as a `NonZeroInt32`
102
+ * (floored to an integer).
101
103
  *
102
- * @param a The base NonZeroInt32.
103
- * @param b The exponent NonZeroInt32.
104
- * @returns `a ** b` clamped to [-2147483648, 2147483647] as a NonZeroInt32.
104
+ * @param a - The base non-zero integer
105
+ * @param b - The exponent non-zero integer
106
+ * @returns `a ** b` as a `NonZeroInt32`
105
107
  */
106
108
  readonly pow: (x: import("ts-type-forge").WithSmallInt<TtfImported_NonZeroInt32>, y: import("ts-type-forge").WithSmallInt<TtfImported_NonZeroInt32>) => TtfImported_NonZeroInt32;
107
109
  /**
108
- * Multiplies two NonZeroInt32 values.
109
- *
110
- * The product of two non-zero integers is always non-zero, so this stays
111
- * closed; for the non-closed operations (`add`/`sub`/`div`, whose result may
112
- * be `0`) use {@link Num.add}/{@link Num.sub}/{@link Num.divInt}.
110
+ * Multiplies two non-zero integers, returning `a * b` as a `NonZeroInt32`.
113
111
  *
114
- * @param a The first NonZeroInt32.
115
- * @param b The second NonZeroInt32.
116
- * @returns `a * b` clamped to [-2147483648, 2147483647] as a NonZeroInt32.
112
+ * @param a - The first non-zero integer
113
+ * @param b - The second non-zero integer
114
+ * @returns The product of `a` and `b` as a `NonZeroInt32`
117
115
  */
118
116
  readonly mul: (x: import("ts-type-forge").WithSmallInt<TtfImported_NonZeroInt32>, y: import("ts-type-forge").WithSmallInt<TtfImported_NonZeroInt32>) => TtfImported_NonZeroInt32;
119
117
  };
@@ -1 +1 @@
1
- {"version":3,"file":"non-zero-int32.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/non-zero-int32.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,IAAI,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAI9E,MAAM,MAAM,YAAY,GAAG,wBAAwB,CAAC;AA8BpD;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,8CAAK,CAAC;AAEjC;;;;;;GAMG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;MAAW,CAAC;AAEvC;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY;IACvB;;;;;;OAMG;;IAGH;;;;OAIG;;IAGH;;;;OAIG;;IAGH;;;;;OAKG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;OAKG;;IAGH;;;;;;OAMG;;IAGH;;;;;;;;;;OAUG;;CAEK,CAAC"}
1
+ {"version":3,"file":"non-zero-int32.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/non-zero-int32.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,IAAI,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAI9E,MAAM,MAAM,YAAY,GAAG,wBAAwB,CAAC;AA8BpD;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc,8CAAK,CAAC;AAEjC;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;MAAW,CAAC;AAEvC;;;;;GAKG;AACH,eAAO,MAAM,YAAY;IACvB;;;;;;OAMG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;;;;;;OAOG;;IAGH;;;;;OAKG;;IAGH;;;;;OAKG;;IAGH;;;;;;OAMG;;IAGH;;;;;;;;OAQG;;IAGH;;;;;;;OAOG;;IAGH;;;;;;OAMG;;CAEK,CAAC"}