ts-data-forge 11.0.0 → 12.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- 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 +71 -59
- package/dist/number/branded-types/int16.d.mts.map +1 -1
- package/dist/number/branded-types/int16.mjs +56 -47
- package/dist/number/branded-types/int16.mjs.map +1 -1
- package/dist/number/branded-types/int32.d.mts +71 -59
- package/dist/number/branded-types/int32.d.mts.map +1 -1
- package/dist/number/branded-types/int32.mjs +56 -47
- package/dist/number/branded-types/int32.mjs.map +1 -1
- package/dist/number/branded-types/negative-finite-number.d.mts +76 -60
- package/dist/number/branded-types/negative-finite-number.d.mts.map +1 -1
- package/dist/number/branded-types/negative-finite-number.mjs +62 -49
- package/dist/number/branded-types/negative-finite-number.mjs.map +1 -1
- package/dist/number/branded-types/negative-int.d.mts +66 -49
- package/dist/number/branded-types/negative-int.d.mts.map +1 -1
- package/dist/number/branded-types/negative-int.mjs +48 -39
- package/dist/number/branded-types/negative-int.mjs.map +1 -1
- package/dist/number/branded-types/negative-safe-int.d.mts +64 -57
- package/dist/number/branded-types/negative-safe-int.d.mts.map +1 -1
- package/dist/number/branded-types/negative-safe-int.mjs +49 -44
- package/dist/number/branded-types/negative-safe-int.mjs.map +1 -1
- package/dist/number/branded-types/non-negative-finite-number.d.mts +80 -65
- package/dist/number/branded-types/non-negative-finite-number.d.mts.map +1 -1
- package/dist/number/branded-types/non-negative-finite-number.mjs +65 -53
- package/dist/number/branded-types/non-negative-finite-number.mjs.map +1 -1
- package/dist/number/branded-types/non-negative-int16.d.mts +71 -58
- package/dist/number/branded-types/non-negative-int16.d.mts.map +1 -1
- package/dist/number/branded-types/non-negative-int16.mjs +55 -45
- package/dist/number/branded-types/non-negative-int16.mjs.map +1 -1
- package/dist/number/branded-types/non-negative-int32.d.mts +71 -59
- package/dist/number/branded-types/non-negative-int32.d.mts.map +1 -1
- package/dist/number/branded-types/non-negative-int32.mjs +55 -46
- package/dist/number/branded-types/non-negative-int32.mjs.map +1 -1
- package/dist/number/branded-types/non-positive-finite-number.d.mts +70 -55
- package/dist/number/branded-types/non-positive-finite-number.d.mts.map +1 -1
- package/dist/number/branded-types/non-positive-finite-number.mjs +55 -43
- package/dist/number/branded-types/non-positive-finite-number.mjs.map +1 -1
- package/dist/number/branded-types/non-positive-int.d.mts +46 -146
- package/dist/number/branded-types/non-positive-int.d.mts.map +1 -1
- package/dist/number/branded-types/non-positive-int.mjs +33 -108
- package/dist/number/branded-types/non-positive-int.mjs.map +1 -1
- package/dist/number/branded-types/non-positive-safe-int.d.mts +62 -54
- package/dist/number/branded-types/non-positive-safe-int.d.mts.map +1 -1
- package/dist/number/branded-types/non-positive-safe-int.mjs +46 -41
- 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 +59 -54
- package/dist/number/branded-types/non-zero-int16.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-int16.mjs +44 -41
- package/dist/number/branded-types/non-zero-int16.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-int32.d.mts +59 -55
- package/dist/number/branded-types/non-zero-int32.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-int32.mjs +44 -42
- package/dist/number/branded-types/non-zero-int32.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-safe-int.d.mts +60 -55
- package/dist/number/branded-types/non-zero-safe-int.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-safe-int.mjs +44 -42
- package/dist/number/branded-types/non-zero-safe-int.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-uint16.d.mts +59 -54
- package/dist/number/branded-types/non-zero-uint16.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-uint16.mjs +43 -41
- package/dist/number/branded-types/non-zero-uint16.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-uint32.d.mts +59 -54
- package/dist/number/branded-types/non-zero-uint32.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-uint32.mjs +43 -41
- package/dist/number/branded-types/non-zero-uint32.mjs.map +1 -1
- package/dist/number/branded-types/positive-finite-number.d.mts +82 -64
- package/dist/number/branded-types/positive-finite-number.d.mts.map +1 -1
- package/dist/number/branded-types/positive-finite-number.mjs +67 -52
- package/dist/number/branded-types/positive-finite-number.mjs.map +1 -1
- package/dist/number/branded-types/positive-int.d.mts +53 -70
- package/dist/number/branded-types/positive-int.d.mts.map +1 -1
- package/dist/number/branded-types/positive-int.mjs +42 -52
- package/dist/number/branded-types/positive-int.mjs.map +1 -1
- package/dist/number/branded-types/positive-int16.d.mts +68 -58
- package/dist/number/branded-types/positive-int16.d.mts.map +1 -1
- package/dist/number/branded-types/positive-int16.mjs +52 -45
- package/dist/number/branded-types/positive-int16.mjs.map +1 -1
- package/dist/number/branded-types/positive-int32.d.mts +68 -58
- package/dist/number/branded-types/positive-int32.d.mts.map +1 -1
- package/dist/number/branded-types/positive-int32.mjs +52 -45
- package/dist/number/branded-types/positive-int32.mjs.map +1 -1
- package/dist/number/branded-types/positive-safe-int.d.mts +72 -61
- package/dist/number/branded-types/positive-safe-int.d.mts.map +1 -1
- package/dist/number/branded-types/positive-safe-int.mjs +56 -48
- package/dist/number/branded-types/positive-safe-int.mjs.map +1 -1
- package/dist/number/branded-types/positive-uint16.d.mts +68 -58
- package/dist/number/branded-types/positive-uint16.d.mts.map +1 -1
- package/dist/number/branded-types/positive-uint16.mjs +52 -45
- package/dist/number/branded-types/positive-uint16.mjs.map +1 -1
- package/dist/number/branded-types/positive-uint32.d.mts +68 -59
- package/dist/number/branded-types/positive-uint32.d.mts.map +1 -1
- package/dist/number/branded-types/positive-uint32.mjs +52 -46
- package/dist/number/branded-types/positive-uint32.mjs.map +1 -1
- package/dist/number/branded-types/safe-int.d.mts +52 -66
- package/dist/number/branded-types/safe-int.d.mts.map +1 -1
- package/dist/number/branded-types/safe-int.mjs +45 -47
- package/dist/number/branded-types/safe-int.mjs.map +1 -1
- package/dist/number/branded-types/safe-uint.d.mts +68 -58
- package/dist/number/branded-types/safe-uint.d.mts.map +1 -1
- package/dist/number/branded-types/safe-uint.mjs +53 -46
- package/dist/number/branded-types/safe-uint.mjs.map +1 -1
- package/dist/number/branded-types/uint.d.mts +72 -55
- package/dist/number/branded-types/uint.d.mts.map +1 -1
- package/dist/number/branded-types/uint.mjs +52 -45
- package/dist/number/branded-types/uint.mjs.map +1 -1
- package/dist/number/branded-types/uint16.d.mts +66 -59
- package/dist/number/branded-types/uint16.d.mts.map +1 -1
- package/dist/number/branded-types/uint16.mjs +51 -45
- package/dist/number/branded-types/uint16.mjs.map +1 -1
- package/dist/number/branded-types/uint32.d.mts +66 -57
- package/dist/number/branded-types/uint32.d.mts.map +1 -1
- package/dist/number/branded-types/uint32.mjs +50 -45
- package/dist/number/branded-types/uint32.mjs.map +1 -1
- package/dist/number/enum/int8.d.mts +62 -66
- package/dist/number/enum/int8.d.mts.map +1 -1
- package/dist/number/enum/int8.mjs +57 -51
- package/dist/number/enum/int8.mjs.map +1 -1
- package/dist/number/enum/uint8.d.mts +66 -59
- package/dist/number/enum/uint8.d.mts.map +1 -1
- package/dist/number/enum/uint8.mjs +57 -51
- package/dist/number/enum/uint8.mjs.map +1 -1
- package/dist/number/refined-number-utils.d.mts +9 -9
- package/dist/number/refined-number-utils.d.mts.map +1 -1
- package/dist/number/refined-number-utils.mjs +7 -7
- package/dist/number/refined-number-utils.mjs.map +1 -1
- package/package.json +2 -1
- 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 +72 -60
- package/src/number/branded-types/int32.mts +72 -60
- package/src/number/branded-types/negative-finite-number.mts +78 -71
- package/src/number/branded-types/negative-finite-number.test.mts +4 -4
- package/src/number/branded-types/negative-int.mts +68 -60
- package/src/number/branded-types/negative-int.test.mts +5 -5
- package/src/number/branded-types/negative-safe-int.mts +66 -68
- package/src/number/branded-types/negative-safe-int.test.mts +4 -4
- package/src/number/branded-types/non-negative-finite-number.mts +81 -66
- package/src/number/branded-types/non-negative-int16.mts +72 -59
- package/src/number/branded-types/non-negative-int32.mts +72 -60
- package/src/number/branded-types/non-positive-finite-number.mts +71 -56
- package/src/number/branded-types/non-positive-finite-number.test.mts +7 -7
- package/src/number/branded-types/non-positive-int.mts +47 -147
- package/src/number/branded-types/non-positive-int.test.mts +7 -7
- package/src/number/branded-types/non-positive-safe-int.mts +63 -55
- package/src/number/branded-types/non-positive-safe-int.test.mts +7 -7
- 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 +60 -55
- package/src/number/branded-types/non-zero-int32.mts +60 -56
- package/src/number/branded-types/non-zero-safe-int.mts +61 -56
- package/src/number/branded-types/non-zero-uint16.mts +60 -55
- package/src/number/branded-types/non-zero-uint32.mts +60 -55
- package/src/number/branded-types/positive-finite-number.mts +83 -65
- package/src/number/branded-types/positive-int.mts +54 -71
- package/src/number/branded-types/positive-int16.mts +69 -59
- package/src/number/branded-types/positive-int32.mts +69 -59
- package/src/number/branded-types/positive-safe-int.mts +73 -62
- package/src/number/branded-types/positive-uint16.mts +69 -59
- package/src/number/branded-types/positive-uint32.mts +69 -60
- package/src/number/branded-types/safe-int.mts +53 -67
- package/src/number/branded-types/safe-uint.mts +69 -59
- package/src/number/branded-types/uint.mts +73 -56
- package/src/number/branded-types/uint16.mts +67 -60
- package/src/number/branded-types/uint32.mts +67 -58
- package/src/number/enum/int8.mts +70 -73
- package/src/number/enum/int8.test.mts +7 -4
- package/src/number/enum/uint8.mts +74 -66
- package/src/number/enum/uint8.test.mts +7 -4
- package/src/number/refined-number-utils.mts +22 -19
|
@@ -6,7 +6,7 @@ const {
|
|
|
6
6
|
MIN_VALUE,
|
|
7
7
|
abs,
|
|
8
8
|
castType,
|
|
9
|
-
|
|
9
|
+
fromNumber,
|
|
10
10
|
is,
|
|
11
11
|
max: max_,
|
|
12
12
|
min: min_,
|
|
@@ -24,80 +24,83 @@ const isNonZeroInt16 = is;
|
|
|
24
24
|
const asNonZeroInt16 = castType;
|
|
25
25
|
const NonZeroInt16 = {
|
|
26
26
|
/**
|
|
27
|
-
* Type guard
|
|
27
|
+
* Type guard that checks if a value is a non-zero integer in [-2^15, 2^15).
|
|
28
28
|
*
|
|
29
|
-
* @param value The value to check
|
|
30
|
-
* @returns `true` if the value is a
|
|
31
|
-
*
|
|
29
|
+
* @param value - The value to check
|
|
30
|
+
* @returns `true` if the value is a non-zero integer in [-2^15, 2^15), `false` otherwise
|
|
31
|
+
* @see {@link isNonZeroInt16} for usage examples
|
|
32
32
|
*/
|
|
33
33
|
is,
|
|
34
34
|
/**
|
|
35
|
-
* The
|
|
36
|
-
*
|
|
37
|
-
* @readonly
|
|
35
|
+
* The smallest value representable as `NonZeroInt16` (the lower saturation
|
|
36
|
+
* target of `fromNumber`).
|
|
38
37
|
*/
|
|
39
38
|
MIN_VALUE,
|
|
40
39
|
/**
|
|
41
|
-
* The
|
|
42
|
-
*
|
|
43
|
-
* @readonly
|
|
40
|
+
* The largest value representable as `NonZeroInt16` (the upper saturation
|
|
41
|
+
* target of `fromNumber`).
|
|
44
42
|
*/
|
|
45
43
|
MAX_VALUE,
|
|
46
44
|
/**
|
|
47
|
-
* Returns the absolute value of a
|
|
45
|
+
* Returns the absolute value of a non-zero integer in [-2^15, 2^15).
|
|
46
|
+
*
|
|
47
|
+
* The result is non-negative and keeps the `NonZeroInt16` brand.
|
|
48
48
|
*
|
|
49
|
-
* @param a The
|
|
50
|
-
* @returns The absolute value as a NonZeroInt16
|
|
49
|
+
* @param a - The non-zero integer value
|
|
50
|
+
* @returns The absolute value as a non-negative `NonZeroInt16`
|
|
51
51
|
*/
|
|
52
52
|
abs,
|
|
53
53
|
/**
|
|
54
|
-
* Returns the
|
|
54
|
+
* Returns the smallest of the given non-zero integers.
|
|
55
55
|
*
|
|
56
|
-
* @param
|
|
57
|
-
* @
|
|
58
|
-
* @returns The minimum value as a NonZeroInt16.
|
|
56
|
+
* @param values - The non-zero integers to compare (at least one required)
|
|
57
|
+
* @returns The smallest value as a `NonZeroInt16`
|
|
59
58
|
*/
|
|
60
59
|
min: min_,
|
|
61
60
|
/**
|
|
62
|
-
* Returns the
|
|
61
|
+
* Returns the largest of the given non-zero integers.
|
|
63
62
|
*
|
|
64
|
-
* @param
|
|
65
|
-
* @
|
|
66
|
-
* @returns The maximum value as a NonZeroInt16.
|
|
63
|
+
* @param values - The non-zero integers to compare (at least one required)
|
|
64
|
+
* @returns The largest value as a `NonZeroInt16`
|
|
67
65
|
*/
|
|
68
66
|
max: max_,
|
|
69
67
|
/**
|
|
70
|
-
*
|
|
68
|
+
* Converts an arbitrary `number` into a `NonZeroInt16`, rounding to the
|
|
69
|
+
* nearest integer and saturating the result into the range `[MIN_VALUE,
|
|
70
|
+
* MAX_VALUE]`.
|
|
71
71
|
*
|
|
72
|
-
*
|
|
73
|
-
*
|
|
72
|
+
* Unlike `asNonZeroInt16`, this is total: out-of-range inputs are clamped to
|
|
73
|
+
* the nearest representable `NonZeroInt16` instead of throwing.
|
|
74
|
+
*
|
|
75
|
+
* @param value - The value to convert
|
|
76
|
+
* @returns The value as a `NonZeroInt16`
|
|
74
77
|
*/
|
|
75
|
-
|
|
78
|
+
fromNumber,
|
|
76
79
|
/**
|
|
77
|
-
* Generates a random NonZeroInt16
|
|
80
|
+
* Generates a random `NonZeroInt16` within the given range.
|
|
81
|
+
*
|
|
82
|
+
* The range is inclusive on both ends.
|
|
78
83
|
*
|
|
79
|
-
* @
|
|
80
|
-
*
|
|
84
|
+
* @param min - The minimum value (inclusive)
|
|
85
|
+
* @param max - The maximum value (inclusive)
|
|
86
|
+
* @returns A random `NonZeroInt16` in `[min, max]`
|
|
81
87
|
*/
|
|
82
88
|
random,
|
|
83
89
|
/**
|
|
84
|
-
* Raises a
|
|
90
|
+
* Raises `a` to the power `b`, returning `a ** b` as a `NonZeroInt16`
|
|
91
|
+
* (floored to an integer).
|
|
85
92
|
*
|
|
86
|
-
* @param a The base
|
|
87
|
-
* @param b The exponent
|
|
88
|
-
* @returns `a ** b`
|
|
93
|
+
* @param a - The base non-zero integer
|
|
94
|
+
* @param b - The exponent non-zero integer
|
|
95
|
+
* @returns `a ** b` as a `NonZeroInt16`
|
|
89
96
|
*/
|
|
90
97
|
pow,
|
|
91
98
|
/**
|
|
92
|
-
* Multiplies two NonZeroInt16
|
|
93
|
-
*
|
|
94
|
-
* The product of two non-zero integers is always non-zero, so this stays
|
|
95
|
-
* closed; for the non-closed operations (`add`/`sub`/`div`, whose result may
|
|
96
|
-
* be `0`) use {@link Num.add}/{@link Num.sub}/{@link Num.divInt}.
|
|
99
|
+
* Multiplies two non-zero integers, returning `a * b` as a `NonZeroInt16`.
|
|
97
100
|
*
|
|
98
|
-
* @param a The first
|
|
99
|
-
* @param b The second
|
|
100
|
-
* @returns `a
|
|
101
|
+
* @param a - The first non-zero integer
|
|
102
|
+
* @param b - The second non-zero integer
|
|
103
|
+
* @returns The product of `a` and `b` as a `NonZeroInt16`
|
|
101
104
|
*/
|
|
102
105
|
mul
|
|
103
106
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"non-zero-int16.mjs","sources":["../../../src/number/branded-types/non-zero-int16.mts"],"sourcesContent":["import { type NonZeroInt16 as TtfImported_NonZeroInt16 } from 'ts-type-forge';\nimport { expectType } from '../../expect-type.mjs';\nimport { TsDataForgeInternals } from '../refined-number-utils.mjs';\n\nexport type NonZeroInt16 = TtfImported_NonZeroInt16;\n\ntype ElementType = NonZeroInt16;\n\nconst typeNameInMessage = 'a non-zero integer in [-2^15, 2^15)';\n\nconst {\n MAX_VALUE,\n MIN_VALUE,\n abs,\n castType,\n
|
|
1
|
+
{"version":3,"file":"non-zero-int16.mjs","sources":["../../../src/number/branded-types/non-zero-int16.mts"],"sourcesContent":["import { type NonZeroInt16 as TtfImported_NonZeroInt16 } from 'ts-type-forge';\nimport { expectType } from '../../expect-type.mjs';\nimport { TsDataForgeInternals } from '../refined-number-utils.mjs';\n\nexport type NonZeroInt16 = TtfImported_NonZeroInt16;\n\ntype ElementType = NonZeroInt16;\n\nconst typeNameInMessage = 'a non-zero integer in [-2^15, 2^15)';\n\nconst {\n MAX_VALUE,\n MIN_VALUE,\n abs,\n castType,\n fromNumber,\n is,\n max: max_,\n min: min_,\n mul,\n pow,\n randomNonZero: random,\n} = TsDataForgeInternals.RefinedNumberUtils.operatorsForInteger<\n ElementType,\n number,\n number\n>({\n integerOrSafeInteger: 'SafeInteger',\n nonZero: true,\n MIN_VALUE: -(2 ** 15),\n MAX_VALUE: 2 ** 15 - 1,\n typeNameInMessage,\n} as const);\n\n/**\n * Type guard that checks if a value is a non-zero integer in [-2^15, 2^15).\n *\n * Returns `true` for a non-zero integer in [-2^15, 2^15) — a value with no\n * fractional component.\n *\n * @param value - The value to check\n * @returns `true` if the value is a non-zero integer in [-2^15, 2^15), `false` otherwise\n */\nexport const isNonZeroInt16 = is;\n\n/**\n * Casts a `number` to the `NonZeroInt16` branded type.\n *\n * Validates that the value is a non-zero integer in [-2^15, 2^15) and returns\n * it with the `NonZeroInt16` brand. Throws a `TypeError` otherwise.\n *\n * @param value - The value to cast\n * @returns The value as a `NonZeroInt16`\n * @throws {TypeError} If the value is not a non-zero integer in [-2^15, 2^15)\n */\nexport const asNonZeroInt16 = castType;\n\n/**\n * Namespace providing type-safe operations for the `NonZeroInt16` branded type.\n *\n * The `NonZeroInt16` type represents a non-zero integer in [-2^15, 2^15).\n * Division (`div`) uses floor division.\n */\nexport const NonZeroInt16 = {\n /**\n * Type guard that checks if a value is a non-zero integer in [-2^15, 2^15).\n *\n * @param value - The value to check\n * @returns `true` if the value is a non-zero integer in [-2^15, 2^15), `false` otherwise\n * @see {@link isNonZeroInt16} for usage examples\n */\n is,\n\n /**\n * The smallest value representable as `NonZeroInt16` (the lower saturation\n * target of `fromNumber`).\n */\n MIN_VALUE,\n\n /**\n * The largest value representable as `NonZeroInt16` (the upper saturation\n * target of `fromNumber`).\n */\n MAX_VALUE,\n\n /**\n * Returns the absolute value of a non-zero integer in [-2^15, 2^15).\n *\n * The result is non-negative and keeps the `NonZeroInt16` brand.\n *\n * @param a - The non-zero integer value\n * @returns The absolute value as a non-negative `NonZeroInt16`\n */\n abs,\n\n /**\n * Returns the smallest of the given non-zero integers.\n *\n * @param values - The non-zero integers to compare (at least one required)\n * @returns The smallest value as a `NonZeroInt16`\n */\n min: min_,\n\n /**\n * Returns the largest of the given non-zero integers.\n *\n * @param values - The non-zero integers to compare (at least one required)\n * @returns The largest value as a `NonZeroInt16`\n */\n max: max_,\n\n /**\n * Converts an arbitrary `number` into a `NonZeroInt16`, rounding to the\n * nearest integer and saturating the result into the range `[MIN_VALUE,\n * MAX_VALUE]`.\n *\n * Unlike `asNonZeroInt16`, this is total: out-of-range inputs are clamped to\n * the nearest representable `NonZeroInt16` instead of throwing.\n *\n * @param value - The value to convert\n * @returns The value as a `NonZeroInt16`\n */\n fromNumber,\n\n /**\n * Generates a random `NonZeroInt16` within the given range.\n *\n * The range is inclusive on both ends.\n *\n * @param min - The minimum value (inclusive)\n * @param max - The maximum value (inclusive)\n * @returns A random `NonZeroInt16` in `[min, max]`\n */\n random,\n\n /**\n * Raises `a` to the power `b`, returning `a ** b` as a `NonZeroInt16`\n * (floored to an integer).\n *\n * @param a - The base non-zero integer\n * @param b - The exponent non-zero integer\n * @returns `a ** b` as a `NonZeroInt16`\n */\n pow,\n\n /**\n * Multiplies two non-zero integers, returning `a * b` as a `NonZeroInt16`.\n *\n * @param a - The first non-zero integer\n * @param b - The second non-zero integer\n * @returns The product of `a` and `b` as a `NonZeroInt16`\n */\n mul,\n} as const;\n\nexpectType<\n keyof typeof NonZeroInt16,\n keyof TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'range',\n 'mul'\n >\n>('=');\n\nexpectType<\n typeof NonZeroInt16,\n TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'range',\n 'mul'\n >\n>('<=');\n"],"names":[],"mappings":";;AAQA,MAAM,iBAAA,GAAoB,qCAAA;AAE1B,MAAM;AAAA,EACJ,SAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAA;AAAA,EACA,QAAA;AAAA,EACA,UAAA;AAAA,EACA,EAAA;AAAA,EACA,GAAA,EAAK,IAAA;AAAA,EACL,GAAA,EAAK,IAAA;AAAA,EACL,GAAA;AAAA,EACA,GAAA;AAAA,EACA,aAAA,EAAe;AACjB,CAAA,GAAI,oBAAA,CAAqB,mBAAmB,mBAAA,CAI1C;AAAA,EACA,oBAAA,EAAsB,aAAA;AAAA,EACtB,OAAA,EAAS,IAAA;AAAA,EACT,SAAA,EAAW,MAAO;AAAA,EAClB,SAAA,EAAW,KAAK,EAAA,GAAK,CAAA;AAAA,EACrB;AACF,CAAU,CAAA;AAWH,MAAM,cAAA,GAAiB;AAYvB,MAAM,cAAA,GAAiB;AAQvB,MAAM,YAAA,GAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ1B,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,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;AAAA;AAAA;AAAA;AAAA,EAaL,UAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,MAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA;AACF;;;;"}
|
|
@@ -1,19 +1,24 @@
|
|
|
1
1
|
import { type NonZeroInt32 as TtfImported_NonZeroInt32 } from 'ts-type-forge';
|
|
2
2
|
export type NonZeroInt32 = TtfImported_NonZeroInt32;
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
5
|
-
* range [-2^31, 2^31) excluding 0).
|
|
4
|
+
* Type guard that checks if a value is a non-zero integer in [-2^31, 2^31).
|
|
6
5
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
6
|
+
* Returns `true` for a non-zero integer in [-2^31, 2^31) — a value with no
|
|
7
|
+
* fractional component.
|
|
8
|
+
*
|
|
9
|
+
* @param value - The value to check
|
|
10
|
+
* @returns `true` if the value is a non-zero integer in [-2^31, 2^31), `false` otherwise
|
|
9
11
|
*/
|
|
10
12
|
export declare const isNonZeroInt32: (a: number) => a is TtfImported_NonZeroInt32;
|
|
11
13
|
/**
|
|
12
|
-
* Casts a number to
|
|
14
|
+
* Casts a `number` to the `NonZeroInt32` branded type.
|
|
15
|
+
*
|
|
16
|
+
* Validates that the value is a non-zero integer in [-2^31, 2^31) and returns
|
|
17
|
+
* it with the `NonZeroInt32` brand. Throws a `TypeError` otherwise.
|
|
13
18
|
*
|
|
14
|
-
* @param value The value to cast
|
|
15
|
-
* @returns The value as a NonZeroInt32
|
|
16
|
-
* @throws {TypeError} If the value is not a non-zero integer in [-2^31, 2^31)
|
|
19
|
+
* @param value - The value to cast
|
|
20
|
+
* @returns The value as a `NonZeroInt32`
|
|
21
|
+
* @throws {TypeError} If the value is not a non-zero integer in [-2^31, 2^31)
|
|
17
22
|
*/
|
|
18
23
|
export declare const asNonZeroInt32: <N extends number>(x: N) => number & {
|
|
19
24
|
readonly "!=0": true;
|
|
@@ -29,91 +34,90 @@ export declare const asNonZeroInt32: <N extends number>(x: N) => number & {
|
|
|
29
34
|
'TSTypeForgeInternals--edd2f9ce-7ca5-45b0-9d1a-bd61b9b5d9c3': unknown;
|
|
30
35
|
}> & N;
|
|
31
36
|
/**
|
|
32
|
-
* Namespace providing type-safe
|
|
33
|
-
* signed integers.
|
|
37
|
+
* Namespace providing type-safe operations for the `NonZeroInt32` branded type.
|
|
34
38
|
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
* maintains the 32-bit non-zero signed integer constraint, preventing zero
|
|
38
|
-
* results and overflow.
|
|
39
|
+
* The `NonZeroInt32` type represents a non-zero integer in [-2^31, 2^31).
|
|
40
|
+
* Division (`div`) uses floor division.
|
|
39
41
|
*/
|
|
40
42
|
export declare const NonZeroInt32: {
|
|
41
43
|
/**
|
|
42
|
-
* Type guard
|
|
44
|
+
* Type guard that checks if a value is a non-zero integer in [-2^31, 2^31).
|
|
43
45
|
*
|
|
44
|
-
* @param value The value to check
|
|
45
|
-
* @returns `true` if the value is a
|
|
46
|
-
*
|
|
46
|
+
* @param value - The value to check
|
|
47
|
+
* @returns `true` if the value is a non-zero integer in [-2^31, 2^31), `false` otherwise
|
|
48
|
+
* @see {@link isNonZeroInt32} for usage examples
|
|
47
49
|
*/
|
|
48
50
|
readonly is: (a: number) => a is TtfImported_NonZeroInt32;
|
|
49
51
|
/**
|
|
50
|
-
* The
|
|
51
|
-
*
|
|
52
|
-
* @readonly
|
|
52
|
+
* The smallest value representable as `NonZeroInt32` (the lower saturation
|
|
53
|
+
* target of `fromNumber`).
|
|
53
54
|
*/
|
|
54
55
|
readonly MIN_VALUE: number;
|
|
55
56
|
/**
|
|
56
|
-
* The
|
|
57
|
-
*
|
|
58
|
-
* @readonly
|
|
57
|
+
* The largest value representable as `NonZeroInt32` (the upper saturation
|
|
58
|
+
* target of `fromNumber`).
|
|
59
59
|
*/
|
|
60
60
|
readonly MAX_VALUE: number;
|
|
61
61
|
/**
|
|
62
|
-
* Returns the absolute value of a
|
|
62
|
+
* Returns the absolute value of a non-zero integer in [-2^31, 2^31).
|
|
63
63
|
*
|
|
64
|
-
*
|
|
65
|
-
*
|
|
64
|
+
* The result is non-negative and keeps the `NonZeroInt32` brand.
|
|
65
|
+
*
|
|
66
|
+
* @param a - The non-zero integer value
|
|
67
|
+
* @returns The absolute value as a non-negative `NonZeroInt32`
|
|
66
68
|
*/
|
|
67
69
|
readonly abs: (x: import("ts-type-forge").WithSmallInt<TtfImported_NonZeroInt32>) => import("ts-type-forge").IntersectBrand<TtfImported_NonZeroInt32, import("ts-type-forge").PositiveNumber>;
|
|
68
70
|
/**
|
|
69
|
-
* Returns the
|
|
71
|
+
* Returns the smallest of the given non-zero integers.
|
|
70
72
|
*
|
|
71
|
-
* @param
|
|
72
|
-
* @
|
|
73
|
-
* @returns The minimum value as a NonZeroInt32.
|
|
73
|
+
* @param values - The non-zero integers to compare (at least one required)
|
|
74
|
+
* @returns The smallest value as a `NonZeroInt32`
|
|
74
75
|
*/
|
|
75
76
|
readonly min: (...values: readonly import("ts-type-forge").WithSmallInt<TtfImported_NonZeroInt32>[]) => TtfImported_NonZeroInt32;
|
|
76
77
|
/**
|
|
77
|
-
* Returns the
|
|
78
|
+
* Returns the largest of the given non-zero integers.
|
|
78
79
|
*
|
|
79
|
-
* @param
|
|
80
|
-
* @
|
|
81
|
-
* @returns The maximum value as a NonZeroInt32.
|
|
80
|
+
* @param values - The non-zero integers to compare (at least one required)
|
|
81
|
+
* @returns The largest value as a `NonZeroInt32`
|
|
82
82
|
*/
|
|
83
83
|
readonly max: (...values: readonly import("ts-type-forge").WithSmallInt<TtfImported_NonZeroInt32>[]) => TtfImported_NonZeroInt32;
|
|
84
84
|
/**
|
|
85
|
-
*
|
|
85
|
+
* Converts an arbitrary `number` into a `NonZeroInt32`, rounding to the
|
|
86
|
+
* nearest integer and saturating the result into the range `[MIN_VALUE,
|
|
87
|
+
* MAX_VALUE]`.
|
|
88
|
+
*
|
|
89
|
+
* Unlike `asNonZeroInt32`, this is total: out-of-range inputs are clamped to
|
|
90
|
+
* the nearest representable `NonZeroInt32` instead of throwing.
|
|
86
91
|
*
|
|
87
|
-
* @param value The
|
|
88
|
-
* @returns The value
|
|
89
|
-
* NonZeroInt32.
|
|
92
|
+
* @param value - The value to convert
|
|
93
|
+
* @returns The value as a `NonZeroInt32`
|
|
90
94
|
*/
|
|
91
|
-
readonly
|
|
95
|
+
readonly fromNumber: (x: number) => TtfImported_NonZeroInt32;
|
|
92
96
|
/**
|
|
93
|
-
* Generates a random NonZeroInt32
|
|
97
|
+
* Generates a random `NonZeroInt32` within the given range.
|
|
94
98
|
*
|
|
95
|
-
*
|
|
96
|
-
*
|
|
99
|
+
* The range is inclusive on both ends.
|
|
100
|
+
*
|
|
101
|
+
* @param min - The minimum value (inclusive)
|
|
102
|
+
* @param max - The maximum value (inclusive)
|
|
103
|
+
* @returns A random `NonZeroInt32` in `[min, max]`
|
|
97
104
|
*/
|
|
98
105
|
readonly random: (min?: import("ts-type-forge").WithSmallInt<TtfImported_NonZeroInt32> | undefined, max?: import("ts-type-forge").WithSmallInt<TtfImported_NonZeroInt32> | undefined) => TtfImported_NonZeroInt32;
|
|
99
106
|
/**
|
|
100
|
-
* Raises a
|
|
107
|
+
* Raises `a` to the power `b`, returning `a ** b` as a `NonZeroInt32`
|
|
108
|
+
* (floored to an integer).
|
|
101
109
|
*
|
|
102
|
-
* @param a The base
|
|
103
|
-
* @param b The exponent
|
|
104
|
-
* @returns `a ** b`
|
|
110
|
+
* @param a - The base non-zero integer
|
|
111
|
+
* @param b - The exponent non-zero integer
|
|
112
|
+
* @returns `a ** b` as a `NonZeroInt32`
|
|
105
113
|
*/
|
|
106
114
|
readonly pow: (x: import("ts-type-forge").WithSmallInt<TtfImported_NonZeroInt32>, y: import("ts-type-forge").WithSmallInt<TtfImported_NonZeroInt32>) => TtfImported_NonZeroInt32;
|
|
107
115
|
/**
|
|
108
|
-
* Multiplies two NonZeroInt32
|
|
109
|
-
*
|
|
110
|
-
* The product of two non-zero integers is always non-zero, so this stays
|
|
111
|
-
* closed; for the non-closed operations (`add`/`sub`/`div`, whose result may
|
|
112
|
-
* be `0`) use {@link Num.add}/{@link Num.sub}/{@link Num.divInt}.
|
|
116
|
+
* Multiplies two non-zero integers, returning `a * b` as a `NonZeroInt32`.
|
|
113
117
|
*
|
|
114
|
-
* @param a The first
|
|
115
|
-
* @param b The second
|
|
116
|
-
* @returns `a
|
|
118
|
+
* @param a - The first non-zero integer
|
|
119
|
+
* @param b - The second non-zero integer
|
|
120
|
+
* @returns The product of `a` and `b` as a `NonZeroInt32`
|
|
117
121
|
*/
|
|
118
122
|
readonly mul: (x: import("ts-type-forge").WithSmallInt<TtfImported_NonZeroInt32>, y: import("ts-type-forge").WithSmallInt<TtfImported_NonZeroInt32>) => TtfImported_NonZeroInt32;
|
|
119
123
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"non-zero-int32.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/non-zero-int32.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,IAAI,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAI9E,MAAM,MAAM,YAAY,GAAG,wBAAwB,CAAC;AA8BpD
|
|
1
|
+
{"version":3,"file":"non-zero-int32.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/non-zero-int32.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,IAAI,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAI9E,MAAM,MAAM,YAAY,GAAG,wBAAwB,CAAC;AA8BpD;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc,8CAAK,CAAC;AAEjC;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;MAAW,CAAC;AAEvC;;;;;GAKG;AACH,eAAO,MAAM,YAAY;IACvB;;;;;;OAMG;;IAGH;;;OAGG;;IAGH;;;OAGG;;IAGH;;;;;;;OAOG;;IAGH;;;;;OAKG;;IAGH;;;;;OAKG;;IAGH;;;;;;;;;;OAUG;;IAGH;;;;;;;;OAQG;;IAGH;;;;;;;OAOG;;IAGH;;;;;;OAMG;;CAEK,CAAC"}
|
|
@@ -6,7 +6,7 @@ const {
|
|
|
6
6
|
MIN_VALUE,
|
|
7
7
|
abs,
|
|
8
8
|
castType,
|
|
9
|
-
|
|
9
|
+
fromNumber,
|
|
10
10
|
is,
|
|
11
11
|
max: max_,
|
|
12
12
|
min: min_,
|
|
@@ -24,81 +24,83 @@ 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` (the lower saturation
|
|
36
|
+
* target of `fromNumber`).
|
|
38
37
|
*/
|
|
39
38
|
MIN_VALUE,
|
|
40
39
|
/**
|
|
41
|
-
* The
|
|
42
|
-
*
|
|
43
|
-
* @readonly
|
|
40
|
+
* The largest value representable as `NonZeroInt32` (the upper saturation
|
|
41
|
+
* target of `fromNumber`).
|
|
44
42
|
*/
|
|
45
43
|
MAX_VALUE,
|
|
46
44
|
/**
|
|
47
|
-
* Returns the absolute value of a
|
|
45
|
+
* Returns the absolute value of a non-zero integer in [-2^31, 2^31).
|
|
46
|
+
*
|
|
47
|
+
* The result is non-negative and keeps the `NonZeroInt32` brand.
|
|
48
48
|
*
|
|
49
|
-
* @param a The
|
|
50
|
-
* @returns The absolute value as a NonZeroInt32
|
|
49
|
+
* @param a - The non-zero integer value
|
|
50
|
+
* @returns The absolute value as a non-negative `NonZeroInt32`
|
|
51
51
|
*/
|
|
52
52
|
abs,
|
|
53
53
|
/**
|
|
54
|
-
* Returns the
|
|
54
|
+
* Returns the smallest of the given non-zero integers.
|
|
55
55
|
*
|
|
56
|
-
* @param
|
|
57
|
-
* @
|
|
58
|
-
* @returns The minimum value as a NonZeroInt32.
|
|
56
|
+
* @param values - The non-zero integers to compare (at least one required)
|
|
57
|
+
* @returns The smallest value as a `NonZeroInt32`
|
|
59
58
|
*/
|
|
60
59
|
min: min_,
|
|
61
60
|
/**
|
|
62
|
-
* Returns the
|
|
61
|
+
* Returns the largest of the given non-zero integers.
|
|
63
62
|
*
|
|
64
|
-
* @param
|
|
65
|
-
* @
|
|
66
|
-
* @returns The maximum value as a NonZeroInt32.
|
|
63
|
+
* @param values - The non-zero integers to compare (at least one required)
|
|
64
|
+
* @returns The largest value as a `NonZeroInt32`
|
|
67
65
|
*/
|
|
68
66
|
max: max_,
|
|
69
67
|
/**
|
|
70
|
-
*
|
|
68
|
+
* Converts an arbitrary `number` into a `NonZeroInt32`, rounding to the
|
|
69
|
+
* nearest integer and saturating the result into the range `[MIN_VALUE,
|
|
70
|
+
* MAX_VALUE]`.
|
|
71
71
|
*
|
|
72
|
-
*
|
|
73
|
-
*
|
|
74
|
-
*
|
|
72
|
+
* Unlike `asNonZeroInt32`, this is total: out-of-range inputs are clamped to
|
|
73
|
+
* the nearest representable `NonZeroInt32` instead of throwing.
|
|
74
|
+
*
|
|
75
|
+
* @param value - The value to convert
|
|
76
|
+
* @returns The value as a `NonZeroInt32`
|
|
75
77
|
*/
|
|
76
|
-
|
|
78
|
+
fromNumber,
|
|
77
79
|
/**
|
|
78
|
-
* Generates a random NonZeroInt32
|
|
80
|
+
* Generates a random `NonZeroInt32` within the given range.
|
|
81
|
+
*
|
|
82
|
+
* The range is inclusive on both ends.
|
|
79
83
|
*
|
|
80
|
-
* @
|
|
81
|
-
*
|
|
84
|
+
* @param min - The minimum value (inclusive)
|
|
85
|
+
* @param max - The maximum value (inclusive)
|
|
86
|
+
* @returns A random `NonZeroInt32` in `[min, max]`
|
|
82
87
|
*/
|
|
83
88
|
random,
|
|
84
89
|
/**
|
|
85
|
-
* Raises a
|
|
90
|
+
* Raises `a` to the power `b`, returning `a ** b` as a `NonZeroInt32`
|
|
91
|
+
* (floored to an integer).
|
|
86
92
|
*
|
|
87
|
-
* @param a The base
|
|
88
|
-
* @param b The exponent
|
|
89
|
-
* @returns `a ** b`
|
|
93
|
+
* @param a - The base non-zero integer
|
|
94
|
+
* @param b - The exponent non-zero integer
|
|
95
|
+
* @returns `a ** b` as a `NonZeroInt32`
|
|
90
96
|
*/
|
|
91
97
|
pow,
|
|
92
98
|
/**
|
|
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}.
|
|
99
|
+
* Multiplies two non-zero integers, returning `a * b` as a `NonZeroInt32`.
|
|
98
100
|
*
|
|
99
|
-
* @param a The first
|
|
100
|
-
* @param b The second
|
|
101
|
-
* @returns `a
|
|
101
|
+
* @param a - The first non-zero integer
|
|
102
|
+
* @param b - The second non-zero integer
|
|
103
|
+
* @returns The product of `a` and `b` as a `NonZeroInt32`
|
|
102
104
|
*/
|
|
103
105
|
mul
|
|
104
106
|
};
|
|
@@ -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
|
|
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 fromNumber,\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` (the lower saturation\n * target of `fromNumber`).\n */\n MIN_VALUE,\n\n /**\n * The largest value representable as `NonZeroInt32` (the upper saturation\n * target of `fromNumber`).\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 * Converts an arbitrary `number` into a `NonZeroInt32`, rounding to the\n * nearest integer and saturating the result into the range `[MIN_VALUE,\n * MAX_VALUE]`.\n *\n * Unlike `asNonZeroInt32`, this is total: out-of-range inputs are clamped to\n * the nearest representable `NonZeroInt32` instead of throwing.\n *\n * @param value - The value to convert\n * @returns The value as a `NonZeroInt32`\n */\n fromNumber,\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,UAAA;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;AAAA,EAMA,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,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;AAAA;AAAA;AAAA;AAAA,EAaL,UAAA;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;;;;"}
|