collect-your-stuff 2.1.2 → 2.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 (63) hide show
  1. package/README.md +32 -3926
  2. package/browser/collect-your-stuff.js +912 -549
  3. package/browser/collect-your-stuff.min.js +1 -1
  4. package/dist/collections/arrayable/ArrayElement.d.ts +6 -11
  5. package/dist/collections/arrayable/ArrayElement.js +5 -7
  6. package/dist/collections/arrayable/Arrayable.d.ts +22 -37
  7. package/dist/collections/arrayable/Arrayable.js +208 -223
  8. package/dist/collections/doubly-linked-list/DoubleLinker.d.ts +9 -14
  9. package/dist/collections/doubly-linked-list/DoubleLinker.js +71 -73
  10. package/dist/collections/doubly-linked-list/DoublyLinkedList.d.ts +19 -36
  11. package/dist/collections/doubly-linked-list/DoublyLinkedList.js +310 -327
  12. package/dist/collections/linked-list/LinkedList.d.ts +20 -36
  13. package/dist/collections/linked-list/LinkedList.js +283 -296
  14. package/dist/collections/linked-list/Linker.d.ts +8 -13
  15. package/dist/collections/linked-list/Linker.js +82 -84
  16. package/dist/collections/linked-tree-list/LinkedTreeList.d.ts +24 -43
  17. package/dist/collections/linked-tree-list/LinkedTreeList.js +274 -294
  18. package/dist/collections/linked-tree-list/TreeLinker.d.ts +14 -20
  19. package/dist/collections/linked-tree-list/TreeLinker.js +91 -94
  20. package/dist/collections/queue/Queue.d.ts +10 -14
  21. package/dist/collections/queue/Queue.js +114 -121
  22. package/dist/collections/queue/Queueable.d.ts +13 -22
  23. package/dist/collections/queue/Queueable.js +142 -148
  24. package/dist/collections/queue/TaskQueue.d.ts +8 -17
  25. package/dist/collections/queue/TaskQueue.js +128 -137
  26. package/dist/collections/scoped-collection/ScopedCollection.d.ts +42 -0
  27. package/dist/collections/scoped-collection/ScopedCollection.js +81 -0
  28. package/dist/collections/scoped-collection/ScopedCollection.min.js +1 -0
  29. package/dist/collections/stack/Stack.d.ts +11 -15
  30. package/dist/collections/stack/Stack.js +122 -129
  31. package/dist/collections/stack/Stackable.d.ts +9 -16
  32. package/dist/collections/stack/Stackable.js +81 -85
  33. package/dist/collections/stack/TaskStack.d.ts +8 -17
  34. package/dist/collections/stack/TaskStack.js +98 -107
  35. package/dist/main.d.ts +67 -68
  36. package/dist/main.js +8 -4
  37. package/dist/main.min.js +1 -1
  38. package/dist/recipes/ArrayIterator.d.ts +4 -4
  39. package/dist/recipes/ArrayIterator.js +4 -4
  40. package/dist/recipes/DoubleLinkerIterator.d.ts +3 -3
  41. package/dist/recipes/DoubleLinkerIterator.js +3 -3
  42. package/dist/recipes/IsArrayable.d.ts +13 -33
  43. package/dist/recipes/IsQueue.d.ts +4 -9
  44. package/dist/recipes/IsScopedCollection.d.ts +27 -0
  45. package/dist/recipes/IsScopedCollection.js +5 -0
  46. package/dist/recipes/IsScopedCollection.min.js +1 -0
  47. package/dist/recipes/IsStack.d.ts +4 -9
  48. package/dist/recipes/IsTreeNode.d.ts +1 -1
  49. package/dist/recipes/LinkerIterator.d.ts +3 -3
  50. package/dist/recipes/LinkerIterator.js +3 -3
  51. package/dist/recipes/Runnable.d.ts +3 -16
  52. package/dist/recipes/Runnable.js +3 -9
  53. package/dist/recipes/TreeLinkerIterator.d.ts +4 -4
  54. package/dist/recipes/TreeLinkerIterator.js +36 -36
  55. package/dist/recipes/recipes.d.ts +1 -4
  56. package/dist/recipes/recipes.js +19 -22
  57. package/dist/services/parseTree.d.ts +2 -3
  58. package/dist/services/parseTree.js +23 -24
  59. package/dist/services/parseTreeNext.d.ts +2 -3
  60. package/dist/services/parseTreeNext.js +2 -3
  61. package/dist/services/services.d.ts +1 -4
  62. package/dist/services/services.js +19 -22
  63. package/package.json +4 -4
