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,241 +7,241 @@ const { abs, add, castType, div, is, max: max_, min: min_, mul, pow, random, sub
7
7
  MAX_VALUE: Number.MAX_VALUE,
8
8
  typeNameInMessage,
9
9
  });
10
- /**
11
- * Type guard that checks if a value is an integer.
12
- *
13
- * Returns `true` for an integer — a value with no fractional component,
14
- * including values outside the safe integer range (unlike `SafeInt`).
15
- *
16
- * @example
17
- *
18
- * ```ts
19
- * assert.isTrue(isInt(5));
20
- *
21
- * assert.isFalse(isInt(5.25));
22
- *
23
- * assert.isTrue(Int.is(-10));
24
- * ```
25
- *
26
- * @param value - The value to check
27
- * @returns `true` if the value is an integer, `false` otherwise
28
- */
10
+
11
+
12
+
13
+
14
+
15
+
16
+
17
+
18
+
19
+
20
+
21
+
22
+
23
+
24
+
25
+
26
+
27
+
28
+
29
29
  export const isInt = is;
30
- /**
31
- * Casts a `number` to the `Int` branded type.
32
- *
33
- * Validates that the value is an integer and returns it with the `Int` brand.
34
- * Throws a `TypeError` otherwise.
35
- *
36
- * @example
37
- *
38
- * ```ts
39
- * const branded = asInt(42);
40
- *
41
- * assert.isTrue(branded === 42);
42
- *
43
- * assert.isTrue(Int.is(branded));
44
- * ```
45
- *
46
- * @param value - The value to cast
47
- * @returns The value as an `Int`
48
- * @throws {TypeError} If the value is not an integer
49
- */
30
+
31
+
32
+
33
+
34
+
35
+
36
+
37
+
38
+
39
+
40
+
41
+
42
+
43
+
44
+
45
+
46
+
47
+
48
+
49
+
50
50
  export const asInt = castType;
