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
@@ -1,31 +1,31 @@
1
1
 
2
2
  import { pipe } from '../functional/index.mjs';
3
3
  import { Num } from './num.mjs';
4
- /** @internal */
4
+
5
5
  export var TsDataForgeInternals;
6
6
  (function (TsDataForgeInternals) {
7
- /**
8
- * Internal utilities for creating and managing refined (branded) number
9
- * types.
10
- *
11
- * This namespace provides factory functions and type utilities for building
12
- * type-safe numeric operations with compile-time constraints. It serves as
13
- * the foundation for all branded number types in the library, including:
14
- *
15
- * - Integer types (Int, SafeInt, Int8, Int16, Int32)
16
- * - Unsigned types (UInt, UInt8, UInt16, UInt32)
17
- * - Constrained types (NonZero, NonNegative, Positive)
18
- * - Range-bounded types
19
- *
20
- * The utilities handle:
21
- *
22
- * - Type validation and narrowing
23
- * - Arithmetic operations that preserve type constraints
24
- * - Automatic clamping for bounded types
25
- * - Random number generation within type bounds
26
- *
27
- * @internal This namespace is not part of the public API
28
- */
7
+
8
+
9
+
10
+
11
+
12
+
13
+
14
+
15
+
16
+
17
+
18
+
19
+
20
+
21
+
22
+
23
+
24
+
25
+
26
+
27
+
28
+
29
29
  let RefinedNumberUtils;
30
30
  (function (RefinedNumberUtils) {
31
31
  const castTypeImpl = (is, typeNameInErrorMessage) => (a) => {
@@ -54,77 +54,77 @@ export var TsDataForgeInternals;
54
54
  : max === undefined
55
55
  ? (n) => Math.max(min, n)
56
56
  : Num.clamp(min, max);
57
- /**
58
- * Factory function that creates a complete set of type-safe operations for
59
- * integer types.
60
- *
61
- * This function generates:
62
- *
63
- * - Type guards and validators
64
- * - Arithmetic operations that preserve type constraints
65
- * - Utility functions (min, max, abs, random)
66
- * - Automatic clamping for bounded types
67
- *
68
- * All operations ensure results remain within the type's constraints, using
69
- * clamping when bounds are specified.
70
- *
71
- * @example
72
- *
73
- * ```ts
74
- * const intOps = TsDataForgeInternals.RefinedNumberUtils.operatorsForInteger<
75
- * SafeInt,
76
- * number,
77
- * number
78
- * >({
79
- * integerOrSafeInteger: 'SafeInteger',
80
- * MIN_VALUE: Number.MIN_SAFE_INTEGER,
81
- * MAX_VALUE: Number.MAX_SAFE_INTEGER,
82
- * typeNameInMessage: 'SafeInt',
83
- * } as const);
84
- *
85
- * const six = intOps.castType(6);
86
- *
87
- * const four = intOps.castType(4);
88
- *
89
- * const sum = intOps.add(six, four);
90
- *
91
- * const difference = intOps.sub(six, four);
92
- *
93
- * const product = intOps.mul(six, four);
94
- *
95
- * const quotient = intOps.div(six, intOps.castType(2));
96
- *
97
- * const coerced = intOps.fromNumber(1.5);
98
- *
99
- * const randomValue = intOps.random();
100
- *
101
- * assert.isTrue(sum === 10);
102
- *
103
- * assert.isTrue(difference === 2);
104
- *
105
- * assert.isTrue(product === 24);
106
- *
107
- * assert.isTrue(quotient === 3);
108
- *
109
- * assert.isTrue(coerced === 2);
110
- *
111
- * assert.isTrue(Number.isSafeInteger(randomValue));
112
- * ```
113
- *
114
- * @template ElementType - The integer branded type
115
- * @template MIN_VALUE - Optional minimum value for bounded types
116
- * @template MAX_VALUE - Optional maximum value for bounded types
117
- * @param config - Configuration object
118
- * @param config.integerOrSafeInteger - Whether to use Number.isInteger or
119
- * Number.isSafeInteger
120
- * @param config.nonZero - If true, excludes zero from valid values
121
- * @param config.MIN_VALUE - Minimum valid value (inclusive)
122
- * @param config.MAX_VALUE - Maximum valid value (inclusive)
123
- * @param config.typeNameInMessage - Human-readable type name for error
124
- * messages
125
- * @returns Object containing all type-safe operations for the integer type
126
- * @internal
127
- */
57
+
58
+
59
+
60
+
61
+
62
+
63
+
64
+
65
+
66
+
67
+
68
+
69
+
70
+
71
+
72
+
73
+
74
+
75
+
76
+
77
+
78
+
79
+
80
+
81
+
82
+
83
+
84
+
85
+
86
+
87
+
88
+
89
+
90
+
91
+
92
+
93
+
94
+
95
+
96
+
97
+
98
+
99
+
100
+
101
+
102
+
103
+
104
+
105
+
106
+
107
+
108
+
109
+
110
+
111
+
112
+
113
+
114
+
115
+
116
+
117
+
118
+
119
+
120
+
121
+
122
+
123
+
124
+
125
+
126
+
127
+
128
128
  RefinedNumberUtils.operatorsForInteger = ({ integerOrSafeInteger, nonZero, MIN_VALUE, MAX_VALUE, typeNameInMessage, }) => {
129
129
  const is = (a) => (integerOrSafeInteger === 'Integer'
130
130
  ? Number.isInteger(a)
@@ -135,7 +135,7 @@ export var TsDataForgeInternals;
135
135
  const fromNumber = pipe(clampFnOrUndefined(MIN_VALUE, MAX_VALUE)).mapNullable((cl) => (x) => castType(Math.round(cl(x)))).value;
136
136
  const clampOrCastFn = fromNumber ?? castType;
137
137
  const abs = (x) =>
138
- // eslint-disable-next-line total-functions/no-unsafe-type-assertion
138
+
139
139
  Math.abs(clampOrCastFn(x));
140
140
  const min_ = (...values) => clampOrCastFn(Math.min(...values));
141
141
  const max_ = (...values) => clampOrCastFn(Math.max(...values));
@@ -144,10 +144,10 @@ export var TsDataForgeInternals;
144
144
  const sub = (x, y) => clampOrCastFn(x - y);
145
145
  const mul = (x, y) => clampOrCastFn(x * y);
146
146
  const div = (x, y) => clampOrCastFn(Math.floor(
147
- // eslint-disable-next-line total-functions/no-partial-division
147
+
148
148
  x / y));
149
149
  const randomImpl = (min = MIN_VALUE, max = MAX_VALUE) => min + Math.floor((Math.max(max, min) - min + 1) * Math.random());
150
- // [-5, 5] -> floor(11 * Math.random()) + (-5)
150
+
151
151
  const random = (min, max) => clampOrCastFn(randomImpl(min, max));
152
152
  const randomNonZero = (min, max) => {
153
153
  while (true) {
@@ -172,79 +172,79 @@ export var TsDataForgeInternals;
172
172
  randomNonZero,
173
173
  castType,
174
174
  fromNumber:
175
- // eslint-disable-next-line total-functions/no-unsafe-type-assertion
175
+
176
176
  fromNumber,
177
177
  };
178
178
  };
179
- /**
180
- * Factory function that creates a complete set of type-safe operations for
181
- * floating-point types.
182
- *
183
- * This function generates:
184
- *
185
- * - Type guards and validators (checking for finite values)
186
- * - Arithmetic operations that preserve type constraints
187
- * - Utility functions (min, max, abs, random)
188
- * - Automatic clamping for bounded types
189
- *
190
- * All operations ensure results remain finite and within any specified
191
- * bounds. Division by zero is prevented through type constraints.
192
- *
193
- * @example
194
- *
195
- * ```ts
196
- * const floatOps = TsDataForgeInternals.RefinedNumberUtils.operatorsForFloat<
197
- * PositiveFiniteNumber,
198
- * number,
199
- * number
200
- * >({
201
- * nonZero: true,
202
- * MIN_VALUE: Number.MIN_VALUE,
203
- * MAX_VALUE: Number.MAX_VALUE,
204
- * typeNameInMessage: 'PositiveFiniteNumber',
205
- * } as const);
206
- *
207
- * const fortyTwo = floatOps.castType(42.5);
208
- *
209
- * const seven = floatOps.castType(7.5);
210
- *
211
- * const sum = floatOps.add(fortyTwo, seven);
212
- *
213
- * const ratio = floatOps.div(sum, floatOps.castType(10));
214
- *
215
- * const coerced = floatOps.fromNumber(0);
216
- *
217
- * const boundedRandom = floatOps.random(
218
- * floatOps.castType(10),
219
- * floatOps.castType(20),
220
- * );
221
- *
222
- * const nonZeroRandom = floatOps.randomNonZero();
223
- *
224
- * assert.isTrue(sum === 50);
225
- *
226
- * assert.isTrue(ratio === 5);
227
- *
228
- * assert.isTrue(coerced >= Number.MIN_VALUE);
229
- *
230
- * assert.isTrue(boundedRandom >= 10 && boundedRandom <= 20);
231
- *
232
- * assert.isTrue(nonZeroRandom > 0);
233
- * ```
234
- *
235
- * @template ElementType - The floating-point branded type
236
- * @template MIN_VALUE - Optional minimum value for bounded types
237
- * @template MAX_VALUE - Optional maximum value for bounded types
238
- * @param config - Configuration object
239
- * @param config.nonZero - If true, excludes zero from valid values
240
- * @param config.MIN_VALUE - Minimum valid value (inclusive)
241
- * @param config.MAX_VALUE - Maximum valid value (inclusive)
242
- * @param config.typeNameInMessage - Human-readable type name for error
243
- * messages
244
- * @returns Object containing all type-safe operations for the
245
- * floating-point type
246
- * @internal
247
- */
179
+
180
+
181
+
182
+
183
+
184
+
185
+
186
+
187
+
188
+
189
+
190
+
191
+
192
+
193
+
194
+
195
+
196
+
197
+
198
+
199
+
200
+
201
+
202
+
203
+
204
+
205
+
206
+
207
+
208
+
209
+
210
+
211
+
212
+
213
+
214
+
215
+
216
+
217
+
218
+
219
+
220
+
221
+
222
+
223
+
224
+
225
+
226
+
227
+
228
+
229
+
230
+
231
+
232
+
233
+
234
+
235
+
236
+
237
+
238
+
239
+
240
+
241
+
242
+
243
+
244
+
245
+
246
+
247
+
248
248
  RefinedNumberUtils.operatorsForFloat = ({ nonZero, MIN_VALUE, MAX_VALUE, typeNameInMessage, }) => {
249
249
  const is = (a) => Number.isFinite(a) &&
250
250
  (nonZero === true ? a !== 0 : true) &&
@@ -253,7 +253,7 @@ export var TsDataForgeInternals;
253
253
  const fromNumber = pipe(clampFnOrUndefined(MIN_VALUE, MAX_VALUE)).mapNullable((cl) => (x) => castType(cl(x))).value;
254
254
  const clampOrCastFn = fromNumber ?? castType;
255
255
  const abs = (x) =>
256
- // eslint-disable-next-line total-functions/no-unsafe-type-assertion
256
+
257
257
  Math.abs(x);
258
258
  const min_ = (...values) => clampOrCastFn(Math.min(...values));
259
259
  const max_ = (...values) => clampOrCastFn(Math.max(...values));
@@ -262,7 +262,7 @@ export var TsDataForgeInternals;
262
262
  const sub = (x, y) => clampOrCastFn(x - y);
263
263
  const mul = (x, y) => clampOrCastFn(x * y);
264
264
  const div = (x, y) =>
265
- // eslint-disable-next-line total-functions/no-partial-division
265
+
266
266
  clampOrCastFn(x / y);
267
267
  const randomImpl = (min = MIN_VALUE, max = MAX_VALUE) => min + (Math.max(max, min) - min) * Math.random();
268
268
  const random = (min, max) => clampOrCastFn(randomImpl(min, max));
@@ -288,7 +288,7 @@ export var TsDataForgeInternals;
288
288
  random,
289
289
  randomNonZero,
290
290
  castType,
291
- // eslint-disable-next-line total-functions/no-unsafe-type-assertion
291
+
292
292
  fromNumber: fromNumber,
293
293
  };
294
294
  };