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,134 +1,134 @@
1
1
  import { Optional, pipe } from '../functional/index.mjs';
2
2
  import { asUint32 } from '../number/index.mjs';
3
3
  import { tp, unknownToString } from '../others/index.mjs';
4
- /** Provides utility functions for IMap. */
4
+
5
5
  export var IMap;
6
6
  (function (IMap) {
7
- /**
8
- * Creates a new IMap instance from an iterable of key-value pairs.
9
- *
10
- * This factory function accepts any iterable of [key, value] tuples,
11
- * including arrays, JavaScript Maps, other IMaps, or custom iterables. The
12
- * resulting IMap will contain all the entries from the input iterable.
13
- *
14
- * **Performance:** O(n) where n is the number of entries in the iterable.
15
- *
16
- * @example
17
- *
18
- * ```ts
19
- * const map = IMap.create<string, number | string>([
20
- * ['id', 1],
21
- * ['status', 'active'],
22
- * ]);
23
- *
24
- * assert.isTrue(map.size === 2);
25
- *
26
- * assert.deepStrictEqual(map.get('status'), Optional.some('active'));
27
- * ```
28
- *
29
- * @template K The type of the keys. Must extend MapSetKeyType.
30
- * @template V The type of the values.
31
- * @param iterable An iterable of key-value pairs (e.g., Array, Map, IMap,
32
- * etc.)
33
- * @returns A new IMap instance containing all entries from the iterable.
34
- */
7
+
8
+
9
+
10
+
11
+
12
+
13
+
14
+
15
+
16
+
17
+
18
+
19
+
20
+
21
+
22
+
23
+
24
+
25
+
26
+
27
+
28
+
29
+
30
+
31
+
32
+
33
+
34
+
35
35
  IMap.create = (iterable) => new IMapClass(iterable);
36
- /**
37
- * Checks if two IMap instances are structurally equal.
38
- *
39
- * Two IMaps are considered equal if they have the same size and contain
40
- * exactly the same key-value pairs. The order of entries does not matter for
41
- * equality comparison. Values are compared using JavaScript's `===`
42
- * operator.
43
- *
44
- * **Performance:** O(n) where n is the size of the smaller map.
45
- *
46
- * @example
47
- *
48
- * ```ts
49
- * const first = IMap.create<'a' | 'b', number>([
50
- * ['a', 1],
51
- * ['b', 2],
52
- * ]);
53
- *
54
- * const second = IMap.create<'a' | 'b', number>([
55
- * ['b', 2],
56
- * ['a', 1],
57
- * ]);
58
- *
59
- * const third = IMap.create<'a' | 'b', number>([
60
- * ['a', 1],
61
- * ['b', 3],
62
- * ]);
63
- *
64
- * assert.isTrue(IMap.equal(first, second));
65
- *
66
- * assert.isFalse(IMap.equal(first, third));
67
- * ```
68
- *
69
- * @template K The type of the keys.
70
- * @template V The type of the values.
71
- * @param a The first IMap instance to compare.
72
- * @param b The second IMap instance to compare.
73
- * @returns `true` if the maps contain exactly the same key-value pairs,
74
- * `false` otherwise.
75
- */
36
+
37
+
38
+
39
+
40
+
41
+
42
+
43
+
44
+
45
+
46
+
47
+
48
+
49
+
50
+
51
+
52
+
53
+
54
+
55
+
56
+
57
+
58
+
59
+
60
+
61
+
62
+
63
+
64
+
65
+
66
+
67
+
68
+
69
+
70
+
71
+
72
+
73
+
74
+
75
+
76
76
  IMap.equal = (a, b) => a.size === b.size &&
77
77
  a.every((v, k) => pipe(b.get(k)).map((v2) => Optional.isSome(v2) && v2.value === v).value);
78
78
  })(IMap || (IMap = {}));
