queue-typed 2.5.0 → 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 (90) hide show
  1. package/dist/cjs/index.cjs +1081 -66
  2. package/dist/cjs/index.cjs.map +1 -1
  3. package/dist/cjs-legacy/index.cjs +1081 -66
  4. package/dist/cjs-legacy/index.cjs.map +1 -1
  5. package/dist/esm/index.mjs +1081 -67
  6. package/dist/esm/index.mjs.map +1 -1
  7. package/dist/esm-legacy/index.mjs +1081 -67
  8. package/dist/esm-legacy/index.mjs.map +1 -1
  9. package/dist/types/common/error.d.ts +9 -0
  10. package/dist/types/common/index.d.ts +1 -1
  11. package/dist/types/data-structures/base/index.d.ts +1 -0
  12. package/dist/types/data-structures/base/iterable-entry-base.d.ts +8 -8
  13. package/dist/types/data-structures/base/linear-base.d.ts +3 -3
  14. package/dist/types/data-structures/binary-tree/avl-tree.d.ts +288 -0
  15. package/dist/types/data-structures/binary-tree/binary-indexed-tree.d.ts +336 -0
  16. package/dist/types/data-structures/binary-tree/binary-tree.d.ts +618 -18
  17. package/dist/types/data-structures/binary-tree/bst.d.ts +676 -1
  18. package/dist/types/data-structures/binary-tree/red-black-tree.d.ts +456 -0
  19. package/dist/types/data-structures/binary-tree/segment-tree.d.ts +144 -1
  20. package/dist/types/data-structures/binary-tree/tree-map.d.ts +3307 -399
  21. package/dist/types/data-structures/binary-tree/tree-multi-map.d.ts +3285 -360
  22. package/dist/types/data-structures/binary-tree/tree-multi-set.d.ts +2674 -325
  23. package/dist/types/data-structures/binary-tree/tree-set.d.ts +3072 -287
  24. package/dist/types/data-structures/graph/abstract-graph.d.ts +4 -4
  25. package/dist/types/data-structures/graph/directed-graph.d.ts +240 -0
  26. package/dist/types/data-structures/graph/undirected-graph.d.ts +216 -0
  27. package/dist/types/data-structures/hash/hash-map.d.ts +274 -10
  28. package/dist/types/data-structures/heap/heap.d.ts +336 -0
  29. package/dist/types/data-structures/linked-list/doubly-linked-list.d.ts +411 -3
  30. package/dist/types/data-structures/linked-list/singly-linked-list.d.ts +363 -3
  31. package/dist/types/data-structures/linked-list/skip-linked-list.d.ts +434 -2
  32. package/dist/types/data-structures/matrix/matrix.d.ts +192 -0
  33. package/dist/types/data-structures/queue/deque.d.ts +364 -4
  34. package/dist/types/data-structures/queue/queue.d.ts +288 -0
  35. package/dist/types/data-structures/stack/stack.d.ts +240 -0
  36. package/dist/types/data-structures/trie/trie.d.ts +292 -4
  37. package/dist/types/interfaces/graph.d.ts +1 -1
  38. package/dist/types/types/common.d.ts +2 -2
  39. package/dist/types/types/data-structures/binary-tree/bst.d.ts +1 -0
  40. package/dist/types/types/data-structures/binary-tree/tree-map.d.ts +5 -0
  41. package/dist/types/types/data-structures/binary-tree/tree-multi-set.d.ts +4 -0
  42. package/dist/types/types/data-structures/binary-tree/tree-set.d.ts +4 -0
  43. package/dist/types/types/data-structures/heap/heap.d.ts +1 -0
  44. package/dist/types/types/data-structures/priority-queue/priority-queue.d.ts +1 -0
  45. package/dist/types/types/utils/validate-type.d.ts +4 -4
  46. package/dist/umd/queue-typed.js +1081 -67
  47. package/dist/umd/queue-typed.js.map +1 -1
  48. package/dist/umd/queue-typed.min.js +1 -1
  49. package/dist/umd/queue-typed.min.js.map +1 -1
  50. package/package.json +2 -2
  51. package/src/common/error.ts +19 -1
  52. package/src/common/index.ts +1 -1
  53. package/src/data-structures/base/index.ts +1 -0
  54. package/src/data-structures/base/iterable-element-base.ts +3 -2
  55. package/src/data-structures/base/iterable-entry-base.ts +8 -8
  56. package/src/data-structures/base/linear-base.ts +3 -3
  57. package/src/data-structures/binary-tree/avl-tree.ts +299 -0
  58. package/src/data-structures/binary-tree/binary-indexed-tree.ts +341 -5
  59. package/src/data-structures/binary-tree/binary-tree.ts +606 -6
  60. package/src/data-structures/binary-tree/bst.ts +946 -7
  61. package/src/data-structures/binary-tree/red-black-tree.ts +472 -0
  62. package/src/data-structures/binary-tree/segment-tree.ts +145 -2
  63. package/src/data-structures/binary-tree/tree-map.ts +3423 -499
  64. package/src/data-structures/binary-tree/tree-multi-map.ts +3537 -596
  65. package/src/data-structures/binary-tree/tree-multi-set.ts +2855 -495
  66. package/src/data-structures/binary-tree/tree-set.ts +3209 -413
  67. package/src/data-structures/graph/abstract-graph.ts +6 -6
  68. package/src/data-structures/graph/directed-graph.ts +240 -0
  69. package/src/data-structures/graph/undirected-graph.ts +216 -0
  70. package/src/data-structures/hash/hash-map.ts +281 -19
  71. package/src/data-structures/heap/heap.ts +340 -4
  72. package/src/data-structures/heap/max-heap.ts +2 -2
  73. package/src/data-structures/linked-list/doubly-linked-list.ts +411 -3
  74. package/src/data-structures/linked-list/singly-linked-list.ts +363 -3
  75. package/src/data-structures/linked-list/skip-linked-list.ts +439 -7
  76. package/src/data-structures/matrix/matrix.ts +202 -10
  77. package/src/data-structures/priority-queue/max-priority-queue.ts +2 -2
  78. package/src/data-structures/queue/deque.ts +365 -5
  79. package/src/data-structures/queue/queue.ts +288 -0
  80. package/src/data-structures/stack/stack.ts +240 -0
  81. package/src/data-structures/trie/trie.ts +295 -7
  82. package/src/interfaces/graph.ts +1 -1
  83. package/src/types/common.ts +2 -2
  84. package/src/types/data-structures/binary-tree/bst.ts +1 -0
  85. package/src/types/data-structures/binary-tree/tree-map.ts +6 -0
  86. package/src/types/data-structures/binary-tree/tree-multi-set.ts +5 -0
  87. package/src/types/data-structures/binary-tree/tree-set.ts +5 -0
  88. package/src/types/data-structures/heap/heap.ts +1 -0
  89. package/src/types/data-structures/priority-queue/priority-queue.ts +1 -0
  90. package/src/types/utils/validate-type.ts +4 -4
