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
@@ -5,6 +5,60 @@ 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
+
39
+ // src/common/index.ts
40
+ var DFSOperation = /* @__PURE__ */ ((DFSOperation2) => {
41
+ DFSOperation2[DFSOperation2["VISIT"] = 0] = "VISIT";
42
+ DFSOperation2[DFSOperation2["PROCESS"] = 1] = "PROCESS";
43
+ return DFSOperation2;
44
+ })(DFSOperation || {});
45
+ var _Range = class _Range {
46
+ constructor(low, high, includeLow = true, includeHigh = true) {
47
+ this.low = low;
48
+ this.high = high;
49
+ this.includeLow = includeLow;
50
+ this.includeHigh = includeHigh;
51
+ }
52
+ // Determine whether a key is within the range
53
+ isInRange(key, comparator) {
54
+ const lowCheck = this.includeLow ? comparator(key, this.low) >= 0 : comparator(key, this.low) > 0;
55
+ const highCheck = this.includeHigh ? comparator(key, this.high) <= 0 : comparator(key, this.high) < 0;
56
+ return lowCheck && highCheck;
57
+ }
58
+ };
59
+ __name(_Range, "Range");
60
+ var Range = _Range;
61
+
8
62
  // src/data-structures/base/iterable-element-base.ts
9
63
  var _IterableElementBase = class _IterableElementBase {
10
64
  /**
@@ -27,7 +81,7 @@ var _IterableElementBase = class _IterableElementBase {
27
81
  if (options) {
28
82
  const { toElementFn } = options;
29
83
  if (typeof toElementFn === "function") this._toElementFn = toElementFn;
30
- else if (toElementFn) throw new TypeError("toElementFn must be a function type");
84
+ else if (toElementFn) raise(TypeError, "toElementFn must be a function type");
31
85
  }
32
86
  }
33
87
  /**
@@ -183,7 +237,7 @@ var _IterableElementBase = class _IterableElementBase {
183
237
  acc = initialValue;
184
238
  } else {
185
239
  const first = iter.next();
186
- 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");
187
241
  acc = first.value;
188
242
  index = 1;
189
243
  }
@@ -736,6 +790,30 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
736
790
 
737
791
 
738
792
 
793
+
794
+
795
+
796
+
797
+
798
+
799
+
800
+
801
+
802
+
803
+
804
+
805
+
806
+
807
+
808
+
809
+
810
+
811
+
812
+
813
+
814
+
815
+
816
+
739
817
  * @example
740
818
  * // basic SinglyLinkedList creation and push operation
741
819
  * // Create a simple SinglyLinkedList with initial values
@@ -779,6 +857,30 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
779
857
 
780
858
 
781
859
 
860
+
861
+
862
+
863
+
864
+
865
+
866
+
867
+
868
+
869
+
870
+
871
+
872
+
873
+
874
+
875
+
876
+
877
+
878
+
879
+
880
+
881
+
882
+
883
+
782
884
  * @example
783
885
  * // SinglyLinkedList pop and shift operations
784
886
  * const list = new SinglyLinkedList<number>([10, 20, 30, 40, 50]);
@@ -828,6 +930,30 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
828
930
 
829
931
 
830
932
 
933
+
934
+
935
+
936
+
937
+
938
+
939
+
940
+
941
+
942
+
943
+
944
+
945
+
946
+
947
+
948
+
949
+
950
+
951
+
952
+
953
+
954
+
955
+
956
+
831
957
  * @example
832
958
  * // Remove from the front
833
959
  * const list = new SinglyLinkedList<number>([10, 20, 30]);
@@ -858,6 +984,30 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
858
984
 
859
985
 
860
986
 
987
+
988
+
989
+
990
+
991
+
992
+
993
+
994
+
995
+
996
+
997
+
998
+
999
+
1000
+
1001
+
1002
+
1003
+
1004
+
1005
+
1006
+
1007
+
1008
+
1009
+
1010
+
861
1011
  * @example
862
1012
  * // SinglyLinkedList unshift and forward traversal
863
1013
  * const list = new SinglyLinkedList<number>([20, 30, 40]);
@@ -949,6 +1099,30 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
949
1099
 
950
1100
 
951
1101
 
1102
+
1103
+
1104
+
1105
+
1106
+
1107
+
1108
+
1109
+
1110
+
1111
+
1112
+
1113
+
1114
+
1115
+
1116
+
1117
+
1118
+
1119
+
1120
+
1121
+
1122
+
1123
+
1124
+
1125
+
952
1126
  * @example
953
1127
  * // Access element by index
954
1128
  * const list = new SinglyLinkedList<string>(['a', 'b', 'c', 'd']);
@@ -984,6 +1158,30 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
984
1158
 
985
1159
 
986
1160
 
1161
+
1162
+
1163
+
1164
+
1165
+
1166
+
1167
+
1168
+
1169
+
1170
+
1171
+
1172
+
1173
+
1174
+
1175
+
1176
+
1177
+
1178
+
1179
+
1180
+
1181
+
1182
+
1183
+
1184
+
987
1185
  * @example
988
1186
  * // Get node at index
989
1187
  * const list = new SinglyLinkedList<string>(['a', 'b', 'c']);
@@ -1008,6 +1206,30 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
1008
1206
 
1009
1207
 
1010
1208
 
1209
+
1210
+
1211
+
1212
+
1213
+
1214
+
1215
+
1216
+
1217
+
1218
+
1219
+
1220
+
1221
+
1222
+
1223
+
1224
+
1225
+
1226
+
1227
+
1228
+
1229
+
1230
+
1231
+
1232
+
1011
1233
  * @example
1012
1234
  * // Remove by index
1013
1235
  * const list = new SinglyLinkedList<string>(['a', 'b', 'c']);
@@ -1038,6 +1260,30 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
1038
1260
 
1039
1261
 
1040
1262
 
1263
+
1264
+
1265
+
1266
+
1267
+
1268
+
1269
+
1270
+
1271
+
1272
+
1273
+
1274
+
1275
+
1276
+
1277
+
1278
+
1279
+
1280
+
1281
+
1282
+
1283
+
1284
+
1285
+
1286
+
1041
1287
  * @example
1042
1288
  * // Remove first occurrence
1043
1289
  * const list = new SinglyLinkedList<number>([1, 2, 3, 2]);
@@ -1073,22 +1319,46 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
1073
1319
 
1074
1320
 
1075
1321
 
1076
- * @example
1077
- * // Insert at index
1078
- * const list = new SinglyLinkedList<number>([1, 3]);
1079
- * list.addAt(1, 2);
1080
- * console.log(list.toArray()); // [1, 2, 3];
1081
- */
1082
- addAt(index, newElementOrNode) {
1083
- if (index < 0 || index > this._length) return false;
1084
- if (index === 0) return this.unshift(newElementOrNode);
1085
- if (index === this._length) return this.push(newElementOrNode);
1086
- const newNode = this._ensureNode(newElementOrNode);
1087
- const prevNode = this.getNodeAt(index - 1);
1088
- newNode.next = prevNode.next;
1089
- prevNode.next = newNode;
1090
- this._length++;
1091
- return true;
1322
+
1323
+
1324
+
1325
+
1326
+
1327
+
1328
+
1329
+
1330
+
1331
+
1332
+
1333
+
1334
+
1335
+
1336
+
1337
+
1338
+
1339
+
1340
+
1341
+
1342
+
1343
+
1344
+
1345
+
1346
+ * @example
1347
+ * // Insert at index
1348
+ * const list = new SinglyLinkedList<number>([1, 3]);
1349
+ * list.addAt(1, 2);
1350
+ * console.log(list.toArray()); // [1, 2, 3];
1351
+ */
1352
+ addAt(index, newElementOrNode) {
1353
+ if (index < 0 || index > this._length) return false;
1354
+ if (index === 0) return this.unshift(newElementOrNode);
1355
+ if (index === this._length) return this.push(newElementOrNode);
1356
+ const newNode = this._ensureNode(newElementOrNode);
1357
+ const prevNode = this.getNodeAt(index - 1);
1358
+ newNode.next = prevNode.next;
1359
+ prevNode.next = newNode;
1360
+ this._length++;
1361
+ return true;
1092
1362
  }
1093
1363
  /**
1094
1364
  * Set the element value at an index.
@@ -1116,6 +1386,30 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
1116
1386
 
1117
1387
 
1118
1388
 
1389
+
1390
+
1391
+
1392
+
1393
+
1394
+
1395
+
1396
+
1397
+
1398
+
1399
+
1400
+
1401
+
1402
+
1403
+
1404
+
1405
+
1406
+
1407
+
1408
+
1409
+
1410
+
1411
+
1412
+
1119
1413
  * @example
1120
1414
  * // Check empty
1121
1415
  * console.log(new SinglyLinkedList().isEmpty()); // true;
@@ -1136,6 +1430,30 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
1136
1430
 
1137
1431
 
1138
1432
 
1433
+
1434
+
1435
+
1436
+
1437
+
1438
+
1439
+
1440
+
1441
+
1442
+
1443
+
1444
+
1445
+
1446
+
1447
+
1448
+
1449
+
1450
+
1451
+
1452
+
1453
+
1454
+
1455
+
1456
+
1139
1457
  * @example
1140
1458
  * // Remove all
1141
1459
  * const list = new SinglyLinkedList<number>([1, 2, 3]);
@@ -1162,6 +1480,30 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
1162
1480
 
1163
1481
 
1164
1482
 
1483
+
1484
+
1485
+
1486
+
1487
+
1488
+
1489
+
1490
+
1491
+
1492
+
1493
+
1494
+
1495
+
1496
+
1497
+
1498
+
1499
+
1500
+
1501
+
1502
+
1503
+
1504
+
1505
+
1506
+
1165
1507
  * @example
1166
1508
  * // Reverse the list in-place
1167
1509
  * const list = new SinglyLinkedList<number>([1, 2, 3, 4]);
@@ -1354,6 +1696,30 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
1354
1696
 
1355
1697
 
1356
1698
 
1699
+
1700
+
1701
+
1702
+
1703
+
1704
+
1705
+
1706
+
1707
+
1708
+
1709
+
1710
+
1711
+
1712
+
1713
+
1714
+
1715
+
1716
+
1717
+
1718
+
1719
+
1720
+
1721
+
1722
+
1357
1723
  * @example
1358
1724
  * // Deep copy
1359
1725
  * const list = new SinglyLinkedList<number>([1, 2, 3]);
@@ -1384,6 +1750,30 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
1384
1750
 
1385
1751
 
1386
1752
 
1753
+
1754
+
1755
+
1756
+
1757
+
1758
+
1759
+
1760
+
1761
+
1762
+
1763
+
1764
+
1765
+
1766
+
1767
+
1768
+
1769
+
1770
+
1771
+
1772
+
1773
+
1774
+
1775
+
1776
+
1387
1777
  * @example
1388
1778
  * // SinglyLinkedList filter and map operations
1389
1779
  * const list = new SinglyLinkedList<number>([1, 2, 3, 4, 5]);
@@ -1442,6 +1832,30 @@ var _SinglyLinkedList = class _SinglyLinkedList extends LinearLinkedBase {
1442
1832
 
1443
1833
 
1444
1834
 
1835
+
1836
+
1837
+
1838
+
1839
+
1840
+
1841
+
1842
+
1843
+
1844
+
1845
+
1846
+
1847
+
1848
+
1849
+
1850
+
1851
+
1852
+
1853
+
1854
+
1855
+
1856
+
1857
+
1858
+
1445
1859
  * @example
1446
1860
  * // Transform elements
1447
1861
  * const list = new SinglyLinkedList<number>([1, 2, 3]);
@@ -1584,54 +1998,6 @@ function elementOrPredicate(input, equals) {
1584
1998
  }
1585
1999
  __name(elementOrPredicate, "elementOrPredicate");
1586
2000
 
1587
- // src/common/error.ts
1588
- var ERR = {
1589
- // Range / index
1590
- indexOutOfRange: /* @__PURE__ */ __name((index, min, max, ctx) => `${ctx ? ctx + ": " : ""}Index ${index} is out of range [${min}, ${max}].`, "indexOutOfRange"),
1591
- invalidIndex: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}Index must be an integer.`, "invalidIndex"),
1592
- // Type / argument
1593
- invalidArgument: /* @__PURE__ */ __name((reason, ctx) => `${ctx ? ctx + ": " : ""}${reason}`, "invalidArgument"),
1594
- comparatorRequired: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}Comparator is required for non-number/non-string/non-Date keys.`, "comparatorRequired"),
1595
- invalidKey: /* @__PURE__ */ __name((reason, ctx) => `${ctx ? ctx + ": " : ""}${reason}`, "invalidKey"),
1596
- notAFunction: /* @__PURE__ */ __name((name, ctx) => `${ctx ? ctx + ": " : ""}${name} must be a function.`, "notAFunction"),
1597
- invalidEntry: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}Each entry must be a [key, value] tuple.`, "invalidEntry"),
1598
- invalidNaN: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}NaN is not a valid key.`, "invalidNaN"),
1599
- invalidDate: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}Invalid Date key.`, "invalidDate"),
1600
- reduceEmpty: /* @__PURE__ */ __name((ctx) => `${ctx ? ctx + ": " : ""}Reduce of empty structure with no initial value.`, "reduceEmpty"),
1601
- callbackReturnType: /* @__PURE__ */ __name((expected, got, ctx) => `${ctx ? ctx + ": " : ""}Callback must return ${expected}; got ${got}.`, "callbackReturnType"),
1602
- // State / operation
1603
- invalidOperation: /* @__PURE__ */ __name((reason, ctx) => `${ctx ? ctx + ": " : ""}${reason}`, "invalidOperation"),
1604
- // Matrix
1605
- matrixDimensionMismatch: /* @__PURE__ */ __name((op) => `Matrix: Dimensions must be compatible for ${op}.`, "matrixDimensionMismatch"),
1606
- matrixSingular: /* @__PURE__ */ __name(() => "Matrix: Singular matrix, inverse does not exist.", "matrixSingular"),
1607
- matrixNotSquare: /* @__PURE__ */ __name(() => "Matrix: Must be square for inversion.", "matrixNotSquare"),
1608
- matrixNotRectangular: /* @__PURE__ */ __name(() => "Matrix: Must be rectangular for transposition.", "matrixNotRectangular"),
1609
- matrixRowMismatch: /* @__PURE__ */ __name((expected, got) => `Matrix: Expected row length ${expected}, but got ${got}.`, "matrixRowMismatch")
1610
- };
1611
-
1612
- // src/common/index.ts
1613
- var DFSOperation = /* @__PURE__ */ ((DFSOperation2) => {
1614
- DFSOperation2[DFSOperation2["VISIT"] = 0] = "VISIT";
1615
- DFSOperation2[DFSOperation2["PROCESS"] = 1] = "PROCESS";
1616
- return DFSOperation2;
1617
- })(DFSOperation || {});
1618
- var _Range = class _Range {
1619
- constructor(low, high, includeLow = true, includeHigh = true) {
1620
- this.low = low;
1621
- this.high = high;
1622
- this.includeLow = includeLow;
1623
- this.includeHigh = includeHigh;
1624
- }
1625
- // Determine whether a key is within the range
1626
- isInRange(key, comparator) {
1627
- const lowCheck = this.includeLow ? comparator(key, this.low) >= 0 : comparator(key, this.low) > 0;
1628
- const highCheck = this.includeHigh ? comparator(key, this.high) <= 0 : comparator(key, this.high) < 0;
1629
- return lowCheck && highCheck;
1630
- }
1631
- };
1632
- __name(_Range, "Range");
1633
- var Range = _Range;
1634
-
1635
2001
  // src/data-structures/queue/queue.ts
1636
2002
  var _Queue = class _Queue extends LinearBase {
1637
2003
  /**
@@ -1700,6 +2066,30 @@ var _Queue = class _Queue extends LinearBase {
1700
2066
 
1701
2067
 
1702
2068
 
2069
+
2070
+
2071
+
2072
+
2073
+
2074
+
2075
+
2076
+
2077
+
2078
+
2079
+
2080
+
2081
+
2082
+
2083
+
2084
+
2085
+
2086
+
2087
+
2088
+
2089
+
2090
+
2091
+
2092
+
1703
2093
  * @example
1704
2094
  * // Track queue length
1705
2095
  * const q = new Queue<number>();
@@ -1726,6 +2116,30 @@ var _Queue = class _Queue extends LinearBase {
1726
2116
 
1727
2117
 
1728
2118
 
2119
+
2120
+
2121
+
2122
+
2123
+
2124
+
2125
+
2126
+
2127
+
2128
+
2129
+
2130
+
2131
+
2132
+
2133
+
2134
+
2135
+
2136
+
2137
+
2138
+
2139
+
2140
+
2141
+
2142
+
1729
2143
  * @example
1730
2144
  * // View the front element
1731
2145
  * const q = new Queue<string>(['first', 'second', 'third']);
@@ -1768,6 +2182,30 @@ var _Queue = class _Queue extends LinearBase {
1768
2182
 
1769
2183
 
1770
2184
 
2185
+
2186
+
2187
+
2188
+
2189
+
2190
+
2191
+
2192
+
2193
+
2194
+
2195
+
2196
+
2197
+
2198
+
2199
+
2200
+
2201
+
2202
+
2203
+
2204
+
2205
+
2206
+
2207
+
2208
+
1771
2209
  * @example
1772
2210
  * // Queue for...of iteration and isEmpty check
1773
2211
  * const queue = new Queue<string>(['A', 'B', 'C', 'D']);
@@ -1806,6 +2244,30 @@ var _Queue = class _Queue extends LinearBase {
1806
2244
 
1807
2245
 
1808
2246
 
2247
+
2248
+
2249
+
2250
+
2251
+
2252
+
2253
+
2254
+
2255
+
2256
+
2257
+
2258
+
2259
+
2260
+
2261
+
2262
+
2263
+
2264
+
2265
+
2266
+
2267
+
2268
+
2269
+
2270
+
1809
2271
  * @example
1810
2272
  * // basic Queue creation and push operation
1811
2273
  * // Create a simple Queue with initial values
@@ -1851,6 +2313,30 @@ var _Queue = class _Queue extends LinearBase {
1851
2313
 
1852
2314
 
1853
2315
 
2316
+
2317
+
2318
+
2319
+
2320
+
2321
+
2322
+
2323
+
2324
+
2325
+
2326
+
2327
+
2328
+
2329
+
2330
+
2331
+
2332
+
2333
+
2334
+
2335
+
2336
+
2337
+
2338
+
2339
+
1854
2340
  * @example
1855
2341
  * // Queue shift and peek operations
1856
2342
  * const queue = new Queue<number>([10, 20, 30, 40]);
@@ -1886,6 +2372,30 @@ var _Queue = class _Queue extends LinearBase {
1886
2372
 
1887
2373
 
1888
2374
 
2375
+
2376
+
2377
+
2378
+
2379
+
2380
+
2381
+
2382
+
2383
+
2384
+
2385
+
2386
+
2387
+
2388
+
2389
+
2390
+
2391
+
2392
+
2393
+
2394
+
2395
+
2396
+
2397
+
2398
+
1889
2399
  * @example
1890
2400
  * // Remove specific element
1891
2401
  * const q = new Queue<number>([1, 2, 3, 2]);
@@ -1914,6 +2424,30 @@ var _Queue = class _Queue extends LinearBase {
1914
2424
 
1915
2425
 
1916
2426
 
2427
+
2428
+
2429
+
2430
+
2431
+
2432
+
2433
+
2434
+
2435
+
2436
+
2437
+
2438
+
2439
+
2440
+
2441
+
2442
+
2443
+
2444
+
2445
+
2446
+
2447
+
2448
+
2449
+
2450
+
1917
2451
  * @example
1918
2452
  * // Access element by index
1919
2453
  * const q = new Queue<string>(['a', 'b', 'c']);
@@ -1983,6 +2517,30 @@ var _Queue = class _Queue extends LinearBase {
1983
2517
 
1984
2518
 
1985
2519
 
2520
+
2521
+
2522
+
2523
+
2524
+
2525
+
2526
+
2527
+
2528
+
2529
+
2530
+
2531
+
2532
+
2533
+
2534
+
2535
+
2536
+
2537
+
2538
+
2539
+
2540
+
2541
+
2542
+
2543
+
1986
2544
  * @example
1987
2545
  * // Remove all elements
1988
2546
  * const q = new Queue<number>([1, 2, 3]);
@@ -2005,6 +2563,30 @@ var _Queue = class _Queue extends LinearBase {
2005
2563
 
2006
2564
 
2007
2565
 
2566
+
2567
+
2568
+
2569
+
2570
+
2571
+
2572
+
2573
+
2574
+
2575
+
2576
+
2577
+
2578
+
2579
+
2580
+
2581
+
2582
+
2583
+
2584
+
2585
+
2586
+
2587
+
2588
+
2589
+
2008
2590
  * @example
2009
2591
  * // Reclaim unused memory
2010
2592
  * const q = new Queue<number>([1, 2, 3, 4, 5]);
@@ -2050,6 +2632,30 @@ var _Queue = class _Queue extends LinearBase {
2050
2632
 
2051
2633
 
2052
2634
 
2635
+
2636
+
2637
+
2638
+
2639
+
2640
+
2641
+
2642
+
2643
+
2644
+
2645
+
2646
+
2647
+
2648
+
2649
+
2650
+
2651
+
2652
+
2653
+
2654
+
2655
+
2656
+
2657
+
2658
+
2053
2659
  * @example
2054
2660
  * // Create independent copy
2055
2661
  * const q = new Queue<number>([1, 2, 3]);
@@ -2079,6 +2685,30 @@ var _Queue = class _Queue extends LinearBase {
2079
2685
 
2080
2686
 
2081
2687
 
2688
+
2689
+
2690
+
2691
+
2692
+
2693
+
2694
+
2695
+
2696
+
2697
+
2698
+
2699
+
2700
+
2701
+
2702
+
2703
+
2704
+
2705
+
2706
+
2707
+
2708
+
2709
+
2710
+
2711
+
2082
2712
  * @example
2083
2713
  * // Filter elements
2084
2714
  * const q = new Queue<number>([1, 2, 3, 4, 5]);
@@ -2112,6 +2742,30 @@ var _Queue = class _Queue extends LinearBase {
2112
2742
 
2113
2743
 
2114
2744
 
2745
+
2746
+
2747
+
2748
+
2749
+
2750
+
2751
+
2752
+
2753
+
2754
+
2755
+
2756
+
2757
+
2758
+
2759
+
2760
+
2761
+
2762
+
2763
+
2764
+
2765
+
2766
+
2767
+
2768
+
2115
2769
  * @example
2116
2770
  * // Transform elements
2117
2771
  * const q = new Queue<number>([1, 2, 3]);
@@ -2366,6 +3020,30 @@ var _Deque = class _Deque extends LinearBase {
2366
3020
 
2367
3021
 
2368
3022
 
3023
+
3024
+
3025
+
3026
+
3027
+
3028
+
3029
+
3030
+
3031
+
3032
+
3033
+
3034
+
3035
+
3036
+
3037
+
3038
+
3039
+
3040
+
3041
+
3042
+
3043
+
3044
+
3045
+
3046
+
2369
3047
  * @example
2370
3048
  * // Deque peek at both ends
2371
3049
  * const deque = new Deque<number>([10, 20, 30, 40, 50]);
@@ -2400,6 +3078,30 @@ var _Deque = class _Deque extends LinearBase {
2400
3078
 
2401
3079
 
2402
3080
 
3081
+
3082
+
3083
+
3084
+
3085
+
3086
+
3087
+
3088
+
3089
+
3090
+
3091
+
3092
+
3093
+
3094
+
3095
+
3096
+
3097
+
3098
+
3099
+
3100
+
3101
+
3102
+
3103
+
3104
+
2403
3105
  * @example
2404
3106
  * // Peek at the back element
2405
3107
  * const dq = new Deque<string>(['a', 'b', 'c']);
@@ -2439,6 +3141,30 @@ var _Deque = class _Deque extends LinearBase {
2439
3141
 
2440
3142
 
2441
3143
 
3144
+
3145
+
3146
+
3147
+
3148
+
3149
+
3150
+
3151
+
3152
+
3153
+
3154
+
3155
+
3156
+
3157
+
3158
+
3159
+
3160
+
3161
+
3162
+
3163
+
3164
+
3165
+
3166
+
3167
+
2442
3168
  * @example
2443
3169
  * // basic Deque creation and push/pop operations
2444
3170
  * // Create a simple Deque with initial values
@@ -2491,6 +3217,30 @@ var _Deque = class _Deque extends LinearBase {
2491
3217
 
2492
3218
 
2493
3219
 
3220
+
3221
+
3222
+
3223
+
3224
+
3225
+
3226
+
3227
+
3228
+
3229
+
3230
+
3231
+
3232
+
3233
+
3234
+
3235
+
3236
+
3237
+
3238
+
3239
+
3240
+
3241
+
3242
+
3243
+
2494
3244
  * @example
2495
3245
  * // Remove from the back
2496
3246
  * const dq = new Deque<number>([1, 2, 3]);
@@ -2530,6 +3280,30 @@ var _Deque = class _Deque extends LinearBase {
2530
3280
 
2531
3281
 
2532
3282
 
3283
+
3284
+
3285
+
3286
+
3287
+
3288
+
3289
+
3290
+
3291
+
3292
+
3293
+
3294
+
3295
+
3296
+
3297
+
3298
+
3299
+
3300
+
3301
+
3302
+
3303
+
3304
+
3305
+
3306
+
2533
3307
  * @example
2534
3308
  * // Remove from the front
2535
3309
  * const dq = new Deque<number>([1, 2, 3]);
@@ -2570,6 +3344,30 @@ var _Deque = class _Deque extends LinearBase {
2570
3344
 
2571
3345
 
2572
3346
 
3347
+
3348
+
3349
+
3350
+
3351
+
3352
+
3353
+
3354
+
3355
+
3356
+
3357
+
3358
+
3359
+
3360
+
3361
+
3362
+
3363
+
3364
+
3365
+
3366
+
3367
+
3368
+
3369
+
3370
+
2573
3371
  * @example
2574
3372
  * // Deque shift and unshift operations
2575
3373
  * const deque = new Deque<number>([20, 30, 40]);
@@ -2651,6 +3449,30 @@ var _Deque = class _Deque extends LinearBase {
2651
3449
 
2652
3450
 
2653
3451
 
3452
+
3453
+
3454
+
3455
+
3456
+
3457
+
3458
+
3459
+
3460
+
3461
+
3462
+
3463
+
3464
+
3465
+
3466
+
3467
+
3468
+
3469
+
3470
+
3471
+
3472
+
3473
+
3474
+
3475
+
2654
3476
  * @example
2655
3477
  * // Check if empty
2656
3478
  * const dq = new Deque();
@@ -2672,6 +3494,30 @@ var _Deque = class _Deque extends LinearBase {
2672
3494
 
2673
3495
 
2674
3496
 
3497
+
3498
+
3499
+
3500
+
3501
+
3502
+
3503
+
3504
+
3505
+
3506
+
3507
+
3508
+
3509
+
3510
+
3511
+
3512
+
3513
+
3514
+
3515
+
3516
+
3517
+
3518
+
3519
+
3520
+
2675
3521
  * @example
2676
3522
  * // Remove all elements
2677
3523
  * const dq = new Deque<number>([1, 2, 3]);
@@ -2697,6 +3543,30 @@ var _Deque = class _Deque extends LinearBase {
2697
3543
 
2698
3544
 
2699
3545
 
3546
+
3547
+
3548
+
3549
+
3550
+
3551
+
3552
+
3553
+
3554
+
3555
+
3556
+
3557
+
3558
+
3559
+
3560
+
3561
+
3562
+
3563
+
3564
+
3565
+
3566
+
3567
+
3568
+
3569
+
2700
3570
  * @example
2701
3571
  * // Access by index
2702
3572
  * const dq = new Deque<string>(['a', 'b', 'c']);
@@ -2873,6 +3743,30 @@ var _Deque = class _Deque extends LinearBase {
2873
3743
 
2874
3744
 
2875
3745
 
3746
+
3747
+
3748
+
3749
+
3750
+
3751
+
3752
+
3753
+
3754
+
3755
+
3756
+
3757
+
3758
+
3759
+
3760
+
3761
+
3762
+
3763
+
3764
+
3765
+
3766
+
3767
+
3768
+
3769
+
2876
3770
  * @example
2877
3771
  * // Remove element
2878
3772
  * const dq = new Deque<number>([1, 2, 3]);
@@ -2936,6 +3830,30 @@ var _Deque = class _Deque extends LinearBase {
2936
3830
 
2937
3831
 
2938
3832
 
3833
+
3834
+
3835
+
3836
+
3837
+
3838
+
3839
+
3840
+
3841
+
3842
+
3843
+
3844
+
3845
+
3846
+
3847
+
3848
+
3849
+
3850
+
3851
+
3852
+
3853
+
3854
+
3855
+
3856
+
2939
3857
  * @example
2940
3858
  * // Deque for...of iteration and reverse
2941
3859
  * const deque = new Deque<string>(['A', 'B', 'C', 'D']);
@@ -3024,6 +3942,30 @@ var _Deque = class _Deque extends LinearBase {
3024
3942
 
3025
3943
 
3026
3944
 
3945
+
3946
+
3947
+
3948
+
3949
+
3950
+
3951
+
3952
+
3953
+
3954
+
3955
+
3956
+
3957
+
3958
+
3959
+
3960
+
3961
+
3962
+
3963
+
3964
+
3965
+
3966
+
3967
+
3968
+
3027
3969
  * @example
3028
3970
  * // Reclaim memory
3029
3971
  * const dq = new Deque<number>([1, 2, 3, 4, 5]);
@@ -3071,6 +4013,30 @@ var _Deque = class _Deque extends LinearBase {
3071
4013
 
3072
4014
 
3073
4015
 
4016
+
4017
+
4018
+
4019
+
4020
+
4021
+
4022
+
4023
+
4024
+
4025
+
4026
+
4027
+
4028
+
4029
+
4030
+
4031
+
4032
+
4033
+
4034
+
4035
+
4036
+
4037
+
4038
+
4039
+
3074
4040
  * @example
3075
4041
  * // Create independent copy
3076
4042
  * const dq = new Deque<number>([1, 2, 3]);
@@ -3101,6 +4067,30 @@ var _Deque = class _Deque extends LinearBase {
3101
4067
 
3102
4068
 
3103
4069
 
4070
+
4071
+
4072
+
4073
+
4074
+
4075
+
4076
+
4077
+
4078
+
4079
+
4080
+
4081
+
4082
+
4083
+
4084
+
4085
+
4086
+
4087
+
4088
+
4089
+
4090
+
4091
+
4092
+
4093
+
3104
4094
  * @example
3105
4095
  * // Filter elements
3106
4096
  * const dq = new Deque<number>([1, 2, 3, 4]);
@@ -3151,6 +4141,30 @@ var _Deque = class _Deque extends LinearBase {
3151
4141
 
3152
4142
 
3153
4143
 
4144
+
4145
+
4146
+
4147
+
4148
+
4149
+
4150
+
4151
+
4152
+
4153
+
4154
+
4155
+
4156
+
4157
+
4158
+
4159
+
4160
+
4161
+
4162
+
4163
+
4164
+
4165
+
4166
+
4167
+
3154
4168
  * @example
3155
4169
  * // Transform elements
3156
4170
  * const dq = new Deque<number>([1, 2, 3]);
@@ -3295,5 +4309,6 @@ exports.ERR = ERR;
3295
4309
  exports.LinkedListQueue = LinkedListQueue;
3296
4310
  exports.Queue = Queue;
3297
4311
  exports.Range = Range;
4312
+ exports.raise = raise;
3298
4313
  //# sourceMappingURL=index.cjs.map
3299
4314
  //# sourceMappingURL=index.cjs.map