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
@@ -9,123 +9,123 @@ const { MAX_VALUE, MIN_VALUE, add, castType, fromNumber, is, max: max_, min: min
9
9
  typeNameInMessage,
10
10
  });
11
11
  const abs = (x) => PositiveSafeInt.fromNumber(Math.abs(x));
12
- /**
13
- * Type guard that checks if a value is a negative safe integer.
14
- *
15
- * Returns `true` for a negative safe integer — a value with no fractional
16
- * component.
17
- *
18
- * @param value - The value to check
19
- * @returns `true` if the value is a negative safe integer, `false` otherwise
20
- */
12
+
13
+
14
+
15
+
16
+
17
+
18
+
19
+
20
+
21
21
  export const isNegativeSafeInt = is;
22
- /**
23
- * Casts a `number` to the `NegativeSafeInt` branded type.
24
- *
25
- * Validates that the value is a negative safe integer and returns it with the
26
- * `NegativeSafeInt` brand. Throws a `TypeError` otherwise.
27
- *
28
- * @param value - The value to cast
29
- * @returns The value as a `NegativeSafeInt`
30
- * @throws {TypeError} If the value is not a negative safe integer
31
- */
22
+
23
+
24
+
25
+
26
+
27
+
28
+
29
+
30
+
31
+
32
32
  export const asNegativeSafeInt = castType;
33
- /**
34
- * Namespace providing type-safe operations for the `NegativeSafeInt` branded
35
- * type.
36
- *
37
- * The `NegativeSafeInt` type represents a negative safe integer. Division
38
- * (`div`) uses floor division.
39
- */
33
+
34
+
35
+
36
+
37
+
38
+
39
+
40
40
  export const NegativeSafeInt = {
41
- /**
42
- * Type guard that checks if a value is a negative safe integer.
43
- *
44
- * @param value - The value to check
45
- * @returns `true` if the value is a negative safe integer, `false` otherwise
46
- * @see {@link isNegativeSafeInt} for usage examples
47
- */
41
+
42
+
43
+
44
+
45
+
46
+
47
+
48
48
  is,
49
- /**
50
- * The smallest value representable as `NegativeSafeInt` (the lower saturation
51
- * target of `fromNumber`).
52
- */
49
+
50
+
51
+
52
+
53
53
  MIN_VALUE,
54
- /**
55
- * The largest value representable as `NegativeSafeInt` (the upper saturation
56
- * target of `fromNumber`).
57
- */
54
+
55
+
56
+
57
+
58
58
  MAX_VALUE,
59
- /**
60
- * Returns the absolute value of a negative safe integer.
61
- *
62
- * The result is non-negative and keeps the `NegativeSafeInt` brand.
63
- *
64
- * @param a - The negative safe integer value
65
- * @returns The absolute value as a non-negative `NegativeSafeInt`
66
- */
59
+
60
+
61
+
62
+
63
+
64
+
65
+
66
+
67
67
  abs,
68
- /**
69
- * Returns the smallest of the given negative safe integers.
70
- *
71
- * @param values - The negative safe integers to compare (at least one required)
72
- * @returns The smallest value as a `NegativeSafeInt`
73
- */
68
+
69
+
70
+
71
+
72
+
73
+
74
74
  min: min_,
75
- /**
76
- * Returns the largest of the given negative safe integers.
77
- *
78
- * @param values - The negative safe integers to compare (at least one required)
79
- * @returns The largest value as a `NegativeSafeInt`
80
- */
75
+
76
+
77
+
78
+
79
+
80
+
81
81
  max: max_,
82
- /**
83
- * Converts an arbitrary `number` into a `NegativeSafeInt`, rounding to the
84
- * nearest integer and saturating the result into the range `[MIN_VALUE,
85
- * MAX_VALUE]`.
86
- *
87
- * Unlike `asNegativeSafeInt`, this is total: out-of-range inputs are clamped
88
- * to the nearest representable `NegativeSafeInt` instead of throwing.
89
- *
90
- * @param value - The value to convert
91
- * @returns The value as a `NegativeSafeInt`
92
- */
82
+
83
+
84
+
85
+
86
+
87
+
88
+
89
+
90
+
91
+
92
+
93
93
  fromNumber,
94
- /**
95
- * Generates a random `NegativeSafeInt` within the given range.
96
- *
97
- * The range is inclusive on both ends.
98
- *
99
- * @param min - The minimum value (inclusive)
100
- * @param max - The maximum value (inclusive)
101
- * @returns A random `NegativeSafeInt` in `[min, max]`
102
- */
94
+
95
+
96
+
97
+
98
+
99
+
100
+
101
+
102
+
103
103
  random,
104
- /**
105
- * Raises `a` to the power `b`, returning `a ** b` as a `NegativeSafeInt`
106
- * (floored to an integer).
107
- *
108
- * @param a - The base negative safe integer
109
- * @param b - The exponent negative safe integer
110
- * @returns `a ** b` as a `NegativeSafeInt`
111
- */
104
+
105
+
106
+
107
+
108
+
109
+
110
+
111
+
112
112
  pow,
113
- /**
114
- * Adds two negative safe integers, returning `a + b` as a `NegativeSafeInt`.
115
- *
116
- * @param a - The first negative safe integer
117
- * @param b - The second negative safe integer
118
- * @returns The sum of `a` and `b` as a `NegativeSafeInt`
119
- */
113
+
114
+
115
+
116
+
117
+
118
+
119
+
120
120
  add,
121
- /**
122
- * Subtracts two negative safe integers, returning `a - b` as a
123
- * `NegativeSafeInt`.
124
- *
125
- * @param a - The first negative safe integer
126
- * @param b - The second negative safe integer
127
- * @returns The difference of `a` and `b` as a `NegativeSafeInt`
128
- */
121
+
122
+
123
+
124
+
125
+
126
+
127
+
128
+
129
129
  sub,
130
130
  };
