ts-data-forge 14.6.2 → 14.6.3

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.
Files changed (182) hide show
  1. package/dist/array/impl/array-utils-creation.mjs +103 -103
  2. package/dist/array/impl/array-utils-element-access.mjs +46 -46
  3. package/dist/array/impl/array-utils-iterators.mjs +54 -54
  4. package/dist/array/impl/array-utils-length-bounded-array-cast.mjs +49 -49
  5. package/dist/array/impl/array-utils-length-bounded-array-guard.mjs +40 -40
  6. package/dist/array/impl/array-utils-length-bounded-tuple-cast.mjs +42 -42
  7. package/dist/array/impl/array-utils-length-bounded-tuple-guard.mjs +46 -46
  8. package/dist/array/impl/array-utils-modification.mjs +4 -4
  9. package/dist/array/impl/array-utils-reducing-value.mjs +11 -11
  10. package/dist/array/impl/array-utils-search.mjs +6 -6
  11. package/dist/array/impl/array-utils-set-op.mjs +116 -116
  12. package/dist/array/impl/array-utils-size.mjs +6 -6
  13. package/dist/array/impl/array-utils-slice-clamped.mjs +1 -1
  14. package/dist/array/impl/array-utils-slicing.mjs +56 -56
  15. package/dist/array/impl/array-utils-transformation.mjs +156 -156
  16. package/dist/array/impl/array-utils-validation.mjs +36 -36
  17. package/dist/collections/imap-mapped.mjs +195 -195
  18. package/dist/collections/imap.mjs +143 -143
  19. package/dist/collections/iset-mapped.mjs +320 -320
  20. package/dist/collections/iset.mjs +207 -207
  21. package/dist/collections/queue.mjs +130 -130
  22. package/dist/collections/stack.mjs +125 -125
  23. package/dist/expect-type.mjs +68 -68
  24. package/dist/functional/async-result/impl/async-result-flat-map.mjs +3 -3
  25. package/dist/functional/async-result/impl/async-result-map-err.mjs +2 -2
  26. package/dist/functional/async-result/impl/async-result-map.mjs +2 -2
  27. package/dist/functional/async-result/impl/async-result-unwrap-or.mjs +31 -31
  28. package/dist/functional/optional/impl/optional-expect-to-be.mjs +1 -1
  29. package/dist/functional/optional/impl/optional-filter.mjs +1 -1
  30. package/dist/functional/optional/impl/optional-flat-map.mjs +1 -1
  31. package/dist/functional/optional/impl/optional-from-nullable.mjs +24 -24
  32. package/dist/functional/optional/impl/optional-is-none.mjs +19 -19
  33. package/dist/functional/optional/impl/optional-is-optional.mjs +18 -18
  34. package/dist/functional/optional/impl/optional-is-some.mjs +20 -20
  35. package/dist/functional/optional/impl/optional-map.mjs +2 -2
  36. package/dist/functional/optional/impl/optional-match.mjs +2 -2
  37. package/dist/functional/optional/impl/optional-none.mjs +16 -16
  38. package/dist/functional/optional/impl/optional-or-else.mjs +1 -1
  39. package/dist/functional/optional/impl/optional-some.mjs +19 -19
  40. package/dist/functional/optional/impl/optional-to-nullable.mjs +26 -26
  41. package/dist/functional/optional/impl/optional-unwrap-or.mjs +1 -1
  42. package/dist/functional/optional/impl/optional-unwrap-throw.mjs +28 -28
  43. package/dist/functional/optional/impl/optional-unwrap.mjs +1 -1
  44. package/dist/functional/optional/impl/optional-zip.mjs +32 -32
  45. package/dist/functional/optional/impl/tag.mjs +1 -1
  46. package/dist/functional/pipe.mjs +19 -19
  47. package/dist/functional/result/impl/result-err.mjs +25 -25
  48. package/dist/functional/result/impl/result-expect-to-be.mjs +2 -2
  49. package/dist/functional/result/impl/result-flat-map.mjs +4 -4
  50. package/dist/functional/result/impl/result-fold.mjs +4 -4
  51. package/dist/functional/result/impl/result-from-optional.mjs +2 -2
  52. package/dist/functional/result/impl/result-from-promise.mjs +34 -34
  53. package/dist/functional/result/impl/result-from-throwable.mjs +29 -29
  54. package/dist/functional/result/impl/result-is-err.mjs +19 -19
  55. package/dist/functional/result/impl/result-is-ok.mjs +19 -19
  56. package/dist/functional/result/impl/result-is-result.mjs +19 -19
  57. package/dist/functional/result/impl/result-map-err.mjs +4 -4
  58. package/dist/functional/result/impl/result-map.mjs +4 -4
  59. package/dist/functional/result/impl/result-match.mjs +3 -3
  60. package/dist/functional/result/impl/result-ok.mjs +25 -25
  61. package/dist/functional/result/impl/result-or-else.mjs +2 -2
  62. package/dist/functional/result/impl/result-safe-try.mjs +15 -15
  63. package/dist/functional/result/impl/result-safe-unwrap.mjs +33 -33
  64. package/dist/functional/result/impl/result-swap.mjs +20 -20
  65. package/dist/functional/result/impl/result-to-optional.mjs +27 -27
  66. package/dist/functional/result/impl/result-unwrap-err-or.mjs +2 -2
  67. package/dist/functional/result/impl/result-unwrap-err-throw.mjs +31 -31
  68. package/dist/functional/result/impl/result-unwrap-err.mjs +30 -30
  69. package/dist/functional/result/impl/result-unwrap-ok-or.mjs +2 -2
  70. package/dist/functional/result/impl/result-unwrap-ok.mjs +1 -1
  71. package/dist/functional/result/impl/result-unwrap-throw.mjs +31 -31
  72. package/dist/functional/result/impl/result-zip.mjs +29 -29
  73. package/dist/functional/result/impl/tag.mjs +1 -1
  74. package/dist/functional/ternary-result/impl/tag.mjs +2 -2
  75. package/dist/functional/ternary-result/impl/ternary-result-err.mjs +13 -13
  76. package/dist/functional/ternary-result/impl/ternary-result-flat-map.mjs +4 -4
  77. package/dist/functional/ternary-result/impl/ternary-result-fold.mjs +4 -4
  78. package/dist/functional/ternary-result/impl/ternary-result-from-promise.mjs +18 -18
  79. package/dist/functional/ternary-result/impl/ternary-result-from-throwable.mjs +17 -17
  80. package/dist/functional/ternary-result/impl/ternary-result-is-err.mjs +17 -17
  81. package/dist/functional/ternary-result/impl/ternary-result-is-ok.mjs +19 -19
  82. package/dist/functional/ternary-result/impl/ternary-result-is-ternary-result.mjs +19 -19
  83. package/dist/functional/ternary-result/impl/ternary-result-is-warn.mjs +18 -18
  84. package/dist/functional/ternary-result/impl/ternary-result-map-err.mjs +2 -2
  85. package/dist/functional/ternary-result/impl/ternary-result-map-warn.mjs +3 -3
  86. package/dist/functional/ternary-result/impl/ternary-result-map.mjs +4 -4
  87. package/dist/functional/ternary-result/impl/ternary-result-ok.mjs +14 -14
  88. package/dist/functional/ternary-result/impl/ternary-result-to-optional.mjs +19 -19
  89. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-throw.mjs +19 -19
  90. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err.mjs +17 -17
  91. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok.mjs +1 -1
  92. package/dist/functional/ternary-result/impl/ternary-result-unwrap-throw.mjs +20 -20
  93. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-throw.mjs +18 -18
  94. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn.mjs +17 -17
  95. package/dist/functional/ternary-result/impl/ternary-result-warn.mjs +16 -16
  96. package/dist/functional/ternary-result/impl/ternary-result-zip.mjs +31 -31
  97. package/dist/functional/ternary-result/impl/variant-name.mjs +1 -1
  98. package/dist/guard/has-key.mjs +41 -41
  99. package/dist/guard/is-non-empty-string.mjs +37 -37
  100. package/dist/guard/is-non-null-object.mjs +34 -34
  101. package/dist/guard/is-primitive.mjs +31 -31
  102. package/dist/guard/is-record.mjs +86 -86
  103. package/dist/guard/is-type.mjs +387 -387
  104. package/dist/guard/key-is-in.mjs +40 -40
  105. package/dist/iterator/range.mjs +1 -1
  106. package/dist/json/json.mjs +289 -289
  107. package/dist/number/branded-types/finite-number.mjs +116 -116
  108. package/dist/number/branded-types/int.mjs +223 -223
  109. package/dist/number/branded-types/int16.mjs +116 -116
  110. package/dist/number/branded-types/int32.mjs +116 -116
  111. package/dist/number/branded-types/negative-finite-number.mjs +126 -126
  112. package/dist/number/branded-types/negative-int.mjs +104 -104
  113. package/dist/number/branded-types/negative-safe-int.mjs +104 -104
  114. package/dist/number/branded-types/non-negative-finite-number.mjs +132 -132
  115. package/dist/number/branded-types/non-negative-int16.mjs +113 -113
  116. package/dist/number/branded-types/non-negative-int32.mjs +113 -113
  117. package/dist/number/branded-types/non-positive-finite-number.mjs +116 -116
  118. package/dist/number/branded-types/non-positive-int.mjs +97 -97
  119. package/dist/number/branded-types/non-positive-safe-int.mjs +98 -98
  120. package/dist/number/branded-types/non-zero-finite-number.mjs +112 -112
  121. package/dist/number/branded-types/non-zero-int.mjs +82 -82
  122. package/dist/number/branded-types/non-zero-int16.mjs +95 -95
  123. package/dist/number/branded-types/non-zero-int32.mjs +95 -95
  124. package/dist/number/branded-types/non-zero-safe-int.mjs +99 -99
  125. package/dist/number/branded-types/non-zero-uint16.mjs +95 -95
  126. package/dist/number/branded-types/non-zero-uint32.mjs +95 -95
  127. package/dist/number/branded-types/positive-finite-number.mjs +134 -134
  128. package/dist/number/branded-types/positive-int.mjs +237 -237
  129. package/dist/number/branded-types/positive-int16.mjs +110 -110
  130. package/dist/number/branded-types/positive-int32.mjs +110 -110
  131. package/dist/number/branded-types/positive-safe-int.mjs +268 -268
  132. package/dist/number/branded-types/positive-uint16.mjs +110 -110
  133. package/dist/number/branded-types/positive-uint32.mjs +110 -110
  134. package/dist/number/branded-types/safe-int.mjs +259 -259
  135. package/dist/number/branded-types/safe-uint.mjs +111 -111
  136. package/dist/number/branded-types/uint.mjs +225 -225
  137. package/dist/number/branded-types/uint16.mjs +108 -108
  138. package/dist/number/branded-types/uint32.mjs +108 -108
  139. package/dist/number/enum/int8.mjs +118 -118
  140. package/dist/number/enum/uint8.mjs +109 -109
  141. package/dist/number/num-arithmetic-types.mjs +1 -1
  142. package/dist/number/num.mjs +478 -478
  143. package/dist/number/refined-number-utils.mjs +170 -170
  144. package/dist/object/object.mjs +234 -234
  145. package/dist/others/cast-mutable.mjs +33 -33
  146. package/dist/others/cast-readonly.mjs +32 -32
  147. package/dist/others/debounce-function.mjs +13 -13
  148. package/dist/others/fast-deep-equal.mjs +14 -14
  149. package/dist/others/if-then.mjs +29 -29
  150. package/dist/others/tuple.mjs +50 -50
  151. package/dist/others/unknown-to-string.mjs +38 -38
  152. package/dist/promise/promise.mjs +47 -47
  153. package/dist/string/str.mjs +177 -177
  154. package/dist/types.mjs +1 -1
  155. package/package.json +6 -6
  156. package/src/guard/is-type.test.mts +2 -2
  157. package/src/number/branded-types/finite-number.test.mts +1 -1
  158. package/src/number/branded-types/int.test.mts +1 -1
  159. package/src/number/branded-types/int16.test.mts +1 -1
  160. package/src/number/branded-types/int32.test.mts +1 -1
  161. package/src/number/branded-types/non-negative-finite-number.test.mts +1 -1
  162. package/src/number/branded-types/non-negative-int16.test.mts +1 -1
  163. package/src/number/branded-types/non-negative-int32.test.mts +1 -1
  164. package/src/number/branded-types/non-zero-finite-number.test.mts +1 -1
  165. package/src/number/branded-types/non-zero-int.test.mts +1 -1
  166. package/src/number/branded-types/non-zero-int16.test.mts +1 -1
  167. package/src/number/branded-types/non-zero-int32.test.mts +1 -1
  168. package/src/number/branded-types/non-zero-safe-int.test.mts +1 -1
  169. package/src/number/branded-types/non-zero-uint16.test.mts +1 -1
  170. package/src/number/branded-types/non-zero-uint32.test.mts +1 -1
  171. package/src/number/branded-types/positive-finite-number.test.mts +1 -1
  172. package/src/number/branded-types/positive-int.test.mts +1 -1
  173. package/src/number/branded-types/positive-int16.test.mts +1 -1
  174. package/src/number/branded-types/positive-int32.test.mts +1 -1
  175. package/src/number/branded-types/positive-safe-int.test.mts +1 -1
  176. package/src/number/branded-types/positive-uint16.test.mts +1 -1
  177. package/src/number/branded-types/positive-uint32.test.mts +1 -1
  178. package/src/number/branded-types/safe-int.test.mts +1 -1
  179. package/src/number/branded-types/safe-uint.test.mts +1 -1
  180. package/src/number/branded-types/uint.test.mts +1 -1
  181. package/src/number/branded-types/uint16.test.mts +1 -1
  182. package/src/number/branded-types/uint32.test.mts +1 -1
