typescript-dsa-stl 1.0.0 → 1.2.0

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 (33) hide show
  1. package/README.md +44 -10
  2. package/dist/collections/OrderedMap.d.ts +23 -0
  3. package/dist/collections/OrderedMap.d.ts.map +1 -0
  4. package/dist/collections/OrderedMap.js +71 -0
  5. package/dist/collections/OrderedMap.js.map +1 -0
  6. package/dist/collections/OrderedSet.d.ts +20 -0
  7. package/dist/collections/OrderedSet.d.ts.map +1 -0
  8. package/dist/collections/OrderedSet.js +56 -0
  9. package/dist/collections/OrderedSet.js.map +1 -0
  10. package/dist/collections/PriorityQueue.d.ts +22 -0
  11. package/dist/collections/PriorityQueue.d.ts.map +1 -0
  12. package/dist/collections/PriorityQueue.js +73 -0
  13. package/dist/collections/PriorityQueue.js.map +1 -0
  14. package/dist/collections/UnorderedMap.d.ts +20 -0
  15. package/dist/collections/UnorderedMap.d.ts.map +1 -0
  16. package/dist/collections/UnorderedMap.js +47 -0
  17. package/dist/collections/UnorderedMap.js.map +1 -0
  18. package/dist/collections/UnorderedSet.d.ts +17 -0
  19. package/dist/collections/UnorderedSet.d.ts.map +1 -0
  20. package/dist/collections/UnorderedSet.js +38 -0
  21. package/dist/collections/UnorderedSet.js.map +1 -0
  22. package/dist/collections/Vector.d.ts.map +1 -1
  23. package/dist/collections/Vector.js +3 -2
  24. package/dist/collections/Vector.js.map +1 -1
  25. package/dist/collections/index.d.ts +5 -0
  26. package/dist/collections/index.d.ts.map +1 -1
  27. package/dist/collections/index.js +5 -0
  28. package/dist/collections/index.js.map +1 -1
  29. package/dist/index.d.ts +1 -1
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +1 -1
  32. package/dist/index.js.map +1 -1
  33. package/package.json +1 -1
package/README.md CHANGED
@@ -1,6 +1,10 @@
1
1
  # TypeScript_DSA
2
2
 
