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
@@ -7,130 +7,130 @@ const { MAX_VALUE, MIN_VALUE, add, castType, div, fromNumber, is, max: max_, min
7
7
  MAX_VALUE: 2 ** 15 - 1,
8
8
  typeNameInMessage,
9
9
  });
10
- /**
11
- * Type guard that checks if a value is a positive integer in [1, 2^15).
12
- *
13
- * Returns `true` for a positive integer in [1, 2^15) — a value with no
14
- * fractional component.
15
- *
16
- * @param value - The value to check
17
- * @returns `true` if the value is a positive integer in [1, 2^15), `false` otherwise
18
- */
10
+
11
+
12
+
13
+
14
+
15
+
16
+
17
+
18
+
19
19
  export const isPositiveInt16 = is;
20
- /**
21
- * Casts a `number` to the `PositiveInt16` branded type.
22
- *
23
- * Validates that the value is a positive integer in [1, 2^15) and returns it
24
- * with the `PositiveInt16` brand. Throws a `TypeError` otherwise.
25
- *
26
- * @param value - The value to cast
27
- * @returns The value as a `PositiveInt16`
28
- * @throws {TypeError} If the value is not a positive integer in [1, 2^15)
29
- */
20
+
21
+
22
+
23
+
24
+
25
+
26
+
27
+
28
+
29
+
30
30
  export const asPositiveInt16 = castType;
31
- /**
32
- * Namespace providing type-safe operations for the `PositiveInt16` branded
33
- * type.
34
- *
35
- * The `PositiveInt16` type represents a positive integer in [1, 2^15). Division
36
- * (`div`) uses floor division.
37
- */
31
+
32
+
33
+
34
+
35
+
36
+
37
+
38
38
  export const PositiveInt16 = {
39
- /**
40
- * Type guard that checks if a value is a positive integer in [1, 2^15).
41
- *
42
- * @param value - The value to check
43
- * @returns `true` if the value is a positive integer in [1, 2^15), `false` otherwise
44
- * @see {@link isPositiveInt16} for usage examples
45
- */
39
+
40
+
41
+
42
+
43
+
44
+
45
+
46
46
  is,
47
- /**
48
- * The smallest value representable as `PositiveInt16` (the lower saturation
49
- * target of `fromNumber`).
50
- */
47
+
48
+
49
+
50
+
51
51
  MIN_VALUE,
52
- /**
53
- * The largest value representable as `PositiveInt16` (the upper saturation
54
- * target of `fromNumber`).
55
- */
52
+
53
+
54
+
55
+
56
56
  MAX_VALUE,
57
- /**
58
- * Returns the smallest of the given positive integers.
59
- *
60
- * @param values - The positive integers to compare (at least one required)
61
- * @returns The smallest value as a `PositiveInt16`
62
- */
57
+
58
+
59
+
60
+
61
+
62
+
63
63
  min: min_,
64
- /**
65
- * Returns the largest of the given positive integers.
66
- *
67
- * @param values - The positive integers to compare (at least one required)
68
- * @returns The largest value as a `PositiveInt16`
69
- */
64
+
65
+
66
+
67
+
68
+
69
+
70
70
  max: max_,
71
- /**
72
- * Converts an arbitrary `number` into a `PositiveInt16`, rounding to the
73
- * nearest integer and saturating the result into the range `[MIN_VALUE,
74
- * MAX_VALUE]`.
75
- *
76
- * Unlike `asPositiveInt16`, this is total: out-of-range inputs are clamped to
77
- * the nearest representable `PositiveInt16` instead of throwing.
78
- *
79
- * @param value - The value to convert
80
- * @returns The value as a `PositiveInt16`
81
- */
71
+
72
+
73
+
74
+
75
+
76
+
77
+
78
+
79
+
80
+
81
+
82
82
  fromNumber,
83
- /**
84
- * Generates a random `PositiveInt16` within the given range.
85
- *
86
- * The range is inclusive on both ends.
87
- *
88
- * @param min - The minimum value (inclusive)
89
- * @param max - The maximum value (inclusive)
90
- * @returns A random `PositiveInt16` in `[min, max]`
91
- */
83
+
84
+
85
+
86
+
87
+
88
+
89
+
90
+
91
+
92
92
  random,
93
- /**
94
- * Raises `a` to the power `b`, returning `a ** b` as a `PositiveInt16`
95
- * (floored to an integer).
96
- *
97
- * @param a - The base positive integer
98
- * @param b - The exponent positive integer
99
- * @returns `a ** b` as a `PositiveInt16`
100
- */
93
+
94
+
95
+
96
+
97
+
98
+
99
+
100
+
101
101
  pow,
102
- /**
103
- * Adds two positive integers, returning `a + b` as a `PositiveInt16`.
104
- *
105
- * @param a - The first positive integer
106
- * @param b - The second positive integer
107
- * @returns The sum of `a` and `b` as a `PositiveInt16`
108
- */
102
+
103
+
104
+
105
+
106
+
107
+
108
+
109
109
  add,
110
- /**
111
- * Subtracts two positive integers, returning `a - b` as a `PositiveInt16`.
112
- *
113
- * @param a - The first positive integer
114
- * @param b - The second positive integer
115
- * @returns The difference of `a` and `b` as a `PositiveInt16`
116
- */
110
+
111
+
112
+
113
+
114
+
115
+
116
+
117
117
  sub,
118
- /**
119
- * Multiplies two positive integers, returning `a * b` as a `PositiveInt16`.
120
- *
121
- * @param a - The first positive integer
122
- * @param b - The second positive integer
123
- * @returns The product of `a` and `b` as a `PositiveInt16`
124
- */
118
+
119
+
120
+
121
+
122
+
123
+
124
+
125
125
  mul,
126
- /**
127
- * Divides two positive integers using floor division (`⌊a / b⌋`): the result
128
- * is `a / b` rounded toward negative infinity, as a `PositiveInt16`.
129
- *
130
- * @param a - The dividend
131
- * @param b - The divisor (must be non-zero)
132
- * @returns The floored quotient as a `PositiveInt16`
133
- */
126
+
127
+
128
+
129
+
130
+
131
+
132
+
133
+
134
134
  div,
135
135
  };