131
131
  //# sourceMappingURL=negative-safe-int.mjs.map
@@ -7,160 +7,160 @@ const { MIN_VALUE, add, castType, div, fromNumber, is, max: max_, min: min_, mul
7
7
  typeNameInMessage,
8
8
  });
9
9
  const floor = (x) =>
10
- // eslint-disable-next-line total-functions/no-unsafe-type-assertion
10
+
11
11
  Math.floor(x);
12
12
  const ceil = (x) =>
13
- // eslint-disable-next-line total-functions/no-unsafe-type-assertion
13
+
14
14
  Math.ceil(x);
15
15
  const round = (x) =>
16
- // eslint-disable-next-line total-functions/no-unsafe-type-assertion
16
+
17
17
  Math.round(x);
18
18
 
19
- /**
20
- * Type guard that checks if a value is a non-negative finite number.
21
- *
22
- * Returns `true` only for a finite value — never `NaN`, `Infinity`, or
23
- * `-Infinity`.
24
- *
25
- * @param value - The value to check
26
- * @returns `true` if the value is a non-negative finite number, `false` otherwise
27
- */
19
+
20
+
21
+
22
+
23
+
24
+
25
+
26
+
27
+
28
28
  export const isNonNegativeFiniteNumber = is;
29
- /**
30
- * Casts a `number` to the `NonNegativeFiniteNumber` branded type.
31
- *
32
- * Validates that the value is a non-negative finite number and returns it with
33
- * the `NonNegativeFiniteNumber` brand. Throws a `TypeError` otherwise.
34
- *
35
- * @param value - The value to cast
36
- * @returns The value as a `NonNegativeFiniteNumber`
37
- * @throws {TypeError} If the value is not a non-negative finite number
38
- */
29
+
30
+
31
+
32
+
33
+
34
+
35
+
36
+
37
+
38
+
39
39
  export const asNonNegativeFiniteNumber = castType;