@@ -1,6 +1,61 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
3
 
4
+ // src/common/error.ts
5
+ function raise(ErrorClass, message) {
6
+ throw new ErrorClass(message);
7
+ }
8
+ __name(raise, "raise");
9
+ var ERR = {
10
+ // Range / index
11
+ indexOutOfRange: /* @__PURE__ */ __name((index, min, max, ctx) => `${ctx ? ctx + ": " : ""}Index ${index} is out of range [${min}, ${max}].`, "indexOutOfRange"),
12
+ invalidIndex: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}Index must be an integer.`, "invalidIndex"),
13
+ // Type / argument
14
+ invalidArgument: /* @__PURE__ */ __name((reason, ctx) => `${ctx ? ctx + ": " : ""}${reason}`, "invalidArgument"),
15
+ comparatorRequired: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}Comparator is required for non-number/non-string/non-Date keys.`, "comparatorRequired"),
16
+ invalidKey: /* @__PURE__ */ __name((reason, ctx) => `${ctx ? ctx + ": " : ""}${reason}`, "invalidKey"),
17
+ notAFunction: /* @__PURE__ */ __name((name, ctx) => `${ctx ? ctx + ": " : ""}${name} must be a function.`, "notAFunction"),
18
+ invalidEntry: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}Each entry must be a [key, value] tuple.`, "invalidEntry"),
19
+ invalidNaN: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}NaN is not a valid key.`, "invalidNaN"),
20
+ invalidDate: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}Invalid Date key.`, "invalidDate"),
21
+ reduceEmpty: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}Reduce of empty structure with no initial value.`, "reduceEmpty"),
22
+ callbackReturnType: /* @__PURE__ */ __name((expected, got, ctx) => `${ctx ? ctx + ": " : ""}Callback must return ${expected}; got ${got}.`, "callbackReturnType"),
23
+ // State / operation
24
+ invalidOperation: /* @__PURE__ */ __name((reason, ctx) => `${ctx ? ctx + ": " : ""}${reason}`, "invalidOperation"),
25
+ // Matrix
26
+ matrixDimensionMismatch: /* @__PURE__ */ __name((op) => `Matrix: Dimensions must be compatible for ${op}.`, "matrixDimensionMismatch"),
27
+ matrixSingular: /* @__PURE__ */ __name(() => "Matrix: Singular matrix, inverse does not exist.", "matrixSingular"),
28
+ matrixNotSquare: /* @__PURE__ */ __name(() => "Matrix: Must be square for inversion.", "matrixNotSquare"),
29
+ 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"),
31
+ // Order statistic
32
+ orderStatisticNotEnabled: /* @__PURE__ */ __name((method, ctx) => `${ctx ? ctx + ": " : ""}${method}() requires enableOrderStatistic: true.`, "orderStatisticNotEnabled")
33
+ };
34
+
35
+ // src/common/index.ts
36
+ var DFSOperation = /* @__PURE__ */ ((DFSOperation2) => {
37
+ DFSOperation2[DFSOperation2["VISIT"] = 0] = "VISIT";
38
+ DFSOperation2[DFSOperation2["PROCESS"] = 1] = "PROCESS";
39
+ return DFSOperation2;
40
+ })(DFSOperation || {});
41
+ var Range = class {
42
+ constructor(low, high, includeLow = true, includeHigh = true) {
43
+ this.low = low;
44
+ this.high = high;
45
+ this.includeLow = includeLow;
46
+ this.includeHigh = includeHigh;
47
+ }
48
+ static {
49
+ __name(this, "Range");
50
+ }
51
+ // Determine whether a key is within the range
52
+ isInRange(key, comparator) {
53
+ const lowCheck = this.includeLow ? comparator(key, this.low) >= 0 : comparator(key, this.low) > 0;
54
+ const highCheck = this.includeHigh ? comparator(key, this.high) <= 0 : comparator(key, this.high) < 0;
55
+ return lowCheck && highCheck;
56
+ }
57
+ };
58
+
4
59
  // src/data-structures/base/iterable-element-base.ts
