ts-data-forge 6.13.1 → 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 (174) 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/index.mjs +6 -0
  33. package/dist/index.mjs.map +1 -1
  34. package/dist/iterator/range.mjs +6 -0
  35. package/dist/iterator/range.mjs.map +1 -1
  36. package/dist/json/json.mjs +6 -0
  37. package/dist/json/json.mjs.map +1 -1
  38. package/dist/number/branded-types/finite-number.d.mts +1 -1
  39. package/dist/number/branded-types/index.d.mts +6 -0
  40. package/dist/number/branded-types/index.d.mts.map +1 -1
  41. package/dist/number/branded-types/index.mjs +6 -0
  42. package/dist/number/branded-types/index.mjs.map +1 -1
  43. package/dist/number/branded-types/int.d.mts +1 -2
  44. package/dist/number/branded-types/int.d.mts.map +1 -1
  45. package/dist/number/branded-types/int16.d.mts +2 -3
  46. package/dist/number/branded-types/int16.d.mts.map +1 -1
  47. package/dist/number/branded-types/int32.d.mts +2 -3
  48. package/dist/number/branded-types/int32.d.mts.map +1 -1
  49. package/dist/number/branded-types/negative-finite-number.d.mts +143 -0
  50. package/dist/number/branded-types/negative-finite-number.d.mts.map +1 -0
  51. package/dist/number/branded-types/negative-finite-number.mjs +156 -0
  52. package/dist/number/branded-types/negative-finite-number.mjs.map +1 -0
  53. package/dist/number/branded-types/negative-int.d.mts +120 -0
  54. package/dist/number/branded-types/negative-int.d.mts.map +1 -0
  55. package/dist/number/branded-types/negative-int.mjs +125 -0
  56. package/dist/number/branded-types/negative-int.mjs.map +1 -0
  57. package/dist/number/branded-types/negative-safe-int.d.mts +132 -0
  58. package/dist/number/branded-types/negative-safe-int.d.mts.map +1 -0
  59. package/dist/number/branded-types/negative-safe-int.mjs +136 -0
  60. package/dist/number/branded-types/negative-safe-int.mjs.map +1 -0
  61. package/dist/number/branded-types/non-negative-finite-number.d.mts +1 -1
  62. package/dist/number/branded-types/non-negative-int16.d.mts +1 -1
  63. package/dist/number/branded-types/non-negative-int32.d.mts +1 -1
  64. package/dist/number/branded-types/non-positive-finite-number.d.mts +130 -0
  65. package/dist/number/branded-types/non-positive-finite-number.d.mts.map +1 -0
  66. package/dist/number/branded-types/non-positive-finite-number.mjs +134 -0
  67. package/dist/number/branded-types/non-positive-finite-number.mjs.map +1 -0
  68. package/dist/number/branded-types/non-positive-int.d.mts +224 -0
  69. package/dist/number/branded-types/non-positive-int.d.mts.map +1 -0
  70. package/dist/number/branded-types/non-positive-int.mjs +222 -0
  71. package/dist/number/branded-types/non-positive-int.mjs.map +1 -0
  72. package/dist/number/branded-types/non-positive-safe-int.d.mts +119 -0
  73. package/dist/number/branded-types/non-positive-safe-int.d.mts.map +1 -0
  74. package/dist/number/branded-types/non-positive-safe-int.mjs +116 -0
  75. package/dist/number/branded-types/non-positive-safe-int.mjs.map +1 -0
  76. package/dist/number/branded-types/non-zero-finite-number.d.mts +5 -17
  77. package/dist/number/branded-types/non-zero-finite-number.d.mts.map +1 -1
  78. package/dist/number/branded-types/non-zero-finite-number.mjs +5 -17
  79. package/dist/number/branded-types/non-zero-finite-number.mjs.map +1 -1
  80. package/dist/number/branded-types/non-zero-int.d.mts +5 -33
  81. package/dist/number/branded-types/non-zero-int.d.mts.map +1 -1
  82. package/dist/number/branded-types/non-zero-int.mjs +5 -25
  83. package/dist/number/branded-types/non-zero-int.mjs.map +1 -1
  84. package/dist/number/branded-types/non-zero-int16.d.mts +6 -43
  85. package/dist/number/branded-types/non-zero-int16.d.mts.map +1 -1
  86. package/dist/number/branded-types/non-zero-int16.mjs +5 -25
  87. package/dist/number/branded-types/non-zero-int16.mjs.map +1 -1
  88. package/dist/number/branded-types/non-zero-int32.d.mts +6 -39
  89. package/dist/number/branded-types/non-zero-int32.d.mts.map +1 -1
  90. package/dist/number/branded-types/non-zero-int32.mjs +5 -25
  91. package/dist/number/branded-types/non-zero-int32.mjs.map +1 -1
  92. package/dist/number/branded-types/non-zero-safe-int.d.mts +5 -37
  93. package/dist/number/branded-types/non-zero-safe-int.d.mts.map +1 -1
  94. package/dist/number/branded-types/non-zero-safe-int.mjs +5 -28
  95. package/dist/number/branded-types/non-zero-safe-int.mjs.map +1 -1
  96. package/dist/number/branded-types/non-zero-uint16.d.mts +6 -33
  97. package/dist/number/branded-types/non-zero-uint16.d.mts.map +1 -1
  98. package/dist/number/branded-types/non-zero-uint16.mjs +5 -17
  99. package/dist/number/branded-types/non-zero-uint16.mjs.map +1 -1
  100. package/dist/number/branded-types/non-zero-uint32.d.mts +6 -31
  101. package/dist/number/branded-types/non-zero-uint32.d.mts.map +1 -1
  102. package/dist/number/branded-types/non-zero-uint32.mjs +5 -17
  103. package/dist/number/branded-types/non-zero-uint32.mjs.map +1 -1
  104. package/dist/number/branded-types/positive-finite-number.d.mts +4 -2
  105. package/dist/number/branded-types/positive-finite-number.d.mts.map +1 -1
  106. package/dist/number/branded-types/positive-int.d.mts +4 -2
  107. package/dist/number/branded-types/positive-int.d.mts.map +1 -1
  108. package/dist/number/branded-types/positive-int16.d.mts +4 -2
  109. package/dist/number/branded-types/positive-int16.d.mts.map +1 -1
  110. package/dist/number/branded-types/positive-int32.d.mts +4 -2
  111. package/dist/number/branded-types/positive-int32.d.mts.map +1 -1
  112. package/dist/number/branded-types/positive-safe-int.d.mts +4 -2
  113. package/dist/number/branded-types/positive-safe-int.d.mts.map +1 -1
  114. package/dist/number/branded-types/positive-uint16.d.mts +4 -2
  115. package/dist/number/branded-types/positive-uint16.d.mts.map +1 -1
  116. package/dist/number/branded-types/positive-uint32.d.mts +4 -2
  117. package/dist/number/branded-types/positive-uint32.d.mts.map +1 -1
  118. package/dist/number/branded-types/safe-int.d.mts +1 -2
  119. package/dist/number/branded-types/safe-int.d.mts.map +1 -1
  120. package/dist/number/branded-types/safe-uint.d.mts +1 -1
  121. package/dist/number/branded-types/uint.d.mts +1 -1
  122. package/dist/number/branded-types/uint16.d.mts +1 -1
  123. package/dist/number/branded-types/uint32.d.mts +1 -1
  124. package/dist/number/index.d.mts +1 -0
  125. package/dist/number/index.d.mts.map +1 -1
  126. package/dist/number/index.mjs +6 -0
  127. package/dist/number/index.mjs.map +1 -1
  128. package/dist/number/num-arithmetic-types.d.mts +74 -0
  129. package/dist/number/num-arithmetic-types.d.mts.map +1 -0
  130. package/dist/number/num-arithmetic-types.mjs +2 -0
  131. package/dist/number/num-arithmetic-types.mjs.map +1 -0
  132. package/dist/number/num.d.mts +53 -9
  133. package/dist/number/num.d.mts.map +1 -1
  134. package/dist/number/num.mjs +64 -12
  135. package/dist/number/num.mjs.map +1 -1
  136. package/dist/number/refined-number-utils.d.mts +12 -9
  137. package/dist/number/refined-number-utils.d.mts.map +1 -1
  138. package/dist/number/refined-number-utils.mjs.map +1 -1
  139. package/dist/object/object.mjs +6 -0
  140. package/dist/object/object.mjs.map +1 -1
  141. package/package.json +2 -2
  142. package/src/number/branded-types/index.mts +6 -0
  143. package/src/number/branded-types/negative-finite-number.mts +210 -0
  144. package/src/number/branded-types/negative-finite-number.test.mts +172 -0
  145. package/src/number/branded-types/negative-int.mts +160 -0
  146. package/src/number/branded-types/negative-int.test.mts +146 -0
  147. package/src/number/branded-types/negative-safe-int.mts +173 -0
  148. package/src/number/branded-types/negative-safe-int.test.mts +120 -0
  149. package/src/number/branded-types/non-positive-finite-number.mts +191 -0
  150. package/src/number/branded-types/non-positive-finite-number.test.mts +286 -0
  151. package/src/number/branded-types/non-positive-int.mts +251 -0
  152. package/src/number/branded-types/non-positive-int.test.mts +197 -0
  153. package/src/number/branded-types/non-positive-safe-int.mts +147 -0
  154. package/src/number/branded-types/non-positive-safe-int.test.mts +223 -0
  155. package/src/number/branded-types/non-zero-finite-number.mts +14 -22
  156. package/src/number/branded-types/non-zero-finite-number.test.mts +0 -12
  157. package/src/number/branded-types/non-zero-int.mts +10 -32
  158. package/src/number/branded-types/non-zero-int.test.mts +0 -20
  159. package/src/number/branded-types/non-zero-int16.mts +8 -32
  160. package/src/number/branded-types/non-zero-int16.test.mts +0 -30
  161. package/src/number/branded-types/non-zero-int32.mts +8 -32
  162. package/src/number/branded-types/non-zero-int32.test.mts +0 -30
  163. package/src/number/branded-types/non-zero-safe-int.mts +8 -35
  164. package/src/number/branded-types/non-zero-safe-int.test.mts +0 -32
  165. package/src/number/branded-types/non-zero-uint16.mts +8 -22
  166. package/src/number/branded-types/non-zero-uint16.test.mts +0 -16
  167. package/src/number/branded-types/non-zero-uint32.mts +8 -22
  168. package/src/number/branded-types/non-zero-uint32.test.mts +0 -16
  169. package/src/number/index.mts +1 -0
  170. package/src/number/num-arithmetic-types.mts +269 -0
  171. package/src/number/num-arithmetic-types.test.mts +130 -0
  172. package/src/number/num-arithmetic.test.mts +102 -0
  173. package/src/number/num.mts +96 -15
  174. package/src/number/refined-number-utils.mts +19 -9