@@ -8,113 +8,113 @@ const { MAX_VALUE, MIN_VALUE, abs, castType, fromNumber, is, max: max_, min: min
8
8
  MAX_VALUE: 2 ** 31 - 1,
9
9
  typeNameInMessage,
10
10
  });
11
- /**
12
- * Type guard that checks if a value is a non-zero integer in [-2^31, 2^31).
13
- *
14
- * Returns `true` for a non-zero integer in [-2^31, 2^31) — a value with no
15
- * fractional component.
16
- *
17
- * @param value - The value to check
18
- * @returns `true` if the value is a non-zero integer in [-2^31, 2^31), `false` otherwise
19
- */
11
+
12
+
13
+
14
+
15
+
16
+
17
+
18
+
19
+
20
20
  export const isNonZeroInt32 = is;
21
- /**
22
- * Casts a `number` to the `NonZeroInt32` branded type.
23
- *
24
- * Validates that the value is a non-zero integer in [-2^31, 2^31) and returns
25
- * it with the `NonZeroInt32` brand. Throws a `TypeError` otherwise.
26
- *
27
- * @param value - The value to cast
28
- * @returns The value as a `NonZeroInt32`
29
- * @throws {TypeError} If the value is not a non-zero integer in [-2^31, 2^31)
30
- */
21
+
22
+
23
+
24
+
25
+
26
+
27
+
28
+
29
+
30
+
31
31
  export const asNonZeroInt32 = castType;
