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