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
@@ -6,6 +6,10 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
6
6
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
7
7
 
8
8
  // src/common/error.ts
9
+ function raise(ErrorClass, message) {
10
+ throw new ErrorClass(message);
11
+ }
12
+ __name(raise, "raise");
9
13
  var ERR = {
10
14
  // Range / index
11
15
  indexOutOfRange: /* @__PURE__ */ __name((index, min, max, ctx) => `${ctx ? ctx + ": " : ""}Index ${index} is out of range [${min}, ${max}].`, "indexOutOfRange"),
@@ -27,7 +31,9 @@ var ERR = {
27
31
  matrixSingular: /* @__PURE__ */ __name(() => "Matrix: Singular matrix, inverse does not exist.", "matrixSingular"),
28
32
  matrixNotSquare: /* @__PURE__ */ __name(() => "Matrix: Must be square for inversion.", "matrixNotSquare"),
29
33
  matrixNotRectangular: /* @__PURE__ */ __name(() => "Matrix: Must be rectangular for transposition.", "matrixNotRectangular"),
30
- matrixRowMismatch: /* @__PURE__ */ __name((expected, got) => `Matrix: Expected row length ${expected}, but got ${got}.`, "matrixRowMismatch")
34
+ matrixRowMismatch: /* @__PURE__ */ __name((expected, got) => `Matrix: Expected row length ${expected}, but got ${got}.`, "matrixRowMismatch"),
35
+ // Order statistic
36
+ orderStatisticNotEnabled: /* @__PURE__ */ __name((method, ctx) => `${ctx ? ctx + ": " : ""}${method}() requires enableOrderStatistic: true.`, "orderStatisticNotEnabled")
31
37
  };
32
38
 
33
39
  // 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
 
@@ -297,7 +315,7 @@ var _Matrix = class _Matrix {
297
315
  add(matrix) {
298
316
  var _a;
299
317
  if (!this.isMatchForCalculate(matrix)) {
300
- throw new Error(ERR.matrixDimensionMismatch("addition"));
318
+ raise(Error, ERR.matrixDimensionMismatch("addition"));
301
319
  }
302
320
  const resultData = [];
303
321
  for (let i = 0; i < this.rows; i++) {
@@ -349,6 +367,10 @@ var _Matrix = class _Matrix {
349
367
 
350
368
 
351
369
 
370
+
371
+
372
+
373
+
352
374
 
353
375
 
354
376
 
@@ -364,7 +386,7 @@ var _Matrix = class _Matrix {
364
386
  subtract(matrix) {
365
387
  var _a;
366
388
  if (!this.isMatchForCalculate(matrix)) {
367
- throw new Error(ERR.matrixDimensionMismatch("subtraction"));
389
+ raise(Error, ERR.matrixDimensionMismatch("subtraction"));
368
390
  }
369
391
  const resultData = [];
370
392
  for (let i = 0; i < this.rows; i++) {
@@ -415,6 +437,10 @@ var _Matrix = class _Matrix {
415
437
 
416
438
 
417
439
 
440
+
441
+
442
+
443
+
418
444
 
419
445
 
420
446
 
@@ -445,7 +471,7 @@ var _Matrix = class _Matrix {
445
471
  */
446
472
  multiply(matrix) {
447
473
  if (this.cols !== matrix.rows) {
448
- throw new Error(ERR.matrixDimensionMismatch("multiplication (A.cols must equal B.rows)"));
474
+ raise(Error, ERR.matrixDimensionMismatch("multiplication (A.cols must equal B.rows)"));
449
475
  }
450
476
  const resultData = [];
451
477
  for (let i = 0; i < this.rows; i++) {
@@ -502,6 +528,10 @@ var _Matrix = class _Matrix {
502
528
 
503
529
 
504
530
 
531
+
532
+
533
+
534
+
505
535
 
506
536
 
507
537
 
@@ -529,7 +559,7 @@ var _Matrix = class _Matrix {
529
559
  */
530
560
  transpose() {
531
561
  if (this.data.some((row) => row.length !== this.cols)) {
532
- throw new Error(ERR.matrixNotRectangular());
562
+ raise(Error, ERR.matrixNotRectangular());
533
563
  }
534
564
  const resultData = [];
535
565
  for (let j = 0; j < this.cols; j++) {
@@ -576,6 +606,10 @@ var _Matrix = class _Matrix {
576
606
 
577
607
 
578
608
 
609
+
610
+
611
+
612
+
579
613
 
580
614
 
581
615
 
@@ -596,7 +630,7 @@ var _Matrix = class _Matrix {
596
630
  inverse() {
597
631
  var _a;
598
632
  if (this.rows !== this.cols) {
599
- throw new Error(ERR.matrixNotSquare());
633
+ raise(Error, ERR.matrixNotSquare());
600
634
  }
601
635
  const augmentedMatrixData = [];
602
636
  for (let i = 0; i < this.rows; i++) {
@@ -618,12 +652,12 @@ var _Matrix = class _Matrix {
618
652
  pivotRow++;
619
653
  }
620
654
  if (pivotRow === this.rows) {
621
- throw new Error(ERR.matrixSingular());
655
+ raise(Error, ERR.matrixSingular());
622
656
  }
623
657
  augmentedMatrix._swapRows(i, pivotRow);
624
658
  const pivotElement = (_a = augmentedMatrix.get(i, i)) != null ? _a : 1;
625
659
  if (pivotElement === 0) {
626
- throw new Error(ERR.matrixSingular());
660
+ raise(Error, ERR.matrixSingular());
627
661
  }
628
662
  augmentedMatrix._scaleRow(i, 1 / pivotElement);
629
663
  for (let j = 0; j < this.rows; j++) {
@@ -676,6 +710,10 @@ var _Matrix = class _Matrix {
676
710
 
677
711
 
678
712
 
713
+
714
+
715
+
716
+
679
717
 
680
718
 
681
719
 
@@ -690,7 +728,7 @@ var _Matrix = class _Matrix {
690
728
  */
691
729
  dot(matrix) {
692
730
  if (this.cols !== matrix.rows) {
693
- throw new Error(ERR.matrixDimensionMismatch("dot product (A.cols must equal B.rows)"));
731
+ raise(Error, ERR.matrixDimensionMismatch("dot product (A.cols must equal B.rows)"));
694
732
  }
695
733
  const resultData = [];
696
734
  for (let i = 0; i < this.rows; i++) {
@@ -5,6 +5,37 @@ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { en
5
5
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
6
6
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
7
7
 
8
+ // src/common/error.ts
9
+ function raise(ErrorClass, message) {
10
+ throw new ErrorClass(message);
11
+ }
12
+ __name(raise, "raise");
13
+ var ERR = {
14
+ // Range / index
15
+ indexOutOfRange: /* @__PURE__ */ __name((index, min, max, ctx) => `${ctx ? ctx + ": " : ""}Index ${index} is out of range [${min}, ${max}].`, "indexOutOfRange"),
16
+ invalidIndex: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}Index must be an integer.`, "invalidIndex"),
17
+ // Type / argument
18
+ invalidArgument: /* @__PURE__ */ __name((reason, ctx) => `${ctx ? ctx + ": " : ""}${reason}`, "invalidArgument"),
19
+ comparatorRequired: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}Comparator is required for non-number/non-string/non-Date keys.`, "comparatorRequired"),
20
+ invalidKey: /* @__PURE__ */ __name((reason, ctx) => `${ctx ? ctx + ": " : ""}${reason}`, "invalidKey"),
21
+ notAFunction: /* @__PURE__ */ __name((name, ctx) => `${ctx ? ctx + ": " : ""}${name} must be a function.`, "notAFunction"),
22
+ invalidEntry: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}Each entry must be a [key, value] tuple.`, "invalidEntry"),
23
+ invalidNaN: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}NaN is not a valid key.`, "invalidNaN"),
24
+ invalidDate: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}Invalid Date key.`, "invalidDate"),
25
+ reduceEmpty: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}Reduce of empty structure with no initial value.`, "reduceEmpty"),
26
+ callbackReturnType: /* @__PURE__ */ __name((expected, got, ctx) => `${ctx ? ctx + ": " : ""}Callback must return ${expected}; got ${got}.`, "callbackReturnType"),
27
+ // State / operation
28
+ invalidOperation: /* @__PURE__ */ __name((reason, ctx) => `${ctx ? ctx + ": " : ""}${reason}`, "invalidOperation"),
29
+ // Matrix
30
+ matrixDimensionMismatch: /* @__PURE__ */ __name((op) => `Matrix: Dimensions must be compatible for ${op}.`, "matrixDimensionMismatch"),
31
+ matrixSingular: /* @__PURE__ */ __name(() => "Matrix: Singular matrix, inverse does not exist.", "matrixSingular"),
32
+ matrixNotSquare: /* @__PURE__ */ __name(() => "Matrix: Must be square for inversion.", "matrixNotSquare"),
33
+ matrixNotRectangular: /* @__PURE__ */ __name(() => "Matrix: Must be rectangular for transposition.", "matrixNotRectangular"),
34
+ matrixRowMismatch: /* @__PURE__ */ __name((expected, got) => `Matrix: Expected row length ${expected}, but got ${got}.`, "matrixRowMismatch"),
35
+ // Order statistic
36
+ orderStatisticNotEnabled: /* @__PURE__ */ __name((method, ctx) => `${ctx ? ctx + ": " : ""}${method}() requires enableOrderStatistic: true.`, "orderStatisticNotEnabled")
37
+ };
38
+
8
39
  // src/data-structures/base/iterable-element-base.ts
9
40
  var _IterableElementBase = class _IterableElementBase {
10
41
  /**
@@ -27,7 +58,7 @@ var _IterableElementBase = class _IterableElementBase {
27
58
  if (options) {
28
59
  const { toElementFn } = options;
29
60
  if (typeof toElementFn === "function") this._toElementFn = toElementFn;
30
- else if (toElementFn) throw new TypeError("toElementFn must be a function type");
61
+ else if (toElementFn) raise(TypeError, "toElementFn must be a function type");
31
62
  }
32
63
  }
33
64
  /**
@@ -183,7 +214,7 @@ var _IterableElementBase = class _IterableElementBase {
183
214
  acc = initialValue;
184
215
  } else {
185
216
  const first = iter.next();
186
- if (first.done) throw new TypeError("Reduce of empty structure with no initial value");
217
+ if (first.done) raise(TypeError, "Reduce of empty structure with no initial value");
187
218
  acc = first.value;
188
219
  index = 1;
189
220
  }
@@ -227,31 +258,6 @@ var _IterableElementBase = class _IterableElementBase {
227
258
  __name(_IterableElementBase, "IterableElementBase");
228
259
  var IterableElementBase = _IterableElementBase;
229
260
 
230
- // src/common/error.ts
231
- var ERR = {
232
- // Range / index
233
- indexOutOfRange: /* @__PURE__ */ __name((index, min, max, ctx) => `${ctx ? ctx + ": " : ""}Index ${index} is out of range [${min}, ${max}].`, "indexOutOfRange"),
234
- invalidIndex: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}Index must be an integer.`, "invalidIndex"),
235
- // Type / argument
236
- invalidArgument: /* @__PURE__ */ __name((reason, ctx) => `${ctx ? ctx + ": " : ""}${reason}`, "invalidArgument"),
237
- comparatorRequired: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}Comparator is required for non-number/non-string/non-Date keys.`, "comparatorRequired"),
238
- invalidKey: /* @__PURE__ */ __name((reason, ctx) => `${ctx ? ctx + ": " : ""}${reason}`, "invalidKey"),
239
- notAFunction: /* @__PURE__ */ __name((name, ctx) => `${ctx ? ctx + ": " : ""}${name} must be a function.`, "notAFunction"),
240
- invalidEntry: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}Each entry must be a [key, value] tuple.`, "invalidEntry"),
241
- invalidNaN: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}NaN is not a valid key.`, "invalidNaN"),
242
- invalidDate: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}Invalid Date key.`, "invalidDate"),
243
- reduceEmpty: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}Reduce of empty structure with no initial value.`, "reduceEmpty"),
244
- callbackReturnType: /* @__PURE__ */ __name((expected, got, ctx) => `${ctx ? ctx + ": " : ""}Callback must return ${expected}; got ${got}.`, "callbackReturnType"),
245
- // State / operation
246
- invalidOperation: /* @__PURE__ */ __name((reason, ctx) => `${ctx ? ctx + ": " : ""}${reason}`, "invalidOperation"),
247
- // Matrix
248
- matrixDimensionMismatch: /* @__PURE__ */ __name((op) => `Matrix: Dimensions must be compatible for ${op}.`, "matrixDimensionMismatch"),
249
- matrixSingular: /* @__PURE__ */ __name(() => "Matrix: Singular matrix, inverse does not exist.", "matrixSingular"),
250
- matrixNotSquare: /* @__PURE__ */ __name(() => "Matrix: Must be square for inversion.", "matrixNotSquare"),
251
- matrixNotRectangular: /* @__PURE__ */ __name(() => "Matrix: Must be rectangular for transposition.", "matrixNotRectangular"),
252
- matrixRowMismatch: /* @__PURE__ */ __name((expected, got) => `Matrix: Expected row length ${expected}, but got ${got}.`, "matrixRowMismatch")
253
- };
254
-
255
261
  // src/data-structures/heap/heap.ts
256
262
  var _Heap = class _Heap extends IterableElementBase {
257
263
  /**
@@ -267,7 +273,7 @@ var _Heap = class _Heap extends IterableElementBase {
267
273
  __publicField(this, "_elements", []);
268
274
  __publicField(this, "_DEFAULT_COMPARATOR", /* @__PURE__ */ __name((a, b) => {
269
275
  if (typeof a === "object" || typeof b === "object") {
270
- throw new TypeError(ERR.comparatorRequired("Heap"));
276
+ raise(TypeError, ERR.comparatorRequired("Heap"));
271
277
  }
272
278
  if (a > b) return 1;
273
279
  if (a < b) return -1;
@@ -318,6 +324,10 @@ var _Heap = class _Heap extends IterableElementBase {
318
324
 
319
325
 
320
326
 
327
+
328
+
329
+
330
+
321
331
 
322
332
 
323
333
 
@@ -401,6 +411,10 @@ var _Heap = class _Heap extends IterableElementBase {
401
411
 
402
412
 
403
413
 
414
+
415
+
416
+
417
+
404
418
 
405
419
 
406
420
 
@@ -454,6 +468,10 @@ var _Heap = class _Heap extends IterableElementBase {
454
468
 
455
469
 
456
470
 
471
+
472
+
473
+
474
+
457
475
 
458
476
 
459
477
 
@@ -509,6 +527,10 @@ var _Heap = class _Heap extends IterableElementBase {
509
527
 
510
528
 
511
529
 
530
+
531
+
532
+
533
+
512
534
 
513
535
 
514
536
 
@@ -580,6 +602,10 @@ var _Heap = class _Heap extends IterableElementBase {
580
602
 
581
603
 
582
604
 
605
+
606
+
607
+
608
+
583
609
 
584
610
 
585
611
 
@@ -676,6 +702,10 @@ var _Heap = class _Heap extends IterableElementBase {
676
702
 
677
703
 
678
704
 
705
+
706
+
707
+
708
+
679
709
 
680
710
 
681
711
 
@@ -719,6 +749,10 @@ var _Heap = class _Heap extends IterableElementBase {
719
749
 
720
750
 
721
751
 
752
+
753
+
754
+
755
+
722
756
 
723
757
 
724
758
 
@@ -765,6 +799,10 @@ var _Heap = class _Heap extends IterableElementBase {
765
799
 
766
800
 
767
801
 
802
+
803
+
804
+
805
+
768
806
 
769
807
 
770
808
 
@@ -808,6 +846,10 @@ var _Heap = class _Heap extends IterableElementBase {
808
846
 
809
847
 
810
848
 
849
+
850
+
851
+
852
+
811
853
 
812
854
 
813
855
 
@@ -897,6 +939,10 @@ var _Heap = class _Heap extends IterableElementBase {
897
939
 
898
940
 
899
941
 
942
+
943
+
944
+
945
+
900
946
 
901
947
 
902
948
 
@@ -973,6 +1019,10 @@ var _Heap = class _Heap extends IterableElementBase {
973
1019
 
974
1020
 
975
1021
 
1022
+
1023
+
1024
+
1025
+
976
1026
 
977
1027
 
978
1028
 
@@ -1022,6 +1072,10 @@ var _Heap = class _Heap extends IterableElementBase {
1022
1072
 
1023
1073
 
1024
1074
 
1075
+
1076
+
1077
+
1078
+
1025
1079
 
1026
1080
 
1027
1081
 
@@ -1070,6 +1124,10 @@ var _Heap = class _Heap extends IterableElementBase {
1070
1124
 
1071
1125
 
1072
1126
 
1127
+
1128
+
1129
+
1130
+
1073
1131
 
1074
1132
 
1075
1133
 
@@ -1125,6 +1183,10 @@ var _Heap = class _Heap extends IterableElementBase {
1125
1183
 
1126
1184
 
1127
1185
 
1186
+
1187
+
1188
+
1189
+
1128
1190
 
1129
1191
 
1130
1192
 
@@ -1138,7 +1200,7 @@ var _Heap = class _Heap extends IterableElementBase {
1138
1200
  */
1139
1201
  map(callback, options, thisArg) {
1140
1202
  const { comparator, toElementFn, ...rest } = options != null ? options : {};
1141
- if (!comparator) throw new TypeError(ERR.comparatorRequired("Heap.map"));
1203
+ if (!comparator) raise(TypeError, ERR.comparatorRequired("Heap.map"));
1142
1204
  const out = this._createLike([], { ...rest, comparator, toElementFn });
1143
1205
  let i = 0;
1144
1206
  for (const x of this) {
@@ -1278,7 +1340,7 @@ var _MaxPriorityQueue = class _MaxPriorityQueue extends PriorityQueue {
1278
1340
  super(elements, {
1279
1341
  comparator: /* @__PURE__ */ __name((a, b) => {
1280
1342
  if (typeof a === "object" || typeof b === "object") {
1281
- throw new TypeError(ERR.comparatorRequired("MaxPriorityQueue"));
1343
+ raise(TypeError, ERR.comparatorRequired("MaxPriorityQueue"));
1282
1344
  }
1283
1345
  if (a < b) return 1;
1284
1346
  if (a > b) return -1;