ts-data-forge 14.6.2 → 14.6.4

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