32
- /**
33
- * Namespace providing type-safe operations for the `NonZeroInt32` branded type.
34
- *
35
- * The `NonZeroInt32` type represents a non-zero integer in [-2^31, 2^31).
36
- * Division (`div`) uses floor division.
37
- */
32
+
33
+
34
+
35
+
36
+
37
+
38
38
  export const NonZeroInt32 = {
39
- /**
40
- * Type guard that checks if a value is a non-zero integer in [-2^31, 2^31).
41
- *
42
- * @param value - The value to check
43
- * @returns `true` if the value is a non-zero integer in [-2^31, 2^31), `false` otherwise
44
- * @see {@link isNonZeroInt32} for usage examples
45
- */
39
+
40
+
41
+
42
+
43
+
44
+
45
+
46
46
  is,
47
- /**
48
- * The smallest value representable as `NonZeroInt32` (the lower saturation
49
- * target of `fromNumber`).
50
- */
47
+
48
+
49
+
50
+
51
51
  MIN_VALUE,
52
- /**
53
- * The largest value representable as `NonZeroInt32` (the upper saturation
54
- * target of `fromNumber`).
55
- */
52
+
53
+
54
+
55
+
56
56
  MAX_VALUE,
57
- /**
58
- * Returns the absolute value of a non-zero integer in [-2^31, 2^31).
59
- *
60
- * The result is non-negative and keeps the `NonZeroInt32` brand.
61
- *
62
- * @param a - The non-zero integer value
63
- * @returns The absolute value as a non-negative `NonZeroInt32`
64
- */
57
+
58
+
59
+
60
+
61
+
62
+
63
+
64
+
65
65
  abs,
66
- /**
67
- * Returns the smallest of the given non-zero integers.
68
- *
69
- * @param values - The non-zero integers to compare (at least one required)
70
- * @returns The smallest value as a `NonZeroInt32`
71
- */
66
+
67
+
68
+
69
+
70
+
71
+
72
72
  min: min_,
73
- /**
74
- * Returns the largest of the given non-zero integers.
75
- *
76
- * @param values - The non-zero integers to compare (at least one required)
77
- * @returns The largest value as a `NonZeroInt32`
78
- */
73
+
74
+
75
+
76
+
77
+
78
+
79
79
  max: max_,
80
- /**
81
- * Converts an arbitrary `number` into a `NonZeroInt32`, rounding to the
82
- * nearest integer and saturating the result into the range `[MIN_VALUE,
83
- * MAX_VALUE]`.
84
- *
85
- * Unlike `asNonZeroInt32`, this is total: out-of-range inputs are clamped to
86
- * the nearest representable `NonZeroInt32` instead of throwing.
87
- *
88
- * @param value - The value to convert
89
- * @returns The value as a `NonZeroInt32`
90
- */
80
+
81
+
82
+
83
+
84
+
85
+
86
+
87
+
88
+
89
+
90
+
91
91
  fromNumber,
92
- /**
93
- * Generates a random `NonZeroInt32` within the given range.
94
- *
95
- * The range is inclusive on both ends.
96
- *
97
- * @param min - The minimum value (inclusive)
98
- * @param max - The maximum value (inclusive)
99
- * @returns A random `NonZeroInt32` in `[min, max]`
100
- */
92
+
93
+
94
+
95
+
96
+
97
+
98
+
99
+
100
+
101
101
  random,
102
- /**
103
- * Raises `a` to the power `b`, returning `a ** b` as a `NonZeroInt32`
104
- * (floored to an integer).
105
- *
106
- * @param a - The base non-zero integer
107
- * @param b - The exponent non-zero integer
108
- * @returns `a ** b` as a `NonZeroInt32`
109
- */
102
+
103
+
104
+
105
+
106
+
107
+
108
+
109
+
110
110
  pow,
111
- /**
112
- * Multiplies two non-zero integers, returning `a * b` as a `NonZeroInt32`.
113
- *
114
- * @param a - The first non-zero integer
115
- * @param b - The second non-zero integer
116
- * @returns The product of `a` and `b` as a `NonZeroInt32`
117
- */
111
+
112
+
113
+
114
+
115
+
116
+
117
+
118
118
  mul,
119
119
  };
