ts-data-forge 10.0.0 → 11.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/array/impl/array-utils-creation.d.mts +3 -3
- package/dist/array/impl/array-utils-creation.d.mts.map +1 -1
- package/dist/array/impl/array-utils-creation.mjs.map +1 -1
- package/dist/array/impl/array-utils-element-access.d.mts +4 -4
- package/dist/array/impl/array-utils-element-access.mjs.map +1 -1
- package/dist/{guard/as-length-bounded-array.d.mts → array/impl/array-utils-length-bounded-array-cast.d.mts} +9 -9
- package/dist/array/impl/array-utils-length-bounded-array-cast.d.mts.map +1 -0
- package/dist/{guard/as-length-bounded-array.mjs → array/impl/array-utils-length-bounded-array-cast.mjs} +2 -2
- package/dist/array/impl/array-utils-length-bounded-array-cast.mjs.map +1 -0
- package/dist/{guard/is-length-bounded-array.d.mts → array/impl/array-utils-length-bounded-array-guard.d.mts} +13 -13
- package/dist/array/impl/array-utils-length-bounded-array-guard.d.mts.map +1 -0
- package/dist/{guard/is-length-bounded-array.mjs → array/impl/array-utils-length-bounded-array-guard.mjs} +1 -1
- package/dist/array/impl/array-utils-length-bounded-array-guard.mjs.map +1 -0
- package/dist/array/impl/array-utils-modification.d.mts +9 -9
- package/dist/array/impl/array-utils-modification.d.mts.map +1 -1
- package/dist/array/impl/array-utils-modification.mjs.map +1 -1
- package/dist/array/impl/array-utils-reducing-value.d.mts +9 -9
- package/dist/array/impl/array-utils-reducing-value.mjs.map +1 -1
- package/dist/array/impl/array-utils-size.d.mts +3 -3
- package/dist/array/impl/array-utils-size.mjs.map +1 -1
- package/dist/array/impl/array-utils-slicing.d.mts +9 -9
- package/dist/array/impl/array-utils-slicing.d.mts.map +1 -1
- package/dist/array/impl/array-utils-slicing.mjs.map +1 -1
- package/dist/array/impl/array-utils-transformation.d.mts +16 -10
- package/dist/array/impl/array-utils-transformation.d.mts.map +1 -1
- package/dist/array/impl/array-utils-transformation.mjs.map +1 -1
- package/dist/array/impl/index.d.mts +2 -0
- package/dist/array/impl/index.d.mts.map +1 -1
- package/dist/array/impl/index.mjs +2 -0
- package/dist/array/impl/index.mjs.map +1 -1
- package/dist/entry-point.mjs +1 -3
- package/dist/entry-point.mjs.map +1 -1
- package/dist/guard/index.d.mts +0 -3
- package/dist/guard/index.d.mts.map +1 -1
- package/dist/guard/index.mjs +0 -3
- package/dist/guard/index.mjs.map +1 -1
- package/dist/index.d.mts +1 -0
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +1 -3
- package/dist/index.mjs.map +1 -1
- package/dist/number/branded-types/finite-number.d.mts +47 -61
- package/dist/number/branded-types/finite-number.d.mts.map +1 -1
- package/dist/number/branded-types/finite-number.mjs +37 -41
- package/dist/number/branded-types/finite-number.mjs.map +1 -1
- package/dist/number/branded-types/int.d.mts +40 -46
- package/dist/number/branded-types/int.d.mts.map +1 -1
- package/dist/number/branded-types/int.mjs +29 -31
- package/dist/number/branded-types/int.mjs.map +1 -1
- package/dist/number/branded-types/int16.d.mts +65 -58
- package/dist/number/branded-types/int16.d.mts.map +1 -1
- package/dist/number/branded-types/int16.mjs +49 -45
- package/dist/number/branded-types/int16.mjs.map +1 -1
- package/dist/number/branded-types/int32.d.mts +65 -58
- package/dist/number/branded-types/int32.d.mts.map +1 -1
- package/dist/number/branded-types/int32.mjs +49 -45
- package/dist/number/branded-types/int32.mjs.map +1 -1
- package/dist/number/branded-types/negative-finite-number.d.mts +68 -59
- package/dist/number/branded-types/negative-finite-number.d.mts.map +1 -1
- package/dist/number/branded-types/negative-finite-number.mjs +52 -46
- package/dist/number/branded-types/negative-finite-number.mjs.map +1 -1
- package/dist/number/branded-types/negative-int.d.mts +60 -48
- package/dist/number/branded-types/negative-int.d.mts.map +1 -1
- package/dist/number/branded-types/negative-int.mjs +40 -36
- package/dist/number/branded-types/negative-int.mjs.map +1 -1
- package/dist/number/branded-types/negative-safe-int.d.mts +57 -56
- package/dist/number/branded-types/negative-safe-int.d.mts.map +1 -1
- package/dist/number/branded-types/negative-safe-int.mjs +40 -41
- package/dist/number/branded-types/negative-safe-int.mjs.map +1 -1
- package/dist/number/branded-types/non-negative-finite-number.d.mts +74 -64
- package/dist/number/branded-types/non-negative-finite-number.d.mts.map +1 -1
- package/dist/number/branded-types/non-negative-finite-number.mjs +58 -51
- package/dist/number/branded-types/non-negative-finite-number.mjs.map +1 -1
- package/dist/number/branded-types/non-negative-int16.d.mts +64 -57
- package/dist/number/branded-types/non-negative-int16.d.mts.map +1 -1
- package/dist/number/branded-types/non-negative-int16.mjs +47 -43
- package/dist/number/branded-types/non-negative-int16.mjs.map +1 -1
- package/dist/number/branded-types/non-negative-int32.d.mts +64 -58
- package/dist/number/branded-types/non-negative-int32.d.mts.map +1 -1
- package/dist/number/branded-types/non-negative-int32.mjs +47 -44
- package/dist/number/branded-types/non-negative-int32.mjs.map +1 -1
- package/dist/number/branded-types/non-positive-finite-number.d.mts +64 -54
- package/dist/number/branded-types/non-positive-finite-number.d.mts.map +1 -1
- package/dist/number/branded-types/non-positive-finite-number.mjs +48 -41
- package/dist/number/branded-types/non-positive-finite-number.mjs.map +1 -1
- package/dist/number/branded-types/non-positive-int.d.mts +41 -146
- package/dist/number/branded-types/non-positive-int.d.mts.map +1 -1
- package/dist/number/branded-types/non-positive-int.mjs +27 -107
- package/dist/number/branded-types/non-positive-int.mjs.map +1 -1
- package/dist/number/branded-types/non-positive-safe-int.d.mts +54 -53
- package/dist/number/branded-types/non-positive-safe-int.d.mts.map +1 -1
- package/dist/number/branded-types/non-positive-safe-int.mjs +37 -39
- package/dist/number/branded-types/non-positive-safe-int.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-finite-number.d.mts +62 -49
- package/dist/number/branded-types/non-zero-finite-number.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-finite-number.mjs +46 -37
- package/dist/number/branded-types/non-zero-finite-number.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-int.d.mts +51 -38
- package/dist/number/branded-types/non-zero-int.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-int.mjs +31 -27
- package/dist/number/branded-types/non-zero-int.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-int16.d.mts +52 -53
- package/dist/number/branded-types/non-zero-int16.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-int16.mjs +36 -39
- package/dist/number/branded-types/non-zero-int16.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-int32.d.mts +52 -54
- package/dist/number/branded-types/non-zero-int32.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-int32.mjs +36 -40
- package/dist/number/branded-types/non-zero-int32.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-safe-int.d.mts +53 -54
- package/dist/number/branded-types/non-zero-safe-int.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-safe-int.mjs +36 -40
- package/dist/number/branded-types/non-zero-safe-int.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-uint16.d.mts +52 -53
- package/dist/number/branded-types/non-zero-uint16.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-uint16.mjs +35 -39
- package/dist/number/branded-types/non-zero-uint16.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-uint32.d.mts +52 -53
- package/dist/number/branded-types/non-zero-uint32.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-uint32.mjs +35 -39
- package/dist/number/branded-types/non-zero-uint32.mjs.map +1 -1
- package/dist/number/branded-types/positive-finite-number.d.mts +74 -63
- package/dist/number/branded-types/positive-finite-number.d.mts.map +1 -1
- package/dist/number/branded-types/positive-finite-number.mjs +58 -50
- package/dist/number/branded-types/positive-finite-number.mjs.map +1 -1
- package/dist/number/branded-types/positive-int.d.mts +46 -68
- package/dist/number/branded-types/positive-int.d.mts.map +1 -1
- package/dist/number/branded-types/positive-int.mjs +34 -49
- package/dist/number/branded-types/positive-int.mjs.map +1 -1
- package/dist/number/branded-types/positive-int16.d.mts +61 -57
- package/dist/number/branded-types/positive-int16.d.mts.map +1 -1
- package/dist/number/branded-types/positive-int16.mjs +44 -43
- package/dist/number/branded-types/positive-int16.mjs.map +1 -1
- package/dist/number/branded-types/positive-int32.d.mts +61 -57
- package/dist/number/branded-types/positive-int32.d.mts.map +1 -1
- package/dist/number/branded-types/positive-int32.mjs +44 -43
- package/dist/number/branded-types/positive-int32.mjs.map +1 -1
- package/dist/number/branded-types/positive-safe-int.d.mts +62 -57
- package/dist/number/branded-types/positive-safe-int.d.mts.map +1 -1
- package/dist/number/branded-types/positive-safe-int.mjs +45 -43
- package/dist/number/branded-types/positive-safe-int.mjs.map +1 -1
- package/dist/number/branded-types/positive-uint16.d.mts +61 -57
- package/dist/number/branded-types/positive-uint16.d.mts.map +1 -1
- package/dist/number/branded-types/positive-uint16.mjs +44 -43
- package/dist/number/branded-types/positive-uint16.mjs.map +1 -1
- package/dist/number/branded-types/positive-uint32.d.mts +61 -58
- package/dist/number/branded-types/positive-uint32.d.mts.map +1 -1
- package/dist/number/branded-types/positive-uint32.mjs +44 -44
- package/dist/number/branded-types/positive-uint32.mjs.map +1 -1
- package/dist/number/branded-types/safe-int.d.mts +43 -62
- package/dist/number/branded-types/safe-int.d.mts.map +1 -1
- package/dist/number/branded-types/safe-int.mjs +35 -42
- package/dist/number/branded-types/safe-int.mjs.map +1 -1
- package/dist/number/branded-types/safe-uint.d.mts +62 -57
- package/dist/number/branded-types/safe-uint.d.mts.map +1 -1
- package/dist/number/branded-types/safe-uint.mjs +46 -44
- package/dist/number/branded-types/safe-uint.mjs.map +1 -1
- package/dist/number/branded-types/uint.d.mts +63 -50
- package/dist/number/branded-types/uint.d.mts.map +1 -1
- package/dist/number/branded-types/uint.mjs +42 -39
- package/dist/number/branded-types/uint.mjs.map +1 -1
- package/dist/number/branded-types/uint16.d.mts +60 -58
- package/dist/number/branded-types/uint16.d.mts.map +1 -1
- package/dist/number/branded-types/uint16.mjs +44 -43
- package/dist/number/branded-types/uint16.mjs.map +1 -1
- package/dist/number/branded-types/uint32.d.mts +59 -55
- package/dist/number/branded-types/uint32.d.mts.map +1 -1
- package/dist/number/branded-types/uint32.mjs +42 -42
- package/dist/number/branded-types/uint32.mjs.map +1 -1
- package/dist/number/enum/int8.d.mts +56 -65
- package/dist/number/enum/int8.d.mts.map +1 -1
- package/dist/number/enum/int8.mjs +44 -43
- package/dist/number/enum/int8.mjs.map +1 -1
- package/dist/number/enum/uint8.d.mts +60 -58
- package/dist/number/enum/uint8.d.mts.map +1 -1
- package/dist/number/enum/uint8.mjs +44 -43
- package/dist/number/enum/uint8.mjs.map +1 -1
- package/dist/string/index.d.mts +2 -0
- package/dist/string/index.d.mts.map +1 -0
- package/dist/string/index.mjs +2 -0
- package/dist/string/index.mjs.map +1 -0
- package/dist/string/str.d.mts +273 -0
- package/dist/string/str.d.mts.map +1 -0
- package/dist/string/str.mjs +42 -0
- package/dist/string/str.mjs.map +1 -0
- package/package.json +31 -92
- package/src/array/impl/array-utils-creation.mts +2 -1
- package/src/array/impl/array-utils-element-access.mts +3 -3
- package/src/array/impl/array-utils-element-access.test.mts +3 -3
- package/src/{guard/as-length-bounded-array.mts → array/impl/array-utils-length-bounded-array-cast.mts} +9 -9
- package/src/{guard/as-length-bounded-array.test.mts → array/impl/array-utils-length-bounded-array-cast.test.mts} +2 -2
- package/src/{guard/is-length-bounded-array.mts → array/impl/array-utils-length-bounded-array-guard.mts} +12 -12
- package/src/{guard/is-length-bounded-array.test.mts → array/impl/array-utils-length-bounded-array-guard.test.mts} +2 -2
- package/src/array/impl/array-utils-modification.mts +9 -8
- package/src/array/impl/array-utils-modification.test.mts +6 -1
- package/src/array/impl/array-utils-reducing-value.mts +9 -9
- package/src/array/impl/array-utils-size.mts +2 -2
- package/src/array/impl/array-utils-slicing.mts +24 -13
- package/src/array/impl/array-utils-transformation.mts +18 -12
- package/src/array/impl/array-utils-transformation.test.mts +12 -12
- package/src/array/impl/index.mts +2 -0
- package/src/guard/index.mts +0 -3
- package/src/index.mts +1 -0
- package/src/number/branded-types/finite-number.mts +47 -61
- package/src/number/branded-types/int.mts +40 -46
- package/src/number/branded-types/int16.mts +65 -58
- package/src/number/branded-types/int32.mts +65 -58
- package/src/number/branded-types/negative-finite-number.mts +68 -68
- package/src/number/branded-types/negative-int.mts +60 -57
- package/src/number/branded-types/negative-safe-int.mts +57 -65
- package/src/number/branded-types/non-negative-finite-number.mts +74 -64
- package/src/number/branded-types/non-negative-int16.mts +64 -57
- package/src/number/branded-types/non-negative-int32.mts +64 -58
- package/src/number/branded-types/non-positive-finite-number.mts +64 -54
- package/src/number/branded-types/non-positive-int.mts +41 -146
- package/src/number/branded-types/non-positive-safe-int.mts +54 -53
- package/src/number/branded-types/non-zero-finite-number.mts +62 -51
- package/src/number/branded-types/non-zero-int.mts +51 -38
- package/src/number/branded-types/non-zero-int16.mts +52 -53
- package/src/number/branded-types/non-zero-int32.mts +52 -54
- package/src/number/branded-types/non-zero-safe-int.mts +53 -54
- package/src/number/branded-types/non-zero-uint16.mts +52 -53
- package/src/number/branded-types/non-zero-uint32.mts +52 -53
- package/src/number/branded-types/positive-finite-number.mts +74 -63
- package/src/number/branded-types/positive-int.mts +46 -68
- package/src/number/branded-types/positive-int16.mts +61 -57
- package/src/number/branded-types/positive-int32.mts +61 -57
- package/src/number/branded-types/positive-safe-int.mts +62 -57
- package/src/number/branded-types/positive-uint16.mts +61 -57
- package/src/number/branded-types/positive-uint32.mts +61 -58
- package/src/number/branded-types/safe-int.mts +43 -62
- package/src/number/branded-types/safe-uint.mts +62 -57
- package/src/number/branded-types/uint.mts +63 -50
- package/src/number/branded-types/uint16.mts +60 -58
- package/src/number/branded-types/uint32.mts +59 -55
- package/src/number/enum/int8.mts +56 -65
- package/src/number/enum/uint8.mts +60 -58
- package/src/string/index.mts +1 -0
- package/src/string/str.mts +371 -0
- package/src/string/str.test.mts +215 -0
- package/dist/guard/as-length-bounded-array.d.mts.map +0 -1
- package/dist/guard/as-length-bounded-array.mjs.map +0 -1
- package/dist/guard/is-length-bounded-array.d.mts.map +0 -1
- package/dist/guard/is-length-bounded-array.mjs.map +0 -1
- package/dist/guard/is-length-bounded-string.d.mts +0 -163
- package/dist/guard/is-length-bounded-string.d.mts.map +0 -1
- package/dist/guard/is-length-bounded-string.mjs +0 -7
- package/dist/guard/is-length-bounded-string.mjs.map +0 -1
- package/src/guard/is-length-bounded-string.mts +0 -199
- package/src/guard/is-length-bounded-string.test.mts +0 -170
|
@@ -3,18 +3,24 @@ import { TsDataForgeInternals } from '../refined-number-utils.mjs';
|
|
|
3
3
|
export type NonZeroFiniteNumber = TtfImported_NonZeroFiniteNumber;
|
|
4
4
|
type ElementType = NonZeroFiniteNumber;
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
6
|
+
* Type guard that checks if a value is a non-zero finite number.
|
|
7
7
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
8
|
+
* Returns `true` only for a finite value — never `NaN`, `Infinity`, or
|
|
9
|
+
* `-Infinity`.
|
|
10
|
+
*
|
|
11
|
+
* @param value - The value to check
|
|
12
|
+
* @returns `true` if the value is a non-zero finite number, `false` otherwise
|
|
10
13
|
*/
|
|
11
14
|
export declare const isNonZeroFiniteNumber: (a: number) => a is TtfImported_NonZeroFiniteNumber;
|
|
12
15
|
/**
|
|
13
|
-
* Casts a number to
|
|
16
|
+
* Casts a `number` to the `NonZeroFiniteNumber` branded type.
|
|
17
|
+
*
|
|
18
|
+
* Validates that the value is a non-zero finite number and returns it with the
|
|
19
|
+
* `NonZeroFiniteNumber` brand. Throws a `TypeError` otherwise.
|
|
14
20
|
*
|
|
15
|
-
* @param value The value to cast
|
|
16
|
-
* @returns The value as a NonZeroFiniteNumber
|
|
17
|
-
* @throws {TypeError} If the value is not a non-zero finite number
|
|
21
|
+
* @param value - The value to cast
|
|
22
|
+
* @returns The value as a `NonZeroFiniteNumber`
|
|
23
|
+
* @throws {TypeError} If the value is not a non-zero finite number
|
|
18
24
|
*/
|
|
19
25
|
export declare const asNonZeroFiniteNumber: <N extends number>(x: N) => number & {
|
|
20
26
|
readonly "!=0": true;
|
|
@@ -24,98 +30,105 @@ export declare const asNonZeroFiniteNumber: <N extends number>(x: N) => number &
|
|
|
24
30
|
'TSTypeForgeInternals--edd2f9ce-7ca5-45b0-9d1a-bd61b9b5d9c3': unknown;
|
|
25
31
|
}> & N;
|
|
26
32
|
/**
|
|
27
|
-
* Namespace providing type-safe
|
|
28
|
-
*
|
|
33
|
+
* Namespace providing type-safe operations for the `NonZeroFiniteNumber`
|
|
34
|
+
* branded type.
|
|
29
35
|
*
|
|
30
|
-
*
|
|
31
|
-
* finite (excluding NaN and Infinity). This type is useful for values that must
|
|
32
|
-
* never be zero, such as denominators, scaling factors, and ratios.
|
|
36
|
+
* The `NonZeroFiniteNumber` type represents a non-zero finite number.
|
|
33
37
|
*/
|
|
34
38
|
export declare const NonZeroFiniteNumber: {
|
|
35
39
|
/**
|
|
36
|
-
* Type guard
|
|
40
|
+
* Type guard that checks if a value is a non-zero finite number.
|
|
37
41
|
*
|
|
38
|
-
* @param value The value to check
|
|
39
|
-
* @returns `true` if the value is a non-zero finite number, `false`
|
|
40
|
-
*
|
|
42
|
+
* @param value - The value to check
|
|
43
|
+
* @returns `true` if the value is a non-zero finite number, `false` otherwise
|
|
44
|
+
* @see {@link isNonZeroFiniteNumber} for usage examples
|
|
41
45
|
*/
|
|
42
46
|
readonly is: (a: number) => a is TtfImported_NonZeroFiniteNumber;
|
|
43
47
|
/**
|
|
44
48
|
* Returns the absolute value of a non-zero finite number.
|
|
45
49
|
*
|
|
46
|
-
*
|
|
47
|
-
*
|
|
50
|
+
* The result is non-negative and keeps the `NonZeroFiniteNumber` brand.
|
|
51
|
+
*
|
|
52
|
+
* @param a - The non-zero finite number value
|
|
53
|
+
* @returns The absolute value as a non-negative `NonZeroFiniteNumber`
|
|
48
54
|
*/
|
|
49
55
|
readonly abs: (x: TtfImported_NonZeroFiniteNumber) => import("ts-type-forge").IntersectBrand<TtfImported_NonZeroFiniteNumber, import("ts-type-forge").PositiveNumber>;
|
|
50
56
|
/**
|
|
51
|
-
* Returns the
|
|
57
|
+
* Returns the smallest of the given non-zero finite numbers.
|
|
52
58
|
*
|
|
53
|
-
* @param
|
|
54
|
-
* @
|
|
55
|
-
* @returns The minimum value as a NonZeroFiniteNumber.
|
|
59
|
+
* @param values - The non-zero finite numbers to compare (at least one required)
|
|
60
|
+
* @returns The smallest value as a `NonZeroFiniteNumber`
|
|
56
61
|
*/
|
|
57
62
|
readonly min: (...values: readonly TtfImported_NonZeroFiniteNumber[]) => TtfImported_NonZeroFiniteNumber;
|
|
58
63
|
/**
|
|
59
|
-
* Returns the
|
|
64
|
+
* Returns the largest of the given non-zero finite numbers.
|
|
60
65
|
*
|
|
61
|
-
* @param
|
|
62
|
-
* @
|
|
63
|
-
* @returns The maximum value as a NonZeroFiniteNumber.
|
|
66
|
+
* @param values - The non-zero finite numbers to compare (at least one required)
|
|
67
|
+
* @returns The largest value as a `NonZeroFiniteNumber`
|
|
64
68
|
*/
|
|
65
69
|
readonly max: (...values: readonly TtfImported_NonZeroFiniteNumber[]) => TtfImported_NonZeroFiniteNumber;
|
|
66
70
|
/**
|
|
67
|
-
*
|
|
71
|
+
* Returns the greatest integer less than or equal to a non-zero finite
|
|
72
|
+
* number.
|
|
68
73
|
*
|
|
69
|
-
* @param
|
|
70
|
-
* @returns The
|
|
74
|
+
* @param a - The non-zero finite number value
|
|
75
|
+
* @returns The floored value as an integer
|
|
71
76
|
*/
|
|
72
77
|
readonly floor: (x: ElementType) => TsDataForgeInternals.RefinedNumberUtils.ToInt<ElementType>;
|
|
73
78
|
/**
|
|
74
|
-
*
|
|
79
|
+
* Returns the smallest integer greater than or equal to a non-zero finite
|
|
80
|
+
* number.
|
|
75
81
|
*
|
|
76
|
-
* @param
|
|
77
|
-
* @returns The
|
|
82
|
+
* @param a - The non-zero finite number value
|
|
83
|
+
* @returns The ceiled value as an integer
|
|
78
84
|
*/
|
|
79
85
|
readonly ceil: (x: ElementType) => TsDataForgeInternals.RefinedNumberUtils.ToInt<ElementType>;
|
|
80
86
|
/**
|
|
81
|
-
*
|
|
87
|
+
* Returns the value of a non-zero finite number rounded to the nearest
|
|
88
|
+
* integer.
|
|
82
89
|
*
|
|
83
|
-
* @param
|
|
84
|
-
* @returns The rounded value as
|
|
90
|
+
* @param a - The non-zero finite number value
|
|
91
|
+
* @returns The rounded value as an integer
|
|
85
92
|
*/
|
|
86
93
|
readonly round: (x: ElementType) => TsDataForgeInternals.RefinedNumberUtils.ToInt<ElementType>;
|
|
87
94
|
/**
|
|
88
|
-
* Generates a random NonZeroFiniteNumber
|
|
95
|
+
* Generates a random `NonZeroFiniteNumber` within the given range.
|
|
96
|
+
*
|
|
97
|
+
* The range is inclusive on both ends.
|
|
89
98
|
*
|
|
90
|
-
* @
|
|
99
|
+
* @param min - The minimum value (inclusive)
|
|
100
|
+
* @param max - The maximum value (inclusive)
|
|
101
|
+
* @returns A random `NonZeroFiniteNumber` in `[min, max]`
|
|
91
102
|
*/
|
|
92
103
|
readonly random: (min?: TtfImported_NonZeroFiniteNumber | undefined, max?: TtfImported_NonZeroFiniteNumber | undefined) => TtfImported_NonZeroFiniteNumber;
|
|
93
104
|
/**
|
|
94
|
-
* Raises a
|
|
105
|
+
* Raises `a` to the power `b`, returning `a ** b` as a `NonZeroFiniteNumber`.
|
|
95
106
|
*
|
|
96
|
-
* @param a The base
|
|
97
|
-
* @param b The exponent
|
|
98
|
-
* @returns `a ** b` as a NonZeroFiniteNumber
|
|
107
|
+
* @param a - The base non-zero finite number
|
|
108
|
+
* @param b - The exponent non-zero finite number
|
|
109
|
+
* @returns `a ** b` as a `NonZeroFiniteNumber`
|
|
99
110
|
*/
|
|
100
111
|
readonly pow: (x: TtfImported_NonZeroFiniteNumber, y: TtfImported_NonZeroFiniteNumber) => TtfImported_NonZeroFiniteNumber;
|
|
101
112
|
/**
|
|
102
|
-
* Multiplies two
|
|
113
|
+
* Multiplies two non-zero finite numbers, returning `a * b` as a
|
|
114
|
+
* `NonZeroFiniteNumber`.
|
|
103
115
|
*
|
|
104
|
-
* @param a The first
|
|
105
|
-
* @param b The second
|
|
106
|
-
* @returns `a
|
|
116
|
+
* @param a - The first non-zero finite number
|
|
117
|
+
* @param b - The second non-zero finite number
|
|
118
|
+
* @returns The product of `a` and `b` as a `NonZeroFiniteNumber`
|
|
107
119
|
*/
|
|
108
120
|
readonly mul: (x: TtfImported_NonZeroFiniteNumber, y: TtfImported_NonZeroFiniteNumber) => TtfImported_NonZeroFiniteNumber;
|
|
109
121
|
/**
|
|
110
|
-
* Divides
|
|
122
|
+
* Divides two non-zero finite numbers, returning `a / b` as a
|
|
123
|
+
* `NonZeroFiniteNumber`.
|
|
111
124
|
*
|
|
112
125
|
* Exact (non-flooring) division of two non-zero finite numbers is always
|
|
113
126
|
* non-zero, so this stays closed. For the non-closed operations (`add`/`sub`,
|
|
114
127
|
* whose result may be `0`) use {@link Num.add}/{@link Num.sub}.
|
|
115
128
|
*
|
|
116
|
-
* @param a The dividend
|
|
117
|
-
* @param b The divisor
|
|
118
|
-
* @returns `a / b` as a NonZeroFiniteNumber
|
|
129
|
+
* @param a - The dividend
|
|
130
|
+
* @param b - The divisor (must be non-zero)
|
|
131
|
+
* @returns `a / b` as a `NonZeroFiniteNumber`
|
|
119
132
|
*/
|
|
120
133
|
readonly div: (x: TtfImported_NonZeroFiniteNumber, y: number & {
|
|
121
134
|
readonly "!=0": true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"non-zero-finite-number.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/non-zero-finite-number.mts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,mBAAmB,IAAI,+BAA+B,EAC5D,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,MAAM,MAAM,mBAAmB,GAAG,+BAA+B,CAAC;AAElE,KAAK,WAAW,GAAG,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"non-zero-finite-number.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/non-zero-finite-number.mts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,mBAAmB,IAAI,+BAA+B,EAC5D,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,MAAM,MAAM,mBAAmB,GAAG,+BAA+B,CAAC;AAElE,KAAK,WAAW,GAAG,mBAAmB,CAAC;AAuDvC;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB,qDAAK,CAAC;AAExC;;;;;;;;;GASG;AACH,eAAO,MAAM,qBAAqB;;;;;;MAAW,CAAC;AAE9C;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB;IAC9B;;;;;;OAMG;;IAGH;;;;;;;OAOG;;IAGH;;;;;OAKG;;IAGH;;;;;OAKG;;IAGH;;;;;;OAMG;wBApGA,WAAW,KACb,oBAAoB,CAAC,kBAAkB,CAAC,KAAK,CAAC,WAAW,CAAC;IAsG3D;;;;;;OAMG;uBAvGA,WAAW,KACb,oBAAoB,CAAC,kBAAkB,CAAC,KAAK,CAAC,WAAW,CAAC;IAyG3D;;;;;;OAMG;wBA1GA,WAAW,KACb,oBAAoB,CAAC,kBAAkB,CAAC,KAAK,CAAC,WAAW,CAAC;IA4G3D;;;;;;;;OAQG;;IAGH;;;;;;OAMG;;IAGH;;;;;;;OAOG;;IAGH;;;;;;;;;;;OAWG;;;;;;;;CAEK,CAAC"}
|
|
@@ -33,89 +33,98 @@ const isNonZeroFiniteNumber = is;
|
|
|
33
33
|
const asNonZeroFiniteNumber = castType;
|
|
34
34
|
const NonZeroFiniteNumber = {
|
|
35
35
|
/**
|
|
36
|
-
* Type guard
|
|
36
|
+
* Type guard that checks if a value is a non-zero finite number.
|
|
37
37
|
*
|
|
38
|
-
* @param value The value to check
|
|
39
|
-
* @returns `true` if the value is a non-zero finite number, `false`
|
|
40
|
-
*
|
|
38
|
+
* @param value - The value to check
|
|
39
|
+
* @returns `true` if the value is a non-zero finite number, `false` otherwise
|
|
40
|
+
* @see {@link isNonZeroFiniteNumber} for usage examples
|
|
41
41
|
*/
|
|
42
42
|
is,
|
|
43
43
|
/**
|
|
44
44
|
* Returns the absolute value of a non-zero finite number.
|
|
45
45
|
*
|
|
46
|
-
*
|
|
47
|
-
*
|
|
46
|
+
* The result is non-negative and keeps the `NonZeroFiniteNumber` brand.
|
|
47
|
+
*
|
|
48
|
+
* @param a - The non-zero finite number value
|
|
49
|
+
* @returns The absolute value as a non-negative `NonZeroFiniteNumber`
|
|
48
50
|
*/
|
|
49
51
|
abs,
|
|
50
52
|
/**
|
|
51
|
-
* Returns the
|
|
53
|
+
* Returns the smallest of the given non-zero finite numbers.
|
|
52
54
|
*
|
|
53
|
-
* @param
|
|
54
|
-
* @
|
|
55
|
-
* @returns The minimum value as a NonZeroFiniteNumber.
|
|
55
|
+
* @param values - The non-zero finite numbers to compare (at least one required)
|
|
56
|
+
* @returns The smallest value as a `NonZeroFiniteNumber`
|
|
56
57
|
*/
|
|
57
58
|
min: min_,
|
|
58
59
|
/**
|
|
59
|
-
* Returns the
|
|
60
|
+
* Returns the largest of the given non-zero finite numbers.
|
|
60
61
|
*
|
|
61
|
-
* @param
|
|
62
|
-
* @
|
|
63
|
-
* @returns The maximum value as a NonZeroFiniteNumber.
|
|
62
|
+
* @param values - The non-zero finite numbers to compare (at least one required)
|
|
63
|
+
* @returns The largest value as a `NonZeroFiniteNumber`
|
|
64
64
|
*/
|
|
65
65
|
max: max_,
|
|
66
66
|
/**
|
|
67
|
-
*
|
|
67
|
+
* Returns the greatest integer less than or equal to a non-zero finite
|
|
68
|
+
* number.
|
|
68
69
|
*
|
|
69
|
-
* @param
|
|
70
|
-
* @returns The
|
|
70
|
+
* @param a - The non-zero finite number value
|
|
71
|
+
* @returns The floored value as an integer
|
|
71
72
|
*/
|
|
72
73
|
floor,
|
|
73
74
|
/**
|
|
74
|
-
*
|
|
75
|
+
* Returns the smallest integer greater than or equal to a non-zero finite
|
|
76
|
+
* number.
|
|
75
77
|
*
|
|
76
|
-
* @param
|
|
77
|
-
* @returns The
|
|
78
|
+
* @param a - The non-zero finite number value
|
|
79
|
+
* @returns The ceiled value as an integer
|
|
78
80
|
*/
|
|
79
81
|
ceil,
|
|
80
82
|
/**
|
|
81
|
-
*
|
|
83
|
+
* Returns the value of a non-zero finite number rounded to the nearest
|
|
84
|
+
* integer.
|
|
82
85
|
*
|
|
83
|
-
* @param
|
|
84
|
-
* @returns The rounded value as
|
|
86
|
+
* @param a - The non-zero finite number value
|
|
87
|
+
* @returns The rounded value as an integer
|
|
85
88
|
*/
|
|
86
89
|
round,
|
|
87
90
|
/**
|
|
88
|
-
* Generates a random NonZeroFiniteNumber
|
|
91
|
+
* Generates a random `NonZeroFiniteNumber` within the given range.
|
|
92
|
+
*
|
|
93
|
+
* The range is inclusive on both ends.
|
|
89
94
|
*
|
|
90
|
-
* @
|
|
95
|
+
* @param min - The minimum value (inclusive)
|
|
96
|
+
* @param max - The maximum value (inclusive)
|
|
97
|
+
* @returns A random `NonZeroFiniteNumber` in `[min, max]`
|
|
91
98
|
*/
|
|
92
99
|
random,
|
|
93
100
|
/**
|
|
94
|
-
* Raises a
|
|
101
|
+
* Raises `a` to the power `b`, returning `a ** b` as a `NonZeroFiniteNumber`.
|
|
95
102
|
*
|
|
96
|
-
* @param a The base
|
|
97
|
-
* @param b The exponent
|
|
98
|
-
* @returns `a ** b` as a NonZeroFiniteNumber
|
|
103
|
+
* @param a - The base non-zero finite number
|
|
104
|
+
* @param b - The exponent non-zero finite number
|
|
105
|
+
* @returns `a ** b` as a `NonZeroFiniteNumber`
|
|
99
106
|
*/
|
|
100
107
|
pow,
|
|
101
108
|
/**
|
|
102
|
-
* Multiplies two
|
|
109
|
+
* Multiplies two non-zero finite numbers, returning `a * b` as a
|
|
110
|
+
* `NonZeroFiniteNumber`.
|
|
103
111
|
*
|
|
104
|
-
* @param a The first
|
|
105
|
-
* @param b The second
|
|
106
|
-
* @returns `a
|
|
112
|
+
* @param a - The first non-zero finite number
|
|
113
|
+
* @param b - The second non-zero finite number
|
|
114
|
+
* @returns The product of `a` and `b` as a `NonZeroFiniteNumber`
|
|
107
115
|
*/
|
|
108
116
|
mul,
|
|
109
117
|
/**
|
|
110
|
-
* Divides
|
|
118
|
+
* Divides two non-zero finite numbers, returning `a / b` as a
|
|
119
|
+
* `NonZeroFiniteNumber`.
|
|
111
120
|
*
|
|
112
121
|
* Exact (non-flooring) division of two non-zero finite numbers is always
|
|
113
122
|
* non-zero, so this stays closed. For the non-closed operations (`add`/`sub`,
|
|
114
123
|
* whose result may be `0`) use {@link Num.add}/{@link Num.sub}.
|
|
115
124
|
*
|
|
116
|
-
* @param a The dividend
|
|
117
|
-
* @param b The divisor
|
|
118
|
-
* @returns `a / b` as a NonZeroFiniteNumber
|
|
125
|
+
* @param a - The dividend
|
|
126
|
+
* @param b - The divisor (must be non-zero)
|
|
127
|
+
* @returns `a / b` as a `NonZeroFiniteNumber`
|
|
119
128
|
*/
|
|
120
129
|
div
|
|
121
130
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"non-zero-finite-number.mjs","sources":["../../../src/number/branded-types/non-zero-finite-number.mts"],"sourcesContent":["import {\n type Int,\n type NonZeroInt,\n type PositiveFiniteNumber,\n type NonZeroFiniteNumber as TtfImported_NonZeroFiniteNumber,\n} from 'ts-type-forge';\nimport { expectType } from '../../expect-type.mjs';\nimport { TsDataForgeInternals } from '../refined-number-utils.mjs';\n\nexport type NonZeroFiniteNumber = TtfImported_NonZeroFiniteNumber;\n\ntype ElementType = NonZeroFiniteNumber;\n\nconst typeNameInMessage = 'a non-zero finite number';\n\nconst {\n abs,\n castType,\n div,\n is,\n max: max_,\n min: min_,\n mul,\n pow,\n randomNonZero: random,\n} = TsDataForgeInternals.RefinedNumberUtils.operatorsForFloat<\n ElementType,\n number,\n number\n>({\n nonZero: true,\n MIN_VALUE: -Number.MAX_VALUE,\n MAX_VALUE: Number.MAX_VALUE,\n typeNameInMessage,\n} as const);\n\
|
|
1
|
+
{"version":3,"file":"non-zero-finite-number.mjs","sources":["../../../src/number/branded-types/non-zero-finite-number.mts"],"sourcesContent":["import {\n type Int,\n type NonZeroInt,\n type PositiveFiniteNumber,\n type NonZeroFiniteNumber as TtfImported_NonZeroFiniteNumber,\n} from 'ts-type-forge';\nimport { expectType } from '../../expect-type.mjs';\nimport { TsDataForgeInternals } from '../refined-number-utils.mjs';\n\nexport type NonZeroFiniteNumber = TtfImported_NonZeroFiniteNumber;\n\ntype ElementType = NonZeroFiniteNumber;\n\nconst typeNameInMessage = 'a non-zero finite number';\n\nconst {\n abs,\n castType,\n div,\n is,\n max: max_,\n min: min_,\n mul,\n pow,\n randomNonZero: random,\n} = TsDataForgeInternals.RefinedNumberUtils.operatorsForFloat<\n ElementType,\n number,\n number\n>({\n nonZero: true,\n MIN_VALUE: -Number.MAX_VALUE,\n MAX_VALUE: Number.MAX_VALUE,\n typeNameInMessage,\n} as const);\n\nconst floor = (\n x: ElementType,\n): TsDataForgeInternals.RefinedNumberUtils.ToInt<ElementType> =>\n // eslint-disable-next-line total-functions/no-unsafe-type-assertion\n Math.floor(x) as TsDataForgeInternals.RefinedNumberUtils.ToInt<ElementType>;\n\nconst ceil = (\n x: ElementType,\n): TsDataForgeInternals.RefinedNumberUtils.ToInt<ElementType> =>\n // eslint-disable-next-line total-functions/no-unsafe-type-assertion\n Math.ceil(x) as TsDataForgeInternals.RefinedNumberUtils.ToInt<ElementType>;\n\nconst round = (\n x: ElementType,\n): TsDataForgeInternals.RefinedNumberUtils.ToInt<ElementType> =>\n // eslint-disable-next-line total-functions/no-unsafe-type-assertion\n Math.round(x) as TsDataForgeInternals.RefinedNumberUtils.ToInt<ElementType>;\n\nexpectType<\n TsDataForgeInternals.RefinedNumberUtils.ToInt<ElementType>,\n NonZeroInt\n>('=');\n\nexpectType<\n TsDataForgeInternals.RefinedNumberUtils.RemoveNonZeroBrandKey<\n TsDataForgeInternals.RefinedNumberUtils.ToInt<ElementType>\n >,\n Int\n>('=');\n\n/**\n * Type guard that checks if a value is a non-zero finite number.\n *\n * Returns `true` only for a finite value — never `NaN`, `Infinity`, or\n * `-Infinity`.\n *\n * @param value - The value to check\n * @returns `true` if the value is a non-zero finite number, `false` otherwise\n */\nexport const isNonZeroFiniteNumber = is;\n\n/**\n * Casts a `number` to the `NonZeroFiniteNumber` branded type.\n *\n * Validates that the value is a non-zero finite number and returns it with the\n * `NonZeroFiniteNumber` brand. Throws a `TypeError` otherwise.\n *\n * @param value - The value to cast\n * @returns The value as a `NonZeroFiniteNumber`\n * @throws {TypeError} If the value is not a non-zero finite number\n */\nexport const asNonZeroFiniteNumber = castType;\n\n/**\n * Namespace providing type-safe operations for the `NonZeroFiniteNumber`\n * branded type.\n *\n * The `NonZeroFiniteNumber` type represents a non-zero finite number.\n */\nexport const NonZeroFiniteNumber = {\n /**\n * Type guard that checks if a value is a non-zero finite number.\n *\n * @param value - The value to check\n * @returns `true` if the value is a non-zero finite number, `false` otherwise\n * @see {@link isNonZeroFiniteNumber} for usage examples\n */\n is,\n\n /**\n * Returns the absolute value of a non-zero finite number.\n *\n * The result is non-negative and keeps the `NonZeroFiniteNumber` brand.\n *\n * @param a - The non-zero finite number value\n * @returns The absolute value as a non-negative `NonZeroFiniteNumber`\n */\n abs,\n\n /**\n * Returns the smallest of the given non-zero finite numbers.\n *\n * @param values - The non-zero finite numbers to compare (at least one required)\n * @returns The smallest value as a `NonZeroFiniteNumber`\n */\n min: min_,\n\n /**\n * Returns the largest of the given non-zero finite numbers.\n *\n * @param values - The non-zero finite numbers to compare (at least one required)\n * @returns The largest value as a `NonZeroFiniteNumber`\n */\n max: max_,\n\n /**\n * Returns the greatest integer less than or equal to a non-zero finite\n * number.\n *\n * @param a - The non-zero finite number value\n * @returns The floored value as an integer\n */\n floor,\n\n /**\n * Returns the smallest integer greater than or equal to a non-zero finite\n * number.\n *\n * @param a - The non-zero finite number value\n * @returns The ceiled value as an integer\n */\n ceil,\n\n /**\n * Returns the value of a non-zero finite number rounded to the nearest\n * integer.\n *\n * @param a - The non-zero finite number value\n * @returns The rounded value as an integer\n */\n round,\n\n /**\n * Generates a random `NonZeroFiniteNumber` within the given range.\n *\n * The range is inclusive on both ends.\n *\n * @param min - The minimum value (inclusive)\n * @param max - The maximum value (inclusive)\n * @returns A random `NonZeroFiniteNumber` in `[min, max]`\n */\n random,\n\n /**\n * Raises `a` to the power `b`, returning `a ** b` as a `NonZeroFiniteNumber`.\n *\n * @param a - The base non-zero finite number\n * @param b - The exponent non-zero finite number\n * @returns `a ** b` as a `NonZeroFiniteNumber`\n */\n pow,\n\n /**\n * Multiplies two non-zero finite numbers, returning `a * b` as a\n * `NonZeroFiniteNumber`.\n *\n * @param a - The first non-zero finite number\n * @param b - The second non-zero finite number\n * @returns The product of `a` and `b` as a `NonZeroFiniteNumber`\n */\n mul,\n\n /**\n * Divides two non-zero finite numbers, returning `a / b` as a\n * `NonZeroFiniteNumber`.\n *\n * Exact (non-flooring) division of two non-zero finite numbers is always\n * non-zero, so this stays closed. For the non-closed operations (`add`/`sub`,\n * whose result may be `0`) use {@link Num.add}/{@link Num.sub}.\n *\n * @param a - The dividend\n * @param b - The divisor (must be non-zero)\n * @returns `a / b` as a `NonZeroFiniteNumber`\n */\n div,\n} as const;\n\nexpectType<\n TsDataForgeInternals.RefinedNumberUtils.ToNonNegative<ElementType>,\n PositiveFiniteNumber\n>('=');\n\nexpectType<\n keyof typeof NonZeroFiniteNumber,\n keyof TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n never,\n 'div' | 'mul'\n >\n>('=');\n\nexpectType<\n typeof NonZeroFiniteNumber,\n TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n never,\n 'div' | 'mul'\n >\n>('<=');\n"],"names":[],"mappings":";;AAaA,MAAM,iBAAA,GAAoB,0BAAA;AAE1B,MAAM;AAAA,EACJ,GAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAA;AAAA,EACA,EAAA;AAAA,EACA,GAAA,EAAK,IAAA;AAAA,EACL,GAAA,EAAK,IAAA;AAAA,EACL,GAAA;AAAA,EACA,GAAA;AAAA,EACA,aAAA,EAAe;AACjB,CAAA,GAAI,oBAAA,CAAqB,mBAAmB,iBAAA,CAI1C;AAAA,EACA,OAAA,EAAS,IAAA;AAAA,EACT,SAAA,EAAW,CAAC,MAAA,CAAO,SAAA;AAAA,EACnB,WAAW,MAAA,CAAO,SAAA;AAAA,EAClB;AACF,CAAU,CAAA;AAEV,MAAM,QAAQ,CACZ,CAAA;AAAA;AAAA,EAGA,IAAA,CAAK,MAAM,CAAC;AAAA,CAAA;AAEd,MAAM,OAAO,CACX,CAAA;AAAA;AAAA,EAGA,IAAA,CAAK,KAAK,CAAC;AAAA,CAAA;AAEb,MAAM,QAAQ,CACZ,CAAA;AAAA;AAAA,EAGA,IAAA,CAAK,MAAM,CAAC;AAAA,CAAA;AAuBP,MAAM,qBAAA,GAAwB;AAY9B,MAAM,qBAAA,GAAwB;AAQ9B,MAAM,mBAAA,GAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQjC,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,GAAA,EAAK,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQL,GAAA,EAAK,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASL,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,MAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAcA;AACF;;;;"}
|
|
@@ -1,18 +1,24 @@
|
|
|
1
1
|
import { type NonZeroInt as TtfImported_NonZeroInt } from 'ts-type-forge';
|
|
2
2
|
export type NonZeroInt = TtfImported_NonZeroInt;
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* Type guard that checks if a value is a non-zero integer.
|
|
5
5
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
6
|
+
* Returns `true` for a non-zero integer — a value with no fractional component,
|
|
7
|
+
* including values outside the safe integer range (unlike `SafeInt`).
|
|
8
|
+
*
|
|
9
|
+
* @param value - The value to check
|
|
10
|
+
* @returns `true` if the value is a non-zero integer, `false` otherwise
|
|
8
11
|
*/
|
|
9
12
|
export declare const isNonZeroInt: (a: number) => a is TtfImported_NonZeroInt;
|
|
10
13
|
/**
|
|
11
|
-
* Casts a number to
|
|
14
|
+
* Casts a `number` to the `NonZeroInt` branded type.
|
|
15
|
+
*
|
|
16
|
+
* Validates that the value is a non-zero integer and returns it with the
|
|
17
|
+
* `NonZeroInt` brand. Throws a `TypeError` otherwise.
|
|
12
18
|
*
|
|
13
|
-
* @param value The value to cast
|
|
14
|
-
* @returns The value as a NonZeroInt
|
|
15
|
-
* @throws {TypeError} If the value is not a non-zero integer
|
|
19
|
+
* @param value - The value to cast
|
|
20
|
+
* @returns The value as a `NonZeroInt`
|
|
21
|
+
* @throws {TypeError} If the value is not a non-zero integer
|
|
16
22
|
*/
|
|
17
23
|
export declare const asNonZeroInt: <N extends number>(x: N) => number & {
|
|
18
24
|
readonly "!=0": true;
|
|
@@ -23,67 +29,74 @@ export declare const asNonZeroInt: <N extends number>(x: N) => number & {
|
|
|
23
29
|
'TSTypeForgeInternals--edd2f9ce-7ca5-45b0-9d1a-bd61b9b5d9c3': unknown;
|
|
24
30
|
}> & N;
|
|
25
31
|
/**
|
|
26
|
-
* Namespace providing type-safe
|
|
32
|
+
* Namespace providing type-safe operations for the `NonZeroInt` branded type.
|
|
33
|
+
*
|
|
34
|
+
* The `NonZeroInt` type represents a non-zero integer. Division (`div`) uses
|
|
35
|
+
* floor division.
|
|
27
36
|
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
37
|
+
* Unlike `SafeInt`, `NonZeroInt` allows values outside the safe integer range
|
|
38
|
+
* (±2^53 − 1), so very large magnitudes may lose precision in JavaScript's
|
|
39
|
+
* `number` type.
|
|
31
40
|
*/
|
|
32
41
|
export declare const NonZeroInt: {
|
|
33
42
|
/**
|
|
34
|
-
* Type guard
|
|
43
|
+
* Type guard that checks if a value is a non-zero integer.
|
|
35
44
|
*
|
|
36
|
-
* @param value The value to check
|
|
37
|
-
* @returns `true` if the value is a non-zero integer, `false` otherwise
|
|
45
|
+
* @param value - The value to check
|
|
46
|
+
* @returns `true` if the value is a non-zero integer, `false` otherwise
|
|
47
|
+
* @see {@link isNonZeroInt} for usage examples
|
|
38
48
|
*/
|
|
39
49
|
readonly is: (a: number) => a is TtfImported_NonZeroInt;
|
|
40
50
|
/**
|
|
41
51
|
* Returns the absolute value of a non-zero integer.
|
|
42
52
|
*
|
|
43
|
-
*
|
|
44
|
-
*
|
|
53
|
+
* The result is non-negative and keeps the `NonZeroInt` brand. Note that
|
|
54
|
+
* `Math.abs(Number.MIN_SAFE_INTEGER)` exceeds `Number.MAX_SAFE_INTEGER`, so
|
|
55
|
+
* use `SafeInt` for guaranteed precision.
|
|
56
|
+
*
|
|
57
|
+
* @param a - The non-zero integer value
|
|
58
|
+
* @returns The absolute value as a non-negative `NonZeroInt`
|
|
45
59
|
*/
|
|
46
60
|
readonly abs: (x: import("ts-type-forge").WithSmallInt<TtfImported_NonZeroInt>) => import("ts-type-forge").IntersectBrand<TtfImported_NonZeroInt, import("ts-type-forge").PositiveNumber>;
|
|
47
61
|
/**
|
|
48
|
-
* Returns the
|
|
62
|
+
* Returns the smallest of the given non-zero integers.
|
|
49
63
|
*
|
|
50
|
-
* @param
|
|
51
|
-
* @
|
|
52
|
-
* @returns The minimum value as a NonZeroInt.
|
|
64
|
+
* @param values - The non-zero integers to compare (at least one required)
|
|
65
|
+
* @returns The smallest value as a `NonZeroInt`
|
|
53
66
|
*/
|
|
54
67
|
readonly min: (...values: readonly import("ts-type-forge").WithSmallInt<TtfImported_NonZeroInt>[]) => TtfImported_NonZeroInt;
|
|
55
68
|
/**
|
|
56
|
-
* Returns the
|
|
69
|
+
* Returns the largest of the given non-zero integers.
|
|
57
70
|
*
|
|
58
|
-
* @param
|
|
59
|
-
* @
|
|
60
|
-
* @returns The maximum value as a NonZeroInt.
|
|
71
|
+
* @param values - The non-zero integers to compare (at least one required)
|
|
72
|
+
* @returns The largest value as a `NonZeroInt`
|
|
61
73
|
*/
|
|
62
74
|
readonly max: (...values: readonly import("ts-type-forge").WithSmallInt<TtfImported_NonZeroInt>[]) => TtfImported_NonZeroInt;
|
|
63
75
|
/**
|
|
64
|
-
* Generates a random
|
|
76
|
+
* Generates a random `NonZeroInt` within the given range.
|
|
77
|
+
*
|
|
78
|
+
* The range is inclusive on both ends.
|
|
65
79
|
*
|
|
66
|
-
* @
|
|
80
|
+
* @param min - The minimum value (inclusive)
|
|
81
|
+
* @param max - The maximum value (inclusive)
|
|
82
|
+
* @returns A random `NonZeroInt` in `[min, max]`
|
|
67
83
|
*/
|
|
68
84
|
readonly random: (min?: import("ts-type-forge").WithSmallInt<TtfImported_NonZeroInt> | undefined, max?: import("ts-type-forge").WithSmallInt<TtfImported_NonZeroInt> | undefined) => TtfImported_NonZeroInt;
|
|
69
85
|
/**
|
|
70
|
-
* Raises a
|
|
86
|
+
* Raises `a` to the power `b`, returning `a ** b` as a `NonZeroInt` (floored
|
|
87
|
+
* to an integer).
|
|
71
88
|
*
|
|
72
|
-
* @param a The base non-zero integer
|
|
73
|
-
* @param b The exponent non-zero integer
|
|
74
|
-
* @returns `a ** b` as a NonZeroInt
|
|
89
|
+
* @param a - The base non-zero integer
|
|
90
|
+
* @param b - The exponent non-zero integer
|
|
91
|
+
* @returns `a ** b` as a `NonZeroInt`
|
|
75
92
|
*/
|
|
76
93
|
readonly pow: (x: import("ts-type-forge").WithSmallInt<TtfImported_NonZeroInt>, y: import("ts-type-forge").WithSmallInt<TtfImported_NonZeroInt>) => TtfImported_NonZeroInt;
|
|
77
94
|
/**
|
|
78
|
-
* Multiplies two non-zero integers
|
|
79
|
-
*
|
|
80
|
-
* The product of two non-zero integers is always non-zero, so this stays
|
|
81
|
-
* closed; for the non-closed operations (`add`/`sub`/`div`, whose result may
|
|
82
|
-
* be `0`) use {@link Num.add}/{@link Num.sub}/{@link Num.divInt}.
|
|
95
|
+
* Multiplies two non-zero integers, returning `a * b` as a `NonZeroInt`.
|
|
83
96
|
*
|
|
84
|
-
* @param a The first non-zero integer
|
|
85
|
-
* @param b The second non-zero integer
|
|
86
|
-
* @returns `a
|
|
97
|
+
* @param a - The first non-zero integer
|
|
98
|
+
* @param b - The second non-zero integer
|
|
99
|
+
* @returns The product of `a` and `b` as a `NonZeroInt`
|
|
87
100
|
*/
|
|
88
101
|
readonly mul: (x: import("ts-type-forge").WithSmallInt<TtfImported_NonZeroInt>, y: import("ts-type-forge").WithSmallInt<TtfImported_NonZeroInt>) => TtfImported_NonZeroInt;
|
|
89
102
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"non-zero-int.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/non-zero-int.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,IAAI,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAI1E,MAAM,MAAM,UAAU,GAAG,sBAAsB,CAAC;AA2BhD
|
|
1
|
+
{"version":3,"file":"non-zero-int.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/non-zero-int.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,IAAI,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAI1E,MAAM,MAAM,UAAU,GAAG,sBAAsB,CAAC;AA2BhD;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,4CAAK,CAAC;AAE/B;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY;;;;;;;MAAW,CAAC;AAErC;;;;;;;;;GASG;AACH,eAAO,MAAM,UAAU;IACrB;;;;;;OAMG;;IAGH;;;;;;;;;OASG;;IAGH;;;;;OAKG;;IAGH;;;;;OAKG;;IAGH;;;;;;;;OAQG;;IAGH;;;;;;;OAOG;;IAGH;;;;;;OAMG;;CAEK,CAAC"}
|
|
@@ -21,59 +21,63 @@ const isNonZeroInt = is;
|
|
|
21
21
|
const asNonZeroInt = castType;
|
|
22
22
|
const NonZeroInt = {
|
|
23
23
|
/**
|
|
24
|
-
* Type guard
|
|
24
|
+
* Type guard that checks if a value is a non-zero integer.
|
|
25
25
|
*
|
|
26
|
-
* @param value The value to check
|
|
27
|
-
* @returns `true` if the value is a non-zero integer, `false` otherwise
|
|
26
|
+
* @param value - The value to check
|
|
27
|
+
* @returns `true` if the value is a non-zero integer, `false` otherwise
|
|
28
|
+
* @see {@link isNonZeroInt} for usage examples
|
|
28
29
|
*/
|
|
29
30
|
is,
|
|
30
31
|
/**
|
|
31
32
|
* Returns the absolute value of a non-zero integer.
|
|
32
33
|
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
34
|
+
* The result is non-negative and keeps the `NonZeroInt` brand. Note that
|
|
35
|
+
* `Math.abs(Number.MIN_SAFE_INTEGER)` exceeds `Number.MAX_SAFE_INTEGER`, so
|
|
36
|
+
* use `SafeInt` for guaranteed precision.
|
|
37
|
+
*
|
|
38
|
+
* @param a - The non-zero integer value
|
|
39
|
+
* @returns The absolute value as a non-negative `NonZeroInt`
|
|
35
40
|
*/
|
|
36
41
|
abs,
|
|
37
42
|
/**
|
|
38
|
-
* Returns the
|
|
43
|
+
* Returns the smallest of the given non-zero integers.
|
|
39
44
|
*
|
|
40
|
-
* @param
|
|
41
|
-
* @
|
|
42
|
-
* @returns The minimum value as a NonZeroInt.
|
|
45
|
+
* @param values - The non-zero integers to compare (at least one required)
|
|
46
|
+
* @returns The smallest value as a `NonZeroInt`
|
|
43
47
|
*/
|
|
44
48
|
min: min_,
|
|
45
49
|
/**
|
|
46
|
-
* Returns the
|
|
50
|
+
* Returns the largest of the given non-zero integers.
|
|
47
51
|
*
|
|
48
|
-
* @param
|
|
49
|
-
* @
|
|
50
|
-
* @returns The maximum value as a NonZeroInt.
|
|
52
|
+
* @param values - The non-zero integers to compare (at least one required)
|
|
53
|
+
* @returns The largest value as a `NonZeroInt`
|
|
51
54
|
*/
|
|
52
55
|
max: max_,
|
|
53
56
|
/**
|
|
54
|
-
* Generates a random
|
|
57
|
+
* Generates a random `NonZeroInt` within the given range.
|
|
58
|
+
*
|
|
59
|
+
* The range is inclusive on both ends.
|
|
55
60
|
*
|
|
56
|
-
* @
|
|
61
|
+
* @param min - The minimum value (inclusive)
|
|
62
|
+
* @param max - The maximum value (inclusive)
|
|
63
|
+
* @returns A random `NonZeroInt` in `[min, max]`
|
|
57
64
|
*/
|
|
58
65
|
random,
|
|
59
66
|
/**
|
|
60
|
-
* Raises a
|
|
67
|
+
* Raises `a` to the power `b`, returning `a ** b` as a `NonZeroInt` (floored
|
|
68
|
+
* to an integer).
|
|
61
69
|
*
|
|
62
|
-
* @param a The base non-zero integer
|
|
63
|
-
* @param b The exponent non-zero integer
|
|
64
|
-
* @returns `a ** b` as a NonZeroInt
|
|
70
|
+
* @param a - The base non-zero integer
|
|
71
|
+
* @param b - The exponent non-zero integer
|
|
72
|
+
* @returns `a ** b` as a `NonZeroInt`
|
|
65
73
|
*/
|
|
66
74
|
pow,
|
|
67
75
|
/**
|
|
68
|
-
* Multiplies two non-zero integers
|
|
69
|
-
*
|
|
70
|
-
* The product of two non-zero integers is always non-zero, so this stays
|
|
71
|
-
* closed; for the non-closed operations (`add`/`sub`/`div`, whose result may
|
|
72
|
-
* be `0`) use {@link Num.add}/{@link Num.sub}/{@link Num.divInt}.
|
|
76
|
+
* Multiplies two non-zero integers, returning `a * b` as a `NonZeroInt`.
|
|
73
77
|
*
|
|
74
|
-
* @param a The first non-zero integer
|
|
75
|
-
* @param b The second non-zero integer
|
|
76
|
-
* @returns `a
|
|
78
|
+
* @param a - The first non-zero integer
|
|
79
|
+
* @param b - The second non-zero integer
|
|
80
|
+
* @returns The product of `a` and `b` as a `NonZeroInt`
|
|
77
81
|
*/
|
|
78
82
|
mul
|
|
79
83
|
};
|