data-structure-typed 2.5.3 → 2.6.1

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 (158) hide show
  1. package/.github/workflows/ci.yml +7 -2
  2. package/.github/workflows/release-package.yml +9 -2
  3. package/.husky/pre-commit +3 -0
  4. package/CHANGELOG.md +1 -1
  5. package/MIGRATION.md +48 -0
  6. package/README.md +20 -2
  7. package/README_CN.md +20 -2
  8. package/SPECIFICATION.md +24 -0
  9. package/SPECIFICATION.zh-CN.md +24 -0
  10. package/dist/cjs/binary-tree.cjs +1897 -19
  11. package/dist/cjs/graph.cjs +174 -0
  12. package/dist/cjs/hash.cjs +33 -0
  13. package/dist/cjs/heap.cjs +71 -0
  14. package/dist/cjs/index.cjs +2383 -3
  15. package/dist/cjs/linked-list.cjs +224 -2
  16. package/dist/cjs/matrix.cjs +24 -0
  17. package/dist/cjs/priority-queue.cjs +71 -0
  18. package/dist/cjs/queue.cjs +221 -1
  19. package/dist/cjs/stack.cjs +59 -0
  20. package/dist/cjs/trie.cjs +62 -0
  21. package/dist/cjs-legacy/binary-tree.cjs +1897 -19
  22. package/dist/cjs-legacy/graph.cjs +174 -0
  23. package/dist/cjs-legacy/hash.cjs +33 -0
  24. package/dist/cjs-legacy/heap.cjs +71 -0
  25. package/dist/cjs-legacy/index.cjs +2383 -3
  26. package/dist/cjs-legacy/linked-list.cjs +224 -2
  27. package/dist/cjs-legacy/matrix.cjs +24 -0
  28. package/dist/cjs-legacy/priority-queue.cjs +71 -0
  29. package/dist/cjs-legacy/queue.cjs +221 -1
  30. package/dist/cjs-legacy/stack.cjs +59 -0
  31. package/dist/cjs-legacy/trie.cjs +62 -0
  32. package/dist/esm/binary-tree.mjs +1897 -19
  33. package/dist/esm/graph.mjs +174 -0
  34. package/dist/esm/hash.mjs +33 -0
  35. package/dist/esm/heap.mjs +71 -0
  36. package/dist/esm/index.mjs +2383 -3
  37. package/dist/esm/linked-list.mjs +224 -2
  38. package/dist/esm/matrix.mjs +24 -0
  39. package/dist/esm/priority-queue.mjs +71 -0
  40. package/dist/esm/queue.mjs +221 -1
  41. package/dist/esm/stack.mjs +59 -0
  42. package/dist/esm/trie.mjs +62 -0
  43. package/dist/esm-legacy/binary-tree.mjs +1897 -19
  44. package/dist/esm-legacy/graph.mjs +174 -0
  45. package/dist/esm-legacy/hash.mjs +33 -0
  46. package/dist/esm-legacy/heap.mjs +71 -0
  47. package/dist/esm-legacy/index.mjs +2383 -3
  48. package/dist/esm-legacy/linked-list.mjs +224 -2
  49. package/dist/esm-legacy/matrix.mjs +24 -0
  50. package/dist/esm-legacy/priority-queue.mjs +71 -0
  51. package/dist/esm-legacy/queue.mjs +221 -1
  52. package/dist/esm-legacy/stack.mjs +59 -0
  53. package/dist/esm-legacy/trie.mjs +62 -0
  54. package/dist/types/data-structures/base/iterable-element-base.d.ts +17 -0
  55. package/dist/types/data-structures/base/linear-base.d.ts +6 -0
  56. package/dist/types/data-structures/binary-tree/avl-tree.d.ts +36 -0
  57. package/dist/types/data-structures/binary-tree/binary-indexed-tree.d.ts +42 -0
  58. package/dist/types/data-structures/binary-tree/binary-tree.d.ts +75 -0
  59. package/dist/types/data-structures/binary-tree/bst.d.ts +72 -0
  60. package/dist/types/data-structures/binary-tree/red-black-tree.d.ts +57 -0
  61. package/dist/types/data-structures/binary-tree/segment-tree.d.ts +18 -0
  62. package/dist/types/data-structures/binary-tree/tree-map.d.ts +375 -0
  63. package/dist/types/data-structures/binary-tree/tree-multi-map.d.ts +389 -0
  64. package/dist/types/data-structures/binary-tree/tree-multi-set.d.ts +330 -0
  65. package/dist/types/data-structures/binary-tree/tree-set.d.ts +438 -0
  66. package/dist/types/data-structures/graph/directed-graph.d.ts +30 -0
  67. package/dist/types/data-structures/graph/undirected-graph.d.ts +27 -0
  68. package/dist/types/data-structures/hash/hash-map.d.ts +33 -0
  69. package/dist/types/data-structures/heap/heap.d.ts +42 -0
  70. package/dist/types/data-structures/linked-list/doubly-linked-list.d.ts +75 -2
  71. package/dist/types/data-structures/linked-list/singly-linked-list.d.ts +45 -0
  72. package/dist/types/data-structures/linked-list/skip-linked-list.d.ts +54 -0
  73. package/dist/types/data-structures/matrix/matrix.d.ts +24 -0
  74. package/dist/types/data-structures/queue/deque.d.ts +90 -1
  75. package/dist/types/data-structures/queue/queue.d.ts +36 -0
  76. package/dist/types/data-structures/stack/stack.d.ts +30 -0
  77. package/dist/types/data-structures/trie/trie.d.ts +36 -0
  78. package/dist/umd/data-structure-typed.js +2383 -3
  79. package/dist/umd/data-structure-typed.min.js +3 -3
  80. package/docs-site-docusaurus/docs/api/classes/AVLTree.md +108 -108
  81. package/docs-site-docusaurus/docs/api/classes/BST.md +101 -101
  82. package/docs-site-docusaurus/docs/api/classes/BinaryIndexedTree.md +13 -13
  83. package/docs-site-docusaurus/docs/api/classes/BinaryTree.md +66 -66
  84. package/docs-site-docusaurus/docs/api/classes/Deque.md +235 -51
  85. package/docs-site-docusaurus/docs/api/classes/DirectedGraph.md +21 -21
  86. package/docs-site-docusaurus/docs/api/classes/DoublyLinkedList.md +231 -67
  87. package/docs-site-docusaurus/docs/api/classes/FibonacciHeap.md +9 -9
  88. package/docs-site-docusaurus/docs/api/classes/FibonacciHeapNode.md +1 -1
  89. package/docs-site-docusaurus/docs/api/classes/HashMap.md +14 -14
  90. package/docs-site-docusaurus/docs/api/classes/Heap.md +117 -34
  91. package/docs-site-docusaurus/docs/api/classes/IterableElementBase.md +83 -13
  92. package/docs-site-docusaurus/docs/api/classes/LinearBase.md +124 -20
  93. package/docs-site-docusaurus/docs/api/classes/LinearLinkedBase.md +140 -32
  94. package/docs-site-docusaurus/docs/api/classes/LinkedHashMap.md +30 -26
  95. package/docs-site-docusaurus/docs/api/classes/LinkedListQueue.md +159 -51
  96. package/docs-site-docusaurus/docs/api/classes/MapGraph.md +20 -20
  97. package/docs-site-docusaurus/docs/api/classes/Matrix.md +23 -23
  98. package/docs-site-docusaurus/docs/api/classes/MaxHeap.md +117 -34
  99. package/docs-site-docusaurus/docs/api/classes/MaxPriorityQueue.md +117 -34
  100. package/docs-site-docusaurus/docs/api/classes/MinHeap.md +117 -34
  101. package/docs-site-docusaurus/docs/api/classes/MinPriorityQueue.md +117 -34
  102. package/docs-site-docusaurus/docs/api/classes/PriorityQueue.md +117 -34
  103. package/docs-site-docusaurus/docs/api/classes/Queue.md +142 -34
  104. package/docs-site-docusaurus/docs/api/classes/RedBlackTree.md +117 -117
  105. package/docs-site-docusaurus/docs/api/classes/SegmentTree.md +8 -8
  106. package/docs-site-docusaurus/docs/api/classes/SinglyLinkedList.md +158 -50
  107. package/docs-site-docusaurus/docs/api/classes/SkipList.md +21 -21
  108. package/docs-site-docusaurus/docs/api/classes/Stack.md +108 -26
  109. package/docs-site-docusaurus/docs/api/classes/TreeMap.md +33 -33
  110. package/docs-site-docusaurus/docs/api/classes/TreeMultiMap.md +75 -39
  111. package/docs-site-docusaurus/docs/api/classes/TreeSet.md +301 -39
  112. package/docs-site-docusaurus/docs/api/classes/Trie.md +110 -28
  113. package/docs-site-docusaurus/docs/api/classes/UndirectedGraph.md +20 -20
  114. package/jest.integration.config.js +1 -2
  115. package/package.json +51 -50
  116. package/src/common/error.ts +15 -32
  117. package/src/common/index.ts +0 -3
  118. package/src/data-structures/base/iterable-element-base.ts +32 -3
  119. package/src/data-structures/base/linear-base.ts +13 -36
  120. package/src/data-structures/binary-tree/avl-tree.ts +31 -493
  121. package/src/data-structures/binary-tree/binary-indexed-tree.ts +47 -530
  122. package/src/data-structures/binary-tree/binary-tree.ts +326 -1236
  123. package/src/data-structures/binary-tree/bst.ts +158 -1010
  124. package/src/data-structures/binary-tree/red-black-tree.ts +451 -1233
  125. package/src/data-structures/binary-tree/segment-tree.ts +73 -333
  126. package/src/data-structures/binary-tree/tree-map.ts +462 -4749
  127. package/src/data-structures/binary-tree/tree-multi-map.ts +310 -4530
  128. package/src/data-structures/binary-tree/tree-multi-set.ts +300 -3652
  129. package/src/data-structures/binary-tree/tree-set.ts +437 -4443
  130. package/src/data-structures/graph/abstract-graph.ts +98 -167
  131. package/src/data-structures/graph/directed-graph.ts +137 -532
  132. package/src/data-structures/graph/map-graph.ts +0 -3
  133. package/src/data-structures/graph/undirected-graph.ts +132 -484
  134. package/src/data-structures/hash/hash-map.ts +154 -549
  135. package/src/data-structures/heap/heap.ts +200 -753
  136. package/src/data-structures/linked-list/doubly-linked-list.ts +153 -809
  137. package/src/data-structures/linked-list/singly-linked-list.ts +122 -749
  138. package/src/data-structures/linked-list/skip-linked-list.ts +211 -864
  139. package/src/data-structures/matrix/matrix.ts +179 -494
  140. package/src/data-structures/matrix/navigator.ts +0 -1
  141. package/src/data-structures/priority-queue/max-priority-queue.ts +1 -6
  142. package/src/data-structures/priority-queue/min-priority-queue.ts +6 -11
  143. package/src/data-structures/priority-queue/priority-queue.ts +1 -2
  144. package/src/data-structures/queue/deque.ts +241 -807
  145. package/src/data-structures/queue/queue.ts +102 -589
  146. package/src/data-structures/stack/stack.ts +76 -475
  147. package/src/data-structures/trie/trie.ts +98 -592
  148. package/src/types/common.ts +0 -10
  149. package/src/types/data-structures/binary-tree/bst.ts +0 -7
  150. package/src/types/data-structures/binary-tree/red-black-tree.ts +0 -1
  151. package/src/types/data-structures/graph/abstract-graph.ts +0 -2
  152. package/src/types/data-structures/hash/hash-map.ts +0 -3
  153. package/src/types/data-structures/hash/index.ts +0 -1
  154. package/src/types/data-structures/matrix/navigator.ts +0 -2
  155. package/src/types/utils/utils.ts +0 -7
  156. package/src/types/utils/validate-type.ts +0 -7
  157. package/src/utils/number.ts +0 -2
  158. package/src/utils/utils.ts +0 -5
@@ -488,6 +488,35 @@ var dataStructureTyped = (() => {
488
488
  for (const ele of this) if (ele === element) return true;
489
489
  return false;
490
490
  }
491
+ /**
492
+ * Check whether a value exists (Array-compatible alias for `has`).
493
+ * @remarks Provided for familiarity when migrating from Array. Time O(n), Space O(1).
494
+ * @param element - Element to search for (uses `===`).
495
+ * @returns `true` if found.
496
+ */
497
+ includes(element) {
498
+ return this.has(element);
499
+ }
500
+ /**
501
+ * Return an iterator of `[index, value]` pairs (Array-compatible).
502
+ * @remarks Provided for familiarity when migrating from Array. Time O(n), Space O(1) per step.
503
+ */
504
+ *entries() {
505
+ let index = 0;
506
+ for (const value of this) {
507
+ yield [index++, value];
508
+ }
509
+ }
510
+ /**
511
+ * Return an iterator of numeric indices (Array-compatible).
512
+ * @remarks Provided for familiarity when migrating from Array. Time O(n), Space O(1) per step.
513
+ */
514
+ *keys() {
515
+ let index = 0;
516
+ for (const _ of this) {
517
+ yield index++;
518
+ }
519
+ }
491
520
  /**
492
521
  * Reduces all elements to a single accumulated value.
493
522
  *
@@ -792,6 +821,16 @@ var dataStructureTyped = (() => {
792
821
  }
793
822
  return this;
794
823
  }
824
+ /**
825
+ * Return a new instance of the same type with elements in reverse order (non-mutating).
826
+ * @remarks Provided for familiarity when migrating from Array (ES2023 `toReversed`). Time O(n), Space O(n).
827
+ * @returns A new reversed instance.
828
+ */
829
+ toReversed() {
830
+ const cloned = this.clone();
831
+ cloned.reverse();
832
+ return cloned;
833
+ }
795
834
  };