40
- /**
41
- * Namespace providing type-safe operations for the `NonNegativeFiniteNumber`
42
- * branded type.
43
- *
44
- * The `NonNegativeFiniteNumber` type represents a non-negative finite number.
45
- */
40
+
41
+
42
+
43
+
44
+
45
+
46
46
  export const NonNegativeFiniteNumber = {
47
- /**
48
- * Type guard that checks if a value is a non-negative finite number.
49
- *
50
- * @param value - The value to check
51
- * @returns `true` if the value is a non-negative finite number, `false` otherwise
52
- * @see {@link isNonNegativeFiniteNumber} for usage examples
53
- */
47
+
48
+
49
+
50
+
51
+
52
+
53
+
54
54
  is,
55
- /**
56
- * The smallest value representable as `NonNegativeFiniteNumber` (the lower
57
- * saturation target of `fromNumber`).
58
- */
55
+
56
+
57
+
58
+
59
59
  MIN_VALUE,
60
- /**
61
- * Returns the smallest of the given non-negative finite numbers.
62
- *
63
- * @param values - The non-negative finite numbers to compare (at least one required)
64
- * @returns The smallest value as a `NonNegativeFiniteNumber`
65
- */
60
+
61
+
62
+
63
+
64
+
65
+
66
66
  min: min_,
67
- /**
68
- * Returns the largest of the given non-negative finite numbers.
69
- *
70
- * @param values - The non-negative finite numbers to compare (at least one required)
71
- * @returns The largest value as a `NonNegativeFiniteNumber`
72
- */
67
+
68
+
69
+
70
+
71
+
72
+
73
73
  max: max_,
74
- /**
75
- * Converts an arbitrary `number` into a `NonNegativeFiniteNumber`, saturating
76
- * it into the range `[MIN_VALUE, MAX_VALUE]`.
77
- *
78
- * Unlike `asNonNegativeFiniteNumber`, this is total: out-of-range inputs are
79
- * clamped to the nearest representable `NonNegativeFiniteNumber` instead of
80
- * throwing.
81
- *
82
- * @param value - The value to convert
83
- * @returns The value as a `NonNegativeFiniteNumber`
84
- */
74
+
75
+
76
+
77
+
78
+
79
+
80
+
81
+
82
+
83
+
84
+
85
85
  fromNumber,
86
- /**
87
- * Returns the greatest integer less than or equal to a non-negative finite
88
- * number.
89
- *
90
- * @param a - The non-negative finite number value
91
- * @returns The floored value as an integer
92
- */
86
+
87
+
88
+
89
+
90
+
91
+
92
+
93
93
  floor,
94
- /**
95
- * Returns the smallest integer greater than or equal to a non-negative finite
96
- * number.
97
- *
98
- * @param a - The non-negative finite number value
99
- * @returns The ceiled value as an integer
100
- */
94
+
95
+
96
+
97
+
98
+
99
+
100
+
101
101
  ceil,
102
- /**
103
- * Returns the value of a non-negative finite number rounded to the nearest
104
- * integer.
105
- *
106
- * @param a - The non-negative finite number value
107
- * @returns The rounded value as an integer
108
- */
102
+
103
+
104
+
105
+
106
+
107
+
108
+
109
109
  round,
110
- /**
111
- * Generates a random `NonNegativeFiniteNumber` within the given range.
112
- *
113
- * The range is inclusive on both ends.
114
- *
115
- * @param min - The minimum value (inclusive)
116
- * @param max - The maximum value (inclusive)
117
- * @returns A random `NonNegativeFiniteNumber` in `[min, max]`
118
- */
110
+
111
+
112
+
113
+
114
+
115
+
116
+
117
+
118
+
119
119
  random,
120
- /**
121
- * Raises `a` to the power `b`, returning `a ** b` as a
122
- * `NonNegativeFiniteNumber`.
123
- *
124
- * @param a - The base non-negative finite number
125
- * @param b - The exponent non-negative finite number
126
- * @returns `a ** b` as a `NonNegativeFiniteNumber`
127
- */
120
+
121
+
122
+
123
+
124
+
125
+
126
+
127
+
128
128
  pow,
129
- /**
130
- * Adds two non-negative finite numbers, returning `a + b` as a
131
- * `NonNegativeFiniteNumber`.
132
- *
133
- * @param a - The first non-negative finite number
134
- * @param b - The second non-negative finite number
135
- * @returns The sum of `a` and `b` as a `NonNegativeFiniteNumber`
136
- */
129
+
130
+
131
+
132
+
133
+
134
+
135
+
136
+
137
137
  add,
138
- /**
139
- * Subtracts two non-negative finite numbers, returning `a - b` as a
140
- * `NonNegativeFiniteNumber`.
141
- *
142
- * @param a - The first non-negative finite number
143
- * @param b - The second non-negative finite number
144
- * @returns The difference of `a` and `b` as a `NonNegativeFiniteNumber`
145
- */
138
+
139
+
140
+
141
+
142
+
143
+
144
+
145
+
146
146
  sub,
147
- /**
148
- * Multiplies two non-negative finite numbers, returning `a * b` as a
149
- * `NonNegativeFiniteNumber`.
150
- *
151
- * @param a - The first non-negative finite number
152
- * @param b - The second non-negative finite number
153
- * @returns The product of `a` and `b` as a `NonNegativeFiniteNumber`
154
- */
147
+
148
+
149
+
150
+
151
+
152
+
153
+
154
+
155
155
  mul,
156
- /**
157
- * Divides two non-negative finite numbers, returning `a / b` as a
158
- * `NonNegativeFiniteNumber`.
159
- *
160
- * @param a - The dividend
161
- * @param b - The divisor (must be non-zero)
162
- * @returns `a / b` as a `NonNegativeFiniteNumber`
163
- */
156
+
157
+
158
+
159
+
160
+
161
+
162
+
163
+
164
164
  div,
165
165
  };
166
166