ts-data-forge 10.0.0 → 11.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/array/impl/array-utils-creation.d.mts +3 -3
- package/dist/array/impl/array-utils-creation.d.mts.map +1 -1
- package/dist/array/impl/array-utils-creation.mjs.map +1 -1
- package/dist/array/impl/array-utils-element-access.d.mts +4 -4
- package/dist/array/impl/array-utils-element-access.mjs.map +1 -1
- package/dist/{guard/as-length-bounded-array.d.mts → array/impl/array-utils-length-bounded-array-cast.d.mts} +9 -9
- package/dist/array/impl/array-utils-length-bounded-array-cast.d.mts.map +1 -0
- package/dist/{guard/as-length-bounded-array.mjs → array/impl/array-utils-length-bounded-array-cast.mjs} +2 -2
- package/dist/array/impl/array-utils-length-bounded-array-cast.mjs.map +1 -0
- package/dist/{guard/is-length-bounded-array.d.mts → array/impl/array-utils-length-bounded-array-guard.d.mts} +13 -13
- package/dist/array/impl/array-utils-length-bounded-array-guard.d.mts.map +1 -0
- package/dist/{guard/is-length-bounded-array.mjs → array/impl/array-utils-length-bounded-array-guard.mjs} +1 -1
- package/dist/array/impl/array-utils-length-bounded-array-guard.mjs.map +1 -0
- package/dist/array/impl/array-utils-modification.d.mts +9 -9
- package/dist/array/impl/array-utils-modification.d.mts.map +1 -1
- package/dist/array/impl/array-utils-modification.mjs.map +1 -1
- package/dist/array/impl/array-utils-reducing-value.d.mts +9 -9
- package/dist/array/impl/array-utils-reducing-value.mjs.map +1 -1
- package/dist/array/impl/array-utils-size.d.mts +3 -3
- package/dist/array/impl/array-utils-size.mjs.map +1 -1
- package/dist/array/impl/array-utils-slicing.d.mts +9 -9
- package/dist/array/impl/array-utils-slicing.d.mts.map +1 -1
- package/dist/array/impl/array-utils-slicing.mjs.map +1 -1
- package/dist/array/impl/array-utils-transformation.d.mts +16 -10
- package/dist/array/impl/array-utils-transformation.d.mts.map +1 -1
- package/dist/array/impl/array-utils-transformation.mjs.map +1 -1
- package/dist/array/impl/index.d.mts +2 -0
- package/dist/array/impl/index.d.mts.map +1 -1
- package/dist/array/impl/index.mjs +2 -0
- package/dist/array/impl/index.mjs.map +1 -1
- package/dist/entry-point.mjs +1 -3
- package/dist/entry-point.mjs.map +1 -1
- package/dist/guard/index.d.mts +0 -3
- package/dist/guard/index.d.mts.map +1 -1
- package/dist/guard/index.mjs +0 -3
- package/dist/guard/index.mjs.map +1 -1
- package/dist/index.d.mts +1 -0
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +1 -3
- package/dist/index.mjs.map +1 -1
- package/dist/number/branded-types/finite-number.d.mts +47 -61
- package/dist/number/branded-types/finite-number.d.mts.map +1 -1
- package/dist/number/branded-types/finite-number.mjs +37 -41
- package/dist/number/branded-types/finite-number.mjs.map +1 -1
- package/dist/number/branded-types/int.d.mts +40 -46
- package/dist/number/branded-types/int.d.mts.map +1 -1
- package/dist/number/branded-types/int.mjs +29 -31
- package/dist/number/branded-types/int.mjs.map +1 -1
- package/dist/number/branded-types/int16.d.mts +65 -58
- package/dist/number/branded-types/int16.d.mts.map +1 -1
- package/dist/number/branded-types/int16.mjs +49 -45
- package/dist/number/branded-types/int16.mjs.map +1 -1
- package/dist/number/branded-types/int32.d.mts +65 -58
- package/dist/number/branded-types/int32.d.mts.map +1 -1
- package/dist/number/branded-types/int32.mjs +49 -45
- package/dist/number/branded-types/int32.mjs.map +1 -1
- package/dist/number/branded-types/negative-finite-number.d.mts +68 -59
- package/dist/number/branded-types/negative-finite-number.d.mts.map +1 -1
- package/dist/number/branded-types/negative-finite-number.mjs +52 -46
- package/dist/number/branded-types/negative-finite-number.mjs.map +1 -1
- package/dist/number/branded-types/negative-int.d.mts +60 -48
- package/dist/number/branded-types/negative-int.d.mts.map +1 -1
- package/dist/number/branded-types/negative-int.mjs +40 -36
- package/dist/number/branded-types/negative-int.mjs.map +1 -1
- package/dist/number/branded-types/negative-safe-int.d.mts +57 -56
- package/dist/number/branded-types/negative-safe-int.d.mts.map +1 -1
- package/dist/number/branded-types/negative-safe-int.mjs +40 -41
- package/dist/number/branded-types/negative-safe-int.mjs.map +1 -1
- package/dist/number/branded-types/non-negative-finite-number.d.mts +74 -64
- package/dist/number/branded-types/non-negative-finite-number.d.mts.map +1 -1
- package/dist/number/branded-types/non-negative-finite-number.mjs +58 -51
- package/dist/number/branded-types/non-negative-finite-number.mjs.map +1 -1
- package/dist/number/branded-types/non-negative-int16.d.mts +64 -57
- package/dist/number/branded-types/non-negative-int16.d.mts.map +1 -1
- package/dist/number/branded-types/non-negative-int16.mjs +47 -43
- package/dist/number/branded-types/non-negative-int16.mjs.map +1 -1
- package/dist/number/branded-types/non-negative-int32.d.mts +64 -58
- package/dist/number/branded-types/non-negative-int32.d.mts.map +1 -1
- package/dist/number/branded-types/non-negative-int32.mjs +47 -44
- package/dist/number/branded-types/non-negative-int32.mjs.map +1 -1
- package/dist/number/branded-types/non-positive-finite-number.d.mts +64 -54
- package/dist/number/branded-types/non-positive-finite-number.d.mts.map +1 -1
- package/dist/number/branded-types/non-positive-finite-number.mjs +48 -41
- package/dist/number/branded-types/non-positive-finite-number.mjs.map +1 -1
- package/dist/number/branded-types/non-positive-int.d.mts +41 -146
- package/dist/number/branded-types/non-positive-int.d.mts.map +1 -1
- package/dist/number/branded-types/non-positive-int.mjs +27 -107
- package/dist/number/branded-types/non-positive-int.mjs.map +1 -1
- package/dist/number/branded-types/non-positive-safe-int.d.mts +54 -53
- package/dist/number/branded-types/non-positive-safe-int.d.mts.map +1 -1
- package/dist/number/branded-types/non-positive-safe-int.mjs +37 -39
- package/dist/number/branded-types/non-positive-safe-int.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-finite-number.d.mts +62 -49
- package/dist/number/branded-types/non-zero-finite-number.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-finite-number.mjs +46 -37
- package/dist/number/branded-types/non-zero-finite-number.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-int.d.mts +51 -38
- package/dist/number/branded-types/non-zero-int.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-int.mjs +31 -27
- package/dist/number/branded-types/non-zero-int.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-int16.d.mts +52 -53
- package/dist/number/branded-types/non-zero-int16.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-int16.mjs +36 -39
- package/dist/number/branded-types/non-zero-int16.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-int32.d.mts +52 -54
- package/dist/number/branded-types/non-zero-int32.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-int32.mjs +36 -40
- package/dist/number/branded-types/non-zero-int32.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-safe-int.d.mts +53 -54
- package/dist/number/branded-types/non-zero-safe-int.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-safe-int.mjs +36 -40
- package/dist/number/branded-types/non-zero-safe-int.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-uint16.d.mts +52 -53
- package/dist/number/branded-types/non-zero-uint16.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-uint16.mjs +35 -39
- package/dist/number/branded-types/non-zero-uint16.mjs.map +1 -1
- package/dist/number/branded-types/non-zero-uint32.d.mts +52 -53
- package/dist/number/branded-types/non-zero-uint32.d.mts.map +1 -1
- package/dist/number/branded-types/non-zero-uint32.mjs +35 -39
- package/dist/number/branded-types/non-zero-uint32.mjs.map +1 -1
- package/dist/number/branded-types/positive-finite-number.d.mts +74 -63
- package/dist/number/branded-types/positive-finite-number.d.mts.map +1 -1
- package/dist/number/branded-types/positive-finite-number.mjs +58 -50
- package/dist/number/branded-types/positive-finite-number.mjs.map +1 -1
- package/dist/number/branded-types/positive-int.d.mts +46 -68
- package/dist/number/branded-types/positive-int.d.mts.map +1 -1
- package/dist/number/branded-types/positive-int.mjs +34 -49
- package/dist/number/branded-types/positive-int.mjs.map +1 -1
- package/dist/number/branded-types/positive-int16.d.mts +61 -57
- package/dist/number/branded-types/positive-int16.d.mts.map +1 -1
- package/dist/number/branded-types/positive-int16.mjs +44 -43
- package/dist/number/branded-types/positive-int16.mjs.map +1 -1
- package/dist/number/branded-types/positive-int32.d.mts +61 -57
- package/dist/number/branded-types/positive-int32.d.mts.map +1 -1
- package/dist/number/branded-types/positive-int32.mjs +44 -43
- package/dist/number/branded-types/positive-int32.mjs.map +1 -1
- package/dist/number/branded-types/positive-safe-int.d.mts +62 -57
- package/dist/number/branded-types/positive-safe-int.d.mts.map +1 -1
- package/dist/number/branded-types/positive-safe-int.mjs +45 -43
- package/dist/number/branded-types/positive-safe-int.mjs.map +1 -1
- package/dist/number/branded-types/positive-uint16.d.mts +61 -57
- package/dist/number/branded-types/positive-uint16.d.mts.map +1 -1
- package/dist/number/branded-types/positive-uint16.mjs +44 -43
- package/dist/number/branded-types/positive-uint16.mjs.map +1 -1
- package/dist/number/branded-types/positive-uint32.d.mts +61 -58
- package/dist/number/branded-types/positive-uint32.d.mts.map +1 -1
- package/dist/number/branded-types/positive-uint32.mjs +44 -44
- package/dist/number/branded-types/positive-uint32.mjs.map +1 -1
- package/dist/number/branded-types/safe-int.d.mts +43 -62
- package/dist/number/branded-types/safe-int.d.mts.map +1 -1
- package/dist/number/branded-types/safe-int.mjs +35 -42
- package/dist/number/branded-types/safe-int.mjs.map +1 -1
- package/dist/number/branded-types/safe-uint.d.mts +62 -57
- package/dist/number/branded-types/safe-uint.d.mts.map +1 -1
- package/dist/number/branded-types/safe-uint.mjs +46 -44
- package/dist/number/branded-types/safe-uint.mjs.map +1 -1
- package/dist/number/branded-types/uint.d.mts +63 -50
- package/dist/number/branded-types/uint.d.mts.map +1 -1
- package/dist/number/branded-types/uint.mjs +42 -39
- package/dist/number/branded-types/uint.mjs.map +1 -1
- package/dist/number/branded-types/uint16.d.mts +60 -58
- package/dist/number/branded-types/uint16.d.mts.map +1 -1
- package/dist/number/branded-types/uint16.mjs +44 -43
- package/dist/number/branded-types/uint16.mjs.map +1 -1
- package/dist/number/branded-types/uint32.d.mts +59 -55
- package/dist/number/branded-types/uint32.d.mts.map +1 -1
- package/dist/number/branded-types/uint32.mjs +42 -42
- package/dist/number/branded-types/uint32.mjs.map +1 -1
- package/dist/number/enum/int8.d.mts +56 -65
- package/dist/number/enum/int8.d.mts.map +1 -1
- package/dist/number/enum/int8.mjs +44 -43
- package/dist/number/enum/int8.mjs.map +1 -1
- package/dist/number/enum/uint8.d.mts +60 -58
- package/dist/number/enum/uint8.d.mts.map +1 -1
- package/dist/number/enum/uint8.mjs +44 -43
- package/dist/number/enum/uint8.mjs.map +1 -1
- package/dist/string/index.d.mts +2 -0
- package/dist/string/index.d.mts.map +1 -0
- package/dist/string/index.mjs +2 -0
- package/dist/string/index.mjs.map +1 -0
- package/dist/string/str.d.mts +273 -0
- package/dist/string/str.d.mts.map +1 -0
- package/dist/string/str.mjs +42 -0
- package/dist/string/str.mjs.map +1 -0
- package/package.json +31 -92
- package/src/array/impl/array-utils-creation.mts +2 -1
- package/src/array/impl/array-utils-element-access.mts +3 -3
- package/src/array/impl/array-utils-element-access.test.mts +3 -3
- package/src/{guard/as-length-bounded-array.mts → array/impl/array-utils-length-bounded-array-cast.mts} +9 -9
- package/src/{guard/as-length-bounded-array.test.mts → array/impl/array-utils-length-bounded-array-cast.test.mts} +2 -2
- package/src/{guard/is-length-bounded-array.mts → array/impl/array-utils-length-bounded-array-guard.mts} +12 -12
- package/src/{guard/is-length-bounded-array.test.mts → array/impl/array-utils-length-bounded-array-guard.test.mts} +2 -2
- package/src/array/impl/array-utils-modification.mts +9 -8
- package/src/array/impl/array-utils-modification.test.mts +6 -1
- package/src/array/impl/array-utils-reducing-value.mts +9 -9
- package/src/array/impl/array-utils-size.mts +2 -2
- package/src/array/impl/array-utils-slicing.mts +24 -13
- package/src/array/impl/array-utils-transformation.mts +18 -12
- package/src/array/impl/array-utils-transformation.test.mts +12 -12
- package/src/array/impl/index.mts +2 -0
- package/src/guard/index.mts +0 -3
- package/src/index.mts +1 -0
- package/src/number/branded-types/finite-number.mts +47 -61
- package/src/number/branded-types/int.mts +40 -46
- package/src/number/branded-types/int16.mts +65 -58
- package/src/number/branded-types/int32.mts +65 -58
- package/src/number/branded-types/negative-finite-number.mts +68 -68
- package/src/number/branded-types/negative-int.mts +60 -57
- package/src/number/branded-types/negative-safe-int.mts +57 -65
- package/src/number/branded-types/non-negative-finite-number.mts +74 -64
- package/src/number/branded-types/non-negative-int16.mts +64 -57
- package/src/number/branded-types/non-negative-int32.mts +64 -58
- package/src/number/branded-types/non-positive-finite-number.mts +64 -54
- package/src/number/branded-types/non-positive-int.mts +41 -146
- package/src/number/branded-types/non-positive-safe-int.mts +54 -53
- package/src/number/branded-types/non-zero-finite-number.mts +62 -51
- package/src/number/branded-types/non-zero-int.mts +51 -38
- package/src/number/branded-types/non-zero-int16.mts +52 -53
- package/src/number/branded-types/non-zero-int32.mts +52 -54
- package/src/number/branded-types/non-zero-safe-int.mts +53 -54
- package/src/number/branded-types/non-zero-uint16.mts +52 -53
- package/src/number/branded-types/non-zero-uint32.mts +52 -53
- package/src/number/branded-types/positive-finite-number.mts +74 -63
- package/src/number/branded-types/positive-int.mts +46 -68
- package/src/number/branded-types/positive-int16.mts +61 -57
- package/src/number/branded-types/positive-int32.mts +61 -57
- package/src/number/branded-types/positive-safe-int.mts +62 -57
- package/src/number/branded-types/positive-uint16.mts +61 -57
- package/src/number/branded-types/positive-uint32.mts +61 -58
- package/src/number/branded-types/safe-int.mts +43 -62
- package/src/number/branded-types/safe-uint.mts +62 -57
- package/src/number/branded-types/uint.mts +63 -50
- package/src/number/branded-types/uint16.mts +60 -58
- package/src/number/branded-types/uint32.mts +59 -55
- package/src/number/enum/int8.mts +56 -65
- package/src/number/enum/uint8.mts +60 -58
- package/src/string/index.mts +1 -0
- package/src/string/str.mts +371 -0
- package/src/string/str.test.mts +215 -0
- package/dist/guard/as-length-bounded-array.d.mts.map +0 -1
- package/dist/guard/as-length-bounded-array.mjs.map +0 -1
- package/dist/guard/is-length-bounded-array.d.mts.map +0 -1
- package/dist/guard/is-length-bounded-array.mjs.map +0 -1
- package/dist/guard/is-length-bounded-string.d.mts +0 -163
- package/dist/guard/is-length-bounded-string.d.mts.map +0 -1
- package/dist/guard/is-length-bounded-string.mjs +0 -7
- package/dist/guard/is-length-bounded-string.mjs.map +0 -1
- package/src/guard/is-length-bounded-string.mts +0 -199
- package/src/guard/is-length-bounded-string.test.mts +0 -170
|
@@ -25,92 +25,93 @@ 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`.
|
|
39
37
|
*/
|
|
40
38
|
MIN_VALUE,
|
|
41
39
|
/**
|
|
42
|
-
* The
|
|
43
|
-
*
|
|
44
|
-
* @readonly
|
|
40
|
+
* The largest value representable as `PositiveInt32`.
|
|
45
41
|
*/
|
|
46
42
|
MAX_VALUE,
|
|
47
43
|
/**
|
|
48
|
-
* Returns the
|
|
44
|
+
* Returns the smallest of the given positive integers.
|
|
49
45
|
*
|
|
50
|
-
* @param
|
|
51
|
-
* @
|
|
52
|
-
* @returns The minimum value as a PositiveInt32.
|
|
46
|
+
* @param values - The positive integers to compare (at least one required)
|
|
47
|
+
* @returns The smallest value as a `PositiveInt32`
|
|
53
48
|
*/
|
|
54
49
|
min: min_,
|
|
55
50
|
/**
|
|
56
|
-
* Returns the
|
|
51
|
+
* Returns the largest of the given positive integers.
|
|
57
52
|
*
|
|
58
|
-
* @param
|
|
59
|
-
* @
|
|
60
|
-
* @returns The maximum value as a PositiveInt32.
|
|
53
|
+
* @param values - The positive integers to compare (at least one required)
|
|
54
|
+
* @returns The largest value as a `PositiveInt32`
|
|
61
55
|
*/
|
|
62
56
|
max: max_,
|
|
63
57
|
/**
|
|
64
|
-
* Clamps a number
|
|
58
|
+
* Clamps a `number` into the `PositiveInt32` range, rounding to the nearest
|
|
59
|
+
* integer and constraining the result to `[MIN_VALUE, MAX_VALUE]`.
|
|
65
60
|
*
|
|
66
|
-
* @param value The
|
|
67
|
-
* @returns The
|
|
61
|
+
* @param value - The value to clamp
|
|
62
|
+
* @returns The clamped value as a `PositiveInt32`
|
|
68
63
|
*/
|
|
69
64
|
clamp,
|
|
70
65
|
/**
|
|
71
|
-
* Generates a random PositiveInt32
|
|
66
|
+
* Generates a random `PositiveInt32` within the given range.
|
|
67
|
+
*
|
|
68
|
+
* The range is inclusive on both ends.
|
|
72
69
|
*
|
|
73
|
-
* @
|
|
70
|
+
* @param min - The minimum value (inclusive)
|
|
71
|
+
* @param max - The maximum value (inclusive)
|
|
72
|
+
* @returns A random `PositiveInt32` in `[min, max]`
|
|
74
73
|
*/
|
|
75
74
|
random,
|
|
76
75
|
/**
|
|
77
|
-
* Raises a
|
|
76
|
+
* Raises `a` to the power `b`, returning `a ** b` as a `PositiveInt32`
|
|
77
|
+
* (floored to an integer).
|
|
78
78
|
*
|
|
79
|
-
* @param a The base
|
|
80
|
-
* @param b The exponent
|
|
81
|
-
* @returns `a ** b`
|
|
79
|
+
* @param a - The base positive integer
|
|
80
|
+
* @param b - The exponent positive integer
|
|
81
|
+
* @returns `a ** b` as a `PositiveInt32`
|
|
82
82
|
*/
|
|
83
83
|
pow,
|
|
84
84
|
/**
|
|
85
|
-
* Adds two PositiveInt32
|
|
85
|
+
* Adds two positive integers, returning `a + b` as a `PositiveInt32`.
|
|
86
86
|
*
|
|
87
|
-
* @param a The first
|
|
88
|
-
* @param b The second
|
|
89
|
-
* @returns `a
|
|
87
|
+
* @param a - The first positive integer
|
|
88
|
+
* @param b - The second positive integer
|
|
89
|
+
* @returns The sum of `a` and `b` as a `PositiveInt32`
|
|
90
90
|
*/
|
|
91
91
|
add,
|
|
92
92
|
/**
|
|
93
|
-
* Subtracts
|
|
93
|
+
* Subtracts two positive integers, returning `a - b` as a `PositiveInt32`.
|
|
94
94
|
*
|
|
95
|
-
* @param a The
|
|
96
|
-
* @param b The
|
|
97
|
-
* @returns `a
|
|
95
|
+
* @param a - The first positive integer
|
|
96
|
+
* @param b - The second positive integer
|
|
97
|
+
* @returns The difference of `a` and `b` as a `PositiveInt32`
|
|
98
98
|
*/
|
|
99
99
|
sub,
|
|
100
100
|
/**
|
|
101
|
-
* Multiplies two PositiveInt32
|
|
101
|
+
* Multiplies two positive integers, returning `a * b` as a `PositiveInt32`.
|
|
102
102
|
*
|
|
103
|
-
* @param a The first
|
|
104
|
-
* @param b The second
|
|
105
|
-
* @returns `a
|
|
103
|
+
* @param a - The first positive integer
|
|
104
|
+
* @param b - The second positive integer
|
|
105
|
+
* @returns The product of `a` and `b` as a `PositiveInt32`
|
|
106
106
|
*/
|
|
107
107
|
mul,
|
|
108
108
|
/**
|
|
109
|
-
* Divides
|
|
109
|
+
* Divides two positive integers using floor division (`⌊a / b⌋`): the result
|
|
110
|
+
* is `a / b` rounded toward negative infinity, as a `PositiveInt32`.
|
|
110
111
|
*
|
|
111
|
-
* @param a The dividend
|
|
112
|
-
* @param b The divisor
|
|
113
|
-
* @returns
|
|
112
|
+
* @param a - The dividend
|
|
113
|
+
* @param b - The divisor (must be non-zero)
|
|
114
|
+
* @returns The floored quotient as a `PositiveInt32`
|
|
114
115
|
*/
|
|
115
116
|
div
|
|
116
117
|
};
|
|
@@ -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 clamp,\n div,\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 *
|
|
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 clamp,\n div,\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`.\n */\n MIN_VALUE,\n\n /**\n * The largest value representable as `PositiveInt32`.\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 * Clamps a `number` into the `PositiveInt32` range, rounding to the nearest\n * integer and constraining the result to `[MIN_VALUE, MAX_VALUE]`.\n *\n * @param value - The value to clamp\n * @returns The clamped value as a `PositiveInt32`\n */\n clamp,\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,KAAA;AAAA,EACA,GAAA;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,EAKA,SAAA;AAAA;AAAA;AAAA;AAAA,EAKA,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,EASL,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,MAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,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,21 @@ 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`.
|
|
89
90
|
*/
|
|
90
91
|
readonly MIN_VALUE: 1;
|
|
91
92
|
/**
|
|
92
|
-
* The
|
|
93
|
-
*
|
|
94
|
-
* @readonly
|
|
93
|
+
* The largest value representable as `PositiveSafeInt`.
|
|
95
94
|
*/
|
|
96
95
|
readonly MAX_VALUE: SafeUint;
|
|
97
96
|
/**
|
|
98
|
-
* Returns the
|
|
97
|
+
* Returns the smallest of the given positive safe integers.
|
|
99
98
|
*
|
|
100
99
|
* @example
|
|
101
100
|
*
|
|
@@ -108,13 +107,12 @@ export declare const PositiveSafeInt: {
|
|
|
108
107
|
* assert.isTrue(smallest === 5);
|
|
109
108
|
* ```
|
|
110
109
|
*
|
|
111
|
-
* @param
|
|
112
|
-
* @
|
|
113
|
-
* @returns The minimum value as a PositiveSafeInt.
|
|
110
|
+
* @param values - The positive safe integers to compare (at least one required)
|
|
111
|
+
* @returns The smallest value as a `PositiveSafeInt`
|
|
114
112
|
*/
|
|
115
113
|
readonly min: (...values: readonly import("ts-type-forge").WithSmallInt<TtfImported_PositiveSafeInt>[]) => TtfImported_PositiveSafeInt;
|
|
116
114
|
/**
|
|
117
|
-
* Returns the
|
|
115
|
+
* Returns the largest of the given positive safe integers.
|
|
118
116
|
*
|
|
119
117
|
* @example
|
|
120
118
|
*
|
|
@@ -127,13 +125,13 @@ export declare const PositiveSafeInt: {
|
|
|
127
125
|
* assert.isTrue(largest === 10);
|
|
128
126
|
* ```
|
|
129
127
|
*
|
|
130
|
-
* @param
|
|
131
|
-
* @
|
|
132
|
-
* @returns The maximum value as a PositiveSafeInt.
|
|
128
|
+
* @param values - The positive safe integers to compare (at least one required)
|
|
129
|
+
* @returns The largest value as a `PositiveSafeInt`
|
|
133
130
|
*/
|
|
134
131
|
readonly max: (...values: readonly import("ts-type-forge").WithSmallInt<TtfImported_PositiveSafeInt>[]) => TtfImported_PositiveSafeInt;
|
|
135
132
|
/**
|
|
136
|
-
* Clamps a number
|
|
133
|
+
* Clamps a `number` into the `PositiveSafeInt` range, rounding to the nearest
|
|
134
|
+
* integer and constraining the result to `[MIN_VALUE, MAX_VALUE]`.
|
|
137
135
|
*
|
|
138
136
|
* @example
|
|
139
137
|
*
|
|
@@ -151,12 +149,14 @@ export declare const PositiveSafeInt: {
|
|
|
151
149
|
* assert.isTrue(aboveRange === Number.MAX_SAFE_INTEGER);
|
|
152
150
|
* ```
|
|
153
151
|
*
|
|
154
|
-
* @param value The
|
|
155
|
-
* @returns The
|
|
152
|
+
* @param value - The value to clamp
|
|
153
|
+
* @returns The clamped value as a `PositiveSafeInt`
|
|
156
154
|
*/
|
|
157
155
|
readonly clamp: (x: number) => TtfImported_PositiveSafeInt;
|
|
158
156
|
/**
|
|
159
|
-
* Generates a random PositiveSafeInt
|
|
157
|
+
* Generates a random `PositiveSafeInt` within the given range.
|
|
158
|
+
*
|
|
159
|
+
* The range is inclusive on both ends.
|
|
160
160
|
*
|
|
161
161
|
* @example
|
|
162
162
|
*
|
|
@@ -172,11 +172,14 @@ export declare const PositiveSafeInt: {
|
|
|
172
172
|
* assert.isTrue(randomValue >= 1 && randomValue <= 6);
|
|
173
173
|
* ```
|
|
174
174
|
*
|
|
175
|
-
* @
|
|
175
|
+
* @param min - The minimum value (inclusive)
|
|
176
|
+
* @param max - The maximum value (inclusive)
|
|
177
|
+
* @returns A random `PositiveSafeInt` in `[min, max]`
|
|
176
178
|
*/
|
|
177
179
|
readonly random: (min?: import("ts-type-forge").WithSmallInt<TtfImported_PositiveSafeInt> | undefined, max?: import("ts-type-forge").WithSmallInt<TtfImported_PositiveSafeInt> | undefined) => TtfImported_PositiveSafeInt;
|
|
178
180
|
/**
|
|
179
|
-
* Raises a
|
|
181
|
+
* Raises `a` to the power `b`, returning `a ** b` as a `PositiveSafeInt`
|
|
182
|
+
* (floored to an integer).
|
|
180
183
|
*
|
|
181
184
|
* @example
|
|
182
185
|
*
|
|
@@ -190,13 +193,13 @@ export declare const PositiveSafeInt: {
|
|
|
190
193
|
* assert.isTrue(power === 27);
|
|
191
194
|
* ```
|
|
192
195
|
*
|
|
193
|
-
* @param a The base
|
|
194
|
-
* @param b The exponent
|
|
195
|
-
* @returns `a ** b`
|
|
196
|
+
* @param a - The base positive safe integer
|
|
197
|
+
* @param b - The exponent positive safe integer
|
|
198
|
+
* @returns `a ** b` as a `PositiveSafeInt`
|
|
196
199
|
*/
|
|
197
200
|
readonly pow: (x: import("ts-type-forge").WithSmallInt<TtfImported_PositiveSafeInt>, y: import("ts-type-forge").WithSmallInt<TtfImported_PositiveSafeInt>) => TtfImported_PositiveSafeInt;
|
|
198
201
|
/**
|
|
199
|
-
* Adds two PositiveSafeInt
|
|
202
|
+
* Adds two positive safe integers, returning `a + b` as a `PositiveSafeInt`.
|
|
200
203
|
*
|
|
201
204
|
* @example
|
|
202
205
|
*
|
|
@@ -211,13 +214,14 @@ export declare const PositiveSafeInt: {
|
|
|
211
214
|
* assert.isTrue(PositiveSafeInt.is(sum));
|
|
212
215
|
* ```
|
|
213
216
|
*
|
|
214
|
-
* @param a The first
|
|
215
|
-
* @param b The second
|
|
216
|
-
* @returns `a
|
|
217
|
+
* @param a - The first positive safe integer
|
|
218
|
+
* @param b - The second positive safe integer
|
|
219
|
+
* @returns The sum of `a` and `b` as a `PositiveSafeInt`
|
|
217
220
|
*/
|
|
218
221
|
readonly add: (x: import("ts-type-forge").WithSmallInt<TtfImported_PositiveSafeInt>, y: import("ts-type-forge").WithSmallInt<TtfImported_PositiveSafeInt>) => TtfImported_PositiveSafeInt;
|
|
219
222
|
/**
|
|
220
|
-
* Subtracts
|
|
223
|
+
* Subtracts two positive safe integers, returning `a - b` as a
|
|
224
|
+
* `PositiveSafeInt`.
|
|
221
225
|
*
|
|
222
226
|
* @example
|
|
223
227
|
*
|
|
@@ -232,14 +236,14 @@ export declare const PositiveSafeInt: {
|
|
|
232
236
|
* assert.isTrue(PositiveSafeInt.is(difference));
|
|
233
237
|
* ```
|
|
234
238
|
*
|
|
235
|
-
* @param a The
|
|
236
|
-
* @param b The
|
|
237
|
-
* @returns `a
|
|
238
|
-
* (minimum 1).
|
|
239
|
+
* @param a - The first positive safe integer
|
|
240
|
+
* @param b - The second positive safe integer
|
|
241
|
+
* @returns The difference of `a` and `b` as a `PositiveSafeInt`
|
|
239
242
|
*/
|
|
240
243
|
readonly sub: (x: import("ts-type-forge").WithSmallInt<TtfImported_PositiveSafeInt>, y: import("ts-type-forge").WithSmallInt<TtfImported_PositiveSafeInt>) => TtfImported_PositiveSafeInt;
|
|
241
244
|
/**
|
|
242
|
-
* Multiplies two
|
|
245
|
+
* Multiplies two positive safe integers, returning `a * b` as a
|
|
246
|
+
* `PositiveSafeInt`.
|
|
243
247
|
*
|
|
244
248
|
* @example
|
|
245
249
|
*
|
|
@@ -254,13 +258,14 @@ export declare const PositiveSafeInt: {
|
|
|
254
258
|
* assert.isTrue(PositiveSafeInt.is(product));
|
|
255
259
|
* ```
|
|
256
260
|
*
|
|
257
|
-
* @param a The first
|
|
258
|
-
* @param b The second
|
|
259
|
-
* @returns `a
|
|
261
|
+
* @param a - The first positive safe integer
|
|
262
|
+
* @param b - The second positive safe integer
|
|
263
|
+
* @returns The product of `a` and `b` as a `PositiveSafeInt`
|
|
260
264
|
*/
|
|
261
265
|
readonly mul: (x: import("ts-type-forge").WithSmallInt<TtfImported_PositiveSafeInt>, y: import("ts-type-forge").WithSmallInt<TtfImported_PositiveSafeInt>) => TtfImported_PositiveSafeInt;
|
|
262
266
|
/**
|
|
263
|
-
* Divides
|
|
267
|
+
* Divides two positive safe integers using floor division (`⌊a / b⌋`): the
|
|
268
|
+
* result is `a / b` rounded toward negative infinity, as a `PositiveSafeInt`.
|
|
264
269
|
*
|
|
265
270
|
* @example
|
|
266
271
|
*
|
|
@@ -280,9 +285,9 @@ export declare const PositiveSafeInt: {
|
|
|
280
285
|
* assert.isTrue(clamped === 1);
|
|
281
286
|
* ```
|
|
282
287
|
*
|
|
283
|
-
* @param a The dividend
|
|
284
|
-
* @param b The divisor
|
|
285
|
-
* @returns
|
|
288
|
+
* @param a - The dividend
|
|
289
|
+
* @param b - The divisor (must be non-zero)
|
|
290
|
+
* @returns The floored quotient as a `PositiveSafeInt`
|
|
286
291
|
*/
|
|
287
292
|
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
293
|
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;;OAEG;;IAGH;;OAEG;;IAGH;;;;;;;;;;;;;;;;OAgBG;;IAGH;;;;;;;;;;;;;;;;OAgBG;;IAGH;;;;;;;;;;;;;;;;;;;;;;OAsBG;;IAGH;;;;;;;;;;;;;;;;;;;;;;OAsBG;;IAGH;;;;;;;;;;;;;;;;;;;OAmBG;;IAGH;;;;;;;;;;;;;;;;;;;OAmBG;;IAGH;;;;;;;;;;;;;;;;;;;;OAoBG;;IAGH;;;;;;;;;;;;;;;;;;;;OAoBG;;IAGH;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;;;;;;;;;;;;;;;;CAEK,CAAC"}
|
|
@@ -26,7 +26,7 @@ const isPositiveSafeInt = is;
|
|
|
26
26
|
const asPositiveSafeInt = castType;
|
|
27
27
|
const PositiveSafeInt = {
|
|
28
28
|
/**
|
|
29
|
-
* Type guard
|
|
29
|
+
* Type guard that checks if a value is a positive safe integer.
|
|
30
30
|
*
|
|
31
31
|
* @example
|
|
32
32
|
*
|
|
@@ -40,25 +40,21 @@ const PositiveSafeInt = {
|
|
|
40
40
|
* assert.isTrue(PositiveSafeInt.is(42));
|
|
41
41
|
* ```
|
|
42
42
|
*
|
|
43
|
-
* @param value The value to check
|
|
44
|
-
* @returns `true` if the value is a positive safe integer, `false` otherwise
|
|
43
|
+
* @param value - The value to check
|
|
44
|
+
* @returns `true` if the value is a positive safe integer, `false` otherwise
|
|
45
45
|
* @see {@link isPositiveSafeInt} for usage examples
|
|
46
46
|
*/
|
|
47
47
|
is,
|
|
48
48
|
/**
|
|
49
|
-
* The
|
|
50
|
-
*
|
|
51
|
-
* @readonly
|
|
49
|
+
* The smallest value representable as `PositiveSafeInt`.
|
|
52
50
|
*/
|
|
53
51
|
MIN_VALUE,
|
|
54
52
|
/**
|
|
55
|
-
* The
|
|
56
|
-
*
|
|
57
|
-
* @readonly
|
|
53
|
+
* The largest value representable as `PositiveSafeInt`.
|
|
58
54
|
*/
|
|
59
55
|
MAX_VALUE,
|
|
60
56
|
/**
|
|
61
|
-
* Returns the
|
|
57
|
+
* Returns the smallest of the given positive safe integers.
|
|
62
58
|
*
|
|
63
59
|
* @example
|
|
64
60
|
*
|
|
@@ -71,13 +67,12 @@ const PositiveSafeInt = {
|
|
|
71
67
|
* assert.isTrue(smallest === 5);
|
|
72
68
|
* ```
|
|
73
69
|
*
|
|
74
|
-
* @param
|
|
75
|
-
* @
|
|
76
|
-
* @returns The minimum value as a PositiveSafeInt.
|
|
70
|
+
* @param values - The positive safe integers to compare (at least one required)
|
|
71
|
+
* @returns The smallest value as a `PositiveSafeInt`
|
|
77
72
|
*/
|
|
78
73
|
min: min_,
|
|
79
74
|
/**
|
|
80
|
-
* Returns the
|
|
75
|
+
* Returns the largest of the given positive safe integers.
|
|
81
76
|
*
|
|
82
77
|
* @example
|
|
83
78
|
*
|
|
@@ -90,13 +85,13 @@ const PositiveSafeInt = {
|
|
|
90
85
|
* assert.isTrue(largest === 10);
|
|
91
86
|
* ```
|
|
92
87
|
*
|
|
93
|
-
* @param
|
|
94
|
-
* @
|
|
95
|
-
* @returns The maximum value as a PositiveSafeInt.
|
|
88
|
+
* @param values - The positive safe integers to compare (at least one required)
|
|
89
|
+
* @returns The largest value as a `PositiveSafeInt`
|
|
96
90
|
*/
|
|
97
91
|
max: max_,
|
|
98
92
|
/**
|
|
99
|
-
* Clamps a number
|
|
93
|
+
* Clamps a `number` into the `PositiveSafeInt` range, rounding to the nearest
|
|
94
|
+
* integer and constraining the result to `[MIN_VALUE, MAX_VALUE]`.
|
|
100
95
|
*
|
|
101
96
|
* @example
|
|
102
97
|
*
|
|
@@ -114,12 +109,14 @@ const PositiveSafeInt = {
|
|
|
114
109
|
* assert.isTrue(aboveRange === Number.MAX_SAFE_INTEGER);
|
|
115
110
|
* ```
|
|
116
111
|
*
|
|
117
|
-
* @param value The
|
|
118
|
-
* @returns The
|
|
112
|
+
* @param value - The value to clamp
|
|
113
|
+
* @returns The clamped value as a `PositiveSafeInt`
|
|
119
114
|
*/
|
|
120
115
|
clamp,
|
|
121
116
|
/**
|
|
122
|
-
* Generates a random PositiveSafeInt
|
|
117
|
+
* Generates a random `PositiveSafeInt` within the given range.
|
|
118
|
+
*
|
|
119
|
+
* The range is inclusive on both ends.
|
|
123
120
|
*
|
|
124
121
|
* @example
|
|
125
122
|
*
|
|
@@ -135,11 +132,14 @@ const PositiveSafeInt = {
|
|
|
135
132
|
* assert.isTrue(randomValue >= 1 && randomValue <= 6);
|
|
136
133
|
* ```
|
|
137
134
|
*
|
|
138
|
-
* @
|
|
135
|
+
* @param min - The minimum value (inclusive)
|
|
136
|
+
* @param max - The maximum value (inclusive)
|
|
137
|
+
* @returns A random `PositiveSafeInt` in `[min, max]`
|
|
139
138
|
*/
|
|
140
139
|
random,
|
|
141
140
|
/**
|
|
142
|
-
* Raises a
|
|
141
|
+
* Raises `a` to the power `b`, returning `a ** b` as a `PositiveSafeInt`
|
|
142
|
+
* (floored to an integer).
|
|
143
143
|
*
|
|
144
144
|
* @example
|
|
145
145
|
*
|
|
@@ -153,13 +153,13 @@ const PositiveSafeInt = {
|
|
|
153
153
|
* assert.isTrue(power === 27);
|
|
154
154
|
* ```
|
|
155
155
|
*
|
|
156
|
-
* @param a The base
|
|
157
|
-
* @param b The exponent
|
|
158
|
-
* @returns `a ** b`
|
|
156
|
+
* @param a - The base positive safe integer
|
|
157
|
+
* @param b - The exponent positive safe integer
|
|
158
|
+
* @returns `a ** b` as a `PositiveSafeInt`
|
|
159
159
|
*/
|
|
160
160
|
pow,
|
|
161
161
|
/**
|
|
162
|
-
* Adds two PositiveSafeInt
|
|
162
|
+
* Adds two positive safe integers, returning `a + b` as a `PositiveSafeInt`.
|
|
163
163
|
*
|
|
164
164
|
* @example
|
|
165
165
|
*
|
|
@@ -174,13 +174,14 @@ const PositiveSafeInt = {
|
|
|
174
174
|
* assert.isTrue(PositiveSafeInt.is(sum));
|
|
175
175
|
* ```
|
|
176
176
|
*
|
|
177
|
-
* @param a The first
|
|
178
|
-
* @param b The second
|
|
179
|
-
* @returns `a
|
|
177
|
+
* @param a - The first positive safe integer
|
|
178
|
+
* @param b - The second positive safe integer
|
|
179
|
+
* @returns The sum of `a` and `b` as a `PositiveSafeInt`
|
|
180
180
|
*/
|
|
181
181
|
add,
|
|
182
182
|
/**
|
|
183
|
-
* Subtracts
|
|
183
|
+
* Subtracts two positive safe integers, returning `a - b` as a
|
|
184
|
+
* `PositiveSafeInt`.
|
|
184
185
|
*
|
|
185
186
|
* @example
|
|
186
187
|
*
|
|
@@ -195,14 +196,14 @@ const PositiveSafeInt = {
|
|
|
195
196
|
* assert.isTrue(PositiveSafeInt.is(difference));
|
|
196
197
|
* ```
|
|
197
198
|
*
|
|
198
|
-
* @param a The
|
|
199
|
-
* @param b The
|
|
200
|
-
* @returns `a
|
|
201
|
-
* (minimum 1).
|
|
199
|
+
* @param a - The first positive safe integer
|
|
200
|
+
* @param b - The second positive safe integer
|
|
201
|
+
* @returns The difference of `a` and `b` as a `PositiveSafeInt`
|
|
202
202
|
*/
|
|
203
203
|
sub,
|
|
204
204
|
/**
|
|
205
|
-
* Multiplies two
|
|
205
|
+
* Multiplies two positive safe integers, returning `a * b` as a
|
|
206
|
+
* `PositiveSafeInt`.
|
|
206
207
|
*
|
|
207
208
|
* @example
|
|
208
209
|
*
|
|
@@ -217,13 +218,14 @@ const PositiveSafeInt = {
|
|
|
217
218
|
* assert.isTrue(PositiveSafeInt.is(product));
|
|
218
219
|
* ```
|
|
219
220
|
*
|
|
220
|
-
* @param a The first
|
|
221
|
-
* @param b The second
|
|
222
|
-
* @returns `a
|
|
221
|
+
* @param a - The first positive safe integer
|
|
222
|
+
* @param b - The second positive safe integer
|
|
223
|
+
* @returns The product of `a` and `b` as a `PositiveSafeInt`
|
|
223
224
|
*/
|
|
224
225
|
mul,
|
|
225
226
|
/**
|
|
226
|
-
* Divides
|
|
227
|
+
* Divides two positive safe integers using floor division (`⌊a / b⌋`): the
|
|
228
|
+
* result is `a / b` rounded toward negative infinity, as a `PositiveSafeInt`.
|
|
227
229
|
*
|
|
228
230
|
* @example
|
|
229
231
|
*
|
|
@@ -243,9 +245,9 @@ const PositiveSafeInt = {
|
|
|
243
245
|
* assert.isTrue(clamped === 1);
|
|
244
246
|
* ```
|
|
245
247
|
*
|
|
246
|
-
* @param a The dividend
|
|
247
|
-
* @param b The divisor
|
|
248
|
-
* @returns
|
|
248
|
+
* @param a - The dividend
|
|
249
|
+
* @param b - The divisor (must be non-zero)
|
|
250
|
+
* @returns The floored quotient as a `PositiveSafeInt`
|
|
249
251
|
*/
|
|
250
252
|
div
|
|
251
253
|
};
|