136
136
 
@@ -7,130 +7,130 @@ const { MAX_VALUE, MIN_VALUE, add, castType, div, fromNumber, is, max: max_, min
7
7
  MAX_VALUE: 2 ** 31 - 1,
8
8
  typeNameInMessage,
9
9
  });
10
- /**
11
- * Type guard that checks if a value is a positive integer in [1, 2^31).
12
- *
13
- * Returns `true` for a positive integer in [1, 2^31) — a value with no
14
- * fractional component.
15
- *
16
- * @param value - The value to check
17
- * @returns `true` if the value is a positive integer in [1, 2^31), `false` otherwise
18
- */
10
+
11
+
12
+
13
+
14
+
15
+
16
+
17
+
18
+
19
19
  export const isPositiveInt32 = is;
20
- /**
21
- * Casts a `number` to the `PositiveInt32` branded type.
22
- *
23
- * Validates that the value is a positive integer in [1, 2^31) and returns it
24
- * with the `PositiveInt32` brand. Throws a `TypeError` otherwise.
25
- *
26
- * @param value - The value to cast
27
- * @returns The value as a `PositiveInt32`
28
- * @throws {TypeError} If the value is not a positive integer in [1, 2^31)
29
- */
20
+
21
+
22
+
23
+
24
+
25
+
26
+
27
+
28
+
29
+
30
30
  export const asPositiveInt32 = castType;