5
60
  var IterableElementBase = class {
6
61
  static {
@@ -19,7 +74,7 @@ var IterableElementBase = class {
19
74
  if (options) {
20
75
  const { toElementFn } = options;
21
76
  if (typeof toElementFn === "function") this._toElementFn = toElementFn;
22
- else if (toElementFn) throw new TypeError("toElementFn must be a function type");
77
+ else if (toElementFn) raise(TypeError, "toElementFn must be a function type");
23
78
  }
24
79
  }
25
80
  /**
@@ -182,7 +237,7 @@ var IterableElementBase = class {
182
237
  acc = initialValue;
183
238
  } else {
184
239
  const first = iter.next();
185
- if (first.done) throw new TypeError("Reduce of empty structure with no initial value");
240
+ if (first.done) raise(TypeError, "Reduce of empty structure with no initial value");
186
241
  acc = first.value;
187
242
  index = 1;
188
243
  }
@@ -738,6 +793,30 @@ var SinglyLinkedList = class extends LinearLinkedBase {
738
793
 
739
794
 
740
795
 
796
+
797
+
798
+
799
+
800
+
801
+
802
+
803
+
804
+
805
+
806
+
807
+
808
+
809
+
810
+
811
+
812
+
813
+
814
+
815
+
816
+
817
+
818
+
819
+
741
820
  * @example
742
821
  * // basic SinglyLinkedList creation and push operation
743
822
  * // Create a simple SinglyLinkedList with initial values
@@ -781,6 +860,30 @@ var SinglyLinkedList = class extends LinearLinkedBase {
781
860
 
782
861
 
783
862
 
863
+
864
+
865
+
866
+
867
+
868
+
869
+
870
+
871
+
872
+
873
+
874
+
875
+
876
+
877
+
878
+
879
+
880
+
881
+
882
+
883
+
884
+
885
+
886
+
784
887
  * @example
785
888
  * // SinglyLinkedList pop and shift operations
786
889
  * const list = new SinglyLinkedList<number>([10, 20, 30, 40, 50]);
@@ -829,6 +932,30 @@ var SinglyLinkedList = class extends LinearLinkedBase {
829
932
 
830
933
 
831
934
 
935
+
936
+
937
+
938
+
939
+
940
+
941
+
942
+
943
+
944
+
945
+
946
+
947
+
948
+
949
+
950
+
951
+
952
+
953
+
954
+
955
+
956
+
957
+
958
+
832
959
  * @example
833
960
  * // Remove from the front
834
961
  * const list = new SinglyLinkedList<number>([10, 20, 30]);
@@ -859,6 +986,30 @@ var SinglyLinkedList = class extends LinearLinkedBase {
859
986
 
860
987
 
861
988
 
989
+
990
+
991
+
992
+
993
+
994
+
995
+
996
+
997
+
998
+
999
+
1000
+
1001
+
1002
+
1003
+
1004
+
1005
+
1006
+
1007
+
1008
+
1009
+
1010
+
1011
+
1012
+
862
1013
  * @example
863
1014
  * // SinglyLinkedList unshift and forward traversal
864
1015
  * const list = new SinglyLinkedList<number>([20, 30, 40]);
@@ -950,6 +1101,30 @@ var SinglyLinkedList = class extends LinearLinkedBase {
950
1101
 
951
1102
 
952
1103
 
1104
+
1105
+
1106
+
1107
+
1108
+
1109
+
1110
+
1111
+
1112
+
1113
+
1114
+
1115
+
1116
+
1117
+
1118
+
1119
+
1120
+
1121
+
1122
+
1123
+
1124
+
1125
+
1126
+
1127
+
953
1128
  * @example
954
1129
  * // Access element by index
955
1130
  * const list = new SinglyLinkedList<string>(['a', 'b', 'c', 'd']);
@@ -985,6 +1160,30 @@ var SinglyLinkedList = class extends LinearLinkedBase {
985
1160
 
986
1161
 
987
1162
 
1163
+
1164
+
1165
+
1166
+
1167
+
1168
+
1169
+
1170
+
1171
+
1172
+
1173
+
1174
+
1175
+
1176
+
1177
+
1178
+
1179
+
1180
+
1181
+
1182
+
1183
+
1184
+
1185
+
1186
+
988
1187
  * @example
989
1188
  * // Get node at index
990
1189
  * const list = new SinglyLinkedList<string>(['a', 'b', 'c']);
@@ -1009,6 +1208,30 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1009
1208
 
1010
1209
 
1011
1210
 
1211
+
1212
+
1213
+
1214
+
1215
+
1216
+
1217
+
1218
+
1219
+
1220
+
1221
+
1222
+
1223
+
1224
+
1225
+
1226
+
1227
+
1228
+
1229
+
1230
+
1231
+
1232
+
1233
+
1234
+
1012
1235
  * @example
1013
1236
  * // Remove by index
1014
1237
  * const list = new SinglyLinkedList<string>(['a', 'b', 'c']);
@@ -1039,6 +1262,30 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1039
1262
 
1040
1263
 
1041
1264
 
1265
+
1266
+
1267
+
1268
+
1269
+
1270
+
1271
+
1272
+
1273
+
1274
+
1275
+
1276
+
1277
+
1278
+
1279
+
1280
+
1281
+
1282
+
1283
+
1284
+
1285
+
1286
+
1287
+
1288
+
1042
1289
  * @example
1043
1290
  * // Remove first occurrence
1044
1291
  * const list = new SinglyLinkedList<number>([1, 2, 3, 2]);
@@ -1074,21 +1321,45 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1074
1321
 
1075
1322
 
1076
1323
 
1077
- * @example
1078
- * // Insert at index
1079
- * const list = new SinglyLinkedList<number>([1, 3]);
1080
- * list.addAt(1, 2);
1081
- * console.log(list.toArray()); // [1, 2, 3];
1082
- */
1083
- addAt(index, newElementOrNode) {
1084
- if (index < 0 || index > this._length) return false;
1085
- if (index === 0) return this.unshift(newElementOrNode);
1086
- if (index === this._length) return this.push(newElementOrNode);
1087
- const newNode = this._ensureNode(newElementOrNode);
1088
- const prevNode = this.getNodeAt(index - 1);
1089
- newNode.next = prevNode.next;
1090
- prevNode.next = newNode;
1091
- this._length++;
1324
+
1325
+
1326
+
1327
+
1328
+
1329
+
1330
+
1331
+
1332
+
1333
+
1334
+
1335
+
1336
+
1337
+
1338
+
1339
+
1340
+
1341
+
1342
+
1343
+
1344
+
1345
+
1346
+
1347
+
1348
+ * @example
1349
+ * // Insert at index
1350
+ * const list = new SinglyLinkedList<number>([1, 3]);
1351
+ * list.addAt(1, 2);
1352
+ * console.log(list.toArray()); // [1, 2, 3];
1353
+ */
1354
+ addAt(index, newElementOrNode) {
1355
+ if (index < 0 || index > this._length) return false;
1356
+ if (index === 0) return this.unshift(newElementOrNode);
1357
+ if (index === this._length) return this.push(newElementOrNode);
1358
+ const newNode = this._ensureNode(newElementOrNode);
1359
+ const prevNode = this.getNodeAt(index - 1);
1360
+ newNode.next = prevNode.next;
1361
+ prevNode.next = newNode;
1362
+ this._length++;
1092
1363
  return true;
1093
1364
  }
1094
1365
  /**
@@ -1117,6 +1388,30 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1117
1388
 
1118
1389
 
1119
1390
 
1391
+
1392
+
1393
+
1394
+
1395
+
1396
+
1397
+
1398
+
1399
+
1400
+
1401
+
1402
+
1403
+
1404
+
1405
+
1406
+
1407
+
1408
+
1409
+
1410
+
1411
+
1412
+
1413
+
1414
+
1120
1415
  * @example
1121
1416
  * // Check empty
1122
1417
  * console.log(new SinglyLinkedList().isEmpty()); // true;
@@ -1137,6 +1432,30 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1137
1432
 
1138
1433
 
1139
1434
 
1435
+
1436
+
1437
+
1438
+
1439
+
1440
+
1441
+
1442
+
1443
+
1444
+
1445
+
1446
+
1447
+
1448
+
1449
+
1450
+
1451
+
1452
+
1453
+
1454
+
1455
+
1456
+
1457
+
1458
+
1140
1459
  * @example
1141
1460
  * // Remove all
1142
1461
  * const list = new SinglyLinkedList<number>([1, 2, 3]);
@@ -1163,6 +1482,30 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1163
1482
 
1164
1483
 
1165
1484
 
1485
+
1486
+
1487
+
1488
+
1489
+
1490
+
1491
+
1492
+
1493
+
1494
+
1495
+
1496
+
1497
+
1498
+
1499
+
1500
+
1501
+
1502
+
1503
+
1504
+
1505
+
1506
+
1507
+
1508
+
1166
1509
  * @example
1167
1510
  * // Reverse the list in-place
1168
1511
  * const list = new SinglyLinkedList<number>([1, 2, 3, 4]);
@@ -1355,6 +1698,30 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1355
1698
 
1356
1699
 
1357
1700
 
1701
+
1702
+
1703
+
1704
+
1705
+
1706
+
1707
+
1708
+
1709
+
1710
+
1711
+
1712
+
1713
+
1714
+
1715
+
1716
+
1717
+
1718
+
1719
+
1720
+
1721
+
1722
+
1723
+
1724
+
1358
1725
  * @example
1359
1726
  * // Deep copy
1360
1727
  * const list = new SinglyLinkedList<number>([1, 2, 3]);
@@ -1385,6 +1752,30 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1385
1752
 
1386
1753
 
1387
1754
 
1755
+
1756
+
1757
+
1758
+
1759
+
1760
+
1761
+
1762
+
1763
+
1764
+
1765
+
1766
+
1767
+
1768
+
1769
+
1770
+
1771
+
1772
+
1773
+
1774
+
1775
+
1776
+
1777
+
1778
+
1388
1779
  * @example
1389
1780
  * // SinglyLinkedList filter and map operations
1390
1781
  * const list = new SinglyLinkedList<number>([1, 2, 3, 4, 5]);
@@ -1443,6 +1834,30 @@ var SinglyLinkedList = class extends LinearLinkedBase {
1443
1834
 
1444
1835
 
1445
1836
 
1837
+
1838
+
1839
+
1840
+
1841
+
1842
+
1843
+
1844
+
1845
+
1846
+
1847
+
1848
+
1849
+
1850
+
1851
+
1852
+
1853
+
1854
+
1855
+
1856
+
1857
+
1858
+
1859
+
1860
+
1446
1861
  * @example
1447
1862
  * // Transform elements
1448
1863
  * const list = new SinglyLinkedList<number>([1, 2, 3]);
@@ -1583,55 +1998,6 @@ function elementOrPredicate(input, equals) {
1583
1998
  }
1584
1999
  __name(elementOrPredicate, "elementOrPredicate");
1585
2000
 
1586
- // src/common/error.ts
1587
- var ERR = {
1588
- // Range / index
1589
- indexOutOfRange: /* @__PURE__ */ __name((index, min, max, ctx) => `${ctx ? ctx + ": " : ""}Index ${index} is out of range [${min}, ${max}].`, "indexOutOfRange"),
1590
- invalidIndex: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}Index must be an integer.`, "invalidIndex"),
1591
- // Type / argument
1592
- invalidArgument: /* @__PURE__ */ __name((reason, ctx) => `${ctx ? ctx + ": " : ""}${reason}`, "invalidArgument"),
1593
- comparatorRequired: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}Comparator is required for non-number/non-string/non-Date keys.`, "comparatorRequired"),
1594
- invalidKey: /* @__PURE__ */ __name((reason, ctx) => `${ctx ? ctx + ": " : ""}${reason}`, "invalidKey"),
1595
- notAFunction: /* @__PURE__ */ __name((name, ctx) => `${ctx ? ctx + ": " : ""}${name} must be a function.`, "notAFunction"),
1596
- invalidEntry: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}Each entry must be a [key, value] tuple.`, "invalidEntry"),
1597
- invalidNaN: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}NaN is not a valid key.`, "invalidNaN"),
1598
- invalidDate: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}Invalid Date key.`, "invalidDate"),
1599
- reduceEmpty: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}Reduce of empty structure with no initial value.`, "reduceEmpty"),
1600
- callbackReturnType: /* @__PURE__ */ __name((expected, got, ctx) => `${ctx ? ctx + ": " : ""}Callback must return ${expected}; got ${got}.`, "callbackReturnType"),
1601
- // State / operation
1602
- invalidOperation: /* @__PURE__ */ __name((reason, ctx) => `${ctx ? ctx + ": " : ""}${reason}`, "invalidOperation"),
1603
- // Matrix
1604
- matrixDimensionMismatch: /* @__PURE__ */ __name((op) => `Matrix: Dimensions must be compatible for ${op}.`, "matrixDimensionMismatch"),
1605
- matrixSingular: /* @__PURE__ */ __name(() => "Matrix: Singular matrix, inverse does not exist.", "matrixSingular"),
1606
- matrixNotSquare: /* @__PURE__ */ __name(() => "Matrix: Must be square for inversion.", "matrixNotSquare"),
1607
- matrixNotRectangular: /* @__PURE__ */ __name(() => "Matrix: Must be rectangular for transposition.", "matrixNotRectangular"),
1608
- matrixRowMismatch: /* @__PURE__ */ __name((expected, got) => `Matrix: Expected row length ${expected}, but got ${got}.`, "matrixRowMismatch")
1609
- };
1610
-
1611
- // src/common/index.ts
1612
- var DFSOperation = /* @__PURE__ */ ((DFSOperation2) => {
1613
- DFSOperation2[DFSOperation2["VISIT"] = 0] = "VISIT";
1614
- DFSOperation2[DFSOperation2["PROCESS"] = 1] = "PROCESS";
1615
- return DFSOperation2;
1616
- })(DFSOperation || {});
1617
- var Range = class {
1618
- constructor(low, high, includeLow = true, includeHigh = true) {
1619
- this.low = low;
1620
- this.high = high;
1621
- this.includeLow = includeLow;
1622
- this.includeHigh = includeHigh;
1623
- }
1624
- static {
1625
- __name(this, "Range");
1626
- }
1627
- // Determine whether a key is within the range
1628
- isInRange(key, comparator) {
1629
- const lowCheck = this.includeLow ? comparator(key, this.low) >= 0 : comparator(key, this.low) > 0;
1630
- const highCheck = this.includeHigh ? comparator(key, this.high) <= 0 : comparator(key, this.high) < 0;
1631
- return lowCheck && highCheck;
1632
- }
1633
- };
1634
-
1635
2001
  // src/data-structures/queue/queue.ts
