data-structure-typed 2.5.1 → 2.5.2

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 (172) hide show
  1. package/CHANGELOG.md +3 -1
  2. package/README.md +75 -17
  3. package/dist/cjs/binary-tree.cjs +2723 -139
  4. package/dist/cjs/graph.cjs +192 -6
  5. package/dist/cjs/hash.cjs +63 -15
  6. package/dist/cjs/heap.cjs +93 -31
  7. package/dist/cjs/index.cjs +3514 -379
  8. package/dist/cjs/linked-list.cjs +237 -31
  9. package/dist/cjs/matrix.cjs +47 -9
  10. package/dist/cjs/priority-queue.cjs +92 -30
  11. package/dist/cjs/queue.cjs +176 -2
  12. package/dist/cjs/stack.cjs +48 -2
  13. package/dist/cjs/trie.cjs +78 -28
  14. package/dist/cjs-legacy/binary-tree.cjs +2725 -136
  15. package/dist/cjs-legacy/graph.cjs +192 -6
  16. package/dist/cjs-legacy/hash.cjs +63 -15
  17. package/dist/cjs-legacy/heap.cjs +93 -31
  18. package/dist/cjs-legacy/index.cjs +3389 -249
  19. package/dist/cjs-legacy/linked-list.cjs +237 -31
  20. package/dist/cjs-legacy/matrix.cjs +47 -9
  21. package/dist/cjs-legacy/priority-queue.cjs +92 -30
  22. package/dist/cjs-legacy/queue.cjs +176 -2
  23. package/dist/cjs-legacy/stack.cjs +48 -2
  24. package/dist/cjs-legacy/trie.cjs +78 -28
  25. package/dist/esm/binary-tree.mjs +2723 -139
  26. package/dist/esm/graph.mjs +192 -6
  27. package/dist/esm/hash.mjs +63 -15
  28. package/dist/esm/heap.mjs +93 -31
  29. package/dist/esm/index.mjs +3514 -380
  30. package/dist/esm/linked-list.mjs +237 -31
  31. package/dist/esm/matrix.mjs +47 -9
  32. package/dist/esm/priority-queue.mjs +92 -30
  33. package/dist/esm/queue.mjs +176 -2
  34. package/dist/esm/stack.mjs +48 -2
  35. package/dist/esm/trie.mjs +78 -28
  36. package/dist/esm-legacy/binary-tree.mjs +2725 -136
  37. package/dist/esm-legacy/graph.mjs +192 -6
  38. package/dist/esm-legacy/hash.mjs +63 -15
  39. package/dist/esm-legacy/heap.mjs +93 -31
  40. package/dist/esm-legacy/index.mjs +3389 -250
  41. package/dist/esm-legacy/linked-list.mjs +237 -31
  42. package/dist/esm-legacy/matrix.mjs +47 -9
  43. package/dist/esm-legacy/priority-queue.mjs +92 -30
  44. package/dist/esm-legacy/queue.mjs +176 -2
  45. package/dist/esm-legacy/stack.mjs +48 -2
  46. package/dist/esm-legacy/trie.mjs +78 -28
  47. package/dist/types/common/error.d.ts +9 -0
  48. package/dist/types/common/index.d.ts +1 -1
  49. package/dist/types/data-structures/binary-tree/avl-tree.d.ts +48 -0
  50. package/dist/types/data-structures/binary-tree/binary-indexed-tree.d.ts +56 -0
  51. package/dist/types/data-structures/binary-tree/binary-tree.d.ts +102 -2
  52. package/dist/types/data-structures/binary-tree/bst.d.ts +195 -0
  53. package/dist/types/data-structures/binary-tree/red-black-tree.d.ts +76 -0
  54. package/dist/types/data-structures/binary-tree/segment-tree.d.ts +24 -0
  55. package/dist/types/data-structures/binary-tree/tree-map.d.ts +528 -0
  56. package/dist/types/data-structures/binary-tree/tree-multi-map.d.ts +531 -6
  57. package/dist/types/data-structures/binary-tree/tree-multi-set.d.ts +435 -6
  58. package/dist/types/data-structures/binary-tree/tree-set.d.ts +505 -0
  59. package/dist/types/data-structures/graph/directed-graph.d.ts +40 -0
  60. package/dist/types/data-structures/graph/undirected-graph.d.ts +36 -0
  61. package/dist/types/data-structures/hash/hash-map.d.ts +44 -0
  62. package/dist/types/data-structures/heap/heap.d.ts +56 -0
  63. package/dist/types/data-structures/linked-list/doubly-linked-list.d.ts +68 -0
  64. package/dist/types/data-structures/linked-list/singly-linked-list.d.ts +60 -0
  65. package/dist/types/data-structures/linked-list/skip-linked-list.d.ts +72 -0
  66. package/dist/types/data-structures/matrix/matrix.d.ts +32 -0
  67. package/dist/types/data-structures/queue/deque.d.ts +60 -0
  68. package/dist/types/data-structures/queue/queue.d.ts +48 -0
  69. package/dist/types/data-structures/stack/stack.d.ts +40 -0
  70. package/dist/types/data-structures/trie/trie.d.ts +48 -0
  71. package/dist/types/types/data-structures/binary-tree/bst.d.ts +1 -0
  72. package/dist/types/types/data-structures/binary-tree/tree-map.d.ts +5 -0
  73. package/dist/types/types/data-structures/binary-tree/tree-multi-set.d.ts +4 -0
  74. package/dist/types/types/data-structures/binary-tree/tree-set.d.ts +4 -0
  75. package/dist/umd/data-structure-typed.js +3404 -265
  76. package/dist/umd/data-structure-typed.min.js +5 -5
  77. package/docs-site-docusaurus/docs/api/classes/AVLTree.md +650 -136
  78. package/docs-site-docusaurus/docs/api/classes/AVLTreeNode.md +11 -11
  79. package/docs-site-docusaurus/docs/api/classes/AbstractGraph.md +71 -71
  80. package/docs-site-docusaurus/docs/api/classes/BST.md +591 -129
  81. package/docs-site-docusaurus/docs/api/classes/BSTNode.md +13 -13
  82. package/docs-site-docusaurus/docs/api/classes/BinaryIndexedTree.md +15 -15
  83. package/docs-site-docusaurus/docs/api/classes/BinaryTree.md +107 -107
  84. package/docs-site-docusaurus/docs/api/classes/BinaryTreeNode.md +13 -13
  85. package/docs-site-docusaurus/docs/api/classes/Deque.md +82 -82
  86. package/docs-site-docusaurus/docs/api/classes/DirectedGraph.md +82 -82
  87. package/docs-site-docusaurus/docs/api/classes/DoublyLinkedList.md +74 -74
  88. package/docs-site-docusaurus/docs/api/classes/DoublyLinkedListNode.md +8 -8
  89. package/docs-site-docusaurus/docs/api/classes/FibonacciHeap.md +9 -9
  90. package/docs-site-docusaurus/docs/api/classes/FibonacciHeapNode.md +1 -1
  91. package/docs-site-docusaurus/docs/api/classes/HashMap.md +47 -47
  92. package/docs-site-docusaurus/docs/api/classes/Heap.md +45 -45
  93. package/docs-site-docusaurus/docs/api/classes/IterableElementBase.md +25 -25
  94. package/docs-site-docusaurus/docs/api/classes/IterableEntryBase.md +33 -33
  95. package/docs-site-docusaurus/docs/api/classes/LinearBase.md +50 -50
  96. package/docs-site-docusaurus/docs/api/classes/LinearLinkedBase.md +55 -55
  97. package/docs-site-docusaurus/docs/api/classes/LinkedHashMap.md +49 -49
  98. package/docs-site-docusaurus/docs/api/classes/LinkedListNode.md +6 -6
  99. package/docs-site-docusaurus/docs/api/classes/LinkedListQueue.md +78 -78
  100. package/docs-site-docusaurus/docs/api/classes/MapGraph.md +82 -82
  101. package/docs-site-docusaurus/docs/api/classes/Matrix.md +31 -31
  102. package/docs-site-docusaurus/docs/api/classes/MaxHeap.md +45 -45
  103. package/docs-site-docusaurus/docs/api/classes/MaxPriorityQueue.md +45 -45
  104. package/docs-site-docusaurus/docs/api/classes/MinHeap.md +45 -45
  105. package/docs-site-docusaurus/docs/api/classes/MinPriorityQueue.md +45 -45
  106. package/docs-site-docusaurus/docs/api/classes/Navigator.md +5 -5
  107. package/docs-site-docusaurus/docs/api/classes/PriorityQueue.md +44 -44
  108. package/docs-site-docusaurus/docs/api/classes/Queue.md +60 -60
  109. package/docs-site-docusaurus/docs/api/classes/RedBlackTree.md +660 -146
  110. package/docs-site-docusaurus/docs/api/classes/SegmentTree.md +10 -10
  111. package/docs-site-docusaurus/docs/api/classes/SinglyLinkedList.md +78 -78
  112. package/docs-site-docusaurus/docs/api/classes/SinglyLinkedListNode.md +6 -6
  113. package/docs-site-docusaurus/docs/api/classes/SkipList.md +44 -44
  114. package/docs-site-docusaurus/docs/api/classes/Stack.md +39 -39
  115. package/docs-site-docusaurus/docs/api/classes/TreeMap.md +165 -33
  116. package/docs-site-docusaurus/docs/api/classes/TreeMultiMap.md +162 -46
  117. package/docs-site-docusaurus/docs/api/classes/TreeSet.md +161 -32
  118. package/docs-site-docusaurus/docs/api/classes/Trie.md +47 -47
  119. package/docs-site-docusaurus/docs/api/classes/TrieNode.md +8 -8
  120. package/docs-site-docusaurus/docs/api/classes/UndirectedGraph.md +81 -81
  121. package/docs-site-docusaurus/docs/guide/architecture.md +2 -0
  122. package/docs-site-docusaurus/docs/guide/concepts.md +32 -1
  123. package/docs-site-docusaurus/docs/guide/faq.md +180 -0
  124. package/docs-site-docusaurus/docs/guide/guides.md +40 -54
  125. package/docs-site-docusaurus/docs/guide/installation.md +2 -0
  126. package/docs-site-docusaurus/docs/guide/integrations.md +2 -0
  127. package/docs-site-docusaurus/docs/guide/overview.md +7 -0
  128. package/docs-site-docusaurus/docs/guide/performance.md +2 -0
  129. package/docs-site-docusaurus/docs/guide/quick-start.md +31 -0
  130. package/docs-site-docusaurus/docs/guide/use-cases/_category_.json +6 -0
  131. package/docs-site-docusaurus/docs/guide/use-cases/array-sort-alternative.md +158 -0
  132. package/docs-site-docusaurus/docs/guide/use-cases/heap-vs-sorting.md +92 -0
  133. package/docs-site-docusaurus/docs/guide/use-cases/map-vs-treemap.md +151 -0
  134. package/docs-site-docusaurus/docs/guide/use-cases/priority-queue-typescript.md +113 -0
  135. package/docs-site-docusaurus/docs/guide/use-cases/treemap-javascript.md +151 -0
  136. package/docs-site-docusaurus/docusaurus.config.ts +1 -1
  137. package/docs-site-docusaurus/src/pages/index.tsx +51 -2
  138. package/docs-site-docusaurus/static/llms.txt +37 -0
  139. package/llms.txt +37 -0
  140. package/package.json +64 -56
  141. package/src/common/error.ts +19 -1
  142. package/src/common/index.ts +1 -1
  143. package/src/data-structures/base/iterable-element-base.ts +3 -2
  144. package/src/data-structures/binary-tree/avl-tree.ts +47 -0
  145. package/src/data-structures/binary-tree/binary-indexed-tree.ts +46 -4
  146. package/src/data-structures/binary-tree/binary-tree.ts +79 -4
  147. package/src/data-structures/binary-tree/bst.ts +441 -6
  148. package/src/data-structures/binary-tree/red-black-tree.ts +73 -0
  149. package/src/data-structures/binary-tree/segment-tree.ts +18 -0
  150. package/src/data-structures/binary-tree/tree-map.ts +434 -9
  151. package/src/data-structures/binary-tree/tree-multi-map.ts +426 -5
  152. package/src/data-structures/binary-tree/tree-multi-set.ts +350 -6
  153. package/src/data-structures/binary-tree/tree-set.ts +410 -8
  154. package/src/data-structures/graph/abstract-graph.ts +2 -2
  155. package/src/data-structures/graph/directed-graph.ts +30 -0
  156. package/src/data-structures/graph/undirected-graph.ts +27 -0
  157. package/src/data-structures/hash/hash-map.ts +35 -4
  158. package/src/data-structures/heap/heap.ts +46 -4
  159. package/src/data-structures/heap/max-heap.ts +2 -2
  160. package/src/data-structures/linked-list/doubly-linked-list.ts +51 -0
  161. package/src/data-structures/linked-list/singly-linked-list.ts +45 -0
  162. package/src/data-structures/linked-list/skip-linked-list.ts +59 -5
  163. package/src/data-structures/matrix/matrix.ts +33 -9
  164. package/src/data-structures/priority-queue/max-priority-queue.ts +2 -2
  165. package/src/data-structures/queue/deque.ts +45 -0
  166. package/src/data-structures/queue/queue.ts +36 -0
  167. package/src/data-structures/stack/stack.ts +30 -0
  168. package/src/data-structures/trie/trie.ts +38 -2
  169. package/src/types/data-structures/binary-tree/bst.ts +1 -0
  170. package/src/types/data-structures/binary-tree/tree-map.ts +6 -0
  171. package/src/types/data-structures/binary-tree/tree-multi-set.ts +5 -0
  172. package/src/types/data-structures/binary-tree/tree-set.ts +5 -0