@@ -1,4 +1,4 @@
1
- import { type Brand, type ChangeBaseBrand, type GetBrandValuePart, type Int, type IntersectBrand, type NonNegativeNumber, type NonZeroNumber, type RelaxedExclude, type TypeEq, type UnknownBrand, type UnwrapBrandFalseKeys, type UnwrapBrandTrueKeys, type WithSmallInt } from 'ts-type-forge';
1
+ import { type Brand, type ChangeBaseBrand, type GetBrandValuePart, type Int, type IntersectBrand, type NonNegativeNumber, type NonZeroNumber, type PositiveNumber, type RelaxedExclude, type TypeEq, type UnknownBrand, type UnwrapBrandFalseKeys, type UnwrapBrandTrueKeys, type WithSmallInt } from 'ts-type-forge';
2
2
  /** @internal */
3
3
  export declare namespace TsDataForgeInternals {
4
4
  /**
@@ -40,7 +40,7 @@ export declare namespace TsDataForgeInternals {
40
40
  * @template N - A branded number type
41
41
  * @internal
42
42
  */
43
- export type ToNonNegative<N extends UnknownNumberBrand> = IntersectBrand<N, NonNegativeNumber>;
43
+ export type ToNonNegative<N extends UnknownNumberBrand> = '!=0' extends UnwrapBrandTrueKeys<N> ? IntersectBrand<N, PositiveNumber> : IntersectBrand<N, NonNegativeNumber>;
44
44
  /**
45
45
  * Removes the non-zero brand constraint from a branded number type. Used
46
46
  * when operations may produce zero values.
@@ -48,7 +48,7 @@ export declare namespace TsDataForgeInternals {
48
48
  * @template N - A branded number type
49
49
  * @internal
50
50
  */
51
- export type RemoveNonZeroBrandKey<N extends UnknownNumberBrand> = Brand<GetBrandValuePart<N>, RelaxedExclude<UnwrapBrandTrueKeys<N>, '!=0'> & string, UnwrapBrandFalseKeys<N> & string>;
51
+ export type RemoveNonZeroBrandKey<N extends UnknownNumberBrand> = Brand<GetBrandValuePart<N>, RelaxedExclude<UnwrapBrandTrueKeys<N>, '!=0'> & string, RelaxedExclude<UnwrapBrandFalseKeys<N>, '<=0' | '>=0'> & string>;
52
52
  type CastToInt<N> = N extends Int ? N : never;
53
53
  /**
54
54
  * Generates a type-safe API for a branded number type based on its
@@ -66,7 +66,9 @@ export declare namespace TsDataForgeInternals {
66
66
  * 'positive' | 'range'
67
67
  * @internal
68
68
  */
69
- export type NumberClass<N extends UnknownNumberBrand, classes extends 'int' | 'non-negative' | 'positive' | 'range'> = ('int' extends classes ? unknown : 'positive' extends classes ? Readonly<{
69
+ /** The closed binary arithmetic operations a branded namespace may expose. */
70
+ export type NumberClassBinOp = 'add' | 'div' | 'mul' | 'sub';
71
+ export type NumberClass<N extends UnknownNumberBrand, classes extends 'int' | 'non-negative' | 'positive' | 'range', binOps extends NumberClassBinOp = NumberClassBinOp> = ('int' extends classes ? unknown : 'positive' extends classes ? Readonly<{
70
72
  floor: (x: N, y: N) => RemoveNonZeroBrandKey<ToInt<N>>;
71
73
  ceil: (x: N, y: N) => ToInt<N>;
72
74
  round: (x: N, y: N) => RemoveNonZeroBrandKey<ToInt<N>>;
@@ -86,16 +88,17 @@ export declare namespace TsDataForgeInternals {
86
88
  MIN_VALUE: number;
87
89
  MAX_VALUE: number;
88
90
  clamp: (a: number) => N;
89
- }> : unknown) & Readonly<{
91
+ }> : unknown) & Pick<Readonly<{
92
+ add: (x: N, y: N) => N;
93
+ sub: (x: N, y: N) => N;
94
+ mul: (x: N, y: N) => N;
95
+ div: (x: N, y: ToNonZero<N>) => N;
96
+ }>, binOps> & Readonly<{
90
97
  is: (a: number) => a is N;
91
98
  min: (...values: readonly N[]) => N;
92
99
  max: (...values: readonly N[]) => N;
93
100
  random: (min: N, max: N) => N;
94
101
  pow: (x: N, y: N) => N;
95
- add: (x: N, y: N) => N;
96
- sub: (x: N, y: N) => N;
97
- mul: (x: N, y: N) => N;
98
- div: (x: N, y: ToNonZero<N>) => N;
99
102
  }>;
100
103
  type OperatorsForInteger<ElementType extends Int, MIN_VALUE extends number, MAX_VALUE extends number, ElementTypeWithSmallInt extends WithSmallInt<ElementType> = WithSmallInt<ElementType>> = Readonly<{
101
104
  MIN_VALUE: MIN_VALUE;
@@ -1 +1 @@
1
- {"version":3,"file":"refined-number-utils.d.mts","sourceRoot":"","sources":["../../src/number/refined-number-utils.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,KAAK,EACV,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,GAAG,EACR,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,MAAM,EACX,KAAK,YAAY,EACjB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,YAAY,EAClB,MAAM,eAAe,CAAC;AAKvB,gBAAgB;AAChB,yBAAiB,oBAAoB,CAAC;IACpC;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,UAAiB,kBAAkB,CAAC;QAclC,KAAK,kBAAkB,GAAG,eAAe,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QAEhE;;;;;WAKG;QACH,MAAM,MAAM,KAAK,CAAC,CAAC,SAAS,kBAAkB,IAAI,cAAc,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAEzE,KAAK,SAAS,CAAC,CAAC,SAAS,kBAAkB,IAAI,cAAc,CAC3D,CAAC,EACD,aAAa,CACd,CAAC;QAMF,KAAK,wBAAwB,CAAC,CAAC,SAAS,GAAG,IAAI,YAAY,CACzD,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CACxB,CAAC;QAEF;;;;;WAKG;QACH,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,kBAAkB,IAAI,cAAc,CACtE,CAAC,EACD,iBAAiB,CAClB,CAAC;QAEF;;;;;;WAMG;QACH,MAAM,MAAM,qBAAqB,CAAC,CAAC,SAAS,kBAAkB,IAAI,KAAK,CACrE,iBAAiB,CAAC,CAAC,CAAC,EACpB,cAAc,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,MAAM,EACtD,oBAAoB,CAAC,CAAC,CAAC,GAAG,MAAM,CACjC,CAAC;QAEF,KAAK,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC;QAE9C;;;;;;;;;;;;;;;WAeG;QACH,MAAM,MAAM,WAAW,CACrB,CAAC,SAAS,kBAAkB,EAC5B,OAAO,SAAS,KAAK,GAAG,cAAc,GAAG,UAAU,GAAG,OAAO,IAC3D,CAAC,KAAK,SAAS,OAAO,GACtB,OAAO,GACP,UAAU,SAAS,OAAO,GACxB,QAAQ,CAAC;YACP,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACvD,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC;YAC/B,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;SACxD,CAAC,GACF,QAAQ,CAAC;YACP,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC;YAChC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC;YAC/B,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC;SACjC,CAAC,CAAC,GACP,CAAC,cAAc,SAAS,OAAO,GAC3B,QAAQ,CAAC;YACP,SAAS,EAAE,MAAM,CAAC;YAClB,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,CAAC,CAAC;SACzB,CAAC,GACF,OAAO,CAAC,GACZ,CAAC,cAAc,SAAS,OAAO,GAC3B,OAAO,GACP,UAAU,SAAS,OAAO,GACxB,OAAO,GACP,QAAQ,CAAC;YACP,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC;SACjC,CAAC,CAAC,GACT,CAAC,UAAU,SAAS,OAAO,GACvB,QAAQ,CAAC;YACP,SAAS,EAAE,MAAM,CAAC;YAClB,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,CAAC,CAAC;SACzB,CAAC,GACF,OAAO,CAAC,GACZ,CAAC,OAAO,SAAS,OAAO,GACpB,QAAQ,CAAC;YACP,SAAS,EAAE,MAAM,CAAC;YAClB,SAAS,EAAE,MAAM,CAAC;YAClB,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,CAAC,CAAC;SACzB,CAAC,GACF,OAAO,CAAC,GACZ,QAAQ,CAAC;YACP,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;YAC1B,GAAG,EAAE,CAAC,GAAG,MAAM,EAAE,SAAS,CAAC,EAAE,KAAK,CAAC,CAAC;YACpC,GAAG,EAAE,CAAC,GAAG,MAAM,EAAE,SAAS,CAAC,EAAE,KAAK,CAAC,CAAC;YACpC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;YAC9B,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;YACvB,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;YACvB,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;YACvB,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;YACvB,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;SACnC,CAAC,CAAC;QA+DL,KAAK,mBAAmB,CACtB,WAAW,SAAS,GAAG,EACvB,SAAS,SAAS,MAAM,EACxB,SAAS,SAAS,MAAM,EACxB,uBAAuB,SAAS,YAAY,CAAC,WAAW,CAAC,GACvD,YAAY,CAAC,WAAW,CAAC,IACzB,QAAQ,CAAC;YACX,SAAS,EAAE,SAAS,CAAC;YACrB,SAAS,EAAE,SAAS,CAAC;YAErB,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,CAAC,IAAI,WAAW,CAAC;YAEpC,GAAG,EAAE,CAAC,CAAC,EAAE,uBAAuB,KAAK,aAAa,CAAC,WAAW,CAAC,CAAC;YAEhE,GAAG,EAAE,CAAC,GAAG,MAAM,EAAE,SAAS,uBAAuB,EAAE,KAAK,WAAW,CAAC;YAEpE,GAAG,EAAE,CAAC,GAAG,MAAM,EAAE,SAAS,uBAAuB,EAAE,KAAK,WAAW,CAAC;YAEpE,GAAG,EAAE,CACH,CAAC,EAAE,uBAAuB,EAC1B,CAAC,EAAE,uBAAuB,KACvB,WAAW,CAAC;YAEjB,GAAG,EAAE,CACH,CAAC,EAAE,uBAAuB,EAC1B,CAAC,EAAE,uBAAuB,KACvB,WAAW,CAAC;YAEjB,GAAG,EAAE,CACH,CAAC,EAAE,uBAAuB,EAC1B,CAAC,EAAE,uBAAuB,KACvB,WAAW,CAAC;YAEjB,GAAG,EAAE,CACH,CAAC,EAAE,uBAAuB,EAC1B,CAAC,EAAE,uBAAuB,KACvB,WAAW,CAAC;YAEjB,GAAG,EAAE,CACH,CAAC,EAAE,uBAAuB,EAC1B,CAAC,EAAE,wBAAwB,CAAC,WAAW,CAAC,KACrC,WAAW,CAAC;YAEjB,MAAM,EAAE,CACN,GAAG,CAAC,EAAE,uBAAuB,EAC7B,GAAG,CAAC,EAAE,uBAAuB,KAC1B,WAAW,CAAC;YAEjB,aAAa,EAAE,CACb,GAAG,CAAC,EAAE,uBAAuB,EAC7B,GAAG,CAAC,EAAE,uBAAuB,KAC1B,WAAW,CAAC;YAEjB,QAAQ,EAAE,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC,KAAK,WAAW,GAAG,CAAC,CAAC;YAEtD,KAAK,EAAE,MAAM,CAAC,SAAS,GAAG,SAAS,EAAE,SAAS,CAAC,SAAS,IAAI,GACxD,SAAS,GACT,CAAC,CAAC,EAAE,MAAM,KAAK,WAAW,CAAC;SAChC,CAAC,CAAC;QAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAsEG;QACH,MAAM,CAAC,MAAM,mBAAmB,GAC9B,WAAW,SAAS,GAAG,EACvB,SAAS,SAAS,MAAM,EACxB,SAAS,SAAS,MAAM,EACxB,6EAMC,QAAQ,CAAC;YACV,oBAAoB,EAAE,SAAS,GAAG,aAAa,CAAC;YAChD,OAAO,CAAC,EAAE,OAAO,CAAC;YAClB,SAAS,EAAE,SAAS,CAAC;YACrB,SAAS,EAAE,SAAS,CAAC;YACrB,iBAAiB,EAAE,MAAM,CAAC;SAC3B,CAAC,KAAG,mBAAmB,CAAC,WAAW,EAAE,SAAS,EAAE,SAAS,CA8GzD,CAAC;QAEF,KAAK,iBAAiB,CACpB,WAAW,SAAS,kBAAkB,EACtC,SAAS,SAAS,MAAM,GAAG,SAAS,EACpC,SAAS,SAAS,MAAM,GAAG,SAAS,IAClC,QAAQ,CAAC;YACX,SAAS,EAAE,SAAS,CAAC;YACrB,SAAS,EAAE,SAAS,CAAC;YAErB,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,CAAC,IAAI,WAAW,CAAC;YAEpC,GAAG,EAAE,CAAC,CAAC,EAAE,WAAW,KAAK,aAAa,CAAC,WAAW,CAAC,CAAC;YACpD,GAAG,EAAE,CAAC,GAAG,MAAM,EAAE,SAAS,WAAW,EAAE,KAAK,WAAW,CAAC;YACxD,GAAG,EAAE,CAAC,GAAG,MAAM,EAAE,SAAS,WAAW,EAAE,KAAK,WAAW,CAAC;YACxD,GAAG,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,KAAK,WAAW,CAAC;YACrD,GAAG,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,KAAK,WAAW,CAAC;YACrD,GAAG,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,KAAK,WAAW,CAAC;YACrD,GAAG,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,KAAK,WAAW,CAAC;YACrD,GAAG,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,SAAS,CAAC,WAAW,CAAC,KAAK,WAAW,CAAC;YAChE,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,GAAG,CAAC,EAAE,WAAW,KAAK,WAAW,CAAC;YAC9D,aAAa,EAAE,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,GAAG,CAAC,EAAE,WAAW,KAAK,WAAW,CAAC;YAErE,QAAQ,EAAE,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC,KAAK,WAAW,GAAG,CAAC,CAAC;YAEtD,KAAK,EAAE,MAAM,CAAC,SAAS,GAAG,SAAS,EAAE,SAAS,CAAC,SAAS,IAAI,GACxD,SAAS,GACT,CAAC,CAAC,EAAE,MAAM,KAAK,WAAW,CAAC;SAChC,CAAC,CAAC;QAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAoEG;QACH,MAAM,CAAC,MAAM,iBAAiB,GAC5B,WAAW,SAAS,kBAAkB,EACtC,SAAS,SAAS,MAAM,EACxB,SAAS,SAAS,MAAM,EACxB,uDAKC,QAAQ,CAAC;YACV,OAAO,CAAC,EAAE,OAAO,CAAC;YAClB,SAAS,EAAE,SAAS,CAAC;YACrB,SAAS,EAAE,SAAS,CAAC;YACrB,iBAAiB,EAAE,MAAM,CAAC;SAC3B,CAAC,KAAG,iBAAiB,CAAC,WAAW,EAAE,SAAS,EAAE,SAAS,CAoFvD,CAAC;;KACH;CACF"}
1
+ {"version":3,"file":"refined-number-utils.d.mts","sourceRoot":"","sources":["../../src/number/refined-number-utils.mts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"refined-number-utils.mjs","sources":["../../src/number/refined-number-utils.mts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"refined-number-utils.mjs","sources":["../../src/number/refined-number-utils.mts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -2,9 +2,15 @@ import '../number/branded-types/finite-number.mjs';
2
2
  import '../number/branded-types/int.mjs';
3
3
  import '../number/branded-types/int16.mjs';
4
4
  import '../number/branded-types/int32.mjs';
5
+ import '../number/branded-types/negative-finite-number.mjs';
6
+ import '../number/branded-types/negative-int.mjs';
7
+ import '../number/branded-types/negative-safe-int.mjs';
5
8
  import '../number/branded-types/non-negative-finite-number.mjs';
6
9
  import '../number/branded-types/non-negative-int16.mjs';
7
10
  import '../number/branded-types/non-negative-int32.mjs';
11
+ import '../number/branded-types/non-positive-finite-number.mjs';
12
+ import '../number/branded-types/non-positive-int.mjs';
13
+ import '../number/branded-types/non-positive-safe-int.mjs';
8
14
  import '../number/branded-types/non-zero-finite-number.mjs';
9
15
  import '../number/branded-types/non-zero-int.mjs';
10
16
  import '../number/branded-types/non-zero-int16.mjs';
@@ -1 +1 @@
1
- {"version":3,"file":"object.mjs","sources":["../../src/object/object.mts"],"sourcesContent":[null],"names":["Arr.isNonEmpty"],"mappings":"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"}
1
+ {"version":3,"file":"object.mjs","sources":["../../src/object/object.mts"],"sourcesContent":[null],"names":["Arr.isNonEmpty"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBA;;;;;;;AAOG;AACG,IAAW;AAAjB,CAAA,UAAiB,GAAG,EAAA;AAClB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyCG;IACU,GAAA,CAAA,SAAS,GAAG,CACvB,CAAgB,EAChB,CAAgB,EAChB,EAAA,GAA0C,MAAM,CAAC,EAAE,KACxC;QACX,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAElC,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AAElC,QAAA,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM;AAAE,YAAA,OAAO,KAAK;QAErD,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAChD,IAAA,CAAC;IAyDD,SAAgB,IAAI,CAIlB,GAAG,IAA8D,EAAA;AAIjE,QAAA,QAAQ,IAAI,CAAC,MAAM;YACjB,KAAK,CAAC,EAAE;AACN,gBAAA,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI;AAE3B,gBAAA,MAAM,OAAO,GAAG,IAAI,GAAG,CAAU,IAAI,CAAC;gBAEtC;;AAEE,gBAAA,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAClD;YAEd;YAEA,KAAK,CAAC,EAAE;AACN,gBAAA,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI;gBAEnB,OAAO,CAAC,MAAS,KAAK,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC;YAC1C;;IAEJ;AA5BgB,IAAA,GAAA,CAAA,IAAI,OA4BnB;IAyDD,SAAgB,IAAI,CAIlB,GAAG,IAEwC,EAAA;AAI3C,QAAA,QAAQ,IAAI,CAAC,MAAM;YACjB,KAAK,CAAC,EAAE;AACN,gBAAA,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI;AAE3B,gBAAA,MAAM,OAAO,GAAG,IAAI,GAAG,CAAU,IAAI,CAAC;gBAEtC;;AAEE,gBAAA,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CACnD;YAEd;YAEA,KAAK,CAAC,EAAE;AACN,gBAAA,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI;gBAEnB,OAAO,CAA2B,MAAU,KAAI;;oBAE9C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,IAA6B,CAGxD;AAED,oBAAA,OAAO,MAAM;AACf,gBAAA,CAAC;YACH;;IAEJ;AAtCgB,IAAA,GAAA,CAAA,IAAI,OAsCnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4CG;AACU,IAAA,GAAA,CAAA,WAAW,GAAG,CAGzB,OAAgB;;AAWhB,IAAA,MAAM,CAAC,WAAW,CAAC,OAAO,CAAU;AAEtC;;;;;;;;;;;;;;;;;;;;;;AAsBG;AACU,IAAA,GAAA,CAAA,KAAK,GAAG,CACnB,GAAG,OAAgB;;IAGnB,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAU;IAwCxE,SAAgB,QAAQ,CAItB,GAAG,IAA8D,EAAA;AAEjE,QAAA,QAAQ,IAAI,CAAC,MAAM;YACjB,KAAK,CAAC,EAAE;AACN,gBAAA,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI;gBAE3B;;AAEE,gBAAA,YAAY,CAAC,MAAM,EAAE,IAAI,CAAU;YAEvC;YAEA,KAAK,CAAC,EAAE;AACN,gBAAA,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI;gBAEnB,OAAO,CAAC,MAAS,KAAK,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;YAC9C;;IAEJ;AAtBgB,IAAA,GAAA,CAAA,QAAQ,WAsBvB;IAwCD,SAAgB,QAAQ,CAItB,GAAG,IAA8D,EAAA;AAEjE,QAAA,QAAQ,IAAI,CAAC,MAAM;YACjB,KAAK,CAAC,EAAE;AACN,gBAAA,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI;gBAE3B;;AAEE,gBAAA,YAAY,CAAC,MAAM,EAAE,IAAI,CAAU;YAEvC;YAEA,KAAK,CAAC,EAAE;AACN,gBAAA,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI;gBAEnB,OAAO,CAAC,MAAS,KAAK,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;YAC9C;;IAEJ;AAtBgB,IAAA,GAAA,CAAA,QAAQ,WAsBvB;AACH,CAAC,EAlcgB,GAAG,KAAH,GAAG,GAAA,EAAA,CAAA,CAAA;AAocpB,MAAM,YAAY,GAAG,CACnB,MAAqB,EACrB,IAAkC,KACjB;AACjB,IAAA,IAAI,CAACA,UAAc,CAAC,IAAI,CAAC;AAAE,QAAA,OAAO,MAAM;AAExC,IAAA,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;AAEpB,IAAA,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC;AAAE,QAAA,OAAO,EAAE;AAEpC,IAAA,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC;IAE1B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAE1B,IAAA,IAAI,CAACA,UAAc,CAAC,IAAI,CAAC;AAAE,QAAA,OAAO,EAAE,CAAC,IAAI,GAAG,KAAK,EAAE;AAEnD,IAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AAAE,QAAA,OAAO,EAAE,CAAC,IAAI,GAAG,EAAE,EAAE;IAE3C,OAAO;QACL,CAAC,IAAI,GAAG,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC;KAClC;AACH,CAAC;AAED,MAAM,YAAY,GAAG,CACnB,MAAqB,EACrB,IAAkC,KACjB;AACjB,IAAA,IAAI,CAACA,UAAc,CAAC,IAAI,CAAC;AAAE,QAAA,OAAO,MAAM;AAExC,IAAA,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;IAEpB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAE1B,IAAA,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC;AAAE,QAAA,OAAO,MAAM;IAExC,IAAI,CAACA,UAAc,CAAC,IAAI,CAAC,EAAE;QACzB,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CACnD;IACH;AAEA,IAAA,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC;AAE1B,IAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AAAE,QAAA,OAAO,MAAM;IAEnC,OAAO;AACL,QAAA,GAAG,MAAM;QACT,CAAC,IAAI,GAAG,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC;KAClC;AACH,CAAC;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ts-data-forge",
3
- "version": "6.13.1",
3
+ "version": "7.0.0",
4
4
  "private": false,
5
5
  "keywords": [
6
6
  "typescript",
@@ -86,7 +86,7 @@
86
86
  },
87
87
  "dependencies": {
88
88
  "@sindresorhus/is": "^8.1.0",
89
- "ts-type-forge": "^3.2.0"
89
+ "ts-type-forge": "^4.0.0"
90
90
  },
91
91
  "devDependencies": {
92
92
  "@emotion/react": "11.14.0",
@@ -2,9 +2,15 @@ export * from './finite-number.mjs';
2
2
  export * from './int.mjs';
3
3
  export * from './int16.mjs';
4
4
  export * from './int32.mjs';
5
+ export * from './negative-finite-number.mjs';
6
+ export * from './negative-int.mjs';
7
+ export * from './negative-safe-int.mjs';
5
8
  export * from './non-negative-finite-number.mjs';
6
9
  export * from './non-negative-int16.mjs';
7
10
  export * from './non-negative-int32.mjs';
11
+ export * from './non-positive-finite-number.mjs';
12
+ export * from './non-positive-int.mjs';
13
+ export * from './non-positive-safe-int.mjs';
8
14
  export * from './non-zero-finite-number.mjs';
9
15
  export * from './non-zero-int.mjs';
10
16
  export * from './non-zero-int16.mjs';
@@ -0,0 +1,210 @@
1
+ import { type NegativeFiniteNumber as TtfImported_NegativeFiniteNumber } from 'ts-type-forge';
2
+ import { TsDataForgeInternals } from '../refined-number-utils.mjs';
3
+ import { PositiveFiniteNumber } from './positive-finite-number.mjs';
4
+
5
+ export type NegativeFiniteNumber = TtfImported_NegativeFiniteNumber;
6
+
7
+ type ElementType = NegativeFiniteNumber;
8
+
9
+ const typeNameInMessage = 'a negative finite number';
10
+
11
+ const {
12
+ MAX_VALUE,
13
+ add,
14
+ castType,
15
+ clamp,
16
+ is,
17
+ max: max_,
18
+ min: min_,
19
+ pow,
20
+ random,
21
+ sub,
22
+ } = TsDataForgeInternals.RefinedNumberUtils.operatorsForFloat<
23
+ ElementType,
24
+ number,
25
+ number
26
+ >({
27
+ nonZero: true,
28
+ MIN_VALUE: -Number.MAX_VALUE,
29
+ MAX_VALUE: -Number.MIN_VALUE,
30
+ typeNameInMessage,
31
+ } as const);
32
+
33
+ /**
34
+ * Returns the absolute value of a negative finite number.
35
+ *
36
+ * The absolute value of a negative finite number is always a positive finite
37
+ * number, so the result is typed as a {@link PositiveFiniteNumber}.
38
+ *
39
+ * @param x - The negative finite number.
40
+ * @returns `|x|` as a PositiveFiniteNumber.
41
+ */
42
+ const abs = (x: ElementType): PositiveFiniteNumber =>
43
+ PositiveFiniteNumber.clamp(Math.abs(x));
44
+
45
+ const floor = (
46
+ x: ElementType,
47
+ ): TsDataForgeInternals.RefinedNumberUtils.ToInt<ElementType> =>
48
+ // eslint-disable-next-line total-functions/no-unsafe-type-assertion
49
+ Math.floor(x) as TsDataForgeInternals.RefinedNumberUtils.ToInt<ElementType>;
50
+
51
+ const ceil = (
52
+ x: ElementType,
53
+ ): TsDataForgeInternals.RefinedNumberUtils.RemoveNonZeroBrandKey<
54
+ TsDataForgeInternals.RefinedNumberUtils.ToInt<ElementType>
55
+ > =>
56
+ // eslint-disable-next-line total-functions/no-unsafe-type-assertion
57
+ Math.ceil(x) as TsDataForgeInternals.RefinedNumberUtils.RemoveNonZeroBrandKey<
58
+ TsDataForgeInternals.RefinedNumberUtils.ToInt<ElementType>
59
+ >;
60
+
61
+ const round = (
62
+ x: ElementType,
63
+ ): TsDataForgeInternals.RefinedNumberUtils.RemoveNonZeroBrandKey<
64
+ TsDataForgeInternals.RefinedNumberUtils.ToInt<ElementType>
65
+ > =>
66
+ // eslint-disable-next-line total-functions/no-unsafe-type-assertion
67
+ Math.round(
68
+ x,
69
+ ) as TsDataForgeInternals.RefinedNumberUtils.RemoveNonZeroBrandKey<
70
+ TsDataForgeInternals.RefinedNumberUtils.ToInt<ElementType>
71
+ >;
72
+
73
+ /**
74
+ * Checks if a number is a NegativeFiniteNumber (a finite number `< 0`).
75
+ *
76
+ * @param value The value to check.
77
+ * @returns `true` if the value is a NegativeFiniteNumber, `false` otherwise.
78
+ */
79
+ export const isNegativeFiniteNumber = is;
80
+
81
+ /**
82
+ * Casts a number to a NegativeFiniteNumber type.
83
+ *
84
+ * @param value The value to cast.
85
+ * @returns The value as a NegativeFiniteNumber type.
86
+ * @throws {TypeError} If the value is not a negative finite number.
87
+ */
88
+ export const asNegativeFiniteNumber = castType;
89
+
90
+ /**
91
+ * Namespace providing type-safe arithmetic operations for negative finite
92
+ * numbers.
93
+ *
94
+ * All operations keep results finite (excluding NaN and Infinity). Operations
95
+ * that stay within the negative finite numbers clamp their results to the valid
96
+ * range, while operations whose result leaves the set (`mul`, `div`, `abs`) are
97
+ * typed to reflect the actual sign of the result.
98
+ */
99
+ export const NegativeFiniteNumber = {
100
+ /**
101
+ * Type guard to check if a value is a NegativeFiniteNumber.
102
+ *
103
+ * @param value The value to check.
104
+ * @returns `true` if the value is a negative finite number, `false`
105
+ * otherwise.
106
+ */
107
+ is,
108
+
109
+ /**
110
+ * The maximum value for a negative finite number.
111
+ *
112
+ * @readonly
113
+ */
114
+ MAX_VALUE,
115
+
116
+ /**
117
+ * Returns the absolute value of a negative finite number.
118
+ *
119
+ * @param a The negative finite number.
120
+ * @returns The absolute value as a PositiveFiniteNumber.
121
+ */
122
+ abs,
123
+
124
+ /**
125
+ * Returns the smaller of two NegativeFiniteNumber values.
126
+ *
127
+ * @param a The first NegativeFiniteNumber.
128
+ * @param b The second NegativeFiniteNumber.
129
+ * @returns The minimum value as a NegativeFiniteNumber.
130
+ */
131
+ min: min_,
132
+
133
+ /**
134
+ * Returns the larger of two NegativeFiniteNumber values.
135
+ *
136
+ * @param a The first NegativeFiniteNumber.
137
+ * @param b The second NegativeFiniteNumber.
138
+ * @returns The maximum value as a NegativeFiniteNumber.
139
+ */
140
+ max: max_,
141
+
142
+ /**
143
+ * Clamps a number to the negative finite range.
144
+ *
145
+ * @param value The number to clamp.
146
+ * @returns The value clamped to `(-∞, 0)` as a NegativeFiniteNumber.
147
+ */
148
+ clamp,
149
+
150
+ /**
151
+ * Rounds down a NegativeFiniteNumber to the nearest integer.
152
+ *
153
+ * @param x The NegativeFiniteNumber to round down.
154
+ * @returns The floor value as a NegativeInt (always `<= -1`).
155
+ */
156
+ floor,
157
+
158
+ /**
159
+ * Rounds up a NegativeFiniteNumber to the nearest integer.
160
+ *
161
+ * @param x The NegativeFiniteNumber to round up.
162
+ * @returns The ceiling value as a NonPositiveInt (can be 0).
163
+ */
164
+ ceil,
165
+
166
+ /**
167
+ * Rounds a NegativeFiniteNumber to the nearest integer.
168
+ *
169
+ * @param x The NegativeFiniteNumber to round.
170
+ * @returns The rounded value as a NonPositiveInt (can be 0 if x > -0.5).
171
+ */
172
+ round,
173
+
174
+ /**
175
+ * Generates a random NegativeFiniteNumber value.
176
+ *
177
+ * @returns A random negative finite number.
178
+ */
179
+ random,
180
+
181
+ /**
182
+ * Raises a NegativeFiniteNumber to the power of another NegativeFiniteNumber.
183
+ *
184
+ * @param a The base NegativeFiniteNumber.
185
+ * @param b The exponent NegativeFiniteNumber.
186
+ * @returns `a ** b` clamped to `(-∞, 0)` as a NegativeFiniteNumber.
187
+ */
188
+ pow,
189
+
190
+ /**
191
+ * Adds two NegativeFiniteNumber values.
192
+ *
193
+ * @param a The first NegativeFiniteNumber.
194
+ * @param b The second NegativeFiniteNumber.
195
+ * @returns `a + b` as a NegativeFiniteNumber.
196
+ */
197
+ add,
198
+
199
+ /**
200
+ * Subtracts one NegativeFiniteNumber from another.
201
+ *
202
+ * The mathematical result can be positive, so it is clamped to the negative
203
+ * finite range (maximum `-Number.MIN_VALUE`).
204
+ *
205
+ * @param a The minuend NegativeFiniteNumber.
206
+ * @param b The subtrahend NegativeFiniteNumber.
207
+ * @returns `a - b` clamped to `(-∞, 0)` as a NegativeFiniteNumber.
208
+ */
209
+ sub,
210
+ } as const;
@@ -0,0 +1,172 @@
1
+ import {
2
+ type NegativeInt,
3
+ type NonPositiveInt,
4
+ type PositiveFiniteNumber,
5
+ } from 'ts-type-forge';
6
+ import { expectType } from '../../expect-type.mjs';
7
+ import { range } from '../../iterator/index.mjs';
8
+ import {
9
+ asNegativeFiniteNumber,
10
+ isNegativeFiniteNumber,
11
+ NegativeFiniteNumber,
12
+ } from './negative-finite-number.mjs';
13
+
14
+ describe('NegativeFiniteNumber test', () => {
15
+ describe(asNegativeFiniteNumber, () => {
16
+ test('accepts valid negative finite numbers', () => {
17
+ expect(() => asNegativeFiniteNumber(-1)).not.toThrow();
18
+
19
+ expect(() => asNegativeFiniteNumber(-1.5)).not.toThrow();
20
+
21
+ expect(() => asNegativeFiniteNumber(-1e308)).not.toThrow();
22
+ });
23
+
24
+ test('rejects zero and positive numbers', () => {
25
+ expect(() => asNegativeFiniteNumber(0)).toThrow(TypeError);
26
+
27
+ expect(() => asNegativeFiniteNumber(1.5)).toThrow(TypeError);
28
+ });
29
+
30
+ test('rejects non-finite values', () => {
31
+ expect(() => asNegativeFiniteNumber(Number.NaN)).toThrow(TypeError);
32
+
33
+ expect(() => asNegativeFiniteNumber(Number.NEGATIVE_INFINITY)).toThrow(
34
+ TypeError,
35
+ );
36
+ });
37
+ });
38
+
39
+ describe(isNegativeFiniteNumber, () => {
40
+ test('correctly identifies negative finite numbers', () => {
41
+ assert.isTrue(isNegativeFiniteNumber(-1));
42
+
43
+ assert.isTrue(isNegativeFiniteNumber(-1.5));
44
+
45
+ assert.isFalse(isNegativeFiniteNumber(0));
46
+
47
+ assert.isFalse(isNegativeFiniteNumber(1));
48
+
49
+ assert.isFalse(isNegativeFiniteNumber(Number.NEGATIVE_INFINITY));
50
+ });
51
+ });
52
+
53
+ describe('NegativeFiniteNumber.is', () => {
54
+ test('works as a type guard', () => {
55
+ const value: number = -42.5;
56
+
57
+ if (NegativeFiniteNumber.is(value)) {
58
+ expectType<typeof value, typeof value & NegativeFiniteNumber>('=');
59
+ }
60
+ });
61
+ });
62
+
63
+ describe('NegativeFiniteNumber.abs', () => {
64
+ test('returns the absolute value as a positive finite number', () => {
65
+ expect(
66
+ NegativeFiniteNumber.abs(asNegativeFiniteNumber(-5.5)),
67
+ ).toBeCloseTo(5.5, 5);
68
+ });
69
+
70
+ test('result type is PositiveFiniteNumber', () => {
71
+ expectType<
72
+ ReturnType<typeof NegativeFiniteNumber.abs>,
73
+ PositiveFiniteNumber
74
+ >('=');
75
+ });
76
+ });
77
+
78
+ describe('NegativeFiniteNumber.min / max', () => {
79
+ test('returns the expected extremum', () => {
80
+ expect(
81
+ NegativeFiniteNumber.min(
82
+ asNegativeFiniteNumber(-5.5),
83
+ asNegativeFiniteNumber(-10.5),
84
+ ),
85
+ ).toBeCloseTo(-10.5, 5);
86
+
87
+ expect(
88
+ NegativeFiniteNumber.max(
89
+ asNegativeFiniteNumber(-5.5),
90
+ asNegativeFiniteNumber(-10.5),
91
+ ),
92
+ ).toBeCloseTo(-5.5, 5);
93
+ });
94
+ });
95
+
96
+ describe('NegativeFiniteNumber.clamp', () => {
97
+ test('clamps non-negative values into range', () => {
98
+ expect(NegativeFiniteNumber.clamp(-5.5)).toBeCloseTo(-5.5, 5);
99
+
100
+ expect(NegativeFiniteNumber.clamp(0)).toBeLessThan(0);
101
+
102
+ expect(NegativeFiniteNumber.clamp(5)).toBeLessThan(0);
103
+ });
104
+ });
105
+
106
+ describe('NegativeFiniteNumber.floor / ceil / round', () => {
107
+ test('rounds toward integers', () => {
108
+ expect(NegativeFiniteNumber.floor(asNegativeFiniteNumber(-2.3))).toBe(-3);
109
+
110
+ expect(NegativeFiniteNumber.ceil(asNegativeFiniteNumber(-2.3))).toBe(-2);
111
+
112
+ expect(
113
+ NegativeFiniteNumber.ceil(asNegativeFiniteNumber(-0.5)),
114
+ ).toBeCloseTo(0);
115
+
116
+ expect(
117
+ NegativeFiniteNumber.round(asNegativeFiniteNumber(-0.4)),
118
+ ).toBeCloseTo(0);
119
+ });
120
+
121
+ test('floor result type is NegativeInt', () => {
122
+ expectType<ReturnType<typeof NegativeFiniteNumber.floor>, NegativeInt>(
123
+ '=',
124
+ );
125
+ });
126
+
127
+ test('ceil/round result type is NonPositiveInt', () => {
128
+ expectType<ReturnType<typeof NegativeFiniteNumber.ceil>, NonPositiveInt>(
129
+ '=',
130
+ );
131
+
132
+ expectType<ReturnType<typeof NegativeFiniteNumber.round>, NonPositiveInt>(
133
+ '=',
134
+ );
135
+ });
136
+ });
137
+
138
+ describe('NegativeFiniteNumber.add / sub', () => {
139
+ test('adds and subtracts within range', () => {
140
+ expect(
141
+ NegativeFiniteNumber.add(
142
+ asNegativeFiniteNumber(-5.5),
143
+ asNegativeFiniteNumber(-3.5),
144
+ ),
145
+ ).toBeCloseTo(-9, 5);
146
+
147
+ expect(
148
+ NegativeFiniteNumber.sub(
149
+ asNegativeFiniteNumber(-10.5),
150
+ asNegativeFiniteNumber(-3.5),
151
+ ),
152
+ ).toBeCloseTo(-7, 5);
153
+
154
+ expect(
155
+ NegativeFiniteNumber.sub(
156
+ asNegativeFiniteNumber(-3.5),
157
+ asNegativeFiniteNumber(-10.5),
158
+ ),
159
+ ).toBeLessThan(0);
160
+ });
161
+ });
162
+
163
+ describe('NegativeFiniteNumber.random', () => {
164
+ test('generates values within range', () => {
165
+ for (const _ of range(100)) {
166
+ const value = NegativeFiniteNumber.random();
167
+
168
+ assert.isTrue(isNegativeFiniteNumber(value));
169
+ }
170
+ });
171
+ });
172
+ });