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
|
@@ -24,81 +24,77 @@ const isNonZeroInt32 = is;
|
|
|
24
24
|
const asNonZeroInt32 = castType;
|
|
25
25
|
const NonZeroInt32 = {
|
|
26
26
|
/**
|
|
27
|
-
* Type guard
|
|
27
|
+
* Type guard that checks if a value is a non-zero integer in [-2^31, 2^31).
|
|
28
28
|
*
|
|
29
|
-
* @param value The value to check
|
|
30
|
-
* @returns `true` if the value is a
|
|
31
|
-
*
|
|
29
|
+
* @param value - The value to check
|
|
30
|
+
* @returns `true` if the value is a non-zero integer in [-2^31, 2^31), `false` otherwise
|
|
31
|
+
* @see {@link isNonZeroInt32} for usage examples
|
|
32
32
|
*/
|
|
33
33
|
is,
|
|
34
34
|
/**
|
|
35
|
-
* The
|
|
36
|
-
*
|
|
37
|
-
* @readonly
|
|
35
|
+
* The smallest value representable as `NonZeroInt32`.
|
|
38
36
|
*/
|
|
39
37
|
MIN_VALUE,
|
|
40
38
|
/**
|
|
41
|
-
* The
|
|
42
|
-
*
|
|
43
|
-
* @readonly
|
|
39
|
+
* The largest value representable as `NonZeroInt32`.
|
|
44
40
|
*/
|
|
45
41
|
MAX_VALUE,
|
|
46
42
|
/**
|
|
47
|
-
* Returns the absolute value of a
|
|
43
|
+
* Returns the absolute value of a non-zero integer in [-2^31, 2^31).
|
|
44
|
+
*
|
|
45
|
+
* The result is non-negative and keeps the `NonZeroInt32` brand.
|
|
48
46
|
*
|
|
49
|
-
* @param a The
|
|
50
|
-
* @returns The absolute value as a NonZeroInt32
|
|
47
|
+
* @param a - The non-zero integer value
|
|
48
|
+
* @returns The absolute value as a non-negative `NonZeroInt32`
|
|
51
49
|
*/
|
|
52
50
|
abs,
|
|
53
51
|
/**
|
|
54
|
-
* Returns the
|
|
52
|
+
* Returns the smallest of the given non-zero integers.
|
|
55
53
|
*
|
|
56
|
-
* @param
|
|
57
|
-
* @
|
|
58
|
-
* @returns The minimum value as a NonZeroInt32.
|
|
54
|
+
* @param values - The non-zero integers to compare (at least one required)
|
|
55
|
+
* @returns The smallest value as a `NonZeroInt32`
|
|
59
56
|
*/
|
|
60
57
|
min: min_,
|
|
61
58
|
/**
|
|
62
|
-
* Returns the
|
|
59
|
+
* Returns the largest of the given non-zero integers.
|
|
63
60
|
*
|
|
64
|
-
* @param
|
|
65
|
-
* @
|
|
66
|
-
* @returns The maximum value as a NonZeroInt32.
|
|
61
|
+
* @param values - The non-zero integers to compare (at least one required)
|
|
62
|
+
* @returns The largest value as a `NonZeroInt32`
|
|
67
63
|
*/
|
|
68
64
|
max: max_,
|
|
69
65
|
/**
|
|
70
|
-
* Clamps a number
|
|
66
|
+
* Clamps a `number` into the `NonZeroInt32` range, rounding to the nearest
|
|
67
|
+
* integer and constraining the result to `[MIN_VALUE, MAX_VALUE]`.
|
|
71
68
|
*
|
|
72
|
-
* @param value The
|
|
73
|
-
* @returns The
|
|
74
|
-
* NonZeroInt32.
|
|
69
|
+
* @param value - The value to clamp
|
|
70
|
+
* @returns The clamped value as a `NonZeroInt32`
|
|
75
71
|
*/
|
|
76
72
|
clamp,
|
|
77
73
|
/**
|
|
78
|
-
* Generates a random NonZeroInt32
|
|
74
|
+
* Generates a random `NonZeroInt32` within the given range.
|
|
79
75
|
*
|
|
80
|
-
*
|
|
81
|
-
*
|
|
76
|
+
* The range is inclusive on both ends.
|
|
77
|
+
*
|
|
78
|
+
* @param min - The minimum value (inclusive)
|
|
79
|
+
* @param max - The maximum value (inclusive)
|
|
80
|
+
* @returns A random `NonZeroInt32` in `[min, max]`
|
|
82
81
|
*/
|
|
83
82
|
random,
|
|
84
83
|
/**
|
|
85
|
-
* Raises a
|
|
84
|
+
* Raises `a` to the power `b`, returning `a ** b` as a `NonZeroInt32`
|
|
85
|
+
* (floored to an integer).
|
|
86
86
|
*
|
|
87
|
-
* @param a The base
|
|
88
|
-
* @param b The exponent
|
|
89
|
-
* @returns `a ** b`
|
|
87
|
+
* @param a - The base non-zero integer
|
|
88
|
+
* @param b - The exponent non-zero integer
|
|
89
|
+
* @returns `a ** b` as a `NonZeroInt32`
|
|
90
90
|
*/
|
|
91
91
|
pow,
|
|
92
92
|
/**
|
|
93
|
-
* Multiplies two NonZeroInt32
|
|
94
|
-
*
|
|
95
|
-
* The product of two non-zero integers is always non-zero, so this stays
|
|
96
|
-
* closed; for the non-closed operations (`add`/`sub`/`div`, whose result may
|
|
97
|
-
* be `0`) use {@link Num.add}/{@link Num.sub}/{@link Num.divInt}.
|
|
93
|
+
* Multiplies two non-zero integers, returning `a * b` as a `NonZeroInt32`.
|
|
98
94
|
*
|
|
99
|
-
* @param a The first
|
|
100
|
-
* @param b The second
|
|
101
|
-
* @returns `a
|
|
95
|
+
* @param a - The first non-zero integer
|
|
96
|
+
* @param b - The second non-zero integer
|
|
97
|
+
* @returns The product of `a` and `b` as a `NonZeroInt32`
|
|
102
98
|
*/
|
|
103
99
|
mul
|
|
104
100
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"non-zero-int32.mjs","sources":["../../../src/number/branded-types/non-zero-int32.mts"],"sourcesContent":["import { type NonZeroInt32 as TtfImported_NonZeroInt32 } from 'ts-type-forge';\nimport { expectType } from '../../expect-type.mjs';\nimport { TsDataForgeInternals } from '../refined-number-utils.mjs';\n\nexport type NonZeroInt32 = TtfImported_NonZeroInt32;\n\ntype ElementType = NonZeroInt32;\n\nconst typeNameInMessage = 'a non-zero integer in [-2^31, 2^31)';\n\nconst {\n MAX_VALUE,\n MIN_VALUE,\n abs,\n castType,\n clamp,\n is,\n max: max_,\n min: min_,\n mul,\n pow,\n randomNonZero: random,\n} = TsDataForgeInternals.RefinedNumberUtils.operatorsForInteger<\n ElementType,\n number,\n number\n>({\n integerOrSafeInteger: 'SafeInteger',\n nonZero: true,\n MIN_VALUE: -(2 ** 31),\n MAX_VALUE: 2 ** 31 - 1,\n typeNameInMessage,\n} as const);\n\n/**\n *
|
|
1
|
+
{"version":3,"file":"non-zero-int32.mjs","sources":["../../../src/number/branded-types/non-zero-int32.mts"],"sourcesContent":["import { type NonZeroInt32 as TtfImported_NonZeroInt32 } from 'ts-type-forge';\nimport { expectType } from '../../expect-type.mjs';\nimport { TsDataForgeInternals } from '../refined-number-utils.mjs';\n\nexport type NonZeroInt32 = TtfImported_NonZeroInt32;\n\ntype ElementType = NonZeroInt32;\n\nconst typeNameInMessage = 'a non-zero integer in [-2^31, 2^31)';\n\nconst {\n MAX_VALUE,\n MIN_VALUE,\n abs,\n castType,\n clamp,\n is,\n max: max_,\n min: min_,\n mul,\n pow,\n randomNonZero: random,\n} = TsDataForgeInternals.RefinedNumberUtils.operatorsForInteger<\n ElementType,\n number,\n number\n>({\n integerOrSafeInteger: 'SafeInteger',\n nonZero: true,\n MIN_VALUE: -(2 ** 31),\n MAX_VALUE: 2 ** 31 - 1,\n typeNameInMessage,\n} as const);\n\n/**\n * Type guard that checks if a value is a non-zero integer in [-2^31, 2^31).\n *\n * Returns `true` for a non-zero integer in [-2^31, 2^31) — a value with no\n * fractional component.\n *\n * @param value - The value to check\n * @returns `true` if the value is a non-zero integer in [-2^31, 2^31), `false` otherwise\n */\nexport const isNonZeroInt32 = is;\n\n/**\n * Casts a `number` to the `NonZeroInt32` branded type.\n *\n * Validates that the value is a non-zero integer in [-2^31, 2^31) and returns\n * it with the `NonZeroInt32` brand. Throws a `TypeError` otherwise.\n *\n * @param value - The value to cast\n * @returns The value as a `NonZeroInt32`\n * @throws {TypeError} If the value is not a non-zero integer in [-2^31, 2^31)\n */\nexport const asNonZeroInt32 = castType;\n\n/**\n * Namespace providing type-safe operations for the `NonZeroInt32` branded type.\n *\n * The `NonZeroInt32` type represents a non-zero integer in [-2^31, 2^31).\n * Division (`div`) uses floor division.\n */\nexport const NonZeroInt32 = {\n /**\n * Type guard that checks if a value is a non-zero integer in [-2^31, 2^31).\n *\n * @param value - The value to check\n * @returns `true` if the value is a non-zero integer in [-2^31, 2^31), `false` otherwise\n * @see {@link isNonZeroInt32} for usage examples\n */\n is,\n\n /**\n * The smallest value representable as `NonZeroInt32`.\n */\n MIN_VALUE,\n\n /**\n * The largest value representable as `NonZeroInt32`.\n */\n MAX_VALUE,\n\n /**\n * Returns the absolute value of a non-zero integer in [-2^31, 2^31).\n *\n * The result is non-negative and keeps the `NonZeroInt32` brand.\n *\n * @param a - The non-zero integer value\n * @returns The absolute value as a non-negative `NonZeroInt32`\n */\n abs,\n\n /**\n * Returns the smallest of the given non-zero integers.\n *\n * @param values - The non-zero integers to compare (at least one required)\n * @returns The smallest value as a `NonZeroInt32`\n */\n min: min_,\n\n /**\n * Returns the largest of the given non-zero integers.\n *\n * @param values - The non-zero integers to compare (at least one required)\n * @returns The largest value as a `NonZeroInt32`\n */\n max: max_,\n\n /**\n * Clamps a `number` into the `NonZeroInt32` range, rounding to the nearest\n * integer and constraining the result to `[MIN_VALUE, MAX_VALUE]`.\n *\n * @param value - The value to clamp\n * @returns The clamped value as a `NonZeroInt32`\n */\n clamp,\n\n /**\n * Generates a random `NonZeroInt32` 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 `NonZeroInt32` in `[min, max]`\n */\n random,\n\n /**\n * Raises `a` to the power `b`, returning `a ** b` as a `NonZeroInt32`\n * (floored to an integer).\n *\n * @param a - The base non-zero integer\n * @param b - The exponent non-zero integer\n * @returns `a ** b` as a `NonZeroInt32`\n */\n pow,\n\n /**\n * Multiplies two non-zero integers, returning `a * b` as a `NonZeroInt32`.\n *\n * @param a - The first non-zero integer\n * @param b - The second non-zero integer\n * @returns The product of `a` and `b` as a `NonZeroInt32`\n */\n mul,\n} as const;\n\nexpectType<\n keyof typeof NonZeroInt32,\n keyof TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'range',\n 'mul'\n >\n>('=');\n\nexpectType<\n typeof NonZeroInt32,\n TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'range',\n 'mul'\n >\n>('<=');\n"],"names":[],"mappings":";;AAQA,MAAM,iBAAA,GAAoB,qCAAA;AAE1B,MAAM;AAAA,EACJ,SAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAA;AAAA,EACA,QAAA;AAAA,EACA,KAAA;AAAA,EACA,EAAA;AAAA,EACA,GAAA,EAAK,IAAA;AAAA,EACL,GAAA,EAAK,IAAA;AAAA,EACL,GAAA;AAAA,EACA,GAAA;AAAA,EACA,aAAA,EAAe;AACjB,CAAA,GAAI,oBAAA,CAAqB,mBAAmB,mBAAA,CAI1C;AAAA,EACA,oBAAA,EAAsB,aAAA;AAAA,EACtB,OAAA,EAAS,IAAA;AAAA,EACT,SAAA,EAAW,WAAO;AAAA,EAClB,SAAA,EAAW,KAAK,EAAA,GAAK,CAAA;AAAA,EACrB;AACF,CAAU,CAAA;AAWH,MAAM,cAAA,GAAiB;AAYvB,MAAM,cAAA,GAAiB;AAQvB,MAAM,YAAA,GAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ1B,EAAA;AAAA;AAAA;AAAA;AAAA,EAKA,SAAA;AAAA;AAAA;AAAA;AAAA,EAKA,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,GAAA,EAAK,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQL,GAAA,EAAK,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASL,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,MAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA;AACF;;;;"}
|
|
@@ -1,19 +1,24 @@
|
|
|
1
1
|
import { type SafeInt, type SafeUint, type NonZeroSafeInt as TtfImported_NonZeroSafeInt } from 'ts-type-forge';
|
|
2
2
|
export type NonZeroSafeInt = TtfImported_NonZeroSafeInt;
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
5
|
-
* [MIN_SAFE_INTEGER, MAX_SAFE_INTEGER] excluding 0).
|
|
4
|
+
* Type guard that checks if a value is a non-zero safe integer.
|
|
6
5
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
6
|
+
* Returns `true` for a non-zero safe integer — a value with no fractional
|
|
7
|
+
* component.
|
|
8
|
+
*
|
|
9
|
+
* @param value - The value to check
|
|
10
|
+
* @returns `true` if the value is a non-zero safe integer, `false` otherwise
|
|
9
11
|
*/
|
|
10
12
|
export declare const isNonZeroSafeInt: (a: number) => a is TtfImported_NonZeroSafeInt;
|
|
11
13
|
/**
|
|
12
|
-
* Casts a number to
|
|
14
|
+
* Casts a `number` to the `NonZeroSafeInt` branded type.
|
|
15
|
+
*
|
|
16
|
+
* Validates that the value is a non-zero safe integer and returns it with the
|
|
17
|
+
* `NonZeroSafeInt` brand. Throws a `TypeError` otherwise.
|
|
13
18
|
*
|
|
14
|
-
* @param value The value to cast
|
|
15
|
-
* @returns The value as a NonZeroSafeInt
|
|
16
|
-
* @throws {TypeError} If the value is not a non-zero safe integer
|
|
19
|
+
* @param value - The value to cast
|
|
20
|
+
* @returns The value as a `NonZeroSafeInt`
|
|
21
|
+
* @throws {TypeError} If the value is not a non-zero safe integer
|
|
17
22
|
*/
|
|
18
23
|
export declare const asNonZeroSafeInt: <N extends number>(x: N) => number & {
|
|
19
24
|
readonly "!=0": true;
|
|
@@ -25,92 +30,86 @@ export declare const asNonZeroSafeInt: <N extends number>(x: N) => number & {
|
|
|
25
30
|
'TSTypeForgeInternals--edd2f9ce-7ca5-45b0-9d1a-bd61b9b5d9c3': unknown;
|
|
26
31
|
}> & N;
|
|
27
32
|
/**
|
|
28
|
-
* Namespace providing type-safe
|
|
29
|
-
*
|
|
33
|
+
* Namespace providing type-safe operations for the `NonZeroSafeInt` branded
|
|
34
|
+
* type.
|
|
30
35
|
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
* non-zero constraint and IEEE 754 precision guarantees, preventing precision
|
|
34
|
-
* loss while ensuring results are never zero.
|
|
36
|
+
* The `NonZeroSafeInt` type represents a non-zero safe integer. Division
|
|
37
|
+
* (`div`) uses floor division.
|
|
35
38
|
*/
|
|
36
39
|
export declare const NonZeroSafeInt: {
|
|
37
40
|
/**
|
|
38
|
-
* Type guard
|
|
41
|
+
* Type guard that checks if a value is a non-zero safe integer.
|
|
39
42
|
*
|
|
40
|
-
* @param value The value to check
|
|
41
|
-
* @returns `true` if the value is a non-zero safe integer, `false` otherwise
|
|
43
|
+
* @param value - The value to check
|
|
44
|
+
* @returns `true` if the value is a non-zero safe integer, `false` otherwise
|
|
45
|
+
* @see {@link isNonZeroSafeInt} for usage examples
|
|
42
46
|
*/
|
|
43
47
|
readonly is: (a: number) => a is TtfImported_NonZeroSafeInt;
|
|
44
48
|
/**
|
|
45
|
-
* The
|
|
46
|
-
*
|
|
47
|
-
* @readonly
|
|
49
|
+
* The smallest value representable as `NonZeroSafeInt`.
|
|
48
50
|
*/
|
|
49
51
|
readonly MIN_VALUE: SafeInt;
|
|
50
52
|
/**
|
|
51
|
-
* The
|
|
52
|
-
*
|
|
53
|
-
* @readonly
|
|
53
|
+
* The largest value representable as `NonZeroSafeInt`.
|
|
54
54
|
*/
|
|
55
55
|
readonly MAX_VALUE: SafeUint;
|
|
56
56
|
/**
|
|
57
57
|
* Returns the absolute value of a non-zero safe integer.
|
|
58
58
|
*
|
|
59
|
-
*
|
|
60
|
-
*
|
|
59
|
+
* The result is non-negative and keeps the `NonZeroSafeInt` brand.
|
|
60
|
+
*
|
|
61
|
+
* @param a - The non-zero safe integer value
|
|
62
|
+
* @returns The absolute value as a non-negative `NonZeroSafeInt`
|
|
61
63
|
*/
|
|
62
64
|
readonly abs: (x: import("ts-type-forge").WithSmallInt<TtfImported_NonZeroSafeInt>) => import("ts-type-forge").IntersectBrand<TtfImported_NonZeroSafeInt, import("ts-type-forge").PositiveNumber>;
|
|
63
65
|
/**
|
|
64
|
-
* Returns the
|
|
66
|
+
* Returns the smallest of the given non-zero safe integers.
|
|
65
67
|
*
|
|
66
|
-
* @param
|
|
67
|
-
* @
|
|
68
|
-
* @returns The minimum value as a NonZeroSafeInt.
|
|
68
|
+
* @param values - The non-zero safe integers to compare (at least one required)
|
|
69
|
+
* @returns The smallest value as a `NonZeroSafeInt`
|
|
69
70
|
*/
|
|
70
71
|
readonly min: (...values: readonly import("ts-type-forge").WithSmallInt<TtfImported_NonZeroSafeInt>[]) => TtfImported_NonZeroSafeInt;
|
|
71
72
|
/**
|
|
72
|
-
* Returns the
|
|
73
|
+
* Returns the largest of the given non-zero safe integers.
|
|
73
74
|
*
|
|
74
|
-
* @param
|
|
75
|
-
* @
|
|
76
|
-
* @returns The maximum value as a NonZeroSafeInt.
|
|
75
|
+
* @param values - The non-zero safe integers to compare (at least one required)
|
|
76
|
+
* @returns The largest value as a `NonZeroSafeInt`
|
|
77
77
|
*/
|
|
78
78
|
readonly max: (...values: readonly import("ts-type-forge").WithSmallInt<TtfImported_NonZeroSafeInt>[]) => TtfImported_NonZeroSafeInt;
|
|
79
79
|
/**
|
|
80
|
-
* Clamps a number
|
|
80
|
+
* Clamps a `number` into the `NonZeroSafeInt` range, rounding to the nearest
|
|
81
|
+
* integer and constraining the result to `[MIN_VALUE, MAX_VALUE]`.
|
|
81
82
|
*
|
|
82
|
-
* @param value The
|
|
83
|
-
* @returns The
|
|
84
|
-
* a NonZeroSafeInt.
|
|
83
|
+
* @param value - The value to clamp
|
|
84
|
+
* @returns The clamped value as a `NonZeroSafeInt`
|
|
85
85
|
*/
|
|
86
86
|
readonly clamp: (x: number) => TtfImported_NonZeroSafeInt;
|
|
87
87
|
/**
|
|
88
|
-
* Generates a random NonZeroSafeInt
|
|
88
|
+
* Generates a random `NonZeroSafeInt` within the given range.
|
|
89
|
+
*
|
|
90
|
+
* The range is inclusive on both ends.
|
|
89
91
|
*
|
|
90
|
-
* @
|
|
91
|
-
*
|
|
92
|
+
* @param min - The minimum value (inclusive)
|
|
93
|
+
* @param max - The maximum value (inclusive)
|
|
94
|
+
* @returns A random `NonZeroSafeInt` in `[min, max]`
|
|
92
95
|
*/
|
|
93
96
|
readonly random: (min?: import("ts-type-forge").WithSmallInt<TtfImported_NonZeroSafeInt> | undefined, max?: import("ts-type-forge").WithSmallInt<TtfImported_NonZeroSafeInt> | undefined) => TtfImported_NonZeroSafeInt;
|
|
94
97
|
/**
|
|
95
|
-
* Raises a
|
|
98
|
+
* Raises `a` to the power `b`, returning `a ** b` as a `NonZeroSafeInt`
|
|
99
|
+
* (floored to an integer).
|
|
96
100
|
*
|
|
97
|
-
* @param a The base
|
|
98
|
-
* @param b The exponent
|
|
99
|
-
* @returns `a ** b`
|
|
100
|
-
* NonZeroSafeInt.
|
|
101
|
+
* @param a - The base non-zero safe integer
|
|
102
|
+
* @param b - The exponent non-zero safe integer
|
|
103
|
+
* @returns `a ** b` as a `NonZeroSafeInt`
|
|
101
104
|
*/
|
|
102
105
|
readonly pow: (x: import("ts-type-forge").WithSmallInt<TtfImported_NonZeroSafeInt>, y: import("ts-type-forge").WithSmallInt<TtfImported_NonZeroSafeInt>) => TtfImported_NonZeroSafeInt;
|
|
103
106
|
/**
|
|
104
|
-
* Multiplies two
|
|
105
|
-
*
|
|
106
|
-
* The product of two non-zero safe integers is always non-zero, so this stays
|
|
107
|
-
* closed; for the non-closed operations (`add`/`sub`/`div`, whose result may
|
|
108
|
-
* be `0`) use {@link Num.add}/{@link Num.sub}/{@link Num.divInt}.
|
|
107
|
+
* Multiplies two non-zero safe integers, returning `a * b` as a
|
|
108
|
+
* `NonZeroSafeInt`.
|
|
109
109
|
*
|
|
110
|
-
* @param a The first
|
|
111
|
-
* @param b The second
|
|
112
|
-
* @returns `a
|
|
113
|
-
* NonZeroSafeInt.
|
|
110
|
+
* @param a - The first non-zero safe integer
|
|
111
|
+
* @param b - The second non-zero safe integer
|
|
112
|
+
* @returns The product of `a` and `b` as a `NonZeroSafeInt`
|
|
114
113
|
*/
|
|
115
114
|
readonly mul: (x: import("ts-type-forge").WithSmallInt<TtfImported_NonZeroSafeInt>, y: import("ts-type-forge").WithSmallInt<TtfImported_NonZeroSafeInt>) => TtfImported_NonZeroSafeInt;
|
|
116
115
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"non-zero-safe-int.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/non-zero-safe-int.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,QAAQ,EACb,KAAK,cAAc,IAAI,0BAA0B,EAClD,MAAM,eAAe,CAAC;AAIvB,MAAM,MAAM,cAAc,GAAG,0BAA0B,CAAC;AAgCxD
|
|
1
|
+
{"version":3,"file":"non-zero-safe-int.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/non-zero-safe-int.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,QAAQ,EACb,KAAK,cAAc,IAAI,0BAA0B,EAClD,MAAM,eAAe,CAAC;AAIvB,MAAM,MAAM,cAAc,GAAG,0BAA0B,CAAC;AAgCxD;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,gDAAK,CAAC;AAEnC;;;;;;;;;GASG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;MAAW,CAAC;AAEzC;;;;;;GAMG;AACH,eAAO,MAAM,cAAc;IACzB;;;;;;OAMG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;;;;;;OAOG;;IAGH;;;;;OAKG;;IAGH;;;;;OAKG;;IAGH;;;;;;OAMG;;IAGH;;;;;;;;OAQG;;IAGH;;;;;;;OAOG;;IAGH;;;;;;;OAOG;;CAEK,CAAC"}
|
|
@@ -26,82 +26,78 @@ const isNonZeroSafeInt = is;
|
|
|
26
26
|
const asNonZeroSafeInt = castType;
|
|
27
27
|
const NonZeroSafeInt = {
|
|
28
28
|
/**
|
|
29
|
-
* Type guard
|
|
29
|
+
* Type guard that checks if a value is a non-zero safe integer.
|
|
30
30
|
*
|
|
31
|
-
* @param value The value to check
|
|
32
|
-
* @returns `true` if the value is a non-zero safe integer, `false` otherwise
|
|
31
|
+
* @param value - The value to check
|
|
32
|
+
* @returns `true` if the value is a non-zero safe integer, `false` otherwise
|
|
33
|
+
* @see {@link isNonZeroSafeInt} for usage examples
|
|
33
34
|
*/
|
|
34
35
|
is,
|
|
35
36
|
/**
|
|
36
|
-
* The
|
|
37
|
-
*
|
|
38
|
-
* @readonly
|
|
37
|
+
* The smallest value representable as `NonZeroSafeInt`.
|
|
39
38
|
*/
|
|
40
39
|
MIN_VALUE,
|
|
41
40
|
/**
|
|
42
|
-
* The
|
|
43
|
-
*
|
|
44
|
-
* @readonly
|
|
41
|
+
* The largest value representable as `NonZeroSafeInt`.
|
|
45
42
|
*/
|
|
46
43
|
MAX_VALUE,
|
|
47
44
|
/**
|
|
48
45
|
* Returns the absolute value of a non-zero safe integer.
|
|
49
46
|
*
|
|
50
|
-
*
|
|
51
|
-
*
|
|
47
|
+
* The result is non-negative and keeps the `NonZeroSafeInt` brand.
|
|
48
|
+
*
|
|
49
|
+
* @param a - The non-zero safe integer value
|
|
50
|
+
* @returns The absolute value as a non-negative `NonZeroSafeInt`
|
|
52
51
|
*/
|
|
53
52
|
abs,
|
|
54
53
|
/**
|
|
55
|
-
* Returns the
|
|
54
|
+
* Returns the smallest of the given non-zero safe integers.
|
|
56
55
|
*
|
|
57
|
-
* @param
|
|
58
|
-
* @
|
|
59
|
-
* @returns The minimum value as a NonZeroSafeInt.
|
|
56
|
+
* @param values - The non-zero safe integers to compare (at least one required)
|
|
57
|
+
* @returns The smallest value as a `NonZeroSafeInt`
|
|
60
58
|
*/
|
|
61
59
|
min: min_,
|
|
62
60
|
/**
|
|
63
|
-
* Returns the
|
|
61
|
+
* Returns the largest of the given non-zero safe integers.
|
|
64
62
|
*
|
|
65
|
-
* @param
|
|
66
|
-
* @
|
|
67
|
-
* @returns The maximum value as a NonZeroSafeInt.
|
|
63
|
+
* @param values - The non-zero safe integers to compare (at least one required)
|
|
64
|
+
* @returns The largest value as a `NonZeroSafeInt`
|
|
68
65
|
*/
|
|
69
66
|
max: max_,
|
|
70
67
|
/**
|
|
71
|
-
* Clamps a number
|
|
68
|
+
* Clamps a `number` into the `NonZeroSafeInt` range, rounding to the nearest
|
|
69
|
+
* integer and constraining the result to `[MIN_VALUE, MAX_VALUE]`.
|
|
72
70
|
*
|
|
73
|
-
* @param value The
|
|
74
|
-
* @returns The
|
|
75
|
-
* a NonZeroSafeInt.
|
|
71
|
+
* @param value - The value to clamp
|
|
72
|
+
* @returns The clamped value as a `NonZeroSafeInt`
|
|
76
73
|
*/
|
|
77
74
|
clamp,
|
|
78
75
|
/**
|
|
79
|
-
* Generates a random NonZeroSafeInt
|
|
76
|
+
* Generates a random `NonZeroSafeInt` within the given range.
|
|
80
77
|
*
|
|
81
|
-
*
|
|
82
|
-
*
|
|
78
|
+
* The range is inclusive on both ends.
|
|
79
|
+
*
|
|
80
|
+
* @param min - The minimum value (inclusive)
|
|
81
|
+
* @param max - The maximum value (inclusive)
|
|
82
|
+
* @returns A random `NonZeroSafeInt` in `[min, max]`
|
|
83
83
|
*/
|
|
84
84
|
random,
|
|
85
85
|
/**
|
|
86
|
-
* Raises a
|
|
86
|
+
* Raises `a` to the power `b`, returning `a ** b` as a `NonZeroSafeInt`
|
|
87
|
+
* (floored to an integer).
|
|
87
88
|
*
|
|
88
|
-
* @param a The base
|
|
89
|
-
* @param b The exponent
|
|
90
|
-
* @returns `a ** b`
|
|
91
|
-
* NonZeroSafeInt.
|
|
89
|
+
* @param a - The base non-zero safe integer
|
|
90
|
+
* @param b - The exponent non-zero safe integer
|
|
91
|
+
* @returns `a ** b` as a `NonZeroSafeInt`
|
|
92
92
|
*/
|
|
93
93
|
pow,
|
|
94
94
|
/**
|
|
95
|
-
* Multiplies two
|
|
96
|
-
*
|
|
97
|
-
* The product of two non-zero safe integers is always non-zero, so this stays
|
|
98
|
-
* closed; for the non-closed operations (`add`/`sub`/`div`, whose result may
|
|
99
|
-
* be `0`) use {@link Num.add}/{@link Num.sub}/{@link Num.divInt}.
|
|
95
|
+
* Multiplies two non-zero safe integers, returning `a * b` as a
|
|
96
|
+
* `NonZeroSafeInt`.
|
|
100
97
|
*
|
|
101
|
-
* @param a The first
|
|
102
|
-
* @param b The second
|
|
103
|
-
* @returns `a
|
|
104
|
-
* NonZeroSafeInt.
|
|
98
|
+
* @param a - The first non-zero safe integer
|
|
99
|
+
* @param b - The second non-zero safe integer
|
|
100
|
+
* @returns The product of `a` and `b` as a `NonZeroSafeInt`
|
|
105
101
|
*/
|
|
106
102
|
mul
|
|
107
103
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"non-zero-safe-int.mjs","sources":["../../../src/number/branded-types/non-zero-safe-int.mts"],"sourcesContent":["import {\n type SafeInt,\n type SafeUint,\n type NonZeroSafeInt as TtfImported_NonZeroSafeInt,\n} from 'ts-type-forge';\nimport { expectType } from '../../expect-type.mjs';\nimport { TsDataForgeInternals } from '../refined-number-utils.mjs';\n\nexport type NonZeroSafeInt = TtfImported_NonZeroSafeInt;\n\ntype ElementType = NonZeroSafeInt;\n\nconst typeNameInMessage = 'a non-zero safe integer';\n\nconst {\n MAX_VALUE,\n MIN_VALUE,\n abs,\n castType,\n clamp,\n is,\n max: max_,\n min: min_,\n mul,\n pow,\n randomNonZero: random,\n} = TsDataForgeInternals.RefinedNumberUtils.operatorsForInteger<\n ElementType,\n SafeInt,\n SafeUint\n>({\n integerOrSafeInteger: 'SafeInteger',\n nonZero: true,\n // eslint-disable-next-line total-functions/no-unsafe-type-assertion, math/prefer-number-min-safe-integer\n MIN_VALUE: Number.MIN_SAFE_INTEGER as SafeInt,\n // eslint-disable-next-line total-functions/no-unsafe-type-assertion, math/prefer-number-max-safe-integer\n MAX_VALUE: Number.MAX_SAFE_INTEGER as SafeUint,\n typeNameInMessage,\n} as const);\n\n/**\n *
|
|
1
|
+
{"version":3,"file":"non-zero-safe-int.mjs","sources":["../../../src/number/branded-types/non-zero-safe-int.mts"],"sourcesContent":["import {\n type SafeInt,\n type SafeUint,\n type NonZeroSafeInt as TtfImported_NonZeroSafeInt,\n} from 'ts-type-forge';\nimport { expectType } from '../../expect-type.mjs';\nimport { TsDataForgeInternals } from '../refined-number-utils.mjs';\n\nexport type NonZeroSafeInt = TtfImported_NonZeroSafeInt;\n\ntype ElementType = NonZeroSafeInt;\n\nconst typeNameInMessage = 'a non-zero safe integer';\n\nconst {\n MAX_VALUE,\n MIN_VALUE,\n abs,\n castType,\n clamp,\n is,\n max: max_,\n min: min_,\n mul,\n pow,\n randomNonZero: random,\n} = TsDataForgeInternals.RefinedNumberUtils.operatorsForInteger<\n ElementType,\n SafeInt,\n SafeUint\n>({\n integerOrSafeInteger: 'SafeInteger',\n nonZero: true,\n // eslint-disable-next-line total-functions/no-unsafe-type-assertion, math/prefer-number-min-safe-integer\n MIN_VALUE: Number.MIN_SAFE_INTEGER as SafeInt,\n // eslint-disable-next-line total-functions/no-unsafe-type-assertion, math/prefer-number-max-safe-integer\n MAX_VALUE: Number.MAX_SAFE_INTEGER as SafeUint,\n typeNameInMessage,\n} as const);\n\n/**\n * Type guard that checks if a value is a non-zero safe integer.\n *\n * Returns `true` for a non-zero safe integer — a value with no fractional\n * component.\n *\n * @param value - The value to check\n * @returns `true` if the value is a non-zero safe integer, `false` otherwise\n */\nexport const isNonZeroSafeInt = is;\n\n/**\n * Casts a `number` to the `NonZeroSafeInt` branded type.\n *\n * Validates that the value is a non-zero safe integer and returns it with the\n * `NonZeroSafeInt` brand. Throws a `TypeError` otherwise.\n *\n * @param value - The value to cast\n * @returns The value as a `NonZeroSafeInt`\n * @throws {TypeError} If the value is not a non-zero safe integer\n */\nexport const asNonZeroSafeInt = castType;\n\n/**\n * Namespace providing type-safe operations for the `NonZeroSafeInt` branded\n * type.\n *\n * The `NonZeroSafeInt` type represents a non-zero safe integer. Division\n * (`div`) uses floor division.\n */\nexport const NonZeroSafeInt = {\n /**\n * Type guard that checks if a value is a non-zero safe integer.\n *\n * @param value - The value to check\n * @returns `true` if the value is a non-zero safe integer, `false` otherwise\n * @see {@link isNonZeroSafeInt} for usage examples\n */\n is,\n\n /**\n * The smallest value representable as `NonZeroSafeInt`.\n */\n MIN_VALUE,\n\n /**\n * The largest value representable as `NonZeroSafeInt`.\n */\n MAX_VALUE,\n\n /**\n * Returns the absolute value of a non-zero safe integer.\n *\n * The result is non-negative and keeps the `NonZeroSafeInt` brand.\n *\n * @param a - The non-zero safe integer value\n * @returns The absolute value as a non-negative `NonZeroSafeInt`\n */\n abs,\n\n /**\n * Returns the smallest of the given non-zero safe integers.\n *\n * @param values - The non-zero safe integers to compare (at least one required)\n * @returns The smallest value as a `NonZeroSafeInt`\n */\n min: min_,\n\n /**\n * Returns the largest of the given non-zero safe integers.\n *\n * @param values - The non-zero safe integers to compare (at least one required)\n * @returns The largest value as a `NonZeroSafeInt`\n */\n max: max_,\n\n /**\n * Clamps a `number` into the `NonZeroSafeInt` range, rounding to the nearest\n * integer and constraining the result to `[MIN_VALUE, MAX_VALUE]`.\n *\n * @param value - The value to clamp\n * @returns The clamped value as a `NonZeroSafeInt`\n */\n clamp,\n\n /**\n * Generates a random `NonZeroSafeInt` 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 `NonZeroSafeInt` in `[min, max]`\n */\n random,\n\n /**\n * Raises `a` to the power `b`, returning `a ** b` as a `NonZeroSafeInt`\n * (floored to an integer).\n *\n * @param a - The base non-zero safe integer\n * @param b - The exponent non-zero safe integer\n * @returns `a ** b` as a `NonZeroSafeInt`\n */\n pow,\n\n /**\n * Multiplies two non-zero safe integers, returning `a * b` as a\n * `NonZeroSafeInt`.\n *\n * @param a - The first non-zero safe integer\n * @param b - The second non-zero safe integer\n * @returns The product of `a` and `b` as a `NonZeroSafeInt`\n */\n mul,\n} as const;\n\nexpectType<\n keyof typeof NonZeroSafeInt,\n keyof TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'range',\n 'mul'\n >\n>('=');\n\nexpectType<\n typeof NonZeroSafeInt,\n TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'range',\n 'mul'\n >\n>('<=');\n"],"names":[],"mappings":";;AAYA,MAAM,iBAAA,GAAoB,yBAAA;AAE1B,MAAM;AAAA,EACJ,SAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAA;AAAA,EACA,QAAA;AAAA,EACA,KAAA;AAAA,EACA,EAAA;AAAA,EACA,GAAA,EAAK,IAAA;AAAA,EACL,GAAA,EAAK,IAAA;AAAA,EACL,GAAA;AAAA,EACA,GAAA;AAAA,EACA,aAAA,EAAe;AACjB,CAAA,GAAI,oBAAA,CAAqB,mBAAmB,mBAAA,CAI1C;AAAA,EACA,oBAAA,EAAsB,aAAA;AAAA,EACtB,OAAA,EAAS,IAAA;AAAA;AAAA,EAET,WAAW,MAAA,CAAO,gBAAA;AAAA;AAAA,EAElB,WAAW,MAAA,CAAO,gBAAA;AAAA,EAClB;AACF,CAAU,CAAA;AAWH,MAAM,gBAAA,GAAmB;AAYzB,MAAM,gBAAA,GAAmB;AASzB,MAAM,cAAA,GAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ5B,EAAA;AAAA;AAAA;AAAA;AAAA,EAKA,SAAA;AAAA;AAAA;AAAA;AAAA,EAKA,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,GAAA,EAAK,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQL,GAAA,EAAK,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASL,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,MAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA;AACF;;;;"}
|