@joookiwi/type 1.0.0 → 1.2.0

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 (73) hide show
  1. package/dist/boolean (false).d.ts +1 -8
  2. package/dist/boolean (false).d.ts.map +1 -1
  3. package/dist/boolean (true).d.ts +0 -8
  4. package/dist/boolean (true).d.ts.map +1 -1
  5. package/dist/boolean.d.ts +0 -6
  6. package/dist/boolean.d.ts.map +1 -1
  7. package/dist/collection (array).d.ts +59 -0
  8. package/dist/collection (array).d.ts.map +1 -0
  9. package/dist/collection (map).d.ts +786 -0
  10. package/dist/collection (map).d.ts.map +1 -0
  11. package/dist/collection (mutable array).d.ts +59 -0
  12. package/dist/collection (mutable array).d.ts.map +1 -0
  13. package/dist/collection (mutable map).d.ts +786 -0
  14. package/dist/collection (mutable map).d.ts.map +1 -0
  15. package/dist/collection (mutable set).d.ts +59 -0
  16. package/dist/collection (mutable set).d.ts.map +1 -0
  17. package/dist/collection (set).d.ts +59 -0
  18. package/dist/collection (set).d.ts.map +1 -0
  19. package/dist/collection.d.ts +446 -0
  20. package/dist/collection.d.ts.map +1 -0
  21. package/dist/empty.d.ts +50 -14
  22. package/dist/empty.d.ts.map +1 -1
  23. package/dist/index.d.ts +7 -6
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/mixed.d.ts +0 -6
  26. package/dist/mixed.d.ts.map +1 -1
  27. package/dist/nullable.d.ts +22 -6
  28. package/dist/nullable.d.ts.map +1 -1
  29. package/dist/numeric (-1).d.ts +0 -17
  30. package/dist/numeric (-1).d.ts.map +1 -1
  31. package/dist/numeric (0).d.ts +2 -19
  32. package/dist/numeric (0).d.ts.map +1 -1
  33. package/dist/numeric (1).d.ts +2 -19
  34. package/dist/numeric (1).d.ts.map +1 -1
  35. package/dist/numeric (2).d.ts +2 -19
  36. package/dist/numeric (2).d.ts.map +1 -1
  37. package/dist/numeric (bigint).d.ts +0 -6
  38. package/dist/numeric (bigint).d.ts.map +1 -1
  39. package/dist/numeric (number).d.ts +0 -6
  40. package/dist/numeric (number).d.ts.map +1 -1
  41. package/dist/numeric.d.ts +0 -10
  42. package/dist/numeric.d.ts.map +1 -1
  43. package/dist/string (individual).d.ts +4 -6
  44. package/dist/string (individual).d.ts.map +1 -1
  45. package/dist/string.d.ts +0 -6
  46. package/dist/string.d.ts.map +1 -1
  47. package/dist/symbol.d.ts +0 -6
  48. package/dist/symbol.d.ts.map +1 -1
  49. package/package.json +10 -7
  50. package/src/boolean (false).ts +12 -8
  51. package/src/boolean (true).ts +11 -8
  52. package/src/boolean.ts +11 -6
  53. package/src/collection (array).ts +74 -0
  54. package/src/collection (map).ts +838 -0
  55. package/src/collection (mutable array).ts +75 -0
  56. package/src/collection (mutable map).ts +838 -0
  57. package/src/collection (mutable set).ts +74 -0
  58. package/src/collection (set).ts +74 -0
  59. package/src/collection.ts +482 -0
  60. package/src/empty.ts +61 -14
  61. package/src/index.ts +18 -6
  62. package/src/mixed.ts +11 -6
  63. package/src/nullable.ts +37 -6
  64. package/src/numeric (-1).ts +11 -17
  65. package/src/numeric (0).ts +13 -19
  66. package/src/numeric (1).ts +13 -19
  67. package/src/numeric (2).ts +13 -19
  68. package/src/numeric (bigint).ts +11 -6
  69. package/src/numeric (number).ts +11 -6
  70. package/src/numeric.ts +11 -10
  71. package/src/string (individual).ts +15 -6
  72. package/src/string.ts +11 -6
  73. package/src/symbol.ts +11 -6