120
120
 
@@ -4,121 +4,121 @@ const typeNameInMessage = 'a non-zero safe integer';
4
4
  const { MAX_VALUE, MIN_VALUE, abs, castType, fromNumber, is, max: max_, min: min_, mul, pow, randomNonZero: random, } = TsDataForgeInternals.RefinedNumberUtils.operatorsForInteger({
5
5
  integerOrSafeInteger: 'SafeInteger',
6
6
  nonZero: true,
7
- // eslint-disable-next-line total-functions/no-unsafe-type-assertion, math/prefer-number-min-safe-integer
7
+
8
8
  MIN_VALUE: Number.MIN_SAFE_INTEGER,
9
- // eslint-disable-next-line total-functions/no-unsafe-type-assertion, math/prefer-number-max-safe-integer
9
+
10
10
  MAX_VALUE: Number.MAX_SAFE_INTEGER,
11
11
  typeNameInMessage,
12
12
  });
13
- /**
14
- * Type guard that checks if a value is a non-zero safe integer.
15
- *
16
- * Returns `true` for a non-zero safe integer — a value with no fractional
17
- * component.
18
- *
19
- * @param value - The value to check
20
- * @returns `true` if the value is a non-zero safe integer, `false` otherwise
21
- */
13
+
14
+
15
+
16
+
17
+
18
+
19
+
20
+
21
+
22
22
  export const isNonZeroSafeInt = is;
