ts-data-forge 6.13.0 → 7.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (181) hide show
  1. package/README.md +2 -2
  2. package/dist/array/impl/array-utils-iterators.mjs +6 -0
  3. package/dist/array/impl/array-utils-iterators.mjs.map +1 -1
  4. package/dist/array/impl/array-utils-modification.mjs +6 -0
  5. package/dist/array/impl/array-utils-modification.mjs.map +1 -1
  6. package/dist/array/impl/array-utils-reducing-value.mjs +6 -0
  7. package/dist/array/impl/array-utils-reducing-value.mjs.map +1 -1
  8. package/dist/array/impl/array-utils-search.mjs +6 -0
  9. package/dist/array/impl/array-utils-search.mjs.map +1 -1
  10. package/dist/array/impl/array-utils-slice-clamped.mjs +6 -0
  11. package/dist/array/impl/array-utils-slice-clamped.mjs.map +1 -1
  12. package/dist/array/impl/array-utils-slicing.mjs +6 -0
  13. package/dist/array/impl/array-utils-slicing.mjs.map +1 -1
  14. package/dist/array/impl/array-utils-transformation.mjs +6 -0
  15. package/dist/array/impl/array-utils-transformation.mjs.map +1 -1
  16. package/dist/array/impl/array-utils-validation.mjs +6 -0
  17. package/dist/array/impl/array-utils-validation.mjs.map +1 -1
  18. package/dist/collections/imap-mapped.mjs +6 -0
  19. package/dist/collections/imap-mapped.mjs.map +1 -1
  20. package/dist/collections/imap.mjs +6 -0
  21. package/dist/collections/imap.mjs.map +1 -1
  22. package/dist/collections/iset-mapped.mjs +6 -0
  23. package/dist/collections/iset-mapped.mjs.map +1 -1
  24. package/dist/collections/iset.mjs +6 -0
  25. package/dist/collections/iset.mjs.map +1 -1
  26. package/dist/collections/queue.mjs +6 -0
  27. package/dist/collections/queue.mjs.map +1 -1
  28. package/dist/collections/stack.mjs +6 -0
  29. package/dist/collections/stack.mjs.map +1 -1
  30. package/dist/entry-point.mjs +6 -0
  31. package/dist/entry-point.mjs.map +1 -1
  32. package/dist/functional/pipe.d.mts +6 -18
  33. package/dist/functional/pipe.d.mts.map +1 -1
  34. package/dist/functional/pipe.mjs +35 -15
  35. package/dist/functional/pipe.mjs.map +1 -1
  36. package/dist/index.mjs +6 -0
  37. package/dist/index.mjs.map +1 -1
  38. package/dist/iterator/range.mjs +6 -0
  39. package/dist/iterator/range.mjs.map +1 -1
  40. package/dist/json/json.mjs +6 -0
  41. package/dist/json/json.mjs.map +1 -1
  42. package/dist/number/branded-types/finite-number.d.mts +1 -1
  43. package/dist/number/branded-types/index.d.mts +6 -0
  44. package/dist/number/branded-types/index.d.mts.map +1 -1
  45. package/dist/number/branded-types/index.mjs +6 -0
  46. package/dist/number/branded-types/index.mjs.map +1 -1
  47. package/dist/number/branded-types/int.d.mts +1 -2
  48. package/dist/number/branded-types/int.d.mts.map +1 -1
  49. package/dist/number/branded-types/int16.d.mts +2 -3
  50. package/dist/number/branded-types/int16.d.mts.map +1 -1
  51. package/dist/number/branded-types/int32.d.mts +2 -3
  52. package/dist/number/branded-types/int32.d.mts.map +1 -1
  53. package/dist/number/branded-types/negative-finite-number.d.mts +143 -0
  54. package/dist/number/branded-types/negative-finite-number.d.mts.map +1 -0
  55. package/dist/number/branded-types/negative-finite-number.mjs +156 -0
  56. package/dist/number/branded-types/negative-finite-number.mjs.map +1 -0
  57. package/dist/number/branded-types/negative-int.d.mts +120 -0
  58. package/dist/number/branded-types/negative-int.d.mts.map +1 -0
  59. package/dist/number/branded-types/negative-int.mjs +125 -0
  60. package/dist/number/branded-types/negative-int.mjs.map +1 -0
  61. package/dist/number/branded-types/negative-safe-int.d.mts +132 -0
  62. package/dist/number/branded-types/negative-safe-int.d.mts.map +1 -0
  63. package/dist/number/branded-types/negative-safe-int.mjs +136 -0
  64. package/dist/number/branded-types/negative-safe-int.mjs.map +1 -0
  65. package/dist/number/branded-types/non-negative-finite-number.d.mts +1 -1
  66. package/dist/number/branded-types/non-negative-int16.d.mts +1 -1
  67. package/dist/number/branded-types/non-negative-int32.d.mts +1 -1
  68. package/dist/number/branded-types/non-positive-finite-number.d.mts +130 -0
  69. package/dist/number/branded-types/non-positive-finite-number.d.mts.map +1 -0
  70. package/dist/number/branded-types/non-positive-finite-number.mjs +134 -0
  71. package/dist/number/branded-types/non-positive-finite-number.mjs.map +1 -0
  72. package/dist/number/branded-types/non-positive-int.d.mts +224 -0
  73. package/dist/number/branded-types/non-positive-int.d.mts.map +1 -0
  74. package/dist/number/branded-types/non-positive-int.mjs +222 -0
  75. package/dist/number/branded-types/non-positive-int.mjs.map +1 -0
  76. package/dist/number/branded-types/non-positive-safe-int.d.mts +119 -0
  77. package/dist/number/branded-types/non-positive-safe-int.d.mts.map +1 -0
  78. package/dist/number/branded-types/non-positive-safe-int.mjs +116 -0
  79. package/dist/number/branded-types/non-positive-safe-int.mjs.map +1 -0
  80. package/dist/number/branded-types/non-zero-finite-number.d.mts +5 -17
  81. package/dist/number/branded-types/non-zero-finite-number.d.mts.map +1 -1
  82. package/dist/number/branded-types/non-zero-finite-number.mjs +5 -17
  83. package/dist/number/branded-types/non-zero-finite-number.mjs.map +1 -1
  84. package/dist/number/branded-types/non-zero-int.d.mts +5 -33
  85. package/dist/number/branded-types/non-zero-int.d.mts.map +1 -1
  86. package/dist/number/branded-types/non-zero-int.mjs +5 -25
  87. package/dist/number/branded-types/non-zero-int.mjs.map +1 -1
  88. package/dist/number/branded-types/non-zero-int16.d.mts +6 -43
  89. package/dist/number/branded-types/non-zero-int16.d.mts.map +1 -1
  90. package/dist/number/branded-types/non-zero-int16.mjs +5 -25
  91. package/dist/number/branded-types/non-zero-int16.mjs.map +1 -1
  92. package/dist/number/branded-types/non-zero-int32.d.mts +6 -39
  93. package/dist/number/branded-types/non-zero-int32.d.mts.map +1 -1
  94. package/dist/number/branded-types/non-zero-int32.mjs +5 -25
  95. package/dist/number/branded-types/non-zero-int32.mjs.map +1 -1
  96. package/dist/number/branded-types/non-zero-safe-int.d.mts +5 -37
  97. package/dist/number/branded-types/non-zero-safe-int.d.mts.map +1 -1
  98. package/dist/number/branded-types/non-zero-safe-int.mjs +5 -28
  99. package/dist/number/branded-types/non-zero-safe-int.mjs.map +1 -1
  100. package/dist/number/branded-types/non-zero-uint16.d.mts +6 -33
  101. package/dist/number/branded-types/non-zero-uint16.d.mts.map +1 -1
  102. package/dist/number/branded-types/non-zero-uint16.mjs +5 -17
  103. package/dist/number/branded-types/non-zero-uint16.mjs.map +1 -1
  104. package/dist/number/branded-types/non-zero-uint32.d.mts +6 -31
  105. package/dist/number/branded-types/non-zero-uint32.d.mts.map +1 -1
  106. package/dist/number/branded-types/non-zero-uint32.mjs +5 -17
  107. package/dist/number/branded-types/non-zero-uint32.mjs.map +1 -1
  108. package/dist/number/branded-types/positive-finite-number.d.mts +4 -2
  109. package/dist/number/branded-types/positive-finite-number.d.mts.map +1 -1
  110. package/dist/number/branded-types/positive-int.d.mts +4 -2
  111. package/dist/number/branded-types/positive-int.d.mts.map +1 -1
  112. package/dist/number/branded-types/positive-int16.d.mts +4 -2
  113. package/dist/number/branded-types/positive-int16.d.mts.map +1 -1
  114. package/dist/number/branded-types/positive-int32.d.mts +4 -2
  115. package/dist/number/branded-types/positive-int32.d.mts.map +1 -1
  116. package/dist/number/branded-types/positive-safe-int.d.mts +4 -2
  117. package/dist/number/branded-types/positive-safe-int.d.mts.map +1 -1
  118. package/dist/number/branded-types/positive-uint16.d.mts +4 -2
  119. package/dist/number/branded-types/positive-uint16.d.mts.map +1 -1
  120. package/dist/number/branded-types/positive-uint32.d.mts +4 -2
  121. package/dist/number/branded-types/positive-uint32.d.mts.map +1 -1
  122. package/dist/number/branded-types/safe-int.d.mts +1 -2
  123. package/dist/number/branded-types/safe-int.d.mts.map +1 -1
  124. package/dist/number/branded-types/safe-uint.d.mts +1 -1
  125. package/dist/number/branded-types/uint.d.mts +1 -1
  126. package/dist/number/branded-types/uint16.d.mts +1 -1
  127. package/dist/number/branded-types/uint32.d.mts +1 -1
  128. package/dist/number/index.d.mts +1 -0
  129. package/dist/number/index.d.mts.map +1 -1
  130. package/dist/number/index.mjs +6 -0
  131. package/dist/number/index.mjs.map +1 -1
  132. package/dist/number/num-arithmetic-types.d.mts +74 -0
  133. package/dist/number/num-arithmetic-types.d.mts.map +1 -0
  134. package/dist/number/num-arithmetic-types.mjs +2 -0
  135. package/dist/number/num-arithmetic-types.mjs.map +1 -0
  136. package/dist/number/num.d.mts +53 -9
  137. package/dist/number/num.d.mts.map +1 -1
  138. package/dist/number/num.mjs +64 -12
  139. package/dist/number/num.mjs.map +1 -1
  140. package/dist/number/refined-number-utils.d.mts +12 -9
  141. package/dist/number/refined-number-utils.d.mts.map +1 -1
  142. package/dist/number/refined-number-utils.mjs.map +1 -1
  143. package/dist/object/object.mjs +6 -0
  144. package/dist/object/object.mjs.map +1 -1
  145. package/package.json +5 -2
  146. package/src/functional/pipe.mts +104 -78
  147. package/src/functional/pipe.test.mts +57 -1
  148. package/src/number/branded-types/index.mts +6 -0
  149. package/src/number/branded-types/negative-finite-number.mts +210 -0
  150. package/src/number/branded-types/negative-finite-number.test.mts +172 -0
  151. package/src/number/branded-types/negative-int.mts +160 -0
  152. package/src/number/branded-types/negative-int.test.mts +146 -0
  153. package/src/number/branded-types/negative-safe-int.mts +173 -0
  154. package/src/number/branded-types/negative-safe-int.test.mts +120 -0
  155. package/src/number/branded-types/non-positive-finite-number.mts +191 -0
  156. package/src/number/branded-types/non-positive-finite-number.test.mts +286 -0
  157. package/src/number/branded-types/non-positive-int.mts +251 -0
  158. package/src/number/branded-types/non-positive-int.test.mts +197 -0
  159. package/src/number/branded-types/non-positive-safe-int.mts +147 -0
  160. package/src/number/branded-types/non-positive-safe-int.test.mts +223 -0
  161. package/src/number/branded-types/non-zero-finite-number.mts +14 -22
  162. package/src/number/branded-types/non-zero-finite-number.test.mts +0 -12
  163. package/src/number/branded-types/non-zero-int.mts +10 -32
  164. package/src/number/branded-types/non-zero-int.test.mts +0 -20
  165. package/src/number/branded-types/non-zero-int16.mts +8 -32
  166. package/src/number/branded-types/non-zero-int16.test.mts +0 -30
  167. package/src/number/branded-types/non-zero-int32.mts +8 -32
  168. package/src/number/branded-types/non-zero-int32.test.mts +0 -30
  169. package/src/number/branded-types/non-zero-safe-int.mts +8 -35
  170. package/src/number/branded-types/non-zero-safe-int.test.mts +0 -32
  171. package/src/number/branded-types/non-zero-uint16.mts +8 -22
  172. package/src/number/branded-types/non-zero-uint16.test.mts +0 -16
  173. package/src/number/branded-types/non-zero-uint32.mts +8 -22
  174. package/src/number/branded-types/non-zero-uint32.test.mts +0 -16
  175. package/src/number/index.mts +1 -0
  176. package/src/number/num-arithmetic-types.mts +269 -0
  177. package/src/number/num-arithmetic-types.test.mts +130 -0
  178. package/src/number/num-arithmetic.test.mts +102 -0
  179. package/src/number/num.mts +96 -15
  180. package/src/number/refined-number-utils.mts +19 -9
  181. package/src/others/map-nullable.test.mts +3 -4
