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
|
add,
|
|
8
8
|
castType,
|
|
9
|
-
|
|
9
|
+
fromNumber,
|
|
10
10
|
is,
|
|
11
11
|
max: max_,
|
|
12
12
|
min: min_,
|
|
@@ -24,80 +24,82 @@ const isNonZeroUint16 = is;
|
|
|
24
24
|
const asNonZeroUint16 = castType;
|
|
25
25
|
const NonZeroUint16 = {
|
|
26
26
|
/**
|
|
27
|
-
* Type guard
|
|
27
|
+
* Type guard that checks if a value is a non-zero integer in [1, 2^16).
|
|
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 [1, 2^16), `false` otherwise
|
|
31
|
+
* @see {@link isNonZeroUint16} for usage examples
|
|
32
32
|
*/
|
|
33
33
|
is,
|
|
34
34
|
/**
|
|
35
|
-
* The
|
|
36
|
-
*
|
|
37
|
-
* @readonly
|
|
35
|
+
* The smallest value representable as `NonZeroUint16` (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 `NonZeroUint16` (the upper saturation
|
|
41
|
+
* target of `fromNumber`).
|
|
44
42
|
*/
|
|
45
43
|
MAX_VALUE,
|
|
46
44
|
/**
|
|
47
|
-
* Returns the
|
|
45
|
+
* Returns the smallest of the given non-zero integers.
|
|
48
46
|
*
|
|
49
|
-
* @param
|
|
50
|
-
* @
|
|
51
|
-
* @returns The minimum value as a NonZeroUint16.
|
|
47
|
+
* @param values - The non-zero integers to compare (at least one required)
|
|
48
|
+
* @returns The smallest value as a `NonZeroUint16`
|
|
52
49
|
*/
|
|
53
50
|
min: min_,
|
|
54
51
|
/**
|
|
55
|
-
* Returns the
|
|
52
|
+
* Returns the largest of the given non-zero integers.
|
|
56
53
|
*
|
|
57
|
-
* @param
|
|
58
|
-
* @
|
|
59
|
-
* @returns The maximum value as a NonZeroUint16.
|
|
54
|
+
* @param values - The non-zero integers to compare (at least one required)
|
|
55
|
+
* @returns The largest value as a `NonZeroUint16`
|
|
60
56
|
*/
|
|
61
57
|
max: max_,
|
|
62
58
|
/**
|
|
63
|
-
*
|
|
59
|
+
* Converts an arbitrary `number` into a `NonZeroUint16`, rounding to the
|
|
60
|
+
* nearest integer and saturating the result into the range `[MIN_VALUE,
|
|
61
|
+
* MAX_VALUE]`.
|
|
62
|
+
*
|
|
63
|
+
* Unlike `asNonZeroUint16`, this is total: out-of-range inputs are clamped to
|
|
64
|
+
* the nearest representable `NonZeroUint16` instead of throwing.
|
|
64
65
|
*
|
|
65
|
-
* @param value The
|
|
66
|
-
* @returns The value
|
|
66
|
+
* @param value - The value to convert
|
|
67
|
+
* @returns The value as a `NonZeroUint16`
|
|
67
68
|
*/
|
|
68
|
-
|
|
69
|
+
fromNumber,
|
|
69
70
|
/**
|
|
70
|
-
* Generates a random NonZeroUint16
|
|
71
|
+
* Generates a random `NonZeroUint16` within the given range.
|
|
71
72
|
*
|
|
72
|
-
*
|
|
73
|
+
* The range is inclusive on both ends.
|
|
74
|
+
*
|
|
75
|
+
* @param min - The minimum value (inclusive)
|
|
76
|
+
* @param max - The maximum value (inclusive)
|
|
77
|
+
* @returns A random `NonZeroUint16` in `[min, max]`
|
|
73
78
|
*/
|
|
74
79
|
random,
|
|
75
80
|
/**
|
|
76
|
-
* Raises a
|
|
81
|
+
* Raises `a` to the power `b`, returning `a ** b` as a `NonZeroUint16`
|
|
82
|
+
* (floored to an integer).
|
|
77
83
|
*
|
|
78
|
-
* @param a The base
|
|
79
|
-
* @param b The exponent
|
|
80
|
-
* @returns `a ** b`
|
|
84
|
+
* @param a - The base non-zero integer
|
|
85
|
+
* @param b - The exponent non-zero integer
|
|
86
|
+
* @returns `a ** b` as a `NonZeroUint16`
|
|
81
87
|
*/
|
|
82
88
|
pow,
|
|
83
89
|
/**
|
|
84
|
-
* Adds two NonZeroUint16
|
|
90
|
+
* Adds two non-zero integers, returning `a + b` as a `NonZeroUint16`.
|
|
85
91
|
*
|
|
86
|
-
* @param a The first
|
|
87
|
-
* @param b The second
|
|
88
|
-
* @returns `a
|
|
92
|
+
* @param a - The first non-zero integer
|
|
93
|
+
* @param b - The second non-zero integer
|
|
94
|
+
* @returns The sum of `a` and `b` as a `NonZeroUint16`
|
|
89
95
|
*/
|
|
90
96
|
add,
|
|
91
97
|
/**
|
|
92
|
-
* Multiplies two NonZeroUint16
|
|
93
|
-
*
|
|
94
|
-
* Both `add` and `mul` stay within `[1, 65535]`. For the non-closed
|
|
95
|
-
* operations (`sub`/`div`, whose result may be `0`) use {@link Num.sub} /
|
|
96
|
-
* {@link Num.divInt}.
|
|
98
|
+
* Multiplies two non-zero integers, returning `a * b` as a `NonZeroUint16`.
|
|
97
99
|
*
|
|
98
|
-
* @param a The first
|
|
99
|
-
* @param b The second
|
|
100
|
-
* @returns `a
|
|
100
|
+
* @param a - The first non-zero integer
|
|
101
|
+
* @param b - The second non-zero integer
|
|
102
|
+
* @returns The product of `a` and `b` as a `NonZeroUint16`
|
|
101
103
|
*/
|
|
102
104
|
mul
|
|
103
105
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"non-zero-uint16.mjs","sources":["../../../src/number/branded-types/non-zero-uint16.mts"],"sourcesContent":["import { type NonZeroUint16 as TtfImported_NonZeroUint16 } from 'ts-type-forge';\nimport { expectType } from '../../expect-type.mjs';\nimport { TsDataForgeInternals } from '../refined-number-utils.mjs';\n\nexport type NonZeroUint16 = TtfImported_NonZeroUint16;\n\ntype ElementType = NonZeroUint16;\n\nconst typeNameInMessage = 'a non-zero integer in [1, 2^16)';\n\nconst {\n MAX_VALUE,\n MIN_VALUE,\n add,\n castType,\n
|
|
1
|
+
{"version":3,"file":"non-zero-uint16.mjs","sources":["../../../src/number/branded-types/non-zero-uint16.mts"],"sourcesContent":["import { type NonZeroUint16 as TtfImported_NonZeroUint16 } from 'ts-type-forge';\nimport { expectType } from '../../expect-type.mjs';\nimport { TsDataForgeInternals } from '../refined-number-utils.mjs';\n\nexport type NonZeroUint16 = TtfImported_NonZeroUint16;\n\ntype ElementType = NonZeroUint16;\n\nconst typeNameInMessage = 'a non-zero integer in [1, 2^16)';\n\nconst {\n MAX_VALUE,\n MIN_VALUE,\n add,\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 1,\n number\n>({\n integerOrSafeInteger: 'SafeInteger',\n nonZero: true,\n MIN_VALUE: 1,\n MAX_VALUE: 2 ** 16 - 1,\n typeNameInMessage,\n} as const);\n\n/**\n * Type guard that checks if a value is a non-zero integer in [1, 2^16).\n *\n * Returns `true` for a non-zero integer in [1, 2^16) — 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 [1, 2^16), `false` otherwise\n */\nexport const isNonZeroUint16 = is;\n\n/**\n * Casts a `number` to the `NonZeroUint16` branded type.\n *\n * Validates that the value is a non-zero integer in [1, 2^16) and returns it\n * with the `NonZeroUint16` brand. Throws a `TypeError` otherwise.\n *\n * @param value - The value to cast\n * @returns The value as a `NonZeroUint16`\n * @throws {TypeError} If the value is not a non-zero integer in [1, 2^16)\n */\nexport const asNonZeroUint16 = castType;\n\n/**\n * Namespace providing type-safe operations for the `NonZeroUint16` branded\n * type.\n *\n * The `NonZeroUint16` type represents a non-zero integer in [1, 2^16). Division\n * (`div`) uses floor division.\n */\nexport const NonZeroUint16 = {\n /**\n * Type guard that checks if a value is a non-zero integer in [1, 2^16).\n *\n * @param value - The value to check\n * @returns `true` if the value is a non-zero integer in [1, 2^16), `false` otherwise\n * @see {@link isNonZeroUint16} for usage examples\n */\n is,\n\n /**\n * The smallest value representable as `NonZeroUint16` (the lower saturation\n * target of `fromNumber`).\n */\n MIN_VALUE,\n\n /**\n * The largest value representable as `NonZeroUint16` (the upper saturation\n * target of `fromNumber`).\n */\n MAX_VALUE,\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 `NonZeroUint16`\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 `NonZeroUint16`\n */\n max: max_,\n\n /**\n * Converts an arbitrary `number` into a `NonZeroUint16`, rounding to the\n * nearest integer and saturating the result into the range `[MIN_VALUE,\n * MAX_VALUE]`.\n *\n * Unlike `asNonZeroUint16`, this is total: out-of-range inputs are clamped to\n * the nearest representable `NonZeroUint16` instead of throwing.\n *\n * @param value - The value to convert\n * @returns The value as a `NonZeroUint16`\n */\n fromNumber,\n\n /**\n * Generates a random `NonZeroUint16` 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 `NonZeroUint16` in `[min, max]`\n */\n random,\n\n /**\n * Raises `a` to the power `b`, returning `a ** b` as a `NonZeroUint16`\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 `NonZeroUint16`\n */\n pow,\n\n /**\n * Adds two non-zero integers, returning `a + b` as a `NonZeroUint16`.\n *\n * @param a - The first non-zero integer\n * @param b - The second non-zero integer\n * @returns The sum of `a` and `b` as a `NonZeroUint16`\n */\n add,\n\n /**\n * Multiplies two non-zero integers, returning `a * b` as a `NonZeroUint16`.\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 `NonZeroUint16`\n */\n mul,\n} as const;\n\nexpectType<\n keyof typeof NonZeroUint16,\n keyof TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'positive' | 'range',\n 'add' | 'mul'\n >\n>('=');\n\nexpectType<\n typeof NonZeroUint16,\n TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'positive' | 'range',\n 'add' | 'mul'\n >\n>('<=');\n"],"names":[],"mappings":";;AAQA,MAAM,iBAAA,GAAoB,iCAAA;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,CAAA;AAAA,EACX,SAAA,EAAW,KAAK,EAAA,GAAK,CAAA;AAAA,EACrB;AACF,CAAU,CAAA;AAWH,MAAM,eAAA,GAAkB;AAYxB,MAAM,eAAA,GAAkB;AASxB,MAAM,aAAA,GAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ3B,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,SAAA;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,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA;AACF;;;;"}
|
|
@@ -1,19 +1,24 @@
|
|
|
1
1
|
import { type NonZeroUint32 as TtfImported_NonZeroUint32 } from 'ts-type-forge';
|
|
2
2
|
export type NonZeroUint32 = TtfImported_NonZeroUint32;
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
5
|
-
* the range [1, 2^32)).
|
|
4
|
+
* Type guard that checks if a value is a non-zero integer in [1, 2^32).
|
|
6
5
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
6
|
+
* Returns `true` for a non-zero integer in [1, 2^32) — 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 [1, 2^32), `false` otherwise
|
|
9
11
|
*/
|
|
10
12
|
export declare const isNonZeroUint32: (a: number) => a is import("ts-type-forge").PositiveUint32;
|
|
11
13
|
/**
|
|
12
|
-
* Casts a number to
|
|
14
|
+
* Casts a `number` to the `NonZeroUint32` branded type.
|
|
15
|
+
*
|
|
16
|
+
* Validates that the value is a non-zero integer in [1, 2^32) and returns it
|
|
17
|
+
* with the `NonZeroUint32` brand. Throws a `TypeError` otherwise.
|
|
13
18
|
*
|
|
14
|
-
* @param value The value to cast
|
|
15
|
-
* @returns The value as a NonZeroUint32
|
|
16
|
-
* @throws {TypeError} If the value is not a non-zero integer in [1, 2^32)
|
|
19
|
+
* @param value - The value to cast
|
|
20
|
+
* @returns The value as a `NonZeroUint32`
|
|
21
|
+
* @throws {TypeError} If the value is not a non-zero integer in [1, 2^32)
|
|
17
22
|
*/
|
|
18
23
|
export declare const asNonZeroUint32: <N extends number>(x: N) => number & {
|
|
19
24
|
readonly "!=0": true;
|
|
@@ -32,90 +37,90 @@ export declare const asNonZeroUint32: <N extends number>(x: N) => number & {
|
|
|
32
37
|
'TSTypeForgeInternals--edd2f9ce-7ca5-45b0-9d1a-bd61b9b5d9c3': unknown;
|
|
33
38
|
}> & N;
|
|
34
39
|
/**
|
|
35
|
-
* Namespace providing type-safe
|
|
36
|
-
*
|
|
40
|
+
* Namespace providing type-safe operations for the `NonZeroUint32` branded
|
|
41
|
+
* type.
|
|
37
42
|
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
* non-zero unsigned integer constraint, with results below 1 clamped to
|
|
41
|
-
* MIN_VALUE and overflow results clamped to MAX_VALUE.
|
|
43
|
+
* The `NonZeroUint32` type represents a non-zero integer in [1, 2^32). Division
|
|
44
|
+
* (`div`) uses floor division.
|
|
42
45
|
*/
|
|
43
46
|
export declare const NonZeroUint32: {
|
|
44
47
|
/**
|
|
45
|
-
* Type guard
|
|
48
|
+
* Type guard that checks if a value is a non-zero integer in [1, 2^32).
|
|
46
49
|
*
|
|
47
|
-
* @param value The value to check
|
|
48
|
-
* @returns `true` if the value is a
|
|
49
|
-
*
|
|
50
|
+
* @param value - The value to check
|
|
51
|
+
* @returns `true` if the value is a non-zero integer in [1, 2^32), `false` otherwise
|
|
52
|
+
* @see {@link isNonZeroUint32} for usage examples
|
|
50
53
|
*/
|
|
51
54
|
readonly is: (a: number) => a is import("ts-type-forge").PositiveUint32;
|
|
52
55
|
/**
|
|
53
|
-
* The
|
|
54
|
-
*
|
|
55
|
-
* @readonly
|
|
56
|
+
* The smallest value representable as `NonZeroUint32` (the lower saturation
|
|
57
|
+
* target of `fromNumber`).
|
|
56
58
|
*/
|
|
57
59
|
readonly MIN_VALUE: 1;
|
|
58
60
|
/**
|
|
59
|
-
* The
|
|
60
|
-
*
|
|
61
|
-
* @readonly
|
|
61
|
+
* The largest value representable as `NonZeroUint32` (the upper saturation
|
|
62
|
+
* target of `fromNumber`).
|
|
62
63
|
*/
|
|
63
64
|
readonly MAX_VALUE: number;
|
|
64
65
|
/**
|
|
65
|
-
* Returns the
|
|
66
|
+
* Returns the smallest of the given non-zero integers.
|
|
66
67
|
*
|
|
67
|
-
* @param
|
|
68
|
-
* @
|
|
69
|
-
* @returns The minimum value as a NonZeroUint32.
|
|
68
|
+
* @param values - The non-zero integers to compare (at least one required)
|
|
69
|
+
* @returns The smallest value as a `NonZeroUint32`
|
|
70
70
|
*/
|
|
71
71
|
readonly min: (...values: readonly import("ts-type-forge").WithSmallInt<import("ts-type-forge").PositiveUint32>[]) => import("ts-type-forge").PositiveUint32;
|
|
72
72
|
/**
|
|
73
|
-
* Returns the
|
|
73
|
+
* Returns the largest of the given non-zero integers.
|
|
74
74
|
*
|
|
75
|
-
* @param
|
|
76
|
-
* @
|
|
77
|
-
* @returns The maximum value as a NonZeroUint32.
|
|
75
|
+
* @param values - The non-zero integers to compare (at least one required)
|
|
76
|
+
* @returns The largest value as a `NonZeroUint32`
|
|
78
77
|
*/
|
|
79
78
|
readonly max: (...values: readonly import("ts-type-forge").WithSmallInt<import("ts-type-forge").PositiveUint32>[]) => import("ts-type-forge").PositiveUint32;
|
|
80
79
|
/**
|
|
81
|
-
*
|
|
80
|
+
* Converts an arbitrary `number` into a `NonZeroUint32`, rounding to the
|
|
81
|
+
* nearest integer and saturating the result into the range `[MIN_VALUE,
|
|
82
|
+
* MAX_VALUE]`.
|
|
82
83
|
*
|
|
83
|
-
*
|
|
84
|
-
*
|
|
84
|
+
* Unlike `asNonZeroUint32`, this is total: out-of-range inputs are clamped to
|
|
85
|
+
* the nearest representable `NonZeroUint32` instead of throwing.
|
|
86
|
+
*
|
|
87
|
+
* @param value - The value to convert
|
|
88
|
+
* @returns The value as a `NonZeroUint32`
|
|
85
89
|
*/
|
|
86
|
-
readonly
|
|
90
|
+
readonly fromNumber: (x: number) => import("ts-type-forge").PositiveUint32;
|
|
87
91
|
/**
|
|
88
|
-
* Generates a random NonZeroUint32
|
|
92
|
+
* Generates a random `NonZeroUint32` within the given range.
|
|
93
|
+
*
|
|
94
|
+
* The range is inclusive on both ends.
|
|
89
95
|
*
|
|
90
|
-
* @
|
|
96
|
+
* @param min - The minimum value (inclusive)
|
|
97
|
+
* @param max - The maximum value (inclusive)
|
|
98
|
+
* @returns A random `NonZeroUint32` in `[min, max]`
|
|
91
99
|
*/
|
|
92
100
|
readonly random: (min?: import("ts-type-forge").WithSmallInt<import("ts-type-forge").PositiveUint32> | undefined, max?: import("ts-type-forge").WithSmallInt<import("ts-type-forge").PositiveUint32> | undefined) => import("ts-type-forge").PositiveUint32;
|
|
93
101
|
/**
|
|
94
|
-
* Raises a
|
|
102
|
+
* Raises `a` to the power `b`, returning `a ** b` as a `NonZeroUint32`
|
|
103
|
+
* (floored to an integer).
|
|
95
104
|
*
|
|
96
|
-
* @param a The base
|
|
97
|
-
* @param b The exponent
|
|
98
|
-
* @returns `a ** b`
|
|
105
|
+
* @param a - The base non-zero integer
|
|
106
|
+
* @param b - The exponent non-zero integer
|
|
107
|
+
* @returns `a ** b` as a `NonZeroUint32`
|
|
99
108
|
*/
|
|
100
109
|
readonly pow: (x: import("ts-type-forge").WithSmallInt<import("ts-type-forge").PositiveUint32>, y: import("ts-type-forge").WithSmallInt<import("ts-type-forge").PositiveUint32>) => import("ts-type-forge").PositiveUint32;
|
|
101
110
|
/**
|
|
102
|
-
* Adds two NonZeroUint32
|
|
111
|
+
* Adds two non-zero integers, returning `a + b` as a `NonZeroUint32`.
|
|
103
112
|
*
|
|
104
|
-
* @param a The first
|
|
105
|
-
* @param b The second
|
|
106
|
-
* @returns `a
|
|
113
|
+
* @param a - The first non-zero integer
|
|
114
|
+
* @param b - The second non-zero integer
|
|
115
|
+
* @returns The sum of `a` and `b` as a `NonZeroUint32`
|
|
107
116
|
*/
|
|
108
117
|
readonly add: (x: import("ts-type-forge").WithSmallInt<import("ts-type-forge").PositiveUint32>, y: import("ts-type-forge").WithSmallInt<import("ts-type-forge").PositiveUint32>) => import("ts-type-forge").PositiveUint32;
|
|
109
118
|
/**
|
|
110
|
-
* Multiplies two NonZeroUint32
|
|
111
|
-
*
|
|
112
|
-
* Both `add` and `mul` stay within `[1, 4294967295]`. For the non-closed
|
|
113
|
-
* operations (`sub`/`div`, whose result may be `0`) use {@link Num.sub} /
|
|
114
|
-
* {@link Num.divInt}.
|
|
119
|
+
* Multiplies two non-zero integers, returning `a * b` as a `NonZeroUint32`.
|
|
115
120
|
*
|
|
116
|
-
* @param a The first
|
|
117
|
-
* @param b The second
|
|
118
|
-
* @returns `a
|
|
121
|
+
* @param a - The first non-zero integer
|
|
122
|
+
* @param b - The second non-zero integer
|
|
123
|
+
* @returns The product of `a` and `b` as a `NonZeroUint32`
|
|
119
124
|
*/
|
|
120
125
|
readonly mul: (x: import("ts-type-forge").WithSmallInt<import("ts-type-forge").PositiveUint32>, y: import("ts-type-forge").WithSmallInt<import("ts-type-forge").PositiveUint32>) => import("ts-type-forge").PositiveUint32;
|
|
121
126
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"non-zero-uint32.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/non-zero-uint32.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,IAAI,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAIhF,MAAM,MAAM,aAAa,GAAG,yBAAyB,CAAC;AA8BtD
|
|
1
|
+
{"version":3,"file":"non-zero-uint32.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/non-zero-uint32.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,IAAI,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAIhF,MAAM,MAAM,aAAa,GAAG,yBAAyB,CAAC;AA8BtD;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,4DAAK,CAAC;AAElC;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;MAAW,CAAC;AAExC;;;;;;GAMG;AACH,eAAO,MAAM,aAAa;IACxB;;;;;;OAMG;;IAGH;;;OAGG;;IAGH;;;OAGG;;IAGH;;;;;OAKG;;IAGH;;;;;OAKG;;IAGH;;;;;;;;;;OAUG;;IAGH;;;;;;;;OAQG;;IAGH;;;;;;;OAOG;;IAGH;;;;;;OAMG;;IAGH;;;;;;OAMG;;CAEK,CAAC"}
|
|
@@ -6,7 +6,7 @@ const {
|
|
|
6
6
|
MIN_VALUE,
|
|
7
7
|
add,
|
|
8
8
|
castType,
|
|
9
|
-
|
|
9
|
+
fromNumber,
|
|
10
10
|
is,
|
|
11
11
|
max: max_,
|
|
12
12
|
min: min_,
|
|
@@ -24,80 +24,82 @@ const isNonZeroUint32 = is;
|
|
|
24
24
|
const asNonZeroUint32 = castType;
|
|
25
25
|
const NonZeroUint32 = {
|
|
26
26
|
/**
|
|
27
|
-
* Type guard
|
|
27
|
+
* Type guard that checks if a value is a non-zero integer in [1, 2^32).
|
|
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 [1, 2^32), `false` otherwise
|
|
31
|
+
* @see {@link isNonZeroUint32} for usage examples
|
|
32
32
|
*/
|
|
33
33
|
is,
|
|
34
34
|
/**
|
|
35
|
-
* The
|
|
36
|
-
*
|
|
37
|
-
* @readonly
|
|
35
|
+
* The smallest value representable as `NonZeroUint32` (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 `NonZeroUint32` (the upper saturation
|
|
41
|
+
* target of `fromNumber`).
|
|
44
42
|
*/
|
|
45
43
|
MAX_VALUE,
|
|
46
44
|
/**
|
|
47
|
-
* Returns the
|
|
45
|
+
* Returns the smallest of the given non-zero integers.
|
|
48
46
|
*
|
|
49
|
-
* @param
|
|
50
|
-
* @
|
|
51
|
-
* @returns The minimum value as a NonZeroUint32.
|
|
47
|
+
* @param values - The non-zero integers to compare (at least one required)
|
|
48
|
+
* @returns The smallest value as a `NonZeroUint32`
|
|
52
49
|
*/
|
|
53
50
|
min: min_,
|
|
54
51
|
/**
|
|
55
|
-
* Returns the
|
|
52
|
+
* Returns the largest of the given non-zero integers.
|
|
56
53
|
*
|
|
57
|
-
* @param
|
|
58
|
-
* @
|
|
59
|
-
* @returns The maximum value as a NonZeroUint32.
|
|
54
|
+
* @param values - The non-zero integers to compare (at least one required)
|
|
55
|
+
* @returns The largest value as a `NonZeroUint32`
|
|
60
56
|
*/
|
|
61
57
|
max: max_,
|
|
62
58
|
/**
|
|
63
|
-
*
|
|
59
|
+
* Converts an arbitrary `number` into a `NonZeroUint32`, rounding to the
|
|
60
|
+
* nearest integer and saturating the result into the range `[MIN_VALUE,
|
|
61
|
+
* MAX_VALUE]`.
|
|
62
|
+
*
|
|
63
|
+
* Unlike `asNonZeroUint32`, this is total: out-of-range inputs are clamped to
|
|
64
|
+
* the nearest representable `NonZeroUint32` instead of throwing.
|
|
64
65
|
*
|
|
65
|
-
* @param value The
|
|
66
|
-
* @returns The value
|
|
66
|
+
* @param value - The value to convert
|
|
67
|
+
* @returns The value as a `NonZeroUint32`
|
|
67
68
|
*/
|
|
68
|
-
|
|
69
|
+
fromNumber,
|
|
69
70
|
/**
|
|
70
|
-
* Generates a random NonZeroUint32
|
|
71
|
+
* Generates a random `NonZeroUint32` within the given range.
|
|
71
72
|
*
|
|
72
|
-
*
|
|
73
|
+
* The range is inclusive on both ends.
|
|
74
|
+
*
|
|
75
|
+
* @param min - The minimum value (inclusive)
|
|
76
|
+
* @param max - The maximum value (inclusive)
|
|
77
|
+
* @returns A random `NonZeroUint32` in `[min, max]`
|
|
73
78
|
*/
|
|
74
79
|
random,
|
|
75
80
|
/**
|
|
76
|
-
* Raises a
|
|
81
|
+
* Raises `a` to the power `b`, returning `a ** b` as a `NonZeroUint32`
|
|
82
|
+
* (floored to an integer).
|
|
77
83
|
*
|
|
78
|
-
* @param a The base
|
|
79
|
-
* @param b The exponent
|
|
80
|
-
* @returns `a ** b`
|
|
84
|
+
* @param a - The base non-zero integer
|
|
85
|
+
* @param b - The exponent non-zero integer
|
|
86
|
+
* @returns `a ** b` as a `NonZeroUint32`
|
|
81
87
|
*/
|
|
82
88
|
pow,
|
|
83
89
|
/**
|
|
84
|
-
* Adds two NonZeroUint32
|
|
90
|
+
* Adds two non-zero integers, returning `a + b` as a `NonZeroUint32`.
|
|
85
91
|
*
|
|
86
|
-
* @param a The first
|
|
87
|
-
* @param b The second
|
|
88
|
-
* @returns `a
|
|
92
|
+
* @param a - The first non-zero integer
|
|
93
|
+
* @param b - The second non-zero integer
|
|
94
|
+
* @returns The sum of `a` and `b` as a `NonZeroUint32`
|
|
89
95
|
*/
|
|
90
96
|
add,
|
|
91
97
|
/**
|
|
92
|
-
* Multiplies two NonZeroUint32
|
|
93
|
-
*
|
|
94
|
-
* Both `add` and `mul` stay within `[1, 4294967295]`. For the non-closed
|
|
95
|
-
* operations (`sub`/`div`, whose result may be `0`) use {@link Num.sub} /
|
|
96
|
-
* {@link Num.divInt}.
|
|
98
|
+
* Multiplies two non-zero integers, returning `a * b` as a `NonZeroUint32`.
|
|
97
99
|
*
|
|
98
|
-
* @param a The first
|
|
99
|
-
* @param b The second
|
|
100
|
-
* @returns `a
|
|
100
|
+
* @param a - The first non-zero integer
|
|
101
|
+
* @param b - The second non-zero integer
|
|
102
|
+
* @returns The product of `a` and `b` as a `NonZeroUint32`
|
|
101
103
|
*/
|
|
102
104
|
mul
|
|
103
105
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"non-zero-uint32.mjs","sources":["../../../src/number/branded-types/non-zero-uint32.mts"],"sourcesContent":["import { type NonZeroUint32 as TtfImported_NonZeroUint32 } from 'ts-type-forge';\nimport { expectType } from '../../expect-type.mjs';\nimport { TsDataForgeInternals } from '../refined-number-utils.mjs';\n\nexport type NonZeroUint32 = TtfImported_NonZeroUint32;\n\ntype ElementType = NonZeroUint32;\n\nconst typeNameInMessage = 'a non-zero integer in [1, 2^32)';\n\nconst {\n MAX_VALUE,\n MIN_VALUE,\n add,\n castType,\n
|
|
1
|
+
{"version":3,"file":"non-zero-uint32.mjs","sources":["../../../src/number/branded-types/non-zero-uint32.mts"],"sourcesContent":["import { type NonZeroUint32 as TtfImported_NonZeroUint32 } from 'ts-type-forge';\nimport { expectType } from '../../expect-type.mjs';\nimport { TsDataForgeInternals } from '../refined-number-utils.mjs';\n\nexport type NonZeroUint32 = TtfImported_NonZeroUint32;\n\ntype ElementType = NonZeroUint32;\n\nconst typeNameInMessage = 'a non-zero integer in [1, 2^32)';\n\nconst {\n MAX_VALUE,\n MIN_VALUE,\n add,\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 1,\n number\n>({\n integerOrSafeInteger: 'SafeInteger',\n nonZero: true,\n MIN_VALUE: 1,\n MAX_VALUE: 2 ** 32 - 1,\n typeNameInMessage,\n} as const);\n\n/**\n * Type guard that checks if a value is a non-zero integer in [1, 2^32).\n *\n * Returns `true` for a non-zero integer in [1, 2^32) — 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 [1, 2^32), `false` otherwise\n */\nexport const isNonZeroUint32 = is;\n\n/**\n * Casts a `number` to the `NonZeroUint32` branded type.\n *\n * Validates that the value is a non-zero integer in [1, 2^32) and returns it\n * with the `NonZeroUint32` brand. Throws a `TypeError` otherwise.\n *\n * @param value - The value to cast\n * @returns The value as a `NonZeroUint32`\n * @throws {TypeError} If the value is not a non-zero integer in [1, 2^32)\n */\nexport const asNonZeroUint32 = castType;\n\n/**\n * Namespace providing type-safe operations for the `NonZeroUint32` branded\n * type.\n *\n * The `NonZeroUint32` type represents a non-zero integer in [1, 2^32). Division\n * (`div`) uses floor division.\n */\nexport const NonZeroUint32 = {\n /**\n * Type guard that checks if a value is a non-zero integer in [1, 2^32).\n *\n * @param value - The value to check\n * @returns `true` if the value is a non-zero integer in [1, 2^32), `false` otherwise\n * @see {@link isNonZeroUint32} for usage examples\n */\n is,\n\n /**\n * The smallest value representable as `NonZeroUint32` (the lower saturation\n * target of `fromNumber`).\n */\n MIN_VALUE,\n\n /**\n * The largest value representable as `NonZeroUint32` (the upper saturation\n * target of `fromNumber`).\n */\n MAX_VALUE,\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 `NonZeroUint32`\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 `NonZeroUint32`\n */\n max: max_,\n\n /**\n * Converts an arbitrary `number` into a `NonZeroUint32`, rounding to the\n * nearest integer and saturating the result into the range `[MIN_VALUE,\n * MAX_VALUE]`.\n *\n * Unlike `asNonZeroUint32`, this is total: out-of-range inputs are clamped to\n * the nearest representable `NonZeroUint32` instead of throwing.\n *\n * @param value - The value to convert\n * @returns The value as a `NonZeroUint32`\n */\n fromNumber,\n\n /**\n * Generates a random `NonZeroUint32` 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 `NonZeroUint32` in `[min, max]`\n */\n random,\n\n /**\n * Raises `a` to the power `b`, returning `a ** b` as a `NonZeroUint32`\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 `NonZeroUint32`\n */\n pow,\n\n /**\n * Adds two non-zero integers, returning `a + b` as a `NonZeroUint32`.\n *\n * @param a - The first non-zero integer\n * @param b - The second non-zero integer\n * @returns The sum of `a` and `b` as a `NonZeroUint32`\n */\n add,\n\n /**\n * Multiplies two non-zero integers, returning `a * b` as a `NonZeroUint32`.\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 `NonZeroUint32`\n */\n mul,\n} as const;\n\nexpectType<\n keyof typeof NonZeroUint32,\n keyof TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'positive' | 'range',\n 'add' | 'mul'\n >\n>('=');\n\nexpectType<\n typeof NonZeroUint32,\n TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'positive' | 'range',\n 'add' | 'mul'\n >\n>('<=');\n"],"names":[],"mappings":";;AAQA,MAAM,iBAAA,GAAoB,iCAAA;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,CAAA;AAAA,EACX,SAAA,EAAW,KAAK,EAAA,GAAK,CAAA;AAAA,EACrB;AACF,CAAU,CAAA;AAWH,MAAM,eAAA,GAAkB;AAYxB,MAAM,eAAA,GAAkB;AASxB,MAAM,aAAA,GAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ3B,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,SAAA;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,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA;AACF;;;;"}
|