23
- /**
24
- * Casts a `number` to the `NonZeroSafeInt` branded type.
25
- *
26
- * Validates that the value is a non-zero safe integer and returns it with the
27
- * `NonZeroSafeInt` brand. Throws a `TypeError` otherwise.
28
- *
29
- * @param value - The value to cast
30
- * @returns The value as a `NonZeroSafeInt`
31
- * @throws {TypeError} If the value is not a non-zero safe integer
32
- */
23
+
24
+
25
+
26
+
27
+
28
+
29
+
30
+
31
+
32
+
33
33
  export const asNonZeroSafeInt = castType;
34
- /**
35
- * Namespace providing type-safe operations for the `NonZeroSafeInt` branded
36
- * type.
37
- *
38
- * The `NonZeroSafeInt` type represents a non-zero safe integer. Division
39
- * (`div`) uses floor division.
40
- */
34
+
35
+
36
+
37
+
38
+
39
+
40
+
41
41
  export const NonZeroSafeInt = {
42
- /**
43
- * Type guard that checks if a value is a non-zero safe integer.
44
- *
45
- * @param value - The value to check
46
- * @returns `true` if the value is a non-zero safe integer, `false` otherwise
47
- * @see {@link isNonZeroSafeInt} for usage examples
48
- */
42
+
43
+
44
+
45
+
46
+
47
+
48
+
49
49
  is,
50
- /**
51
- * The smallest value representable as `NonZeroSafeInt` (the lower saturation
52
- * target of `fromNumber`).
53
- */
50
+
51
+
52
+
53
+
54
54
  MIN_VALUE,
55
- /**
56
- * The largest value representable as `NonZeroSafeInt` (the upper saturation
57
- * target of `fromNumber`).
58
- */
55
+
56
+
57
+
58
+
59
59
  MAX_VALUE,
60
- /**
61
- * Returns the absolute value of a non-zero safe integer.
62
- *
63
- * The result is non-negative and keeps the `NonZeroSafeInt` brand.
64
- *
65
- * @param a - The non-zero safe integer value
66
- * @returns The absolute value as a non-negative `NonZeroSafeInt`
67
- */
60
+
61
+
62
+
63
+
64
+
65
+
66
+
67
+
68
68
  abs,
69
- /**
70
- * Returns the smallest of the given non-zero safe integers.
71
- *
72
- * @param values - The non-zero safe integers to compare (at least one required)
73
- * @returns The smallest value as a `NonZeroSafeInt`
74
- */
69
+
70
+
71
+
72
+
73
+
74
+
75
75
  min: min_,
76
- /**
77
- * Returns the largest of the given non-zero safe integers.
78
- *
79
- * @param values - The non-zero safe integers to compare (at least one required)
80
- * @returns The largest value as a `NonZeroSafeInt`
81
- */
76
+
77
+
78
+
79
+
80
+
81
+
82
82
  max: max_,
83
- /**
84
- * Converts an arbitrary `number` into a `NonZeroSafeInt`, rounding to the
85
- * nearest integer and saturating the result into the range `[MIN_VALUE,
86
- * MAX_VALUE]`.
87
- *
88
- * Unlike `asNonZeroSafeInt`, this is total: out-of-range inputs are clamped
89
- * to the nearest representable `NonZeroSafeInt` instead of throwing.
90
- *
91
- * @param value - The value to convert
92
- * @returns The value as a `NonZeroSafeInt`
93
- */
83
+
84
+
85
+
86
+
87
+
88
+
89
+
90
+
91
+
92
+
93
+
94
94
  fromNumber,
95
- /**
96
- * Generates a random `NonZeroSafeInt` within the given range.
97
- *
98
- * The range is inclusive on both ends.
99
- *
100
- * @param min - The minimum value (inclusive)
101
- * @param max - The maximum value (inclusive)
102
- * @returns A random `NonZeroSafeInt` in `[min, max]`
103
- */
95
+
96
+
97
+
98
+
99
+
100
+
101
+
102
+
103
+
104
104
  random,
105
- /**
106
- * Raises `a` to the power `b`, returning `a ** b` as a `NonZeroSafeInt`
107
- * (floored to an integer).
108
- *
109
- * @param a - The base non-zero safe integer
110
- * @param b - The exponent non-zero safe integer
111
- * @returns `a ** b` as a `NonZeroSafeInt`
112
- */
105
+
106
+
107
+
108
+
109
+
110
+
111
+
112
+
113
113
  pow,
114
- /**
115
- * Multiplies two non-zero safe integers, returning `a * b` as a
116
- * `NonZeroSafeInt`.
117
- *
118
- * @param a - The first non-zero safe integer
119
- * @param b - The second non-zero safe integer
120
- * @returns The product of `a` and `b` as a `NonZeroSafeInt`
121
- */
114
+
115
+
116
+
117
+
118
+
119
+
120
+
121
+
122
122
  mul,
123
123
  };