79
- /**
80
- * Internal class implementation for IMap providing immutable map operations.
81
- *
82
- * This class implements the IMap interface using JavaScript's native Map as the
83
- * underlying storage mechanism for optimal performance. All mutation operations
84
- * create new instances rather than modifying the existing map, ensuring
85
- * immutability.
86
- *
87
- * **Implementation Details:**
88
- *
89
- * - Uses Map<K, V> internally for type safety and performance
90
- * - Implements copy-on-write semantics for efficiency
91
- * - Provides optional debug messaging for development
92
- *
93
- * @template K The type of the keys. Must extend MapSetKeyType.
94
- * @template V The type of the values.
95
- * @implements IMap
96
- * @implements Iterable
97
- * @internal This class should not be used directly. Use IMap.create() instead.
98
- */
79
+
80
+
81
+
82
+
83
+
84
+
85
+
86
+
87
+
88
+
89
+
90
+
91
+
92
+
93
+
94
+
95
+
96
+
97
+
98
+
99
99
  class IMapClass {
100
100
  #map;
101
101
  #showNotFoundMessage;
102
- /**
103
- * Constructs an IMapClass instance with the given entries.
104
- *
105
- * @param iterable An iterable of key-value pairs to populate the map.
106
- * @param showNotFoundMessage Whether to log warning messages when operations
107
- * are performed on non-existent keys. Useful for debugging. Defaults to
108
- * false for production use.
109
- * @internal Use IMap.create() instead of calling this constructor directly.
110
- */
102
+
103
+
104
+
105
+
106
+
107
+
108
+
109
+
110
+
111
111
  constructor(iterable, showNotFoundMessage = false) {
112
112
  this.#map = new Map(iterable);
113
113
  this.#showNotFoundMessage = showNotFoundMessage;
114
114
  }
115
- /** @inheritdoc */
115
+
116
116
  get size() {
117
117
  return asUint32(this.#map.size);
118
118
  }
119
- /** @inheritdoc */
119
+
120
120
  has(key) {
121
- // eslint-disable-next-line total-functions/no-unsafe-type-assertion, @typescript-eslint/no-unnecessary-type-assertion -- unnecessary only under the strict standard library; the stock one types `has` as taking exactly `K`
121
+
122
122
  return this.#map.has(key);
123
123
  }
124
- /** @inheritdoc */
124
+
125
125
  get(key) {
126
126
  if (!this.has(key))
127
127
  return Optional.none;
128
- // eslint-disable-next-line total-functions/no-unsafe-type-assertion, @typescript-eslint/no-non-null-assertion
128
+
129
129
  return Optional.some(this.#map.get(key));
130
130
  }
131
- /** @inheritdoc */
131
+
132
132
  every(predicate) {
133
133
  for (const [k, v] of this.entries()) {
134
134
  if (!predicate(v, k))
@@ -136,7 +136,7 @@ class IMapClass {
136
136
  }
137
137
  return true;
138
138
  }
139
- /** @inheritdoc */
139
+
140
140
  some(predicate) {
141
141
  for (const [k, v] of this.entries()) {
142
142
  if (predicate(v, k))
@@ -144,7 +144,7 @@ class IMapClass {
144
144
  }
145
145
  return false;
146
146
  }
147
- /** @inheritdoc */
147
+
148
148
  delete(key) {
149
149
  if (!this.has(key)) {
150
150
  if (this.#showNotFoundMessage) {
@@ -155,17 +155,17 @@ class IMapClass {
155
155
  }
156
156
  return IMap.create(Array.from(this.#map).filter(([k]) => !Object.is(k, key)));
157
157
  }
158
- /** @inheritdoc */
158
+
159
159
  set(key, value) {
160
160
  const curr = this.get(key);
161
161
  if (Optional.isSome(curr) && value === curr.value)
162
- return this; // has no changes
162
+ return this;
163
163
  if (!this.has(key)) {
164
164
  return IMap.create([...this.#map, tp(key, value)]);
165
165
  }
166
166
  return IMap.create(Array.from(this.#map, ([k, v]) => tp(k, Object.is(k, key) ? value : v)));
167
167
  }
168
- /** @inheritdoc */
168
+
169
169
  update(key, updater) {
170
170
  const curr = this.get(key);
171
171
  if (Optional.isNone(curr)) {
@@ -177,7 +177,7 @@ class IMapClass {
177
177
  }
178
178
  return IMap.create(Array.from(this.#map, ([k, v]) => tp(k, Object.is(k, key) ? updater(curr.value) : v)));
179
179
  }
180
- /** @inheritdoc */
180
+
181
181
  withMutations(actions) {
182
182
  const mut_result = new Map(this.#map);
183
183
  const updateFn = (action) => {
@@ -208,77 +208,77 @@ class IMapClass {
208
208
  }
209
209
  return IMap.create(mut_result);
210
210
  }
211
- /** @inheritdoc */
211
+
212
212
  map(mapFn) {
213
213
  return IMap.create(this.toArray().map(([k, v]) => tp(k, mapFn(v, k))));
214
214
  }
215
- /** @inheritdoc */
215
+
216
216
  mapKeys(mapFn) {
217
217
  return IMap.create(this.toArray().map(([k, v]) => tp(mapFn(k), v)));
218
218
  }
219
- /** @inheritdoc */
219
+
220
220
  mapEntries(mapFn) {
221
221
  return IMap.create(this.toArray().map(mapFn));
222
222
  }
223
- /** @inheritdoc */
223
+
224
224
  forEach(callbackfn) {
225
225
  for (const [key, value] of this.#map) {
226
226
  callbackfn(value, key);
227
227
  }
228
228
  }
229
- /**
230
- * @example
231
- *
232
- * ```ts
233
- * const entries = [
234
- * ['first', 1],
235
- * ['second', 2],
236
- * ] as const satisfies readonly (readonly [string, number])[];
237
- *
238
- * const map = IMap.create(entries);
239
- *
240
- * const collected = Array.from(map);
241
- *
242
- * assert.deepStrictEqual(collected, [
243
- * ['first', 1],
244
- * ['second', 2],
245
- * ]);
246
- * ```
247
- *
248
- * @inheritdoc
249
- */
229
+
230
+
231
+
232
+
233
+
234
+
235
+
236
+
237
+
238
+
239
+
240
+
241
+
242
+
243
+
244
+
245
+
246
+
247
+
248
+
249
+
250
250
  [Symbol.iterator]() {
251
251
  return this.#map[Symbol.iterator]();
252
252
  }
253
- /** @inheritdoc */
253
+
254
254
  keys() {
255
255
  return this.#map.keys();
256
256
  }
257
- /** @inheritdoc */
257
+
258
258
  values() {
259
259
  return this.#map.values();
260
260
  }
261
- /** @inheritdoc */
261
+
262
262
  entries() {
263
263
  return this.#map.entries();
264
264
  }
265
- /** @inheritdoc */
265
+
266
266
  toKeysArray() {
267
267
  return Array.from(this.keys());
268
268
  }
269
- /** @inheritdoc */
269
+
270
270
  toValuesArray() {
271
271
  return Array.from(this.values());
272
272
  }
273
- /** @inheritdoc */
273
+
274
274
  toEntriesArray() {
275
275
  return Array.from(this.entries());
276
276
  }
277
- /** @inheritdoc */
277
+
278
278
  toArray() {
279
279
  return Array.from(this.entries());
280
280
  }
281
- /** @inheritdoc */
281
+
282
282
  toRawMap() {
283
283
  return this.#map;
284
284
  }