51
- /**
52
- * Namespace providing type-safe operations for the `Int` branded type.
53
- *
54
- * The `Int` type represents an integer. Division (`div`) uses floor division.
55
- *
56
- * Unlike `SafeInt`, `Int` allows values outside the safe integer range (±2^53 −
57
- * 1), so very large magnitudes may lose precision in JavaScript's `number`
58
- * type.
59
- */
51
+
52
+
53
+
54
+
55
+
56
+
57
+
58
+
59
+
60
60
  export const Int = {
61
- /**
62
- * Type guard that checks if a value is an integer.
63
- *
64
- * @example
65
- *
66
- * ```ts
67
- * assert.isTrue(isInt(5));
68
- *
69
- * assert.isFalse(isInt(5.25));
70
- *
71
- * assert.isTrue(Int.is(-10));
72
- * ```
73
- *
74
- * @param value - The value to check
75
- * @returns `true` if the value is an integer, `false` otherwise
76
- * @see {@link isInt} for usage examples
77
- */
61
+
62
+
63
+
64
+
65
+
66
+
67
+
68
+
69
+
70
+
71
+
72
+
73
+
74
+
75
+
76
+
77
+
78
78
  is,
79
- /**
80
- * Returns the absolute value of an integer.
81
- *
82
- * The result is non-negative and keeps the `Int` brand. Note that
83
- * `Math.abs(Number.MIN_SAFE_INTEGER)` exceeds `Number.MAX_SAFE_INTEGER`, so
84
- * use `SafeInt` for guaranteed precision.
85
- *
86
- * @example
87
- *
88
- * ```ts
89
- * const negative = asInt(-12);
90
- *
91
- * const absolute = Int.abs(negative);
92
- *
93
- * assert.isTrue(absolute === 12);
94
- *
95
- * assert.isTrue(Int.is(absolute));
96
- * ```
97
- *
98
- * @param a - The integer value
99
- * @returns The absolute value as a non-negative `Int`
100
- */
79
+
80
+
81
+
82
+
83
+
84
+
85
+
86
+
87
+
88
+
89
+
90
+
91
+
92
+
93
+
94
+
95
+
96
+
97
+
98
+
99
+
100
+
101
101
  abs,
102
- /**
103
- * Returns the smallest of the given integers.
104
- *
105
- * @example
106
- *
107
- * ```ts
108
- * const smallest = Int.min(asInt(7), asInt(-3), asInt(2));
109
- *
110
- * assert.isTrue(smallest === -3);
111
- * ```
112
- *
113
- * @param values - The integers to compare (at least one required)
114
- * @returns The smallest value as an `Int`
115
- */
102
+
103
+
104
+
105
+
106
+
107
+
108
+
109
+
110
+
111
+
112
+
113
+
114
+
115
+
116
116
  min: min_,
117
- /**
118
- * Returns the largest of the given integers.
119
- *
120
- * @example
121
- *
122
- * ```ts
123
- * const largest = Int.max(asInt(7), asInt(-3), asInt(2));
124
- *
125
- * assert.isTrue(largest === 7);
126
- * ```
127
- *
128
- * @param values - The integers to compare (at least one required)
129
- * @returns The largest value as an `Int`
130
- */
117
+
118
+
119
+
120
+
121
+
122
+
123
+
124
+
125
+
126
+
127
+
128
+
129
+
130
+
131
131
  max: max_,
132
- /**
133
- * Generates a random `Int` within the given range.
134
- *
135
- * The range is inclusive on both ends.
136
- *
137
- * @example
138
- *
139
- * ```ts
140
- * const min = asInt(1);
141
- *
142
- * const max = asInt(6);
143
- *
144
- * const randomValue = Int.random(min, max);
145
- *
146
- * assert.isTrue(Int.is(randomValue));
147
- *
148
- * assert.isTrue(randomValue >= 1 && randomValue <= 6);
149
- * ```
150
- *
151
- * @param min - The minimum value (inclusive)
152
- * @param max - The maximum value (inclusive)
153
- * @returns A random `Int` in `[min, max]`
154
- */
132
+
133
+
134
+
135
+
136
+
137
+
138
+
139
+
140
+
141
+
142
+
143
+
144
+
145
+
146
+
147
+
148
+
149
+
150
+
151
+
152
+
153
+
154
+
155
155
  random,
156
- /**
157
- * Raises `a` to the power `b`, returning `a ** b` as an `Int` (floored to an
158
- * integer).
159
- *
160
- * @example
161
- *
162
- * ```ts
163
- * const base = asInt(2);
164
- *
165
- * const exponent = asInt(5);
166
- *
167
- * const power = Int.pow(base, exponent);
168
- *
169
- * assert.isTrue(power === 32);
170
- * ```
171
- *
172
- * @param a - The base integer
173
- * @param b - The exponent integer
174
- * @returns `a ** b` as an `Int`
175
- */
156
+
157
+
158
+
159
+
160
+
161
+
162
+
163
+
164
+
165
+
166
+
167
+
168
+
169
+
170
+
171
+
172
+
173
+
174
+
175
+
176
176
  pow,
177
- /**
178
- * Adds two integers, returning `a + b` as an `Int`.
179
- *
180
- * @example
181
- *
182
- * ```ts
183
- * const sum = Int.add(asInt(12), asInt(8));
184
- *
185
- * assert.isTrue(sum === 20);
186
- * ```
187
- *
188
- * @param a - The first integer
189
- * @param b - The second integer
190
- * @returns The sum of `a` and `b` as an `Int`
191
- */
177
+
178
+
179
+
180
+
181
+
182
+
183
+
184
+
185
+
186
+
187
+
188
+
189
+
190
+
191
+
192
192
  add,
193
- /**
194
- * Subtracts two integers, returning `a - b` as an `Int`.
195
- *
196
- * @example
197
- *
198
- * ```ts
199
- * const difference = Int.sub(asInt(12), asInt(8));
200
- *
201
- * assert.isTrue(difference === 4);
202
- * ```
203
- *
204
- * @param a - The first integer
205
- * @param b - The second integer
206
- * @returns The difference of `a` and `b` as an `Int`
207
- */
193
+
194
+
195
+
196
+
197
+
198
+
199
+
200
+
201
+
202
+
203
+
204
+
205
+
206
+
207
+
208
208
  sub,
209
- /**
210
- * Multiplies two integers, returning `a * b` as an `Int`.
211
- *
212
- * @example
213
- *
214
- * ```ts
215
- * const product = Int.mul(asInt(-4), asInt(6));
216
- *
217
- * assert.isTrue(product === -24);
218
- * ```
219
- *
220
- * @param a - The first integer
221
- * @param b - The second integer
222
- * @returns The product of `a` and `b` as an `Int`
223
- */
209
+
210
+
211
+
212
+
213
+
214
+
215
+
216
+
217
+
218
+
219
+
220
+
221
+
222
+
223
+
224
224
  mul,
225
- /**
226
- * Divides two integers using floor division (`⌊a / b⌋`): the result is `a /
227
- * b` rounded toward negative infinity, as an `Int`.
228
- *
229
- * @example
230
- *
231
- * ```ts
232
- * const dividend = asInt(17);
233
- *
234
- * const divisor = asInt(5);
235
- *
236
- * const quotient = Int.div(dividend, divisor);
237
- *
238
- * assert.isTrue(quotient === 3);
239
- * ```
240
- *
241
- * @param a - The dividend
242
- * @param b - The divisor (must be non-zero)
243
- * @returns The floored quotient as an `Int`
244
- */
225
+
226
+
227
+
228
+
229
+
230
+
231
+
232
+
233
+
234
+
235
+
236
+
237
+
238
+
239
+
240
+
241
+
242
+
243
+
244
+
245
245
  div,
246
246
  };
247
247