@@ -0,0 +1,74 @@
1
+ //··························································
2
+ // Copyright (c) 2023-2025. Jonathan Bédard ~ JóôòKiwi
3
+ //
4
+ // This project is free to use.
5
+ // All the right is reserved to the author of this project.
6
+ // My projects:
7
+ // - https://github.com/joooKiwi/type
8
+ // - https://github.com/joooKiwi/lazy
9
+ // - https://github.com/joooKiwi/collection
10
+ // - https://github.com/joooKiwi/enumeration
11
+ //··························································
12
+
13
+ import type {Numeric} from "./numeric"
14
+ import type {JavascriptSymbol, TypescriptSymbol} from "./symbol"
15
+
16
+ /**
17
+ * A type-alias for an {@link ReadonlySet Set} of {@link Boolean}
18
+ *
19
+ * @see MutableSet
20
+ */
21
+ export type MutableBooleanSet<T extends boolean = boolean, > = Set<T>
22
+
23
+ /**
24
+ * A type-alias for an {@link ReadonlySet Set} of {@link Number} or {@link BigInt}
25
+ *
26
+ * @see MutableSet
27
+ * @see MutableNumberSet
28
+ * @see MutableBigIntSet
29
+ */
30
+ export type MutableNumericSet<T extends Numeric = Numeric, > = Set<T>
31
+ /**
32
+ * A type-alias for an {@link ReadonlySet Set} of {@link Number}
33
+ *
34
+ * @see MutableSet
35
+ * @see MutableNumericSet
36
+ */
37
+ export type MutableNumberSet<T extends number = number, > = Set<T>
38
+ /**
39
+ * A type-alias for an {@link ReadonlySet Set} of {@link BigInt}
40
+ *
41
+ * @see MutableSet
42
+ * @see MutableNumericSet
43
+ */
44
+ export type MutableBigIntSet<T extends bigint = bigint, > = Set<T>
45
+
46
+ /**
47
+ * A type-alias for an {@link ReadonlySet Set} of {@link String}
48
+ *
49
+ * @see MutableSet
50
+ */
51
+ export type MutableStringSet<T extends string = string, > = Set<T>
52
+
53
+ /**
54
+ * A type-alias for an {@link ReadonlySet Set} of {@link Symbol}
55
+ *
56
+ * @see MutableSet
57
+ * @see MutableJavascriptSymbolSet
58
+ * @see MutableTypescriptSymbolSet
59
+ */
60
+ export type MutableSymbolSet<T extends symbol = symbol, > = Set<T>
61
+ /**
62
+ * A type-alias for an {@link ReadonlySet Set} of the official Javascript {@link Symbol}
63
+ *
64
+ * @see MutableSet
65
+ * @see MutableSymbolSet
66
+ */
67
+ export type MutableJavascriptSymbolSet<T extends JavascriptSymbol = JavascriptSymbol, > = Set<T>
68
+ /**
69
+ * A type-alias for an {@link ReadonlySet Set} of the official Typescript {@link Symbol}
70
+ *
71
+ * @see MutableSet
72
+ * @see MutableSymbolSet
73
+ */
74
+ export type MutableTypescriptSymbolSet<T extends TypescriptSymbol = TypescriptSymbol, > = Set<T>
@@ -0,0 +1,74 @@
1
+ //··························································
2
+ // Copyright (c) 2023-2025. Jonathan Bédard ~ JóôòKiwi
3
+ //
4
+ // This project is free to use.
5
+ // All the right is reserved to the author of this project.
6
+ // My projects:
7
+ // - https://github.com/joooKiwi/type
8
+ // - https://github.com/joooKiwi/lazy
9
+ // - https://github.com/joooKiwi/collection
10
+ // - https://github.com/joooKiwi/enumeration
11
+ //··························································
12
+
13
+ import type {JavascriptSymbol, TypescriptSymbol} from "./symbol"
14
+ import type {Numeric} from "./numeric"
15
+
16
+ /**
17
+ * A type-alias for an {@link ReadonlySet Set} of {@link Boolean}
18
+ *
19
+ * @see import('collection').Set
20
+ */
21
+ export type BooleanSet<T extends boolean = boolean, > = ReadonlySet<T>
22
+
23
+ /**
24
+ * A type-alias for an {@link ReadonlySet Set} of {@link Number} or {@link BigInt}
25
+ *
26
+ * @see import('collection').Set
27
+ * @see NumberSet
28
+ * @see BigIntSet
29
+ */
30
+ export type NumericSet<T extends Numeric = Numeric, > = ReadonlySet<T>
31
+ /**
32
+ * A type-alias for an {@link ReadonlySet Set} of {@link Number}
33
+ *
34
+ * @see import('collection').Set
35
+ * @see NumericSet
36
+ */
37
+ export type NumberSet<T extends number = number, > = ReadonlySet<T>
38
+ /**
39
+ * A type-alias for an {@link ReadonlySet Set} of {@link BigInt}
40
+ *
41
+ * @see import('collection').Set
42
+ * @see NumericSet
43
+ */
44
+ export type BigIntSet<T extends bigint = bigint, > = ReadonlySet<T>
45
+
46
+ /**
47
+ * A type-alias for an {@link ReadonlySet Set} of {@link String}
48
+ *
49
+ * @see import('collection').Set
50
+ */
51
+ export type StringSet<T extends string = string, > = ReadonlySet<T>
52
+
53
+ /**
54
+ * A type-alias for an {@link ReadonlySet Set} of {@link Symbol}
55
+ *
56
+ * @see import('collection').Set
57
+ * @see JavascriptSymbolSet
58
+ * @see TypescriptSymbolSet
59
+ */
60
+ export type SymbolSet<T extends symbol = symbol, > = ReadonlySet<T>
61
+ /**
62
+ * A type-alias for an {@link ReadonlySet Set} of the official Javascript {@link Symbol}
63
+ *
64
+ * @see import('collection').Set
65
+ * @see SymbolSet
66
+ */
67
+ export type JavascriptSymbolSet<T extends JavascriptSymbol = JavascriptSymbol, > = ReadonlySet<T>
68
+ /**
69
+ * A type-alias for an {@link ReadonlySet Set} of the official Typescript {@link Symbol}
70
+ *
71
+ * @see import('collection').Set
72
+ * @see SymbolSet
73
+ */
74
+ export type TypescriptSymbolSet<T extends TypescriptSymbol = TypescriptSymbol, > = ReadonlySet<T>
@@ -0,0 +1,482 @@
1
+ //··························································
2
+ // Copyright (c) 2023-2025. Jonathan Bédard ~ JóôòKiwi
3
+ //
4
+ // This project is free to use.
5
+ // All the right is reserved to the author of this project.
6
+ // My projects:
7
+ // - https://github.com/joooKiwi/type
8
+ // - https://github.com/joooKiwi/lazy
9
+ // - https://github.com/joooKiwi/collection
10
+ // - https://github.com/joooKiwi/enumeration
11
+ //··························································
12
+
13
+ import type {UndefinedOr} from "./nullable"
14
+
15
+ /**
16
+ * A type-alias for an {@link ReadonlyArray Array} of a value
17
+ *
18
+ * @see BooleanArray
19
+ * @see NumericArray
20
+ * @see NumberArray
21
+ * @see BigIntArray
22
+ * @see StringArray
23
+ * @see SymbolArray
24
+ * @see JavascriptSymbolArray
25
+ * @see TypescriptSymbolArray
26
+ */
27
+ export type Array<T, > = readonly T[]
28
+ /**
29
+ * A type-alias for a {@link globalThis.Array MutableArray} of a value
30
+ *
31
+ * @see MutableBooleanArray
32
+ * @see MutableNumericArray
33
+ * @see MutableNumberArray
34
+ * @see MutableBigIntArray
35
+ * @see MutableStringArray
36
+ * @see MutableSymbolArray
37
+ * @see MutableJavascriptSymbolArray
38
+ * @see MutableTypescriptSymbolArray
39
+ */
40
+ export type MutableArray<T, > = T[]
41
+
42
+ /**
43
+ * A type-alias for a {@link ReadonlySet Set} of a value
44
+ *
45
+ * @see BooleanSet
46
+ * @see NumericSet
47
+ * @see NumberSet
48
+ * @see BigIntSet
49
+ * @see StringSet
50
+ * @see SymbolSet
51
+ * @see JavascriptSymbolSet
52
+ * @see TypescriptSymbolSet
53
+ */
54
+ export type Set<T, > = ReadonlySet<T>
55
+ /**
56
+ * A type-alias for a {@link globalThis.Set MutableSet} of a value
57
+ *
58
+ * @see MutableBooleanSet
59
+ * @see MutableNumericSet
60
+ * @see MutableNumberSet
61
+ * @see MutableBigIntSet
62
+ * @see MutableStringSet
63
+ * @see MutableSymbolSet
64
+ * @see MutableJavascriptSymbolSet
65
+ * @see MutableTypescriptSymbolSet
66
+ */
67
+ export type MutableSet<T, > = globalThis.Set<T>
68
+
69
+
70
+ /**
71
+ * An interface declaration for a {@link globalThis.WeakSet WeakSet} of a value that is immutable.
72
+ *
73
+ * The collection is holding {@link Object} and {@link Symbol}
74
+ * that is garbage-collectable.
75
+ * An object may be present at one time and not at the other due to being garbage collected.
76
+ *
77
+ * @supportedBy Chrome 36, Chrome Android 36
78
+ * @supportedBy Edge
79
+ * @supportedBy Firefox 34
80
+ * @supportedBy Opera 23
81
+ * @supportedBy Safari 9, Safari iOS 9
82
+ * @supportedBy Node.js 0.12.0
83
+ * @supportedBy Deno
84
+ * @by {@link https://developer.mozilla.org/docs/web/javascript/reference/global_objects/weakset/has/contributors.txt Mozilla Contributors}
85
+ * @by {@link https://creativecommons.org/licenses/by-sa/2.5 CC BY-SA 2.5}
86
+ */
87
+ export interface WeakSet<T extends WeakKey, > {
88
+
89
+ /**
90
+ * Indicate whenever the {@link value} exist or not in the current {@link WeakSet collection}
91
+ *
92
+ * @param value The value to test its presence
93
+ * @return Returns `true` if it exists otherwise `false`.
94
+ * Always returns `false` if the {@link value} is not an {@link Object} or a {@link https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Symbol#shared_symbols_in_the_global_symbol_registry non-registered symbol}
95
+ * @supportedBy Chrome 36, Chrome Android 36
96
+ * @supportedBy Edge
97
+ * @supportedBy Firefox 34
98
+ * @supportedBy Opera 23
99
+ * @supportedBy Safari 9, Safari iOS 9
100
+ * @supportedBy Node.js 0.12.0
101
+ * @supportedBy Deno
102
+ * @by {@link https://developer.mozilla.org/docs/web/javascript/reference/global_objects/weakset/has/contributors.txt Mozilla Contributors}
103
+ * @by {@link https://creativecommons.org/licenses/by-sa/2.5 CC BY-SA 2.5}
104
+ */
105
+ has(value: T,): boolean
106
+
107
+ /**
108
+ * Give an output for the call {@link Object.toString.call} giving [object WeakSet] instead of the general [object Object]
109
+ *
110
+ * @see https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Symbol/toStringTag
111
+ */
112
+ readonly [Symbol.toStringTag]: string
113
+
114
+ }
115
+
116
+ /**
117
+ * An interface declaration for a {@link globalThis.WeakSet WeakSet} of a value that is mutable
118
+ *
119
+ * The collection is holding {@link Object} and {@link Symbol}
120
+ * that is garbage-collectable.
121
+ * An object may be present at one time and not at the other due to being garbage collected.
122
+ *
123
+ * @supportedBy Chrome 36, Chrome Android 36
124
+ * @supportedBy Edge
125
+ * @supportedBy Firefox 34
126
+ * @supportedBy Opera 23
127
+ * @supportedBy Safari 9, Safari iOS 9
128
+ * @supportedBy Node.js 0.12.0
129
+ * @supportedBy Deno
130
+ * @by {@link https://developer.mozilla.org/docs/web/javascript/reference/global_objects/weakset/has/contributors.txt Mozilla Contributors}
131
+ * @by {@link https://creativecommons.org/licenses/by-sa/2.5 CC BY-SA 2.5}
132
+ */
133
+ export interface MutableWeakSet<T extends WeakKey, >
134
+ extends WeakSet<T> {
135
+
136
+ /**
137
+ * Add a new {@link value} to the end of the current {@link MutableWeakSet collection}
138
+ *
139
+ * @param value The value to add
140
+ * @return The current {@link MutableWeakSet} instance
141
+ * @throws TypeError The {@link value} is not an {@link Object} or a {@link https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Symbol#shared_symbols_in_the_global_symbol_registry non-registered symbol}
142
+ * @supportedBy Chrome 36, Chrome Android 36
143
+ * @supportedBy Edge
144
+ * @supportedBy Firefox 34
145
+ * @supportedBy Opera 23
146
+ * @supportedBy Safari 9, Safari iOS 9
147
+ * @supportedBy Node.js 0.12.0
148
+ * @supportedBy Deno
149
+ * @by {@link https://developer.mozilla.org/docs/web/javascript/reference/global_objects/weakset/has/contributors.txt Mozilla Contributors}
150
+ * @by {@link https://creativecommons.org/licenses/by-sa/2.5 CC BY-SA 2.5}
151
+ */
152
+ add(value: T,): this
153
+
154
+ /**
155
+ * Remove a {@link value} (if it exists) in the current {@link MutableWeakSet collection}
156
+ *
157
+ * @param value The value to possibly remove
158
+ * @return Returns `true` if the {@link value} has been removed successfully, otherwise `false`.
159
+ * Always returns `false` if the {@link value} is not an {@link Object} or a {@link https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Symbol#shared_symbols_in_the_global_symbol_registry non-registered symbol}
160
+ * @supportedBy Chrome 36, Chrome Android 36
161
+ * @supportedBy Edge
162
+ * @supportedBy Firefox 34
163
+ * @supportedBy Opera 23
164
+ * @supportedBy Safari 9, Safari iOS 9
165
+ * @supportedBy Node.js 0.12.0
166
+ * @supportedBy Deno
167
+ * @by {@link https://developer.mozilla.org/docs/web/javascript/reference/global_objects/weakset/has/contributors.txt Mozilla Contributors}
168
+ * @by {@link https://creativecommons.org/licenses/by-sa/2.5 CC BY-SA 2.5}
169
+ */
170
+ delete(value: T,): boolean
171
+
172
+ }
173
+
174
+
175
+ /**
176
+ * A type-alias for a {@link ReadonlyMap Map} of a key and a value
177
+ *
178
+ * @see BooleanKeyMap
179
+ * @see BooleanValueMap
180
+ * @see BooleanBooleanMap
181
+ * @see BooleanNumericMap
182
+ * @see BooleanNumberMap
183
+ * @see BooleanBigIntMap
184
+ * @see BooleanStringMap
185
+ * @see BooleanSymbolMap
186
+ * @see BooleanJavascriptSymbolMap
187
+ * @see BooleanTypescriptSymbolMap
188
+ *
189
+ * @see NumericKeyMap
190
+ * @see NumericValueMap
191
+ * @see NumericBooleanMap
192
+ * @see NumericNumericMap
193
+ * @see NumericNumberMap
194
+ * @see NumericBigIntMap
195
+ * @see NumericStringMap
196
+ * @see NumericSymbolMap
197
+ * @see NumericJavascriptSymbolMap
198
+ * @see NumericTypescriptSymbolMap
199
+ *
200
+ * @see NumberKeyMap
201
+ * @see NumberValueMap
202
+ * @see NumberBooleanMap
203
+ * @see NumberNumericMap
204
+ * @see NumberNumberMap
205
+ * @see NumberBigIntMap
206
+ * @see NumberStringMap
207
+ * @see NumberSymbolMap
208
+ * @see NumberJavascriptSymbolMap
209
+ * @see NumberTypescriptSymbolMap
210
+ *
211
+ * @see BigIntKeyMap
212
+ * @see BigIntValueMap
213
+ * @see BigIntBooleanMap
214
+ * @see BigIntNumericMap
215
+ * @see BigIntNumberMap
216
+ * @see BigIntBigIntMap
217
+ * @see BigIntStringMap
218
+ * @see BigIntSymbolMap
219
+ * @see BigIntJavascriptSymbolMap
220
+ * @see BigIntTypescriptSymbolMap
221
+ *
222
+ * @see StringKeyMap
223
+ * @see StringValueMap
224
+ * @see StringBooleanMap
225
+ * @see StringNumericMap
226
+ * @see StringNumberMap
227
+ * @see StringBigIntMap
228
+ * @see StringStringMap
229
+ * @see StringSymbolMap
230
+ * @see StringJavascriptSymbolMap
231
+ * @see StringTypescriptSymbolMap
232
+ *
233
+ * @see SymbolKeyMap
234
+ * @see SymbolValueMap
235
+ * @see SymbolBooleanMap
236
+ * @see SymbolNumericMap
237
+ * @see SymbolNumberMap
238
+ * @see SymbolBigIntMap
239
+ * @see SymbolStringMap
240
+ * @see SymbolSymbolMap
241
+ * @see SymbolJavascriptSymbolMap
242
+ * @see SymbolTypescriptSymbolMap
243
+ *
244
+ * @see JavascriptSymbolKeyMap
245
+ * @see JavascriptSymbolValueMap
246
+ * @see JavascriptSymbolBooleanMap
247
+ * @see JavascriptSymbolNumericMap
248
+ * @see JavascriptSymbolNumberMap
249
+ * @see JavascriptSymbolBigIntMap
250
+ * @see JavascriptSymbolStringMap
251
+ * @see JavascriptSymbolSymbolMap
252
+ * @see JavascriptSymbolJavascriptSymbolMap
253
+ * @see JavascriptSymbolTypescriptSymbolMap
254
+ *
255
+ * @see TypescriptSymbolKeyMap
256
+ * @see TypescriptSymbolValueMap
257
+ * @see TypescriptSymbolBooleanMap
258
+ * @see TypescriptSymbolNumericMap
259
+ * @see TypescriptSymbolNumberMap
260
+ * @see TypescriptSymbolBigIntMap
261
+ * @see TypescriptSymbolStringMap
262
+ * @see TypescriptSymbolSymbolMap
263
+ * @see TypescriptSymbolJavascriptSymbolMap
264
+ * @see TypescriptSymbolTypescriptSymbolMap
265
+ */
266
+ export type Map<K, V, > = ReadonlyMap<K, V>
267
+ /**
268
+ * A type-alias for a {@link globalThis.Map MutableMap} of a key and a value
269
+ *
270
+ * @see MutableBooleanKeyMap
271
+ * @see MutableBooleanValueMap
272
+ * @see MutableBooleanBooleanMap
273
+ * @see MutableBooleanNumericMap
274
+ * @see MutableBooleanNumberMap
275
+ * @see MutableBooleanBigIntMap
276
+ * @see MutableBooleanStringMap
277
+ * @see MutableBooleanSymbolMap
278
+ * @see MutableBooleanJavascriptSymbolMap
279
+ * @see MutableBooleanTypescriptSymbolMap
280
+ *
281
+ * @see MutableNumericKeyMap
282
+ * @see MutableNumericValueMap
283
+ * @see MutableNumericBooleanMap
284
+ * @see MutableNumericNumericMap
285
+ * @see MutableNumericNumberMap
286
+ * @see MutableNumericBigIntMap
287
+ * @see MutableNumericStringMap
288
+ * @see MutableNumericSymbolMap
289
+ * @see MutableNumericJavascriptSymbolMap
290
+ * @see MutableNumericTypescriptSymbolMap
291
+ *
292
+ * @see MutableNumberKeyMap
293
+ * @see MutableNumberValueMap
294
+ * @see MutableNumberBooleanMap
295
+ * @see MutableNumberNumericMap
296
+ * @see MutableNumberNumberMap
297
+ * @see MutableNumberBigIntMap
298
+ * @see MutableNumberStringMap
299
+ * @see MutableNumberSymbolMap
300
+ * @see MutableNumberJavascriptSymbolMap
301
+ * @see MutableNumberTypescriptSymbolMap
302
+ *
303
+ * @see MutableBigIntKeyMap
304
+ * @see MutableBigIntValueMap
305
+ * @see MutableBigIntBooleanMap
306
+ * @see MutableBigIntNumericMap
307
+ * @see MutableBigIntNumberMap
308
+ * @see MutableBigIntBigIntMap
309
+ * @see MutableBigIntStringMap
310
+ * @see MutableBigIntSymbolMap
311
+ * @see MutableBigIntJavascriptSymbolMap
312
+ * @see MutableBigIntTypescriptSymbolMap
313
+ *
314
+ * @see MutableStringKeyMap
315
+ * @see MutableStringValueMap
316
+ * @see MutableStringBooleanMap
317
+ * @see MutableStringNumericMap
318
+ * @see MutableStringNumberMap
319
+ * @see MutableStringBigIntMap
320
+ * @see MutableStringStringMap
321
+ * @see MutableStringSymbolMap
322
+ * @see MutableStringJavascriptSymbolMap
323
+ * @see MutableStringTypescriptSymbolMap
324
+ *
325
+ * @see MutableSymbolKeyMap
326
+ * @see MutableSymbolValueMap
327
+ * @see MutableSymbolBooleanMap
328
+ * @see MutableSymbolNumericMap
329
+ * @see MutableSymbolNumberMap
330
+ * @see MutableSymbolBigIntMap
331
+ * @see MutableSymbolStringMap
332
+ * @see MutableSymbolSymbolMap
333
+ * @see MutableSymbolJavascriptSymbolMap
334
+ * @see MutableSymbolTypescriptSymbolMap
335
+ *
336
+ * @see MutableJavascriptSymbolKeyMap
337
+ * @see MutableJavascriptSymbolValueMap
338
+ * @see MutableJavascriptSymbolBooleanMap
339
+ * @see MutableJavascriptSymbolNumericMap
340
+ * @see MutableJavascriptSymbolNumberMap
341
+ * @see MutableJavascriptSymbolBigIntMap
342
+ * @see MutableJavascriptSymbolStringMap
343
+ * @see MutableJavascriptSymbolSymbolMap
344
+ * @see MutableJavascriptSymbolJavascriptSymbolMap
345
+ * @see MutableJavascriptSymbolTypescriptSymbolMap
346
+ *
347
+ * @see MutableTypescriptSymbolKeyMap
348
+ * @see MutableTypescriptSymbolValueMap
349
+ * @see MutableTypescriptSymbolBooleanMap
350
+ * @see MutableTypescriptSymbolNumericMap
351
+ * @see MutableTypescriptSymbolNumberMap
352
+ * @see MutableTypescriptSymbolBigIntMap
353
+ * @see MutableTypescriptSymbolStringMap
354
+ * @see MutableTypescriptSymbolSymbolMap
355
+ * @see MutableTypescriptSymbolJavascriptSymbolMap
356
+ * @see MutableTypescriptSymbolTypescriptSymbolMap
357
+ */
358
+ export type MutableMap<K, V, > = globalThis.Map<K, V>
359
+
360
+
361
+ /**
362
+ * An interface declaration for a {@link globalThis.WeakMap WeakMap} of a key-value pair that is immutable.
363
+ *
364
+ * The associative collection is holding a key {@link Object} and {@link Symbol}
365
+ * that is garbage-collectable.
366
+ * A key may be present at one time and not at the other due to being garbage collected.
367
+ *
368
+ * @supportedBy Chrome 36, Chrome Android 36
369
+ * @supportedBy Edge
370
+ * @supportedBy Firefox 6
371
+ * @supportedBy Opera 23
372
+ * @supportedBy Safari 8, Safari iOS 8
373
+ * @supportedBy Node.js 0.12.0
374
+ * @supportedBy Deno
375
+ * @by {@link https://developer.mozilla.org/docs/web/javascript/reference/global_objects/weakset/has/contributors.txt Mozilla Contributors}
376
+ * @by {@link https://creativecommons.org/licenses/by-sa/2.5 CC BY-SA 2.5}
377
+ */
378
+ export interface WeakMap<K extends WeakKey, V, > {
379
+
380
+ /**
381
+ * Retrieve the element associated to the {@link key} received in the {@link WeakMap associative collection}
382
+ *
383
+ * @param key The key to retrieve a possible value
384
+ * @return Returns the value present if it exists, otherwise `undefined`.
385
+ * Always returns `undefined` if the {@link value} is not an {@link Object} or a {@link https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Symbol#shared_symbols_in_the_global_symbol_registry non-registered symbol}
386
+ * @supportedBy Chrome 36, Chrome Android 36
387
+ * @supportedBy Edge
388
+ * @supportedBy Firefox 6
389
+ * @supportedBy Opera 23
390
+ * @supportedBy Safari 8, Safari iOS 8
391
+ * @supportedBy Node.js 0.12.0
392
+ * @supportedBy Deno
393
+ * @by {@link https://developer.mozilla.org/docs/web/javascript/reference/global_objects/weakset/has/contributors.txt Mozilla Contributors}
394
+ * @by {@link https://creativecommons.org/licenses/by-sa/2.5 CC BY-SA 2.5}
395
+ */
396
+ get(key: K,): UndefinedOr<V>
397
+
398
+ /**
399
+ * Indicate whenever the {@link key} has an existant value in the current {@link WeakMap associative collection}
400
+ *
401
+ * @param key The key to test its presence
402
+ * @return Returns `true` if it an element exists otherwise `false`.
403
+ * Always returns `false` if the {@link key} is not an {@link Object} or a {@link https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Symbol#shared_symbols_in_the_global_symbol_registry non-registered symbol}
404
+ * @supportedBy Chrome 36, Chrome Android 36
405
+ * @supportedBy Edge
406
+ * @supportedBy Firefox 6
407
+ * @supportedBy Opera 23
408
+ * @supportedBy Safari 8, Safari iOS 8
409
+ * @supportedBy Node.js 0.12.0
410
+ * @supportedBy Deno
411
+ * @by {@link https://developer.mozilla.org/docs/web/javascript/reference/global_objects/weakset/has/contributors.txt Mozilla Contributors}
412
+ * @by {@link https://creativecommons.org/licenses/by-sa/2.5 CC BY-SA 2.5}
413
+ */
414
+ has(key: K,): boolean
415
+
416
+ /**
417
+ * Give an output for the call {@link Object.toString.call} giving [object WeakMap] instead of the general [object Object]
418
+ *
419
+ * @see https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Symbol/toStringTag
420
+ */
421
+ readonly [Symbol.toStringTag]: string
422
+
423
+ }
424
+
425
+ /**
426
+ * An interface declaration for a {@link globalThis.WeakMap WeakMap} of a key-value pair that is mutable.
427
+ *
428
+ * The associative collection is holding a key {@link Object} and {@link Symbol}
429
+ * that is garbage-collectable.
430
+ * A key may be present at one time and not at the other due to being garbage collected.
431
+ *
432
+ * @supportedBy Chrome 36, Chrome Android 36
433
+ * @supportedBy Edge
434
+ * @supportedBy Firefox 6
435
+ * @supportedBy Opera 23
436
+ * @supportedBy Safari 8, Safari iOS 8
437
+ * @supportedBy Node.js 0.12.0
438
+ * @supportedBy Deno
439
+ * @by {@link https://developer.mozilla.org/docs/web/javascript/reference/global_objects/weakset/has/contributors.txt Mozilla Contributors}
440
+ * @by {@link https://creativecommons.org/licenses/by-sa/2.5 CC BY-SA 2.5}
441
+ */
442
+ export interface MutableWeakMap<K extends WeakKey, V, >
443
+ extends WeakMap<K, V> {
444
+
445
+ /**
446
+ * Add or change the {@link value} associated to the {@link key} received
447
+ * in the current {@link MutableWeakMap associative collection}
448
+ *
449
+ * @param key The key to add or update
450
+ * @param value The value to associate to the {@link key}
451
+ * @throws TypeError The {@link key} is not an {@link Object} or a {@link https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Symbol#shared_symbols_in_the_global_symbol_registry non-registered symbol}
452
+ * @supportedBy Chrome 36, Chrome Android 36
453
+ * @supportedBy Edge
454
+ * @supportedBy Firefox 6
455
+ * @supportedBy Opera 23
456
+ * @supportedBy Safari 8, Safari iOS 8
457
+ * @supportedBy Node.js 0.12.0
458
+ * @supportedBy Deno
459
+ * @by {@link https://developer.mozilla.org/docs/web/javascript/reference/global_objects/weakset/has/contributors.txt Mozilla Contributors}
460
+ * @by {@link https://creativecommons.org/licenses/by-sa/2.5 CC BY-SA 2.5}
461
+ */
462
+ set(key: K, value: V,): this
463
+
464
+ /**
465
+ * Remove a {@link key} (if it exists) in the current {@link MutableWeakMap associative collection}
466
+ *
467
+ * @param key The key to possibly remove
468
+ * @return Returns `true` if the {@link key} has been removed successfully, otherwise `false`.
469
+ * Always returns `false` if the {@link key} is not an {@link Object} or a {@link https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Symbol#shared_symbols_in_the_global_symbol_registry non-registered symbol}
470
+ * @supportedBy Chrome 36, Chrome Android 36
471
+ * @supportedBy Edge
472
+ * @supportedBy Firefox 6
473
+ * @supportedBy Opera 23
474
+ * @supportedBy Safari 8, Safari iOS 8
475
+ * @supportedBy Node.js 0.12.0
476
+ * @supportedBy Deno
477
+ * @by {@link https://developer.mozilla.org/docs/web/javascript/reference/global_objects/weakset/has/contributors.txt Mozilla Contributors}
478
+ * @by {@link https://creativecommons.org/licenses/by-sa/2.5 CC BY-SA 2.5}
479
+ */
480
+ delete(key: K,): boolean
481
+
482
+ }