31
- /**
32
- * Namespace providing type-safe operations for the `PositiveInt32` branded
33
- * type.
34
- *
35
- * The `PositiveInt32` type represents a positive integer in [1, 2^31). Division
36
- * (`div`) uses floor division.
37
- */
31
+
32
+
33
+
34
+
35
+
36
+
37
+
38
38
  export const PositiveInt32 = {
39
- /**
40
- * Type guard that checks if a value is a positive integer in [1, 2^31).
41
- *
42
- * @param value - The value to check
43
- * @returns `true` if the value is a positive integer in [1, 2^31), `false` otherwise
44
- * @see {@link isPositiveInt32} for usage examples
45
- */
39
+
40
+
41
+
42
+
43
+
44
+
45
+
46
46
  is,
47
- /**
48
- * The smallest value representable as `PositiveInt32` (the lower saturation
49
- * target of `fromNumber`).
50
- */
47
+
48
+
49
+
50
+
51
51
  MIN_VALUE,
52
- /**
53
- * The largest value representable as `PositiveInt32` (the upper saturation
54
- * target of `fromNumber`).
55
- */
52
+
53
+
54
+
55
+
56
56
  MAX_VALUE,
57
- /**
58
- * Returns the smallest of the given positive integers.
59
- *
60
- * @param values - The positive integers to compare (at least one required)
61
- * @returns The smallest value as a `PositiveInt32`
62
- */
57
+
58
+
59
+
60
+
61
+
62
+
63
63
  min: min_,
64
- /**
65
- * Returns the largest of the given positive integers.
66
- *
67
- * @param values - The positive integers to compare (at least one required)
68
- * @returns The largest value as a `PositiveInt32`
69
- */
64
+
65
+
66
+
67
+
68
+
69
+
70
70
  max: max_,
71
- /**
72
- * Converts an arbitrary `number` into a `PositiveInt32`, rounding to the
73
- * nearest integer and saturating the result into the range `[MIN_VALUE,
74
- * MAX_VALUE]`.
75
- *
76
- * Unlike `asPositiveInt32`, this is total: out-of-range inputs are clamped to
77
- * the nearest representable `PositiveInt32` instead of throwing.
78
- *
79
- * @param value - The value to convert
80
- * @returns The value as a `PositiveInt32`
81
- */
71
+
72
+
73
+
74
+
75
+
76
+
77
+
78
+
79
+
80
+
81
+
82
82
  fromNumber,
83
- /**
84
- * Generates a random `PositiveInt32` within the given range.
85
- *
86
- * The range is inclusive on both ends.
87
- *
88
- * @param min - The minimum value (inclusive)
89
- * @param max - The maximum value (inclusive)
90
- * @returns A random `PositiveInt32` in `[min, max]`
91
- */
83
+
84
+
85
+
86
+
87
+
88
+
89
+
90
+
91
+
92
92
  random,
93
- /**
94
- * Raises `a` to the power `b`, returning `a ** b` as a `PositiveInt32`
95
- * (floored to an integer).
96
- *
97
- * @param a - The base positive integer
98
- * @param b - The exponent positive integer
99
- * @returns `a ** b` as a `PositiveInt32`
100
- */
93
+
94
+
95
+
96
+
97
+
98
+
99
+
100
+
101
101
  pow,
102
- /**
103
- * Adds two positive integers, returning `a + b` as a `PositiveInt32`.
104
- *
105
- * @param a - The first positive integer
106
- * @param b - The second positive integer
107
- * @returns The sum of `a` and `b` as a `PositiveInt32`
108
- */
102
+
103
+
104
+
105
+
106
+
107
+
108
+
109
109
  add,
110
- /**
111
- * Subtracts two positive integers, returning `a - b` as a `PositiveInt32`.
112
- *
113
- * @param a - The first positive integer
114
- * @param b - The second positive integer
115
- * @returns The difference of `a` and `b` as a `PositiveInt32`
116
- */
110
+
111
+
112
+
113
+
114
+
115
+
116
+
117
117
  sub,
118
- /**
119
- * Multiplies two positive integers, returning `a * b` as a `PositiveInt32`.
120
- *
121
- * @param a - The first positive integer
122
- * @param b - The second positive integer
123
- * @returns The product of `a` and `b` as a `PositiveInt32`
124
- */
118
+
119
+
120
+
121
+
122
+
123
+
124
+
125
125
  mul,
126
- /**
127
- * Divides two positive integers using floor division (`⌊a / b⌋`): the result
128
- * is `a / b` rounded toward negative infinity, as a `PositiveInt32`.
129
- *
130
- * @param a - The dividend
131
- * @param b - The divisor (must be non-zero)
132
- * @returns The floored quotient as a `PositiveInt32`
133
- */
126
+
127
+
128
+
129
+
130
+
131
+
132
+
133
+
134
134
  div,
135
135
  };
136
136