124
124
 
@@ -8,113 +8,113 @@ const { MAX_VALUE, MIN_VALUE, add, castType, fromNumber, is, max: max_, min: min
8
8
  MAX_VALUE: 2 ** 16 - 1,
9
9
  typeNameInMessage,
10
10
  });
11
- /**
12
- * Type guard that checks if a value is a non-zero integer in [1, 2^16).
13
- *
14
- * Returns `true` for a non-zero integer in [1, 2^16) — a value with no
15
- * fractional component.
16
- *
17
- * @param value - The value to check
18
- * @returns `true` if the value is a non-zero integer in [1, 2^16), `false` otherwise
19
- */
11
+
12
+
13
+
14
+
15
+
16
+
17
+
18
+
19
+
20
20
  export const isNonZeroUint16 = is;
21
- /**
22
- * Casts a `number` to the `NonZeroUint16` branded type.
23
- *
24
- * Validates that the value is a non-zero integer in [1, 2^16) and returns it
25
- * with the `NonZeroUint16` brand. Throws a `TypeError` otherwise.
26
- *
27
- * @param value - The value to cast
28
- * @returns The value as a `NonZeroUint16`
29
- * @throws {TypeError} If the value is not a non-zero integer in [1, 2^16)
30
- */
21
+
22
+
23
+
24
+
25
+
26
+
27
+
28
+
29
+
30
+
31
31
  export const asNonZeroUint16 = castType;