3
- STL-style **data structures and algorithms** for TypeScript: Vector, Stack, Queue, List, and algorithms (sort, binarySearch, lowerBound, min, max, etc.). Publishable npm package.
3
+ **This is the GitHub repository** for the npm package **[typescript-dsa-stl](https://www.npmjs.com/package/typescript-dsa-stl)**.
4
+
5
+ STL-style data structures and algorithms for TypeScript: **Vector**, **Stack**, **Queue**, **List**, **PriorityQueue**, **OrderedMap** (Map), **UnorderedMap**, **OrderedSet** (Set), **UnorderedSet**, and algorithms (`sort`, `binarySearch`, `lowerBound`, `min`, `max`, etc.). Install from npm to use in your project; this repo holds the source code.
6
+
7
+ ---
4
8
 
5
9
  ## Install
6
10
 
@@ -8,6 +12,8 @@ STL-style **data structures and algorithms** for TypeScript: Vector, Stack, Queu
8
12
  npm install typescript-dsa-stl
9
13
  ```
10
14
 
15
+ ---
16
+
11
17
  ## Quick start
12
18
 
13
19
  ```ts
@@ -16,6 +22,11 @@ import {
16
22
  Stack,
17
23
  Queue,
18
24
  List,
25
+ PriorityQueue,
26
+ OrderedMap,
27
+ UnorderedMap,
28
+ OrderedSet,
29
+ UnorderedSet,
19
30
  sort,
20
31
  find,
21
32
  binarySearch,
@@ -46,6 +57,21 @@ const node = list.pushBack(20);
46
57
  list.insertBefore(node, 15);
47
58
  console.log(list.toArray()); // [10, 15, 20]
48
59
 
60
+ // PriorityQueue (max-heap by default)
61
+ const pq = new PriorityQueue<number>();
62
+ pq.push(3); pq.push(1); pq.push(4);
63
+ console.log(pq.top()); // 4
64
+ pq.pop();
65
+
66
+ // OrderedMap (keys sorted), UnorderedMap (hash)
67
+ const map = new UnorderedMap<string, number>();
68
+ map.set('a', 1); map.set('b', 2);
69
+ console.log(map.get('a')); // 1
70
+
71
+ // OrderedSet (sorted unique), UnorderedSet (hash)
72
+ const set = new UnorderedSet<number>([1, 2, 2, 3]);
73
+ console.log(set.size); // 3
74
+
49
75
  // Algorithms (work on arrays and iterables)
50
76
  const arr = [3, 1, 4, 1, 5];
51
77
  sort(arr); // [1, 1, 3, 4, 5]
@@ -63,11 +89,13 @@ clamp(42, 0, 10); // 10
63
89
  range(0, 5); // [0, 1, 2, 3, 4]
64
90
  ```
65
91
 
92
+ ---
93
+
66
94
  ## API overview
67
95
 
68
96
  | Module | Exports |
69
97
  |--------|--------|
70
- | **Collections** | `Vector`, `Stack`, `Queue`, `List`, `ListNode` |
98
+ | **Collections** | `Vector`, `Stack`, `Queue`, `List`, `ListNode`, `PriorityQueue`, `OrderedMap`, `UnorderedMap`, `OrderedSet`, `UnorderedSet` |
71
99
  | **Algorithms** | `sort`, `find`, `findIndex`, `transform`, `filter`, `reduce`, `reverse`, `unique`, `binarySearch`, `lowerBound`, `upperBound`, `min`, `max`, `partition` |
72
100
  | **Utils** | `clamp`, `range`, `noop`, `identity`, `swap` |
73
101
  | **Types** | `Comparator`, `Predicate`, `UnaryFn`, `Reducer`, `IterableLike`, `toArray` |
@@ -81,6 +109,8 @@ import { clamp, range } from 'typescript-dsa-stl/utils';
81
109
  import type { Comparator } from 'typescript-dsa-stl/types';
82
110
  ```
83
111
 
112
+ ---
113
+
84
114
  ## Data structures
85
115
 
86
116
  | Structure | Access | Insert end | Insert middle | Remove end | Remove middle |
@@ -89,19 +119,23 @@ import type { Comparator } from 'typescript-dsa-stl/types';
89
119
  | **Stack** | — | O(1) | — | O(1) | — |
90
120
  | **Queue** | — | O(1)* | — | O(1)* | — |
91
121
  | **List** | O(n) | O(1) | O(1)** | O(1) | O(1)** |
122
+ | **PriorityQueue** | — | O(log n) | — | O(log n) | — |
123
+ | **OrderedMap** (Map) | O(log n) get | O(n) set | — | O(n) delete | — |
124
+ | **UnorderedMap** | O(1)* get/set | O(1)* | — | O(1)* delete | — |
125
+ | **OrderedSet** (Set) | O(log n) has | O(n) add | — | O(n) delete | — |
126
+ | **UnorderedSet** | O(1)* has/add | O(1)* | — | O(1)* delete | — |
92
127
 
93
- \* Amortized. \** At a known node.
128
+ \* Amortized (hash).
129
+ \** At a known node.
94
130
 
95
- ## Publish this package to npm
131
+ ---
96
132
 
97
- 1. **Set repo URLs** in `package.json`: replace `your-username` in `repository`, `homepage`, and `bugs` with your GitHub username (and repo name if different).
98
- 2. **Build**: `npm run build`
99
- 3. **Login**: `npm login`
100
- 4. **Publish**: `npm publish` (use `npm publish --access public` if you use a scoped name like `@yourusername/typescript-dsa-stl`)
133
+ ## For maintainers
101
134
 
102
- ## Scripts
135
+ - **Build:** `npm run build` (also runs before `npm publish` via `prepublishOnly`)
136
+ - **Publish:** `npm publish` (use `npm publish --access public` for a scoped package name)
103
137
 
104
- - `npm run build` — compile TypeScript to `dist/` (runs automatically before `npm publish` via `prepublishOnly`)
138
+ ---
105
139
 
106
140
  ## License
107
141
 
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Ordered map (STL-style map). Keys sorted by comparator. O(log n) get/has, O(n) set/delete.
3
+ * Implemented with a sorted array and binary search.
4
+ */
5
+ import type { Comparator } from '../types/index.js';
6
+ export declare class OrderedMap<K, V> {
7
+ private _entries;
8
+ private _compare;
9
+ constructor(compare?: Comparator<K>);
10
+ get size(): number;
11
+ get empty(): boolean;
12
+ private _lowerBound;
13
+ get(key: K): V | undefined;
14
+ set(key: K, value: V): void;
15
+ has(key: K): boolean;
16
+ delete(key: K): boolean;
17
+ clear(): void;
18
+ keys(): Iterable<K>;
19
+ values(): Iterable<V>;
20
+ entries(): Iterable<[K, V]>;
21
+ [Symbol.iterator](): Iterator<[K, V]>;
22
+ }
23
+ //# sourceMappingURL=OrderedMap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OrderedMap.d.ts","sourceRoot":"","sources":["../../src/collections/OrderedMap.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAMpD,qBAAa,UAAU,CAAC,CAAC,EAAE,CAAC;IAC1B,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,QAAQ,CAAgB;gBAEpB,OAAO,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;IAInC,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,KAAK,IAAI,OAAO,CAEnB;IAED,OAAO,CAAC,WAAW;IAYnB,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS;IAQ1B,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAS3B,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO;IAIpB,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO;IASvB,KAAK,IAAI,IAAI;IAIb,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC;IAInB,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC;IAIrB,OAAO,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAI3B,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CAGtC"}
@@ -0,0 +1,71 @@
1
+ function defaultCompare(a, b) {
2
+ return a < b ? -1 : a > b ? 1 : 0;
3
+ }
4
+ export class OrderedMap {
5
+ constructor(compare) {
6
+ this._entries = [];
7
+ this._compare = compare ?? defaultCompare;
8
+ }
9
+ get size() {
10
+ return this._entries.length;
11
+ }
12
+ get empty() {
13
+ return this._entries.length === 0;
14
+ }
15
+ _lowerBound(key) {
16
+ const cmp = this._compare;
17
+ let lo = 0;
18
+ let hi = this._entries.length;
19
+ while (lo < hi) {
20
+ const mid = (lo + hi) >>> 1;
21
+ if (cmp(this._entries[mid][0], key) < 0)
22
+ lo = mid + 1;
23
+ else
24
+ hi = mid;
25
+ }
26
+ return lo;
27
+ }
28
+ get(key) {
29
+ const i = this._lowerBound(key);
30
+ if (i < this._entries.length && this._compare(this._entries[i][0], key) === 0) {
31
+ return this._entries[i][1];
32
+ }
33
+ return undefined;
34
+ }
35
+ set(key, value) {
36
+ const i = this._lowerBound(key);
37
+ if (i < this._entries.length && this._compare(this._entries[i][0], key) === 0) {
38
+ this._entries[i][1] = value;
39
+ }
40
+ else {
41
+ this._entries.splice(i, 0, [key, value]);
42
+ }
43
+ }
44
+ has(key) {
45
+ return this.get(key) !== undefined;
46
+ }
47
+ delete(key) {
48
+ const i = this._lowerBound(key);
49
+ if (i < this._entries.length && this._compare(this._entries[i][0], key) === 0) {
50
+ this._entries.splice(i, 1);
51
+ return true;
52
+ }
53
+ return false;
54
+ }
55
+ clear() {
56
+ this._entries.length = 0;
57
+ }
58
+ keys() {
59
+ return this._entries.map((e) => e[0]);
60
+ }
61
+ values() {
62
+ return this._entries.map((e) => e[1]);
63
+ }
64
+ entries() {
65
+ return this._entries;
66
+ }
67
+ [Symbol.iterator]() {
68
+ return this._entries[Symbol.iterator]();
69
+ }
70
+ }
71
+ //# sourceMappingURL=OrderedMap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OrderedMap.js","sourceRoot":"","sources":["../../src/collections/OrderedMap.ts"],"names":[],"mappings":"AAMA,SAAS,cAAc,CAAI,CAAI,EAAE,CAAI;IACnC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,OAAO,UAAU;IAIrB,YAAY,OAAuB;QAH3B,aAAQ,GAAa,EAAE,CAAC;QAI9B,IAAI,CAAC,QAAQ,GAAG,OAAO,IAAI,cAAc,CAAC;IAC5C,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC;IACpC,CAAC;IAEO,WAAW,CAAC,GAAM;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC1B,IAAI,EAAE,GAAG,CAAC,CAAC;QACX,IAAI,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC9B,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC;YACf,MAAM,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;YAC5B,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC;gBAAE,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC;;gBACjD,EAAE,GAAG,GAAG,CAAC;QAChB,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,GAAG,CAAC,GAAM;QACR,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9E,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,GAAG,CAAC,GAAM,EAAE,KAAQ;QAClB,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9E,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,GAAG,CAAC,GAAM;QACR,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC;IACrC,CAAC;IAED,MAAM,CAAC,GAAM;QACX,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9E,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC3B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK;QACH,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,CAAC,MAAM,CAAC,QAAQ,CAAC;QACf,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC1C,CAAC;CACF"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Ordered set (STL-style set). Unique elements sorted by comparator. O(log n) has, O(n) add/delete.
3
+ * Implemented with a sorted array and binary search.
4
+ */
5
+ import type { Comparator } from '../types/index.js';
6
+ export declare class OrderedSet<T> {
7
+ private _data;
8
+ private _compare;
9
+ constructor(compare?: Comparator<T>);
10
+ get size(): number;
11
+ get empty(): boolean;
12
+ private _lowerBound;
13
+ has(value: T): boolean;
14
+ add(value: T): void;
15
+ delete(value: T): boolean;
16
+ clear(): void;
17
+ [Symbol.iterator](): Iterator<T>;
18
+ toArray(): T[];
19
+ }
20
+ //# sourceMappingURL=OrderedSet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OrderedSet.d.ts","sourceRoot":"","sources":["../../src/collections/OrderedSet.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAMpD,qBAAa,UAAU,CAAC,CAAC;IACvB,OAAO,CAAC,KAAK,CAAW;IACxB,OAAO,CAAC,QAAQ,CAAgB;gBAEpB,OAAO,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;IAInC,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,KAAK,IAAI,OAAO,CAEnB;IAED,OAAO,CAAC,WAAW;IAYnB,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO;IAKtB,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI;IAOnB,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO;IASzB,KAAK,IAAI,IAAI;IAIb,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC;IAIhC,OAAO,IAAI,CAAC,EAAE;CAGf"}
@@ -0,0 +1,56 @@
1
+ function defaultCompare(a, b) {
2
+ return a < b ? -1 : a > b ? 1 : 0;
3
+ }
4
+ export class OrderedSet {
5
+ constructor(compare) {
6
+ this._data = [];
7
+ this._compare = compare ?? defaultCompare;
8
+ }
9
+ get size() {
10
+ return this._data.length;
11
+ }
12
+ get empty() {
13
+ return this._data.length === 0;
14
+ }
15
+ _lowerBound(value) {
16
+ const cmp = this._compare;
17
+ let lo = 0;
18
+ let hi = this._data.length;
19
+ while (lo < hi) {
20
+ const mid = (lo + hi) >>> 1;
21
+ if (cmp(this._data[mid], value) < 0)
22
+ lo = mid + 1;
23
+ else
24
+ hi = mid;
25
+ }
26
+ return lo;
27
+ }
28
+ has(value) {
29
+ const i = this._lowerBound(value);
30
+ return i < this._data.length && this._compare(this._data[i], value) === 0;
31
+ }
32
+ add(value) {
33
+ const i = this._lowerBound(value);
34
+ if (i >= this._data.length || this._compare(this._data[i], value) !== 0) {
35
+ this._data.splice(i, 0, value);
36
+ }
37
+ }
38
+ delete(value) {
39
+ const i = this._lowerBound(value);
40
+ if (i < this._data.length && this._compare(this._data[i], value) === 0) {
41
+ this._data.splice(i, 1);
42
+ return true;
43
+ }
44
+ return false;
45
+ }
46
+ clear() {
47
+ this._data.length = 0;
48
+ }
49
+ [Symbol.iterator]() {
50
+ return this._data[Symbol.iterator]();
51
+ }
52
+ toArray() {
53
+ return [...this._data];
54
+ }
55
+ }
56
+ //# sourceMappingURL=OrderedSet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OrderedSet.js","sourceRoot":"","sources":["../../src/collections/OrderedSet.ts"],"names":[],"mappings":"AAMA,SAAS,cAAc,CAAI,CAAI,EAAE,CAAI;IACnC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,OAAO,UAAU;IAIrB,YAAY,OAAuB;QAH3B,UAAK,GAAQ,EAAE,CAAC;QAItB,IAAI,CAAC,QAAQ,GAAG,OAAO,IAAI,cAAc,CAAC;IAC5C,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC3B,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;IACjC,CAAC;IAEO,WAAW,CAAC,KAAQ;QAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC1B,IAAI,EAAE,GAAG,CAAC,CAAC;QACX,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QAC3B,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC;YACf,MAAM,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;YAC5B,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC;gBAAE,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC;;gBAC7C,EAAE,GAAG,GAAG,CAAC;QAChB,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,GAAG,CAAC,KAAQ;QACV,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAClC,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IAC5E,CAAC;IAED,GAAG,CAAC,KAAQ;QACV,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YACxE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED,MAAM,CAAC,KAAQ;QACb,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YACvE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACxB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IACxB,CAAC;IAED,CAAC,MAAM,CAAC,QAAQ,CAAC;QACf,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;IACvC,CAAC;IAED,OAAO;QACL,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;CACF"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Priority queue (binary heap). O(log n) push and pop, O(1) top.
3
+ * Default: max-heap (highest priority at top). Pass a custom comparator to change order.
4
+ */
5
+ import type { Comparator } from '../types/index.js';
6
+ export declare class PriorityQueue<T> {
7
+ private _heap;
8
+ private _compare;
9
+ /** compare(a,b) < 0 means a has lower priority than b. Default: max-heap. */
10
+ constructor(compare?: Comparator<T>);
11
+ get size(): number;
12
+ get empty(): boolean;
13
+ /** Highest-priority element. */
14
+ top(): T;
15
+ push(value: T): void;
16
+ pop(): T | undefined;
17
+ clear(): void;
18
+ private _siftUp;
19
+ private _siftDown;
20
+ toArray(): T[];
21
+ }
22
+ //# sourceMappingURL=PriorityQueue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PriorityQueue.d.ts","sourceRoot":"","sources":["../../src/collections/PriorityQueue.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAMpD,qBAAa,aAAa,CAAC,CAAC;IAC1B,OAAO,CAAC,KAAK,CAAW;IACxB,OAAO,CAAC,QAAQ,CAAgB;IAEhC,6EAA6E;gBACjE,OAAO,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;IAInC,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,KAAK,IAAI,OAAO,CAEnB;IAED,gCAAgC;IAChC,GAAG,IAAI,CAAC;IAKR,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI;IAKpB,GAAG,IAAI,CAAC,GAAG,SAAS;IAWpB,KAAK,IAAI,IAAI;IAIb,OAAO,CAAC,OAAO;IAWf,OAAO,CAAC,SAAS;IAgBjB,OAAO,IAAI,CAAC,EAAE;CAGf"}
@@ -0,0 +1,73 @@
1
+ function defaultCompare(a, b) {
2
+ return a < b ? -1 : a > b ? 1 : 0;
3
+ }
4
+ export class PriorityQueue {
5
+ /** compare(a,b) < 0 means a has lower priority than b. Default: max-heap. */
6
+ constructor(compare) {
7
+ this._heap = [];
8
+ this._compare = compare ?? defaultCompare;
9
+ }
10
+ get size() {
11
+ return this._heap.length;
12
+ }
13
+ get empty() {
14
+ return this._heap.length === 0;
15
+ }
16
+ /** Highest-priority element. */
17
+ top() {
18
+ if (this._heap.length === 0)
19
+ throw new RangeError('PriorityQueue is empty');
20
+ return this._heap[0];
21
+ }
22
+ push(value) {
23
+ this._heap.push(value);
24
+ this._siftUp(this._heap.length - 1);
25
+ }
26
+ pop() {
27
+ if (this._heap.length === 0)
28
+ return undefined;
29
+ const top = this._heap[0];
30
+ const last = this._heap.pop();
31
+ if (this._heap.length > 0) {
32
+ this._heap[0] = last;
33
+ this._siftDown(0);
34
+ }
35
+ return top;
36
+ }
37
+ clear() {
38
+ this._heap.length = 0;
39
+ }
40
+ _siftUp(i) {
41
+ const cmp = this._compare;
42
+ const arr = this._heap;
43
+ while (i > 0) {
44
+ const parent = (i - 1) >>> 1;
45
+ if (cmp(arr[i], arr[parent]) <= 0)
46
+ break;
47
+ [arr[i], arr[parent]] = [arr[parent], arr[i]];
48
+ i = parent;
49
+ }
50
+ }
51
+ _siftDown(i) {
52
+ const cmp = this._compare;
53
+ const arr = this._heap;
54
+ const n = arr.length;
55
+ while (true) {
56
+ let best = i;
57
+ const left = 2 * i + 1;
58
+ const right = 2 * i + 2;
59
+ if (left < n && cmp(arr[left], arr[best]) > 0)
60
+ best = left;
61
+ if (right < n && cmp(arr[right], arr[best]) > 0)
62
+ best = right;
63
+ if (best === i)
64
+ break;
65
+ [arr[i], arr[best]] = [arr[best], arr[i]];
66
+ i = best;
67
+ }
68
+ }
69
+ toArray() {
70
+ return [...this._heap];
71
+ }
72
+ }
73
+ //# sourceMappingURL=PriorityQueue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PriorityQueue.js","sourceRoot":"","sources":["../../src/collections/PriorityQueue.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Unordered map (STL-style unordered_map). Hash-based. O(1) average get/set/has/delete.
3
+ * Wraps the native Map with an STL-like API.
4
+ */
5
+ export declare class UnorderedMap<K, V> {
6
+ private _map;
7
+ constructor(entries?: Iterable<[K, V]>);
8
+ get size(): number;
9
+ get empty(): boolean;
10
+ get(key: K): V | undefined;
11
+ set(key: K, value: V): void;
12
+ has(key: K): boolean;
13
+ delete(key: K): boolean;
14
+ clear(): void;
15
+ keys(): Iterable<K>;
16
+ values(): Iterable<V>;
17
+ entries(): Iterable<[K, V]>;
18
+ [Symbol.iterator](): Iterator<[K, V]>;
19
+ }
20
+ //# sourceMappingURL=UnorderedMap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UnorderedMap.d.ts","sourceRoot":"","sources":["../../src/collections/UnorderedMap.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,qBAAa,YAAY,CAAC,CAAC,EAAE,CAAC;IAC5B,OAAO,CAAC,IAAI,CAAmC;gBAEnC,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAMtC,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,KAAK,IAAI,OAAO,CAEnB;IAED,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS;IAI1B,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAI3B,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO;IAIpB,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO;IAIvB,KAAK,IAAI,IAAI;IAIb,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC;IAInB,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC;IAIrB,OAAO,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAI3B,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CAGtC"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Unordered map (STL-style unordered_map). Hash-based. O(1) average get/set/has/delete.
3
+ * Wraps the native Map with an STL-like API.
4
+ */
5
+ export class UnorderedMap {
6
+ constructor(entries) {
7
+ this._map = new Map();
8
+ if (entries) {
9
+ for (const [k, v] of entries)
10
+ this._map.set(k, v);
11
+ }
12
+ }
13
+ get size() {
14
+ return this._map.size;
15
+ }
16
+ get empty() {
17
+ return this._map.size === 0;
18
+ }
19
+ get(key) {
20
+ return this._map.get(key);
21
+ }
22
+ set(key, value) {
23
+ this._map.set(key, value);
24
+ }
25
+ has(key) {
26
+ return this._map.has(key);
27
+ }
28
+ delete(key) {
29
+ return this._map.delete(key);
30
+ }
31
+ clear() {
32
+ this._map.clear();
33
+ }
34
+ keys() {
35
+ return this._map.keys();
36
+ }
37
+ values() {
38
+ return this._map.values();
39
+ }
40
+ entries() {
41
+ return this._map.entries();
42
+ }
43
+ [Symbol.iterator]() {
44
+ return this._map.entries();
45
+ }
46
+ }
47
+ //# sourceMappingURL=UnorderedMap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UnorderedMap.js","sourceRoot":"","sources":["../../src/collections/UnorderedMap.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,OAAO,YAAY;IAGvB,YAAY,OAA0B;QAF9B,SAAI,GAAyB,IAAI,GAAG,EAAE,CAAC;QAG7C,IAAI,OAAO,EAAE,CAAC;YACZ,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,OAAO;gBAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACxB,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,GAAG,CAAC,GAAM;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,GAAG,CAAC,GAAM,EAAE,KAAQ;QAClB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED,GAAG,CAAC,GAAM;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,MAAM,CAAC,GAAM;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK;QACH,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IACpB,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IAC1B,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;IAC5B,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAED,CAAC,MAAM,CAAC,QAAQ,CAAC;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;CACF"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Unordered set (STL-style unordered_set). Hash-based. O(1) average add/has/delete.
3
+ * Wraps the native Set with an STL-like API.
4
+ */
5
+ export declare class UnorderedSet<T> {
6
+ private _set;
7
+ constructor(values?: Iterable<T>);
8
+ get size(): number;
9
+ get empty(): boolean;
10
+ has(value: T): boolean;
11
+ add(value: T): void;
12
+ delete(value: T): boolean;
13
+ clear(): void;
14
+ [Symbol.iterator](): Iterator<T>;
15
+ toArray(): T[];
16
+ }
17
+ //# sourceMappingURL=UnorderedSet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UnorderedSet.d.ts","sourceRoot":"","sources":["../../src/collections/UnorderedSet.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,qBAAa,YAAY,CAAC,CAAC;IACzB,OAAO,CAAC,IAAI,CAAgC;gBAEhC,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;IAMhC,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,KAAK,IAAI,OAAO,CAEnB;IAED,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO;IAItB,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI;IAInB,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO;IAIzB,KAAK,IAAI,IAAI;IAIb,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC;IAIhC,OAAO,IAAI,CAAC,EAAE;CAGf"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Unordered set (STL-style unordered_set). Hash-based. O(1) average add/has/delete.
3
+ * Wraps the native Set with an STL-like API.
4
+ */
5
+ export class UnorderedSet {
6
+ constructor(values) {
7
+ this._set = new Set();
8
+ if (values) {
9
+ for (const v of values)
10
+ this._set.add(v);
11
+ }
12
+ }
13
+ get size() {
14
+ return this._set.size;
15
+ }
16
+ get empty() {
17
+ return this._set.size === 0;
18
+ }
19
+ has(value) {
20
+ return this._set.has(value);
21
+ }
22
+ add(value) {
23
+ this._set.add(value);
24
+ }
25
+ delete(value) {
26
+ return this._set.delete(value);
27
+ }
28
+ clear() {
29
+ this._set.clear();
30
+ }
31
+ [Symbol.iterator]() {
32
+ return this._set.values();
33
+ }
34
+ toArray() {
35
+ return [...this._set];
36
+ }
37
+ }
38
+ //# sourceMappingURL=UnorderedSet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UnorderedSet.js","sourceRoot":"","sources":["../../src/collections/UnorderedSet.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,OAAO,YAAY;IAGvB,YAAY,MAAoB;QAFxB,SAAI,GAAsB,IAAI,GAAG,EAAE,CAAC;QAG1C,IAAI,MAAM,EAAE,CAAC;YACX,KAAK,MAAM,CAAC,IAAI,MAAM;gBAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACxB,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,GAAG,CAAC,KAAQ;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,GAAG,CAAC,KAAQ;QACV,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAED,MAAM,CAAC,KAAQ;QACb,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,KAAK;QACH,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IACpB,CAAC;IAED,CAAC,MAAM,CAAC,QAAQ,CAAC;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;IAC5B,CAAC;IAED,OAAO;QACL,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"Vector.d.ts","sourceRoot":"","sources":["../../src/collections/Vector.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,qBAAa,MAAM,CAAC,CAAC;IACnB,OAAO,CAAC,KAAK,CAAM;IACnB,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,CAAC,EAAE,CAAC,EAAE,GAAG,MAAM;IAelC,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,KAAK,IAAI,OAAO,CAEnB;IAED,+CAA+C;IAC/C,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,+EAA+E;IAC/E,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAOxB,gDAAgD;IAChD,WAAW,IAAI,IAAI;IAOnB,OAAO,CAAC,cAAc;IAQtB,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC;IAOpB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAOlC,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,MAAM;IAMtB,GAAG,IAAI,CAAC,GAAG,SAAS;IAOpB,KAAK,IAAI,CAAC;IAKV,IAAI,IAAI,CAAC;IAKT,KAAK,IAAI,IAAI;IAIb,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC;IAYhC,OAAO,IAAI,CAAC,EAAE;CAKf"}
1
+ {"version":3,"file":"Vector.d.ts","sourceRoot":"","sources":["../../src/collections/Vector.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,qBAAa,MAAM,CAAC,CAAC;IACnB,OAAO,CAAC,KAAK,CAAM;IACnB,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,CAAC,EAAE,CAAC,EAAE,GAAG,MAAM;IAgBlC,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,KAAK,IAAI,OAAO,CAEnB;IAED,+CAA+C;IAC/C,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,+EAA+E;IAC/E,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAOxB,gDAAgD;IAChD,WAAW,IAAI,IAAI;IAOnB,OAAO,CAAC,cAAc;IAQtB,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC;IAOpB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAOlC,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,MAAM;IAMtB,GAAG,IAAI,CAAC,GAAG,SAAS;IAOpB,KAAK,IAAI,CAAC;IAKV,IAAI,IAAI,CAAC;IAKT,KAAK,IAAI,IAAI;IAIb,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC;IAYhC,OAAO,IAAI,CAAC,EAAE;CAKf"}
@@ -10,8 +10,9 @@ export class Vector {
10
10
  return;
11
11
  }
12
12
  if (typeof initial === 'number') {
13
- this._data = new Array(Math.max(0, initial));
14
- this._length = initial;
13
+ const n = Math.max(0, initial);
14
+ this._data = new Array(n);
15
+ this._length = n;
15
16
  return;
16
17
  }
17
18
  this._data = [...initial];
@@ -1 +1 @@
1
- {"version":3,"file":"Vector.js","sourceRoot":"","sources":["../../src/collections/Vector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Vector.js","sourceRoot":"","sources":["../../src/collections/Vector.ts"],"names":[],"mappings":"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"}
@@ -2,4 +2,9 @@ export { Vector } from './Vector.js';
2
2
  export { Stack } from './Stack.js';
3
3
  export { Queue } from './Queue.js';
4
4
  export { List, ListNode } from './List.js';
5
+ export { PriorityQueue } from './PriorityQueue.js';
6
+ export { OrderedMap } from './OrderedMap.js';
7
+ export { UnorderedMap } from './UnorderedMap.js';
8
+ export { OrderedSet } from './OrderedSet.js';
9
+ export { UnorderedSet } from './UnorderedSet.js';
5
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/collections/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/collections/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
@@ -2,4 +2,9 @@ export { Vector } from './Vector.js';
2
2
  export { Stack } from './Stack.js';
3
3
  export { Queue } from './Queue.js';
4
4
  export { List, ListNode } from './List.js';
5
+ export { PriorityQueue } from './PriorityQueue.js';
6
+ export { OrderedMap } from './OrderedMap.js';
7
+ export { UnorderedMap } from './UnorderedMap.js';
8
+ export { OrderedSet } from './OrderedSet.js';
9
+ export { UnorderedSet } from './UnorderedSet.js';
5
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/collections/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/collections/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
package/dist/index.d.ts CHANGED
@@ -5,7 +5,7 @@
5
5
  * @example
6
6
  * import { Vector, Stack, Queue, List, sort, binarySearch, clamp } from 'typescript-dsa-stl';
7
7
  */
8
- export { Vector, Stack, Queue, List, ListNode } from './collections/index.js';
8
+ export { Vector, Stack, Queue, List, ListNode, PriorityQueue, OrderedMap, UnorderedMap, OrderedSet, UnorderedSet, } from './collections/index.js';
9
9
  export { sort, find, findIndex, transform, filter, reduce, reverse, unique, binarySearch, lowerBound, upperBound, min, max, partition, } from './algorithms/index.js';
10
10
  export { clamp, range, noop, identity, swap } from './utils/index.js';
11
11
  export type { Comparator, Predicate, UnaryFn, Reducer, IterableLike } from './types/index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,EACL,IAAI,EACJ,IAAI,EACJ,SAAS,EACT,SAAS,EACT,MAAM,EACN,MAAM,EACN,OAAO,EACP,MAAM,EACN,YAAY,EACZ,UAAU,EACV,UAAU,EACV,GAAG,EACH,GAAG,EACH,SAAS,GACV,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACtE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC9F,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,MAAM,EACN,KAAK,EACL,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,aAAa,EACb,UAAU,EACV,YAAY,EACZ,UAAU,EACV,YAAY,GACb,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,IAAI,EACJ,IAAI,EACJ,SAAS,EACT,SAAS,EACT,MAAM,EACN,MAAM,EACN,OAAO,EACP,MAAM,EACN,YAAY,EACZ,UAAU,EACV,UAAU,EACV,GAAG,EACH,GAAG,EACH,SAAS,GACV,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACtE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC9F,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC"}
package/dist/index.js CHANGED
@@ -5,7 +5,7 @@
5
5
  * @example
6
6
  * import { Vector, Stack, Queue, List, sort, binarySearch, clamp } from 'typescript-dsa-stl';
7
7
  */
8
- export { Vector, Stack, Queue, List, ListNode } from './collections/index.js';
8
+ export { Vector, Stack, Queue, List, ListNode, PriorityQueue, OrderedMap, UnorderedMap, OrderedSet, UnorderedSet, } from './collections/index.js';
9
9
  export { sort, find, findIndex, transform, filter, reduce, reverse, unique, binarySearch, lowerBound, upperBound, min, max, partition, } from './algorithms/index.js';
10
10
  export { clamp, range, noop, identity, swap } from './utils/index.js';
11
11
  export { toArray } from './types/index.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,EACL,IAAI,EACJ,IAAI,EACJ,SAAS,EACT,SAAS,EACT,MAAM,EACN,MAAM,EACN,OAAO,EACP,MAAM,EACN,YAAY,EACZ,UAAU,EACV,UAAU,EACV,GAAG,EACH,GAAG,EACH,SAAS,GACV,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAEtE,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,MAAM,EACN,KAAK,EACL,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,aAAa,EACb,UAAU,EACV,YAAY,EACZ,UAAU,EACV,YAAY,GACb,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,IAAI,EACJ,IAAI,EACJ,SAAS,EACT,SAAS,EACT,MAAM,EACN,MAAM,EACN,OAAO,EACP,MAAM,EACN,YAAY,EACZ,UAAU,EACV,UAAU,EACV,GAAG,EACH,GAAG,EACH,SAAS,GACV,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAEtE,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "typescript-dsa-stl",
3
- "version": "1.0.0",
3
+ "version": "1.2.0",
4
4
  "description": "TypeScript_DSA — STL-like data structures and algorithms. Vector, Stack, Queue, List, sort, binarySearch, and more.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",