1636
2002
  var Queue = class _Queue extends LinearBase {
1637
2003
  static {
@@ -1703,6 +2069,30 @@ var Queue = class _Queue extends LinearBase {
1703
2069
 
1704
2070
 
1705
2071
 
2072
+
2073
+
2074
+
2075
+
2076
+
2077
+
2078
+
2079
+
2080
+
2081
+
2082
+
2083
+
2084
+
2085
+
2086
+
2087
+
2088
+
2089
+
2090
+
2091
+
2092
+
2093
+
2094
+
2095
+
1706
2096
  * @example
1707
2097
  * // Track queue length
1708
2098
  * const q = new Queue<number>();
@@ -1729,6 +2119,30 @@ var Queue = class _Queue extends LinearBase {
1729
2119
 
1730
2120
 
1731
2121
 
2122
+
2123
+
2124
+
2125
+
2126
+
2127
+
2128
+
2129
+
2130
+
2131
+
2132
+
2133
+
2134
+
2135
+
2136
+
2137
+
2138
+
2139
+
2140
+
2141
+
2142
+
2143
+
2144
+
2145
+
1732
2146
  * @example
1733
2147
  * // View the front element
1734
2148
  * const q = new Queue<string>(['first', 'second', 'third']);
@@ -1771,6 +2185,30 @@ var Queue = class _Queue extends LinearBase {
1771
2185
 
1772
2186
 
1773
2187
 
2188
+
2189
+
2190
+
2191
+
2192
+
2193
+
2194
+
2195
+
2196
+
2197
+
2198
+
2199
+
2200
+
2201
+
2202
+
2203
+
2204
+
2205
+
2206
+
2207
+
2208
+
2209
+
2210
+
2211
+
1774
2212
  * @example
1775
2213
  * // Queue for...of iteration and isEmpty check
1776
2214
  * const queue = new Queue<string>(['A', 'B', 'C', 'D']);
@@ -1809,6 +2247,30 @@ var Queue = class _Queue extends LinearBase {
1809
2247
 
1810
2248
 
1811
2249
 
2250
+
2251
+
2252
+
2253
+
2254
+
2255
+
2256
+
2257
+
2258
+
2259
+
2260
+
2261
+
2262
+
2263
+
2264
+
2265
+
2266
+
2267
+
2268
+
2269
+
2270
+
2271
+
2272
+
2273
+
1812
2274
  * @example
1813
2275
  * // basic Queue creation and push operation
1814
2276
  * // Create a simple Queue with initial values
@@ -1854,6 +2316,30 @@ var Queue = class _Queue extends LinearBase {
1854
2316
 
1855
2317
 
1856
2318
 
2319
+
2320
+
2321
+
2322
+
2323
+
2324
+
2325
+
2326
+
2327
+
2328
+
2329
+
2330
+
2331
+
2332
+
2333
+
2334
+
2335
+
2336
+
2337
+
2338
+
2339
+
2340
+
2341
+
2342
+
1857
2343
  * @example
1858
2344
  * // Queue shift and peek operations
1859
2345
  * const queue = new Queue<number>([10, 20, 30, 40]);
@@ -1889,6 +2375,30 @@ var Queue = class _Queue extends LinearBase {
1889
2375
 
1890
2376
 
1891
2377
 
2378
+
2379
+
2380
+
2381
+
2382
+
2383
+
2384
+
2385
+
2386
+
2387
+
2388
+
2389
+
2390
+
2391
+
2392
+
2393
+
2394
+
2395
+
2396
+
2397
+
2398
+
2399
+
2400
+
2401
+
1892
2402
  * @example
1893
2403
  * // Remove specific element
1894
2404
  * const q = new Queue<number>([1, 2, 3, 2]);
@@ -1917,6 +2427,30 @@ var Queue = class _Queue extends LinearBase {
1917
2427
 
1918
2428
 
1919
2429
 
2430
+
2431
+
2432
+
2433
+
2434
+
2435
+
2436
+
2437
+
2438
+
2439
+
2440
+
2441
+
2442
+
2443
+
2444
+
2445
+
2446
+
2447
+
2448
+
2449
+
2450
+
2451
+
2452
+
2453
+
1920
2454
  * @example
1921
2455
  * // Access element by index
1922
2456
  * const q = new Queue<string>(['a', 'b', 'c']);
@@ -1986,6 +2520,30 @@ var Queue = class _Queue extends LinearBase {
1986
2520
 
1987
2521
 
1988
2522
 
2523
+
2524
+
2525
+
2526
+
2527
+
2528
+
2529
+
2530
+
2531
+
2532
+
2533
+
2534
+
2535
+
2536
+
2537
+
2538
+
2539
+
2540
+
2541
+
2542
+
2543
+
2544
+
2545
+
2546
+
1989
2547
  * @example
1990
2548
  * // Remove all elements
1991
2549
  * const q = new Queue<number>([1, 2, 3]);
@@ -2008,6 +2566,30 @@ var Queue = class _Queue extends LinearBase {
2008
2566
 
2009
2567
 
2010
2568
 
2569
+
2570
+
2571
+
2572
+
2573
+
2574
+
2575
+
2576
+
2577
+
2578
+
2579
+
2580
+
2581
+
2582
+
2583
+
2584
+
2585
+
2586
+
2587
+
2588
+
2589
+
2590
+
2591
+
2592
+
2011
2593
  * @example
2012
2594
  * // Reclaim unused memory
2013
2595
  * const q = new Queue<number>([1, 2, 3, 4, 5]);
@@ -2053,6 +2635,30 @@ var Queue = class _Queue extends LinearBase {
2053
2635
 
2054
2636
 
2055
2637
 
2638
+
2639
+
2640
+
2641
+
2642
+
2643
+
2644
+
2645
+
2646
+
2647
+
2648
+
2649
+
2650
+
2651
+
2652
+
2653
+
2654
+
2655
+
2656
+
2657
+
2658
+
2659
+
2660
+
2661
+
2056
2662
  * @example
2057
2663
  * // Create independent copy
2058
2664
  * const q = new Queue<number>([1, 2, 3]);
@@ -2082,6 +2688,30 @@ var Queue = class _Queue extends LinearBase {
2082
2688
 
2083
2689
 
2084
2690
 
2691
+
2692
+
2693
+
2694
+
2695
+
2696
+
2697
+
2698
+
2699
+
2700
+
2701
+
2702
+
2703
+
2704
+
2705
+
2706
+
2707
+
2708
+
2709
+
2710
+
2711
+
2712
+
2713
+
2714
+
2085
2715
  * @example
2086
2716
  * // Filter elements
2087
2717
  * const q = new Queue<number>([1, 2, 3, 4, 5]);
@@ -2115,6 +2745,30 @@ var Queue = class _Queue extends LinearBase {
2115
2745
 
2116
2746
 
2117
2747
 
2748
+
2749
+
2750
+
2751
+
2752
+
2753
+
2754
+
2755
+
2756
+
2757
+
2758
+
2759
+
2760
+
2761
+
2762
+
2763
+
2764
+
2765
+
2766
+
2767
+
2768
+
2769
+
2770
+
2771
+
2118
2772
  * @example
2119
2773
  * // Transform elements
2120
2774
  * const q = new Queue<number>([1, 2, 3]);
@@ -2369,6 +3023,30 @@ var Deque = class extends LinearBase {
2369
3023
 
2370
3024
 
2371
3025
 
3026
+
3027
+
3028
+
3029
+
3030
+
3031
+
3032
+
3033
+
3034
+
3035
+
3036
+
3037
+
3038
+
3039
+
3040
+
3041
+
3042
+
3043
+
3044
+
3045
+
3046
+
3047
+
3048
+
3049
+
2372
3050
  * @example
2373
3051
  * // Deque peek at both ends
2374
3052
  * const deque = new Deque<number>([10, 20, 30, 40, 50]);
@@ -2403,6 +3081,30 @@ var Deque = class extends LinearBase {
2403
3081
 
2404
3082
 
2405
3083
 
3084
+
3085
+
3086
+
3087
+
3088
+
3089
+
3090
+
3091
+
3092
+
3093
+
3094
+
3095
+
3096
+
3097
+
3098
+
3099
+
3100
+
3101
+
3102
+
3103
+
3104
+
3105
+
3106
+
3107
+
2406
3108
  * @example
2407
3109
  * // Peek at the back element
2408
3110
  * const dq = new Deque<string>(['a', 'b', 'c']);
@@ -2442,6 +3144,30 @@ var Deque = class extends LinearBase {
2442
3144
 
2443
3145
 
2444
3146
 
3147
+
3148
+
3149
+
3150
+
3151
+
3152
+
3153
+
3154
+
3155
+
3156
+
3157
+
3158
+
3159
+
3160
+
3161
+
3162
+
3163
+
3164
+
3165
+
3166
+
3167
+
3168
+
3169
+
3170
+
2445
3171
  * @example
2446
3172
  * // basic Deque creation and push/pop operations
2447
3173
  * // Create a simple Deque with initial values
@@ -2494,6 +3220,30 @@ var Deque = class extends LinearBase {
2494
3220
 
2495
3221
 
2496
3222
 
3223
+
3224
+
3225
+
3226
+
3227
+
3228
+
3229
+
3230
+
3231
+
3232
+
3233
+
3234
+
3235
+
3236
+
3237
+
3238
+
3239
+
3240
+
3241
+
3242
+
3243
+
3244
+
3245
+
3246
+
2497
3247
  * @example
2498
3248
  * // Remove from the back
2499
3249
  * const dq = new Deque<number>([1, 2, 3]);
@@ -2533,6 +3283,30 @@ var Deque = class extends LinearBase {
2533
3283
 
2534
3284
 
2535
3285
 
3286
+
3287
+
3288
+
3289
+
3290
+
3291
+
3292
+
3293
+
3294
+
3295
+
3296
+
3297
+
3298
+
3299
+
3300
+
3301
+
3302
+
3303
+
3304
+
3305
+
3306
+
3307
+
3308
+
3309
+
2536
3310
  * @example
2537
3311
  * // Remove from the front
2538
3312
  * const dq = new Deque<number>([1, 2, 3]);
@@ -2573,6 +3347,30 @@ var Deque = class extends LinearBase {
2573
3347
 
2574
3348
 
2575
3349
 
3350
+
3351
+
3352
+
3353
+
3354
+
3355
+
3356
+
3357
+
3358
+
3359
+
3360
+
3361
+
3362
+
3363
+
3364
+
3365
+
3366
+
3367
+
3368
+
3369
+
3370
+
3371
+
3372
+
3373
+
2576
3374
  * @example
2577
3375
  * // Deque shift and unshift operations
2578
3376
  * const deque = new Deque<number>([20, 30, 40]);
@@ -2654,6 +3452,30 @@ var Deque = class extends LinearBase {
2654
3452
 
2655
3453
 
2656
3454
 
3455
+
3456
+
3457
+
3458
+
3459
+
3460
+
3461
+
3462
+
3463
+
3464
+
3465
+
3466
+
3467
+
3468
+
3469
+
3470
+
3471
+
3472
+
3473
+
3474
+
3475
+
3476
+
3477
+
3478
+
2657
3479
  * @example
2658
3480
  * // Check if empty
2659
3481
  * const dq = new Deque();
@@ -2675,6 +3497,30 @@ var Deque = class extends LinearBase {
2675
3497
 
2676
3498
 
2677
3499
 
3500
+
3501
+
3502
+
3503
+
3504
+
3505
+
3506
+
3507
+
3508
+
3509
+
3510
+
3511
+
3512
+
3513
+
3514
+
3515
+
3516
+
3517
+
3518
+
3519
+
3520
+
3521
+
3522
+
3523
+
2678
3524
  * @example
2679
3525
  * // Remove all elements
2680
3526
  * const dq = new Deque<number>([1, 2, 3]);
@@ -2700,6 +3546,30 @@ var Deque = class extends LinearBase {
2700
3546
 
2701
3547
 
2702
3548
 
3549
+
3550
+
3551
+
3552
+
3553
+
3554
+
3555
+
3556
+
3557
+
3558
+
3559
+
3560
+
3561
+
3562
+
3563
+
3564
+
3565
+
3566
+
3567
+
3568
+
3569
+
3570
+
3571
+
3572
+
2703
3573
  * @example
2704
3574
  * // Access by index
2705
3575
  * const dq = new Deque<string>(['a', 'b', 'c']);
@@ -2876,6 +3746,30 @@ var Deque = class extends LinearBase {
2876
3746
 
2877
3747
 
2878
3748
 
3749
+
3750
+
3751
+
3752
+
3753
+
3754
+
3755
+
3756
+
3757
+
3758
+
3759
+
3760
+
3761
+
3762
+
3763
+
3764
+
3765
+
3766
+
3767
+
3768
+
3769
+
3770
+
3771
+
3772
+
2879
3773
  * @example
2880
3774
  * // Remove element
2881
3775
  * const dq = new Deque<number>([1, 2, 3]);
@@ -2939,6 +3833,30 @@ var Deque = class extends LinearBase {
2939
3833
 
2940
3834
 
2941
3835
 
3836
+
3837
+
3838
+
3839
+
3840
+
3841
+
3842
+
3843
+
3844
+
3845
+
3846
+
3847
+
3848
+
3849
+
3850
+
3851
+
3852
+
3853
+
3854
+
3855
+
3856
+
3857
+
3858
+
3859
+
2942
3860
  * @example
2943
3861
  * // Deque for...of iteration and reverse
2944
3862
  * const deque = new Deque<string>(['A', 'B', 'C', 'D']);
@@ -3027,6 +3945,30 @@ var Deque = class extends LinearBase {
3027
3945
 
3028
3946
 
3029
3947
 
3948
+
3949
+
3950
+
3951
+
3952
+
3953
+
3954
+
3955
+
3956
+
3957
+
3958
+
3959
+
3960
+
3961
+
3962
+
3963
+
3964
+
3965
+
3966
+
3967
+
3968
+
3969
+
3970
+
3971
+
3030
3972
  * @example
3031
3973
  * // Reclaim memory
3032
3974
  * const dq = new Deque<number>([1, 2, 3, 4, 5]);
@@ -3074,6 +4016,30 @@ var Deque = class extends LinearBase {
3074
4016
 
3075
4017
 
3076
4018
 
4019
+
4020
+
4021
+
4022
+
4023
+
4024
+
4025
+
4026
+
4027
+
4028
+
4029
+
4030
+
4031
+
4032
+
4033
+
4034
+
4035
+
4036
+
4037
+
4038
+
4039
+
4040
+
4041
+
4042
+
3077
4043
  * @example
3078
4044
  * // Create independent copy
3079
4045
  * const dq = new Deque<number>([1, 2, 3]);
@@ -3104,6 +4070,30 @@ var Deque = class extends LinearBase {
3104
4070
 
3105
4071
 
3106
4072
 
4073
+
4074
+
4075
+
4076
+
4077
+
4078
+
4079
+
4080
+
4081
+
4082
+
4083
+
4084
+
4085
+
4086
+
4087
+
4088
+
4089
+
4090
+
4091
+
4092
+
4093
+
4094
+
4095
+
4096
+
3107
4097
  * @example
3108
4098
  * // Filter elements
3109
4099
  * const dq = new Deque<number>([1, 2, 3, 4]);
@@ -3154,6 +4144,30 @@ var Deque = class extends LinearBase {
3154
4144
 
3155
4145
 
3156
4146
 
4147
+
4148
+
4149
+
4150
+
4151
+
4152
+
4153
+
4154
+
4155
+
4156
+
4157
+
4158
+
4159
+
4160
+
4161
+
4162
+
4163
+
4164
+
4165
+
4166
+
4167
+
4168
+
4169
+
4170
+
3157
4171
  * @example
3158
4172
  * // Transform elements
3159
4173
  * const dq = new Deque<number>([1, 2, 3]);
@@ -3290,6 +4304,6 @@ var Deque = class extends LinearBase {
3290
4304
  * @license MIT License
3291
4305
  */
3292
4306
 
3293
- export { DFSOperation, Deque, ERR, LinkedListQueue, Queue, Range };
4307
+ export { DFSOperation, Deque, ERR, LinkedListQueue, Queue, Range, raise };
3294
4308
  //# sourceMappingURL=index.mjs.map
3295
4309
  //# sourceMappingURL=index.mjs.map