32
- /**
33
- * Namespace providing type-safe operations for the `NonZeroUint16` branded
34
- * type.
35
- *
36
- * The `NonZeroUint16` type represents a non-zero integer in [1, 2^16). Division
37
- * (`div`) uses floor division.
38
- */
32
+
33
+
34
+
35
+
36
+
37
+
38
+
39
39
  export const NonZeroUint16 = {
40
- /**
41
- * Type guard that checks if a value is a non-zero integer in [1, 2^16).
42
- *
43
- * @param value - The value to check
44
- * @returns `true` if the value is a non-zero integer in [1, 2^16), `false` otherwise
45
- * @see {@link isNonZeroUint16} for usage examples
46
- */
40
+
41
+
42
+
43
+
44
+
45
+
46
+
47
47
  is,
48
- /**
49
- * The smallest value representable as `NonZeroUint16` (the lower saturation
50
- * target of `fromNumber`).
51
- */
48
+
49
+
50
+
51
+
52
52
  MIN_VALUE,
53
- /**
54
- * The largest value representable as `NonZeroUint16` (the upper saturation
55
- * target of `fromNumber`).
56
- */
53
+
54
+
55
+
56
+
57
57
  MAX_VALUE,
58
- /**
59
- * Returns the smallest of the given non-zero integers.
60
- *
61
- * @param values - The non-zero integers to compare (at least one required)
62
- * @returns The smallest value as a `NonZeroUint16`
63
- */
58
+
59
+
60
+
61
+
62
+
63
+
64
64
  min: min_,
65
- /**
66
- * Returns the largest of the given non-zero integers.
67
- *
68
- * @param values - The non-zero integers to compare (at least one required)
69
- * @returns The largest value as a `NonZeroUint16`
70
- */
65
+
66
+
67
+
68
+
69
+
70
+
71
71
  max: max_,
72
- /**
73
- * Converts an arbitrary `number` into a `NonZeroUint16`, rounding to the
74
- * nearest integer and saturating the result into the range `[MIN_VALUE,
75
- * MAX_VALUE]`.
76
- *
77
- * Unlike `asNonZeroUint16`, this is total: out-of-range inputs are clamped to
78
- * the nearest representable `NonZeroUint16` instead of throwing.
79
- *
80
- * @param value - The value to convert
81
- * @returns The value as a `NonZeroUint16`
82
- */
72
+
73
+
74
+
75
+
76
+
77
+
78
+
79
+
80
+
81
+
82
+
83
83
  fromNumber,
84
- /**
85
- * Generates a random `NonZeroUint16` within the given range.
86
- *
87
- * The range is inclusive on both ends.
88
- *
89
- * @param min - The minimum value (inclusive)
90
- * @param max - The maximum value (inclusive)
91
- * @returns A random `NonZeroUint16` in `[min, max]`
92
- */
84
+
85
+
86
+
87
+
88
+
89
+
90
+
91
+
92
+
93
93
  random,
94
- /**
95
- * Raises `a` to the power `b`, returning `a ** b` as a `NonZeroUint16`
96
- * (floored to an integer).
97
- *
98
- * @param a - The base non-zero integer
99
- * @param b - The exponent non-zero integer
100
- * @returns `a ** b` as a `NonZeroUint16`
101
- */
94
+
95
+
96
+
97
+
98
+
99
+
100
+
101
+
102
102
  pow,
103
- /**
104
- * Adds two non-zero integers, returning `a + b` as a `NonZeroUint16`.
105
- *
106
- * @param a - The first non-zero integer
107
- * @param b - The second non-zero integer
108
- * @returns The sum of `a` and `b` as a `NonZeroUint16`
109
- */
103
+
104
+
105
+
106
+
107
+
108
+
109
+
110
110
  add,
111
- /**
112
- * Multiplies two non-zero integers, returning `a * b` as a `NonZeroUint16`.
113
- *
114
- * @param a - The first non-zero integer
115
- * @param b - The second non-zero integer
116
- * @returns The product of `a` and `b` as a `NonZeroUint16`
117
- */
111
+
112
+
113
+
114
+
115
+
116
+
117
+
118
118
  mul,
119
119
  };
120
120