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,8 +6,8 @@ const {
|
|
|
6
6
|
MIN_VALUE,
|
|
7
7
|
add,
|
|
8
8
|
castType,
|
|
9
|
-
clamp,
|
|
10
9
|
div,
|
|
10
|
+
fromNumber,
|
|
11
11
|
is,
|
|
12
12
|
max: max_,
|
|
13
13
|
min: min_,
|
|
@@ -25,92 +25,99 @@ const isPositiveInt32 = is;
|
|
|
25
25
|
const asPositiveInt32 = castType;
|
|
26
26
|
const PositiveInt32 = {
|
|
27
27
|
/**
|
|
28
|
-
* Type guard
|
|
28
|
+
* Type guard that checks if a value is a positive integer in [1, 2^31).
|
|
29
29
|
*
|
|
30
|
-
* @param value The value to check
|
|
31
|
-
* @returns `true` if the value is a
|
|
32
|
-
*
|
|
30
|
+
* @param value - The value to check
|
|
31
|
+
* @returns `true` if the value is a positive integer in [1, 2^31), `false` otherwise
|
|
32
|
+
* @see {@link isPositiveInt32} for usage examples
|
|
33
33
|
*/
|
|
34
34
|
is,
|
|
35
35
|
/**
|
|
36
|
-
* The
|
|
37
|
-
*
|
|
38
|
-
* @readonly
|
|
36
|
+
* The smallest value representable as `PositiveInt32` (the lower saturation
|
|
37
|
+
* target of `fromNumber`).
|
|
39
38
|
*/
|
|
40
39
|
MIN_VALUE,
|
|
41
40
|
/**
|
|
42
|
-
* The
|
|
43
|
-
*
|
|
44
|
-
* @readonly
|
|
41
|
+
* The largest value representable as `PositiveInt32` (the upper saturation
|
|
42
|
+
* target of `fromNumber`).
|
|
45
43
|
*/
|
|
46
44
|
MAX_VALUE,
|
|
47
45
|
/**
|
|
48
|
-
* Returns the
|
|
46
|
+
* Returns the smallest of the given positive integers.
|
|
49
47
|
*
|
|
50
|
-
* @param
|
|
51
|
-
* @
|
|
52
|
-
* @returns The minimum value as a PositiveInt32.
|
|
48
|
+
* @param values - The positive integers to compare (at least one required)
|
|
49
|
+
* @returns The smallest value as a `PositiveInt32`
|
|
53
50
|
*/
|
|
54
51
|
min: min_,
|
|
55
52
|
/**
|
|
56
|
-
* Returns the
|
|
53
|
+
* Returns the largest of the given positive integers.
|
|
57
54
|
*
|
|
58
|
-
* @param
|
|
59
|
-
* @
|
|
60
|
-
* @returns The maximum value as a PositiveInt32.
|
|
55
|
+
* @param values - The positive integers to compare (at least one required)
|
|
56
|
+
* @returns The largest value as a `PositiveInt32`
|
|
61
57
|
*/
|
|
62
58
|
max: max_,
|
|
63
59
|
/**
|
|
64
|
-
*
|
|
60
|
+
* Converts an arbitrary `number` into a `PositiveInt32`, rounding to the
|
|
61
|
+
* nearest integer and saturating the result into the range `[MIN_VALUE,
|
|
62
|
+
* MAX_VALUE]`.
|
|
65
63
|
*
|
|
66
|
-
*
|
|
67
|
-
*
|
|
64
|
+
* Unlike `asPositiveInt32`, this is total: out-of-range inputs are clamped to
|
|
65
|
+
* the nearest representable `PositiveInt32` instead of throwing.
|
|
66
|
+
*
|
|
67
|
+
* @param value - The value to convert
|
|
68
|
+
* @returns The value as a `PositiveInt32`
|
|
68
69
|
*/
|
|
69
|
-
|
|
70
|
+
fromNumber,
|
|
70
71
|
/**
|
|
71
|
-
* Generates a random PositiveInt32
|
|
72
|
+
* Generates a random `PositiveInt32` within the given range.
|
|
73
|
+
*
|
|
74
|
+
* The range is inclusive on both ends.
|
|
72
75
|
*
|
|
73
|
-
* @
|
|
76
|
+
* @param min - The minimum value (inclusive)
|
|
77
|
+
* @param max - The maximum value (inclusive)
|
|
78
|
+
* @returns A random `PositiveInt32` in `[min, max]`
|
|
74
79
|
*/
|
|
75
80
|
random,
|
|
76
81
|
/**
|
|
77
|
-
* Raises a
|
|
82
|
+
* Raises `a` to the power `b`, returning `a ** b` as a `PositiveInt32`
|
|
83
|
+
* (floored to an integer).
|
|
78
84
|
*
|
|
79
|
-
* @param a The base
|
|
80
|
-
* @param b The exponent
|
|
81
|
-
* @returns `a ** b`
|
|
85
|
+
* @param a - The base positive integer
|
|
86
|
+
* @param b - The exponent positive integer
|
|
87
|
+
* @returns `a ** b` as a `PositiveInt32`
|
|
82
88
|
*/
|
|
83
89
|
pow,
|
|
84
90
|
/**
|
|
85
|
-
* Adds two PositiveInt32
|
|
91
|
+
* Adds two positive integers, returning `a + b` as a `PositiveInt32`.
|
|
86
92
|
*
|
|
87
|
-
* @param a The first
|
|
88
|
-
* @param b The second
|
|
89
|
-
* @returns `a
|
|
93
|
+
* @param a - The first positive integer
|
|
94
|
+
* @param b - The second positive integer
|
|
95
|
+
* @returns The sum of `a` and `b` as a `PositiveInt32`
|
|
90
96
|
*/
|
|
91
97
|
add,
|
|
92
98
|
/**
|
|
93
|
-
* Subtracts
|
|
99
|
+
* Subtracts two positive integers, returning `a - b` as a `PositiveInt32`.
|
|
94
100
|
*
|
|
95
|
-
* @param a The
|
|
96
|
-
* @param b The
|
|
97
|
-
* @returns `a
|
|
101
|
+
* @param a - The first positive integer
|
|
102
|
+
* @param b - The second positive integer
|
|
103
|
+
* @returns The difference of `a` and `b` as a `PositiveInt32`
|
|
98
104
|
*/
|
|
99
105
|
sub,
|
|
100
106
|
/**
|
|
101
|
-
* Multiplies two PositiveInt32
|
|
107
|
+
* Multiplies two positive integers, returning `a * b` as a `PositiveInt32`.
|
|
102
108
|
*
|
|
103
|
-
* @param a The first
|
|
104
|
-
* @param b The second
|
|
105
|
-
* @returns `a
|
|
109
|
+
* @param a - The first positive integer
|
|
110
|
+
* @param b - The second positive integer
|
|
111
|
+
* @returns The product of `a` and `b` as a `PositiveInt32`
|
|
106
112
|
*/
|
|
107
113
|
mul,
|
|
108
114
|
/**
|
|
109
|
-
* Divides
|
|
115
|
+
* Divides two positive integers using floor division (`⌊a / b⌋`): the result
|
|
116
|
+
* is `a / b` rounded toward negative infinity, as a `PositiveInt32`.
|
|
110
117
|
*
|
|
111
|
-
* @param a The dividend
|
|
112
|
-
* @param b The divisor
|
|
113
|
-
* @returns
|
|
118
|
+
* @param a - The dividend
|
|
119
|
+
* @param b - The divisor (must be non-zero)
|
|
120
|
+
* @returns The floored quotient as a `PositiveInt32`
|
|
114
121
|
*/
|
|
115
122
|
div
|
|
116
123
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"positive-int32.mjs","sources":["../../../src/number/branded-types/positive-int32.mts"],"sourcesContent":["import { type PositiveInt32 as TtfImported_PositiveInt32 } from 'ts-type-forge';\nimport { expectType } from '../../expect-type.mjs';\nimport { TsDataForgeInternals } from '../refined-number-utils.mjs';\n\nexport type PositiveInt32 = TtfImported_PositiveInt32;\n\ntype ElementType = PositiveInt32;\n\nconst typeNameInMessage = 'a positive integer in [1, 2^31)';\n\nconst {\n MAX_VALUE,\n MIN_VALUE,\n add,\n castType,\n
|
|
1
|
+
{"version":3,"file":"positive-int32.mjs","sources":["../../../src/number/branded-types/positive-int32.mts"],"sourcesContent":["import { type PositiveInt32 as TtfImported_PositiveInt32 } from 'ts-type-forge';\nimport { expectType } from '../../expect-type.mjs';\nimport { TsDataForgeInternals } from '../refined-number-utils.mjs';\n\nexport type PositiveInt32 = TtfImported_PositiveInt32;\n\ntype ElementType = PositiveInt32;\n\nconst typeNameInMessage = 'a positive integer in [1, 2^31)';\n\nconst {\n MAX_VALUE,\n MIN_VALUE,\n add,\n castType,\n div,\n fromNumber,\n is,\n max: max_,\n min: min_,\n mul,\n pow,\n random,\n sub,\n} = TsDataForgeInternals.RefinedNumberUtils.operatorsForInteger<\n ElementType,\n 1,\n number\n>({\n integerOrSafeInteger: 'SafeInteger',\n MIN_VALUE: 1,\n MAX_VALUE: 2 ** 31 - 1,\n typeNameInMessage,\n} as const);\n\n/**\n * Type guard that checks if a value is a positive integer in [1, 2^31).\n *\n * Returns `true` for a positive integer in [1, 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 positive integer in [1, 2^31), `false` otherwise\n */\nexport const isPositiveInt32 = is;\n\n/**\n * Casts a `number` to the `PositiveInt32` branded type.\n *\n * Validates that the value is a positive integer in [1, 2^31) and returns it\n * with the `PositiveInt32` brand. Throws a `TypeError` otherwise.\n *\n * @param value - The value to cast\n * @returns The value as a `PositiveInt32`\n * @throws {TypeError} If the value is not a positive integer in [1, 2^31)\n */\nexport const asPositiveInt32 = castType;\n\n/**\n * Namespace providing type-safe operations for the `PositiveInt32` branded\n * type.\n *\n * The `PositiveInt32` type represents a positive integer in [1, 2^31). Division\n * (`div`) uses floor division.\n */\nexport const PositiveInt32 = {\n /**\n * Type guard that checks if a value is a positive integer in [1, 2^31).\n *\n * @param value - The value to check\n * @returns `true` if the value is a positive integer in [1, 2^31), `false` otherwise\n * @see {@link isPositiveInt32} for usage examples\n */\n is,\n\n /**\n * The smallest value representable as `PositiveInt32` (the lower saturation\n * target of `fromNumber`).\n */\n MIN_VALUE,\n\n /**\n * The largest value representable as `PositiveInt32` (the upper saturation\n * target of `fromNumber`).\n */\n MAX_VALUE,\n\n /**\n * Returns the smallest of the given positive integers.\n *\n * @param values - The positive integers to compare (at least one required)\n * @returns The smallest value as a `PositiveInt32`\n */\n min: min_,\n\n /**\n * Returns the largest of the given positive integers.\n *\n * @param values - The positive integers to compare (at least one required)\n * @returns The largest value as a `PositiveInt32`\n */\n max: max_,\n\n /**\n * Converts an arbitrary `number` into a `PositiveInt32`, rounding to the\n * nearest integer and saturating the result into the range `[MIN_VALUE,\n * MAX_VALUE]`.\n *\n * Unlike `asPositiveInt32`, this is total: out-of-range inputs are clamped to\n * the nearest representable `PositiveInt32` instead of throwing.\n *\n * @param value - The value to convert\n * @returns The value as a `PositiveInt32`\n */\n fromNumber,\n\n /**\n * Generates a random `PositiveInt32` 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 `PositiveInt32` in `[min, max]`\n */\n random,\n\n /**\n * Raises `a` to the power `b`, returning `a ** b` as a `PositiveInt32`\n * (floored to an integer).\n *\n * @param a - The base positive integer\n * @param b - The exponent positive integer\n * @returns `a ** b` as a `PositiveInt32`\n */\n pow,\n\n /**\n * Adds two positive integers, returning `a + b` as a `PositiveInt32`.\n *\n * @param a - The first positive integer\n * @param b - The second positive integer\n * @returns The sum of `a` and `b` as a `PositiveInt32`\n */\n add,\n\n /**\n * Subtracts two positive integers, returning `a - b` as a `PositiveInt32`.\n *\n * @param a - The first positive integer\n * @param b - The second positive integer\n * @returns The difference of `a` and `b` as a `PositiveInt32`\n */\n sub,\n\n /**\n * Multiplies two positive integers, returning `a * b` as a `PositiveInt32`.\n *\n * @param a - The first positive integer\n * @param b - The second positive integer\n * @returns The product of `a` and `b` as a `PositiveInt32`\n */\n mul,\n\n /**\n * Divides two positive integers using floor division (`⌊a / b⌋`): the result\n * is `a / b` rounded toward negative infinity, as a `PositiveInt32`.\n *\n * @param a - The dividend\n * @param b - The divisor (must be non-zero)\n * @returns The floored quotient as a `PositiveInt32`\n */\n div,\n} as const;\n\nexpectType<\n keyof typeof PositiveInt32,\n keyof TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'positive' | 'range'\n >\n>('=');\n\nexpectType<\n typeof PositiveInt32,\n TsDataForgeInternals.RefinedNumberUtils.NumberClass<\n ElementType,\n 'int' | 'positive' | 'range'\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,GAAA;AAAA,EACA,UAAA;AAAA,EACA,EAAA;AAAA,EACA,GAAA,EAAK,IAAA;AAAA,EACL,GAAA,EAAK,IAAA;AAAA,EACL,GAAA;AAAA,EACA,GAAA;AAAA,EACA,MAAA;AAAA,EACA;AACF,CAAA,GAAI,oBAAA,CAAqB,mBAAmB,mBAAA,CAI1C;AAAA,EACA,oBAAA,EAAsB,aAAA;AAAA,EACtB,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,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA;AACF;;;;"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { type SafeUint, type PositiveSafeInt as TtfImported_PositiveSafeInt } from 'ts-type-forge';
|
|
2
2
|
export type PositiveSafeInt = TtfImported_PositiveSafeInt;
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* Type guard that checks if a value is a positive safe integer.
|
|
5
|
+
*
|
|
6
|
+
* Returns `true` for a positive safe integer — a value with no fractional
|
|
7
|
+
* component.
|
|
6
8
|
*
|
|
7
9
|
* @example
|
|
8
10
|
*
|
|
@@ -16,12 +18,15 @@ export type PositiveSafeInt = TtfImported_PositiveSafeInt;
|
|
|
16
18
|
* assert.isTrue(PositiveSafeInt.is(42));
|
|
17
19
|
* ```
|
|
18
20
|
*
|
|
19
|
-
* @param value The value to check
|
|
20
|
-
* @returns `true` if the value is a
|
|
21
|
+
* @param value - The value to check
|
|
22
|
+
* @returns `true` if the value is a positive safe integer, `false` otherwise
|
|
21
23
|
*/
|
|
22
24
|
export declare const isPositiveSafeInt: (a: number) => a is TtfImported_PositiveSafeInt;
|
|
23
25
|
/**
|
|
24
|
-
* Casts a number to
|
|
26
|
+
* Casts a `number` to the `PositiveSafeInt` branded type.
|
|
27
|
+
*
|
|
28
|
+
* Validates that the value is a positive safe integer and returns it with the
|
|
29
|
+
* `PositiveSafeInt` brand. Throws a `TypeError` otherwise.
|
|
25
30
|
*
|
|
26
31
|
* @example
|
|
27
32
|
*
|
|
@@ -33,9 +38,9 @@ export declare const isPositiveSafeInt: (a: number) => a is TtfImported_Positive
|
|
|
33
38
|
* assert.isTrue(PositiveSafeInt.is(branded));
|
|
34
39
|
* ```
|
|
35
40
|
*
|
|
36
|
-
* @param value The value to cast
|
|
37
|
-
* @returns The value as a PositiveSafeInt
|
|
38
|
-
* @throws {TypeError} If the value is not a positive safe integer
|
|
41
|
+
* @param value - The value to cast
|
|
42
|
+
* @returns The value as a `PositiveSafeInt`
|
|
43
|
+
* @throws {TypeError} If the value is not a positive safe integer
|
|
39
44
|
*/
|
|
40
45
|
export declare const asPositiveSafeInt: <N extends number>(x: N) => number & {
|
|
41
46
|
readonly "!=0": true;
|
|
@@ -53,17 +58,15 @@ export declare const asPositiveSafeInt: <N extends number>(x: N) => number & {
|
|
|
53
58
|
'TSTypeForgeInternals--edd2f9ce-7ca5-45b0-9d1a-bd61b9b5d9c3': unknown;
|
|
54
59
|
}> & N;
|
|
55
60
|
/**
|
|
56
|
-
* Namespace providing type-safe
|
|
57
|
-
*
|
|
61
|
+
* Namespace providing type-safe operations for the `PositiveSafeInt` branded
|
|
62
|
+
* type.
|
|
58
63
|
*
|
|
59
|
-
*
|
|
60
|
-
*
|
|
61
|
-
* positive constraint and IEEE 754 precision guarantees, preventing precision
|
|
62
|
-
* loss and ensuring results are always positive.
|
|
64
|
+
* The `PositiveSafeInt` type represents a positive safe integer. Division
|
|
65
|
+
* (`div`) uses floor division.
|
|
63
66
|
*/
|
|
64
67
|
export declare const PositiveSafeInt: {
|
|
65
68
|
/**
|
|
66
|
-
* Type guard
|
|
69
|
+
* Type guard that checks if a value is a positive safe integer.
|
|
67
70
|
*
|
|
68
71
|
* @example
|
|
69
72
|
*
|
|
@@ -77,25 +80,23 @@ export declare const PositiveSafeInt: {
|
|
|
77
80
|
* assert.isTrue(PositiveSafeInt.is(42));
|
|
78
81
|
* ```
|
|
79
82
|
*
|
|
80
|
-
* @param value The value to check
|
|
81
|
-
* @returns `true` if the value is a positive safe integer, `false` otherwise
|
|
83
|
+
* @param value - The value to check
|
|
84
|
+
* @returns `true` if the value is a positive safe integer, `false` otherwise
|
|
82
85
|
* @see {@link isPositiveSafeInt} for usage examples
|
|
83
86
|
*/
|
|
84
87
|
readonly is: (a: number) => a is TtfImported_PositiveSafeInt;
|
|
85
88
|
/**
|
|
86
|
-
* The
|
|
87
|
-
*
|
|
88
|
-
* @readonly
|
|
89
|
+
* The smallest value representable as `PositiveSafeInt` (the lower saturation
|
|
90
|
+
* target of `fromNumber`).
|
|
89
91
|
*/
|
|
90
92
|
readonly MIN_VALUE: 1;
|
|
91
93
|
/**
|
|
92
|
-
* The
|
|
93
|
-
*
|
|
94
|
-
* @readonly
|
|
94
|
+
* The largest value representable as `PositiveSafeInt` (the upper saturation
|
|
95
|
+
* target of `fromNumber`).
|
|
95
96
|
*/
|
|
96
97
|
readonly MAX_VALUE: SafeUint;
|
|
97
98
|
/**
|
|
98
|
-
* Returns the
|
|
99
|
+
* Returns the smallest of the given positive safe integers.
|
|
99
100
|
*
|
|
100
101
|
* @example
|
|
101
102
|
*
|
|
@@ -108,13 +109,12 @@ export declare const PositiveSafeInt: {
|
|
|
108
109
|
* assert.isTrue(smallest === 5);
|
|
109
110
|
* ```
|
|
110
111
|
*
|
|
111
|
-
* @param
|
|
112
|
-
* @
|
|
113
|
-
* @returns The minimum value as a PositiveSafeInt.
|
|
112
|
+
* @param values - The positive safe integers to compare (at least one required)
|
|
113
|
+
* @returns The smallest value as a `PositiveSafeInt`
|
|
114
114
|
*/
|
|
115
115
|
readonly min: (...values: readonly import("ts-type-forge").WithSmallInt<TtfImported_PositiveSafeInt>[]) => TtfImported_PositiveSafeInt;
|
|
116
116
|
/**
|
|
117
|
-
* Returns the
|
|
117
|
+
* Returns the largest of the given positive safe integers.
|
|
118
118
|
*
|
|
119
119
|
* @example
|
|
120
120
|
*
|
|
@@ -127,22 +127,26 @@ export declare const PositiveSafeInt: {
|
|
|
127
127
|
* assert.isTrue(largest === 10);
|
|
128
128
|
* ```
|
|
129
129
|
*
|
|
130
|
-
* @param
|
|
131
|
-
* @
|
|
132
|
-
* @returns The maximum value as a PositiveSafeInt.
|
|
130
|
+
* @param values - The positive safe integers to compare (at least one required)
|
|
131
|
+
* @returns The largest value as a `PositiveSafeInt`
|
|
133
132
|
*/
|
|
134
133
|
readonly max: (...values: readonly import("ts-type-forge").WithSmallInt<TtfImported_PositiveSafeInt>[]) => TtfImported_PositiveSafeInt;
|
|
135
134
|
/**
|
|
136
|
-
*
|
|
135
|
+
* Converts an arbitrary `number` into a `PositiveSafeInt`, rounding to the
|
|
136
|
+
* nearest integer and saturating the result into the range `[MIN_VALUE,
|
|
137
|
+
* MAX_VALUE]`.
|
|
138
|
+
*
|
|
139
|
+
* Unlike `asPositiveSafeInt`, this is total: out-of-range inputs are clamped
|
|
140
|
+
* to the nearest representable `PositiveSafeInt` instead of throwing.
|
|
137
141
|
*
|
|
138
142
|
* @example
|
|
139
143
|
*
|
|
140
144
|
* ```ts
|
|
141
|
-
* const belowRange = PositiveSafeInt.
|
|
145
|
+
* const belowRange = PositiveSafeInt.fromNumber(0);
|
|
142
146
|
*
|
|
143
|
-
* const withinRange = PositiveSafeInt.
|
|
147
|
+
* const withinRange = PositiveSafeInt.fromNumber(123);
|
|
144
148
|
*
|
|
145
|
-
* const aboveRange = PositiveSafeInt.
|
|
149
|
+
* const aboveRange = PositiveSafeInt.fromNumber(Number.MAX_SAFE_INTEGER + 10);
|
|
146
150
|
*
|
|
147
151
|
* assert.isTrue(belowRange === 1);
|
|
148
152
|
*
|
|
@@ -151,12 +155,14 @@ export declare const PositiveSafeInt: {
|
|
|
151
155
|
* assert.isTrue(aboveRange === Number.MAX_SAFE_INTEGER);
|
|
152
156
|
* ```
|
|
153
157
|
*
|
|
154
|
-
* @param value The
|
|
155
|
-
* @returns The value
|
|
158
|
+
* @param value - The value to convert
|
|
159
|
+
* @returns The value as a `PositiveSafeInt`
|
|
156
160
|
*/
|
|
157
|
-
readonly
|
|
161
|
+
readonly fromNumber: (x: number) => TtfImported_PositiveSafeInt;
|
|
158
162
|
/**
|
|
159
|
-
* Generates a random PositiveSafeInt
|
|
163
|
+
* Generates a random `PositiveSafeInt` within the given range.
|
|
164
|
+
*
|
|
165
|
+
* The range is inclusive on both ends.
|
|
160
166
|
*
|
|
161
167
|
* @example
|
|
162
168
|
*
|
|
@@ -172,11 +178,14 @@ export declare const PositiveSafeInt: {
|
|
|
172
178
|
* assert.isTrue(randomValue >= 1 && randomValue <= 6);
|
|
173
179
|
* ```
|
|
174
180
|
*
|
|
175
|
-
* @
|
|
181
|
+
* @param min - The minimum value (inclusive)
|
|
182
|
+
* @param max - The maximum value (inclusive)
|
|
183
|
+
* @returns A random `PositiveSafeInt` in `[min, max]`
|
|
176
184
|
*/
|
|
177
185
|
readonly random: (min?: import("ts-type-forge").WithSmallInt<TtfImported_PositiveSafeInt> | undefined, max?: import("ts-type-forge").WithSmallInt<TtfImported_PositiveSafeInt> | undefined) => TtfImported_PositiveSafeInt;
|
|
178
186
|
/**
|
|
179
|
-
* Raises a
|
|
187
|
+
* Raises `a` to the power `b`, returning `a ** b` as a `PositiveSafeInt`
|
|
188
|
+
* (floored to an integer).
|
|
180
189
|
*
|
|
181
190
|
* @example
|
|
182
191
|
*
|
|
@@ -190,13 +199,13 @@ export declare const PositiveSafeInt: {
|
|
|
190
199
|
* assert.isTrue(power === 27);
|
|
191
200
|
* ```
|
|
192
201
|
*
|
|
193
|
-
* @param a The base
|
|
194
|
-
* @param b The exponent
|
|
195
|
-
* @returns `a ** b`
|
|
202
|
+
* @param a - The base positive safe integer
|
|
203
|
+
* @param b - The exponent positive safe integer
|
|
204
|
+
* @returns `a ** b` as a `PositiveSafeInt`
|
|
196
205
|
*/
|
|
197
206
|
readonly pow: (x: import("ts-type-forge").WithSmallInt<TtfImported_PositiveSafeInt>, y: import("ts-type-forge").WithSmallInt<TtfImported_PositiveSafeInt>) => TtfImported_PositiveSafeInt;
|
|
198
207
|
/**
|
|
199
|
-
* Adds two PositiveSafeInt
|
|
208
|
+
* Adds two positive safe integers, returning `a + b` as a `PositiveSafeInt`.
|
|
200
209
|
*
|
|
201
210
|
* @example
|
|
202
211
|
*
|
|
@@ -211,13 +220,14 @@ export declare const PositiveSafeInt: {
|
|
|
211
220
|
* assert.isTrue(PositiveSafeInt.is(sum));
|
|
212
221
|
* ```
|
|
213
222
|
*
|
|
214
|
-
* @param a The first
|
|
215
|
-
* @param b The second
|
|
216
|
-
* @returns `a
|
|
223
|
+
* @param a - The first positive safe integer
|
|
224
|
+
* @param b - The second positive safe integer
|
|
225
|
+
* @returns The sum of `a` and `b` as a `PositiveSafeInt`
|
|
217
226
|
*/
|
|
218
227
|
readonly add: (x: import("ts-type-forge").WithSmallInt<TtfImported_PositiveSafeInt>, y: import("ts-type-forge").WithSmallInt<TtfImported_PositiveSafeInt>) => TtfImported_PositiveSafeInt;
|
|
219
228
|
/**
|
|
220
|
-
* Subtracts
|
|
229
|
+
* Subtracts two positive safe integers, returning `a - b` as a
|
|
230
|
+
* `PositiveSafeInt`.
|
|
221
231
|
*
|
|
222
232
|
* @example
|
|
223
233
|
*
|
|
@@ -232,14 +242,14 @@ export declare const PositiveSafeInt: {
|
|
|
232
242
|
* assert.isTrue(PositiveSafeInt.is(difference));
|
|
233
243
|
* ```
|
|
234
244
|
*
|
|
235
|
-
* @param a The
|
|
236
|
-
* @param b The
|
|
237
|
-
* @returns `a
|
|
238
|
-
* (minimum 1).
|
|
245
|
+
* @param a - The first positive safe integer
|
|
246
|
+
* @param b - The second positive safe integer
|
|
247
|
+
* @returns The difference of `a` and `b` as a `PositiveSafeInt`
|
|
239
248
|
*/
|
|
240
249
|
readonly sub: (x: import("ts-type-forge").WithSmallInt<TtfImported_PositiveSafeInt>, y: import("ts-type-forge").WithSmallInt<TtfImported_PositiveSafeInt>) => TtfImported_PositiveSafeInt;
|
|
241
250
|
/**
|
|
242
|
-
* Multiplies two
|
|
251
|
+
* Multiplies two positive safe integers, returning `a * b` as a
|
|
252
|
+
* `PositiveSafeInt`.
|
|
243
253
|
*
|
|
244
254
|
* @example
|
|
245
255
|
*
|
|
@@ -254,13 +264,14 @@ export declare const PositiveSafeInt: {
|
|
|
254
264
|
* assert.isTrue(PositiveSafeInt.is(product));
|
|
255
265
|
* ```
|
|
256
266
|
*
|
|
257
|
-
* @param a The first
|
|
258
|
-
* @param b The second
|
|
259
|
-
* @returns `a
|
|
267
|
+
* @param a - The first positive safe integer
|
|
268
|
+
* @param b - The second positive safe integer
|
|
269
|
+
* @returns The product of `a` and `b` as a `PositiveSafeInt`
|
|
260
270
|
*/
|
|
261
271
|
readonly mul: (x: import("ts-type-forge").WithSmallInt<TtfImported_PositiveSafeInt>, y: import("ts-type-forge").WithSmallInt<TtfImported_PositiveSafeInt>) => TtfImported_PositiveSafeInt;
|
|
262
272
|
/**
|
|
263
|
-
* Divides
|
|
273
|
+
* Divides two positive safe integers using floor division (`⌊a / b⌋`): the
|
|
274
|
+
* result is `a / b` rounded toward negative infinity, as a `PositiveSafeInt`.
|
|
264
275
|
*
|
|
265
276
|
* @example
|
|
266
277
|
*
|
|
@@ -280,9 +291,9 @@ export declare const PositiveSafeInt: {
|
|
|
280
291
|
* assert.isTrue(clamped === 1);
|
|
281
292
|
* ```
|
|
282
293
|
*
|
|
283
|
-
* @param a The dividend
|
|
284
|
-
* @param b The divisor
|
|
285
|
-
* @returns
|
|
294
|
+
* @param a - The dividend
|
|
295
|
+
* @param b - The divisor (must be non-zero)
|
|
296
|
+
* @returns The floored quotient as a `PositiveSafeInt`
|
|
286
297
|
*/
|
|
287
298
|
readonly div: (x: import("ts-type-forge").WithSmallInt<TtfImported_PositiveSafeInt>, y: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | import("ts-type-forge").NormalizeBrandUnion<number & {
|
|
288
299
|
readonly "!=0": true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"positive-safe-int.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/positive-safe-int.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,eAAe,IAAI,2BAA2B,EACpD,MAAM,eAAe,CAAC;AAIvB,MAAM,MAAM,eAAe,GAAG,2BAA2B,CAAC;AAgC1D
|
|
1
|
+
{"version":3,"file":"positive-safe-int.d.mts","sourceRoot":"","sources":["../../../src/number/branded-types/positive-safe-int.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,eAAe,IAAI,2BAA2B,EACpD,MAAM,eAAe,CAAC;AAIvB,MAAM,MAAM,eAAe,GAAG,2BAA2B,CAAC;AAgC1D;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,iBAAiB,iDAAK,CAAC;AAEpC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;MAAW,CAAC;AAE1C;;;;;;GAMG;AACH,eAAO,MAAM,eAAe;IAC1B;;;;;;;;;;;;;;;;;;OAkBG;;IAGH;;;OAGG;;IAGH;;;OAGG;;IAGH;;;;;;;;;;;;;;;;OAgBG;;IAGH;;;;;;;;;;;;;;;;OAgBG;;IAGH;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;;IAGH;;;;;;;;;;;;;;;;;;;;;;OAsBG;;IAGH;;;;;;;;;;;;;;;;;;;OAmBG;;IAGH;;;;;;;;;;;;;;;;;;;OAmBG;;IAGH;;;;;;;;;;;;;;;;;;;;OAoBG;;IAGH;;;;;;;;;;;;;;;;;;;;OAoBG;;IAGH;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;;;;;;;;;;;;;;;;CAEK,CAAC"}
|