@@ -14,7 +14,7 @@
14
14
  class ArrayElement {
15
15
  /**
16
16
  * Create the new Element instance, provide the data and optionally configure the type of Element.
17
- * @param {*} [data=null] The data to be stored in this element.
17
+ * @param data The data to be stored in this element.
18
18
  */
19
19
  constructor (data = null) {
20
20
  /** The class used to create this instance, so that it can be recognized as valid without an instanceof check. */
@@ -26,9 +26,8 @@
26
26
  }
27
27
  /**
28
28
  * Make a new Element from the data given if it is not already a valid Element.
29
- * @param {ArrayElement|*} element Return a valid ArrayElement instance from given data, or even an already valid one.
30
- * @param {IsElement} [classType=ArrayElement] Provide the type of IsElement to use.
31
- * @return {ArrayElement}
29
+ * @param element Return a valid ArrayElement instance from given data, or even an already valid one.
30
+ * @param classType Provide the type of IsElement to use.
32
31
  */
33
32
  exports.ArrayElement = ArrayElement
34
33
  ArrayElement.make = (element, classType = ArrayElement) => {
@@ -45,9 +44,8 @@
45
44
  }
46
45
  /**
47
46
  * Convert an array into Element instances, return the head and tail Elements.
48
- * @param {Array<IsElement>} [values=[]] Provide an array of data that will be converted to array of elements.
49
- * @param {IsElement} [classType=ArrayElement] Provide the type of IsElement to use.
50
- * @returns {{head: ArrayElement[], tail: ArrayElement}}
47
+ * @param values Provide an array of data that will be converted to array of elements.
48
+ * @param classType Provide the type of IsElement to use.
51
49
  */
52
50
  ArrayElement.fromArray = (values = [], classType = ArrayElement) => values.reduce((references, element) => {
53
51
  const newElement = classType.make(element, classType)
@@ -66,7 +64,7 @@
66
64
  head: [],
67
65
  tail: null
68
66
  })
69
- }, { 'core-js/modules/esnext.iterator.constructor.js': 122, 'core-js/modules/esnext.iterator.reduce.js': 125 }],
67
+ }, { 'core-js/modules/esnext.iterator.constructor.js': 130, 'core-js/modules/esnext.iterator.reduce.js': 133 }],
70
68
  2: [function (require, module, exports) {
71
69
  'use strict'
72
70
 
@@ -77,10 +75,7 @@
77
75
  const _ArrayElement = require('./ArrayElement')
78
76
  const _ArrayIterator = require('../../recipes/ArrayIterator')
79
77
  /**
80
- * @file arrayable list.
81
- * @author Joshua Heagle <joshuaheagle@gmail.com>
82
- * @version 1.1.0
83
- * @memberOf module:collect-your-stuff
78
+ * arrayable list.
84
79
  */
85
80
 
86
81
  /**
@@ -89,7 +84,7 @@
89
84
  class Arrayable {
90
85
  /**
91
86
  * Create the new Arrayable instance, configure the Arrayable class.
92
- * @param {ArrayElement} [elementClass=ArrayElement] The class used to wrap given data as elements.
87
+ * @param elementClass The class used to wrap given data as elements.
93
88
  */
94
89
  constructor (elementClass = _ArrayElement.ArrayElement) {
95
90
  /** The class used to create this instance, so that it can be recognized as valid without an instanceof check. */
@@ -103,8 +98,7 @@
103
98
 
104
99
  /**
105
100
  * Find the position of an element which must be in this list.
106
- * @param {ArrayElement} node The element to find
107
- * @returns {number}
101
+ * @param node The element to find
108
102
  * @throws {Error} When the element is not in this list
109
103
  */
110
104
  indexOfElement (node) {
@@ -117,8 +111,7 @@
117
111
 
118
112
  /**
119
113
  * Initialize the inner list, should only run once.
120
- * @param {Array<ArrayElement>} initialList Give the array of elements to start in this Arrayable.
121
- * @return {Arrayable}
114
+ * @param initialList Give the array of elements to start in this Arrayable.
122
115
  */
123
116
  initialize (initialList) {
124
117
  if (this.initialized) {
@@ -132,7 +125,6 @@
132
125
 
133
126
  /**
134
127
  * Retrieve the innerList used (the list itself, not a copy).
135
- * @returns {Array<ArrayElement>}
136
128
  */
137
129
  get list () {
138
130
  return this.innerList
@@ -140,7 +132,7 @@
140
132
 
141
133
  /**
142
134
  * Retrieve the first Element from the Arrayable
143
- * @returns {ArrayElement|null} The first element, or null when the Arrayable is empty
135
+ * @returns The first element, or null when the Arrayable is empty
144
136
  */
145
137
  get first () {
146
138
  return this.length ? this.innerList[0] : null
@@ -148,7 +140,7 @@
148
140
 
149
141
  /**
150
142
  * Retrieve the last Element from the Arrayable
151
- * @returns {ArrayElement|null} The last element, or null when the Arrayable is empty
143
+ * @returns The last element, or null when the Arrayable is empty
152
144
  */
153
145
  get last () {
154
146
  return this.length ? this.innerList[this.length - 1] : null
@@ -156,7 +148,6 @@
156
148
 
157
149
  /**
158
150
  * Return the length of the list.
159
- * @returns {number}
160
151
  */
161
152
  get length () {
162
153
  return this.innerList.length
@@ -164,9 +155,8 @@
164
155
 
165
156
  /**
166
157
  * Insert a new node (or data) after a node.
167
- * @param {ArrayElement|null} node The existing node as reference, or null to insert at the start of the list
168
- * @param {ArrayElement|*} newNode The new node to go after the existing node
169
- * @returns {Arrayable}
158
+ * @param node The existing node as reference, or null to insert at the start of the list
159
+ * @param newNode The new node to go after the existing node
170
160
  * @throws {Error} When the reference node is not in this list
171
161
  */
172
162
  insertAfter (node, newNode) {
@@ -178,9 +168,8 @@
178
168
 
179
169
  /**
180
170
  * Insert a new node (or data) before a node.
181
- * @param {ArrayElement|null} node The existing node as reference, or null to insert at the end of the list
182
- * @param {ArrayElement|*} newNode The new node to go before the existing node
183
- * @returns {Arrayable}
171
+ * @param node The existing node as reference, or null to insert at the end of the list
172
+ * @param newNode The new node to go before the existing node
184
173
  * @throws {Error} When the reference node is not in this list
185
174
  */
186
175
  insertBefore (node, newNode) {
@@ -192,9 +181,8 @@
192
181
 
193
182
  /**
194
183
  * Add a node (or data) after the given (or last) node in the list.
195
- * @param {ArrayElement|*} node The new node to add to the end of the list
196
- * @param {ArrayElement} after The existing last node
197
- * @returns {Arrayable}
184
+ * @param node The new node to add to the end of the list
185
+ * @param after The existing last node
198
186
  */
199
187
  append (node, after = this.last) {
200
188
  if (after === this.last) {
@@ -207,9 +195,8 @@
207
195
 
208
196
  /**
209
197
  * Add a node (or data) before the given (or first) node in the list.
210
- * @param {ArrayElement|*} node The new node to add to the start of the list
211
- * @param {ArrayElement} before The existing first node
212
- * @returns {Arrayable}
198
+ * @param node The new node to add to the start of the list
199
+ * @param before The existing first node
213
200
  */
214
201
  prepend (node, before = this.first) {
215
202
  if (before === this.first) {
@@ -222,8 +209,8 @@
222
209
 
223
210
  /**
224
211
  * Remove an element from this arrayable.
225
- * @param {ArrayElement} node The node we wish to remove (and it will be returned after removal)
226
- * @return {ArrayElement|null} The removed node, or null when it was not in this list (nothing is removed)
212
+ * @param node The node we wish to remove (and it will be returned after removal)
213
+ * @returns The removed node, or null when it was not in this list (nothing is removed)
227
214
  */
228
215
  remove (node) {
229
216
  const deleteAt = this.innerList.indexOf(node)
@@ -236,8 +223,7 @@
236
223
 
237
224
  /**
238
225
  * Retrieve an ArrayElement item from this list by numeric index, otherwise return null.
239
- * @param {number} index The integer number for retrieving a node by position.
240
- * @return {ArrayElement|null}
226
+ * @param index The integer number for retrieving a node by position.
241
227
  */
242
228
  item (index) {
243
229
  if (index >= this.length) {
@@ -259,9 +245,8 @@
259
245
 
260
246
  /**
261
247
  * Be able to run forEach on this Arrayable to iterate over the elements.
262
- * @param {forEachCallback} callback The function to call for-each element
263
- * @param {Arrayable} thisArg Optional, 'this' reference
264
- * @returns {Arrayable}
248
+ * @param callback The function to call for-each element
249
+ * @param thisArg Optional, 'this' reference
265
250
  */
266
251
  forEach (callback, thisArg = this) {
267
252
  for (let i = 0; i < thisArg.length; ++i) {
@@ -272,7 +257,6 @@
272
257
 
273
258
  /**
274
259
  * Be able to iterate over this class.
275
- * @returns {Iterator}
276
260
  */
277
261
  [Symbol.iterator] () {
278
262
  const index = 0
@@ -281,17 +265,16 @@
281
265
  }
282
266
  /**
283
267
  * Convert an array to an Arrayable.
284
- * @param {Array} values An array of values which will be converted to elements in this arrayable
285
- * @param {IsElement} [elementClass=ArrayElement] The class to use for each element
286
- * @param {IsArrayable<ArrayElement>} [classType=Arrayable] Provide the type of IsArrayable to use.
287
- * @returns {Arrayable}
268
+ * @param values An array of values which will be converted to elements in this arrayable
269
+ * @param elementClass The class to use for each element
270
+ * @param classType Provide the type of IsArrayable to use.
288
271
  */
289
272
  exports.Arrayable = Arrayable
290
273
  Arrayable.fromArray = (values = [], elementClass = _ArrayElement.ArrayElement, classType = Arrayable) => {
291
274
  const list = new classType(elementClass)
292
275
  return list.initialize(elementClass.fromArray(values).head)
293
276
  }
294
- }, { '../../recipes/ArrayIterator': 16, './ArrayElement': 1 }],
277
+ }, { '../../recipes/ArrayIterator': 17, './ArrayElement': 1 }],
295
278
  3: [function (require, module, exports) {
296
279
  'use strict'
297
280
 
@@ -309,10 +292,10 @@
309
292
  class DoubleLinker {
310
293
  /**
311
294
  * Create the new DoubleLinker instance, provide the data and optionally the next and prev references.
312
- * @param {Object} [nodeData={}] The settings for the new linker.
313
- * @param {*} [nodeData.data=null] The data to be stored in this linker
314
- * @param {DoubleLinker|null} [nodeData.next=null] The reference to the next linker if any
315
- * @param {DoubleLinker|null} [nodeData.prev=null] The reference to the previous linker if any
295
+ * @param nodeData The settings for the new linker.
296
+ * @param nodeData.data The data to be stored in this linker
297
+ * @param nodeData.next The reference to the next linker if any
298
+ * @param nodeData.prev The reference to the previous linker if any
316
299
  */
317
300
  constructor ({
318
301
  data = null,
@@ -334,9 +317,8 @@
334
317
  }
335
318
  /**
336
319
  * Make a new DoubleLinker from the data given if it is not already a valid Linker.
337
- * @param {DoubleLinker|*} linker Return a valid Linker instance from given data, or even an already valid one.
338
- * @param {IsDoubleLinker} [classType=DoubleLinker] Provide the type of IsDoubleLinker to use.
339
- * @return {DoubleLinker}
320
+ * @param linker Return a valid Linker instance from given data, or even an already valid one.
321
+ * @param classType Provide the type of IsDoubleLinker to use.
340
322
  */
341
323
  exports.DoubleLinker = DoubleLinker
342
324
  DoubleLinker.make = (linker, classType = DoubleLinker) => {
@@ -344,9 +326,8 @@
344
326
  }
345
327
  /**
346
328
  * Convert an array into DoubleLinker instances, return the head and tail DoubleLinkers.
347
- * @param {Array} [values=[]] Provide an array of data that will be converted to a chain of linkers.
348
- * @param {IsDoubleLinker} [classType=DoubleLinker] Provide the type of IsDoubleLinker to use.
349
- * @returns {{head: DoubleLinker, tail: DoubleLinker}}
329
+ * @param values Provide an array of data that will be converted to a chain of linkers.
330
+ * @param classType Provide the type of IsDoubleLinker to use.
350
331
  */
351
332
  DoubleLinker.fromArray = (values = [], classType = DoubleLinker) => values.reduce((references, linker) => {
352
333
  const newLinker = classType.make(linker, classType)
@@ -366,7 +347,7 @@
366
347
  head: null,
367
348
  tail: null
368
349
  })
369
- }, { '../linked-list/Linker': 6, 'core-js/modules/esnext.iterator.constructor.js': 122, 'core-js/modules/esnext.iterator.reduce.js': 125 }],
350
+ }, { '../linked-list/Linker': 6, 'core-js/modules/esnext.iterator.constructor.js': 130, 'core-js/modules/esnext.iterator.reduce.js': 133 }],
370
351
  4: [function (require, module, exports) {
371
352
  'use strict'
372
353
 
@@ -380,10 +361,7 @@
380
361
  const _DoubleLinkerIterator = require('../../recipes/DoubleLinkerIterator')
381
362
  const _LinkedList = require('../linked-list/LinkedList')
382
363
  /**
383
- * @file doubly linked list.
384
- * @author Joshua Heagle <joshuaheagle@gmail.com>
385
- * @version 1.1.0
386
- * @memberOf module:collect-your-stuff
364
+ * doubly linked list.
387
365
  */
388
366
 
389
367
  /**
@@ -393,7 +371,7 @@
393
371
  class DoublyLinkedList {
394
372
  /**
395
373
  * Create the new DoublyLinkedList instance.
396
- * @param {DoubleLinker} [linkerClass=DoubleLinker] The class used to wrap given data as linkers.
374
+ * @param linkerClass The class used to wrap given data as linkers.
397
375
  */
398
376
  constructor (linkerClass = _DoubleLinker.DoubleLinker) {
399
377
  /** The class used to create this instance, so that it can be recognized as valid without an instanceof check. */
@@ -411,8 +389,7 @@
411
389
 
412
390
  /**
413
391
  * Initialize the inner list, should only run once.
414
- * @param {DoubleLinker} initialList Give the list of double-linkers to start in this doubly linked-list.
415
- * @return {DoublyLinkedList}
392
+ * @param initialList Give the list of double-linkers to start in this doubly linked-list.
416
393
  */
417
394
  initialize (initialList) {
418
395
  // Borrowed from LinkedList, which types its return as a LinkedList although it returns whatever list called it
@@ -421,7 +398,6 @@
421
398
 
422
399
  /**
423
400
  * Retrieve the innerList used (the list itself, not a copy).
424
- * @returns {DoubleLinker}
425
401
  */
426
402
  get list () {
427
403
  return this.innerList
@@ -429,7 +405,6 @@
429
405
 
430
406
  /**
431
407
  * Retrieve the first DoubleLinker in the list.
432
- * @returns {DoubleLinker}
433
408
  */
434
409
  get first () {
435
410
  let head = this.innerList
@@ -446,7 +421,6 @@
446
421
 
447
422
  /**
448
423
  * Retrieve the last DoubleLinker in the list. The end is remembered, so this does not walk the list.
449
- * @returns {DoubleLinker}
450
424
  */
451
425
  get last () {
452
426
  if (this.innerList === null) {
@@ -464,7 +438,6 @@
464
438
  /**
465
439
  * Return the length of the list. It is kept up to date by the list's own methods, so this does not walk the list
466
440
  * (call reset() after linkers were changed directly).
467
- * @returns {number}
468
441
  */
469
442
  get length () {
470
443
  if (this.countCache === null) {
@@ -475,9 +448,8 @@
475
448
 
476
449
  /**
477
450
  * Insert a new node (or data) after a node.
478
- * @param {DoubleLinker|*} node The existing node as reference (which must be in this list, this is not checked), or null to insert at the start of the list
479
- * @param {DoubleLinker|*} newNode The new node to go after the existing node
480
- * @returns {DoublyLinkedList}
451
+ * @param node The existing node as reference (which must be in this list, this is not checked), or null to insert at the start of the list
452
+ * @param newNode The new node to go after the existing node
481
453
  */
482
454
  insertAfter (node, newNode) {
483
455
  newNode = this.linkerClass.make(newNode, this.linkerClass)
@@ -514,9 +486,8 @@
514
486
 
515
487
  /**
516
488
  * Insert a new node (or data) before a node.
517
- * @param {DoubleLinker|*} node The existing node as reference (which must be in this list, this is not checked), or null to insert at the end of the list
518
- * @param {DoubleLinker|*} newNode The new node to go before the existing node
519
- * @returns {DoublyLinkedList}
489
+ * @param node The existing node as reference (which must be in this list, this is not checked), or null to insert at the end of the list
490
+ * @param newNode The new node to go before the existing node
520
491
  */
521
492
  insertBefore (node, newNode) {
522
493
  newNode = this.linkerClass.make(newNode, this.linkerClass)
@@ -553,9 +524,8 @@
553
524
 
554
525
  /**
555
526
  * Add a node (or data) after the given (or last) node in the list.
556
- * @param {DoubleLinker|*} node The new node to add to the end of the list
557
- * @param {DoubleLinker} after The existing last node
558
- * @returns {DoubleLinker}
527
+ * @param node The new node to add to the end of the list
528
+ * @param after The existing last node
559
529
  */
560
530
  append (node, after = this.last) {
561
531
  return this.insertAfter(after, node)
@@ -563,9 +533,8 @@
563
533
 
564
534
  /**
565
535
  * Add a node (or data) before the given (or first) node in the list.
566
- * @param {DoubleLinker|*} node The new node to add to the start of the list
567
- * @param {DoubleLinker} before The existing first node
568
- * @returns {DoubleLinker}
536
+ * @param node The new node to add to the start of the list
537
+ * @param before The existing first node
569
538
  */
570
539
  prepend (node, before = this.first) {
571
540
  return this.insertBefore(before, node)
@@ -573,8 +542,7 @@
573
542
 
574
543
  /**
575
544
  * Remove a linker from this linked list.
576
- * @param {DoubleLinker} node The node we wish to remove (and it will be returned after removal)
577
- * @return {DoubleLinker}
545
+ * @param node The node we wish to remove (and it will be returned after removal)
578
546
  */
579
547
  remove (node) {
580
548
  if (node === null || typeof node === 'undefined') {
@@ -608,7 +576,6 @@
608
576
  /**
609
577
  * Refresh all references (the head, the end and the length) by walking the list once, and return the head. The list's
610
578
  * own methods keep these up to date, so this is only needed after linkers were changed directly.
611
- * @return {DoubleLinker|null}
612
579
  */
613
580
  reset () {
614
581
  // Start at the pointer for the list
@@ -639,8 +606,7 @@
639
606
 
640
607
  /**
641
608
  * Retrieve a DoubleLinker item from this list by numeric index, otherwise return null.
642
- * @param {number} index The integer number for retrieving a node by position.
643
- * @returns {DoubleLinker|null}
609
+ * @param index The integer number for retrieving a node by position.
644
610
  */
645
611
  item (index) {
646
612
  if (index >= 0) {
@@ -667,9 +633,9 @@
667
633
 
668
634
  /**
669
635
  * Be able to run forEach on this DoublyLinkedList to iterate over the DoubleLinker Items.
670
- * @param {forEachCallback} callback The function to call for-each double linker
671
- * @param {DoublyLinkedList} thisArg Optional, 'this' reference
672
- * @return {DoublyLinkedList} The list which was iterated.
636
+ * @param callback The function to call for-each double linker
637
+ * @param thisArg Optional, 'this' reference
638
+ * @returns The list which was iterated.
673
639
  */
674
640
  forEach (callback, thisArg = this) {
675
641
  return _LinkedList.LinkedList.prototype.forEach.call(this, callback, thisArg)
@@ -677,7 +643,6 @@
677
643
 
678
644
  /**
679
645
  * Be able to iterate over this class.
680
- * @returns {Iterator}
681
646
  */
682
647
  [Symbol.iterator] () {
683
648
  const current = this.first
@@ -686,16 +651,15 @@
686
651
  }
687
652
  /**
688
653
  * Convert an array into a DoublyLinkedList instance, return the new instance.
689
- * @param {Array} [values=[]] An array of values which will be converted to linkers in this doubly-linked-list
690
- * @param {IsDoubleLinker} [linkerClass=DoubleLinker] The class to use for each linker
691
- * @param {IsArrayable<IsDoubleLinker>} [classType=LinkedList] Provide the type of IsArrayable to use.
692
- * @returns {DoublyLinkedList}
654
+ * @param values An array of values which will be converted to linkers in this doubly-linked-list
655
+ * @param linkerClass The class to use for each linker
656
+ * @param classType Provide the type of IsArrayable to use.
693
657
  */
694
658
  exports.DoublyLinkedList = DoublyLinkedList
695
659
  DoublyLinkedList.fromArray = (values = [], linkerClass = _DoubleLinker.DoubleLinker, classType = DoublyLinkedList) => {
696
660
  return _LinkedList.LinkedList.fromArray(values, linkerClass, classType)
697
661
  }
698
- }, { '../../recipes/DoubleLinkerIterator': 17, '../linked-list/LinkedList': 5, './DoubleLinker': 3, 'core-js/modules/esnext.iterator.constructor.js': 122, 'core-js/modules/esnext.iterator.for-each.js': 123 }],
662
+ }, { '../../recipes/DoubleLinkerIterator': 18, '../linked-list/LinkedList': 5, './DoubleLinker': 3, 'core-js/modules/esnext.iterator.constructor.js': 130, 'core-js/modules/esnext.iterator.for-each.js': 131 }],
699
663
  5: [function (require, module, exports) {
700
664
  'use strict'
701
665
 
@@ -713,7 +677,7 @@
713
677
  class LinkedList {
714
678
  /**
715
679
  * Create the new LinkedList instance.
716
- * @param {Linker} [linkerClass=Linker] The class used to wrap given data as linkers.
680
+ * @param linkerClass The class used to wrap given data as linkers.
717
681
  */
718
682
  constructor (linkerClass = _Linker.Linker) {
719
683
  /** The class used to create this instance, so that it can be recognized as valid without an instanceof check. */
@@ -731,8 +695,7 @@
731
695
 
732
696
  /**
733
697
  * Initialize the inner list, should only run once.
734
- * @param {Linker|Array} initialList Give the list of linkers to start in this linked-list.
735
- * @return {LinkedList}
698
+ * @param initialList Give the list of linkers to start in this linked-list.
736
699
  */
737
700
  initialize (initialList) {
738
701
  // Borrowed from Arrayable, which types its return as an Arrayable although it returns whatever list called it
@@ -741,7 +704,6 @@
741
704
 
742
705
  /**
743
706
  * Retrieve the innerList used (the list itself, not a copy).
744
- * @returns {Linker}
745
707
  */
746
708
  get list () {
747
709
  return this.innerList
@@ -749,7 +711,6 @@
749
711
 
750
712
  /**
751
713
  * Retrieve the first Linker in the list.
752
- * @returns {Linker}
753
714
  */
754
715
  get first () {
755
716
  return this.innerList
@@ -757,7 +718,6 @@
757
718
 
758
719
  /**
759
720
  * Retrieve the last Linker in the list. The end is remembered, so this does not walk the list.
760
- * @returns {Linker}
761
721
  */
762
722
  get last () {
763
723
  if (this.innerList === null) {
@@ -775,7 +735,6 @@
775
735
  /**
776
736
  * Return the length of the list. It is kept up to date by the list's own methods, so this does not walk the list
777
737
  * (call reset() after linkers were changed directly).
778
- * @returns {number}
779
738
  */
780
739
  get length () {
781
740
  if (this.countCache === null) {
@@ -786,9 +745,8 @@
786
745
 
787
746
  /**
788
747
  * Insert a new node (or data) after a node.
789
- * @param {Linker|*} node The existing node as reference, or null to insert at the start of the list
790
- * @param {Linker|*} newNode The new node to go after the existing node
791
- * @returns {LinkedList}
748
+ * @param node The existing node as reference, or null to insert at the start of the list
749
+ * @param newNode The new node to go after the existing node
792
750
  */
793
751
  insertAfter (node, newNode) {
794
752
  newNode = this.linkerClass.make(newNode, this.linkerClass)
@@ -814,9 +772,8 @@
814
772
 
815
773
  /**
816
774
  * Insert a new node (or data) before a node.
817
- * @param {Linker|*} node The existing node as reference, or null to insert at the end of the list
818
- * @param {Linker|*} newNode The new node to go before the existing node
819
- * @returns {LinkedList}
775
+ * @param node The existing node as reference, or null to insert at the end of the list
776
+ * @param newNode The new node to go before the existing node
820
777
  * @throws {Error} When the reference node is not in this list
821
778
  */
822
779
  insertBefore (node, newNode) {
@@ -856,9 +813,8 @@
856
813
 
857
814
  /**
858
815
  * Add a node (or data) after the given (or last) node in the list.
859
- * @param {Linker|*} node The new node to add to the end of the list
860
- * @param {Linker} after The existing last node
861
- * @returns {Linker}
816
+ * @param node The new node to add to the end of the list
817
+ * @param after The existing last node
862
818
  */
863
819
  append (node, after = this.last) {
864
820
  return this.insertAfter(after, node)
@@ -866,9 +822,8 @@
866
822
 
867
823
  /**
868
824
  * Add a node (or data) before the given (or first) node in the list.
869
- * @param {Linker|*} node The new node to add to the start of the list
870
- * @param {Linker} before The existing first node
871
- * @returns {Linker}
825
+ * @param node The new node to add to the start of the list
826
+ * @param before The existing first node
872
827
  */
873
828
  prepend (node, before = this.first) {
874
829
  return this.insertBefore(before, node)
@@ -876,8 +831,8 @@
876
831
 
877
832
  /**
878
833
  * Remove a linker from this linked list.
879
- * @param {Linker} node The node we wish to remove (and it will be returned after removal)
880
- * @return {Linker|null} The removed node, or null when it was not in this list (nothing is removed)
834
+ * @param node The node we wish to remove (and it will be returned after removal)
835
+ * @returns The removed node, or null when it was not in this list (nothing is removed)
881
836
  */
882
837
  remove (node) {
883
838
  if (node === null || typeof node === 'undefined') {
@@ -913,7 +868,7 @@
913
868
  /**
914
869
  * Refresh the remembered end and length of the list by walking it once. The list's own methods keep these up to date,
915
870
  * so this is only needed after linkers were changed directly (for example by setting next on a linker).
916
- * @return {Linker|null} The first linker of the list
871
+ * @returns The first linker of the list
917
872
  */
918
873
  reset () {
919
874
  let count = 0
@@ -931,8 +886,7 @@
931
886
 
932
887
  /**
933
888
  * Retrieve a Linker item from this list by numeric index, otherwise return null.
934
- * @param {number} index The integer number for retrieving a node by position.
935
- * @returns {Linker|null}
889
+ * @param index The integer number for retrieving a node by position.
936
890
  */
937
891
  item (index) {
938
892
  if (index >= 0) {
@@ -958,9 +912,8 @@
958
912
 
959
913
  /**
960
914
  * Be able to run forEach on this LinkedList to iterate over the linkers.
961
- * @param {forEachCallback} callback The function to call for-each linker
962
- * @param {LinkedList} thisArg Optional, 'this' reference
963
- * @returns {LinkedList}
915
+ * @param callback The function to call for-each linker
916
+ * @param thisArg Optional, 'this' reference
964
917
  */
965
918
  forEach (callback, thisArg = this) {
966
919
  let index = 0
@@ -975,7 +928,6 @@
975
928
 
976
929
  /**
977
930
  * Be able to iterate over this class.
978
- * @returns {Iterator}
979
931
  */
980
932
  [Symbol.iterator] () {
981
933
  return new _LinkerIterator.LinkerIterator(this.first)
@@ -983,17 +935,16 @@
983
935
  }
984
936
  /**
985
937
  * Convert an array to a LinkedList.
986
- * @param {Array} values An array of values which will be converted to linkers in this linked-list
987
- * @param {IsLinker} linkerClass The class to use for each linker
988
- * @param {IsArrayable<Linker>} [classType=LinkedList] Provide the type of IsArrayable to use.
989
- * @returns {LinkedList}
938
+ * @param values An array of values which will be converted to linkers in this linked-list
939
+ * @param linkerClass The class to use for each linker
940
+ * @param classType Provide the type of IsArrayable to use.
990
941
  */
991
942
  exports.LinkedList = LinkedList
992
943
  LinkedList.fromArray = (values = [], linkerClass = _Linker.Linker, classType = LinkedList) => {
993
944
  const list = new classType(linkerClass)
994
945
  return list.initialize(linkerClass.fromArray(values).head)
995
946
  }
996
- }, { '../../recipes/LinkerIterator': 18, '../arrayable/Arrayable': 2, './Linker': 6 }],
947
+ }, { '../../recipes/LinkerIterator': 19, '../arrayable/Arrayable': 2, './Linker': 6 }],
997
948
  6: [function (require, module, exports) {
998
949
  'use strict'
999
950
 
@@ -1011,9 +962,9 @@
1011
962
  class Linker {
1012
963
  /**
1013
964
  * Create the new Linker instance, provide the data and optionally give the next Linker.
1014
- * @param {Object} [nodeData={}] The settings for the new linker.
1015
- * @param {*} [nodeData.data=null] The data to be stored in this linker
1016
- * @param {Linker|null} [nodeData.next=null] The reference to the next linker if any
965
+ * @param nodeData The settings for the new linker.
966
+ * @param nodeData.data The data to be stored in this linker
967
+ * @param nodeData.next The reference to the next linker if any
1017
968
  */
1018
969
  constructor ({
1019
970
  data = null,
@@ -1031,9 +982,8 @@
1031
982
  }
1032
983
  /**
1033
984
  * Make a new Linker from the data given if it is not already a valid Linker.
1034
- * @param {Linker|*} linker Return a valid Linker instance from given data, or even an already valid one.
1035
- * @param {IsLinker} [classType=Linker] Provide the type of IsLinker to use.
1036
- * @return {Linker}
985
+ * @param linker Return a valid Linker instance from given data, or even an already valid one.
986
+ * @param classType Provide the type of IsLinker to use.
1037
987
  */
1038
988
  exports.Linker = Linker
1039
989
  Linker.make = (linker, classType = Linker) => {
@@ -1058,9 +1008,8 @@
1058
1008
  }
1059
1009
  /**
1060
1010
  * Convert an array into Linker instances, return the head and tail Linkers.
1061
- * @param {Array} [values=[]] Provide an array of data that will be converted to a chain of linkers.
1062
- * @param {IsLinker} [classType=Linker] Provide the type of IsLinker to use.
1063
- * @returns {{head: Linker, tail: Linker}}
1011
+ * @param values Provide an array of data that will be converted to a chain of linkers.
1012
+ * @param classType Provide the type of IsLinker to use.
1064
1013
  */
1065
1014
  Linker.fromArray = (values = [], classType = Linker) => values.reduce((references, linker) => {
1066
1015
  const newLinker = classType.make(linker, classType)
@@ -1079,7 +1028,7 @@
1079
1028
  head: null,
1080
1029
  tail: null
1081
1030
  })
1082
- }, { '../arrayable/ArrayElement': 1, 'core-js/modules/esnext.iterator.constructor.js': 122, 'core-js/modules/esnext.iterator.reduce.js': 125 }],
1031
+ }, { '../arrayable/ArrayElement': 1, 'core-js/modules/esnext.iterator.constructor.js': 130, 'core-js/modules/esnext.iterator.reduce.js': 133 }],
1083
1032
  7: [function (require, module, exports) {
1084
1033
  'use strict'
1085
1034
 
@@ -1093,17 +1042,13 @@
1093
1042
  const _TreeLinkerIterator = require('../../recipes/TreeLinkerIterator')
1094
1043
  const _DoublyLinkedList = require('../doubly-linked-list/DoublyLinkedList')
1095
1044
  /**
1096
- * @file doubly linked tree list.
1097
- * @author Joshua Heagle <joshuaheagle@gmail.com>
1098
- * @version 1.1.0
1099
- * @memberOf module:collect-your-stuff
1045
+ * doubly linked tree list.
1100
1046
  */
1101
1047
 
1102
1048
  /**
1103
1049
  * Use one of the accessors of DoublyLinkedList (which keeps track of the head, tail and length) for a LinkedTreeList.
1104
- * @param {string} name The accessor to use
1105
- * @param {LinkedTreeList} list The list to use it on
1106
- * @returns {*}
1050
+ * @param name The accessor to use
1051
+ * @param list The list to use it on
1107
1052
  */
1108
1053
  const borrowedGetter = (name, list) => Object.getOwnPropertyDescriptor(_DoublyLinkedList.DoublyLinkedList.prototype, name).get.call(list)
1109
1054
  /**
@@ -1113,7 +1058,7 @@
1113
1058
  class LinkedTreeList {
1114
1059
  /**
1115
1060
  * Create the new LinkedTreeList instance, configure the list class.
1116
- * @param {TreeLinker} [linkerClass=TreeLinker] The class used to wrap given data as tree linkers.
1061
+ * @param linkerClass The class used to wrap given data as tree linkers.
1117
1062
  */
1118
1063
  constructor (linkerClass = _TreeLinker.TreeLinker) {
1119
1064
  /** The class used to create this instance, so that it can be recognized as valid without an instanceof check. */
@@ -1133,8 +1078,7 @@
1133
1078
 
1134
1079
  /**
1135
1080
  * Initialize the inner list, should only run once.
1136
- * @param {TreeLinker} initialList Give the list of tree-linkers to start in this linked-tree-list.
1137
- * @return {LinkedTreeList}
1081
+ * @param initialList Give the list of tree-linkers to start in this linked-tree-list.
1138
1082
  */
1139
1083
  initialize (initialList) {
1140
1084
  if (this.initialized) {
@@ -1148,7 +1092,6 @@
1148
1092
 
1149
1093
  /**
1150
1094
  * Retrieve the innerList used (the list itself, not a copy).
1151
- * @returns {TreeLinker}
1152
1095
  */
1153
1096
  get list () {
1154
1097
  return this.innerList
@@ -1156,7 +1099,6 @@
1156
1099
 
1157
1100
  /**
1158
1101
  * Retrieve the first TreeLinker in the list.
1159
- * @returns {TreeLinker}
1160
1102
  */
1161
1103
  get first () {
1162
1104
  return borrowedGetter('first', this)
@@ -1164,7 +1106,6 @@
1164
1106
 
1165
1107
  /**
1166
1108
  * Retrieve the last TreeLinker in the list. The end is remembered, so this does not walk the list.
1167
- * @returns {TreeLinker}
1168
1109
  */
1169
1110
  get last () {
1170
1111
  return borrowedGetter('last', this)
@@ -1173,7 +1114,6 @@
1173
1114
  /**
1174
1115
  * Return the length of the list. It is kept up to date by the list's own methods, so this does not walk the list
1175
1116
  * (call reset() after linkers were changed directly).
1176
- * @returns {number}
1177
1117
  */
1178
1118
  get length () {
1179
1119
  return borrowedGetter('length', this)
@@ -1182,7 +1122,6 @@
1182
1122
  /**
1183
1123
  * Get the parent of this tree list: the node these linkers are the children of (remembered even while the list is
1184
1124
  * empty), or null for the linkers at the top of a tree.
1185
- * @return {TreeLinker|null}
1186
1125
  */
1187
1126
  get parent () {
1188
1127
  if (this.ownerNode !== undefined) {
@@ -1195,7 +1134,7 @@
1195
1134
  /**
1196
1135
  * Set the parent of this tree list: every linker in it gets the node as its parent, and the node gets this list as its
1197
1136
  * children. Linkers added to the list later get this parent too.
1198
- * @param {TreeLinker|null} parent The new node to use as the parent for this group of children
1137
+ * @param parent The new node to use as the parent for this group of children
1199
1138
  */
1200
1139
  set parent (parent) {
1201
1140
  this.ownerNode = parent
@@ -1211,7 +1150,6 @@
1211
1150
 
1212
1151
  /**
1213
1152
  * Return the root parent of the entire tree.
1214
- * @return {TreeLinker}
1215
1153
  */
1216
1154
  get rootParent () {
1217
1155
  let current = this.first
@@ -1228,8 +1166,8 @@
1228
1166
 
1229
1167
  /**
1230
1168
  * Set the children on a parent item.
1231
- * @param {TreeLinker} item The TreeLinker node (one of the linkers of this list) that will be the parent of the children
1232
- * @param {LinkedTreeList|null} [children=null] The LinkedTreeList which has the child nodes to use, or null to remove the children of the item
1169
+ * @param item The TreeLinker node (one of the linkers of this list) that will be the parent of the children
1170
+ * @param children The LinkedTreeList which has the child nodes to use, or null to remove the children of the item
1233
1171
  * @throws {Error} When the item is not one of the linkers of this list
1234
1172
  */
1235
1173
  setChildren (item, children = null) {
@@ -1252,8 +1190,7 @@
1252
1190
 
1253
1191
  /**
1254
1192
  * Make a linker of the given node (or data) and make this list's parent its parent.
1255
- * @param {TreeLinker|*} newNode The node (or data) which is being added to this list
1256
- * @returns {TreeLinker}
1193
+ * @param newNode The node (or data) which is being added to this list
1257
1194
  */
1258
1195
  adopt (newNode) {
1259
1196
  const linker = this.linkerClass.make(newNode, this.linkerClass)
@@ -1263,9 +1200,8 @@
1263
1200
 
1264
1201
  /**
1265
1202
  * Insert a new node (or data) after a node. The new node gets the parent of this list.
1266
- * @param {TreeLinker|*} node The existing node as reference, or null to insert at the start of the list
1267
- * @param {TreeLinker|*} newNode The new node to go after the existing node
1268
- * @returns {LinkedTreeList}
1203
+ * @param node The existing node as reference, or null to insert at the start of the list
1204
+ * @param newNode The new node to go after the existing node
1269
1205
  */
1270
1206
  insertAfter (node, newNode) {
1271
1207
  return _DoublyLinkedList.DoublyLinkedList.prototype.insertAfter.call(this, node, this.adopt(newNode))
@@ -1273,9 +1209,8 @@
1273
1209
 
1274
1210
  /**
1275
1211
  * Insert a new node (or data) before a node. The new node gets the parent of this list.
1276
- * @param {TreeLinker|*} node The existing node as reference, or null to insert at the end of the list
1277
- * @param {TreeLinker|*} newNode The new node to go before the existing node
1278
- * @returns {LinkedTreeList}
1212
+ * @param node The existing node as reference, or null to insert at the end of the list
1213
+ * @param newNode The new node to go before the existing node
1279
1214
  */
1280
1215
  insertBefore (node, newNode) {
1281
1216
  return _DoublyLinkedList.DoublyLinkedList.prototype.insertBefore.call(this, node, this.adopt(newNode))
@@ -1283,9 +1218,8 @@
1283
1218
 
1284
1219
  /**
1285
1220
  * Add a node (or data) after the given (or last) node in the list.
1286
- * @param {TreeLinker|*} node The new node to add to the end of the list
1287
- * @param {TreeLinker} after The existing last node
1288
- * @returns {TreeLinker}
1221
+ * @param node The new node to add to the end of the list
1222
+ * @param after The existing last node
1289
1223
  */
1290
1224
  append (node, after = this.last) {
1291
1225
  return _DoublyLinkedList.DoublyLinkedList.prototype.append.call(this, node, after)
@@ -1293,9 +1227,8 @@
1293
1227
 
1294
1228
  /**
1295
1229
  * Add a node (or data) before the given (or first) node in the list.
1296
- * @param {TreeLinker|*} node The new node to add to the start of the list
1297
- * @param {TreeLinker} before The existing first node
1298
- * @returns {TreeLinker}
1230
+ * @param node The new node to add to the start of the list
1231
+ * @param before The existing first node
1299
1232
  */
1300
1233
  prepend (node, before = this.first) {
1301
1234
  return _DoublyLinkedList.DoublyLinkedList.prototype.prepend.call(this, node, before)
@@ -1303,8 +1236,8 @@
1303
1236
 
1304
1237
  /**
1305
1238
  * Remove a linker from this linked list. The removed node no longer has a parent.
1306
- * @param {TreeLinker} node The node we wish to remove (and it will be returned after removal)
1307
- * @return {TreeLinker|null} The removed node, or null when there was nothing to remove
1239
+ * @param node The node we wish to remove (and it will be returned after removal)
1240
+ * @returns The removed node, or null when there was nothing to remove
1308
1241
  */
1309
1242
  remove (node) {
1310
1243
  const owner = this.parent
@@ -1320,7 +1253,6 @@
1320
1253
  /**
1321
1254
  * Refresh all references (the head, the end and the length) by walking the list once, and return the head. The
1322
1255
  * list's own methods keep these up to date, so this is only needed after linkers were changed directly.
1323
- * @return {TreeLinker}
1324
1256
  */
1325
1257
  reset () {
1326
1258
  return _DoublyLinkedList.DoublyLinkedList.prototype.reset.call(this)
@@ -1328,8 +1260,7 @@
1328
1260
 
1329
1261
  /**
1330
1262
  * Retrieve a TreeLinker item from this list by numeric index, otherwise return null.
1331
- * @param {number} index The integer number for retrieving a node by position.
1332
- * @returns {TreeLinker|null}
1263
+ * @param index The integer number for retrieving a node by position.
1333
1264
  */
1334
1265
  item (index) {
1335
1266
  return _DoublyLinkedList.DoublyLinkedList.prototype.item.call(this, index)
@@ -1337,9 +1268,9 @@
1337
1268
 
1338
1269
  /**
1339
1270
  * Be able to run forEach on this LinkedTreeList to iterate over the TreeLinker Items.
1340
- * @param {forEachCallback} callback The function to call for-each tree node
1341
- * @param {LinkedTreeList} thisArg Optional, 'this' reference
1342
- * @return {LinkedTreeList} The list which was iterated.
1271
+ * @param callback The function to call for-each tree node
1272
+ * @param thisArg Optional, 'this' reference
1273
+ * @returns The list which was iterated.
1343
1274
  */
1344
1275
  forEach (callback, thisArg = this) {
1345
1276
  let index = 0
@@ -1355,7 +1286,6 @@
1355
1286
  /**
1356
1287
  * Be able to iterate over this class: the linkers of this list and everything below them (left-first). It stays within
1357
1288
  * this list (it does not start at, or climb up to, the parents), use the parseTree service to parse a whole tree.
1358
- * @returns {Iterator}
1359
1289
  */
1360
1290
  [Symbol.iterator] () {
1361
1291
  // The linkers of this list and everything below them, left-first. It stays within this list: it does not start at,
@@ -1365,17 +1295,16 @@
1365
1295
  }
1366
1296
  /**
1367
1297
  * Convert an array into a LinkedTreeList instance, return the new instance.
1368
- * @param {Array} [values=[]] An array of values which will be converted to nodes in this tree-list
1369
- * @param {TreeLinker} [linkerClass=TreeLinker] The class to use for each node
1370
- * @param {IsArrayable<TreeLinker>} [classType=LinkedTreeList] Provide the type of IsArrayable to use.
1371
- * @returns {LinkedTreeList}
1298
+ * @param values An array of values which will be converted to nodes in this tree-list
1299
+ * @param linkerClass The class to use for each node
1300
+ * @param classType Provide the type of IsArrayable to use.
1372
1301
  */
1373
1302
  exports.LinkedTreeList = LinkedTreeList
1374
1303
  LinkedTreeList.fromArray = (values = [], linkerClass = _TreeLinker.TreeLinker, classType = LinkedTreeList) => {
1375
1304
  const list = new classType(linkerClass)
1376
1305
  return list.initialize(linkerClass.fromArray(values).head)
1377
1306
  }
1378
- }, { '../../recipes/TreeLinkerIterator': 20, '../doubly-linked-list/DoublyLinkedList': 4, './TreeLinker': 8, 'core-js/modules/esnext.iterator.constructor.js': 122, 'core-js/modules/esnext.iterator.for-each.js': 123 }],
1307
+ }, { '../../recipes/TreeLinkerIterator': 21, '../doubly-linked-list/DoublyLinkedList': 4, './TreeLinker': 8, 'core-js/modules/esnext.iterator.constructor.js': 130, 'core-js/modules/esnext.iterator.for-each.js': 131 }],
1379
1308
  8: [function (require, module, exports) {
1380
1309
  'use strict'
1381
1310
 
@@ -1394,13 +1323,13 @@
1394
1323
  class TreeLinker {
1395
1324
  /**
1396
1325
  * Create the new TreeLinker instance, provide the data and optionally set references for next, prev, parent, or children.
1397
- * @param {Object} [settings={}] The settings for the new tree node.
1398
- * @param {*} [settings.data=null] The data to be stored in this tree node
1399
- * @param {TreeLinker} [settings.next=null] The reference to the next linker if any
1400
- * @param {TreeLinker} [settings.prev=null] The reference to the previous linker if any
1401
- * @param {LinkedTreeList} [settings.children=null] The references to child linkers if any
1402
- * @param {TreeLinker} [settings.parent=null] The reference to a parent linker if any
1403
- * @param {IsArrayable<IsTreeNode>} listClass Give the type of list to use for storing the children
1326
+ * @param settings The settings for the new tree node.
1327
+ * @param settings.data The data to be stored in this tree node
1328
+ * @param settings.next The reference to the next linker if any
1329
+ * @param settings.prev The reference to the previous linker if any
1330
+ * @param settings.children The references to child linkers if any
1331
+ * @param settings.parent The reference to a parent linker if any
1332
+ * @param listClass Give the type of list to use for storing the children
1404
1333
  */
1405
1334
  constructor ({
1406
1335
  data = null,
@@ -1433,9 +1362,8 @@
1433
1362
  * Create the children for this tree from an array. Each child becomes a tree linker with this node as its parent: an
1434
1363
  * existing linker is kept as it is, an object with a data property gives the settings of the linker, and anything
1435
1364
  * else is the data of the linker.
1436
- * @param {Array|null} children Provide an array of data / linker references to be children of this tree node.
1437
- * @param {IsArrayable<IsTreeNode>} listClass Give the type of list to use for storing the children
1438
- * @return {LinkedTreeList|null}
1365
+ * @param children Provide an array of data / linker references to be children of this tree node.
1366
+ * @param listClass Give the type of list to use for storing the children
1439
1367
  */
1440
1368
  childrenFromArray (children = null, listClass = _LinkedTreeList.LinkedTreeList) {
1441
1369
  if (children === null) {
@@ -1456,9 +1384,8 @@
1456
1384
  }
1457
1385
  /**
1458
1386
  * Make a new DoubleLinker from the data given if it is not already a valid Linker.
1459
- * @param {TreeLinker|*} linker Return a valid TreeLinker instance from given data, or even an already valid one.
1460
- * @param {IsTreeNode} [classType=TreeLinker] Provide the type of IsTreeNode to use.
1461
- * @return {TreeLinker}
1387
+ * @param linker Return a valid TreeLinker instance from given data, or even an already valid one.
1388
+ * @param classType Provide the type of IsTreeNode to use.
1462
1389
  */
1463
1390
  exports.TreeLinker = TreeLinker
1464
1391
  TreeLinker.make = (linker, classType = TreeLinker) => {
@@ -1466,12 +1393,11 @@
1466
1393
  }
1467
1394
  /**
1468
1395
  * Convert an array into DoubleLinker instances, return the head and tail DoubleLinkers.
1469
- * @param {Array} [values=[]] Provide an array of data that will be converted to a chain of tree-linkers.
1470
- * @param {IsTreeNode} [classType=TreeLinker] Provide the type of IsTreeNode to use.
1471
- * @returns {{head: TreeLinker, tail: TreeLinker}}
1396
+ * @param values Provide an array of data that will be converted to a chain of tree-linkers.
1397
+ * @param classType Provide the type of IsTreeNode to use.
1472
1398
  */
1473
1399
  TreeLinker.fromArray = (values = [], classType = TreeLinker) => _DoubleLinker.DoubleLinker.fromArray(values, classType)
1474
- }, { '../doubly-linked-list/DoubleLinker': 3, './LinkedTreeList': 7, 'core-js/modules/esnext.iterator.constructor.js': 122, 'core-js/modules/esnext.iterator.map.js': 124 }],
1400
+ }, { '../doubly-linked-list/DoubleLinker': 3, './LinkedTreeList': 7, 'core-js/modules/esnext.iterator.constructor.js': 130, 'core-js/modules/esnext.iterator.map.js': 132 }],
1475
1401
  9: [function (require, module, exports) {
1476
1402
  'use strict'
1477
1403
 
@@ -1484,10 +1410,7 @@
1484
1410
  const _LinkedList = require('../linked-list/LinkedList')
1485
1411
  const _Linker = require('../linked-list/Linker')
1486
1412
  /**
1487
- * @file queue
1488
- * @author Joshua Heagle <joshuaheagle@gmail.com>
1489
- * @version 2.0.0
1490
- * @memberOf module:collect-your-stuff
1413
+ * queue
1491
1414
  */
1492
1415
 
1493
1416
  /**
@@ -1498,9 +1421,9 @@
1498
1421
  class Queue {
1499
1422
  /**
1500
1423
  * Instantiate the queue, optionally with a list of items to start from.
1501
- * @param {IsArrayable|null} [queuedList=null] The list of linkers to start in this queue (the first is the front)
1502
- * @param {IsArrayable} [listClass=LinkedList] The type of list to create when no queued list is given
1503
- * @param {Linker} [linkerClass=Linker] The class used to hold each queued item
1424
+ * @param queuedList The list of linkers to start in this queue (the first is the front)
1425
+ * @param listClass The type of list to create when no queued list is given
1426
+ * @param linkerClass The class used to hold each queued item
1504
1427
  */
1505
1428
  constructor (queuedList = null, listClass = _LinkedList.LinkedList, linkerClass = _Linker.Linker) {
1506
1429
  this.linkerClass = linkerClass
@@ -1509,7 +1432,7 @@
1509
1432
 
1510
1433
  /**
1511
1434
  * Take the item from the front of the queue.
1512
- * @return {*|null} The item, or null when the queue is empty
1435
+ * @returns The item, or null when the queue is empty
1513
1436
  */
1514
1437
  dequeue () {
1515
1438
  const front = this.queuedList.first
@@ -1522,7 +1445,6 @@
1522
1445
 
1523
1446
  /**
1524
1447
  * Check whether the queue has no items.
1525
- * @return {boolean}
1526
1448
  */
1527
1449
  empty () {
1528
1450
  return this.size() <= 0
@@ -1530,8 +1452,8 @@
1530
1452
 
1531
1453
  /**
1532
1454
  * Add an item to the back of the queue.
1533
- * @param {*} data The item to add
1534
- * @return {Queue} This queue, so that adding can be chained
1455
+ * @param data The item to add
1456
+ * @returns This queue, so that adding can be chained
1535
1457
  */
1536
1458
  enqueue (data) {
1537
1459
  // The item is wrapped here rather than left to the list, since the list treats objects that look like a linker's
@@ -1544,7 +1466,7 @@
1544
1466
 
1545
1467
  /**
1546
1468
  * Look at the item at the front of the queue, without removing it.
1547
- * @return {*|null} The item, or null when the queue is empty
1469
+ * @returns The item, or null when the queue is empty
1548
1470
  */
1549
1471
  peek () {
1550
1472
  const front = this.queuedList.first
@@ -1553,7 +1475,6 @@
1553
1475
 
1554
1476
  /**
1555
1477
  * Count the items in the queue.
1556
- * @return {number}
1557
1478
  */
1558
1479
  size () {
1559
1480
  return this.queuedList.length
@@ -1561,7 +1482,6 @@
1561
1482
 
1562
1483
  /**
1563
1484
  * Iterate over the items from the front of the queue to the back, without removing them.
1564
- * @return {Iterator}
1565
1485
  */
1566
1486
  [Symbol.iterator] () {
1567
1487
  const linkers = this.queuedList[Symbol.iterator]()
@@ -1583,10 +1503,9 @@
1583
1503
  }
1584
1504
  /**
1585
1505
  * Convert an array to a Queue, the first value is at the front.
1586
- * @param {Array} [values=[]] The items to queue
1587
- * @param {IsArrayable} [listClass=LinkedList] The type of list used to store the items
1588
- * @param {Linker} [linkerClass=Linker] The class used to hold each queued item
1589
- * @returns {Queue}
1506
+ * @param values The items to queue
1507
+ * @param listClass The type of list used to store the items
1508
+ * @param linkerClass The class used to hold each queued item
1590
1509
  */
1591
1510
  exports.Queue = Queue
1592
1511
  Queue.fromArray = (values = [], listClass = _LinkedList.LinkedList, linkerClass = _Linker.Linker) => {
@@ -1594,7 +1513,7 @@
1594
1513
  values.forEach(value => queue.enqueue(value))
1595
1514
  return queue
1596
1515
  }
1597
- }, { '../linked-list/LinkedList': 5, '../linked-list/Linker': 6, 'core-js/modules/esnext.iterator.constructor.js': 122, 'core-js/modules/esnext.iterator.for-each.js': 123 }],
1516
+ }, { '../linked-list/LinkedList': 5, '../linked-list/Linker': 6, 'core-js/modules/esnext.iterator.constructor.js': 130, 'core-js/modules/esnext.iterator.for-each.js': 131 }],
1598
1517
  10: [function (require, module, exports) {
1599
1518
  'use strict'
1600
1519
 
@@ -1610,10 +1529,10 @@
1610
1529
  class Queueable {
1611
1530
  /**
1612
1531
  * Create a queueable item that can be used in a queue.
1613
- * @param {Object} [queueableData={}] The settings for the new queueable.
1614
- * @param {*} [queueableData.task=null] The data to be stored in this queueable
1615
- * @param {Queueable|null} [queueableData.next=null] The reference to the next queueable if any
1616
- * @param {boolean|Function} [queueableData.ready=false] Indicate if the queueable is ready to run
1532
+ * @param queueableData The settings for the new queueable.
1533
+ * @param queueableData.task The data to be stored in this queueable
1534
+ * @param queueableData.next The reference to the next queueable if any
1535
+ * @param queueableData.ready Indicate if the queueable is ready to run
1617
1536
  */
1618
1537
  constructor ({
1619
1538
  task = null,
@@ -1640,7 +1559,6 @@
1640
1559
 
1641
1560
  /**
1642
1561
  * Check ready state.
1643
- * @return {boolean}
1644
1562
  */
1645
1563
  get isReady () {
1646
1564
  return typeof this.ready === 'function' ? this.ready() : this.ready
@@ -1648,7 +1566,6 @@
1648
1566
 
1649
1567
  /**
1650
1568
  * Retrieve the data which should be formed as a task.
1651
- * @return {*}
1652
1569
  */
1653
1570
  get task () {
1654
1571
  if (typeof this.data === 'function') {
@@ -1663,11 +1580,10 @@
1663
1580
 
1664
1581
  /**
1665
1582
  * Set this queueable as completed.
1666
- * @param {Object} [completeResponse={}] The result to report for the task.
1667
- * @param {*} [completeResponse.success=true] Indicate when the task failed (use false) or give a success message
1668
- * @param {*} [completeResponse.error=false] Indicate a task was error-free (use false) or give an error message
1669
- * @param {*} [completeResponse.context=null] Provide additional data in the response
1670
- * @return {completeResponse}
1583
+ * @param completeResponse The result to report for the task.
1584
+ * @param completeResponse.success Indicate when the task failed (use false) or give a success message
1585
+ * @param completeResponse.error Indicate a task was error-free (use false) or give an error message
1586
+ * @param completeResponse.context Provide additional data in the response
1671
1587
  */
1672
1588
  markCompleted ({
1673
1589
  success = true,
@@ -1685,7 +1601,6 @@
1685
1601
 
1686
1602
  /**
1687
1603
  * Intend to run the queued task when it is ready. If ready, mark this task as running and run the task.
1688
- * @return {completeResponse}
1689
1604
  */
1690
1605
  run () {
1691
1606
  if (!this.isReady) {
@@ -1711,9 +1626,8 @@
1711
1626
  }
1712
1627
  /**
1713
1628
  * Make a new Queueable from the data given if it is not already a valid Queueable.
1714
- * @param {Queueable|*} queueable Return a valid Queueable instance from given data, or even an already valid one.
1715
- * @param {IsLinker} [classType=Queueable] Provide the type of IsLinker to use.
1716
- * @return {Queueable}
1629
+ * @param queueable Return a valid Queueable instance from given data, or even an already valid one.
1630
+ * @param classType Provide the type of IsLinker to use.
1717
1631
  */
1718
1632
  exports.Queueable = Queueable
1719
1633
  Queueable.make = (queueable, classType = Queueable) => {
@@ -1739,9 +1653,8 @@
1739
1653
  }
1740
1654
  /**
1741
1655
  * Convert an array into Queueable instances, return the head and tail Queueables.
1742
- * @param {Array} values Provide an array of data that will be converted to a chain of queueable linkers.
1743
- * @param {IsLinker} [classType=Queueable] Provide the type of IsLinker to use.
1744
- * @returns {{head: Queueable, tail: Queueable}}
1656
+ * @param values Provide an array of data that will be converted to a chain of queueable linkers.
1657
+ * @param classType Provide the type of IsLinker to use.
1745
1658
  */
1746
1659
  Queueable.fromArray = (values = [], classType = Queueable) => _Linker.Linker.fromArray(values, classType)
1747
1660
  }, { '../linked-list/Linker': 6 }],
@@ -1755,10 +1668,7 @@
1755
1668
  const _Queueable = require('./Queueable')
1756
1669
  const _LinkedList = require('../linked-list/LinkedList')
1757
1670
  /**
1758
- * @file task queue
1759
- * @author Joshua Heagle <joshuaheagle@gmail.com>
1760
- * @version 1.1.0
1761
- * @memberOf module:collect-your-stuff
1671
+ * task queue
1762
1672
  */
1763
1673
 
1764
1674
  /**
@@ -1769,9 +1679,9 @@
1769
1679
  class TaskQueue {
1770
1680
  /**
1771
1681
  * Instantiate the queue with the given queue list.
1772
- * @param {Iterable|LinkedList} queuedList Give the list of queueables to start in this queue.
1773
- * @param {IsArrayable} [listClass=LinkedList] The type of list to create when no queued list is given.
1774
- * @param {Queueable} [queueableClass=Queueable] The class used to wrap queued items.
1682
+ * @param queuedList Give the list of queueables to start in this queue.
1683
+ * @param listClass The type of list to create when no queued list is given.
1684
+ * @param queueableClass The class used to wrap queued items.
1775
1685
  */
1776
1686
  constructor (queuedList = null, listClass = _LinkedList.LinkedList, queueableClass = _Queueable.Queueable) {
1777
1687
  this.listClass = listClass
@@ -1786,7 +1696,6 @@
1786
1696
  * Take a queued task from the front of the queue and run it if ready. A task which is not ready yet is kept in the
1787
1697
  * queue (never dropped), a task which is still running is reported as blocking and left to finish on its own, and
1788
1698
  * completed tasks are discarded.
1789
- * @return {completeResponse|*}
1790
1699
  */
1791
1700
  dequeue () {
1792
1701
  let next = this.remove()
@@ -1829,7 +1738,6 @@
1829
1738
 
1830
1739
  /**
1831
1740
  * Return true if the queue is empty (there are no tasks in the queue list)
1832
- * @return {boolean}
1833
1741
  */
1834
1742
  empty () {
1835
1743
  return this.size() <= 0
@@ -1837,7 +1745,7 @@
1837
1745
 
1838
1746
  /**
1839
1747
  * Add a queued task to the end of the queue
1840
- * @param {Queueable} queueable Add a new queueable to the end of the queue
1748
+ * @param queueable Add a new queueable to the end of the queue
1841
1749
  */
1842
1750
  enqueue (queueable) {
1843
1751
  this.queuedList.append(queueable)
@@ -1845,7 +1753,6 @@
1845
1753
 
1846
1754
  /**
1847
1755
  * Take a look at the next queued task
1848
- * @return {Queueable}
1849
1756
  */
1850
1757
  peek () {
1851
1758
  return this.queuedList.first
@@ -1853,7 +1760,6 @@
1853
1760
 
1854
1761
  /**
1855
1762
  * Remove the next queued item and return it.
1856
- * @return {Queueable|null}
1857
1763
  */
1858
1764
  remove () {
1859
1765
  if (this.empty()) {
@@ -1864,7 +1770,6 @@
1864
1770
 
1865
1771
  /**
1866
1772
  * Get the length of the current queue.
1867
- * @return {number}
1868
1773
  */
1869
1774
  size () {
1870
1775
  return this.queuedList.length
@@ -1872,10 +1777,9 @@
1872
1777
  }
1873
1778
  /**
1874
1779
  * Convert an array to a TaskQueue.
1875
- * @param {Array} values An array of values which will be converted to queueables in this queue
1876
- * @param {Queueable} queueableClass The class to use for each queueable
1877
- * @param {TaskQueue|Iterable} listClass The class to use to manage the queueables
1878
- * @returns {TaskQueue}
1780
+ * @param values An array of values which will be converted to queueables in this queue
1781
+ * @param queueableClass The class to use for each queueable
1782
+ * @param listClass The class to use to manage the queueables
1879
1783
  */
1880
1784
  exports.TaskQueue = TaskQueue
1881
1785
  TaskQueue.fromArray = (values = [], queueableClass = _Queueable.Queueable, listClass = _LinkedList.LinkedList) => {
@@ -1887,6 +1791,89 @@
1887
1791
  12: [function (require, module, exports) {
1888
1792
  'use strict'
1889
1793
 
1794
+ Object.defineProperty(exports, '__esModule', {
1795
+ value: true
1796
+ })
1797
+ exports.ScopedCollection = void 0
1798
+ require('core-js/modules/esnext.map.delete-all.js')
1799
+ require('core-js/modules/esnext.map.every.js')
1800
+ require('core-js/modules/esnext.map.filter.js')
1801
+ require('core-js/modules/esnext.map.find.js')
1802
+ require('core-js/modules/esnext.map.find-key.js')
1803
+ require('core-js/modules/esnext.map.includes.js')
1804
+ require('core-js/modules/esnext.map.key-of.js')
1805
+ require('core-js/modules/esnext.map.map-keys.js')
1806
+ require('core-js/modules/esnext.map.map-values.js')
1807
+ require('core-js/modules/esnext.map.merge.js')
1808
+ require('core-js/modules/esnext.map.reduce.js')
1809
+ require('core-js/modules/esnext.map.some.js')
1810
+ require('core-js/modules/esnext.map.update.js')
1811
+ require('core-js/modules/esnext.weak-map.delete-all.js')
1812
+ /**
1813
+ * A keyed collection, partitioned by an arbitrary scope object: values are stored and looked up by key, with a
1814
+ * separate key space per scope. Scopes are held by a WeakMap, so a scope that nothing else references any more
1815
+ * takes its whole key space with it - useful anywhere state needs to be tracked per instance of something (a
1816
+ * tree's root, a session) without that something needing to hold the state itself.
1817
+ */
1818
+ class ScopedCollection {
1819
+ constructor () {
1820
+ this.scopes = new WeakMap()
1821
+ }
1822
+
1823
+ /**
1824
+ * Remove a key from a scope's key space.
1825
+ * @param scope The scope to remove the key from
1826
+ * @param key The key to remove
1827
+ * @returns Whether a value was actually removed
1828
+ */
1829
+ delete (scope, key) {
1830
+ const keyedValues = this.scopes.get(scope)
1831
+ return typeof keyedValues === 'undefined' ? false : keyedValues.delete(key)
1832
+ }
1833
+
1834
+ /**
1835
+ * Look up a value by key within a scope.
1836
+ * @param scope The scope to look within
1837
+ * @param key The key to look up
1838
+ * @returns The value, or undefined when the scope or key is not present
1839
+ */
1840
+ get (scope, key) {
1841
+ let _a
1842
+ return (_a = this.scopes.get(scope)) === null || _a === void 0 ? void 0 : _a.get(key)
1843
+ }
1844
+
1845
+ /**
1846
+ * Check whether a key exists within a scope.
1847
+ * @param scope The scope to look within
1848
+ * @param key The key to check
1849
+ */
1850
+ has (scope, key) {
1851
+ let _a, _b
1852
+ return (_b = (_a = this.scopes.get(scope)) === null || _a === void 0 ? void 0 : _a.has(key)) !== null && _b !== void 0 ? _b : false
1853
+ }
1854
+
1855
+ /**
1856
+ * Store a value under a key within a scope.
1857
+ * @param scope The scope to store the key within
1858
+ * @param key The key to store the value under
1859
+ * @param value The value to store
1860
+ * @returns This collection, so that setting can be chained
1861
+ */
1862
+ set (scope, key, value) {
1863
+ let keyedValues = this.scopes.get(scope)
1864
+ if (typeof keyedValues === 'undefined') {
1865
+ keyedValues = new Map()
1866
+ this.scopes.set(scope, keyedValues)
1867
+ }
1868
+ keyedValues.set(key, value)
1869
+ return this
1870
+ }
1871
+ }
1872
+ exports.ScopedCollection = ScopedCollection
1873
+ }, { 'core-js/modules/esnext.map.delete-all.js': 134, 'core-js/modules/esnext.map.every.js': 135, 'core-js/modules/esnext.map.filter.js': 136, 'core-js/modules/esnext.map.find-key.js': 137, 'core-js/modules/esnext.map.find.js': 138, 'core-js/modules/esnext.map.includes.js': 139, 'core-js/modules/esnext.map.key-of.js': 140, 'core-js/modules/esnext.map.map-keys.js': 141, 'core-js/modules/esnext.map.map-values.js': 142, 'core-js/modules/esnext.map.merge.js': 143, 'core-js/modules/esnext.map.reduce.js': 144, 'core-js/modules/esnext.map.some.js': 145, 'core-js/modules/esnext.map.update.js': 146, 'core-js/modules/esnext.weak-map.delete-all.js': 147 }],
1874
+ 13: [function (require, module, exports) {
1875
+ 'use strict'
1876
+
1890
1877
  Object.defineProperty(exports, '__esModule', {
1891
1878
  value: true
1892
1879
  })
@@ -1896,10 +1883,7 @@
1896
1883
  const _LinkedList = require('../linked-list/LinkedList')
1897
1884
  const _Linker = require('../linked-list/Linker')
1898
1885
  /**
1899
- * @file stack.
1900
- * @author Joshua Heagle <joshuaheagle@gmail.com>
1901
- * @version 2.0.0
1902
- * @memberOf module:collect-your-stuff
1886
+ * stack.
1903
1887
  */
1904
1888
 
1905
1889
  /**
@@ -1910,9 +1894,9 @@
1910
1894
  class Stack {
1911
1895
  /**
1912
1896
  * Instantiate the stack, optionally with a list of items to start from.
1913
- * @param {IsArrayable|null} [stackedList=null] The list of linkers to start in this stack (the first is the top)
1914
- * @param {IsArrayable} [listClass=LinkedList] The type of list to create when no stacked list is given
1915
- * @param {Linker} [linkerClass=Linker] The class used to hold each stacked item
1897
+ * @param stackedList The list of linkers to start in this stack (the first is the top)
1898
+ * @param listClass The type of list to create when no stacked list is given
1899
+ * @param linkerClass The class used to hold each stacked item
1916
1900
  */
1917
1901
  constructor (stackedList = null, listClass = _LinkedList.LinkedList, linkerClass = _Linker.Linker) {
1918
1902
  this.linkerClass = linkerClass
@@ -1921,7 +1905,6 @@
1921
1905
 
1922
1906
  /**
1923
1907
  * Check whether the stack has no items.
1924
- * @return {boolean}
1925
1908
  */
1926
1909
  empty () {
1927
1910
  return this.size() <= 0
@@ -1929,7 +1912,7 @@
1929
1912
 
1930
1913
  /**
1931
1914
  * Look at the item on the top of the stack, without removing it.
1932
- * @return {*|null} The item, or null when the stack is empty
1915
+ * @returns The item, or null when the stack is empty
1933
1916
  */
1934
1917
  peek () {
1935
1918
  const top = this.stackedList.first
@@ -1938,7 +1921,7 @@
1938
1921
 
1939
1922
  /**
1940
1923
  * Take the item from the top of the stack.
1941
- * @return {*|null} The item, or null when the stack is empty
1924
+ * @returns The item, or null when the stack is empty
1942
1925
  */
1943
1926
  pop () {
1944
1927
  const top = this.stackedList.first
@@ -1951,8 +1934,8 @@
1951
1934
 
1952
1935
  /**
1953
1936
  * Add an item to the top of the stack.
1954
- * @param {*} data The item to add
1955
- * @return {Stack} This stack, so that adding can be chained
1937
+ * @param data The item to add
1938
+ * @returns This stack, so that adding can be chained
1956
1939
  */
1957
1940
  push (data) {
1958
1941
  // The item is wrapped here rather than left to the list, since the list treats objects that look like a linker's
@@ -1965,7 +1948,6 @@
1965
1948
 
1966
1949
  /**
1967
1950
  * Count the items in the stack.
1968
- * @return {number}
1969
1951
  */
1970
1952
  size () {
1971
1953
  return this.stackedList.length
@@ -1973,7 +1955,7 @@
1973
1955
 
1974
1956
  /**
1975
1957
  * The item on the top of the stack (the same as peek).
1976
- * @return {*|null} The item, or null when the stack is empty
1958
+ * @returns The item, or null when the stack is empty
1977
1959
  */
1978
1960
  top () {
1979
1961
  return this.peek()
@@ -1981,7 +1963,6 @@
1981
1963
 
1982
1964
  /**
1983
1965
  * Iterate over the items from the top of the stack to the bottom, without removing them.
1984
- * @return {Iterator}
1985
1966
  */
1986
1967
  [Symbol.iterator] () {
1987
1968
  const linkers = this.stackedList[Symbol.iterator]()
@@ -2003,10 +1984,9 @@
2003
1984
  }
2004
1985
  /**
2005
1986
  * Convert an array to a Stack by pushing each value in turn, so the last value is on the top.
2006
- * @param {Array} [values=[]] The items to stack
2007
- * @param {IsArrayable} [listClass=LinkedList] The type of list used to store the items
2008
- * @param {Linker} [linkerClass=Linker] The class used to hold each stacked item
2009
- * @returns {Stack}
1987
+ * @param values The items to stack
1988
+ * @param listClass The type of list used to store the items
1989
+ * @param linkerClass The class used to hold each stacked item
2010
1990
  */
2011
1991
  exports.Stack = Stack
2012
1992
  Stack.fromArray = (values = [], listClass = _LinkedList.LinkedList, linkerClass = _Linker.Linker) => {
@@ -2014,8 +1994,8 @@
2014
1994
  values.forEach(value => stack.push(value))
2015
1995
  return stack
2016
1996
  }
2017
- }, { '../linked-list/LinkedList': 5, '../linked-list/Linker': 6, 'core-js/modules/esnext.iterator.constructor.js': 122, 'core-js/modules/esnext.iterator.for-each.js': 123 }],
2018
- 13: [function (require, module, exports) {
1997
+ }, { '../linked-list/LinkedList': 5, '../linked-list/Linker': 6, 'core-js/modules/esnext.iterator.constructor.js': 130, 'core-js/modules/esnext.iterator.for-each.js': 131 }],
1998
+ 14: [function (require, module, exports) {
2019
1999
  'use strict'
2020
2000
 
2021
2001
  Object.defineProperty(exports, '__esModule', {
@@ -2030,10 +2010,10 @@
2030
2010
  class Stackable {
2031
2011
  /**
2032
2012
  * Create a stackable item that can be used in a stack.
2033
- * @param {Object} [stackData={}] The settings for the new stackable.
2034
- * @param {*} [stackData.task=null] The data to be stored in this stackable
2035
- * @param {Stackable|null} [stackData.next=null] The reference to the next stackable if any
2036
- * @param {boolean|Function} [stackData.ready=false] Indicate if the stackable is ready to run
2013
+ * @param stackData The settings for the new stackable.
2014
+ * @param stackData.task The data to be stored in this stackable
2015
+ * @param stackData.next The reference to the next stackable if any
2016
+ * @param stackData.ready Indicate if the stackable is ready to run
2037
2017
  */
2038
2018
  constructor ({
2039
2019
  task = null,
@@ -2051,7 +2031,6 @@
2051
2031
 
2052
2032
  /**
2053
2033
  * Retrieve the data which should be formed as a task.
2054
- * @return {*}
2055
2034
  */
2056
2035
  get task () {
2057
2036
  if (typeof this.data === 'function') {
@@ -2062,7 +2041,6 @@
2062
2041
 
2063
2042
  /**
2064
2043
  * Run the stacked task.
2065
- * @return {*}
2066
2044
  */
2067
2045
  run () {
2068
2046
  return this.task()
@@ -2070,9 +2048,8 @@
2070
2048
  }
2071
2049
  /**
2072
2050
  * Make a new Stackable from the data given if it is not already a valid Stackable.
2073
- * @param {Stackable|*} stackable Return a valid Stackable instance from given data, or even an already valid one.
2074
- * @param {IsLinker} [classType=Stackable] Provide the type of IsLinker to use.
2075
- * @return {Stackable}
2051
+ * @param stackable Return a valid Stackable instance from given data, or even an already valid one.
2052
+ * @param classType Provide the type of IsLinker to use.
2076
2053
  */
2077
2054
  exports.Stackable = Stackable
2078
2055
  Stackable.make = (stackable, classType = Stackable) => {
@@ -2096,13 +2073,12 @@
2096
2073
  }
2097
2074
  /**
2098
2075
  * Convert an array into Stackable instances, return the head and tail Stackables.
2099
- * @param {Array} [values=[]] Provide an array of data that will be converted to a chain of stackable linkers.
2100
- * @param {IsLinker} [classType=Stackable] Provide the type of IsLinker to use.
2101
- * @returns {{head: Stackable, tail: Stackable}}
2076
+ * @param values Provide an array of data that will be converted to a chain of stackable linkers.
2077
+ * @param classType Provide the type of IsLinker to use.
2102
2078
  */
2103
2079
  Stackable.fromArray = (values = [], classType = Stackable) => _Linker.Linker.fromArray(values, classType)
2104
2080
  }, { '../linked-list/Linker': 6 }],
2105
- 14: [function (require, module, exports) {
2081
+ 15: [function (require, module, exports) {
2106
2082
  'use strict'
2107
2083
 
2108
2084
  Object.defineProperty(exports, '__esModule', {
@@ -2112,10 +2088,7 @@
2112
2088
  const _Stackable = require('./Stackable')
2113
2089
  const _LinkedList = require('../linked-list/LinkedList')
2114
2090
  /**
2115
- * @file task stack.
2116
- * @author Joshua Heagle <joshuaheagle@gmail.com>
2117
- * @version 1.0.0
2118
- * @memberOf module:collect-your-stuff
2091
+ * task stack.
2119
2092
  */
2120
2093
 
2121
2094
  /**
@@ -2125,9 +2098,9 @@
2125
2098
  class TaskStack {
2126
2099
  /**
2127
2100
  * Instantiate the state with the starter stacked list.
2128
- * @param {Iterable|LinkedList} [stackedList=null] The list of stackables to start in this stack.
2129
- * @param {IsArrayable} [listClass=LinkedList] The type of list to create when no stacked list is given.
2130
- * @param {Stackable} [stackableClass=Stackable] The class used to wrap stacked items.
2101
+ * @param stackedList The list of stackables to start in this stack.
2102
+ * @param listClass The type of list to create when no stacked list is given.
2103
+ * @param stackableClass The class used to wrap stacked items.
2131
2104
  */
2132
2105
  constructor (stackedList = null, listClass = _LinkedList.LinkedList, stackableClass = _Stackable.Stackable) {
2133
2106
  this.listClass = listClass
@@ -2140,7 +2113,6 @@
2140
2113
 
2141
2114
  /**
2142
2115
  * Return true if the stack is empty (there are no tasks in the stacked list)
2143
- * @return {boolean}
2144
2116
  */
2145
2117
  empty () {
2146
2118
  return this.size() <= 0
@@ -2148,7 +2120,6 @@
2148
2120
 
2149
2121
  /**
2150
2122
  * Take a look at the next stacked task
2151
- * @return {Stackable}
2152
2123
  */
2153
2124
  top () {
2154
2125
  return this.stackedList.first
@@ -2156,7 +2127,6 @@
2156
2127
 
2157
2128
  /**
2158
2129
  * Remove the next stacked task and return it.
2159
- * @return {Stackable|null}
2160
2130
  */
2161
2131
  pop () {
2162
2132
  const next = this.remove()
@@ -2172,7 +2142,7 @@
2172
2142
 
2173
2143
  /**
2174
2144
  * Push a stackable task to the top of the stack.
2175
- * @param {Stackable|*} stackable Add a new stackable to the top of the stack
2145
+ * @param stackable Add a new stackable to the top of the stack
2176
2146
  */
2177
2147
  push (stackable) {
2178
2148
  this.stackedList.prepend(stackable)
@@ -2180,7 +2150,6 @@
2180
2150
 
2181
2151
  /**
2182
2152
  * Remove the next stacked task and return it.
2183
- * @return {Stackable|null}
2184
2153
  */
2185
2154
  remove () {
2186
2155
  if (this.empty()) {
@@ -2191,7 +2160,6 @@
2191
2160
 
2192
2161
  /**
2193
2162
  * Get the size of the current stack.
2194
- * @return {number}
2195
2163
  */
2196
2164
  size () {
2197
2165
  return this.stackedList.length
@@ -2199,10 +2167,9 @@
2199
2167
  }
2200
2168
  /**
2201
2169
  * Convert an array to a TaskStack.
2202
- * @param {Array} values An array of values which will be converted to stackables in this queue
2203
- * @param {Stackable} stackableClass The class to use for each stackable
2204
- * @param {TaskStack|Iterable} listClass The class to use to manage the stackables
2205
- * @returns {TaskStack}
2170
+ * @param values An array of values which will be converted to stackables in this queue
2171
+ * @param stackableClass The class to use for each stackable
2172
+ * @param listClass The class to use to manage the stackables
2206
2173
  */
2207
2174
  exports.TaskStack = TaskStack
2208
2175
  TaskStack.fromArray = (values = [], stackableClass = _Stackable.Stackable, listClass = _LinkedList.LinkedList) => {
@@ -2210,8 +2177,8 @@
2210
2177
  list.initialize(stackableClass.fromArray(values, stackableClass).head)
2211
2178
  return new TaskStack(list, listClass, stackableClass)
2212
2179
  }
2213
- }, { '../linked-list/LinkedList': 5, './Stackable': 13 }],
2214
- 15: [function (require, module, exports) {
2180
+ }, { '../linked-list/LinkedList': 5, './Stackable': 14 }],
2181
+ 16: [function (require, module, exports) {
2215
2182
  'use strict'
2216
2183
 
2217
2184
  Object.defineProperty(exports, '__esModule', {
@@ -2271,6 +2238,12 @@
2271
2238
  return _Queueable.Queueable
2272
2239
  }
2273
2240
  })
2241
+ Object.defineProperty(exports, 'ScopedCollection', {
2242
+ enumerable: true,
2243
+ get: function () {
2244
+ return _ScopedCollection.ScopedCollection
2245
+ }
2246
+ })
2274
2247
  Object.defineProperty(exports, 'Stack', {
2275
2248
  enumerable: true,
2276
2249
  get: function () {
@@ -2325,6 +2298,7 @@
2325
2298
  var _Queueable = require('./collections/queue/Queueable')
2326
2299
  var _Queue = require('./collections/queue/Queue')
2327
2300
  var _TaskQueue = require('./collections/queue/TaskQueue')
2301
+ var _ScopedCollection = require('./collections/scoped-collection/ScopedCollection')
2328
2302
  var _Stackable = require('./collections/stack/Stackable')
2329
2303
  var _Stack = require('./collections/stack/Stack')
2330
2304
  var _TaskStack = require('./collections/stack/TaskStack')
@@ -2332,10 +2306,6 @@
2332
2306
  var _services = require('./services/services')
2333
2307
  /**
2334
2308
  * All of the collections available.
2335
- * @file
2336
- * @author Joshua Heagle <joshuaheagle@gmail.com>
2337
- * @version 1.0.0
2338
- * @module collect-your-stuff
2339
2309
  */
2340
2310
 
2341
2311
  /**
@@ -2363,6 +2333,7 @@
2363
2333
  Queueable: _Queueable.Queueable,
2364
2334
  Queue: _Queue.Queue,
2365
2335
  TaskQueue: _TaskQueue.TaskQueue,
2336
+ ScopedCollection: _ScopedCollection.ScopedCollection,
2366
2337
  Stackable: _Stackable.Stackable,
2367
2338
  Stack: _Stack.Stack,
2368
2339
  TaskStack: _TaskStack.TaskStack,
@@ -2377,8 +2348,8 @@
2377
2348
  // @ts-ignore
2378
2349
  window.collectYourStuff = collectYourStuff
2379
2350
  }
2380
- }, { './collections/arrayable/ArrayElement': 1, './collections/arrayable/Arrayable': 2, './collections/doubly-linked-list/DoubleLinker': 3, './collections/doubly-linked-list/DoublyLinkedList': 4, './collections/linked-list/LinkedList': 5, './collections/linked-list/Linker': 6, './collections/linked-tree-list/LinkedTreeList': 7, './collections/linked-tree-list/TreeLinker': 8, './collections/queue/Queue': 9, './collections/queue/Queueable': 10, './collections/queue/TaskQueue': 11, './collections/stack/Stack': 12, './collections/stack/Stackable': 13, './collections/stack/TaskStack': 14, './recipes/recipes': 21, './services/services': 24 }],
2381
- 16: [function (require, module, exports) {
2351
+ }, { './collections/arrayable/ArrayElement': 1, './collections/arrayable/Arrayable': 2, './collections/doubly-linked-list/DoubleLinker': 3, './collections/doubly-linked-list/DoublyLinkedList': 4, './collections/linked-list/LinkedList': 5, './collections/linked-list/Linker': 6, './collections/linked-tree-list/LinkedTreeList': 7, './collections/linked-tree-list/TreeLinker': 8, './collections/queue/Queue': 9, './collections/queue/Queueable': 10, './collections/queue/TaskQueue': 11, './collections/scoped-collection/ScopedCollection': 12, './collections/stack/Stack': 13, './collections/stack/Stackable': 14, './collections/stack/TaskStack': 15, './recipes/recipes': 22, './services/services': 25 }],
2352
+ 17: [function (require, module, exports) {
2382
2353
  'use strict'
2383
2354
 
2384
2355
  Object.defineProperty(exports, '__esModule', {
@@ -2391,8 +2362,8 @@
2391
2362
  class ArrayIterator {
2392
2363
  /**
2393
2364
  * Create an iterator over the given array.
2394
- * @param {Array<IsElement>} innerList The elements to iterate over.
2395
- * @param {number} [index=0] The position to start from.
2365
+ * @param innerList The elements to iterate over.
2366
+ * @param index The position to start from.
2396
2367
  */
2397
2368
  constructor (innerList, index = 0) {
2398
2369
  this.innerList = innerList
@@ -2401,8 +2372,8 @@
2401
2372
 
2402
2373
  /**
2403
2374
  * Get the next element, moving the iterator forward.
2404
- * @param {*} [value] Not used, present to match the Iterator interface.
2405
- * @return {IteratorResult<IsElement>} The next element, or done when there are no more.
2375
+ * @param value Not used, present to match the Iterator interface.
2376
+ * @returns The next element, or done when there are no more.
2406
2377
  */
2407
2378
  next (value) {
2408
2379
  if (this.index < this.innerList.length) {
@@ -2419,7 +2390,7 @@
2419
2390
  }
2420
2391
  exports.ArrayIterator = ArrayIterator
2421
2392
  }, {}],
2422
- 17: [function (require, module, exports) {
2393
+ 18: [function (require, module, exports) {
2423
2394
  'use strict'
2424
2395
 
2425
2396
  Object.defineProperty(exports, '__esModule', {
@@ -2432,7 +2403,7 @@
2432
2403
  class DoubleLinkerIterator {
2433
2404
  /**
2434
2405
  * Create an iterator starting at the given item.
2435
- * @param {IsDoubleLinker} current The item to start from.
2406
+ * @param current The item to start from.
2436
2407
  */
2437
2408
  constructor (current) {
2438
2409
  this.current = current
@@ -2440,8 +2411,8 @@
2440
2411
 
2441
2412
  /**
2442
2413
  * Get the current item and move on to the following one.
2443
- * @param {*} [value] Not used, present to match the Iterator interface.
2444
- * @return {IteratorResult<IsDoubleLinker>} The current item, or done when there are no more.
2414
+ * @param value Not used, present to match the Iterator interface.
2415
+ * @returns The current item, or done when there are no more.
2445
2416
  */
2446
2417
  next (value) {
2447
2418
  const result = {
@@ -2454,7 +2425,7 @@
2454
2425
  }
2455
2426
  exports.DoubleLinkerIterator = DoubleLinkerIterator
2456
2427
  }, {}],
2457
- 18: [function (require, module, exports) {
2428
+ 19: [function (require, module, exports) {
2458
2429
  'use strict'
2459
2430
 
2460
2431
  Object.defineProperty(exports, '__esModule', {
@@ -2467,7 +2438,7 @@
2467
2438
  class LinkerIterator {
2468
2439
  /**
2469
2440
  * Create an iterator starting at the given item.
2470
- * @param {IsLinker} current The item to start from.
2441
+ * @param current The item to start from.
2471
2442
  */
2472
2443
  constructor (current) {
2473
2444
  this.current = current
@@ -2475,8 +2446,8 @@
2475
2446
 
2476
2447
  /**
2477
2448
  * Get the current item and move on to the following one.
2478
- * @param {*} [value] Not used, present to match the Iterator interface.
2479
- * @return {IteratorResult<IsLinker>} The current item, or done when there are no more.
2449
+ * @param value Not used, present to match the Iterator interface.
2450
+ * @returns The current item, or done when there are no more.
2480
2451
  */
2481
2452
  next (value) {
2482
2453
  const result = {
@@ -2489,7 +2460,7 @@
2489
2460
  }
2490
2461
  exports.LinkerIterator = LinkerIterator
2491
2462
  }, {}],
2492
- 19: [function (require, module, exports) {
2463
+ 20: [function (require, module, exports) {
2493
2464
  'use strict'
2494
2465
 
2495
2466
  Object.defineProperty(exports, '__esModule', {
@@ -2497,10 +2468,7 @@
2497
2468
  })
2498
2469
  exports.Runnable = void 0
2499
2470
  /**
2500
- * @file Runnable class recipe.
2501
- * @author Joshua Heagle <joshuaheagle@gmail.com>
2502
- * @version 1.0.0
2503
- * @memberOf module:collect-your-stuff
2471
+ * Runnable class recipe.
2504
2472
  */
2505
2473
  /**
2506
2474
  * Identify a class that can be run.
@@ -2508,7 +2476,7 @@
2508
2476
  class Runnable {
2509
2477
  /**
2510
2478
  * Instantiate a Runnable class.
2511
- * @param {*} [data=null] The task (a function) or the data which the task returns.
2479
+ * @param data The task (a function) or the data which the task returns.
2512
2480
  */
2513
2481
  constructor (data = null) {
2514
2482
  /** The task (or data) this runnable holds. */
@@ -2518,7 +2486,6 @@
2518
2486
 
2519
2487
  /**
2520
2488
  * Retrieve the data which should be formed as a task.
2521
- * @return {Function}
2522
2489
  */
2523
2490
  get task () {
2524
2491
  if (typeof this.data === 'function') {
@@ -2529,7 +2496,6 @@
2529
2496
 
2530
2497
  /**
2531
2498
  * Run the runnable task.
2532
- * @return {*}
2533
2499
  */
2534
2500
  run () {
2535
2501
  return this.task()
@@ -2538,8 +2504,7 @@
2538
2504
  /**
2539
2505
  * Check if a given thing is Runnable
2540
2506
  * @memberof Runnable
2541
- * @param {*} thing The value to check, or nothing to check whether this class is Runnable.
2542
- * @return {boolean}
2507
+ * @param thing The value to check, or nothing to check whether this class is Runnable.
2543
2508
  */
2544
2509
  static isRunnable (thing) {
2545
2510
  if (typeof thing === 'undefined') {
@@ -2560,7 +2525,7 @@
2560
2525
  }
2561
2526
  exports.Runnable = Runnable
2562
2527
  }, {}],
2563
- 20: [function (require, module, exports) {
2528
+ 21: [function (require, module, exports) {
2564
2529
  'use strict'
2565
2530
 
2566
2531
  Object.defineProperty(exports, '__esModule', {
@@ -2574,8 +2539,8 @@
2574
2539
  class TreeLinkerIterator {
2575
2540
  /**
2576
2541
  * Create an iterator starting at the given item.
2577
- * @param {IsTreeNode} current The item to start from.
2578
- * @param {IsTreeNode|null} [boundaryParent] The parent of the nodes to stay within (null for the top of a tree), the whole tree when not given.
2542
+ * @param current The item to start from.
2543
+ * @param boundaryParent The parent of the nodes to stay within (null for the top of a tree), the whole tree when not given.
2579
2544
  */
2580
2545
  constructor (current, boundaryParent) {
2581
2546
  this.current = current
@@ -2584,8 +2549,8 @@
2584
2549
 
2585
2550
  /**
2586
2551
  * Get the current item and move on to the following one (left-first, down each branch).
2587
- * @param {*} [value] Not used, present to match the Iterator interface.
2588
- * @return {IteratorResult<IsTreeNode>} The current item, or done when there are no more.
2552
+ * @param value Not used, present to match the Iterator interface.
2553
+ * @returns The current item, or done when there are no more.
2589
2554
  */
2590
2555
  next (value) {
2591
2556
  const result = {
@@ -2597,8 +2562,8 @@
2597
2562
  }
2598
2563
  }
2599
2564
  exports.TreeLinkerIterator = TreeLinkerIterator
2600
- }, { '../services/parseTreeNext': 23 }],
2601
- 21: [function (require, module, exports) {
2565
+ }, { '../services/parseTreeNext': 24 }],
2566
+ 22: [function (require, module, exports) {
2602
2567
  'use strict'
2603
2568
 
2604
2569
  Object.defineProperty(exports, '__esModule', {
@@ -2608,10 +2573,7 @@
2608
2573
  const _ArrayIterator = require('./ArrayIterator')
2609
2574
  const _Runnable = require('./Runnable')
2610
2575
  /**
2611
- * @file sample classes which follow a pattern (have certain members or methods).
2612
- * @author Joshua Heagle <joshuaheagle@gmail.com>
2613
- * @version 1.0.0
2614
- * @memberOf module:collect-your-stuff
2576
+ * sample classes which follow a pattern (have certain members or methods).
2615
2577
  */
2616
2578
 
2617
2579
  /**
@@ -2621,8 +2583,8 @@
2621
2583
  ArrayIterator: _ArrayIterator.ArrayIterator,
2622
2584
  Runnable: _Runnable.Runnable
2623
2585
  }
2624
- }, { './ArrayIterator': 16, './Runnable': 19 }],
2625
- 22: [function (require, module, exports) {
2586
+ }, { './ArrayIterator': 17, './Runnable': 20 }],
2587
+ 23: [function (require, module, exports) {
2626
2588
  'use strict'
2627
2589
 
2628
2590
  Object.defineProperty(exports, '__esModule', {
@@ -2632,9 +2594,8 @@
2632
2594
  const _parseTreeNext = require('./parseTreeNext')
2633
2595
  /**
2634
2596
  * Loop over all the nodes in a tree starting from left and apply a callback for each
2635
- * @param {IsArrayable<IsTreeNode>} tree
2636
- * @param {forEachCallback} callback
2637
- * @returns {IsArrayable<IsTreeNode>}
2597
+ * @param tree
2598
+ * @param callback
2638
2599
  */
2639
2600
  const parseTree = (tree, callback) => {
2640
2601
  let index = 0
@@ -2647,8 +2608,8 @@
2647
2608
  return tree
2648
2609
  }
2649
2610
  exports.parseTree = parseTree
2650
- }, { './parseTreeNext': 23 }],
2651
- 23: [function (require, module, exports) {
2611
+ }, { './parseTreeNext': 24 }],
2612
+ 24: [function (require, module, exports) {
2652
2613
  'use strict'
2653
2614
 
2654
2615
  Object.defineProperty(exports, '__esModule', {
@@ -2666,9 +2627,8 @@
2666
2627
  * 7. Stop at root (next is null and parent is null
2667
2628
  * A boundary can be given to parse only part of a tree: going back up to the parents stops at the boundary, so the
2668
2629
  * parsing stays within the nodes whose parent is the boundary (and everything below them).
2669
- * @param {IsTreeNode} treeNode Provide a node in a tree and get the next node (left-first approach)
2670
- * @param {IsTreeNode|null} [boundaryParent] The parent of the nodes to stay within, null for the nodes at the top of a tree. When it is not given the whole tree is parsed.
2671
- * @returns {IsTreeNode|null}
2630
+ * @param treeNode Provide a node in a tree and get the next node (left-first approach)
2631
+ * @param boundaryParent The parent of the nodes to stay within, null for the nodes at the top of a tree. When it is not given the whole tree is parsed.
2672
2632
  */
2673
2633
  const parseTreeNext = (treeNode, boundaryParent) => {
2674
2634
  if (!treeNode) {
@@ -2692,7 +2652,7 @@
2692
2652
  }
2693
2653
  exports.parseTreeNext = parseTreeNext
2694
2654
  }, {}],
2695
- 24: [function (require, module, exports) {
2655
+ 25: [function (require, module, exports) {
2696
2656
  'use strict'
2697
2657
 
2698
2658
  Object.defineProperty(exports, '__esModule', {
@@ -2702,10 +2662,7 @@
2702
2662
  const _parseTree = require('./parseTree')
2703
2663
  const _parseTreeNext = require('./parseTreeNext')
2704
2664
  /**
2705
- * @file some useful resources when working with collections.
2706
- * @author Joshua Heagle <joshuaheagle@gmail.com>
2707
- * @version 1.1.0
2708
- * @memberOf module:collect-your-stuff
2665
+ * some useful resources when working with collections.
2709
2666
  */
2710
2667
 
2711
2668
  /**
@@ -2715,8 +2672,8 @@
2715
2672
  parseTree: _parseTree.parseTree,
2716
2673
  parseTreeNext: _parseTreeNext.parseTreeNext
2717
2674
  }
2718
- }, { './parseTree': 22, './parseTreeNext': 23 }],
2719
- 25: [function (require, module, exports) {
2675
+ }, { './parseTree': 23, './parseTreeNext': 24 }],
2676
+ 26: [function (require, module, exports) {
2720
2677
  'use strict'
2721
2678
  const isCallable = require('../internals/is-callable')
2722
2679
  const tryToString = require('../internals/try-to-string')
@@ -2728,8 +2685,28 @@
2728
2685
  if (isCallable(argument)) return argument
2729
2686
  throw new $TypeError(tryToString(argument) + ' is not a function')
2730
2687
  }
2731
- }, { '../internals/is-callable': 69, '../internals/try-to-string': 112 }],
2732
- 26: [function (require, module, exports) {
2688
+ }, { '../internals/is-callable': 72, '../internals/try-to-string': 119 }],
2689
+ 27: [function (require, module, exports) {
2690
+ 'use strict'
2691
+ const has = require('../internals/map-helpers').has
2692
+
2693
+ // Perform ? RequireInternalSlot(M, [[MapData]])
2694
+ module.exports = function (it) {
2695
+ has(it)
2696
+ return it
2697
+ }
2698
+ }, { '../internals/map-helpers': 90 }],
2699
+ 28: [function (require, module, exports) {
2700
+ 'use strict'
2701
+ const has = require('../internals/weak-map-helpers').has
2702
+
2703
+ // Perform ? RequireInternalSlot(M, [[WeakMapData]])
2704
+ module.exports = function (it) {
2705
+ has(it)
2706
+ return it
2707
+ }
2708
+ }, { '../internals/weak-map-helpers': 124 }],
2709
+ 29: [function (require, module, exports) {
2733
2710
  'use strict'
2734
2711
  const isPrototypeOf = require('../internals/object-is-prototype-of')
2735
2712
 
@@ -2739,8 +2716,8 @@
2739
2716
  if (isPrototypeOf(Prototype, it)) return it
2740
2717
  throw new $TypeError('Incorrect invocation')
2741
2718
  }
2742
- }, { '../internals/object-is-prototype-of': 94 }],
2743
- 27: [function (require, module, exports) {
2719
+ }, { '../internals/object-is-prototype-of': 100 }],
2720
+ 30: [function (require, module, exports) {
2744
2721
  'use strict'
2745
2722
  const isObject = require('../internals/is-object')
2746
2723
 
@@ -2752,8 +2729,8 @@
2752
2729
  if (isObject(argument)) return argument
2753
2730
  throw new $TypeError($String(argument) + ' is not an object')
2754
2731
  }
2755
- }, { '../internals/is-object': 72 }],
2756
- 28: [function (require, module, exports) {
2732
+ }, { '../internals/is-object': 75 }],
2733
+ 31: [function (require, module, exports) {
2757
2734
  'use strict'
2758
2735
  const toIndexedObject = require('../internals/to-indexed-object')
2759
2736
  const toAbsoluteIndex = require('../internals/to-absolute-index')
@@ -2792,8 +2769,8 @@
2792
2769
  // https://tc39.es/ecma262/#sec-array.prototype.indexof
2793
2770
  indexOf: createMethod(false)
2794
2771
  }
2795
- }, { '../internals/length-of-array-like': 84, '../internals/to-absolute-index': 105, '../internals/to-indexed-object': 106 }],
2796
- 29: [function (require, module, exports) {
2772
+ }, { '../internals/length-of-array-like': 88, '../internals/to-absolute-index': 112, '../internals/to-indexed-object': 113 }],
2773
+ 32: [function (require, module, exports) {
2797
2774
  'use strict'
2798
2775
  const anObject = require('../internals/an-object')
2799
2776
  const iteratorClose = require('../internals/iterator-close')
@@ -2806,8 +2783,8 @@
2806
2783
  iteratorClose(iterator, 'throw', error)
2807
2784
  }
2808
2785
  }
2809
- }, { '../internals/an-object': 27, '../internals/iterator-close': 78 }],
2810
- 30: [function (require, module, exports) {
2786
+ }, { '../internals/an-object': 30, '../internals/iterator-close': 82 }],
2787
+ 33: [function (require, module, exports) {
2811
2788
  'use strict'
2812
2789
  const uncurryThis = require('../internals/function-uncurry-this')
2813
2790
 
@@ -2817,8 +2794,8 @@
2817
2794
  module.exports = function (it) {
2818
2795
  return stringSlice(toString(it), 8, -1)
2819
2796
  }
2820
- }, { '../internals/function-uncurry-this': 54 }],
2821
- 31: [function (require, module, exports) {
2797
+ }, { '../internals/function-uncurry-this': 57 }],
2798
+ 34: [function (require, module, exports) {
2822
2799
  'use strict'
2823
2800
  const hasOwn = require('../internals/has-own-property')
2824
2801
  const ownKeys = require('../internals/own-keys')
@@ -2836,8 +2813,8 @@
2836
2813
  }
2837
2814
  }
2838
2815
  }
2839
- }, { '../internals/has-own-property': 61, '../internals/object-define-property': 89, '../internals/object-get-own-property-descriptor': 90, '../internals/own-keys': 99 }],
2840
- 32: [function (require, module, exports) {
2816
+ }, { '../internals/has-own-property': 64, '../internals/object-define-property': 95, '../internals/object-get-own-property-descriptor': 96, '../internals/own-keys': 105 }],
2817
+ 35: [function (require, module, exports) {
2841
2818
  'use strict'
2842
2819
  const fails = require('../internals/fails')
2843
2820
 
@@ -2847,8 +2824,8 @@
2847
2824
  // eslint-disable-next-line es/no-object-getprototypeof -- required for testing
2848
2825
  return Object.getPrototypeOf(new F()) !== F.prototype
2849
2826
  })
2850
- }, { '../internals/fails': 47 }],
2851
- 33: [function (require, module, exports) {
2827
+ }, { '../internals/fails': 50 }],
2828
+ 36: [function (require, module, exports) {
2852
2829
  'use strict'
2853
2830
  // `CreateIterResultObject` abstract operation
2854
2831
  // https://tc39.es/ecma262/#sec-createiterresultobject
@@ -2856,7 +2833,7 @@
2856
2833
  return { value, done }
2857
2834
  }
2858
2835
  }, {}],
2859
- 34: [function (require, module, exports) {
2836
+ 37: [function (require, module, exports) {
2860
2837
  'use strict'
2861
2838
  const DESCRIPTORS = require('../internals/descriptors')
2862
2839
  const definePropertyModule = require('../internals/object-define-property')
@@ -2870,8 +2847,8 @@
2870
2847
  object[key] = value
2871
2848
  return object
2872
2849
  }
2873
- }, { '../internals/create-property-descriptor': 35, '../internals/descriptors': 41, '../internals/object-define-property': 89 }],
2874
- 35: [function (require, module, exports) {
2850
+ }, { '../internals/create-property-descriptor': 38, '../internals/descriptors': 44, '../internals/object-define-property': 95 }],
2851
+ 38: [function (require, module, exports) {
2875
2852
  'use strict'
2876
2853
  module.exports = function (bitmap, value) {
2877
2854
  return {
@@ -2882,7 +2859,7 @@
2882
2859
  }
2883
2860
  }
2884
2861
  }, {}],
2885
- 36: [function (require, module, exports) {
2862
+ 39: [function (require, module, exports) {
2886
2863
  'use strict'
2887
2864
  const DESCRIPTORS = require('../internals/descriptors')
2888
2865
  const definePropertyModule = require('../internals/object-define-property')
@@ -2892,8 +2869,8 @@
2892
2869
  if (DESCRIPTORS) definePropertyModule.f(object, key, createPropertyDescriptor(0, value))
2893
2870
  else object[key] = value
2894
2871
  }
2895
- }, { '../internals/create-property-descriptor': 35, '../internals/descriptors': 41, '../internals/object-define-property': 89 }],
2896
- 37: [function (require, module, exports) {
2872
+ }, { '../internals/create-property-descriptor': 38, '../internals/descriptors': 44, '../internals/object-define-property': 95 }],
2873
+ 40: [function (require, module, exports) {
2897
2874
  'use strict'
2898
2875
  const makeBuiltIn = require('../internals/make-built-in')
2899
2876
  const defineProperty = require('../internals/object-define-property')
@@ -2903,8 +2880,8 @@
2903
2880
  if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true })
2904
2881
  return defineProperty.f(target, name, descriptor)
2905
2882
  }
2906
- }, { '../internals/make-built-in': 85, '../internals/object-define-property': 89 }],
2907
- 38: [function (require, module, exports) {
2883
+ }, { '../internals/make-built-in': 89, '../internals/object-define-property': 95 }],
2884
+ 41: [function (require, module, exports) {
2908
2885
  'use strict'
2909
2886
  const isCallable = require('../internals/is-callable')
2910
2887
  const definePropertyModule = require('../internals/object-define-property')
@@ -2935,8 +2912,8 @@
2935
2912
  }
2936
2913
  } return O
2937
2914
  }
2938
- }, { '../internals/define-global-property': 40, '../internals/is-callable': 69, '../internals/make-built-in': 85, '../internals/object-define-property': 89 }],
2939
- 39: [function (require, module, exports) {
2915
+ }, { '../internals/define-global-property': 43, '../internals/is-callable': 72, '../internals/make-built-in': 89, '../internals/object-define-property': 95 }],
2916
+ 42: [function (require, module, exports) {
2940
2917
  'use strict'
2941
2918
  const defineBuiltIn = require('../internals/define-built-in')
2942
2919
 
@@ -2944,8 +2921,8 @@
2944
2921
  for (const key in src) defineBuiltIn(target, key, src[key], options)
2945
2922
  return target
2946
2923
  }
2947
- }, { '../internals/define-built-in': 38 }],
2948
- 40: [function (require, module, exports) {
2924
+ }, { '../internals/define-built-in': 41 }],
2925
+ 43: [function (require, module, exports) {
2949
2926
  'use strict'
2950
2927
  const globalThis = require('../internals/global-this')
2951
2928
 
@@ -2959,8 +2936,8 @@
2959
2936
  globalThis[key] = value
2960
2937
  } return value
2961
2938
  }
2962
- }, { '../internals/global-this': 60 }],
2963
- 41: [function (require, module, exports) {
2939
+ }, { '../internals/global-this': 63 }],
2940
+ 44: [function (require, module, exports) {
2964
2941
  'use strict'
2965
2942
  const fails = require('../internals/fails')
2966
2943
 
@@ -2969,8 +2946,8 @@
2969
2946
  // eslint-disable-next-line es/no-object-defineproperty -- required for testing
2970
2947
  return Object.defineProperty({}, 1, { get: function () { return 7 } })[1] !== 7
2971
2948
  })
2972
- }, { '../internals/fails': 47 }],
2973
- 42: [function (require, module, exports) {
2949
+ }, { '../internals/fails': 50 }],
2950
+ 45: [function (require, module, exports) {
2974
2951
  'use strict'
2975
2952
  const globalThis = require('../internals/global-this')
2976
2953
  const isObject = require('../internals/is-object')
@@ -2982,8 +2959,8 @@
2982
2959
  module.exports = function (it) {
2983
2960
  return EXISTS ? document.createElement(it) : {}
2984
2961
  }
2985
- }, { '../internals/global-this': 60, '../internals/is-object': 72 }],
2986
- 43: [function (require, module, exports) {
2962
+ }, { '../internals/global-this': 63, '../internals/is-object': 75 }],
2963
+ 46: [function (require, module, exports) {
2987
2964
  'use strict'
2988
2965
  // IE8- don't enum bug keys
2989
2966
  module.exports = [
@@ -2996,7 +2973,7 @@
2996
2973
  'valueOf'
2997
2974
  ]
2998
2975
  }, {}],
2999
- 44: [function (require, module, exports) {
2976
+ 47: [function (require, module, exports) {
3000
2977
  'use strict'
3001
2978
  const globalThis = require('../internals/global-this')
3002
2979
 
@@ -3004,8 +2981,8 @@
3004
2981
  const userAgent = navigator && navigator.userAgent
3005
2982
 
3006
2983
  module.exports = userAgent ? String(userAgent) : ''
3007
- }, { '../internals/global-this': 60 }],
3008
- 45: [function (require, module, exports) {
2984
+ }, { '../internals/global-this': 63 }],
2985
+ 48: [function (require, module, exports) {
3009
2986
  'use strict'
3010
2987
  const globalThis = require('../internals/global-this')
3011
2988
  const userAgent = require('../internals/environment-user-agent')
@@ -3034,8 +3011,8 @@
3034
3011
  }
3035
3012
 
3036
3013
  module.exports = version
3037
- }, { '../internals/environment-user-agent': 44, '../internals/global-this': 60 }],
3038
- 46: [function (require, module, exports) {
3014
+ }, { '../internals/environment-user-agent': 47, '../internals/global-this': 63 }],
3015
+ 49: [function (require, module, exports) {
3039
3016
  'use strict'
3040
3017
  const globalThis = require('../internals/global-this')
3041
3018
  const getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f
@@ -3093,8 +3070,8 @@
3093
3070
  }
3094
3071
  }
3095
3072
  }
3096
- }, { '../internals/copy-constructor-properties': 31, '../internals/create-non-enumerable-property': 34, '../internals/define-built-in': 38, '../internals/define-global-property': 40, '../internals/global-this': 60, '../internals/is-forced': 70, '../internals/object-get-own-property-descriptor': 90 }],
3097
- 47: [function (require, module, exports) {
3073
+ }, { '../internals/copy-constructor-properties': 34, '../internals/create-non-enumerable-property': 37, '../internals/define-built-in': 41, '../internals/define-global-property': 43, '../internals/global-this': 63, '../internals/is-forced': 73, '../internals/object-get-own-property-descriptor': 96 }],
3074
+ 50: [function (require, module, exports) {
3098
3075
  'use strict'
3099
3076
  module.exports = function (exec) {
3100
3077
  try {
@@ -3104,7 +3081,7 @@
3104
3081
  }
3105
3082
  }
3106
3083
  }, {}],
3107
- 48: [function (require, module, exports) {
3084
+ 51: [function (require, module, exports) {
3108
3085
  'use strict'
3109
3086
  const NATIVE_BIND = require('../internals/function-bind-native')
3110
3087
 
@@ -3118,8 +3095,8 @@
3118
3095
  : function () {
3119
3096
  return call.apply(apply, arguments)
3120
3097
  })
3121
- }, { '../internals/function-bind-native': 50 }],
3122
- 49: [function (require, module, exports) {
3098
+ }, { '../internals/function-bind-native': 53 }],
3099
+ 52: [function (require, module, exports) {
3123
3100
  'use strict'
3124
3101
  const uncurryThis = require('../internals/function-uncurry-this-clause')
3125
3102
  const aCallable = require('../internals/a-callable')
@@ -3134,8 +3111,8 @@
3134
3111
  return fn.apply(that, arguments)
3135
3112
  }
3136
3113
  }
3137
- }, { '../internals/a-callable': 25, '../internals/function-bind-native': 50, '../internals/function-uncurry-this-clause': 53 }],
3138
- 50: [function (require, module, exports) {
3114
+ }, { '../internals/a-callable': 26, '../internals/function-bind-native': 53, '../internals/function-uncurry-this-clause': 56 }],
3115
+ 53: [function (require, module, exports) {
3139
3116
  'use strict'
3140
3117
  const fails = require('../internals/fails')
3141
3118
 
@@ -3145,8 +3122,8 @@
3145
3122
  // eslint-disable-next-line no-prototype-builtins -- safe
3146
3123
  return typeof test !== 'function' || test.hasOwnProperty('prototype')
3147
3124
  })
3148
- }, { '../internals/fails': 47 }],
3149
- 51: [function (require, module, exports) {
3125
+ }, { '../internals/fails': 50 }],
3126
+ 54: [function (require, module, exports) {
3150
3127
  'use strict'
3151
3128
  const NATIVE_BIND = require('../internals/function-bind-native')
3152
3129
 
@@ -3157,8 +3134,8 @@
3157
3134
  : function () {
3158
3135
  return call.apply(call, arguments)
3159
3136
  }
3160
- }, { '../internals/function-bind-native': 50 }],
3161
- 52: [function (require, module, exports) {
3137
+ }, { '../internals/function-bind-native': 53 }],
3138
+ 55: [function (require, module, exports) {
3162
3139
  'use strict'
3163
3140
  const DESCRIPTORS = require('../internals/descriptors')
3164
3141
  const hasOwn = require('../internals/has-own-property')
@@ -3177,8 +3154,8 @@
3177
3154
  PROPER,
3178
3155
  CONFIGURABLE
3179
3156
  }
3180
- }, { '../internals/descriptors': 41, '../internals/has-own-property': 61 }],
3181
- 53: [function (require, module, exports) {
3157
+ }, { '../internals/descriptors': 44, '../internals/has-own-property': 64 }],
3158
+ 56: [function (require, module, exports) {
3182
3159
  'use strict'
3183
3160
  const classofRaw = require('../internals/classof-raw')
3184
3161
  const uncurryThis = require('../internals/function-uncurry-this')
@@ -3189,8 +3166,8 @@
3189
3166
  // https://github.com/zloirock/core-js/issues/1130
3190
3167
  if (classofRaw(fn) === 'Function') return uncurryThis(fn)
3191
3168
  }
3192
- }, { '../internals/classof-raw': 30, '../internals/function-uncurry-this': 54 }],
3193
- 54: [function (require, module, exports) {
3169
+ }, { '../internals/classof-raw': 33, '../internals/function-uncurry-this': 57 }],
3170
+ 57: [function (require, module, exports) {
3194
3171
  'use strict'
3195
3172
  const NATIVE_BIND = require('../internals/function-bind-native')
3196
3173
 
@@ -3206,8 +3183,8 @@
3206
3183
  return call.apply(fn, arguments)
3207
3184
  }
3208
3185
  }
3209
- }, { '../internals/function-bind-native': 50 }],
3210
- 55: [function (require, module, exports) {
3186
+ }, { '../internals/function-bind-native': 53 }],
3187
+ 58: [function (require, module, exports) {
3211
3188
  'use strict'
3212
3189
  const globalThis = require('../internals/global-this')
3213
3190
  const isCallable = require('../internals/is-callable')
@@ -3219,8 +3196,8 @@
3219
3196
  module.exports = function (namespace, method) {
3220
3197
  return arguments.length < 2 ? aFunction(globalThis[namespace]) : globalThis[namespace] && globalThis[namespace][method]
3221
3198
  }
3222
- }, { '../internals/global-this': 60, '../internals/is-callable': 69 }],
3223
- 56: [function (require, module, exports) {
3199
+ }, { '../internals/global-this': 63, '../internals/is-callable': 72 }],
3200
+ 59: [function (require, module, exports) {
3224
3201
  'use strict'
3225
3202
  // `GetIteratorDirect(obj)` abstract operation
3226
3203
  // https://tc39.es/ecma262/#sec-getiteratordirect
@@ -3232,7 +3209,7 @@
3232
3209
  }
3233
3210
  }
3234
3211
  }, {}],
3235
- 57: [function (require, module, exports) {
3212
+ 60: [function (require, module, exports) {
3236
3213
  'use strict'
3237
3214
  const call = require('../internals/function-call')
3238
3215
  const isCallable = require('../internals/is-callable')
@@ -3247,8 +3224,8 @@
3247
3224
  if (isCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument))
3248
3225
  throw new $TypeError(tryToString(argument) + ' is not iterable')
3249
3226
  }
3250
- }, { '../internals/an-object': 27, '../internals/function-call': 51, '../internals/get-iterator-method-internal': 58, '../internals/is-callable': 69, '../internals/try-to-string': 112 }],
3251
- 58: [function (require, module, exports) {
3227
+ }, { '../internals/an-object': 30, '../internals/function-call': 54, '../internals/get-iterator-method-internal': 61, '../internals/is-callable': 72, '../internals/try-to-string': 119 }],
3228
+ 61: [function (require, module, exports) {
3252
3229
  'use strict'
3253
3230
  const classof = require('../internals/classof-raw')
3254
3231
  const isNullOrUndefined = require('../internals/is-null-or-undefined')
@@ -3265,8 +3242,8 @@
3265
3242
  (classof(it) === 'Arguments' ? ArrayPrototype[ITERATOR] : undefined)
3266
3243
  }
3267
3244
  }
3268
- }, { '../internals/classof-raw': 30, '../internals/get-method': 59, '../internals/is-null-or-undefined': 71, '../internals/well-known-symbol': 117 }],
3269
- 59: [function (require, module, exports) {
3245
+ }, { '../internals/classof-raw': 33, '../internals/get-method': 62, '../internals/is-null-or-undefined': 74, '../internals/well-known-symbol': 125 }],
3246
+ 62: [function (require, module, exports) {
3270
3247
  'use strict'
3271
3248
  const aCallable = require('../internals/a-callable')
3272
3249
  const isNullOrUndefined = require('../internals/is-null-or-undefined')
@@ -3277,8 +3254,8 @@
3277
3254
  const func = V[P]
3278
3255
  return isNullOrUndefined(func) ? undefined : aCallable(func)
3279
3256
  }
3280
- }, { '../internals/a-callable': 25, '../internals/is-null-or-undefined': 71 }],
3281
- 60: [function (require, module, exports) {
3257
+ }, { '../internals/a-callable': 26, '../internals/is-null-or-undefined': 74 }],
3258
+ 63: [function (require, module, exports) {
3282
3259
  (function (global) {
3283
3260
  (function () {
3284
3261
  'use strict'
@@ -3300,7 +3277,7 @@
3300
3277
  }).call(this)
3301
3278
  }).call(this, typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : typeof window !== 'undefined' ? window : {})
3302
3279
  }, {}],
3303
- 61: [function (require, module, exports) {
3280
+ 64: [function (require, module, exports) {
3304
3281
  'use strict'
3305
3282
  const uncurryThis = require('../internals/function-uncurry-this')
3306
3283
  const toObject = require('../internals/to-object')
@@ -3313,18 +3290,18 @@
3313
3290
  module.exports = Object.hasOwn || function hasOwn (it, key) {
3314
3291
  return hasOwnProperty(toObject(it), key)
3315
3292
  }
3316
- }, { '../internals/function-uncurry-this': 54, '../internals/to-object': 109 }],
3317
- 62: [function (require, module, exports) {
3293
+ }, { '../internals/function-uncurry-this': 57, '../internals/to-object': 116 }],
3294
+ 65: [function (require, module, exports) {
3318
3295
  'use strict'
3319
3296
  module.exports = {}
3320
3297
  }, {}],
3321
- 63: [function (require, module, exports) {
3298
+ 66: [function (require, module, exports) {
3322
3299
  'use strict'
3323
3300
  const getBuiltIn = require('../internals/get-built-in')
3324
3301
 
3325
3302
  module.exports = getBuiltIn('document', 'documentElement')
3326
- }, { '../internals/get-built-in': 55 }],
3327
- 64: [function (require, module, exports) {
3303
+ }, { '../internals/get-built-in': 58 }],
3304
+ 67: [function (require, module, exports) {
3328
3305
  'use strict'
3329
3306
  const DESCRIPTORS = require('../internals/descriptors')
3330
3307
  const fails = require('../internals/fails')
@@ -3337,8 +3314,8 @@
3337
3314
  get: function () { return 7 }
3338
3315
  }).a !== 7
3339
3316
  })
3340
- }, { '../internals/descriptors': 41, '../internals/document-create-element': 42, '../internals/fails': 47 }],
3341
- 65: [function (require, module, exports) {
3317
+ }, { '../internals/descriptors': 44, '../internals/document-create-element': 45, '../internals/fails': 50 }],
3318
+ 68: [function (require, module, exports) {
3342
3319
  'use strict'
3343
3320
  const uncurryThis = require('../internals/function-uncurry-this')
3344
3321
  const fails = require('../internals/fails')
@@ -3355,8 +3332,8 @@
3355
3332
  }) ? function (it) {
3356
3333
  return classof(it) === 'String' ? split(it, '') : $Object(it)
3357
3334
  } : $Object
3358
- }, { '../internals/classof-raw': 30, '../internals/fails': 47, '../internals/function-uncurry-this': 54 }],
3359
- 66: [function (require, module, exports) {
3335
+ }, { '../internals/classof-raw': 33, '../internals/fails': 50, '../internals/function-uncurry-this': 57 }],
3336
+ 69: [function (require, module, exports) {
3360
3337
  'use strict'
3361
3338
  const uncurryThis = require('../internals/function-uncurry-this')
3362
3339
  const isCallable = require('../internals/is-callable')
@@ -3372,8 +3349,8 @@
3372
3349
  }
3373
3350
 
3374
3351
  module.exports = store.inspectSource
3375
- }, { '../internals/function-uncurry-this': 54, '../internals/is-callable': 69, '../internals/shared-store': 102 }],
3376
- 67: [function (require, module, exports) {
3352
+ }, { '../internals/function-uncurry-this': 57, '../internals/is-callable': 72, '../internals/shared-store': 109 }],
3353
+ 70: [function (require, module, exports) {
3377
3354
  'use strict'
3378
3355
  const NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection')
3379
3356
  const globalThis = require('../internals/global-this')
@@ -3445,8 +3422,8 @@
3445
3422
  enforce,
3446
3423
  getterFor
3447
3424
  }
3448
- }, { '../internals/create-non-enumerable-property': 34, '../internals/global-this': 60, '../internals/has-own-property': 61, '../internals/hidden-keys': 62, '../internals/is-object': 72, '../internals/shared-key': 101, '../internals/shared-store': 102, '../internals/weak-map-basic-detection': 116 }],
3449
- 68: [function (require, module, exports) {
3425
+ }, { '../internals/create-non-enumerable-property': 37, '../internals/global-this': 63, '../internals/has-own-property': 64, '../internals/hidden-keys': 65, '../internals/is-object': 75, '../internals/shared-key': 108, '../internals/shared-store': 109, '../internals/weak-map-basic-detection': 123 }],
3426
+ 71: [function (require, module, exports) {
3450
3427
  'use strict'
3451
3428
  const wellKnownSymbol = require('../internals/well-known-symbol')
3452
3429
  const Iterators = require('../internals/iterators')
@@ -3458,8 +3435,8 @@
3458
3435
  module.exports = function (it) {
3459
3436
  return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it)
3460
3437
  }
3461
- }, { '../internals/iterators': 83, '../internals/well-known-symbol': 117 }],
3462
- 69: [function (require, module, exports) {
3438
+ }, { '../internals/iterators': 87, '../internals/well-known-symbol': 125 }],
3439
+ 72: [function (require, module, exports) {
3463
3440
  'use strict'
3464
3441
  // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot
3465
3442
  const documentAll = typeof document === 'object' && document.all
@@ -3475,7 +3452,7 @@
3475
3452
  return typeof argument === 'function'
3476
3453
  }
3477
3454
  }, {}],
3478
- 70: [function (require, module, exports) {
3455
+ 73: [function (require, module, exports) {
3479
3456
  'use strict'
3480
3457
  const fails = require('../internals/fails')
3481
3458
  const isCallable = require('../internals/is-callable')
@@ -3502,8 +3479,8 @@
3502
3479
  var POLYFILL = isForced.POLYFILL = 'P'
3503
3480
 
3504
3481
  module.exports = isForced
3505
- }, { '../internals/fails': 47, '../internals/is-callable': 69 }],
3506
- 71: [function (require, module, exports) {
3482
+ }, { '../internals/fails': 50, '../internals/is-callable': 72 }],
3483
+ 74: [function (require, module, exports) {
3507
3484
  'use strict'
3508
3485
  // we can't use just `it == null` since of `document.all` special case
3509
3486
  // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec
@@ -3511,19 +3488,19 @@
3511
3488
  return it === null || it === undefined
3512
3489
  }
3513
3490
  }, {}],
3514
- 72: [function (require, module, exports) {
3491
+ 75: [function (require, module, exports) {
3515
3492
  'use strict'
3516
3493
  const isCallable = require('../internals/is-callable')
3517
3494
 
3518
3495
  module.exports = function (it) {
3519
3496
  return typeof it === 'object' ? it !== null : isCallable(it)
3520
3497
  }
3521
- }, { '../internals/is-callable': 69 }],
3522
- 73: [function (require, module, exports) {
3498
+ }, { '../internals/is-callable': 72 }],
3499
+ 76: [function (require, module, exports) {
3523
3500
  'use strict'
3524
3501
  module.exports = false
3525
3502
  }, {}],
3526
- 74: [function (require, module, exports) {
3503
+ 77: [function (require, module, exports) {
3527
3504
  'use strict'
3528
3505
  const getBuiltIn = require('../internals/get-built-in')
3529
3506
  const isCallable = require('../internals/is-callable')
@@ -3540,8 +3517,22 @@
3540
3517
  const $Symbol = getBuiltIn('Symbol')
3541
3518
  return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it))
3542
3519
  }
3543
- }, { '../internals/get-built-in': 55, '../internals/is-callable': 69, '../internals/object-is-prototype-of': 94, '../internals/use-symbol-as-uid': 114 }],
3544
- 75: [function (require, module, exports) {
3520
+ }, { '../internals/get-built-in': 58, '../internals/is-callable': 72, '../internals/object-is-prototype-of': 100, '../internals/use-symbol-as-uid': 121 }],
3521
+ 78: [function (require, module, exports) {
3522
+ 'use strict'
3523
+ const call = require('../internals/function-call')
3524
+
3525
+ module.exports = function (record, fn, ITERATOR_INSTEAD_OF_RECORD) {
3526
+ const iterator = ITERATOR_INSTEAD_OF_RECORD ? record : record.iterator
3527
+ const next = record.next
3528
+ let step, result
3529
+ while (!(step = call(next, iterator)).done) {
3530
+ result = fn(step.value)
3531
+ if (result !== undefined) return result
3532
+ }
3533
+ }
3534
+ }, { '../internals/function-call': 54 }],
3535
+ 79: [function (require, module, exports) {
3545
3536
  'use strict'
3546
3537
  const bind = require('../internals/function-bind-context')
3547
3538
  const call = require('../internals/function-call')
@@ -3616,8 +3607,8 @@
3616
3607
  if (typeof result === 'object' && result && isPrototypeOf(ResultPrototype, result)) return result
3617
3608
  } return new Result(false)
3618
3609
  }
3619
- }, { '../internals/an-object': 27, '../internals/function-bind-context': 49, '../internals/function-call': 51, '../internals/get-iterator-internal': 57, '../internals/get-iterator-method-internal': 58, '../internals/is-array-iterator-method': 68, '../internals/iterator-close': 78, '../internals/length-of-array-like': 84, '../internals/object-is-prototype-of': 94, '../internals/try-to-string': 112 }],
3620
- 76: [function (require, module, exports) {
3610
+ }, { '../internals/an-object': 30, '../internals/function-bind-context': 52, '../internals/function-call': 54, '../internals/get-iterator-internal': 60, '../internals/get-iterator-method-internal': 61, '../internals/is-array-iterator-method': 71, '../internals/iterator-close': 82, '../internals/length-of-array-like': 88, '../internals/object-is-prototype-of': 100, '../internals/try-to-string': 119 }],
3611
+ 80: [function (require, module, exports) {
3621
3612
  'use strict'
3622
3613
  // release references held by exhausted / closed iterator helpers to allow GC of the source chain
3623
3614
  module.exports = function (state) {
@@ -3625,7 +3616,7 @@
3625
3616
  state.iterables = state.iters = state.openIters = state.padding = state.finishResults = state.buffer = null
3626
3617
  }
3627
3618
  }, {}],
3628
- 77: [function (require, module, exports) {
3619
+ 81: [function (require, module, exports) {
3629
3620
  'use strict'
3630
3621
  const iteratorClose = require('../internals/iterator-close')
3631
3622
 
@@ -3642,8 +3633,8 @@
3642
3633
  if (kind === 'throw') throw value
3643
3634
  return value
3644
3635
  }
3645
- }, { '../internals/iterator-close': 78 }],
3646
- 78: [function (require, module, exports) {
3636
+ }, { '../internals/iterator-close': 82 }],
3637
+ 82: [function (require, module, exports) {
3647
3638
  'use strict'
3648
3639
  const call = require('../internals/function-call')
3649
3640
  const anObject = require('../internals/an-object')
@@ -3668,8 +3659,8 @@
3668
3659
  anObject(innerResult)
3669
3660
  return value
3670
3661
  }
3671
- }, { '../internals/an-object': 27, '../internals/function-call': 51, '../internals/get-method': 59 }],
3672
- 79: [function (require, module, exports) {
3662
+ }, { '../internals/an-object': 30, '../internals/function-call': 54, '../internals/get-method': 62 }],
3663
+ 83: [function (require, module, exports) {
3673
3664
  'use strict'
3674
3665
  const call = require('../internals/function-call')
3675
3666
  const create = require('../internals/object-create')
@@ -3769,8 +3760,8 @@
3769
3760
 
3770
3761
  return IteratorProxy
3771
3762
  }
3772
- }, { '../internals/create-iter-result-object': 33, '../internals/create-non-enumerable-property': 34, '../internals/define-built-ins': 39, '../internals/function-call': 51, '../internals/get-method': 59, '../internals/internal-state': 67, '../internals/iterator-cleanup-state': 76, '../internals/iterator-close': 78, '../internals/iterator-close-all': 77, '../internals/iterators-core': 82, '../internals/object-create': 87, '../internals/well-known-symbol': 117 }],
3773
- 80: [function (require, module, exports) {
3763
+ }, { '../internals/create-iter-result-object': 36, '../internals/create-non-enumerable-property': 37, '../internals/define-built-ins': 42, '../internals/function-call': 54, '../internals/get-method': 62, '../internals/internal-state': 70, '../internals/iterator-cleanup-state': 80, '../internals/iterator-close': 82, '../internals/iterator-close-all': 81, '../internals/iterators-core': 86, '../internals/object-create': 93, '../internals/well-known-symbol': 125 }],
3764
+ 84: [function (require, module, exports) {
3774
3765
  'use strict'
3775
3766
  // Should throw an error on invalid iterator
3776
3767
  // https://issues.chromium.org/issues/336839115
@@ -3786,7 +3777,7 @@
3786
3777
  }
3787
3778
  }
3788
3779
  }, {}],
3789
- 81: [function (require, module, exports) {
3780
+ 85: [function (require, module, exports) {
3790
3781
  'use strict'
3791
3782
  const globalThis = require('../internals/global-this')
3792
3783
 
@@ -3812,8 +3803,8 @@
3812
3803
 
3813
3804
  if (!CLOSED) return method
3814
3805
  }
3815
- }, { '../internals/global-this': 60 }],
3816
- 82: [function (require, module, exports) {
3806
+ }, { '../internals/global-this': 63 }],
3807
+ 86: [function (require, module, exports) {
3817
3808
  'use strict'
3818
3809
  const fails = require('../internals/fails')
3819
3810
  const isCallable = require('../internals/is-callable')
@@ -3863,12 +3854,12 @@
3863
3854
  IteratorPrototype,
3864
3855
  BUGGY_SAFARI_ITERATORS
3865
3856
  }
3866
- }, { '../internals/define-built-in': 38, '../internals/fails': 47, '../internals/is-callable': 69, '../internals/is-object': 72, '../internals/is-pure': 73, '../internals/object-create': 87, '../internals/object-get-prototype-of': 93, '../internals/well-known-symbol': 117 }],
3867
- 83: [function (require, module, exports) {
3857
+ }, { '../internals/define-built-in': 41, '../internals/fails': 50, '../internals/is-callable': 72, '../internals/is-object': 75, '../internals/is-pure': 76, '../internals/object-create': 93, '../internals/object-get-prototype-of': 99, '../internals/well-known-symbol': 125 }],
3858
+ 87: [function (require, module, exports) {
3868
3859
  'use strict'
3869
3860
  module.exports = Object.create ? Object.create(null) : {}
3870
3861
  }, {}],
3871
- 84: [function (require, module, exports) {
3862
+ 88: [function (require, module, exports) {
3872
3863
  'use strict'
3873
3864
  const toLength = require('../internals/to-length')
3874
3865
 
@@ -3877,8 +3868,8 @@
3877
3868
  module.exports = function (obj) {
3878
3869
  return toLength(obj.length)
3879
3870
  }
3880
- }, { '../internals/to-length': 108 }],
3881
- 85: [function (require, module, exports) {
3871
+ }, { '../internals/to-length': 115 }],
3872
+ 89: [function (require, module, exports) {
3882
3873
  'use strict'
3883
3874
  const uncurryThis = require('../internals/function-uncurry-this')
3884
3875
  const fails = require('../internals/fails')
@@ -3934,8 +3925,45 @@
3934
3925
  Function.prototype.toString = makeBuiltIn(function toString () {
3935
3926
  return isCallable(this) && getInternalState(this).source || inspectSource(this)
3936
3927
  }, 'toString')
3937
- }, { '../internals/descriptors': 41, '../internals/fails': 47, '../internals/function-name': 52, '../internals/function-uncurry-this': 54, '../internals/has-own-property': 61, '../internals/inspect-source': 66, '../internals/internal-state': 67, '../internals/is-callable': 69 }],
3938
- 86: [function (require, module, exports) {
3928
+ }, { '../internals/descriptors': 44, '../internals/fails': 50, '../internals/function-name': 55, '../internals/function-uncurry-this': 57, '../internals/has-own-property': 64, '../internals/inspect-source': 69, '../internals/internal-state': 70, '../internals/is-callable': 72 }],
3929
+ 90: [function (require, module, exports) {
3930
+ 'use strict'
3931
+ const uncurryThis = require('../internals/function-uncurry-this')
3932
+
3933
+ // eslint-disable-next-line es/no-map -- safe
3934
+ const MapPrototype = Map.prototype
3935
+
3936
+ module.exports = {
3937
+ // eslint-disable-next-line es/no-map -- safe
3938
+ Map,
3939
+ set: uncurryThis(MapPrototype.set),
3940
+ get: uncurryThis(MapPrototype.get),
3941
+ has: uncurryThis(MapPrototype.has),
3942
+ remove: uncurryThis(MapPrototype.delete),
3943
+ proto: MapPrototype
3944
+ }
3945
+ }, { '../internals/function-uncurry-this': 57 }],
3946
+ 91: [function (require, module, exports) {
3947
+ 'use strict'
3948
+ const uncurryThis = require('../internals/function-uncurry-this')
3949
+ const iterateSimple = require('../internals/iterate-simple')
3950
+ const MapHelpers = require('../internals/map-helpers')
3951
+
3952
+ const Map = MapHelpers.Map
3953
+ const MapPrototype = MapHelpers.proto
3954
+ const forEach = uncurryThis(MapPrototype.forEach)
3955
+ const entries = uncurryThis(MapPrototype.entries)
3956
+ const next = entries(new Map()).next
3957
+
3958
+ module.exports = function (map, fn, interruptible) {
3959
+ return interruptible
3960
+ ? iterateSimple({ iterator: entries(map), next }, function (entry) {
3961
+ return fn(entry[1], entry[0])
3962
+ })
3963
+ : forEach(map, fn)
3964
+ }
3965
+ }, { '../internals/function-uncurry-this': 57, '../internals/iterate-simple': 78, '../internals/map-helpers': 90 }],
3966
+ 92: [function (require, module, exports) {
3939
3967
  'use strict'
3940
3968
  const ceil = Math.ceil
3941
3969
  const floor = Math.floor
@@ -3948,7 +3976,7 @@
3948
3976
  return (n > 0 ? floor : ceil)(n)
3949
3977
  }
3950
3978
  }, {}],
3951
- 87: [function (require, module, exports) {
3979
+ 93: [function (require, module, exports) {
3952
3980
  'use strict'
3953
3981
  /* global ActiveXObject -- old IE, WSH */
3954
3982
  const anObject = require('../internals/an-object')
@@ -4034,8 +4062,8 @@
4034
4062
  } else result = NullProtoObject()
4035
4063
  return Properties === undefined ? result : definePropertiesModule.f(result, Properties)
4036
4064
  }
4037
- }, { '../internals/an-object': 27, '../internals/document-create-element': 42, '../internals/enum-bug-keys': 43, '../internals/hidden-keys': 62, '../internals/html': 63, '../internals/object-define-properties': 88, '../internals/shared-key': 101 }],
4038
- 88: [function (require, module, exports) {
4065
+ }, { '../internals/an-object': 30, '../internals/document-create-element': 45, '../internals/enum-bug-keys': 46, '../internals/hidden-keys': 65, '../internals/html': 66, '../internals/object-define-properties': 94, '../internals/shared-key': 108 }],
4066
+ 94: [function (require, module, exports) {
4039
4067
  'use strict'
4040
4068
  const DESCRIPTORS = require('../internals/descriptors')
4041
4069
  const V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug')
@@ -4059,8 +4087,8 @@
4059
4087
  while (length > index) definePropertyModule.f(O, key = keys[index++], props[key])
4060
4088
  return O
4061
4089
  }
4062
- }, { '../internals/an-object': 27, '../internals/descriptors': 41, '../internals/object-define-property': 89, '../internals/object-keys': 96, '../internals/to-indexed-object': 106, '../internals/v8-prototype-define-bug': 115 }],
4063
- 89: [function (require, module, exports) {
4090
+ }, { '../internals/an-object': 30, '../internals/descriptors': 44, '../internals/object-define-property': 95, '../internals/object-keys': 102, '../internals/to-indexed-object': 113, '../internals/v8-prototype-define-bug': 122 }],
4091
+ 95: [function (require, module, exports) {
4064
4092
  'use strict'
4065
4093
  const DESCRIPTORS = require('../internals/descriptors')
4066
4094
  const IE8_DOM_DEFINE = require('../internals/ie8-dom-define')
@@ -4109,8 +4137,8 @@
4109
4137
  if ('value' in Attributes) O[P] = Attributes.value
4110
4138
  return O
4111
4139
  }
4112
- }, { '../internals/an-object': 27, '../internals/descriptors': 41, '../internals/ie8-dom-define': 64, '../internals/to-property-key': 111, '../internals/v8-prototype-define-bug': 115 }],
4113
- 90: [function (require, module, exports) {
4140
+ }, { '../internals/an-object': 30, '../internals/descriptors': 44, '../internals/ie8-dom-define': 67, '../internals/to-property-key': 118, '../internals/v8-prototype-define-bug': 122 }],
4141
+ 96: [function (require, module, exports) {
4114
4142
  'use strict'
4115
4143
  const DESCRIPTORS = require('../internals/descriptors')
4116
4144
  const call = require('../internals/function-call')
@@ -4136,8 +4164,8 @@
4136
4164
  }
4137
4165
  if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P])
4138
4166
  }
4139
- }, { '../internals/create-property-descriptor': 35, '../internals/descriptors': 41, '../internals/function-call': 51, '../internals/has-own-property': 61, '../internals/ie8-dom-define': 64, '../internals/object-property-is-enumerable': 97, '../internals/to-indexed-object': 106, '../internals/to-property-key': 111 }],
4140
- 91: [function (require, module, exports) {
4167
+ }, { '../internals/create-property-descriptor': 38, '../internals/descriptors': 44, '../internals/function-call': 54, '../internals/has-own-property': 64, '../internals/ie8-dom-define': 67, '../internals/object-property-is-enumerable': 103, '../internals/to-indexed-object': 113, '../internals/to-property-key': 118 }],
4168
+ 97: [function (require, module, exports) {
4141
4169
  'use strict'
4142
4170
  const internalObjectKeys = require('../internals/object-keys-internal')
4143
4171
  const enumBugKeys = require('../internals/enum-bug-keys')
@@ -4150,13 +4178,13 @@
4150
4178
  exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames (O) {
4151
4179
  return internalObjectKeys(O, hiddenKeys)
4152
4180
  }
4153
- }, { '../internals/enum-bug-keys': 43, '../internals/object-keys-internal': 95 }],
4154
- 92: [function (require, module, exports) {
4181
+ }, { '../internals/enum-bug-keys': 46, '../internals/object-keys-internal': 101 }],
4182
+ 98: [function (require, module, exports) {
4155
4183
  'use strict'
4156
4184
  // eslint-disable-next-line es/no-object-getownpropertysymbols -- safe
4157
4185
  exports.f = Object.getOwnPropertySymbols
4158
4186
  }, {}],
4159
- 93: [function (require, module, exports) {
4187
+ 99: [function (require, module, exports) {
4160
4188
  'use strict'
4161
4189
  const hasOwn = require('../internals/has-own-property')
4162
4190
  const isCallable = require('../internals/is-callable')
@@ -4181,14 +4209,14 @@
4181
4209
  return constructor.prototype
4182
4210
  } return object instanceof $Object ? ObjectPrototype : null
4183
4211
  }
4184
- }, { '../internals/correct-prototype-getter': 32, '../internals/has-own-property': 61, '../internals/is-callable': 69, '../internals/shared-key': 101, '../internals/to-object': 109 }],
4185
- 94: [function (require, module, exports) {
4212
+ }, { '../internals/correct-prototype-getter': 35, '../internals/has-own-property': 64, '../internals/is-callable': 72, '../internals/shared-key': 108, '../internals/to-object': 116 }],
4213
+ 100: [function (require, module, exports) {
4186
4214
  'use strict'
4187
4215
  const uncurryThis = require('../internals/function-uncurry-this')
4188
4216
 
4189
4217
  module.exports = uncurryThis({}.isPrototypeOf)
4190
- }, { '../internals/function-uncurry-this': 54 }],
4191
- 95: [function (require, module, exports) {
4218
+ }, { '../internals/function-uncurry-this': 57 }],
4219
+ 101: [function (require, module, exports) {
4192
4220
  'use strict'
4193
4221
  const uncurryThis = require('../internals/function-uncurry-this')
4194
4222
  const hasOwn = require('../internals/has-own-property')
@@ -4212,8 +4240,8 @@
4212
4240
  }
4213
4241
  return result
4214
4242
  }
4215
- }, { '../internals/array-includes': 28, '../internals/function-uncurry-this': 54, '../internals/has-own-property': 61, '../internals/hidden-keys': 62, '../internals/to-indexed-object': 106 }],
4216
- 96: [function (require, module, exports) {
4243
+ }, { '../internals/array-includes': 31, '../internals/function-uncurry-this': 57, '../internals/has-own-property': 64, '../internals/hidden-keys': 65, '../internals/to-indexed-object': 113 }],
4244
+ 102: [function (require, module, exports) {
4217
4245
  'use strict'
4218
4246
  const internalObjectKeys = require('../internals/object-keys-internal')
4219
4247
  const enumBugKeys = require('../internals/enum-bug-keys')
@@ -4224,8 +4252,8 @@
4224
4252
  module.exports = Object.keys || function keys (O) {
4225
4253
  return internalObjectKeys(O, enumBugKeys)
4226
4254
  }
4227
- }, { '../internals/enum-bug-keys': 43, '../internals/object-keys-internal': 95 }],
4228
- 97: [function (require, module, exports) {
4255
+ }, { '../internals/enum-bug-keys': 46, '../internals/object-keys-internal': 101 }],
4256
+ 103: [function (require, module, exports) {
4229
4257
  'use strict'
4230
4258
  const $propertyIsEnumerable = {}.propertyIsEnumerable
4231
4259
  // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
@@ -4243,7 +4271,7 @@
4243
4271
  }
4244
4272
  : $propertyIsEnumerable
4245
4273
  }, {}],
4246
- 98: [function (require, module, exports) {
4274
+ 104: [function (require, module, exports) {
4247
4275
  'use strict'
4248
4276
  const call = require('../internals/function-call')
4249
4277
  const isCallable = require('../internals/is-callable')
@@ -4260,8 +4288,8 @@
4260
4288
  if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val
4261
4289
  throw new $TypeError("Can't convert object to primitive value")
4262
4290
  }
4263
- }, { '../internals/function-call': 51, '../internals/is-callable': 69, '../internals/is-object': 72 }],
4264
- 99: [function (require, module, exports) {
4291
+ }, { '../internals/function-call': 54, '../internals/is-callable': 72, '../internals/is-object': 75 }],
4292
+ 105: [function (require, module, exports) {
4265
4293
  'use strict'
4266
4294
  const getBuiltIn = require('../internals/get-built-in')
4267
4295
  const uncurryThis = require('../internals/function-uncurry-this')
@@ -4277,8 +4305,8 @@
4277
4305
  const getOwnPropertySymbols = getOwnPropertySymbolsModule.f
4278
4306
  return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys
4279
4307
  }
4280
- }, { '../internals/an-object': 27, '../internals/function-uncurry-this': 54, '../internals/get-built-in': 55, '../internals/object-get-own-property-names': 91, '../internals/object-get-own-property-symbols': 92 }],
4281
- 100: [function (require, module, exports) {
4308
+ }, { '../internals/an-object': 30, '../internals/function-uncurry-this': 57, '../internals/get-built-in': 58, '../internals/object-get-own-property-names': 97, '../internals/object-get-own-property-symbols': 98 }],
4309
+ 106: [function (require, module, exports) {
4282
4310
  'use strict'
4283
4311
  const isNullOrUndefined = require('../internals/is-null-or-undefined')
4284
4312
 
@@ -4290,8 +4318,17 @@
4290
4318
  if (isNullOrUndefined(it)) throw new $TypeError("Can't call method on " + it)
4291
4319
  return it
4292
4320
  }
4293
- }, { '../internals/is-null-or-undefined': 71 }],
4294
- 101: [function (require, module, exports) {
4321
+ }, { '../internals/is-null-or-undefined': 74 }],
4322
+ 107: [function (require, module, exports) {
4323
+ 'use strict'
4324
+ // `SameValueZero` abstract operation
4325
+ // https://tc39.es/ecma262/#sec-samevaluezero
4326
+ module.exports = function (x, y) {
4327
+ // eslint-disable-next-line no-self-compare -- NaN check
4328
+ return x === y || x !== x && y !== y
4329
+ }
4330
+ }, {}],
4331
+ 108: [function (require, module, exports) {
4295
4332
  'use strict'
4296
4333
  const shared = require('../internals/shared')
4297
4334
  const uid = require('../internals/uid')
@@ -4301,8 +4338,8 @@
4301
4338
  module.exports = function (key) {
4302
4339
  return keys[key] || (keys[key] = uid(key))
4303
4340
  }
4304
- }, { '../internals/shared': 103, '../internals/uid': 113 }],
4305
- 102: [function (require, module, exports) {
4341
+ }, { '../internals/shared': 110, '../internals/uid': 120 }],
4342
+ 109: [function (require, module, exports) {
4306
4343
  'use strict'
4307
4344
  const IS_PURE = require('../internals/is-pure')
4308
4345
  const globalThis = require('../internals/global-this')
@@ -4318,8 +4355,8 @@
4318
4355
  license: 'https://github.com/zloirock/core-js/blob/v3.50.0/LICENSE',
4319
4356
  source: 'https://github.com/zloirock/core-js'
4320
4357
  })
4321
- }, { '../internals/define-global-property': 40, '../internals/global-this': 60, '../internals/is-pure': 73 }],
4322
- 103: [function (require, module, exports) {
4358
+ }, { '../internals/define-global-property': 43, '../internals/global-this': 63, '../internals/is-pure': 76 }],
4359
+ 110: [function (require, module, exports) {
4323
4360
  'use strict'
4324
4361
  const store = require('../internals/shared-store')
4325
4362
  // eslint-disable-next-line es/no-object-create -- safe
@@ -4328,8 +4365,8 @@
4328
4365
  module.exports = function (key, value) {
4329
4366
  return store[key] || (store[key] = value || create(null))
4330
4367
  }
4331
- }, { '../internals/shared-store': 102 }],
4332
- 104: [function (require, module, exports) {
4368
+ }, { '../internals/shared-store': 109 }],
4369
+ 111: [function (require, module, exports) {
4333
4370
  'use strict'
4334
4371
  /* eslint-disable es/no-symbol -- required for testing */
4335
4372
  const V8_VERSION = require('../internals/environment-v8-version')
@@ -4349,8 +4386,8 @@
4349
4386
  // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances
4350
4387
  !Symbol.sham && V8_VERSION && V8_VERSION < 41
4351
4388
  })
4352
- }, { '../internals/environment-v8-version': 45, '../internals/fails': 47, '../internals/global-this': 60 }],
4353
- 105: [function (require, module, exports) {
4389
+ }, { '../internals/environment-v8-version': 48, '../internals/fails': 50, '../internals/global-this': 63 }],
4390
+ 112: [function (require, module, exports) {
4354
4391
  'use strict'
4355
4392
  const toIntegerOrInfinity = require('../internals/to-integer-or-infinity')
4356
4393
 
@@ -4364,8 +4401,8 @@
4364
4401
  const integer = toIntegerOrInfinity(index)
4365
4402
  return integer < 0 ? max(integer + length, 0) : min(integer, length)
4366
4403
  }
4367
- }, { '../internals/to-integer-or-infinity': 107 }],
4368
- 106: [function (require, module, exports) {
4404
+ }, { '../internals/to-integer-or-infinity': 114 }],
4405
+ 113: [function (require, module, exports) {
4369
4406
  'use strict'
4370
4407
  // toObject with fallback for non-array-like ES3 strings
4371
4408
  const IndexedObject = require('../internals/indexed-object')
@@ -4374,8 +4411,8 @@
4374
4411
  module.exports = function (it) {
4375
4412
  return IndexedObject(requireObjectCoercible(it))
4376
4413
  }
4377
- }, { '../internals/indexed-object': 65, '../internals/require-object-coercible': 100 }],
4378
- 107: [function (require, module, exports) {
4414
+ }, { '../internals/indexed-object': 68, '../internals/require-object-coercible': 106 }],
4415
+ 114: [function (require, module, exports) {
4379
4416
  'use strict'
4380
4417
  const trunc = require('../internals/math-trunc')
4381
4418
 
@@ -4386,8 +4423,8 @@
4386
4423
  // eslint-disable-next-line no-self-compare -- NaN check
4387
4424
  return number !== number || number === 0 ? 0 : trunc(number)
4388
4425
  }
4389
- }, { '../internals/math-trunc': 86 }],
4390
- 108: [function (require, module, exports) {
4426
+ }, { '../internals/math-trunc': 92 }],
4427
+ 115: [function (require, module, exports) {
4391
4428
  'use strict'
4392
4429
  const toIntegerOrInfinity = require('../internals/to-integer-or-infinity')
4393
4430
 
@@ -4399,8 +4436,8 @@
4399
4436
  const len = toIntegerOrInfinity(argument)
4400
4437
  return len > 0 ? min(len, 0x1FFFFFFFFFFFFF) : 0 // 2 ** 53 - 1 == 9007199254740991
4401
4438
  }
4402
- }, { '../internals/to-integer-or-infinity': 107 }],
4403
- 109: [function (require, module, exports) {
4439
+ }, { '../internals/to-integer-or-infinity': 114 }],
4440
+ 116: [function (require, module, exports) {
4404
4441
  'use strict'
4405
4442
  const requireObjectCoercible = require('../internals/require-object-coercible')
4406
4443
 
@@ -4411,8 +4448,8 @@
4411
4448
  module.exports = function (argument) {
4412
4449
  return $Object(requireObjectCoercible(argument))
4413
4450
  }
4414
- }, { '../internals/require-object-coercible': 100 }],
4415
- 110: [function (require, module, exports) {
4451
+ }, { '../internals/require-object-coercible': 106 }],
4452
+ 117: [function (require, module, exports) {
4416
4453
  'use strict'
4417
4454
  const call = require('../internals/function-call')
4418
4455
  const isObject = require('../internals/is-object')
@@ -4439,8 +4476,8 @@
4439
4476
  if (pref === undefined) pref = 'number'
4440
4477
  return ordinaryToPrimitive(input, pref)
4441
4478
  }
4442
- }, { '../internals/function-call': 51, '../internals/get-method': 59, '../internals/is-object': 72, '../internals/is-symbol': 74, '../internals/ordinary-to-primitive': 98, '../internals/well-known-symbol': 117 }],
4443
- 111: [function (require, module, exports) {
4479
+ }, { '../internals/function-call': 54, '../internals/get-method': 62, '../internals/is-object': 75, '../internals/is-symbol': 77, '../internals/ordinary-to-primitive': 104, '../internals/well-known-symbol': 125 }],
4480
+ 118: [function (require, module, exports) {
4444
4481
  'use strict'
4445
4482
  const toPrimitive = require('../internals/to-primitive')
4446
4483
  const isSymbol = require('../internals/is-symbol')
@@ -4451,8 +4488,8 @@
4451
4488
  const key = toPrimitive(argument, 'string')
4452
4489
  return isSymbol(key) ? key : key + ''
4453
4490
  }
4454
- }, { '../internals/is-symbol': 74, '../internals/to-primitive': 110 }],
4455
- 112: [function (require, module, exports) {
4491
+ }, { '../internals/is-symbol': 77, '../internals/to-primitive': 117 }],
4492
+ 119: [function (require, module, exports) {
4456
4493
  'use strict'
4457
4494
  const $String = String
4458
4495
 
@@ -4464,7 +4501,7 @@
4464
4501
  }
4465
4502
  }
4466
4503
  }, {}],
4467
- 113: [function (require, module, exports) {
4504
+ 120: [function (require, module, exports) {
4468
4505
  'use strict'
4469
4506
  const uncurryThis = require('../internals/function-uncurry-this')
4470
4507
 
@@ -4475,8 +4512,8 @@
4475
4512
  module.exports = function (key) {
4476
4513
  return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36)
4477
4514
  }
4478
- }, { '../internals/function-uncurry-this': 54 }],
4479
- 114: [function (require, module, exports) {
4515
+ }, { '../internals/function-uncurry-this': 57 }],
4516
+ 121: [function (require, module, exports) {
4480
4517
  'use strict'
4481
4518
  /* eslint-disable es/no-symbol -- required for testing */
4482
4519
  const NATIVE_SYMBOL = require('../internals/symbol-constructor-detection')
@@ -4484,8 +4521,8 @@
4484
4521
  module.exports = NATIVE_SYMBOL &&
4485
4522
  !Symbol.sham &&
4486
4523
  typeof Symbol.iterator === 'symbol'
4487
- }, { '../internals/symbol-constructor-detection': 104 }],
4488
- 115: [function (require, module, exports) {
4524
+ }, { '../internals/symbol-constructor-detection': 111 }],
4525
+ 122: [function (require, module, exports) {
4489
4526
  'use strict'
4490
4527
  const DESCRIPTORS = require('../internals/descriptors')
4491
4528
  const fails = require('../internals/fails')
@@ -4499,8 +4536,8 @@
4499
4536
  writable: false
4500
4537
  }).prototype !== 42
4501
4538
  })
4502
- }, { '../internals/descriptors': 41, '../internals/fails': 47 }],
4503
- 116: [function (require, module, exports) {
4539
+ }, { '../internals/descriptors': 44, '../internals/fails': 50 }],
4540
+ 123: [function (require, module, exports) {
4504
4541
  'use strict'
4505
4542
  const globalThis = require('../internals/global-this')
4506
4543
  const isCallable = require('../internals/is-callable')
@@ -4508,8 +4545,24 @@
4508
4545
  const WeakMap = globalThis.WeakMap
4509
4546
 
4510
4547
  module.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap))
4511
- }, { '../internals/global-this': 60, '../internals/is-callable': 69 }],
4512
- 117: [function (require, module, exports) {
4548
+ }, { '../internals/global-this': 63, '../internals/is-callable': 72 }],
4549
+ 124: [function (require, module, exports) {
4550
+ 'use strict'
4551
+ const uncurryThis = require('../internals/function-uncurry-this')
4552
+
4553
+ // eslint-disable-next-line es/no-weak-map -- safe
4554
+ const WeakMapPrototype = WeakMap.prototype
4555
+
4556
+ module.exports = {
4557
+ // eslint-disable-next-line es/no-weak-map -- safe
4558
+ WeakMap,
4559
+ set: uncurryThis(WeakMapPrototype.set),
4560
+ get: uncurryThis(WeakMapPrototype.get),
4561
+ has: uncurryThis(WeakMapPrototype.has),
4562
+ remove: uncurryThis(WeakMapPrototype.delete)
4563
+ }
4564
+ }, { '../internals/function-uncurry-this': 57 }],
4565
+ 125: [function (require, module, exports) {
4513
4566
  'use strict'
4514
4567
  const globalThis = require('../internals/global-this')
4515
4568
  const shared = require('../internals/shared')
@@ -4529,8 +4582,8 @@
4529
4582
  : createWellKnownSymbol('Symbol.' + name)
4530
4583
  } return WellKnownSymbolsStore[name]
4531
4584
  }
4532
- }, { '../internals/global-this': 60, '../internals/has-own-property': 61, '../internals/shared': 103, '../internals/symbol-constructor-detection': 104, '../internals/uid': 113, '../internals/use-symbol-as-uid': 114 }],
4533
- 118: [function (require, module, exports) {
4585
+ }, { '../internals/global-this': 63, '../internals/has-own-property': 64, '../internals/shared': 110, '../internals/symbol-constructor-detection': 111, '../internals/uid': 120, '../internals/use-symbol-as-uid': 121 }],
4586
+ 126: [function (require, module, exports) {
4534
4587
  'use strict'
4535
4588
  const $ = require('../internals/export')
4536
4589
  const globalThis = require('../internals/global-this')
@@ -4596,8 +4649,8 @@
4596
4649
  $({ global: true, constructor: true, forced: FORCED }, {
4597
4650
  Iterator: IteratorConstructor
4598
4651
  })
4599
- }, { '../internals/an-instance': 26, '../internals/an-object': 27, '../internals/create-property': 36, '../internals/define-built-in-accessor': 37, '../internals/descriptors': 41, '../internals/export': 46, '../internals/fails': 47, '../internals/global-this': 60, '../internals/has-own-property': 61, '../internals/is-callable': 69, '../internals/is-pure': 73, '../internals/iterators-core': 82, '../internals/object-get-prototype-of': 93, '../internals/well-known-symbol': 117 }],
4600
- 119: [function (require, module, exports) {
4652
+ }, { '../internals/an-instance': 29, '../internals/an-object': 30, '../internals/create-property': 39, '../internals/define-built-in-accessor': 40, '../internals/descriptors': 44, '../internals/export': 49, '../internals/fails': 50, '../internals/global-this': 63, '../internals/has-own-property': 64, '../internals/is-callable': 72, '../internals/is-pure': 76, '../internals/iterators-core': 86, '../internals/object-get-prototype-of': 99, '../internals/well-known-symbol': 125 }],
4653
+ 127: [function (require, module, exports) {
4601
4654
  'use strict'
4602
4655
  const $ = require('../internals/export')
4603
4656
  const call = require('../internals/function-call')
@@ -4630,8 +4683,8 @@
4630
4683
  }, { IS_RECORD: true })
4631
4684
  }
4632
4685
  })
4633
- }, { '../internals/a-callable': 25, '../internals/an-object': 27, '../internals/export': 46, '../internals/function-call': 51, '../internals/get-iterator-direct': 56, '../internals/iterate': 75, '../internals/iterator-close': 78, '../internals/iterator-helper-without-closing-on-early-error': 81 }],
4634
- 120: [function (require, module, exports) {
4686
+ }, { '../internals/a-callable': 26, '../internals/an-object': 30, '../internals/export': 49, '../internals/function-call': 54, '../internals/get-iterator-direct': 59, '../internals/iterate': 79, '../internals/iterator-close': 82, '../internals/iterator-helper-without-closing-on-early-error': 85 }],
4687
+ 128: [function (require, module, exports) {
4635
4688
  'use strict'
4636
4689
  const $ = require('../internals/export')
4637
4690
  const call = require('../internals/function-call')
@@ -4676,8 +4729,8 @@
4676
4729
  })
4677
4730
  }
4678
4731
  })
4679
- }, { '../internals/a-callable': 25, '../internals/an-object': 27, '../internals/call-with-safe-iteration-closing': 29, '../internals/export': 46, '../internals/function-call': 51, '../internals/get-iterator-direct': 56, '../internals/is-pure': 73, '../internals/iterator-close': 78, '../internals/iterator-create-proxy': 79, '../internals/iterator-helper-throws-on-invalid-iterator': 80, '../internals/iterator-helper-without-closing-on-early-error': 81 }],
4680
- 121: [function (require, module, exports) {
4732
+ }, { '../internals/a-callable': 26, '../internals/an-object': 30, '../internals/call-with-safe-iteration-closing': 32, '../internals/export': 49, '../internals/function-call': 54, '../internals/get-iterator-direct': 59, '../internals/is-pure': 76, '../internals/iterator-close': 82, '../internals/iterator-create-proxy': 83, '../internals/iterator-helper-throws-on-invalid-iterator': 84, '../internals/iterator-helper-without-closing-on-early-error': 85 }],
4733
+ 129: [function (require, module, exports) {
4681
4734
  'use strict'
4682
4735
  const $ = require('../internals/export')
4683
4736
  const iterate = require('../internals/iterate')
@@ -4730,25 +4783,335 @@
4730
4783
  return accumulator
4731
4784
  }
4732
4785
  })
4733
- }, { '../internals/a-callable': 25, '../internals/an-object': 27, '../internals/export': 46, '../internals/fails': 47, '../internals/function-apply': 48, '../internals/get-iterator-direct': 56, '../internals/iterate': 75, '../internals/iterator-close': 78, '../internals/iterator-helper-without-closing-on-early-error': 81 }],
4734
- 122: [function (require, module, exports) {
4786
+ }, { '../internals/a-callable': 26, '../internals/an-object': 30, '../internals/export': 49, '../internals/fails': 50, '../internals/function-apply': 51, '../internals/get-iterator-direct': 59, '../internals/iterate': 79, '../internals/iterator-close': 82, '../internals/iterator-helper-without-closing-on-early-error': 85 }],
4787
+ 130: [function (require, module, exports) {
4735
4788
  'use strict'
4736
4789
  // TODO: Remove from `core-js@4`
4737
4790
  require('../modules/es.iterator.constructor')
4738
- }, { '../modules/es.iterator.constructor': 118 }],
4739
- 123: [function (require, module, exports) {
4791
+ }, { '../modules/es.iterator.constructor': 126 }],
4792
+ 131: [function (require, module, exports) {
4740
4793
  'use strict'
4741
4794
  // TODO: Remove from `core-js@4`
4742
4795
  require('../modules/es.iterator.for-each')
4743
- }, { '../modules/es.iterator.for-each': 119 }],
4744
- 124: [function (require, module, exports) {
4796
+ }, { '../modules/es.iterator.for-each': 127 }],
4797
+ 132: [function (require, module, exports) {
4745
4798
  'use strict'
4746
4799
  // TODO: Remove from `core-js@4`
4747
4800
  require('../modules/es.iterator.map')
4748
- }, { '../modules/es.iterator.map': 120 }],
4749
- 125: [function (require, module, exports) {
4801
+ }, { '../modules/es.iterator.map': 128 }],
4802
+ 133: [function (require, module, exports) {
4750
4803
  'use strict'
4751
4804
  // TODO: Remove from `core-js@4`
4752
4805
  require('../modules/es.iterator.reduce')
4753
- }, { '../modules/es.iterator.reduce': 121 }]
4754
- }, {}, [15])
4806
+ }, { '../modules/es.iterator.reduce': 129 }],
4807
+ 134: [function (require, module, exports) {
4808
+ 'use strict'
4809
+ const $ = require('../internals/export')
4810
+ const aMap = require('../internals/a-map')
4811
+ const remove = require('../internals/map-helpers').remove
4812
+
4813
+ // `Map.prototype.deleteAll` method
4814
+ // https://github.com/tc39/proposal-collection-methods
4815
+ $({ target: 'Map', proto: true, real: true, forced: true }, {
4816
+ deleteAll: function deleteAll (/* ...elements */) {
4817
+ const collection = aMap(this)
4818
+ let allDeleted = true
4819
+ let wasDeleted
4820
+ for (let k = 0, len = arguments.length; k < len; k++) {
4821
+ wasDeleted = remove(collection, arguments[k])
4822
+ allDeleted = allDeleted && wasDeleted
4823
+ } return !!allDeleted
4824
+ }
4825
+ })
4826
+ }, { '../internals/a-map': 27, '../internals/export': 49, '../internals/map-helpers': 90 }],
4827
+ 135: [function (require, module, exports) {
4828
+ 'use strict'
4829
+ const $ = require('../internals/export')
4830
+ const bind = require('../internals/function-bind-context')
4831
+ const aMap = require('../internals/a-map')
4832
+ const iterate = require('../internals/map-iterate')
4833
+
4834
+ // `Map.prototype.every` method
4835
+ // https://github.com/tc39/proposal-collection-methods
4836
+ $({ target: 'Map', proto: true, real: true, forced: true }, {
4837
+ every: function every (callbackfn /* , thisArg */) {
4838
+ const map = aMap(this)
4839
+ const boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined)
4840
+ return iterate(map, function (value, key) {
4841
+ if (!boundFunction(value, key, map)) return false
4842
+ }, true) !== false
4843
+ }
4844
+ })
4845
+ }, { '../internals/a-map': 27, '../internals/export': 49, '../internals/function-bind-context': 52, '../internals/map-iterate': 91 }],
4846
+ 136: [function (require, module, exports) {
4847
+ 'use strict'
4848
+ const $ = require('../internals/export')
4849
+ const bind = require('../internals/function-bind-context')
4850
+ const aMap = require('../internals/a-map')
4851
+ const MapHelpers = require('../internals/map-helpers')
4852
+ const iterate = require('../internals/map-iterate')
4853
+
4854
+ const Map = MapHelpers.Map
4855
+ const set = MapHelpers.set
4856
+
4857
+ // `Map.prototype.filter` method
4858
+ // https://github.com/tc39/proposal-collection-methods
4859
+ $({ target: 'Map', proto: true, real: true, forced: true }, {
4860
+ filter: function filter (callbackfn /* , thisArg */) {
4861
+ const map = aMap(this)
4862
+ const boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined)
4863
+ const newMap = new Map()
4864
+ iterate(map, function (value, key) {
4865
+ if (boundFunction(value, key, map)) set(newMap, key, value)
4866
+ })
4867
+ return newMap
4868
+ }
4869
+ })
4870
+ }, { '../internals/a-map': 27, '../internals/export': 49, '../internals/function-bind-context': 52, '../internals/map-helpers': 90, '../internals/map-iterate': 91 }],
4871
+ 137: [function (require, module, exports) {
4872
+ 'use strict'
4873
+ const $ = require('../internals/export')
4874
+ const bind = require('../internals/function-bind-context')
4875
+ const aMap = require('../internals/a-map')
4876
+ const iterate = require('../internals/map-iterate')
4877
+
4878
+ // `Map.prototype.findKey` method
4879
+ // https://github.com/tc39/proposal-collection-methods
4880
+ $({ target: 'Map', proto: true, real: true, forced: true }, {
4881
+ findKey: function findKey (callbackfn /* , thisArg */) {
4882
+ const map = aMap(this)
4883
+ const boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined)
4884
+ const result = iterate(map, function (value, key) {
4885
+ if (boundFunction(value, key, map)) return { key }
4886
+ }, true)
4887
+ return result && result.key
4888
+ }
4889
+ })
4890
+ }, { '../internals/a-map': 27, '../internals/export': 49, '../internals/function-bind-context': 52, '../internals/map-iterate': 91 }],
4891
+ 138: [function (require, module, exports) {
4892
+ 'use strict'
4893
+ const $ = require('../internals/export')
4894
+ const bind = require('../internals/function-bind-context')
4895
+ const aMap = require('../internals/a-map')
4896
+ const iterate = require('../internals/map-iterate')
4897
+
4898
+ // `Map.prototype.find` method
4899
+ // https://github.com/tc39/proposal-collection-methods
4900
+ $({ target: 'Map', proto: true, real: true, forced: true }, {
4901
+ find: function find (callbackfn /* , thisArg */) {
4902
+ const map = aMap(this)
4903
+ const boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined)
4904
+ const result = iterate(map, function (value, key) {
4905
+ if (boundFunction(value, key, map)) return { value }
4906
+ }, true)
4907
+ return result && result.value
4908
+ }
4909
+ })
4910
+ }, { '../internals/a-map': 27, '../internals/export': 49, '../internals/function-bind-context': 52, '../internals/map-iterate': 91 }],
4911
+ 139: [function (require, module, exports) {
4912
+ 'use strict'
4913
+ const $ = require('../internals/export')
4914
+ const sameValueZero = require('../internals/same-value-zero')
4915
+ const aMap = require('../internals/a-map')
4916
+ const iterate = require('../internals/map-iterate')
4917
+
4918
+ // `Map.prototype.includes` method
4919
+ // https://github.com/tc39/proposal-collection-methods
4920
+ $({ target: 'Map', proto: true, real: true, forced: true }, {
4921
+ includes: function includes (searchElement) {
4922
+ return iterate(aMap(this), function (value) {
4923
+ if (sameValueZero(value, searchElement)) return true
4924
+ }, true) === true
4925
+ }
4926
+ })
4927
+ }, { '../internals/a-map': 27, '../internals/export': 49, '../internals/map-iterate': 91, '../internals/same-value-zero': 107 }],
4928
+ 140: [function (require, module, exports) {
4929
+ 'use strict'
4930
+ const $ = require('../internals/export')
4931
+ const aMap = require('../internals/a-map')
4932
+ const iterate = require('../internals/map-iterate')
4933
+
4934
+ // `Map.prototype.keyOf` method
4935
+ // https://github.com/tc39/proposal-collection-methods
4936
+ $({ target: 'Map', proto: true, real: true, forced: true }, {
4937
+ keyOf: function keyOf (searchElement) {
4938
+ const result = iterate(aMap(this), function (value, key) {
4939
+ if (value === searchElement) return { key }
4940
+ }, true)
4941
+ return result && result.key
4942
+ }
4943
+ })
4944
+ }, { '../internals/a-map': 27, '../internals/export': 49, '../internals/map-iterate': 91 }],
4945
+ 141: [function (require, module, exports) {
4946
+ 'use strict'
4947
+ const $ = require('../internals/export')
4948
+ const bind = require('../internals/function-bind-context')
4949
+ const aMap = require('../internals/a-map')
4950
+ const MapHelpers = require('../internals/map-helpers')
4951
+ const iterate = require('../internals/map-iterate')
4952
+
4953
+ const Map = MapHelpers.Map
4954
+ const set = MapHelpers.set
4955
+
4956
+ // `Map.prototype.mapKeys` method
4957
+ // https://github.com/tc39/proposal-collection-methods
4958
+ $({ target: 'Map', proto: true, real: true, forced: true }, {
4959
+ mapKeys: function mapKeys (callbackfn /* , thisArg */) {
4960
+ const map = aMap(this)
4961
+ const boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined)
4962
+ const newMap = new Map()
4963
+ iterate(map, function (value, key) {
4964
+ set(newMap, boundFunction(value, key, map), value)
4965
+ })
4966
+ return newMap
4967
+ }
4968
+ })
4969
+ }, { '../internals/a-map': 27, '../internals/export': 49, '../internals/function-bind-context': 52, '../internals/map-helpers': 90, '../internals/map-iterate': 91 }],
4970
+ 142: [function (require, module, exports) {
4971
+ 'use strict'
4972
+ const $ = require('../internals/export')
4973
+ const bind = require('../internals/function-bind-context')
4974
+ const aMap = require('../internals/a-map')
4975
+ const MapHelpers = require('../internals/map-helpers')
4976
+ const iterate = require('../internals/map-iterate')
4977
+
4978
+ const Map = MapHelpers.Map
4979
+ const set = MapHelpers.set
4980
+
4981
+ // `Map.prototype.mapValues` method
4982
+ // https://github.com/tc39/proposal-collection-methods
4983
+ $({ target: 'Map', proto: true, real: true, forced: true }, {
4984
+ mapValues: function mapValues (callbackfn /* , thisArg */) {
4985
+ const map = aMap(this)
4986
+ const boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined)
4987
+ const newMap = new Map()
4988
+ iterate(map, function (value, key) {
4989
+ set(newMap, key, boundFunction(value, key, map))
4990
+ })
4991
+ return newMap
4992
+ }
4993
+ })
4994
+ }, { '../internals/a-map': 27, '../internals/export': 49, '../internals/function-bind-context': 52, '../internals/map-helpers': 90, '../internals/map-iterate': 91 }],
4995
+ 143: [function (require, module, exports) {
4996
+ 'use strict'
4997
+ const $ = require('../internals/export')
4998
+ const aMap = require('../internals/a-map')
4999
+ const iterate = require('../internals/iterate')
5000
+ const set = require('../internals/map-helpers').set
5001
+
5002
+ // `Map.prototype.merge` method
5003
+ // https://github.com/tc39/proposal-collection-methods
5004
+ $({ target: 'Map', proto: true, real: true, arity: 1, forced: true }, {
5005
+ // eslint-disable-next-line no-unused-vars -- required for `.length`
5006
+ merge: function merge (iterable /* ...iterables */) {
5007
+ const map = aMap(this)
5008
+ const argumentsLength = arguments.length
5009
+ let i = 0
5010
+ while (i < argumentsLength) {
5011
+ iterate(arguments[i++], function (key, value) {
5012
+ set(map, key, value)
5013
+ }, { AS_ENTRIES: true })
5014
+ }
5015
+ return map
5016
+ }
5017
+ })
5018
+ }, { '../internals/a-map': 27, '../internals/export': 49, '../internals/iterate': 79, '../internals/map-helpers': 90 }],
5019
+ 144: [function (require, module, exports) {
5020
+ 'use strict'
5021
+ const $ = require('../internals/export')
5022
+ const aCallable = require('../internals/a-callable')
5023
+ const aMap = require('../internals/a-map')
5024
+ const iterate = require('../internals/map-iterate')
5025
+
5026
+ const $TypeError = TypeError
5027
+
5028
+ // `Map.prototype.reduce` method
5029
+ // https://github.com/tc39/proposal-collection-methods
5030
+ $({ target: 'Map', proto: true, real: true, forced: true }, {
5031
+ reduce: function reduce (callbackfn /* , initialValue */) {
5032
+ const map = aMap(this)
5033
+ let noInitial = arguments.length < 2
5034
+ let accumulator = noInitial ? undefined : arguments[1]
5035
+ aCallable(callbackfn)
5036
+ iterate(map, function (value, key) {
5037
+ if (noInitial) {
5038
+ noInitial = false
5039
+ accumulator = value
5040
+ } else {
5041
+ accumulator = callbackfn(accumulator, value, key, map)
5042
+ }
5043
+ })
5044
+ if (noInitial) throw new $TypeError('Reduce of empty map with no initial value')
5045
+ return accumulator
5046
+ }
5047
+ })
5048
+ }, { '../internals/a-callable': 26, '../internals/a-map': 27, '../internals/export': 49, '../internals/map-iterate': 91 }],
5049
+ 145: [function (require, module, exports) {
5050
+ 'use strict'
5051
+ const $ = require('../internals/export')
5052
+ const bind = require('../internals/function-bind-context')
5053
+ const aMap = require('../internals/a-map')
5054
+ const iterate = require('../internals/map-iterate')
5055
+
5056
+ // `Map.prototype.some` method
5057
+ // https://github.com/tc39/proposal-collection-methods
5058
+ $({ target: 'Map', proto: true, real: true, forced: true }, {
5059
+ some: function some (callbackfn /* , thisArg */) {
5060
+ const map = aMap(this)
5061
+ const boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined)
5062
+ return iterate(map, function (value, key) {
5063
+ if (boundFunction(value, key, map)) return true
5064
+ }, true) === true
5065
+ }
5066
+ })
5067
+ }, { '../internals/a-map': 27, '../internals/export': 49, '../internals/function-bind-context': 52, '../internals/map-iterate': 91 }],
5068
+ 146: [function (require, module, exports) {
5069
+ 'use strict'
5070
+ const $ = require('../internals/export')
5071
+ const aCallable = require('../internals/a-callable')
5072
+ const aMap = require('../internals/a-map')
5073
+ const MapHelpers = require('../internals/map-helpers')
5074
+
5075
+ const $TypeError = TypeError
5076
+ const get = MapHelpers.get
5077
+ const has = MapHelpers.has
5078
+ const set = MapHelpers.set
5079
+
5080
+ // `Map.prototype.update` method
5081
+ // https://github.com/tc39/proposal-collection-methods
5082
+ $({ target: 'Map', proto: true, real: true, forced: true }, {
5083
+ update: function update (key, callback /* , thunk */) {
5084
+ const map = aMap(this)
5085
+ const length = arguments.length
5086
+ aCallable(callback)
5087
+ const isPresentInMap = has(map, key)
5088
+ if (!isPresentInMap && length < 3) {
5089
+ throw new $TypeError('Updating absent value')
5090
+ }
5091
+ const value = isPresentInMap ? get(map, key) : aCallable(length > 2 ? arguments[2] : undefined)(key, map)
5092
+ set(map, key, callback(value, key, map))
5093
+ return map
5094
+ }
5095
+ })
5096
+ }, { '../internals/a-callable': 26, '../internals/a-map': 27, '../internals/export': 49, '../internals/map-helpers': 90 }],
5097
+ 147: [function (require, module, exports) {
5098
+ 'use strict'
5099
+ const $ = require('../internals/export')
5100
+ const aWeakMap = require('../internals/a-weak-map')
5101
+ const remove = require('../internals/weak-map-helpers').remove
5102
+
5103
+ // `WeakMap.prototype.deleteAll` method
5104
+ // https://github.com/tc39/proposal-collection-methods
5105
+ $({ target: 'WeakMap', proto: true, real: true, forced: true }, {
5106
+ deleteAll: function deleteAll (/* ...elements */) {
5107
+ const collection = aWeakMap(this)
5108
+ let allDeleted = true
5109
+ let wasDeleted
5110
+ for (let k = 0, len = arguments.length; k < len; k++) {
5111
+ wasDeleted = remove(collection, arguments[k])
5112
+ allDeleted = allDeleted && wasDeleted
5113
+ } return !!allDeleted
5114
+ }
5115
+ })
5116
+ }, { '../internals/a-weak-map': 28, '../internals/export': 49, '../internals/weak-map-helpers': 124 }]
5117
+ }, {}, [16])