@@ -4,6 +4,10 @@ var __defProp = Object.defineProperty;
4
4
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
5
5
 
6
6
  // src/common/error.ts
7
+ function raise(ErrorClass, message) {
8
+ throw new ErrorClass(message);
9
+ }
10
+ __name(raise, "raise");
7
11
  var ERR = {
8
12
  // Range / index
9
13
  indexOutOfRange: /* @__PURE__ */ __name((index, min, max, ctx) => `${ctx ? ctx + ": " : ""}Index ${index} is out of range [${min}, ${max}].`, "indexOutOfRange"),
@@ -25,7 +29,9 @@ var ERR = {
25
29
  matrixSingular: /* @__PURE__ */ __name(() => "Matrix: Singular matrix, inverse does not exist.", "matrixSingular"),
26
30
  matrixNotSquare: /* @__PURE__ */ __name(() => "Matrix: Must be square for inversion.", "matrixNotSquare"),
27
31
  matrixNotRectangular: /* @__PURE__ */ __name(() => "Matrix: Must be rectangular for transposition.", "matrixNotRectangular"),
28
- matrixRowMismatch: /* @__PURE__ */ __name((expected, got) => `Matrix: Expected row length ${expected}, but got ${got}.`, "matrixRowMismatch")
32
+ matrixRowMismatch: /* @__PURE__ */ __name((expected, got) => `Matrix: Expected row length ${expected}, but got ${got}.`, "matrixRowMismatch"),
33
+ // Order statistic
34
+ orderStatisticNotEnabled: /* @__PURE__ */ __name((method, ctx) => `${ctx ? ctx + ": " : ""}${method}() requires enableOrderStatistic: true.`, "orderStatisticNotEnabled")
29
35
  };
30
36
 
31
37
  // src/data-structures/matrix/matrix.ts
@@ -142,6 +148,10 @@ var Matrix = class _Matrix {
142
148
 
143
149
 
144
150
 
151
+
152
+
153
+
154
+
145
155
 
146
156
 
147
157
 
@@ -206,6 +216,10 @@ var Matrix = class _Matrix {
206
216
 
207
217
 
208
218
 
219
+
220
+
221
+
222
+
209
223
 
210
224
 
211
225
 
@@ -266,6 +280,10 @@ var Matrix = class _Matrix {
266
280
 
267
281
 
268
282
 
283
+
284
+
285
+
286
+
269
287
 
270
288
 
271
289
 
@@ -296,7 +314,7 @@ var Matrix = class _Matrix {
296
314
  */
297
315
  add(matrix) {
298
316
  if (!this.isMatchForCalculate(matrix)) {
299
- throw new Error(ERR.matrixDimensionMismatch("addition"));
317
+ raise(Error, ERR.matrixDimensionMismatch("addition"));
300
318
  }
301
319
  const resultData = [];
302
320
  for (let i = 0; i < this.rows; i++) {
@@ -348,6 +366,10 @@ var Matrix = class _Matrix {
348
366
 
349
367
 
350
368
 
369
+
370
+
371
+
372
+
351
373
 
352
374
 
353
375
 
@@ -362,7 +384,7 @@ var Matrix = class _Matrix {
362
384
  */
363
385
  subtract(matrix) {
364
386
  if (!this.isMatchForCalculate(matrix)) {
365
- throw new Error(ERR.matrixDimensionMismatch("subtraction"));
387
+ raise(Error, ERR.matrixDimensionMismatch("subtraction"));
366
388
  }
367
389
  const resultData = [];
368
390
  for (let i = 0; i < this.rows; i++) {
@@ -413,6 +435,10 @@ var Matrix = class _Matrix {
413
435
 
414
436
 
415
437
 
438
+
439
+
440
+
441
+
416
442
 
417
443
 
418
444
 
@@ -443,7 +469,7 @@ var Matrix = class _Matrix {
443
469
  */
444
470
  multiply(matrix) {
445
471
  if (this.cols !== matrix.rows) {
446
- throw new Error(ERR.matrixDimensionMismatch("multiplication (A.cols must equal B.rows)"));
472
+ raise(Error, ERR.matrixDimensionMismatch("multiplication (A.cols must equal B.rows)"));
447
473
  }
448
474
  const resultData = [];
449
475
  for (let i = 0; i < this.rows; i++) {
@@ -500,6 +526,10 @@ var Matrix = class _Matrix {
500
526
 
501
527
 
502
528
 
529
+
530
+
531
+
532
+
503
533
 
504
534
 
505
535
 
@@ -527,7 +557,7 @@ var Matrix = class _Matrix {
527
557
  */
528
558
  transpose() {
529
559
  if (this.data.some((row) => row.length !== this.cols)) {
530
- throw new Error(ERR.matrixNotRectangular());
560
+ raise(Error, ERR.matrixNotRectangular());
531
561
  }
532
562
  const resultData = [];
533
563
  for (let j = 0; j < this.cols; j++) {
@@ -574,6 +604,10 @@ var Matrix = class _Matrix {
574
604
 
575
605
 
576
606
 
607
+
608
+
609
+
610
+
577
611
 
578
612
 
579
613
 
@@ -593,7 +627,7 @@ var Matrix = class _Matrix {
593
627
  */
594
628
  inverse() {
595
629
  if (this.rows !== this.cols) {
596
- throw new Error(ERR.matrixNotSquare());
630
+ raise(Error, ERR.matrixNotSquare());
597
631
  }
598
632
  const augmentedMatrixData = [];
599
633
  for (let i = 0; i < this.rows; i++) {
@@ -615,12 +649,12 @@ var Matrix = class _Matrix {
615
649
  pivotRow++;
616
650
  }
617
651
  if (pivotRow === this.rows) {
618
- throw new Error(ERR.matrixSingular());
652
+ raise(Error, ERR.matrixSingular());
619
653
  }
620
654
  augmentedMatrix._swapRows(i, pivotRow);
621
655
  const pivotElement = augmentedMatrix.get(i, i) ?? 1;
622
656
  if (pivotElement === 0) {
623
- throw new Error(ERR.matrixSingular());
657
+ raise(Error, ERR.matrixSingular());
624
658
  }
625
659
  augmentedMatrix._scaleRow(i, 1 / pivotElement);
626
660
  for (let j = 0; j < this.rows; j++) {
@@ -673,6 +707,10 @@ var Matrix = class _Matrix {
673
707
 
674
708
 
675
709
 
710
+
711
+
712
+
713
+
676
714
 
677
715
 
678
716
 
@@ -687,7 +725,7 @@ var Matrix = class _Matrix {
687
725
  */
688
726
  dot(matrix) {
689
727
  if (this.cols !== matrix.rows) {
690
- throw new Error(ERR.matrixDimensionMismatch("dot product (A.cols must equal B.rows)"));
728
+ raise(Error, ERR.matrixDimensionMismatch("dot product (A.cols must equal B.rows)"));
691
729
  }
692
730
  const resultData = [];
693
731
  for (let i = 0; i < this.rows; i++) {
@@ -3,6 +3,37 @@
3
3
  var __defProp = Object.defineProperty;
4
4
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
5
5
 
6
+ // src/common/error.ts
7
+ function raise(ErrorClass, message) {
8
+ throw new ErrorClass(message);
9
+ }
10
+ __name(raise, "raise");
11
+ var ERR = {
12
+ // Range / index
13
+ indexOutOfRange: /* @__PURE__ */ __name((index, min, max, ctx) => `${ctx ? ctx + ": " : ""}Index ${index} is out of range [${min}, ${max}].`, "indexOutOfRange"),
14
+ invalidIndex: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}Index must be an integer.`, "invalidIndex"),
15
+ // Type / argument
16
+ invalidArgument: /* @__PURE__ */ __name((reason, ctx) => `${ctx ? ctx + ": " : ""}${reason}`, "invalidArgument"),
17
+ comparatorRequired: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}Comparator is required for non-number/non-string/non-Date keys.`, "comparatorRequired"),
18
+ invalidKey: /* @__PURE__ */ __name((reason, ctx) => `${ctx ? ctx + ": " : ""}${reason}`, "invalidKey"),
19
+ notAFunction: /* @__PURE__ */ __name((name, ctx) => `${ctx ? ctx + ": " : ""}${name} must be a function.`, "notAFunction"),
20
+ invalidEntry: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}Each entry must be a [key, value] tuple.`, "invalidEntry"),
21
+ invalidNaN: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}NaN is not a valid key.`, "invalidNaN"),
22
+ invalidDate: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}Invalid Date key.`, "invalidDate"),
23
+ reduceEmpty: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}Reduce of empty structure with no initial value.`, "reduceEmpty"),
24
+ callbackReturnType: /* @__PURE__ */ __name((expected, got, ctx) => `${ctx ? ctx + ": " : ""}Callback must return ${expected}; got ${got}.`, "callbackReturnType"),
25
+ // State / operation
26
+ invalidOperation: /* @__PURE__ */ __name((reason, ctx) => `${ctx ? ctx + ": " : ""}${reason}`, "invalidOperation"),
27
+ // Matrix
28
+ matrixDimensionMismatch: /* @__PURE__ */ __name((op) => `Matrix: Dimensions must be compatible for ${op}.`, "matrixDimensionMismatch"),
29
+ matrixSingular: /* @__PURE__ */ __name(() => "Matrix: Singular matrix, inverse does not exist.", "matrixSingular"),
30
+ matrixNotSquare: /* @__PURE__ */ __name(() => "Matrix: Must be square for inversion.", "matrixNotSquare"),
31
+ matrixNotRectangular: /* @__PURE__ */ __name(() => "Matrix: Must be rectangular for transposition.", "matrixNotRectangular"),
32
+ matrixRowMismatch: /* @__PURE__ */ __name((expected, got) => `Matrix: Expected row length ${expected}, but got ${got}.`, "matrixRowMismatch"),
33
+ // Order statistic
34
+ orderStatisticNotEnabled: /* @__PURE__ */ __name((method, ctx) => `${ctx ? ctx + ": " : ""}${method}() requires enableOrderStatistic: true.`, "orderStatisticNotEnabled")
35
+ };
36
+
6
37
  // src/data-structures/base/iterable-element-base.ts
7
38
  var IterableElementBase = class {
8
39
  static {
@@ -21,7 +52,7 @@ var IterableElementBase = class {
21
52
  if (options) {
22
53
  const { toElementFn } = options;
23
54
  if (typeof toElementFn === "function") this._toElementFn = toElementFn;
24
- else if (toElementFn) throw new TypeError("toElementFn must be a function type");
55
+ else if (toElementFn) raise(TypeError, "toElementFn must be a function type");
25
56
  }
26
57
  }
27
58
  /**
@@ -184,7 +215,7 @@ var IterableElementBase = class {
184
215
  acc = initialValue;
185
216
  } else {
186
217
  const first = iter.next();
187
- if (first.done) throw new TypeError("Reduce of empty structure with no initial value");
218
+ if (first.done) raise(TypeError, "Reduce of empty structure with no initial value");
188
219
  acc = first.value;
189
220
  index = 1;
190
221
  }
@@ -226,31 +257,6 @@ var IterableElementBase = class {
226
257
  }
227
258
  };
228
259
 
229
- // src/common/error.ts
230
- var ERR = {
231
- // Range / index
232
- indexOutOfRange: /* @__PURE__ */ __name((index, min, max, ctx) => `${ctx ? ctx + ": " : ""}Index ${index} is out of range [${min}, ${max}].`, "indexOutOfRange"),
233
- invalidIndex: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}Index must be an integer.`, "invalidIndex"),
234
- // Type / argument
235
- invalidArgument: /* @__PURE__ */ __name((reason, ctx) => `${ctx ? ctx + ": " : ""}${reason}`, "invalidArgument"),
236
- comparatorRequired: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}Comparator is required for non-number/non-string/non-Date keys.`, "comparatorRequired"),
237
- invalidKey: /* @__PURE__ */ __name((reason, ctx) => `${ctx ? ctx + ": " : ""}${reason}`, "invalidKey"),
238
- notAFunction: /* @__PURE__ */ __name((name, ctx) => `${ctx ? ctx + ": " : ""}${name} must be a function.`, "notAFunction"),
239
- invalidEntry: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}Each entry must be a [key, value] tuple.`, "invalidEntry"),
240
- invalidNaN: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}NaN is not a valid key.`, "invalidNaN"),
241
- invalidDate: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}Invalid Date key.`, "invalidDate"),
242
- reduceEmpty: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}Reduce of empty structure with no initial value.`, "reduceEmpty"),
243
- callbackReturnType: /* @__PURE__ */ __name((expected, got, ctx) => `${ctx ? ctx + ": " : ""}Callback must return ${expected}; got ${got}.`, "callbackReturnType"),
244
- // State / operation
245
- invalidOperation: /* @__PURE__ */ __name((reason, ctx) => `${ctx ? ctx + ": " : ""}${reason}`, "invalidOperation"),
246
- // Matrix
247
- matrixDimensionMismatch: /* @__PURE__ */ __name((op) => `Matrix: Dimensions must be compatible for ${op}.`, "matrixDimensionMismatch"),
248
- matrixSingular: /* @__PURE__ */ __name(() => "Matrix: Singular matrix, inverse does not exist.", "matrixSingular"),
249
- matrixNotSquare: /* @__PURE__ */ __name(() => "Matrix: Must be square for inversion.", "matrixNotSquare"),
250
- matrixNotRectangular: /* @__PURE__ */ __name(() => "Matrix: Must be rectangular for transposition.", "matrixNotRectangular"),
251
- matrixRowMismatch: /* @__PURE__ */ __name((expected, got) => `Matrix: Expected row length ${expected}, but got ${got}.`, "matrixRowMismatch")
252
- };
253
-
254
260
  // src/data-structures/heap/heap.ts
255
261
  var Heap = class _Heap extends IterableElementBase {
256
262
  static {
@@ -311,6 +317,10 @@ var Heap = class _Heap extends IterableElementBase {
311
317
 
312
318
 
313
319
 
320
+
321
+
322
+
323
+
314
324
 
315
325
 
316
326
 
@@ -393,6 +403,10 @@ var Heap = class _Heap extends IterableElementBase {
393
403
 
394
404
 
395
405
 
406
+
407
+
408
+
409
+
396
410
 
397
411
 
398
412
 
@@ -446,6 +460,10 @@ var Heap = class _Heap extends IterableElementBase {
446
460
 
447
461
 
448
462
 
463
+
464
+
465
+
466
+
449
467
 
450
468
 
451
469
 
@@ -501,6 +519,10 @@ var Heap = class _Heap extends IterableElementBase {
501
519
 
502
520
 
503
521
 
522
+
523
+
524
+
525
+
504
526
 
505
527
 
506
528
 
@@ -572,6 +594,10 @@ var Heap = class _Heap extends IterableElementBase {
572
594
 
573
595
 
574
596
 
597
+
598
+
599
+
600
+
575
601
 
576
602
 
577
603
 
@@ -668,6 +694,10 @@ var Heap = class _Heap extends IterableElementBase {
668
694
 
669
695
 
670
696
 
697
+
698
+
699
+
700
+
671
701
 
672
702
 
673
703
 
@@ -711,6 +741,10 @@ var Heap = class _Heap extends IterableElementBase {
711
741
 
712
742
 
713
743
 
744
+
745
+
746
+
747
+
714
748
 
715
749
 
716
750
 
@@ -757,6 +791,10 @@ var Heap = class _Heap extends IterableElementBase {
757
791
 
758
792
 
759
793
 
794
+
795
+
796
+
797
+
760
798
 
761
799
 
762
800
 
@@ -800,6 +838,10 @@ var Heap = class _Heap extends IterableElementBase {
800
838
 
801
839
 
802
840
 
841
+
842
+
843
+
844
+
803
845
 
804
846
 
805
847
 
@@ -889,6 +931,10 @@ var Heap = class _Heap extends IterableElementBase {
889
931
 
890
932
 
891
933
 
934
+
935
+
936
+
937
+
892
938
 
893
939
 
894
940
 
@@ -965,6 +1011,10 @@ var Heap = class _Heap extends IterableElementBase {
965
1011
 
966
1012
 
967
1013
 
1014
+
1015
+
1016
+
1017
+
968
1018
 
969
1019
 
970
1020
 
@@ -1014,6 +1064,10 @@ var Heap = class _Heap extends IterableElementBase {
1014
1064
 
1015
1065
 
1016
1066
 
1067
+
1068
+
1069
+
1070
+
1017
1071
 
1018
1072
 
1019
1073
 
@@ -1062,6 +1116,10 @@ var Heap = class _Heap extends IterableElementBase {
1062
1116
 
1063
1117
 
1064
1118
 
1119
+
1120
+
1121
+
1122
+
1065
1123
 
1066
1124
 
1067
1125
 
@@ -1117,6 +1175,10 @@ var Heap = class _Heap extends IterableElementBase {
1117
1175
 
1118
1176
 
1119
1177
 
1178
+
1179
+
1180
+
1181
+
1120
1182
 
1121
1183
 
1122
1184
 
@@ -1130,7 +1192,7 @@ var Heap = class _Heap extends IterableElementBase {
1130
1192
  */
1131
1193
  map(callback, options, thisArg) {
1132
1194
  const { comparator, toElementFn, ...rest } = options ?? {};
1133
- if (!comparator) throw new TypeError(ERR.comparatorRequired("Heap.map"));
1195
+ if (!comparator) raise(TypeError, ERR.comparatorRequired("Heap.map"));
1134
1196
  const out = this._createLike([], { ...rest, comparator, toElementFn });
1135
1197
  let i = 0;
1136
1198
  for (const x of this) {
@@ -1157,7 +1219,7 @@ var Heap = class _Heap extends IterableElementBase {
1157
1219
  }
1158
1220
  _DEFAULT_COMPARATOR = /* @__PURE__ */ __name((a, b) => {
1159
1221
  if (typeof a === "object" || typeof b === "object") {
1160
- throw new TypeError(ERR.comparatorRequired("Heap"));
1222
+ raise(TypeError, ERR.comparatorRequired("Heap"));
1161
1223
  }
1162
1224
  if (a > b) return 1;
1163
1225
  if (a < b) return -1;
@@ -1282,7 +1344,7 @@ var MaxPriorityQueue = class extends PriorityQueue {
1282
1344
  super(elements, {
1283
1345
  comparator: /* @__PURE__ */ __name((a, b) => {
1284
1346
  if (typeof a === "object" || typeof b === "object") {
1285
- throw new TypeError(ERR.comparatorRequired("MaxPriorityQueue"));
1347
+ raise(TypeError, ERR.comparatorRequired("MaxPriorityQueue"));
1286
1348
  }
1287
1349
  if (a < b) return 1;
1288
1350
  if (a > b) return -1;