796
835
  var LinearLinkedBase = class extends LinearBase {
797
836
  constructor(options) {
@@ -1150,6 +1189,9 @@ var dataStructureTyped = (() => {
1150
1189
 
1151
1190
 
1152
1191
 
1192
+
1193
+
1194
+
1153
1195
 
1154
1196
 
1155
1197
 
@@ -1199,6 +1241,9 @@ var dataStructureTyped = (() => {
1199
1241
 
1200
1242
 
1201
1243
 
1244
+
1245
+
1246
+
1202
1247
 
1203
1248
 
1204
1249
 
@@ -1299,6 +1344,12 @@ var dataStructureTyped = (() => {
1299
1344
 
1300
1345
 
1301
1346
 
1347
+
1348
+
1349
+
1350
+
1351
+
1352
+
1302
1353
 
1303
1354
 
1304
1355
 
@@ -1374,6 +1425,9 @@ var dataStructureTyped = (() => {
1374
1425
 
1375
1426
 
1376
1427
 
1428
+
1429
+
1430
+
1377
1431
 
1378
1432
 
1379
1433
 
@@ -1438,6 +1492,9 @@ var dataStructureTyped = (() => {
1438
1492
 
1439
1493
 
1440
1494
 
1495
+
1496
+
1497
+
1441
1498
 
1442
1499
 
1443
1500
 
@@ -1510,6 +1567,9 @@ var dataStructureTyped = (() => {
1510
1567
 
1511
1568
 
1512
1569
 
1570
+
1571
+
1572
+
1513
1573
 
1514
1574
 
1515
1575
 
@@ -1566,6 +1626,9 @@ var dataStructureTyped = (() => {
1566
1626
 
1567
1627
 
1568
1628
 
1629
+
1630
+
1631
+
1569
1632
 
1570
1633
 
1571
1634
 
@@ -1640,6 +1703,9 @@ var dataStructureTyped = (() => {
1640
1703
 
1641
1704
 
1642
1705
 
1706
+
1707
+
1708
+
1643
1709
 
1644
1710
 
1645
1711
 
@@ -1697,6 +1763,9 @@ var dataStructureTyped = (() => {
1697
1763
 
1698
1764
 
1699
1765
 
1766
+
1767
+
1768
+
1700
1769
 
1701
1770
 
1702
1771
 
@@ -1756,6 +1825,9 @@ var dataStructureTyped = (() => {
1756
1825
 
1757
1826
 
1758
1827
 
1828
+
1829
+
1830
+
1759
1831
 
1760
1832
 
1761
1833
 
@@ -2316,6 +2388,9 @@ var dataStructureTyped = (() => {
2316
2388
 
2317
2389
 
2318
2390
 
2391
+
2392
+
2393
+
2319
2394
 
2320
2395
 
2321
2396
 
@@ -2387,6 +2462,9 @@ var dataStructureTyped = (() => {
2387
2462
 
2388
2463
 
2389
2464
 
2465
+
2466
+
2467
+
2390
2468
 
2391
2469
 
2392
2470
 
@@ -2464,6 +2542,9 @@ var dataStructureTyped = (() => {
2464
2542
 
2465
2543
 
2466
2544
 
2545
+
2546
+
2547
+
2467
2548
 
2468
2549
 
2469
2550
 
@@ -2522,6 +2603,9 @@ var dataStructureTyped = (() => {
2522
2603
 
2523
2604
 
2524
2605
 
2606
+
2607
+
2608
+
2525
2609
 
2526
2610
 
2527
2611
 
@@ -2641,6 +2725,9 @@ var dataStructureTyped = (() => {
2641
2725
 
2642
2726
 
2643
2727
 
2728
+
2729
+
2730
+
2644
2731
 
2645
2732
 
2646
2733
 
@@ -2704,6 +2791,9 @@ var dataStructureTyped = (() => {
2704
2791
 
2705
2792
 
2706
2793
 
2794
+
2795
+
2796
+
2707
2797
 
2708
2798
 
2709
2799
 
@@ -2756,6 +2846,9 @@ var dataStructureTyped = (() => {
2756
2846
 
2757
2847
 
2758
2848
 
2849
+
2850
+
2851
+
2759
2852
 
2760
2853
 
2761
2854
 
@@ -2814,6 +2907,9 @@ var dataStructureTyped = (() => {
2814
2907
 
2815
2908
 
2816
2909
 
2910
+
2911
+
2912
+
2817
2913
 
2818
2914
 
2819
2915
 
@@ -2877,6 +2973,9 @@ var dataStructureTyped = (() => {
2877
2973
 
2878
2974
 
2879
2975
 
2976
+
2977
+
2978
+
2880
2979
 
2881
2980
 
2882
2981
 
@@ -2948,6 +3047,9 @@ var dataStructureTyped = (() => {
2948
3047
 
2949
3048
 
2950
3049
 
3050
+
3051
+
3052
+
2951
3053
 
2952
3054
 
2953
3055
 
@@ -2996,6 +3098,9 @@ var dataStructureTyped = (() => {
2996
3098
 
2997
3099
 
2998
3100
 
3101
+
3102
+
3103
+
2999
3104
 
3000
3105
 
3001
3106
 
@@ -3050,6 +3155,9 @@ var dataStructureTyped = (() => {
3050
3155
 
3051
3156
 
3052
3157
 
3158
+
3159
+
3160
+
3053
3161
 
3054
3162
 
3055
3163
 
@@ -3270,6 +3378,9 @@ var dataStructureTyped = (() => {
3270
3378
 
3271
3379
 
3272
3380
 
3381
+
3382
+
3383
+
3273
3384
 
3274
3385
 
3275
3386
 
@@ -3328,6 +3439,9 @@ var dataStructureTyped = (() => {
3328
3439
 
3329
3440
 
3330
3441
 
3442
+
3443
+
3444
+
3331
3445
 
3332
3446
 
3333
3447
 
@@ -3414,6 +3528,9 @@ var dataStructureTyped = (() => {
3414
3528
 
3415
3529
 
3416
3530
 
3531
+
3532
+
3533
+
3417
3534
 
3418
3535
 
3419
3536
 
@@ -3733,6 +3850,9 @@ var dataStructureTyped = (() => {
3733
3850
 
3734
3851
 
3735
3852
 
3853
+
3854
+
3855
+
3736
3856
 
3737
3857
 
3738
3858
 
@@ -3806,6 +3926,9 @@ var dataStructureTyped = (() => {
3806
3926
 
3807
3927
 
3808
3928
 
3929
+
3930
+
3931
+
3809
3932
 
3810
3933
 
3811
3934
 
@@ -3878,6 +4001,9 @@ var dataStructureTyped = (() => {
3878
4001
 
3879
4002
 
3880
4003
 
4004
+
4005
+
4006
+
3881
4007
 
3882
4008
 
3883
4009
 
@@ -3941,6 +4067,9 @@ var dataStructureTyped = (() => {
3941
4067
 
3942
4068
 
3943
4069
 
4070
+
4071
+
4072
+
3944
4073
 
3945
4074
 
3946
4075
 
@@ -4033,6 +4162,9 @@ var dataStructureTyped = (() => {
4033
4162
 
4034
4163
 
4035
4164
 
4165
+
4166
+
4167
+
4036
4168
 
4037
4169
 
4038
4170
 
@@ -4086,6 +4218,9 @@ var dataStructureTyped = (() => {
4086
4218
 
4087
4219
 
4088
4220
 
4221
+
4222
+
4223
+
4089
4224
 
4090
4225
 
4091
4226
 
@@ -4170,6 +4305,9 @@ var dataStructureTyped = (() => {
4170
4305
 
4171
4306
 
4172
4307
 
4308
+
4309
+
4310
+
4173
4311
 
4174
4312
 
4175
4313
 
@@ -4282,6 +4420,9 @@ var dataStructureTyped = (() => {
4282
4420
 
4283
4421
 
4284
4422
 
4423
+
4424
+
4425
+
4285
4426
 
4286
4427
 
4287
4428
 
@@ -4341,6 +4482,9 @@ var dataStructureTyped = (() => {
4341
4482
 
4342
4483
 
4343
4484
 
4485
+
4486
+
4487
+
4344
4488
 
4345
4489
 
4346
4490
 
@@ -4402,6 +4546,9 @@ var dataStructureTyped = (() => {
4402
4546
 
4403
4547
 
4404
4548
 
4549
+
4550
+
4551
+
4405
4552
 
4406
4553
 
4407
4554
 
@@ -4450,6 +4597,9 @@ var dataStructureTyped = (() => {
4450
4597
 
4451
4598
 
4452
4599
 
4600
+
4601
+
4602
+
4453
4603
 
4454
4604
 
4455
4605
 
@@ -4502,6 +4652,9 @@ var dataStructureTyped = (() => {
4502
4652
 
4503
4653
 
4504
4654
 
4655
+
4656
+
4657
+
4505
4658
 
4506
4659
 
4507
4660
 
@@ -4565,11 +4718,31 @@ var dataStructureTyped = (() => {
4565
4718
  * @example
4566
4719
  * // Find value scanning from tail
4567
4720
  * const list = new DoublyLinkedList<number>([1, 2, 3, 4]);
4568
- * // getBackward scans from tail to head, returns first match
4569
- * const found = list.getBackward(node => node.value < 4);
4721
+ * // findLast scans from tail to head, returns first match
4722
+ * const found = list.findLast(node => node.value < 4);
4570
4723
  * console.log(found); // 3;
4571
4724
  */
4725
+ /**
4726
+ * @deprecated Use `findLast` instead. Will be removed in a future major version.
4727
+ */
4572
4728
  getBackward(elementNodeOrPredicate) {
4729
+ return this.findLast(elementNodeOrPredicate);
4730
+ }
4731
+ /**
4732
+ * Find the first value matching a predicate scanning backward (tail → head).
4733
+ * @remarks Time O(N), Space O(1)
4734
+ * @param elementNodeOrPredicate - Element, node, or predicate to match.
4735
+ * @returns Matching value or undefined.
4736
+
4737
+
4738
+ * @example
4739
+ * // Find value scanning from tail
4740
+ * const list = new DoublyLinkedList<number>([1, 2, 3, 4]);
4741
+ * // findLast scans from tail to head, returns first match
4742
+ * const found = list.findLast(node => node.value < 4);
4743
+ * console.log(found); // 3;
4744
+ */
4745
+ findLast(elementNodeOrPredicate) {
4573
4746
  const predicate = this._ensurePredicate(elementNodeOrPredicate);
4574
4747
  let current = this.tail;
4575
4748
  while (current) {
@@ -4578,6 +4751,22 @@ var dataStructureTyped = (() => {
4578
4751
  }
4579
4752
  return void 0;
4580
4753
  }
4754
+ /**
4755
+ * Find the index of the last value matching a predicate (scans tail → head).
4756
+ * @remarks Provided for familiarity when migrating from Array. Time O(n), Space O(1).
4757
+ * @param predicate - Function called with (value, index, list).
4758
+ * @returns Matching index, or -1 if not found.
4759
+ */
4760
+ findLastIndex(predicate) {
4761
+ let current = this.tail;
4762
+ let index = this.length - 1;
4763
+ while (current) {
4764
+ if (predicate(current.value, index, this)) return index;
4765
+ current = current.prev;
4766
+ index--;
4767
+ }
4768
+ return -1;
4769
+ }
4581
4770
  /**
4582
4771
  * Reverse the list in place.
4583
4772
  * @remarks Time O(N), Space O(1)
@@ -4617,6 +4806,9 @@ var dataStructureTyped = (() => {
4617
4806
 
4618
4807
 
4619
4808
 
4809
+
4810
+
4811
+
4620
4812
 
4621
4813
 
4622
4814
 
@@ -4703,6 +4895,9 @@ var dataStructureTyped = (() => {
4703
4895
 
4704
4896
 
4705
4897
 
4898
+
4899
+
4900
+
4706
4901
 
4707
4902
 
4708
4903
 
@@ -4760,6 +4955,9 @@ var dataStructureTyped = (() => {
4760
4955
 
4761
4956
 
4762
4957
 
4958
+
4959
+
4960
+
4763
4961
 
4764
4962
 
4765
4963
 
@@ -4836,6 +5034,9 @@ var dataStructureTyped = (() => {
4836
5034
 
4837
5035
 
4838
5036
 
5037
+
5038
+
5039
+
4839
5040
 
4840
5041
 
4841
5042
 
@@ -5056,6 +5257,9 @@ var dataStructureTyped = (() => {
5056
5257
 
5057
5258
 
5058
5259
 
5260
+
5261
+
5262
+
5059
5263
 
5060
5264
 
5061
5265
 
@@ -5102,6 +5306,9 @@ var dataStructureTyped = (() => {
5102
5306
 
5103
5307
 
5104
5308
 
5309
+
5310
+
5311
+
5105
5312
 
5106
5313
 
5107
5314
 
@@ -5151,6 +5358,9 @@ var dataStructureTyped = (() => {
5151
5358
 
5152
5359
 
5153
5360
 
5361
+
5362
+
5363
+
5154
5364
 
5155
5365
 
5156
5366
 
@@ -5208,6 +5418,9 @@ var dataStructureTyped = (() => {
5208
5418
 
5209
5419
 
5210
5420
 
5421
+
5422
+
5423
+
5211
5424
 
5212
5425
 
5213
5426
 
@@ -5290,6 +5503,9 @@ var dataStructureTyped = (() => {
5290
5503
 
5291
5504
 
5292
5505
 
5506
+
5507
+
5508
+
5293
5509
 
5294
5510
 
5295
5511
 
@@ -5357,6 +5573,9 @@ var dataStructureTyped = (() => {
5357
5573
 
5358
5574
 
5359
5575
 
5576
+
5577
+
5578
+
5360
5579
 
5361
5580
 
5362
5581
 
@@ -5407,6 +5626,9 @@ var dataStructureTyped = (() => {
5407
5626
 
5408
5627
 
5409
5628
 
5629
+
5630
+
5631
+
5410
5632
 
5411
5633
 
5412
5634
 
@@ -5477,6 +5699,9 @@ var dataStructureTyped = (() => {
5477
5699
 
5478
5700
 
5479
5701
 
5702
+
5703
+
5704
+
5480
5705
 
5481
5706
 
5482
5707
 
@@ -5527,6 +5752,9 @@ var dataStructureTyped = (() => {
5527
5752
 
5528
5753
 
5529
5754
 
5755
+
5756
+
5757
+
5530
5758
 
5531
5759
 
5532
5760
 
@@ -5579,6 +5807,9 @@ var dataStructureTyped = (() => {
5579
5807
 
5580
5808
 
5581
5809
 
5810
+
5811
+
5812
+
5582
5813
 
5583
5814
 
5584
5815
 
@@ -5629,6 +5860,9 @@ var dataStructureTyped = (() => {
5629
5860
 
5630
5861
 
5631
5862
 
5863
+
5864
+
5865
+
5632
5866
 
5633
5867
 
5634
5868
 
@@ -5682,6 +5916,9 @@ var dataStructureTyped = (() => {
5682
5916
 
5683
5917
 
5684
5918
 
5919
+
5920
+
5921
+
5685
5922
 
5686
5923
 
5687
5924
 
@@ -5740,6 +5977,9 @@ var dataStructureTyped = (() => {
5740
5977
 
5741
5978
 
5742
5979
 
5980
+
5981
+
5982
+
5743
5983
 
5744
5984
 
5745
5985
 
@@ -5796,6 +6036,9 @@ var dataStructureTyped = (() => {
5796
6036
 
5797
6037
 
5798
6038
 
6039
+
6040
+
6041
+
5799
6042
 
5800
6043
 
5801
6044
 
@@ -5851,6 +6094,9 @@ var dataStructureTyped = (() => {
5851
6094
 
5852
6095
 
5853
6096
 
6097
+
6098
+
6099
+
5854
6100
 
5855
6101
 
5856
6102
 
@@ -5912,6 +6158,9 @@ var dataStructureTyped = (() => {
5912
6158
 
5913
6159
 
5914
6160
 
6161
+
6162
+
6163
+
5915
6164
 
5916
6165
 
5917
6166
 
@@ -5981,6 +6230,9 @@ var dataStructureTyped = (() => {
5981
6230
 
5982
6231
 
5983
6232
 
6233
+
6234
+
6235
+
5984
6236
 
5985
6237
 
5986
6238
 
@@ -6034,6 +6286,9 @@ var dataStructureTyped = (() => {
6034
6286
 
6035
6287
 
6036
6288
 
6289
+
6290
+
6291
+
6037
6292
 
6038
6293
 
6039
6294
 
@@ -6171,6 +6426,9 @@ var dataStructureTyped = (() => {
6171
6426
 
6172
6427
 
6173
6428
 
6429
+
6430
+
6431
+
6174
6432
 
6175
6433
 
6176
6434
 
@@ -6235,6 +6493,9 @@ var dataStructureTyped = (() => {
6235
6493
 
6236
6494
 
6237
6495
 
6496
+
6497
+
6498
+
6238
6499
 
6239
6500
 
6240
6501
 
@@ -6288,6 +6549,9 @@ var dataStructureTyped = (() => {
6288
6549
 
6289
6550
 
6290
6551
 
6552
+
6553
+
6554
+
6291
6555
 
6292
6556
 
6293
6557
 
@@ -6341,6 +6605,9 @@ var dataStructureTyped = (() => {
6341
6605
 
6342
6606
 
6343
6607
 
6608
+
6609
+
6610
+
6344
6611
 
6345
6612
 
6346
6613
 
@@ -6403,6 +6670,9 @@ var dataStructureTyped = (() => {
6403
6670
 
6404
6671
 
6405
6672
 
6673
+
6674
+
6675
+
6406
6676
 
6407
6677
 
6408
6678
 
@@ -6480,6 +6750,9 @@ var dataStructureTyped = (() => {
6480
6750
 
6481
6751
 
6482
6752
 
6753
+
6754
+
6755
+
6483
6756
 
6484
6757
 
6485
6758
 
@@ -6557,6 +6830,9 @@ var dataStructureTyped = (() => {
6557
6830
 
6558
6831
 
6559
6832
 
6833
+
6834
+
6835
+
6560
6836
 
6561
6837
 
6562
6838
 
@@ -6607,6 +6883,9 @@ var dataStructureTyped = (() => {
6607
6883
 
6608
6884
 
6609
6885
 
6886
+
6887
+
6888
+
6610
6889
 
6611
6890
 
6612
6891
 
@@ -6663,6 +6942,9 @@ var dataStructureTyped = (() => {
6663
6942
 
6664
6943
 
6665
6944
 
6945
+
6946
+
6947
+
6666
6948
 
6667
6949
 
6668
6950
 
@@ -6739,6 +7021,9 @@ var dataStructureTyped = (() => {
6739
7021
 
6740
7022
 
6741
7023
 
7024
+
7025
+
7026
+
6742
7027
 
6743
7028
 
6744
7029
 
@@ -6903,6 +7188,9 @@ var dataStructureTyped = (() => {
6903
7188
 
6904
7189
 
6905
7190
 
7191
+
7192
+
7193
+
6906
7194
 
6907
7195
 
6908
7196
 
@@ -6957,6 +7245,9 @@ var dataStructureTyped = (() => {
6957
7245
 
6958
7246
 
6959
7247
 
7248
+
7249
+
7250
+
6960
7251
 
6961
7252
 
6962
7253
 
@@ -7035,6 +7326,9 @@ var dataStructureTyped = (() => {
7035
7326
 
7036
7327
 
7037
7328
 
7329
+
7330
+
7331
+
7038
7332
 
7039
7333
 
7040
7334
 
@@ -7101,6 +7395,9 @@ var dataStructureTyped = (() => {
7101
7395
 
7102
7396
 
7103
7397
 
7398
+
7399
+
7400
+
7104
7401
 
7105
7402
 
7106
7403
 
@@ -7174,6 +7471,9 @@ var dataStructureTyped = (() => {
7174
7471
 
7175
7472
 
7176
7473
 
7474
+
7475
+
7476
+
7177
7477
 
7178
7478
 
7179
7479
 
@@ -7237,6 +7537,9 @@ var dataStructureTyped = (() => {
7237
7537
 
7238
7538
 
7239
7539
 
7540
+
7541
+
7542
+
7240
7543
 
7241
7544
 
7242
7545
 
@@ -7293,6 +7596,9 @@ var dataStructureTyped = (() => {
7293
7596
 
7294
7597
 
7295
7598
 
7599
+
7600
+
7601
+
7296
7602
 
7297
7603
 
7298
7604
 
@@ -7405,6 +7711,9 @@ var dataStructureTyped = (() => {
7405
7711
 
7406
7712
 
7407
7713
 
7714
+
7715
+
7716
+
7408
7717
 
7409
7718
 
7410
7719
 
@@ -7455,6 +7764,9 @@ var dataStructureTyped = (() => {
7455
7764
 
7456
7765
 
7457
7766
 
7767
+
7768
+
7769
+
7458
7770
 
7459
7771
 
7460
7772
 
@@ -7528,6 +7840,9 @@ var dataStructureTyped = (() => {
7528
7840
 
7529
7841
 
7530
7842
 
7843
+
7844
+
7845
+
7531
7846
 
7532
7847
 
7533
7848
 
@@ -7585,6 +7900,9 @@ var dataStructureTyped = (() => {
7585
7900
 
7586
7901
 
7587
7902
 
7903
+
7904
+
7905
+
7588
7906
 
7589
7907
 
7590
7908
 
@@ -7646,6 +7964,9 @@ var dataStructureTyped = (() => {
7646
7964
 
7647
7965
 
7648
7966
 
7967
+
7968
+
7969
+
7649
7970
 
7650
7971
 
7651
7972
 
@@ -7944,7 +8265,10 @@ var dataStructureTyped = (() => {
7944
8265
  }
7945
8266
  /**
7946
8267
  * Deque peek at both ends
7947
- * @example
8268
+
8269
+
8270
+
8271
+ * @example
7948
8272
  * // Deque peek at both ends
7949
8273
  * const deque = new Deque<number>([10, 20, 30, 40, 50]);
7950
8274
  *
@@ -8002,6 +8326,9 @@ var dataStructureTyped = (() => {
8002
8326
 
8003
8327
 
8004
8328
 
8329
+
8330
+
8331
+
8005
8332
 
8006
8333
 
8007
8334
 
@@ -8069,6 +8396,9 @@ var dataStructureTyped = (() => {
8069
8396
 
8070
8397
 
8071
8398
 
8399
+
8400
+
8401
+
8072
8402
 
8073
8403
 
8074
8404
 
@@ -8149,6 +8479,9 @@ var dataStructureTyped = (() => {
8149
8479
 
8150
8480
 
8151
8481
 
8482
+
8483
+
8484
+
8152
8485
 
8153
8486
 
8154
8487
 
@@ -8216,6 +8549,9 @@ var dataStructureTyped = (() => {
8216
8549
 
8217
8550
 
8218
8551
 
8552
+
8553
+
8554
+
8219
8555
 
8220
8556
 
8221
8557
 
@@ -8284,6 +8620,9 @@ var dataStructureTyped = (() => {
8284
8620
 
8285
8621
 
8286
8622
 
8623
+
8624
+
8625
+
8287
8626
 
8288
8627
 
8289
8628
 
@@ -8393,6 +8732,9 @@ var dataStructureTyped = (() => {
8393
8732
 
8394
8733
 
8395
8734
 
8735
+
8736
+
8737
+
8396
8738
 
8397
8739
 
8398
8740
 
@@ -8442,6 +8784,9 @@ var dataStructureTyped = (() => {
8442
8784
 
8443
8785
 
8444
8786
 
8787
+
8788
+
8789
+
8445
8790
 
8446
8791
 
8447
8792
 
@@ -8495,6 +8840,9 @@ var dataStructureTyped = (() => {
8495
8840
 
8496
8841
 
8497
8842
 
8843
+
8844
+
8845
+
8498
8846
 
8499
8847
 
8500
8848
 
@@ -8699,6 +9047,9 @@ var dataStructureTyped = (() => {
8699
9047
 
8700
9048
 
8701
9049
 
9050
+
9051
+
9052
+
8702
9053
 
8703
9054
 
8704
9055
 
@@ -8793,6 +9144,64 @@ var dataStructureTyped = (() => {
8793
9144
 
8794
9145
 
8795
9146
 
9147
+
9148
+ * @example
9149
+ * // Deque for...of iteration and reverse
9150
+ * const deque = new Deque<string>(['A', 'B', 'C', 'D']);
9151
+ *
9152
+ * // Iterate forward
9153
+ * const forward: string[] = [];
9154
+ * for (const item of deque) {
9155
+ * forward.push(item);
9156
+ * }
9157
+ * console.log(forward); // ['A', 'B', 'C', 'D'];
9158
+ *
9159
+ * // Reverse the deque
9160
+ * deque.reverse();
9161
+ * const backward: string[] = [];
9162
+ * for (const item of deque) {
9163
+ * backward.push(item);
9164
+ * }
9165
+ * console.log(backward); // ['D', 'C', 'B', 'A'];
9166
+ */
9167
+ /**
9168
+ * Find the last value matching a predicate (scans back-to-front).
9169
+ * @remarks Provided for familiarity when migrating from Array. Time O(n), Space O(1).
9170
+ * @param predicate - Function called with (value, index, deque).
9171
+ * @returns Matching value or undefined.
9172
+ * @example
9173
+ * // Find last matching value
9174
+ * const d = new Deque([1, 2, 3, 4, 5]);
9175
+ * console.log(d.findLast(v => v > 2)); // 5;
9176
+ * console.log(d.findLast(v => v % 2 === 0)); // 4;
9177
+ */
9178
+ findLast(predicate) {
9179
+ for (let i = this.length - 1; i >= 0; i--) {
9180
+ const val = this.at(i);
9181
+ if (predicate(val, i, this)) return val;
9182
+ }
9183
+ return void 0;
9184
+ }
9185
+ /**
9186
+ * Find the index of the last value matching a predicate (scans back-to-front).
9187
+ * @remarks Provided for familiarity when migrating from Array. Time O(n), Space O(1).
9188
+ * @param predicate - Function called with (value, index, deque).
9189
+ * @returns Matching index, or -1 if not found.
9190
+ * @example
9191
+ * // Find last matching index
9192
+ * const d = new Deque([10, 20, 30, 20, 10]);
9193
+ * console.log(d.findLastIndex(v => v === 20)); // 3;
9194
+ * console.log(d.findLastIndex(v => v === 10)); // 4;
9195
+ */
9196
+ findLastIndex(predicate) {
9197
+ for (let i = this.length - 1; i >= 0; i--) {
9198
+ if (predicate(this.at(i), i, this)) return i;
9199
+ }
9200
+ return -1;
9201
+ }
9202
+ /**
9203
+ * Deque for...of iteration and reverse
9204
+
8796
9205
 
8797
9206
  * @example
8798
9207
  * // Deque for...of iteration and reverse
@@ -8906,6 +9315,9 @@ var dataStructureTyped = (() => {
8906
9315
 
8907
9316
 
8908
9317
 
9318
+
9319
+
9320
+
8909
9321
 
8910
9322
 
8911
9323
 
@@ -8981,6 +9393,9 @@ var dataStructureTyped = (() => {
8981
9393
 
8982
9394
 
8983
9395
 
9396
+
9397
+
9398
+
8984
9399
 
8985
9400
 
8986
9401
 
@@ -9039,6 +9454,9 @@ var dataStructureTyped = (() => {
9039
9454
 
9040
9455
 
9041
9456
 
9457
+
9458
+
9459
+
9042
9460
 
9043
9461
 
9044
9462
 
@@ -9117,6 +9535,9 @@ var dataStructureTyped = (() => {
9117
9535
 
9118
9536
 
9119
9537
 
9538
+
9539
+
9540
+
9120
9541
 
9121
9542
 
9122
9543
 
@@ -9325,6 +9746,9 @@ var dataStructureTyped = (() => {
9325
9746
 
9326
9747
 
9327
9748
 
9749
+
9750
+
9751
+
9328
9752
 
9329
9753
 
9330
9754
 
@@ -9416,6 +9840,9 @@ var dataStructureTyped = (() => {
9416
9840
 
9417
9841
 
9418
9842
 
9843
+
9844
+
9845
+
9419
9846
 
9420
9847
 
9421
9848
 
@@ -9477,6 +9904,9 @@ var dataStructureTyped = (() => {
9477
9904
 
9478
9905
 
9479
9906
 
9907
+
9908
+
9909
+
9480
9910
 
9481
9911
 
9482
9912
 
@@ -9571,6 +10001,9 @@ var dataStructureTyped = (() => {
9571
10001
  */
9572
10002
  /**
9573
10003
  * @deprecated Use `pop` instead. Will be removed in a future major version.
10004
+
10005
+
10006
+
9574
10007
  * @example
9575
10008
  * // Heap with custom comparator (MaxHeap behavior)
9576
10009
  * interface Task {
@@ -9654,6 +10087,9 @@ var dataStructureTyped = (() => {
9654
10087
 
9655
10088
 
9656
10089
 
10090
+
10091
+
10092
+
9657
10093
 
9658
10094
 
9659
10095
 
@@ -9758,6 +10194,9 @@ var dataStructureTyped = (() => {
9758
10194
 
9759
10195
 
9760
10196
 
10197
+
10198
+
10199
+
9761
10200
 
9762
10201
 
9763
10202
 
@@ -9809,6 +10248,9 @@ var dataStructureTyped = (() => {
9809
10248
 
9810
10249
 
9811
10250
 
10251
+
10252
+
10253
+
9812
10254
 
9813
10255
 
9814
10256
 
@@ -9853,6 +10295,9 @@ var dataStructureTyped = (() => {
9853
10295
 
9854
10296
 
9855
10297
 
10298
+
10299
+
10300
+
9856
10301
 
9857
10302
 
9858
10303
 
@@ -9904,6 +10349,9 @@ var dataStructureTyped = (() => {
9904
10349
 
9905
10350
 
9906
10351
 
10352
+
10353
+
10354
+
9907
10355
 
9908
10356
 
9909
10357
 
@@ -10007,6 +10455,9 @@ var dataStructureTyped = (() => {
10007
10455
 
10008
10456
 
10009
10457
 
10458
+
10459
+
10460
+
10010
10461
 
10011
10462
 
10012
10463
 
@@ -10091,6 +10542,9 @@ var dataStructureTyped = (() => {
10091
10542
 
10092
10543
 
10093
10544
 
10545
+
10546
+
10547
+
10094
10548
 
10095
10549
 
10096
10550
 
@@ -10148,6 +10602,9 @@ var dataStructureTyped = (() => {
10148
10602
 
10149
10603
 
10150
10604
 
10605
+
10606
+
10607
+
10151
10608
 
10152
10609
 
10153
10610
 
@@ -10204,6 +10661,9 @@ var dataStructureTyped = (() => {
10204
10661
 
10205
10662
 
10206
10663
 
10664
+
10665
+
10666
+
10207
10667
 
10208
10668
 
10209
10669
 
@@ -10267,6 +10727,9 @@ var dataStructureTyped = (() => {
10267
10727
 
10268
10728
 
10269
10729
 
10730
+
10731
+
10732
+
10270
10733
 
10271
10734
 
10272
10735
 
@@ -11675,6 +12138,9 @@ var dataStructureTyped = (() => {
11675
12138
 
11676
12139
 
11677
12140
 
12141
+
12142
+
12143
+
11678
12144
 
11679
12145
 
11680
12146
 
@@ -11767,6 +12233,9 @@ var dataStructureTyped = (() => {
11767
12233
 
11768
12234
 
11769
12235
 
12236
+
12237
+
12238
+
11770
12239
 
11771
12240
 
11772
12241
 
@@ -11857,6 +12326,9 @@ var dataStructureTyped = (() => {
11857
12326
 
11858
12327
 
11859
12328
 
12329
+
12330
+
12331
+
11860
12332
 
11861
12333
 
11862
12334
 
@@ -11938,6 +12410,9 @@ var dataStructureTyped = (() => {
11938
12410
 
11939
12411
 
11940
12412
 
12413
+
12414
+
12415
+
11941
12416
 
11942
12417
 
11943
12418
 
@@ -11996,6 +12471,9 @@ var dataStructureTyped = (() => {
11996
12471
 
11997
12472
 
11998
12473
 
12474
+
12475
+
12476
+
11999
12477
 
12000
12478
 
12001
12479
 
@@ -12107,6 +12585,9 @@ var dataStructureTyped = (() => {
12107
12585
 
12108
12586
 
12109
12587
 
12588
+
12589
+
12590
+
12110
12591
 
12111
12592
 
12112
12593
 
@@ -12199,6 +12680,9 @@ var dataStructureTyped = (() => {
12199
12680
 
12200
12681
 
12201
12682
 
12683
+
12684
+
12685
+
12202
12686
 
12203
12687
 
12204
12688
 
@@ -12253,6 +12737,9 @@ var dataStructureTyped = (() => {
12253
12737
 
12254
12738
 
12255
12739
 
12740
+
12741
+
12742
+
12256
12743
 
12257
12744
 
12258
12745
 
@@ -12360,6 +12847,9 @@ var dataStructureTyped = (() => {
12360
12847
 
12361
12848
 
12362
12849
 
12850
+
12851
+
12852
+
12363
12853
 
12364
12854
 
12365
12855
 
@@ -12470,6 +12960,9 @@ var dataStructureTyped = (() => {
12470
12960
 
12471
12961
 
12472
12962
 
12963
+
12964
+
12965
+
12473
12966
 
12474
12967
 
12475
12968
 
@@ -12638,6 +13131,9 @@ var dataStructureTyped = (() => {
12638
13131
 
12639
13132
 
12640
13133
 
13134
+
13135
+
13136
+
12641
13137
 
12642
13138
 
12643
13139
 
@@ -12727,6 +13223,9 @@ var dataStructureTyped = (() => {
12727
13223
 
12728
13224
 
12729
13225
 
13226
+
13227
+
13228
+
12730
13229
 
12731
13230
 
12732
13231
 
@@ -12815,6 +13314,9 @@ var dataStructureTyped = (() => {
12815
13314
 
12816
13315
 
12817
13316
 
13317
+
13318
+
13319
+
12818
13320
 
12819
13321
 
12820
13322
 
@@ -12918,6 +13420,9 @@ var dataStructureTyped = (() => {
12918
13420
 
12919
13421
 
12920
13422
 
13423
+
13424
+
13425
+
12921
13426
 
12922
13427
 
12923
13428
 
@@ -12976,6 +13481,9 @@ var dataStructureTyped = (() => {
12976
13481
 
12977
13482
 
12978
13483
 
13484
+
13485
+
13486
+
12979
13487
 
12980
13488
 
12981
13489
 
@@ -13104,6 +13612,9 @@ var dataStructureTyped = (() => {
13104
13612
 
13105
13613
 
13106
13614
 
13615
+
13616
+
13617
+
13107
13618
 
13108
13619
 
13109
13620
 
@@ -13254,6 +13765,9 @@ var dataStructureTyped = (() => {
13254
13765
 
13255
13766
 
13256
13767
 
13768
+
13769
+
13770
+
13257
13771
 
13258
13772
 
13259
13773
 
@@ -13326,6 +13840,9 @@ var dataStructureTyped = (() => {
13326
13840
 
13327
13841
 
13328
13842
 
13843
+
13844
+
13845
+
13329
13846
 
13330
13847
 
13331
13848
 
@@ -13380,6 +13897,9 @@ var dataStructureTyped = (() => {
13380
13897
 
13381
13898
 
13382
13899
 
13900
+
13901
+
13902
+
13383
13903
 
13384
13904
 
13385
13905
 
@@ -13937,6 +14457,9 @@ var dataStructureTyped = (() => {
13937
14457
 
13938
14458
 
13939
14459
 
14460
+
14461
+
14462
+
13940
14463
 
13941
14464
 
13942
14465
 
@@ -13995,6 +14518,9 @@ var dataStructureTyped = (() => {
13995
14518
 
13996
14519
 
13997
14520
 
14521
+
14522
+
14523
+
13998
14524
 
13999
14525
 
14000
14526
 
@@ -14105,6 +14631,9 @@ var dataStructureTyped = (() => {
14105
14631
 
14106
14632
 
14107
14633
 
14634
+
14635
+
14636
+
14108
14637
 
14109
14638
 
14110
14639
 
@@ -14151,6 +14680,9 @@ var dataStructureTyped = (() => {
14151
14680
 
14152
14681
 
14153
14682
 
14683
+
14684
+
14685
+
14154
14686
 
14155
14687
 
14156
14688
 
@@ -14218,6 +14750,9 @@ var dataStructureTyped = (() => {
14218
14750
 
14219
14751
 
14220
14752
 
14753
+
14754
+
14755
+
14221
14756
 
14222
14757
 
14223
14758
 
@@ -14324,6 +14859,9 @@ var dataStructureTyped = (() => {
14324
14859
 
14325
14860
 
14326
14861
 
14862
+
14863
+
14864
+
14327
14865
 
14328
14866
 
14329
14867
 
@@ -14428,6 +14966,9 @@ var dataStructureTyped = (() => {
14428
14966
 
14429
14967
 
14430
14968
 
14969
+
14970
+
14971
+
14431
14972
 
14432
14973
 
14433
14974
 
@@ -14490,6 +15031,9 @@ var dataStructureTyped = (() => {
14490
15031
 
14491
15032
 
14492
15033
 
15034
+
15035
+
15036
+
14493
15037
 
14494
15038
 
14495
15039
 
@@ -14555,6 +15099,9 @@ var dataStructureTyped = (() => {
14555
15099
 
14556
15100
 
14557
15101
 
15102
+
15103
+
15104
+
14558
15105
 
14559
15106
 
14560
15107
 
@@ -14607,6 +15154,9 @@ var dataStructureTyped = (() => {
14607
15154
 
14608
15155
 
14609
15156
 
15157
+
15158
+
15159
+
14610
15160
 
14611
15161
 
14612
15162
 
@@ -14668,6 +15218,9 @@ var dataStructureTyped = (() => {
14668
15218
 
14669
15219
 
14670
15220
 
15221
+
15222
+
15223
+
14671
15224
 
14672
15225
 
14673
15226
 
@@ -14756,6 +15309,9 @@ var dataStructureTyped = (() => {
14756
15309
 
14757
15310
 
14758
15311
 
15312
+
15313
+
15314
+
14759
15315
 
14760
15316
 
14761
15317
 
@@ -14821,6 +15377,9 @@ var dataStructureTyped = (() => {
14821
15377
 
14822
15378
 
14823
15379
 
15380
+
15381
+
15382
+
14824
15383
 
14825
15384
 
14826
15385
 
@@ -15302,6 +15861,9 @@ var dataStructureTyped = (() => {
15302
15861
 
15303
15862
 
15304
15863
 
15864
+
15865
+
15866
+
15305
15867
 
15306
15868
 
15307
15869
 
@@ -15358,6 +15920,9 @@ var dataStructureTyped = (() => {
15358
15920
 
15359
15921
 
15360
15922
 
15923
+
15924
+
15925
+
15361
15926
 
15362
15927
 
15363
15928
 
@@ -15418,6 +15983,9 @@ var dataStructureTyped = (() => {
15418
15983
 
15419
15984
 
15420
15985
 
15986
+
15987
+
15988
+
15421
15989
 
15422
15990
 
15423
15991
 
@@ -15503,6 +16071,9 @@ var dataStructureTyped = (() => {
15503
16071
 
15504
16072
 
15505
16073
 
16074
+
16075
+
16076
+
15506
16077
 
15507
16078
 
15508
16079
 
@@ -16320,6 +16891,12 @@ var dataStructureTyped = (() => {
16320
16891
 
16321
16892
 
16322
16893
 
16894
+
16895
+
16896
+
16897
+
16898
+
16899
+
16323
16900
 
16324
16901
 
16325
16902
 
@@ -16667,6 +17244,15 @@ var dataStructureTyped = (() => {
16667
17244
 
16668
17245
 
16669
17246
 
17247
+
17248
+
17249
+
17250
+
17251
+
17252
+
17253
+
17254
+
17255
+
16670
17256
 
16671
17257
 
16672
17258
 
@@ -16793,6 +17379,12 @@ var dataStructureTyped = (() => {
16793
17379
 
16794
17380
 
16795
17381
 
17382
+
17383
+
17384
+
17385
+
17386
+
17387
+
16796
17388
 
16797
17389
 
16798
17390
 
@@ -17087,6 +17679,9 @@ var dataStructureTyped = (() => {
17087
17679
 
17088
17680
 
17089
17681
 
17682
+
17683
+
17684
+
17090
17685
 
17091
17686
 
17092
17687
 
@@ -17160,6 +17755,9 @@ var dataStructureTyped = (() => {
17160
17755
 
17161
17756
 
17162
17757
 
17758
+
17759
+
17760
+
17163
17761
 
17164
17762
 
17165
17763
 
@@ -17287,6 +17885,12 @@ var dataStructureTyped = (() => {
17287
17885
 
17288
17886
 
17289
17887
 
17888
+
17889
+
17890
+
17891
+
17892
+
17893
+
17290
17894
 
17291
17895
 
17292
17896
 
@@ -17987,6 +18591,12 @@ var dataStructureTyped = (() => {
17987
18591
 
17988
18592
 
17989
18593
 
18594
+
18595
+
18596
+
18597
+
18598
+
18599
+
17990
18600
 
17991
18601
 
17992
18602
 
@@ -18071,6 +18681,12 @@ var dataStructureTyped = (() => {
18071
18681
 
18072
18682
 
18073
18683
 
18684
+
18685
+
18686
+
18687
+
18688
+
18689
+
18074
18690
 
18075
18691
 
18076
18692
 
@@ -18155,6 +18771,12 @@ var dataStructureTyped = (() => {
18155
18771
 
18156
18772
 
18157
18773
 
18774
+
18775
+
18776
+
18777
+
18778
+
18779
+
18158
18780
 
18159
18781
 
18160
18782
 
@@ -18239,6 +18861,12 @@ var dataStructureTyped = (() => {
18239
18861
 
18240
18862
 
18241
18863
 
18864
+
18865
+
18866
+
18867
+
18868
+
18869
+
18242
18870
 
18243
18871
 
18244
18872
 
@@ -18321,6 +18949,12 @@ var dataStructureTyped = (() => {
18321
18949
 
18322
18950
 
18323
18951
 
18952
+
18953
+
18954
+
18955
+
18956
+
18957
+
18324
18958
 
18325
18959
 
18326
18960
 
@@ -18410,6 +19044,12 @@ var dataStructureTyped = (() => {
18410
19044
 
18411
19045
 
18412
19046
 
19047
+
19048
+
19049
+
19050
+
19051
+
19052
+
18413
19053
 
18414
19054
 
18415
19055
 
@@ -18467,6 +19107,9 @@ var dataStructureTyped = (() => {
18467
19107
 
18468
19108
 
18469
19109
 
19110
+
19111
+
19112
+
18470
19113
 
18471
19114
 
18472
19115
 
@@ -18532,6 +19175,9 @@ var dataStructureTyped = (() => {
18532
19175
 
18533
19176
 
18534
19177
 
19178
+
19179
+
19180
+
18535
19181
 
18536
19182
 
18537
19183
 
@@ -18697,6 +19343,9 @@ var dataStructureTyped = (() => {
18697
19343
 
18698
19344
 
18699
19345
 
19346
+
19347
+
19348
+
18700
19349
 
18701
19350
 
18702
19351
 
@@ -18773,6 +19422,9 @@ var dataStructureTyped = (() => {
18773
19422
 
18774
19423
 
18775
19424
 
19425
+
19426
+
19427
+
18776
19428
 
18777
19429
 
18778
19430
 
@@ -18843,6 +19495,9 @@ var dataStructureTyped = (() => {
18843
19495
 
18844
19496
 
18845
19497
 
19498
+
19499
+
19500
+
18846
19501
 
18847
19502
 
18848
19503
 
@@ -18920,6 +19575,9 @@ var dataStructureTyped = (() => {
18920
19575
 
18921
19576
 
18922
19577
 
19578
+
19579
+
19580
+
18923
19581
 
18924
19582
 
18925
19583
 
@@ -18975,6 +19633,9 @@ var dataStructureTyped = (() => {
18975
19633
 
18976
19634
 
18977
19635
 
19636
+
19637
+
19638
+
18978
19639
 
18979
19640
 
18980
19641
 
@@ -19056,6 +19717,9 @@ var dataStructureTyped = (() => {
19056
19717
 
19057
19718
 
19058
19719
 
19720
+
19721
+
19722
+
19059
19723
 
19060
19724
 
19061
19725
 
@@ -19454,6 +20118,18 @@ var dataStructureTyped = (() => {
19454
20118
 
19455
20119
 
19456
20120
 
20121
+
20122
+
20123
+
20124
+
20125
+
20126
+
20127
+
20128
+
20129
+
20130
+
20131
+
20132
+
19457
20133
 
19458
20134
 
19459
20135
 
@@ -19593,6 +20269,15 @@ var dataStructureTyped = (() => {
19593
20269
 
19594
20270
 
19595
20271
 
20272
+
20273
+
20274
+
20275
+
20276
+
20277
+
20278
+
20279
+
20280
+
19596
20281
 
19597
20282
 
19598
20283
 
@@ -19687,6 +20372,12 @@ var dataStructureTyped = (() => {
19687
20372
 
19688
20373
 
19689
20374
 
20375
+
20376
+
20377
+
20378
+
20379
+
20380
+
19690
20381
 
19691
20382
 
19692
20383
 
@@ -19832,6 +20523,15 @@ var dataStructureTyped = (() => {
19832
20523
 
19833
20524
 
19834
20525
 
20526
+
20527
+
20528
+
20529
+
20530
+
20531
+
20532
+
20533
+
20534
+
19835
20535
 
19836
20536
 
19837
20537
 
@@ -20461,6 +21161,18 @@ var dataStructureTyped = (() => {
20461
21161
 
20462
21162
 
20463
21163
 
21164
+
21165
+
21166
+
21167
+
21168
+
21169
+
21170
+
21171
+
21172
+
21173
+
21174
+
21175
+
20464
21176
 
20465
21177
 
20466
21178
 
@@ -20955,6 +21667,18 @@ var dataStructureTyped = (() => {
20955
21667
 
20956
21668
 
20957
21669
 
21670
+
21671
+
21672
+
21673
+
21674
+
21675
+
21676
+
21677
+
21678
+
21679
+
21680
+
21681
+
20958
21682
 
20959
21683
 
20960
21684
 
@@ -21170,6 +21894,18 @@ var dataStructureTyped = (() => {
21170
21894
 
21171
21895
 
21172
21896
 
21897
+
21898
+
21899
+
21900
+
21901
+
21902
+
21903
+
21904
+
21905
+
21906
+
21907
+
21908
+
21173
21909
 
21174
21910
 
21175
21911
 
@@ -21369,6 +22105,15 @@ var dataStructureTyped = (() => {
21369
22105
 
21370
22106
 
21371
22107
 
22108
+
22109
+
22110
+
22111
+
22112
+
22113
+
22114
+
22115
+
22116
+
21372
22117
 
21373
22118
 
21374
22119
 
@@ -21534,6 +22279,18 @@ var dataStructureTyped = (() => {
21534
22279
 
21535
22280
 
21536
22281
 
22282
+
22283
+
22284
+
22285
+
22286
+
22287
+
22288
+
22289
+
22290
+
22291
+
22292
+
22293
+
21537
22294
 
21538
22295
 
21539
22296
 
@@ -22068,6 +22825,21 @@ var dataStructureTyped = (() => {
22068
22825
 
22069
22826
 
22070
22827
 
22828
+
22829
+
22830
+
22831
+
22832
+
22833
+
22834
+
22835
+
22836
+
22837
+
22838
+
22839
+
22840
+
22841
+
22842
+
22071
22843
 
22072
22844
 
22073
22845
 
@@ -22272,6 +23044,21 @@ var dataStructureTyped = (() => {
22272
23044
 
22273
23045
 
22274
23046
 
23047
+
23048
+
23049
+
23050
+
23051
+
23052
+
23053
+
23054
+
23055
+
23056
+
23057
+
23058
+
23059
+
23060
+
23061
+
22275
23062
 
22276
23063
 
22277
23064
 
@@ -22317,6 +23104,18 @@ var dataStructureTyped = (() => {
22317
23104
 
22318
23105
 
22319
23106
 
23107
+
23108
+
23109
+
23110
+
23111
+
23112
+
23113
+
23114
+
23115
+
23116
+
23117
+
23118
+
22320
23119
 
22321
23120
 
22322
23121
 
@@ -22516,6 +23315,21 @@ var dataStructureTyped = (() => {
22516
23315
 
22517
23316
 
22518
23317
 
23318
+
23319
+
23320
+
23321
+
23322
+
23323
+
23324
+
23325
+
23326
+
23327
+
23328
+
23329
+
23330
+
23331
+
23332
+
22519
23333
 
22520
23334
 
22521
23335
 
@@ -22720,6 +23534,21 @@ var dataStructureTyped = (() => {
22720
23534
 
22721
23535
 
22722
23536
 
23537
+
23538
+
23539
+
23540
+
23541
+
23542
+
23543
+
23544
+
23545
+
23546
+
23547
+
23548
+
23549
+
23550
+
23551
+
22723
23552
 
22724
23553
 
22725
23554
 
@@ -22929,6 +23758,21 @@ var dataStructureTyped = (() => {
22929
23758
 
22930
23759
 
22931
23760
 
23761
+
23762
+
23763
+
23764
+
23765
+
23766
+
23767
+
23768
+
23769
+
23770
+
23771
+
23772
+
23773
+
23774
+
23775
+
22932
23776
 
22933
23777
 
22934
23778
 
@@ -23118,6 +23962,21 @@ var dataStructureTyped = (() => {
23118
23962
 
23119
23963
 
23120
23964
 
23965
+
23966
+
23967
+
23968
+
23969
+
23970
+
23971
+
23972
+
23973
+
23974
+
23975
+
23976
+
23977
+
23978
+
23979
+
23121
23980
 
23122
23981
 
23123
23982
 
@@ -23308,6 +24167,21 @@ var dataStructureTyped = (() => {
23308
24167
 
23309
24168
 
23310
24169
 
24170
+
24171
+
24172
+
24173
+
24174
+
24175
+
24176
+
24177
+
24178
+
24179
+
24180
+
24181
+
24182
+
24183
+
24184
+
23311
24185
 
23312
24186
 
23313
24187
 
@@ -23498,6 +24372,21 @@ var dataStructureTyped = (() => {
23498
24372
 
23499
24373
 
23500
24374
 
24375
+
24376
+
24377
+
24378
+
24379
+
24380
+
24381
+
24382
+
24383
+
24384
+
24385
+
24386
+
24387
+
24388
+
24389
+
23501
24390
 
23502
24391
 
23503
24392
 
@@ -23691,6 +24580,21 @@ var dataStructureTyped = (() => {
23691
24580
 
23692
24581
 
23693
24582
 
24583
+
24584
+
24585
+
24586
+
24587
+
24588
+
24589
+
24590
+
24591
+
24592
+
24593
+
24594
+
24595
+
24596
+
24597
+
23694
24598
 
23695
24599
 
23696
24600
 
@@ -23884,6 +24788,21 @@ var dataStructureTyped = (() => {
23884
24788
 
23885
24789
 
23886
24790
 
24791
+
24792
+
24793
+
24794
+
24795
+
24796
+
24797
+
24798
+
24799
+
24800
+
24801
+
24802
+
24803
+
24804
+
24805
+
23887
24806
 
23888
24807
 
23889
24808
 
@@ -24080,6 +24999,21 @@ var dataStructureTyped = (() => {
24080
24999
 
24081
25000
 
24082
25001
 
25002
+
25003
+
25004
+
25005
+
25006
+
25007
+
25008
+
25009
+
25010
+
25011
+
25012
+
25013
+
25014
+
25015
+
25016
+
24083
25017
 
24084
25018
 
24085
25019
 
@@ -24276,6 +25210,21 @@ var dataStructureTyped = (() => {
24276
25210
 
24277
25211
 
24278
25212
 
25213
+
25214
+
25215
+
25216
+
25217
+
25218
+
25219
+
25220
+
25221
+
25222
+
25223
+
25224
+
25225
+
25226
+
25227
+
24279
25228
 
24280
25229
 
24281
25230
 
@@ -24467,6 +25416,21 @@ var dataStructureTyped = (() => {
24467
25416
 
24468
25417
 
24469
25418
 
25419
+
25420
+
25421
+
25422
+
25423
+
25424
+
25425
+
25426
+
25427
+
25428
+
25429
+
25430
+
25431
+
25432
+
25433
+
24470
25434
 
24471
25435
 
24472
25436
 
@@ -24659,6 +25623,21 @@ var dataStructureTyped = (() => {
24659
25623
 
24660
25624
 
24661
25625
 
25626
+
25627
+
25628
+
25629
+
25630
+
25631
+
25632
+
25633
+
25634
+
25635
+
25636
+
25637
+
25638
+
25639
+
25640
+
24662
25641
 
24663
25642
 
24664
25643
 
@@ -24851,6 +25830,21 @@ var dataStructureTyped = (() => {
24851
25830
 
24852
25831
 
24853
25832
 
25833
+
25834
+
25835
+
25836
+
25837
+
25838
+
25839
+
25840
+
25841
+
25842
+
25843
+
25844
+
25845
+
25846
+
25847
+
24854
25848
 
24855
25849
 
24856
25850
 
@@ -25046,6 +26040,21 @@ var dataStructureTyped = (() => {
25046
26040
 
25047
26041
 
25048
26042
 
26043
+
26044
+
26045
+
26046
+
26047
+
26048
+
26049
+
26050
+
26051
+
26052
+
26053
+
26054
+
26055
+
26056
+
26057
+
25049
26058
 
25050
26059
 
25051
26060
 
@@ -25235,6 +26244,21 @@ var dataStructureTyped = (() => {
25235
26244
 
25236
26245
 
25237
26246
 
26247
+
26248
+
26249
+
26250
+
26251
+
26252
+
26253
+
26254
+
26255
+
26256
+
26257
+
26258
+
26259
+
26260
+
26261
+
25238
26262
 
25239
26263
 
25240
26264
 
@@ -25297,6 +26321,9 @@ var dataStructureTyped = (() => {
25297
26321
 
25298
26322
 
25299
26323
 
26324
+
26325
+
26326
+
25300
26327
 
25301
26328
 
25302
26329
 
@@ -25369,6 +26396,9 @@ var dataStructureTyped = (() => {
25369
26396
 
25370
26397
 
25371
26398
 
26399
+
26400
+
26401
+
25372
26402
 
25373
26403
 
25374
26404
 
@@ -25419,6 +26449,9 @@ var dataStructureTyped = (() => {
25419
26449
 
25420
26450
 
25421
26451
 
26452
+
26453
+
26454
+
25422
26455
 
25423
26456
 
25424
26457
 
@@ -25474,6 +26507,9 @@ var dataStructureTyped = (() => {
25474
26507
 
25475
26508
 
25476
26509
 
26510
+
26511
+
26512
+
25477
26513
 
25478
26514
 
25479
26515
 
@@ -25630,6 +26666,18 @@ var dataStructureTyped = (() => {
25630
26666
 
25631
26667
 
25632
26668
 
26669
+
26670
+
26671
+
26672
+
26673
+
26674
+
26675
+
26676
+
26677
+
26678
+
26679
+
26680
+
25633
26681
 
25634
26682
 
25635
26683
 
@@ -25803,6 +26851,18 @@ var dataStructureTyped = (() => {
25803
26851
 
25804
26852
 
25805
26853
 
26854
+
26855
+
26856
+
26857
+
26858
+
26859
+
26860
+
26861
+
26862
+
26863
+
26864
+
26865
+
25806
26866
 
25807
26867
 
25808
26868
 
@@ -25968,6 +27028,18 @@ var dataStructureTyped = (() => {
25968
27028
 
25969
27029
 
25970
27030
 
27031
+
27032
+
27033
+
27034
+
27035
+
27036
+
27037
+
27038
+
27039
+
27040
+
27041
+
27042
+
25971
27043
 
25972
27044
 
25973
27045
 
@@ -26131,6 +27203,18 @@ var dataStructureTyped = (() => {
26131
27203
 
26132
27204
 
26133
27205
 
27206
+
27207
+
27208
+
27209
+
27210
+
27211
+
27212
+
27213
+
27214
+
27215
+
27216
+
27217
+
26134
27218
 
26135
27219
 
26136
27220
 
@@ -26297,6 +27381,18 @@ var dataStructureTyped = (() => {
26297
27381
 
26298
27382
 
26299
27383
 
27384
+
27385
+
27386
+
27387
+
27388
+
27389
+
27390
+
27391
+
27392
+
27393
+
27394
+
27395
+
26300
27396
 
26301
27397
 
26302
27398
 
@@ -26390,6 +27486,12 @@ var dataStructureTyped = (() => {
26390
27486
 
26391
27487
 
26392
27488
 
27489
+
27490
+
27491
+
27492
+
27493
+
27494
+
26393
27495
  * @example
26394
27496
  * // Pagination by position in tree order
26395
27497
  * const tree = new TreeSet<number>(
@@ -26582,6 +27684,145 @@ var dataStructureTyped = (() => {
26582
27684
 
26583
27685
 
26584
27686
 
27687
+
27688
+
27689
+
27690
+
27691
+
27692
+
27693
+
27694
+
27695
+
27696
+
27697
+
27698
+
27699
+
27700
+ * @example
27701
+ * // Deep clone
27702
+ * const ts = new TreeSet<number>([1, 2, 3]);
27703
+ * const copy = ts.clone();
27704
+ * copy.delete(1);
27705
+ * console.log(ts.has(1)); // true;
27706
+ */
27707
+ // ---- ES2025 Set-like operations ----
27708
+ /**
27709
+ * Return a new TreeSet containing all elements from both sets.
27710
+ * @remarks When both sets share the same comparator, uses O(n+m) merge. Otherwise O(m log n).
27711
+ * @param other - Any iterable of keys.
27712
+ * @returns A new TreeSet.
27713
+ * @example
27714
+ * // Merge two sets
27715
+ * console.log([...a.union(b)]); // [1, 2, 3, 4, 5, 6, 7];
27716
+ */
27717
+ union(other) {
27718
+ const result = this.clone();
27719
+ for (const key of other) result.add(key);
27720
+ return result;
27721
+ }
27722
+ /**
27723
+ * Return a new TreeSet containing only elements present in both sets.
27724
+ * @remarks Time O(n+m) with ordered merge when possible, otherwise O(n log m).
27725
+ * @param other - Any iterable of keys (converted to Set for fast lookup if not a TreeSet).
27726
+ * @returns A new TreeSet.
27727
+ * @example
27728
+ * // Find common elements
27729
+ * console.log([...a.intersection(b)]); // [3, 4, 5];
27730
+ */
27731
+ intersection(other) {
27732
+ const otherSet = other instanceof _TreeSet || other instanceof Set ? other : new Set(other);
27733
+ const result = new _TreeSet([], { comparator: __privateGet(this, _isDefaultComparator2) ? void 0 : __privateGet(this, _userComparator) });
27734
+ for (const key of this) {
27735
+ if (otherSet.has(key)) result.add(key);
27736
+ }
27737
+ return result;
27738
+ }
27739
+ /**
27740
+ * Return a new TreeSet containing elements in this set but not in the other.
27741
+ * @remarks Time O(n+m) with ordered merge when possible, otherwise O(n log m).
27742
+ * @param other - Any iterable of keys.
27743
+ * @returns A new TreeSet.
27744
+ * @example
27745
+ * // Find exclusive elements
27746
+ * console.log([...a.difference(b)]); // [1, 2];
27747
+ */
27748
+ difference(other) {
27749
+ const otherSet = other instanceof _TreeSet || other instanceof Set ? other : new Set(other);
27750
+ const result = new _TreeSet([], { comparator: __privateGet(this, _isDefaultComparator2) ? void 0 : __privateGet(this, _userComparator) });
27751
+ for (const key of this) {
27752
+ if (!otherSet.has(key)) result.add(key);
27753
+ }
27754
+ return result;
27755
+ }
27756
+ /**
27757
+ * Return a new TreeSet containing elements in either set but not both.
27758
+ * @remarks Time O(n+m).
27759
+ * @param other - Any iterable of keys.
27760
+ * @returns A new TreeSet.
27761
+ * @example
27762
+ * // Find symmetric difference
27763
+ * console.log([...a.symmetricDifference(b)]); // [1, 2, 6, 7];
27764
+ */
27765
+ symmetricDifference(other) {
27766
+ const otherSet = other instanceof _TreeSet || other instanceof Set ? other : new Set(other);
27767
+ const result = new _TreeSet([], { comparator: __privateGet(this, _isDefaultComparator2) ? void 0 : __privateGet(this, _userComparator) });
27768
+ for (const key of this) {
27769
+ if (!otherSet.has(key)) result.add(key);
27770
+ }
27771
+ for (const key of otherSet) {
27772
+ if (!this.has(key)) result.add(key);
27773
+ }
27774
+ return result;
27775
+ }
27776
+ /**
27777
+ * Check whether every element in this set is also in the other.
27778
+ * @remarks Time O(n).
27779
+ * @param other - Any iterable of keys (converted to Set for fast lookup if not a TreeSet).
27780
+ * @returns `true` if this is a subset of other.
27781
+ * @example
27782
+ * // Check subset
27783
+ * console.log(new TreeSet([3, 4]).isSubsetOf(a)); // true;
27784
+ */
27785
+ isSubsetOf(other) {
27786
+ const otherSet = other instanceof _TreeSet || other instanceof Set ? other : new Set(other);
27787
+ for (const key of this) {
27788
+ if (!otherSet.has(key)) return false;
27789
+ }
27790
+ return true;
27791
+ }
27792
+ /**
27793
+ * Check whether every element in the other set is also in this set.
27794
+ * @remarks Time O(m).
27795
+ * @param other - Any iterable of keys.
27796
+ * @returns `true` if this is a superset of other.
27797
+ * @example
27798
+ * // Check superset
27799
+ * console.log(a.isSupersetOf(new TreeSet([2, 3]))); // true;
27800
+ */
27801
+ isSupersetOf(other) {
27802
+ for (const key of other) {
27803
+ if (!this.has(key)) return false;
27804
+ }
27805
+ return true;
27806
+ }
27807
+ /**
27808
+ * Check whether this set and the other share no common elements.
27809
+ * @remarks Time O(min(n,m)), can short-circuit on first overlap.
27810
+ * @param other - Any iterable of keys (converted to Set for fast lookup if not a TreeSet).
27811
+ * @returns `true` if sets are disjoint.
27812
+ * @example
27813
+ * // Check disjoint
27814
+ * console.log(a.isDisjointFrom(new TreeSet([8, 9]))); // true;
27815
+ */
27816
+ isDisjointFrom(other) {
27817
+ const otherSet = other instanceof _TreeSet || other instanceof Set ? other : new Set(other);
27818
+ for (const key of this) {
27819
+ if (otherSet.has(key)) return false;
27820
+ }
27821
+ return true;
27822
+ }
27823
+ /**
27824
+ * Deep copy
27825
+
26585
27826
 
26586
27827
 
26587
27828
 
@@ -26847,6 +28088,21 @@ var dataStructureTyped = (() => {
26847
28088
 
26848
28089
 
26849
28090
 
28091
+
28092
+
28093
+
28094
+
28095
+
28096
+
28097
+
28098
+
28099
+
28100
+
28101
+
28102
+
28103
+
28104
+
28105
+
26850
28106
 
26851
28107
 
26852
28108
 
@@ -27035,6 +28291,21 @@ var dataStructureTyped = (() => {
27035
28291
 
27036
28292
 
27037
28293
 
28294
+
28295
+
28296
+
28297
+
28298
+
28299
+
28300
+
28301
+
28302
+
28303
+
28304
+
28305
+
28306
+
28307
+
28308
+
27038
28309
 
27039
28310
 
27040
28311
 
@@ -27090,6 +28361,9 @@ var dataStructureTyped = (() => {
27090
28361
 
27091
28362
 
27092
28363
 
28364
+
28365
+
28366
+
27093
28367
 
27094
28368
 
27095
28369
 
@@ -27134,6 +28408,9 @@ var dataStructureTyped = (() => {
27134
28408
 
27135
28409
 
27136
28410
 
28411
+
28412
+
28413
+
27137
28414
 
27138
28415
 
27139
28416
 
@@ -27355,6 +28632,24 @@ var dataStructureTyped = (() => {
27355
28632
 
27356
28633
 
27357
28634
 
28635
+
28636
+
28637
+
28638
+
28639
+
28640
+
28641
+
28642
+
28643
+
28644
+
28645
+
28646
+
28647
+
28648
+
28649
+
28650
+
28651
+
28652
+
27358
28653
 
27359
28654
 
27360
28655
 
@@ -27589,6 +28884,24 @@ var dataStructureTyped = (() => {
27589
28884
 
27590
28885
 
27591
28886
 
28887
+
28888
+
28889
+
28890
+
28891
+
28892
+
28893
+
28894
+
28895
+
28896
+
28897
+
28898
+
28899
+
28900
+
28901
+
28902
+
28903
+
28904
+
27592
28905
 
27593
28906
 
27594
28907
 
@@ -27778,6 +29091,21 @@ var dataStructureTyped = (() => {
27778
29091
 
27779
29092
 
27780
29093
 
29094
+
29095
+
29096
+
29097
+
29098
+
29099
+
29100
+
29101
+
29102
+
29103
+
29104
+
29105
+
29106
+
29107
+
29108
+
27781
29109
 
27782
29110
 
27783
29111
 
@@ -28034,6 +29362,24 @@ var dataStructureTyped = (() => {
28034
29362
 
28035
29363
 
28036
29364
 
29365
+
29366
+
29367
+
29368
+
29369
+
29370
+
29371
+
29372
+
29373
+
29374
+
29375
+
29376
+
29377
+
29378
+
29379
+
29380
+
29381
+
29382
+
28037
29383
 
28038
29384
 
28039
29385
 
@@ -28094,6 +29440,9 @@ var dataStructureTyped = (() => {
28094
29440
 
28095
29441
 
28096
29442
 
29443
+
29444
+
29445
+
28097
29446
 
28098
29447
 
28099
29448
 
@@ -28139,6 +29488,9 @@ var dataStructureTyped = (() => {
28139
29488
 
28140
29489
 
28141
29490
 
29491
+
29492
+
29493
+
28142
29494
 
28143
29495
 
28144
29496
 
@@ -28189,6 +29541,9 @@ var dataStructureTyped = (() => {
28189
29541
 
28190
29542
 
28191
29543
 
29544
+
29545
+
29546
+
28192
29547
 
28193
29548
 
28194
29549
 
@@ -28393,6 +29748,21 @@ var dataStructureTyped = (() => {
28393
29748
 
28394
29749
 
28395
29750
 
29751
+
29752
+
29753
+
29754
+
29755
+
29756
+
29757
+
29758
+
29759
+
29760
+
29761
+
29762
+
29763
+
29764
+
29765
+
28396
29766
 
28397
29767
 
28398
29768
 
@@ -28584,6 +29954,21 @@ var dataStructureTyped = (() => {
28584
29954
 
28585
29955
 
28586
29956
 
29957
+
29958
+
29959
+
29960
+
29961
+
29962
+
29963
+
29964
+
29965
+
29966
+
29967
+
29968
+
29969
+
29970
+
29971
+
28587
29972
 
28588
29973
 
28589
29974
 
@@ -28610,6 +29995,31 @@ var dataStructureTyped = (() => {
28610
29995
  *values() {
28611
29996
  for (const [, bucket] of this) yield bucket;
28612
29997
  }
29998
+ /**
29999
+ * Iterate over all `[key, values[]]` entries (Map-compatible).
30000
+ * @remarks Time O(n), Space O(1) per step.
30001
+
30002
+
30003
+
30004
+
30005
+
30006
+
30007
+
30008
+
30009
+ * @example
30010
+ * // Iterate over entries
30011
+ * const mm = new TreeMultiMap<number, string>();
30012
+ * mm.set(1, 'a');
30013
+ * mm.set(1, 'b');
30014
+ * mm.set(2, 'c');
30015
+ * console.log([...mm.entries()]); // [
30016
+ * // [1, ['a', 'b']],
30017
+ * // [2, ['c']]
30018
+ * // ];
30019
+ */
30020
+ *entries() {
30021
+ yield* this;
30022
+ }
28613
30023
  // ---- entry-flat views ----
28614
30024
  /**
28615
30025
  * Iterates over all entries for a specific key.
@@ -28640,6 +30050,9 @@ var dataStructureTyped = (() => {
28640
30050
 
28641
30051
 
28642
30052
 
30053
+
30054
+
30055
+
28643
30056
 
28644
30057
 
28645
30058
 
@@ -28685,6 +30098,9 @@ var dataStructureTyped = (() => {
28685
30098
 
28686
30099
 
28687
30100
 
30101
+
30102
+
30103
+
28688
30104
 
28689
30105
 
28690
30106
 
@@ -28730,6 +30146,9 @@ var dataStructureTyped = (() => {
28730
30146
 
28731
30147
 
28732
30148
 
30149
+
30150
+
30151
+
28733
30152
 
28734
30153
 
28735
30154
 
@@ -28814,6 +30233,12 @@ var dataStructureTyped = (() => {
28814
30233
 
28815
30234
 
28816
30235
 
30236
+
30237
+
30238
+
30239
+
30240
+
30241
+
28817
30242
 
28818
30243
 
28819
30244
 
@@ -28903,6 +30328,12 @@ var dataStructureTyped = (() => {
28903
30328
 
28904
30329
 
28905
30330
 
30331
+
30332
+
30333
+
30334
+
30335
+
30336
+
28906
30337
 
28907
30338
 
28908
30339
 
@@ -28956,6 +30387,9 @@ var dataStructureTyped = (() => {
28956
30387
 
28957
30388
 
28958
30389
 
30390
+
30391
+
30392
+
28959
30393
 
28960
30394
 
28961
30395
 
@@ -29005,6 +30439,9 @@ var dataStructureTyped = (() => {
29005
30439
 
29006
30440
 
29007
30441
 
30442
+
30443
+
30444
+
29008
30445
 
29009
30446
 
29010
30447
 
@@ -29191,6 +30628,21 @@ var dataStructureTyped = (() => {
29191
30628
 
29192
30629
 
29193
30630
 
30631
+
30632
+
30633
+
30634
+
30635
+
30636
+
30637
+
30638
+
30639
+
30640
+
30641
+
30642
+
30643
+
30644
+
30645
+
29194
30646
 
29195
30647
 
29196
30648
 
@@ -29393,6 +30845,21 @@ var dataStructureTyped = (() => {
29393
30845
 
29394
30846
 
29395
30847
 
30848
+
30849
+
30850
+
30851
+
30852
+
30853
+
30854
+
30855
+
30856
+
30857
+
30858
+
30859
+
30860
+
30861
+
30862
+
29396
30863
 
29397
30864
 
29398
30865
 
@@ -29559,6 +31026,18 @@ var dataStructureTyped = (() => {
29559
31026
 
29560
31027
 
29561
31028
 
31029
+
31030
+
31031
+
31032
+
31033
+
31034
+
31035
+
31036
+
31037
+
31038
+
31039
+
31040
+
29562
31041
 
29563
31042
 
29564
31043
 
@@ -29721,6 +31200,18 @@ var dataStructureTyped = (() => {
29721
31200
 
29722
31201
 
29723
31202
 
31203
+
31204
+
31205
+
31206
+
31207
+
31208
+
31209
+
31210
+
31211
+
31212
+
31213
+
31214
+
29724
31215
 
29725
31216
 
29726
31217
 
@@ -29917,6 +31408,21 @@ var dataStructureTyped = (() => {
29917
31408
 
29918
31409
 
29919
31410
 
31411
+
31412
+
31413
+
31414
+
31415
+
31416
+
31417
+
31418
+
31419
+
31420
+
31421
+
31422
+
31423
+
31424
+
31425
+
29920
31426
 
29921
31427
 
29922
31428
 
@@ -30107,6 +31613,21 @@ var dataStructureTyped = (() => {
30107
31613
 
30108
31614
 
30109
31615
 
31616
+
31617
+
31618
+
31619
+
31620
+
31621
+
31622
+
31623
+
31624
+
31625
+
31626
+
31627
+
31628
+
31629
+
31630
+
30110
31631
 
30111
31632
 
30112
31633
 
@@ -30302,6 +31823,21 @@ var dataStructureTyped = (() => {
30302
31823
 
30303
31824
 
30304
31825
 
31826
+
31827
+
31828
+
31829
+
31830
+
31831
+
31832
+
31833
+
31834
+
31835
+
31836
+
31837
+
31838
+
31839
+
31840
+
30305
31841
 
30306
31842
 
30307
31843
 
@@ -30499,6 +32035,21 @@ var dataStructureTyped = (() => {
30499
32035
 
30500
32036
 
30501
32037
 
32038
+
32039
+
32040
+
32041
+
32042
+
32043
+
32044
+
32045
+
32046
+
32047
+
32048
+
32049
+
32050
+
32051
+
32052
+
30502
32053
 
30503
32054
 
30504
32055
 
@@ -30694,6 +32245,21 @@ var dataStructureTyped = (() => {
30694
32245
 
30695
32246
 
30696
32247
 
32248
+
32249
+
32250
+
32251
+
32252
+
32253
+
32254
+
32255
+
32256
+
32257
+
32258
+
32259
+
32260
+
32261
+
32262
+
30697
32263
 
30698
32264
 
30699
32265
 
@@ -30882,6 +32448,21 @@ var dataStructureTyped = (() => {
30882
32448
 
30883
32449
 
30884
32450
 
32451
+
32452
+
32453
+
32454
+
32455
+
32456
+
32457
+
32458
+
32459
+
32460
+
32461
+
32462
+
32463
+
32464
+
32465
+
30885
32466
 
30886
32467
 
30887
32468
 
@@ -31043,6 +32624,18 @@ var dataStructureTyped = (() => {
31043
32624
 
31044
32625
 
31045
32626
 
32627
+
32628
+
32629
+
32630
+
32631
+
32632
+
32633
+
32634
+
32635
+
32636
+
32637
+
32638
+
31046
32639
 
31047
32640
 
31048
32641
 
@@ -31268,6 +32861,12 @@ var dataStructureTyped = (() => {
31268
32861
 
31269
32862
 
31270
32863
 
32864
+
32865
+
32866
+
32867
+
32868
+
32869
+
31271
32870
  * @example
31272
32871
  * // Pagination by position in tree order
31273
32872
  * const tree = new TreeMultiMap<number>(
@@ -31310,6 +32909,21 @@ var dataStructureTyped = (() => {
31310
32909
 
31311
32910
 
31312
32911
 
32912
+
32913
+
32914
+
32915
+
32916
+
32917
+
32918
+
32919
+
32920
+
32921
+
32922
+
32923
+
32924
+
32925
+
32926
+
31313
32927
 
31314
32928
 
31315
32929
 
@@ -31595,6 +33209,21 @@ var dataStructureTyped = (() => {
31595
33209
 
31596
33210
 
31597
33211
 
33212
+
33213
+
33214
+
33215
+
33216
+
33217
+
33218
+
33219
+
33220
+
33221
+
33222
+
33223
+
33224
+
33225
+
33226
+
31598
33227
 
31599
33228
 
31600
33229
 
@@ -31792,6 +33421,21 @@ var dataStructureTyped = (() => {
31792
33421
 
31793
33422
 
31794
33423
 
33424
+
33425
+
33426
+
33427
+
33428
+
33429
+
33430
+
33431
+
33432
+
33433
+
33434
+
33435
+
33436
+
33437
+
33438
+
31795
33439
 
31796
33440
 
31797
33441
 
@@ -31846,6 +33490,18 @@ var dataStructureTyped = (() => {
31846
33490
 
31847
33491
 
31848
33492
 
33493
+
33494
+
33495
+
33496
+
33497
+
33498
+
33499
+
33500
+
33501
+
33502
+
33503
+
33504
+
31849
33505
 
31850
33506
 
31851
33507
 
@@ -32045,6 +33701,21 @@ var dataStructureTyped = (() => {
32045
33701
 
32046
33702
 
32047
33703
 
33704
+
33705
+
33706
+
33707
+
33708
+
33709
+
33710
+
33711
+
33712
+
33713
+
33714
+
33715
+
33716
+
33717
+
33718
+
32048
33719
 
32049
33720
 
32050
33721
 
@@ -32253,6 +33924,21 @@ var dataStructureTyped = (() => {
32253
33924
 
32254
33925
 
32255
33926
 
33927
+
33928
+
33929
+
33930
+
33931
+
33932
+
33933
+
33934
+
33935
+
33936
+
33937
+
33938
+
33939
+
33940
+
33941
+
32256
33942
 
32257
33943
 
32258
33944
 
@@ -32461,6 +34147,21 @@ var dataStructureTyped = (() => {
32461
34147
 
32462
34148
 
32463
34149
 
34150
+
34151
+
34152
+
34153
+
34154
+
34155
+
34156
+
34157
+
34158
+
34159
+
34160
+
34161
+
34162
+
34163
+
34164
+
32464
34165
 
32465
34166
 
32466
34167
 
@@ -32675,6 +34376,21 @@ var dataStructureTyped = (() => {
32675
34376
 
32676
34377
 
32677
34378
 
34379
+
34380
+
34381
+
34382
+
34383
+
34384
+
34385
+
34386
+
34387
+
34388
+
34389
+
34390
+
34391
+
34392
+
34393
+
32678
34394
 
32679
34395
 
32680
34396
 
@@ -32864,6 +34580,21 @@ var dataStructureTyped = (() => {
32864
34580
 
32865
34581
 
32866
34582
 
34583
+
34584
+
34585
+
34586
+
34587
+
34588
+
34589
+
34590
+
34591
+
34592
+
34593
+
34594
+
34595
+
34596
+
34597
+
32867
34598
 
32868
34599
 
32869
34600
 
@@ -33057,6 +34788,21 @@ var dataStructureTyped = (() => {
33057
34788
 
33058
34789
 
33059
34790
 
34791
+
34792
+
34793
+
34794
+
34795
+
34796
+
34797
+
34798
+
34799
+
34800
+
34801
+
34802
+
34803
+
34804
+
34805
+
33060
34806
 
33061
34807
 
33062
34808
 
@@ -33247,6 +34993,21 @@ var dataStructureTyped = (() => {
33247
34993
 
33248
34994
 
33249
34995
 
34996
+
34997
+
34998
+
34999
+
35000
+
35001
+
35002
+
35003
+
35004
+
35005
+
35006
+
35007
+
35008
+
35009
+
35010
+
33250
35011
 
33251
35012
 
33252
35013
 
@@ -33440,6 +35201,21 @@ var dataStructureTyped = (() => {
33440
35201
 
33441
35202
 
33442
35203
 
35204
+
35205
+
35206
+
35207
+
35208
+
35209
+
35210
+
35211
+
35212
+
35213
+
35214
+
35215
+
35216
+
35217
+
35218
+
33443
35219
 
33444
35220
 
33445
35221
 
@@ -33633,6 +35409,21 @@ var dataStructureTyped = (() => {
33633
35409
 
33634
35410
 
33635
35411
 
35412
+
35413
+
35414
+
35415
+
35416
+
35417
+
35418
+
35419
+
35420
+
35421
+
35422
+
35423
+
35424
+
35425
+
35426
+
33636
35427
 
33637
35428
 
33638
35429
 
@@ -33829,6 +35620,21 @@ var dataStructureTyped = (() => {
33829
35620
 
33830
35621
 
33831
35622
 
35623
+
35624
+
35625
+
35626
+
35627
+
35628
+
35629
+
35630
+
35631
+
35632
+
35633
+
35634
+
35635
+
35636
+
35637
+
33832
35638
 
33833
35639
 
33834
35640
 
@@ -34025,6 +35831,21 @@ var dataStructureTyped = (() => {
34025
35831
 
34026
35832
 
34027
35833
 
35834
+
35835
+
35836
+
35837
+
35838
+
35839
+
35840
+
35841
+
35842
+
35843
+
35844
+
35845
+
35846
+
35847
+
35848
+
34028
35849
 
34029
35850
 
34030
35851
 
@@ -34215,6 +36036,21 @@ var dataStructureTyped = (() => {
34215
36036
 
34216
36037
 
34217
36038
 
36039
+
36040
+
36041
+
36042
+
36043
+
36044
+
36045
+
36046
+
36047
+
36048
+
36049
+
36050
+
36051
+
36052
+
36053
+
34218
36054
 
34219
36055
 
34220
36056
 
@@ -34407,6 +36243,21 @@ var dataStructureTyped = (() => {
34407
36243
 
34408
36244
 
34409
36245
 
36246
+
36247
+
36248
+
36249
+
36250
+
36251
+
36252
+
36253
+
36254
+
36255
+
36256
+
36257
+
36258
+
36259
+
36260
+
34410
36261
 
34411
36262
 
34412
36263
 
@@ -34600,6 +36451,21 @@ var dataStructureTyped = (() => {
34600
36451
 
34601
36452
 
34602
36453
 
36454
+
36455
+
36456
+
36457
+
36458
+
36459
+
36460
+
36461
+
36462
+
36463
+
36464
+
36465
+
36466
+
36467
+
36468
+
34603
36469
 
34604
36470
 
34605
36471
 
@@ -34794,6 +36660,21 @@ var dataStructureTyped = (() => {
34794
36660
 
34795
36661
 
34796
36662
 
36663
+
36664
+
36665
+
36666
+
36667
+
36668
+
36669
+
36670
+
36671
+
36672
+
36673
+
36674
+
36675
+
36676
+
36677
+
34797
36678
 
34798
36679
 
34799
36680
 
@@ -34983,6 +36864,21 @@ var dataStructureTyped = (() => {
34983
36864
 
34984
36865
 
34985
36866
 
36867
+
36868
+
36869
+
36870
+
36871
+
36872
+
36873
+
36874
+
36875
+
36876
+
36877
+
36878
+
36879
+
36880
+
36881
+
34986
36882
 
34987
36883
 
34988
36884
 
@@ -35046,6 +36942,9 @@ var dataStructureTyped = (() => {
35046
36942
 
35047
36943
 
35048
36944
 
36945
+
36946
+
36947
+
35049
36948
 
35050
36949
 
35051
36950
 
@@ -35118,6 +37017,9 @@ var dataStructureTyped = (() => {
35118
37017
 
35119
37018
 
35120
37019
 
37020
+
37021
+
37022
+
35121
37023
 
35122
37024
 
35123
37025
 
@@ -35174,6 +37076,9 @@ var dataStructureTyped = (() => {
35174
37076
 
35175
37077
 
35176
37078
 
37079
+
37080
+
37081
+
35177
37082
 
35178
37083
 
35179
37084
 
@@ -35234,6 +37139,9 @@ var dataStructureTyped = (() => {
35234
37139
 
35235
37140
 
35236
37141
 
37142
+
37143
+
37144
+
35237
37145
 
35238
37146
 
35239
37147
 
@@ -35396,6 +37304,18 @@ var dataStructureTyped = (() => {
35396
37304
 
35397
37305
 
35398
37306
 
37307
+
37308
+
37309
+
37310
+
37311
+
37312
+
37313
+
37314
+
37315
+
37316
+
37317
+
37318
+
35399
37319
 
35400
37320
 
35401
37321
 
@@ -35585,6 +37505,18 @@ var dataStructureTyped = (() => {
35585
37505
 
35586
37506
 
35587
37507
 
37508
+
37509
+
37510
+
37511
+
37512
+
37513
+
37514
+
37515
+
37516
+
37517
+
37518
+
37519
+
35588
37520
 
35589
37521
 
35590
37522
 
@@ -35758,6 +37690,18 @@ var dataStructureTyped = (() => {
35758
37690
 
35759
37691
 
35760
37692
 
37693
+
37694
+
37695
+
37696
+
37697
+
37698
+
37699
+
37700
+
37701
+
37702
+
37703
+
37704
+
35761
37705
 
35762
37706
 
35763
37707
 
@@ -35931,6 +37875,18 @@ var dataStructureTyped = (() => {
35931
37875
 
35932
37876
 
35933
37877
 
37878
+
37879
+
37880
+
37881
+
37882
+
37883
+
37884
+
37885
+
37886
+
37887
+
37888
+
37889
+
35934
37890
 
35935
37891
 
35936
37892
 
@@ -36105,6 +38061,18 @@ var dataStructureTyped = (() => {
36105
38061
 
36106
38062
 
36107
38063
 
38064
+
38065
+
38066
+
38067
+
38068
+
38069
+
38070
+
38071
+
38072
+
38073
+
38074
+
38075
+
36108
38076
 
36109
38077
 
36110
38078
 
@@ -36216,6 +38184,12 @@ var dataStructureTyped = (() => {
36216
38184
 
36217
38185
 
36218
38186
 
38187
+
38188
+
38189
+
38190
+
38191
+
38192
+
36219
38193
  * @example
36220
38194
  * // Pagination by position in tree order
36221
38195
  * const tree = new TreeMap<number>(
@@ -36401,6 +38375,21 @@ var dataStructureTyped = (() => {
36401
38375
 
36402
38376
 
36403
38377
 
38378
+
38379
+
38380
+
38381
+
38382
+
38383
+
38384
+
38385
+
38386
+
38387
+
38388
+
38389
+
38390
+
38391
+
38392
+
36404
38393
 
36405
38394
 
36406
38395
 
@@ -36527,6 +38516,9 @@ var dataStructureTyped = (() => {
36527
38516
 
36528
38517
 
36529
38518
 
38519
+
38520
+
38521
+
36530
38522
 
36531
38523
 
36532
38524
 
@@ -36706,6 +38698,21 @@ var dataStructureTyped = (() => {
36706
38698
 
36707
38699
 
36708
38700
 
38701
+
38702
+
38703
+
38704
+
38705
+
38706
+
38707
+
38708
+
38709
+
38710
+
38711
+
38712
+
38713
+
38714
+
38715
+
36709
38716
 
36710
38717
 
36711
38718
 
@@ -36897,6 +38904,21 @@ var dataStructureTyped = (() => {
36897
38904
 
36898
38905
 
36899
38906
 
38907
+
38908
+
38909
+
38910
+
38911
+
38912
+
38913
+
38914
+
38915
+
38916
+
38917
+
38918
+
38919
+
38920
+
38921
+
36900
38922
 
36901
38923
 
36902
38924
 
@@ -36953,6 +38975,9 @@ var dataStructureTyped = (() => {
36953
38975
 
36954
38976
 
36955
38977
 
38978
+
38979
+
38980
+
36956
38981
 
36957
38982
 
36958
38983
 
@@ -37128,6 +39153,21 @@ var dataStructureTyped = (() => {
37128
39153
 
37129
39154
 
37130
39155
 
39156
+
39157
+
39158
+
39159
+
39160
+
39161
+
39162
+
39163
+
39164
+
39165
+
39166
+
39167
+
39168
+
39169
+
39170
+
37131
39171
 
37132
39172
 
37133
39173
 
@@ -37194,6 +39234,9 @@ var dataStructureTyped = (() => {
37194
39234
 
37195
39235
 
37196
39236
 
39237
+
39238
+
39239
+
37197
39240
 
37198
39241
 
37199
39242
 
@@ -37387,6 +39430,21 @@ var dataStructureTyped = (() => {
37387
39430
 
37388
39431
 
37389
39432
 
39433
+
39434
+
39435
+
39436
+
39437
+
39438
+
39439
+
39440
+
39441
+
39442
+
39443
+
39444
+
39445
+
39446
+
39447
+
37390
39448
 
37391
39449
 
37392
39450
 
@@ -37454,6 +39512,9 @@ var dataStructureTyped = (() => {
37454
39512
 
37455
39513
 
37456
39514
 
39515
+
39516
+
39517
+
37457
39518
 
37458
39519
 
37459
39520
 
@@ -37503,6 +39564,9 @@ var dataStructureTyped = (() => {
37503
39564
 
37504
39565
 
37505
39566
 
39567
+
39568
+
39569
+
37506
39570
 
37507
39571
 
37508
39572
 
@@ -37682,6 +39746,21 @@ var dataStructureTyped = (() => {
37682
39746
 
37683
39747
 
37684
39748
 
39749
+
39750
+
39751
+
39752
+
39753
+
39754
+
39755
+
39756
+
39757
+
39758
+
39759
+
39760
+
39761
+
39762
+
39763
+
37685
39764
 
37686
39765
 
37687
39766
 
@@ -37718,6 +39797,46 @@ var dataStructureTyped = (() => {
37718
39797
  for (let i = 0; i < c; i++) yield k;
37719
39798
  }
37720
39799
  }
39800
+ /**
39801
+ * Iterate over all elements with multiplicity (Set-compatible, alias for `[Symbol.iterator]`).
39802
+ * @remarks Each key is yielded `count(key)` times. Time O(size), Space O(1) per step.
39803
+
39804
+
39805
+
39806
+
39807
+
39808
+
39809
+
39810
+
39811
+ * @example
39812
+ * // Iterate with multiplicity
39813
+ * const ms = new TreeMultiSet<number>();
39814
+ * ms.add(1); ms.add(1); ms.add(2); ms.add(3); ms.add(3); ms.add(3);
39815
+ * console.log([...ms.keys()]); // [1, 1, 2, 3, 3, 3];
39816
+ */
39817
+ *keys() {
39818
+ yield* this;
39819
+ }
39820
+ /**
39821
+ * Iterate over all elements with multiplicity (Set-compatible, alias for `[Symbol.iterator]`).
39822
+ * @remarks Each key is yielded `count(key)` times. Time O(size), Space O(1) per step.
39823
+
39824
+
39825
+
39826
+
39827
+
39828
+
39829
+
39830
+
39831
+ * @example
39832
+ * // Iterate with multiplicity
39833
+ * const ms = new TreeMultiSet<number>();
39834
+ * ms.add(5); ms.add(5); ms.add(10);
39835
+ * console.log([...ms.values()]); // [5, 5, 10];
39836
+ */
39837
+ *values() {
39838
+ yield* this;
39839
+ }
37721
39840
  /**
37722
39841
  * Returns an array with all elements (expanded).
37723
39842
  * @remarks Time O(size), Space O(size)
@@ -37883,6 +40002,21 @@ var dataStructureTyped = (() => {
37883
40002
 
37884
40003
 
37885
40004
 
40005
+
40006
+
40007
+
40008
+
40009
+
40010
+
40011
+
40012
+
40013
+
40014
+
40015
+
40016
+
40017
+
40018
+
40019
+
37886
40020
 
37887
40021
 
37888
40022
 
@@ -37938,6 +40072,9 @@ var dataStructureTyped = (() => {
37938
40072
 
37939
40073
 
37940
40074
 
40075
+
40076
+
40077
+
37941
40078
 
37942
40079
 
37943
40080
 
@@ -37981,6 +40118,9 @@ var dataStructureTyped = (() => {
37981
40118
 
37982
40119
 
37983
40120
 
40121
+
40122
+
40123
+
37984
40124
 
37985
40125
 
37986
40126
 
@@ -38169,6 +40309,21 @@ var dataStructureTyped = (() => {
38169
40309
 
38170
40310
 
38171
40311
 
40312
+
40313
+
40314
+
40315
+
40316
+
40317
+
40318
+
40319
+
40320
+
40321
+
40322
+
40323
+
40324
+
40325
+
40326
+
38172
40327
 
38173
40328
 
38174
40329
 
@@ -38227,6 +40382,9 @@ var dataStructureTyped = (() => {
38227
40382
 
38228
40383
 
38229
40384
 
40385
+
40386
+
40387
+
38230
40388
 
38231
40389
 
38232
40390
 
@@ -38271,6 +40429,9 @@ var dataStructureTyped = (() => {
38271
40429
 
38272
40430
 
38273
40431
 
40432
+
40433
+
40434
+
38274
40435
 
38275
40436
 
38276
40437
 
@@ -38315,6 +40476,9 @@ var dataStructureTyped = (() => {
38315
40476
 
38316
40477
 
38317
40478
 
40479
+
40480
+
40481
+
38318
40482
 
38319
40483
 
38320
40484
 
@@ -38363,6 +40527,9 @@ var dataStructureTyped = (() => {
38363
40527
 
38364
40528
 
38365
40529
 
40530
+
40531
+
40532
+
38366
40533
 
38367
40534
 
38368
40535
 
@@ -38512,6 +40679,18 @@ var dataStructureTyped = (() => {
38512
40679
 
38513
40680
 
38514
40681
 
40682
+
40683
+
40684
+
40685
+
40686
+
40687
+
40688
+
40689
+
40690
+
40691
+
40692
+
40693
+
38515
40694
 
38516
40695
 
38517
40696
 
@@ -38669,6 +40848,18 @@ var dataStructureTyped = (() => {
38669
40848
 
38670
40849
 
38671
40850
 
40851
+
40852
+
40853
+
40854
+
40855
+
40856
+
40857
+
40858
+
40859
+
40860
+
40861
+
40862
+
38672
40863
 
38673
40864
 
38674
40865
 
@@ -38826,6 +41017,18 @@ var dataStructureTyped = (() => {
38826
41017
 
38827
41018
 
38828
41019
 
41020
+
41021
+
41022
+
41023
+
41024
+
41025
+
41026
+
41027
+
41028
+
41029
+
41030
+
41031
+
38829
41032
 
38830
41033
 
38831
41034
 
@@ -38982,6 +41185,18 @@ var dataStructureTyped = (() => {
38982
41185
 
38983
41186
 
38984
41187
 
41188
+
41189
+
41190
+
41191
+
41192
+
41193
+
41194
+
41195
+
41196
+
41197
+
41198
+
41199
+
38985
41200
 
38986
41201
 
38987
41202
 
@@ -39173,6 +41388,21 @@ var dataStructureTyped = (() => {
39173
41388
 
39174
41389
 
39175
41390
 
41391
+
41392
+
41393
+
41394
+
41395
+
41396
+
41397
+
41398
+
41399
+
41400
+
41401
+
41402
+
41403
+
41404
+
41405
+
39176
41406
 
39177
41407
 
39178
41408
 
@@ -39369,6 +41599,21 @@ var dataStructureTyped = (() => {
39369
41599
 
39370
41600
 
39371
41601
 
41602
+
41603
+
41604
+
41605
+
41606
+
41607
+
41608
+
41609
+
41610
+
41611
+
41612
+
41613
+
41614
+
41615
+
41616
+
39372
41617
 
39373
41618
 
39374
41619
 
@@ -39572,6 +41817,21 @@ var dataStructureTyped = (() => {
39572
41817
 
39573
41818
 
39574
41819
 
41820
+
41821
+
41822
+
41823
+
41824
+
41825
+
41826
+
41827
+
41828
+
41829
+
41830
+
41831
+
41832
+
41833
+
41834
+
39575
41835
 
39576
41836
 
39577
41837
 
@@ -39770,6 +42030,21 @@ var dataStructureTyped = (() => {
39770
42030
 
39771
42031
 
39772
42032
 
42033
+
42034
+
42035
+
42036
+
42037
+
42038
+
42039
+
42040
+
42041
+
42042
+
42043
+
42044
+
42045
+
42046
+
42047
+
39773
42048
 
39774
42049
 
39775
42050
 
@@ -40003,6 +42278,12 @@ var dataStructureTyped = (() => {
40003
42278
 
40004
42279
 
40005
42280
 
42281
+
42282
+
42283
+
42284
+
42285
+
42286
+
40006
42287
  * @example
40007
42288
  * // Pagination by position in tree order
40008
42289
  * const tree = new TreeMultiSet<number>(
@@ -40041,6 +42322,21 @@ var dataStructureTyped = (() => {
40041
42322
 
40042
42323
 
40043
42324
 
42325
+
42326
+
42327
+
42328
+
42329
+
42330
+
42331
+
42332
+
42333
+
42334
+
42335
+
42336
+
42337
+
42338
+
42339
+
40044
42340
 
40045
42341
 
40046
42342
 
@@ -40198,6 +42494,18 @@ var dataStructureTyped = (() => {
40198
42494
 
40199
42495
 
40200
42496
 
42497
+
42498
+
42499
+
42500
+
42501
+
42502
+
42503
+
42504
+
42505
+
42506
+
42507
+
42508
+
40201
42509
 
40202
42510
 
40203
42511
 
@@ -40390,6 +42698,21 @@ var dataStructureTyped = (() => {
40390
42698
 
40391
42699
 
40392
42700
 
42701
+
42702
+
42703
+
42704
+
42705
+
42706
+
42707
+
42708
+
42709
+
42710
+
42711
+
42712
+
42713
+
42714
+
42715
+
40393
42716
 
40394
42717
 
40395
42718
 
@@ -40585,6 +42908,9 @@ var dataStructureTyped = (() => {
40585
42908
 
40586
42909
 
40587
42910
 
42911
+
42912
+
42913
+
40588
42914
 
40589
42915
 
40590
42916
 
@@ -40657,6 +42983,9 @@ var dataStructureTyped = (() => {
40657
42983
 
40658
42984
 
40659
42985
 
42986
+
42987
+
42988
+
40660
42989
 
40661
42990
 
40662
42991
 
@@ -40725,6 +43054,9 @@ var dataStructureTyped = (() => {
40725
43054
 
40726
43055
 
40727
43056
 
43057
+
43058
+
43059
+
40728
43060
 
40729
43061
 
40730
43062
 
@@ -40816,6 +43148,9 @@ var dataStructureTyped = (() => {
40816
43148
 
40817
43149
 
40818
43150
 
43151
+
43152
+
43153
+
40819
43154
 
40820
43155
 
40821
43156
 
@@ -40890,6 +43225,9 @@ var dataStructureTyped = (() => {
40890
43225
 
40891
43226
 
40892
43227
 
43228
+
43229
+
43230
+
40893
43231
 
40894
43232
 
40895
43233
 
@@ -40985,6 +43323,9 @@ var dataStructureTyped = (() => {
40985
43323
 
40986
43324
 
40987
43325
 
43326
+
43327
+
43328
+
40988
43329
 
40989
43330
 
40990
43331
 
@@ -41067,6 +43408,9 @@ var dataStructureTyped = (() => {
41067
43408
 
41068
43409
 
41069
43410
 
43411
+
43412
+
43413
+
41070
43414
 
41071
43415
 
41072
43416
 
@@ -41175,6 +43519,9 @@ var dataStructureTyped = (() => {
41175
43519
 
41176
43520
 
41177
43521
 
43522
+
43523
+
43524
+
41178
43525
 
41179
43526
 
41180
43527
 
@@ -41683,6 +44030,9 @@ var dataStructureTyped = (() => {
41683
44030
 
41684
44031
 
41685
44032
 
44033
+
44034
+
44035
+
41686
44036
 
41687
44037
 
41688
44038
 
@@ -41759,6 +44109,9 @@ var dataStructureTyped = (() => {
41759
44109
 
41760
44110
 
41761
44111
 
44112
+
44113
+
44114
+
41762
44115
 
41763
44116
 
41764
44117
 
@@ -41822,6 +44175,9 @@ var dataStructureTyped = (() => {
41822
44175
 
41823
44176
 
41824
44177
 
44178
+
44179
+
44180
+
41825
44181
 
41826
44182
 
41827
44183
 
@@ -41880,6 +44236,9 @@ var dataStructureTyped = (() => {
41880
44236
 
41881
44237
 
41882
44238
 
44239
+
44240
+
44241
+
41883
44242
 
41884
44243
 
41885
44244
 
@@ -41930,6 +44289,9 @@ var dataStructureTyped = (() => {
41930
44289
 
41931
44290
 
41932
44291
 
44292
+
44293
+
44294
+
41933
44295
 
41934
44296
 
41935
44297
 
@@ -41984,6 +44346,9 @@ var dataStructureTyped = (() => {
41984
44346
 
41985
44347
 
41986
44348
 
44349
+
44350
+
44351
+
41987
44352
 
41988
44353
 
41989
44354
 
@@ -42120,6 +44485,9 @@ var dataStructureTyped = (() => {
42120
44485
 
42121
44486
 
42122
44487
 
44488
+
44489
+
44490
+
42123
44491
 
42124
44492
 
42125
44493
 
@@ -42200,6 +44568,9 @@ var dataStructureTyped = (() => {
42200
44568
 
42201
44569
 
42202
44570
 
44571
+
44572
+
44573
+
42203
44574
 
42204
44575
 
42205
44576
 
@@ -42263,6 +44634,9 @@ var dataStructureTyped = (() => {
42263
44634
 
42264
44635
 
42265
44636
 
44637
+
44638
+
44639
+
42266
44640
 
42267
44641
 
42268
44642
 
@@ -42344,6 +44718,9 @@ var dataStructureTyped = (() => {
42344
44718
 
42345
44719
 
42346
44720
 
44721
+
44722
+
44723
+
42347
44724
 
42348
44725
 
42349
44726
 
@@ -42398,6 +44775,9 @@ var dataStructureTyped = (() => {
42398
44775
 
42399
44776
 
42400
44777
 
44778
+
44779
+
44780
+
42401
44781
 
42402
44782
 
42403
44783