@@ -19,12 +19,13 @@ export declare const asNonZeroUint32: <N extends number>(x: N) => number & {
19
19
  readonly NaNValue: false;
20
20
  readonly Finite: true;
21
21
  readonly Int: true;
22
- readonly "!=0": true;
23
22
  readonly "> -2^16": true;
24
23
  readonly "> -2^32": true;
25
24
  readonly ">= -2^15": true;
26
25
  readonly ">= -2^31": true;
27
26
  readonly ">=0": true;
27
+ readonly "!=0": true;
28
+ readonly "<=0": false;
28
29
  readonly "< 2^32": true;
29
30
  readonly SafeInt: true;
30
31
  } & Readonly<{
@@ -105,43 +106,17 @@ export declare const NonZeroUint32: {
105
106
  * @returns `a + b` clamped to [1, 4294967295] as a NonZeroUint32.
106
107
  */
107
108
  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;
108
- /**
109
- * Subtracts one NonZeroUint32 from another.
110
- *
111
- * @param a The minuend NonZeroUint32.
112
- * @param b The subtrahend NonZeroUint32.
113
- * @returns `a - b` clamped to [1, 4294967295] as a NonZeroUint32 (minimum 1).
114
- */
115
- readonly sub: (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;
116
109
  /**
117
110
  * Multiplies two NonZeroUint32 values.
118
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}.
115
+ *
119
116
  * @param a The first NonZeroUint32.
120
117
  * @param b The second NonZeroUint32.
121
118
  * @returns `a * b` clamped to [1, 4294967295] as a NonZeroUint32.
122
119
  */
123
120
  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;
124
- /**
125
- * Divides one NonZeroUint32 by another using floor division.
126
- *
127
- * @param a The dividend NonZeroUint32.
128
- * @param b The divisor NonZeroUint32.
129
- * @returns `⌊a / b⌋` clamped to [1, 4294967295] as a NonZeroUint32.
130
- */
131
- readonly div: (x: import("ts-type-forge").WithSmallInt<import("ts-type-forge").PositiveUint32>, y: 1 | 2 | 3 | 32 | 4 | 5 | 6 | 7 | 8 | 9 | 11 | 10 | 20 | 30 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 31 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | import("ts-type-forge").NormalizeBrandUnion<number & {
132
- readonly NaNValue: false;
133
- readonly Finite: true;
134
- readonly Int: true;
135
- readonly "!=0": true;
136
- readonly "> -2^16": true;
137
- readonly "> -2^32": true;
138
- readonly ">= -2^15": true;
139
- readonly ">= -2^31": true;
140
- readonly ">=0": true;
141
- readonly "< 2^32": true;
142
- readonly SafeInt: true;
143
- } & Readonly<{
144
- 'TSTypeForgeInternals--edd2f9ce-7ca5-45b0-9d1a-bd61b9b5d9c3': unknown;
145
- }>>) => import("ts-type-forge").PositiveUint32;
146
121
  };
147
122
  //# sourceMappingURL=non-zero-uint32.d.mts.map
@@ -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;AAgCtD;;;;;;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;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;;;;;;;;;;;;;;;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;;;;;;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,7 +1,7 @@
1
1
  import { TsDataForgeInternals } from '../refined-number-utils.mjs';
2
2
 
3
3
  const typeNameInMessage = 'a non-zero integer in [1, 2^32)';
4
- const { MAX_VALUE, MIN_VALUE, add, castType, clamp, div, is, max: max_, min: min_, mul, pow, randomNonZero: random, sub, } = TsDataForgeInternals.RefinedNumberUtils.operatorsForInteger({
4
+ const { MAX_VALUE, MIN_VALUE, add, castType, clamp, is, max: max_, min: min_, mul, pow, randomNonZero: random, } = TsDataForgeInternals.RefinedNumberUtils.operatorsForInteger({
5
5
  integerOrSafeInteger: 'SafeInteger',
6
6
  nonZero: true,
7
7
  MIN_VALUE: 1,
@@ -99,30 +99,18 @@ const NonZeroUint32 = {
99
99
  * @returns `a + b` clamped to [1, 4294967295] as a NonZeroUint32.
100
100
  */
101
101
  add,
102
- /**
103
- * Subtracts one NonZeroUint32 from another.
104
- *
105
- * @param a The minuend NonZeroUint32.
106
- * @param b The subtrahend NonZeroUint32.
107
- * @returns `a - b` clamped to [1, 4294967295] as a NonZeroUint32 (minimum 1).
108
- */
109
- sub,
110
102
  /**
111
103
  * Multiplies two NonZeroUint32 values.
112
104
  *
105
+ * Both `add` and `mul` stay within `[1, 4294967295]`. For the non-closed
106
+ * operations (`sub`/`div`, whose result may be `0`) use {@link Num.sub} /
107
+ * {@link Num.divInt}.
108
+ *
113
109
  * @param a The first NonZeroUint32.
114
110
  * @param b The second NonZeroUint32.
115
111
  * @returns `a * b` clamped to [1, 4294967295] as a NonZeroUint32.
116
112
  */
117
113
  mul,
118
- /**
119
- * Divides one NonZeroUint32 by another using floor division.
120
- *
121
- * @param a The dividend NonZeroUint32.
122
- * @param b The divisor NonZeroUint32.
123
- * @returns `⌊a / b⌋` clamped to [1, 4294967295] as a NonZeroUint32.
124
- */
125
- div,
126
114
  };
127
115
 
128
116
  export { NonZeroUint32, asNonZeroUint32, isNonZeroUint32 };
@@ -1 +1 @@
1
- {"version":3,"file":"non-zero-uint32.mjs","sources":["../../../src/number/branded-types/non-zero-uint32.mts"],"sourcesContent":[null],"names":[],"mappings":";;AAQA,MAAM,iBAAiB,GAAG,iCAAiC;AAE3D,MAAM,EACJ,SAAS,EACT,SAAS,EACT,GAAG,EACH,QAAQ,EACR,KAAK,EACL,GAAG,EACH,EAAE,EACF,GAAG,EAAE,IAAI,EACT,GAAG,EAAE,IAAI,EACT,GAAG,EACH,GAAG,EACH,aAAa,EAAE,MAAM,EACrB,GAAG,GACJ,GAAG,oBAAoB,CAAC,kBAAkB,CAAC,mBAAmB,CAI7D;AACA,IAAA,oBAAoB,EAAE,aAAa;AACnC,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,SAAS,EAAE,CAAC;AACZ,IAAA,SAAS,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC;IACtB,iBAAiB;AACT,CAAA,CAAC;AAEX;;;;;;AAMG;AACI,MAAM,eAAe,GAAG;AAE/B;;;;;;AAMG;AACI,MAAM,eAAe,GAAG;AAE/B;;;;;;;;AAQG;AACI,MAAM,aAAa,GAAG;AAC3B;;;;;;AAMG;IACH,EAAE;AAEF;;;;AAIG;IACH,SAAS;AAET;;;;AAIG;IACH,SAAS;AAET;;;;;;AAMG;AACH,IAAA,GAAG,EAAE,IAAI;AAET;;;;;;AAMG;AACH,IAAA,GAAG,EAAE,IAAI;AAET;;;;;AAKG;IACH,KAAK;AAEL;;;;AAIG;IACH,MAAM;AAEN;;;;;;AAMG;IACH,GAAG;AAEH;;;;;;AAMG;IACH,GAAG;AAEH;;;;;;AAMG;IACH,GAAG;AAEH;;;;;;AAMG;IACH,GAAG;AAEH;;;;;;AAMG;IACH,GAAG;;;;;"}
1
+ {"version":3,"file":"non-zero-uint32.mjs","sources":["../../../src/number/branded-types/non-zero-uint32.mts"],"sourcesContent":[null],"names":[],"mappings":";;AAQA,MAAM,iBAAiB,GAAG,iCAAiC;AAE3D,MAAM,EACJ,SAAS,EACT,SAAS,EACT,GAAG,EACH,QAAQ,EACR,KAAK,EACL,EAAE,EACF,GAAG,EAAE,IAAI,EACT,GAAG,EAAE,IAAI,EACT,GAAG,EACH,GAAG,EACH,aAAa,EAAE,MAAM,GACtB,GAAG,oBAAoB,CAAC,kBAAkB,CAAC,mBAAmB,CAI7D;AACA,IAAA,oBAAoB,EAAE,aAAa;AACnC,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,SAAS,EAAE,CAAC;AACZ,IAAA,SAAS,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC;IACtB,iBAAiB;AACT,CAAA,CAAC;AAEX;;;;;;AAMG;AACI,MAAM,eAAe,GAAG;AAE/B;;;;;;AAMG;AACI,MAAM,eAAe,GAAG;AAE/B;;;;;;;;AAQG;AACI,MAAM,aAAa,GAAG;AAC3B;;;;;;AAMG;IACH,EAAE;AAEF;;;;AAIG;IACH,SAAS;AAET;;;;AAIG;IACH,SAAS;AAET;;;;;;AAMG;AACH,IAAA,GAAG,EAAE,IAAI;AAET;;;;;;AAMG;AACH,IAAA,GAAG,EAAE,IAAI;AAET;;;;;AAKG;IACH,KAAK;AAEL;;;;AAIG;IACH,MAAM;AAEN;;;;;;AAMG;IACH,GAAG;AAEH;;;;;;AAMG;IACH,GAAG;AAEH;;;;;;;;;;AAUG;IACH,GAAG;;;;;"}
@@ -19,12 +19,13 @@ export declare const isPositiveFiniteNumber: (a: number) => a is TtfImported_Pos
19
19
  export declare const asPositiveFiniteNumber: <N extends number>(x: N) => number & {
20
20
  readonly NaNValue: false;
21
21
  readonly Finite: true;
22
- readonly "!=0": true;
23
22
  readonly "> -2^16": true;
24
23
  readonly "> -2^32": true;
25
24
  readonly ">= -2^15": true;
26
25
  readonly ">= -2^31": true;
27
26
  readonly ">=0": true;
27
+ readonly "!=0": true;
28
+ readonly "<=0": false;
28
29
  } & Readonly<{
29
30
  'TSTypeForgeInternals--edd2f9ce-7ca5-45b0-9d1a-bd61b9b5d9c3': unknown;
30
31
  }> & N;
@@ -145,12 +146,13 @@ export declare const PositiveFiniteNumber: {
145
146
  readonly div: (x: TtfImported_PositiveFiniteNumber, y: number & {
146
147
  readonly NaNValue: false;
147
148
  readonly Finite: true;
148
- readonly "!=0": true;
149
149
  readonly "> -2^16": true;
150
150
  readonly "> -2^32": true;
151
151
  readonly ">= -2^15": true;
152
152
  readonly ">= -2^31": true;
153
153
  readonly ">=0": true;
154
+ readonly "!=0": true;
155
+ readonly "<=0": false;
154
156
  } & Readonly<{
155
157
  'TSTypeForgeInternals--edd2f9ce-7ca5-45b0-9d1a-bd61b9b5d9c3': unknown;
156
158
  }>) => TtfImported_PositiveFiniteNumber;
@@ -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;;;;;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"}
@@ -45,12 +45,13 @@ export declare const asPositiveInt: <N extends number>(x: N) => number & {
45
45
  readonly NaNValue: false;
46
46
  readonly Finite: true;
47
47
  readonly Int: true;
48
- readonly "!=0": true;
49
48
  readonly "> -2^16": true;
50
49
  readonly "> -2^32": true;
51
50
  readonly ">= -2^15": true;
52
51
  readonly ">= -2^31": true;
53
52
  readonly ">=0": true;
53
+ readonly "!=0": true;
54
+ readonly "<=0": false;
54
55
  } & Readonly<{
55
56
  'TSTypeForgeInternals--edd2f9ce-7ca5-45b0-9d1a-bd61b9b5d9c3': unknown;
56
57
  }> & N;
@@ -283,12 +284,13 @@ export declare const PositiveInt: {
283
284
  readonly NaNValue: false;
284
285
  readonly Finite: true;
285
286
  readonly Int: true;
286
- readonly "!=0": true;
287
287
  readonly "> -2^16": true;
288
288
  readonly "> -2^32": true;
289
289
  readonly ">= -2^15": true;
290
290
  readonly ">= -2^31": true;
291
291
  readonly ">=0": true;
292
+ readonly "!=0": true;
293
+ readonly "<=0": false;
292
294
  } & Readonly<{
293
295
  'TSTypeForgeInternals--edd2f9ce-7ca5-45b0-9d1a-bd61b9b5d9c3': unknown;
294
296
  }>>) => TtfImported_PositiveInt;
@@ -1 +1 @@
1
- {"version":3,"file":"positive-int.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/positive-int.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,IAAI,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAI5E,MAAM,MAAM,WAAW,GAAG,uBAAuB,CAAC;AA8BlD;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,aAAa,6CAAK,CAAC;AAEhC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;MAAW,CAAC;AAEtC;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,WAAW;IACtB;;;;;;;;;;;;;;;;OAgBG;;IAGH;;;;OAIG;;IAGH;;;;;;;;;;;;;;;;;;;;OAoBG;;IAGH;;;;;;;;;;;;;;;;;OAiBG;;IAGH;;;;;;;;;;;;;;;;;;;;OAoBG;;IAGH;;;;;;;;;;;;;;;;;;;;;;;OAuBG;;IAGH;;;;;;;;;;;;;;;;;;;OAmBG;;IAGH;;;;;;;;;;;;;;OAcG;;IAGH;;;;;;;;;;;;;;;;;OAiBG;;IAGH;;;;;;;;;;;;;;OAcG;;IAGH;;;;;;;;;;;;;;;;;;;;;;;OAuBG;;;;;;;;;;;;;;CAEK,CAAC"}
1
+ {"version":3,"file":"positive-int.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/positive-int.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,IAAI,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAI5E,MAAM,MAAM,WAAW,GAAG,uBAAuB,CAAC;AA8BlD;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,aAAa,6CAAK,CAAC;AAEhC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;MAAW,CAAC;AAEtC;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,WAAW;IACtB;;;;;;;;;;;;;;;;OAgBG;;IAGH;;;;OAIG;;IAGH;;;;;;;;;;;;;;;;;;;;OAoBG;;IAGH;;;;;;;;;;;;;;;;;OAiBG;;IAGH;;;;;;;;;;;;;;;;;;;;OAoBG;;IAGH;;;;;;;;;;;;;;;;;;;;;;;OAuBG;;IAGH;;;;;;;;;;;;;;;;;;;OAmBG;;IAGH;;;;;;;;;;;;;;OAcG;;IAGH;;;;;;;;;;;;;;;;;OAiBG;;IAGH;;;;;;;;;;;;;;OAcG;;IAGH;;;;;;;;;;;;;;;;;;;;;;;OAuBG;;;;;;;;;;;;;;;CAEK,CAAC"}
@@ -19,12 +19,13 @@ export declare const asPositiveInt16: <N extends number>(x: N) => number & {
19
19
  readonly NaNValue: false;
20
20
  readonly Finite: true;
21
21
  readonly Int: true;
22
- readonly "!=0": true;
23
22
  readonly "> -2^16": true;
24
23
  readonly "> -2^32": true;
25
24
  readonly ">= -2^15": true;
26
25
  readonly ">= -2^31": true;
27
26
  readonly ">=0": true;
27
+ readonly "!=0": true;
28
+ readonly "<=0": false;
28
29
  readonly "< 2^15": true;
29
30
  readonly "< 2^16": true;
30
31
  readonly "< 2^31": true;
@@ -135,12 +136,13 @@ export declare const PositiveInt16: {
135
136
  readonly NaNValue: false;
136
137
  readonly Finite: true;
137
138
  readonly Int: true;
138
- readonly "!=0": true;
139
139
  readonly "> -2^16": true;
140
140
  readonly "> -2^32": true;
141
141
  readonly ">= -2^15": true;
142
142
  readonly ">= -2^31": true;
143
143
  readonly ">=0": true;
144
+ readonly "!=0": true;
145
+ readonly "<=0": false;
144
146
  readonly "< 2^15": true;
145
147
  readonly "< 2^16": true;
146
148
  readonly "< 2^31": true;
@@ -1 +1 @@
1
- {"version":3,"file":"positive-int16.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/positive-int16.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,IAAI,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAIhF,MAAM,MAAM,aAAa,GAAG,yBAAyB,CAAC;AA+BtD;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,+CAAK,CAAC;AAElC;;;;;;GAMG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;MAAW,CAAC;AAExC;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa;IACxB;;;;;;OAMG;;IAGH;;;;OAIG;;IAGH;;;;OAIG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;OAKG;;IAGH;;;;OAIG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;;;;;;;;;;;;;;;;;;CAEK,CAAC"}
1
+ {"version":3,"file":"positive-int16.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/positive-int16.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,IAAI,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAIhF,MAAM,MAAM,aAAa,GAAG,yBAAyB,CAAC;AA+BtD;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,+CAAK,CAAC;AAElC;;;;;;GAMG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;MAAW,CAAC;AAExC;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa;IACxB;;;;;;OAMG;;IAGH;;;;OAIG;;IAGH;;;;OAIG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;OAKG;;IAGH;;;;OAIG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;;;;;;;;;;;;;;;;;;;CAEK,CAAC"}
@@ -19,12 +19,13 @@ export declare const asPositiveInt32: <N extends number>(x: N) => number & {
19
19
  readonly NaNValue: false;
20
20
  readonly Finite: true;
21
21
  readonly Int: true;
22
- readonly "!=0": true;
23
22
  readonly "> -2^16": true;
24
23
  readonly "> -2^32": true;
25
24
  readonly ">= -2^15": true;
26
25
  readonly ">= -2^31": true;
27
26
  readonly ">=0": true;
27
+ readonly "!=0": true;
28
+ readonly "<=0": false;
28
29
  readonly "< 2^31": true;
29
30
  readonly "< 2^32": true;
30
31
  readonly SafeInt: true;
@@ -133,12 +134,13 @@ export declare const PositiveInt32: {
133
134
  readonly NaNValue: false;
134
135
  readonly Finite: true;
135
136
  readonly Int: true;
136
- readonly "!=0": true;
137
137
  readonly "> -2^16": true;
138
138
  readonly "> -2^32": true;
139
139
  readonly ">= -2^15": true;
140
140
  readonly ">= -2^31": true;
141
141
  readonly ">=0": true;
142
+ readonly "!=0": true;
143
+ readonly "<=0": false;
142
144
  readonly "< 2^31": true;
143
145
  readonly "< 2^32": true;
144
146
  readonly SafeInt: true;
@@ -1 +1 @@
1
- {"version":3,"file":"positive-int32.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/positive-int32.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,IAAI,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAIhF,MAAM,MAAM,aAAa,GAAG,yBAAyB,CAAC;AA+BtD;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,+CAAK,CAAC;AAElC;;;;;;GAMG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;MAAW,CAAC;AAExC;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa;IACxB;;;;;;OAMG;;IAGH;;;;OAIG;;IAGH;;;;OAIG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;OAKG;;IAGH;;;;OAIG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;;;;;;;;;;;;;;;;CAEK,CAAC"}
1
+ {"version":3,"file":"positive-int32.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/positive-int32.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,IAAI,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAIhF,MAAM,MAAM,aAAa,GAAG,yBAAyB,CAAC;AA+BtD;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,+CAAK,CAAC;AAElC;;;;;;GAMG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;MAAW,CAAC;AAExC;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa;IACxB;;;;;;OAMG;;IAGH;;;;OAIG;;IAGH;;;;OAIG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;OAKG;;IAGH;;;;OAIG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;;;;;;;;;;;;;;;;;CAEK,CAAC"}
@@ -41,12 +41,13 @@ export declare const asPositiveSafeInt: <N extends number>(x: N) => number & {
41
41
  readonly NaNValue: false;
42
42
  readonly Finite: true;
43
43
  readonly Int: true;
44
- readonly "!=0": true;
45
44
  readonly "> -2^16": true;
46
45
  readonly "> -2^32": true;
47
46
  readonly ">= -2^15": true;
48
47
  readonly ">= -2^31": true;
49
48
  readonly ">=0": true;
49
+ readonly "!=0": true;
50
+ readonly "<=0": false;
50
51
  readonly SafeInt: true;
51
52
  } & Readonly<{
52
53
  'TSTypeForgeInternals--edd2f9ce-7ca5-45b0-9d1a-bd61b9b5d9c3': unknown;
@@ -287,12 +288,13 @@ export declare const PositiveSafeInt: {
287
288
  readonly NaNValue: false;
288
289
  readonly Finite: true;
289
290
  readonly Int: true;
290
- readonly "!=0": true;
291
291
  readonly "> -2^16": true;
292
292
  readonly "> -2^32": true;
293
293
  readonly ">= -2^15": true;
294
294
  readonly ">= -2^31": true;
295
295
  readonly ">=0": true;
296
+ readonly "!=0": true;
297
+ readonly "<=0": false;
296
298
  readonly SafeInt: true;
297
299
  } & Readonly<{
298
300
  'TSTypeForgeInternals--edd2f9ce-7ca5-45b0-9d1a-bd61b9b5d9c3': unknown;
@@ -1 +1 @@
1
- {"version":3,"file":"positive-safe-int.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/positive-safe-int.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,eAAe,IAAI,2BAA2B,EACpD,MAAM,eAAe,CAAC;AAIvB,MAAM,MAAM,eAAe,GAAG,2BAA2B,CAAC;AAgC1D;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,iBAAiB,iDAAK,CAAC;AAEpC;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;MAAW,CAAC;AAE1C;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe;IAC1B;;;;;;;;;;;;;;;;;;OAkBG;;IAGH;;;;OAIG;;IAGH;;;;OAIG;;IAGH;;;;;;;;;;;;;;;;;OAiBG;;IAGH;;;;;;;;;;;;;;;;;OAiBG;;IAGH;;;;;;;;;;;;;;;;;;;;;OAqBG;;IAGH;;;;;;;;;;;;;;;;;;OAkBG;;IAGH;;;;;;;;;;;;;;;;;;OAkBG;;IAGH;;;;;;;;;;;;;;;;;;;OAmBG;;IAGH;;;;;;;;;;;;;;;;;;;;OAoBG;;IAGH;;;;;;;;;;;;;;;;;;;OAmBG;;IAGH;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;;;;;;;;;;;;;;;CAEK,CAAC"}
1
+ {"version":3,"file":"positive-safe-int.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/positive-safe-int.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,eAAe,IAAI,2BAA2B,EACpD,MAAM,eAAe,CAAC;AAIvB,MAAM,MAAM,eAAe,GAAG,2BAA2B,CAAC;AAgC1D;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,iBAAiB,iDAAK,CAAC;AAEpC;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;MAAW,CAAC;AAE1C;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe;IAC1B;;;;;;;;;;;;;;;;;;OAkBG;;IAGH;;;;OAIG;;IAGH;;;;OAIG;;IAGH;;;;;;;;;;;;;;;;;OAiBG;;IAGH;;;;;;;;;;;;;;;;;OAiBG;;IAGH;;;;;;;;;;;;;;;;;;;;;OAqBG;;IAGH;;;;;;;;;;;;;;;;;;OAkBG;;IAGH;;;;;;;;;;;;;;;;;;OAkBG;;IAGH;;;;;;;;;;;;;;;;;;;OAmBG;;IAGH;;;;;;;;;;;;;;;;;;;;OAoBG;;IAGH;;;;;;;;;;;;;;;;;;;OAmBG;;IAGH;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;;;;;;;;;;;;;;;;CAEK,CAAC"}
@@ -19,12 +19,13 @@ export declare const asPositiveUint16: <N extends number>(x: N) => number & {
19
19
  readonly NaNValue: false;
20
20
  readonly Finite: true;
21
21
  readonly Int: true;
22
- readonly "!=0": true;
23
22
  readonly "> -2^16": true;
24
23
  readonly "> -2^32": true;
25
24
  readonly ">= -2^15": true;
26
25
  readonly ">= -2^31": true;
27
26
  readonly ">=0": true;
27
+ readonly "!=0": true;
28
+ readonly "<=0": false;
28
29
  readonly "< 2^16": true;
29
30
  readonly "< 2^31": true;
30
31
  readonly "< 2^32": true;
@@ -134,12 +135,13 @@ export declare const PositiveUint16: {
134
135
  readonly NaNValue: false;
135
136
  readonly Finite: true;
136
137
  readonly Int: true;
137
- readonly "!=0": true;
138
138
  readonly "> -2^16": true;
139
139
  readonly "> -2^32": true;
140
140
  readonly ">= -2^15": true;
141
141
  readonly ">= -2^31": true;
142
142
  readonly ">=0": true;
143
+ readonly "!=0": true;
144
+ readonly "<=0": false;
143
145
  readonly "< 2^16": true;
144
146
  readonly "< 2^31": true;
145
147
  readonly "< 2^32": true;
@@ -1 +1 @@
1
- {"version":3,"file":"positive-uint16.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/positive-uint16.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,IAAI,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAIlF,MAAM,MAAM,cAAc,GAAG,0BAA0B,CAAC;AA+BxD;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,gDAAK,CAAC;AAEnC;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;MAAW,CAAC;AAEzC;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc;IACzB;;;;;;OAMG;;IAGH;;;;OAIG;;IAGH;;;;OAIG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;OAKG;;IAGH;;;;OAIG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;;;;;;;;;;;;;;;;;CAEK,CAAC"}
1
+ {"version":3,"file":"positive-uint16.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/positive-uint16.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,IAAI,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAIlF,MAAM,MAAM,cAAc,GAAG,0BAA0B,CAAC;AA+BxD;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,gDAAK,CAAC;AAEnC;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;MAAW,CAAC;AAEzC;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc;IACzB;;;;;;OAMG;;IAGH;;;;OAIG;;IAGH;;;;OAIG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;OAKG;;IAGH;;;;OAIG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;;;;;;;;;;;;;;;;;;CAEK,CAAC"}
@@ -19,12 +19,13 @@ export declare const asPositiveUint32: <N extends number>(x: N) => number & {
19
19
  readonly NaNValue: false;
20
20
  readonly Finite: true;
21
21
  readonly Int: true;
22
- readonly "!=0": true;
23
22
  readonly "> -2^16": true;
24
23
  readonly "> -2^32": true;
25
24
  readonly ">= -2^15": true;
26
25
  readonly ">= -2^31": true;
27
26
  readonly ">=0": true;
27
+ readonly "!=0": true;
28
+ readonly "<=0": false;
28
29
  readonly "< 2^32": true;
29
30
  readonly SafeInt: true;
30
31
  } & Readonly<{
@@ -133,12 +134,13 @@ export declare const PositiveUint32: {
133
134
  readonly NaNValue: false;
134
135
  readonly Finite: true;
135
136
  readonly Int: true;
136
- readonly "!=0": true;
137
137
  readonly "> -2^16": true;
138
138
  readonly "> -2^32": true;
139
139
  readonly ">= -2^15": true;
140
140
  readonly ">= -2^31": true;
141
141
  readonly ">=0": true;
142
+ readonly "!=0": true;
143
+ readonly "<=0": false;
142
144
  readonly "< 2^32": true;
143
145
  readonly SafeInt: true;
144
146
  } & Readonly<{
@@ -1 +1 @@
1
- {"version":3,"file":"positive-uint32.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/positive-uint32.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,IAAI,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAIlF,MAAM,MAAM,cAAc,GAAG,0BAA0B,CAAC;AA+BxD;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,gDAAK,CAAC;AAEnC;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;MAAW,CAAC;AAEzC;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc;IACzB;;;;;;OAMG;;IAGH;;;;OAIG;;IAGH;;;;OAIG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;OAKG;;IAGH;;;;OAIG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;;;OAOG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;;;;;;;;;;;;;;;CAEK,CAAC"}
1
+ {"version":3,"file":"positive-uint32.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/positive-uint32.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,IAAI,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAIlF,MAAM,MAAM,cAAc,GAAG,0BAA0B,CAAC;AA+BxD;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,gDAAK,CAAC;AAEnC;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;MAAW,CAAC;AAEzC;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc;IACzB;;;;;;OAMG;;IAGH;;;;OAIG;;IAGH;;;;OAIG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;OAKG;;IAGH;;;;OAIG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;IAGH;;;;;;;OAOG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;;;;;;;;;;;;;;;;CAEK,CAAC"}
@@ -1,5 +1,4 @@
1
1
  import { type SafeUint, type SafeInt as TtfImported_SafeInt } from 'ts-type-forge';
2
- import { TsDataForgeInternals } from '../refined-number-utils.mjs';
3
2
  export type SafeInt = TtfImported_SafeInt;
4
3
  /**
5
4
  * Type guard that checks if a value is a safe integer.
@@ -118,7 +117,7 @@ export declare const SafeInt: {
118
117
  * @param a - The safe integer value
119
118
  * @returns The absolute value as a SafeInt, clamped if necessary
120
119
  */
121
- readonly abs: (x: import("ts-type-forge").WithSmallInt<TtfImported_SafeInt>) => TsDataForgeInternals.RefinedNumberUtils.ToNonNegative<TtfImported_SafeInt>;
120
+ readonly abs: (x: import("ts-type-forge").WithSmallInt<TtfImported_SafeInt>) => import("ts-type-forge").IntersectBrand<TtfImported_SafeInt, import("ts-type-forge").NonNegativeNumber>;
122
121
  /**
123
122
  * Returns the minimum value from a list of safe integers.
124
123
  *
@@ -1 +1 @@
1
- {"version":3,"file":"safe-int.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/safe-int.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,OAAO,IAAI,mBAAmB,EACpC,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,MAAM,MAAM,OAAO,GAAG,mBAAmB,CAAC;AAkC1C;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,SAAS,yCAAK,CAAC;AAE5B;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,SAAS;;;;;;;MAAW,CAAC;AAElC;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,OAAO;IAClB;;;;;;;;;;;;;;;;OAgBG;;IAGH;;;;OAIG;;IAGH;;;;OAIG;;IAGH;;;;;;;;;;;;;;;;;;;;OAoBG;;IAGH;;;;;;;;;;;;;OAaG;;IAGH;;;;;;;;;;;;;OAaG;;IAGH;;;;;;;;;;;;;;;;;;;;;;OAsBG;;IAGH;;;;;;;;;;;;;;;;;;;;;;;OAuBG;;IAGH;;;;;;;;;;;;;;;;;;;;OAoBG;;IAGH;;;;;;;;;;;;;;;;OAgBG;;IAGH;;;;;;;;;;;;;;;;OAgBG;;IAGH;;;;;;;;;;;;;;;;OAgBG;;IAGH;;;;;;;;;;;;;;;;;;;OAmBG;;;;;;;;;;CAEK,CAAC"}
1
+ {"version":3,"file":"safe-int.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/safe-int.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,OAAO,IAAI,mBAAmB,EACpC,MAAM,eAAe,CAAC;AAIvB,MAAM,MAAM,OAAO,GAAG,mBAAmB,CAAC;AAkC1C;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,SAAS,yCAAK,CAAC;AAE5B;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,SAAS;;;;;;;MAAW,CAAC;AAElC;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,OAAO;IAClB;;;;;;;;;;;;;;;;OAgBG;;IAGH;;;;OAIG;;IAGH;;;;OAIG;;IAGH;;;;;;;;;;;;;;;;;;;;OAoBG;;IAGH;;;;;;;;;;;;;OAaG;;IAGH;;;;;;;;;;;;;OAaG;;IAGH;;;;;;;;;;;;;;;;;;;;;;OAsBG;;IAGH;;;;;;;;;;;;;;;;;;;;;;;OAuBG;;IAGH;;;;;;;;;;;;;;;;;;;;OAoBG;;IAGH;;;;;;;;;;;;;;;;OAgBG;;IAGH;;;;;;;;;;;;;;;;OAgBG;;IAGH;;;;;;;;;;;;;;;;OAgBG;;IAGH;;;;;;;;;;;;;;;;;;;OAmBG;;;;;;;;;;CAEK,CAAC"}
@@ -130,12 +130,12 @@ export declare const SafeUint: {
130
130
  readonly NaNValue: false;
131
131
  readonly Finite: true;
132
132
  readonly Int: true;
133
- readonly "!=0": true;
134
133
  readonly "> -2^16": true;
135
134
  readonly "> -2^32": true;
136
135
  readonly ">= -2^15": true;
137
136
  readonly ">= -2^31": true;
138
137
  readonly ">=0": true;
138
+ readonly "!=0": true;
139
139
  readonly SafeInt: true;
140
140
  } & Readonly<{
141
141
  'TSTypeForgeInternals--edd2f9ce-7ca5-45b0-9d1a-bd61b9b5d9c3': unknown;
@@ -236,12 +236,12 @@ export declare const Uint: {
236
236
  readonly NaNValue: false;
237
237
  readonly Finite: true;
238
238
  readonly Int: true;
239
- readonly "!=0": true;
240
239
  readonly "> -2^16": true;
241
240
  readonly "> -2^32": true;
242
241
  readonly ">= -2^15": true;
243
242
  readonly ">= -2^31": true;
244
243
  readonly ">=0": true;
244
+ readonly "!=0": true;
245
245
  } & Readonly<{
246
246
  'TSTypeForgeInternals--edd2f9ce-7ca5-45b0-9d1a-bd61b9b5d9c3': unknown;
247
247
  }>>) => import("ts-type-forge").NonNegativeInt;
@@ -134,12 +134,12 @@ export declare const Uint16: {
134
134
  readonly NaNValue: false;
135
135
  readonly Finite: true;
136
136
  readonly Int: true;
137
- readonly "!=0": true;
138
137
  readonly "> -2^16": true;
139
138
  readonly "> -2^32": true;
140
139
  readonly ">= -2^15": true;
141
140
  readonly ">= -2^31": true;
142
141
  readonly ">=0": true;
142
+ readonly "!=0": true;
143
143
  readonly "< 2^16": true;
144
144
  readonly "< 2^31": true;
145
145
  readonly "< 2^32": true;
@@ -130,12 +130,12 @@ export declare const Uint32: {
130
130
  readonly NaNValue: false;
131
131
  readonly Finite: true;
132
132
  readonly Int: true;
133
- readonly "!=0": true;
134
133
  readonly "> -2^16": true;
135
134
  readonly "> -2^32": true;
136
135
  readonly ">= -2^15": true;
137
136
  readonly ">= -2^31": true;
138
137
  readonly ">=0": true;
138
+ readonly "!=0": true;
139
139
  readonly "< 2^32": true;
140
140
  readonly SafeInt: true;
141
141
  } & Readonly<{
@@ -1,5 +1,6 @@
1
1
  export * from './branded-types/index.mjs';
2
2
  export * from './enum/index.mjs';
3
+ export * from './num-arithmetic-types.mjs';
3
4
  export * from './num.mjs';
4
5
  export * from './refined-number-utils.mjs';
5
6
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../src/number/index.mts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../src/number/index.mts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,WAAW,CAAC;AAC1B,cAAc,4BAA4B,CAAC"}
@@ -2,9 +2,15 @@ export { FiniteNumber, asFiniteNumber, isFiniteNumber } from './branded-types/fi
2
2
  export { Int, asInt, isInt } from './branded-types/int.mjs';
3
3
  export { Int16, asInt16, isInt16 } from './branded-types/int16.mjs';
4
4
  export { Int32, asInt32, isInt32 } from './branded-types/int32.mjs';
5
+ export { NegativeFiniteNumber, asNegativeFiniteNumber, isNegativeFiniteNumber } from './branded-types/negative-finite-number.mjs';
6
+ export { NegativeInt, asNegativeInt, isNegativeInt } from './branded-types/negative-int.mjs';
7
+ export { NegativeSafeInt, asNegativeSafeInt, isNegativeSafeInt } from './branded-types/negative-safe-int.mjs';
5
8
  export { NonNegativeFiniteNumber, asNonNegativeFiniteNumber, isNonNegativeFiniteNumber } from './branded-types/non-negative-finite-number.mjs';
6
9
  export { NonNegativeInt16, asNonNegativeInt16, isNonNegativeInt16 } from './branded-types/non-negative-int16.mjs';
7
10
  export { NonNegativeInt32, asNonNegativeInt32, isNonNegativeInt32 } from './branded-types/non-negative-int32.mjs';
11
+ export { NonPositiveFiniteNumber, asNonPositiveFiniteNumber, isNonPositiveFiniteNumber } from './branded-types/non-positive-finite-number.mjs';
12
+ export { NonPositiveInt, asNonPositiveInt, isNonPositiveInt } from './branded-types/non-positive-int.mjs';
13
+ export { NonPositiveSafeInt, asNonPositiveSafeInt, isNonPositiveSafeInt } from './branded-types/non-positive-safe-int.mjs';
8
14
  export { NonZeroFiniteNumber, asNonZeroFiniteNumber, isNonZeroFiniteNumber } from './branded-types/non-zero-finite-number.mjs';
9
15
  export { NonZeroInt, asNonZeroInt, isNonZeroInt } from './branded-types/non-zero-int.mjs';
10
16
  export { NonZeroInt16, asNonZeroInt16, isNonZeroInt16 } from './branded-types/non-zero-int16.mjs';
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,74 @@
1
+ import { type FiniteNumber, type Int, type NegativeFiniteNumber, type NegativeInt, type NegativeNumber, type NegativeSafeInt, type NonNegativeFiniteNumber, type NonNegativeNumber, type NonPositiveFiniteNumber, type NonPositiveInt, type NonPositiveNumber, type NonPositiveSafeInt, type NonZeroFiniteNumber, type NonZeroInt, type NonZeroNumber, type NonZeroSafeInt, type PositiveFiniteNumber, type PositiveInt, type PositiveNumber, type PositiveSafeInt, type SafeInt, type SafeUint, type Uint } from 'ts-type-forge';
2
+ /**
3
+ * Internal type-level arithmetic for {@link Num}'s `add`/`sub`/`mul`/`div`.
4
+ *
5
+ * The result type of a binary operation is computed from two independent axes of
6
+ * each operand:
7
+ *
8
+ * - **Sign** — `pos | neg | nonneg | nonpos | nonzero | any`, derived from the
9
+ * brand's sign keys and combined with a small boolean algebra over the facts
10
+ * `>= 0`, `<= 0`, `!= 0`.
11
+ * - **Level** — `safeint | int | finite | number`, derived from the brand's
12
+ * level keys.
13
+ *
14
+ * The sign is always computed exactly (so e.g. `neg * neg` becomes `pos`). The
15
+ * level widens on possible overflow (`safeint` results of `+`/`-`/`*` become
16
+ * `int`, since the magnitude may exceed the safe-integer range). No runtime
17
+ * clamping is performed — saturating "stay in the type" behavior is provided by
18
+ * the branded namespaces instead.
19
+ *
20
+ * @internal
21
+ */
22
+ /** Sign classification of a numeric brand. */
23
+ type Sign = 'any' | 'neg' | 'nonneg' | 'nonpos' | 'nonzero' | 'pos';
24
+ /** Level (integer/finite) classification of a numeric brand. */
25
+ type Level = 'finite' | 'int' | 'number' | 'safeint';
26
+ /** Classifies a numeric type's sign. */
27
+ export type SignOf<N> = [N] extends [PositiveNumber] ? 'pos' : [N] extends [NegativeNumber] ? 'neg' : [N] extends [NonNegativeNumber] ? 'nonneg' : [N] extends [NonPositiveNumber] ? 'nonpos' : [N] extends [NonZeroNumber] ? 'nonzero' : 'any';
28
+ /** Classifies a numeric type's level. */
29
+ export type LevelOf<N> = [N] extends [SafeInt] ? 'safeint' : [N] extends [Int] ? 'int' : [N] extends [FiniteNumber] ? 'finite' : 'number';
30
+ type And<A extends boolean, B extends boolean> = [A, B] extends [true, true] ? true : false;
31
+ type Or<A extends boolean, B extends boolean> = true extends A | B ? true : false;
32
+ /** Whether the value is guaranteed `>= 0`. */
33
+ type Ge0<S extends Sign> = S extends 'pos' | 'nonneg' ? true : false;
34
+ /** Whether the value is guaranteed `<= 0`. */
35
+ type Le0<S extends Sign> = S extends 'neg' | 'nonpos' ? true : false;
36
+ /** Whether the value is guaranteed `!= 0`. */
37
+ type Ne0<S extends Sign> = S extends 'pos' | 'neg' | 'nonzero' ? true : false;
38
+ /** Rebuilds a {@link Sign} from the three facts. */
39
+ type FromFacts<ge0 extends boolean, le0 extends boolean, ne0 extends boolean> = ge0 extends true ? ne0 extends true ? 'pos' : 'nonneg' : le0 extends true ? ne0 extends true ? 'neg' : 'nonpos' : ne0 extends true ? 'nonzero' : 'any';
40
+ type NegateSign<S extends Sign> = FromFacts<Le0<S>, Ge0<S>, Ne0<S>>;
41
+ type AddSign<A extends Sign, B extends Sign> = FromFacts<And<Ge0<A>, Ge0<B>>, And<Le0<A>, Le0<B>>, Or<And<And<Ge0<A>, Ge0<B>>, Or<Ne0<A>, Ne0<B>>>, And<And<Le0<A>, Le0<B>>, Or<Ne0<A>, Ne0<B>>>>>;
42
+ type SubSign<A extends Sign, B extends Sign> = AddSign<A, NegateSign<B>>;
43
+ /** Sign of a product/quotient, parameterized by the `!= 0` fact of the result. */
44
+ type MulSignWithNe0<A extends Sign, B extends Sign, ne0 extends boolean> = FromFacts<Or<And<Ge0<A>, Ge0<B>>, And<Le0<A>, Le0<B>>>, Or<And<Ge0<A>, Le0<B>>, And<Le0<A>, Ge0<B>>>, ne0>;
45
+ type MulSign<A extends Sign, B extends Sign> = MulSignWithNe0<A, B, And<Ne0<A>, Ne0<B>>>;
46
+ /** Exact division: nonzero dividend over nonzero divisor stays nonzero. */
47
+ type DivSign<A extends Sign, B extends Sign> = MulSignWithNe0<A, B, Ne0<A>>;
48
+ /** Floor division: flooring can land on `0`, so the result is never `!= 0`. */
49
+ type DivIntSign<A extends Sign, B extends Sign> = MulSignWithNe0<A, B, false>;
50
+ /** Looser of two levels (number > finite > int > safeint). */
51
+ type LooserLevel<LA extends Level, LB extends Level> = 'number' extends LA | LB ? 'number' : 'finite' extends LA | LB ? 'finite' : 'int' extends LA | LB ? 'int' : 'safeint';
52
+ /** `+`/`-`/`*`: looser level, widening `safeint -> int` (overflow may occur). */
53
+ type AddMulLevel<LA extends Level, LB extends Level> = LooserLevel<LA, LB> extends 'safeint' ? 'int' : LooserLevel<LA, LB>;
54
+ /** Exact division yields a (possibly fractional) finite number. */
55
+ type DivLevel<LA extends Level, LB extends Level> = 'number' extends LA | LB ? 'number' : 'finite';
56
+ /** Floor division yields an integer; the safe range is preserved. */
57
+ type DivIntLevel<LA extends Level, LB extends Level> = 'number' extends LA | LB ? 'number' : [LA, LB] extends ['safeint', 'safeint'] ? 'safeint' : 'int';
58
+ type ReconstructNumber<S extends Sign> = S extends 'pos' ? PositiveNumber : S extends 'neg' ? NegativeNumber : S extends 'nonneg' ? NonNegativeNumber : S extends 'nonpos' ? NonPositiveNumber : S extends 'nonzero' ? NonZeroNumber : number;
59
+ type ReconstructFinite<S extends Sign> = S extends 'pos' ? PositiveFiniteNumber : S extends 'neg' ? NegativeFiniteNumber : S extends 'nonneg' ? NonNegativeFiniteNumber : S extends 'nonpos' ? NonPositiveFiniteNumber : S extends 'nonzero' ? NonZeroFiniteNumber : FiniteNumber;
60
+ type ReconstructInt<S extends Sign> = S extends 'pos' ? PositiveInt : S extends 'neg' ? NegativeInt : S extends 'nonneg' ? Uint : S extends 'nonpos' ? NonPositiveInt : S extends 'nonzero' ? NonZeroInt : Int;
61
+ type ReconstructSafeInt<S extends Sign> = S extends 'pos' ? PositiveSafeInt : S extends 'neg' ? NegativeSafeInt : S extends 'nonneg' ? SafeUint : S extends 'nonpos' ? NonPositiveSafeInt : S extends 'nonzero' ? NonZeroSafeInt : SafeInt;
62
+ type Reconstruct<S extends Sign, L extends Level> = L extends 'safeint' ? ReconstructSafeInt<S> : L extends 'int' ? ReconstructInt<S> : L extends 'finite' ? ReconstructFinite<S> : ReconstructNumber<S>;
63
+ /** Result type of {@link Num.add} applied to operands of type `A` and `B`. */
64
+ export type AddResult<A, B> = Reconstruct<AddSign<SignOf<A>, SignOf<B>>, AddMulLevel<LevelOf<A>, LevelOf<B>>>;
65
+ /** Result type of {@link Num.sub} applied to operands of type `A` and `B`. */
66
+ export type SubResult<A, B> = Reconstruct<SubSign<SignOf<A>, SignOf<B>>, AddMulLevel<LevelOf<A>, LevelOf<B>>>;
67
+ /** Result type of {@link Num.mul} applied to operands of type `A` and `B`. */
68
+ export type MulResult<A, B> = Reconstruct<MulSign<SignOf<A>, SignOf<B>>, AddMulLevel<LevelOf<A>, LevelOf<B>>>;
69
+ /** Result type of {@link Num.div} (exact) applied to operands of type `A` and `B`. */
70
+ export type DivResult<A, B> = Reconstruct<DivSign<SignOf<A>, SignOf<B>>, DivLevel<LevelOf<A>, LevelOf<B>>>;
71
+ /** Result type of {@link Num.divInt} (floor) applied to operands of type `A` and `B`. */
72
+ export type DivIntResult<A, B> = Reconstruct<DivIntSign<SignOf<A>, SignOf<B>>, DivIntLevel<LevelOf<A>, LevelOf<B>>>;
73
+ export {};
74
+ //# sourceMappingURL=num-arithmetic-types.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"num-arithmetic-types.d.mts","sourceRoot":"","sources":["../../src/number/num-arithmetic-types.mts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=num-arithmetic-types.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"num-arithmetic-types.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}