@zengrid/shared 1.0.0 → 1.0.1

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 (154) hide show
  1. package/dist/README.md +44 -0
  2. package/dist/index.cjs.default.js +1 -0
  3. package/dist/index.cjs.js +6250 -0
  4. package/dist/index.cjs.mjs +2 -0
  5. package/dist/index.d.ts +1 -0
  6. package/dist/index.esm.js +6207 -0
  7. package/dist/package.json +54 -0
  8. package/dist/src/algorithms/filter/bloom-filter.d.ts +120 -0
  9. package/dist/src/algorithms/filter/bloom-filter.d.ts.map +1 -0
  10. package/dist/src/algorithms/filter/index.d.ts +7 -0
  11. package/dist/src/algorithms/filter/index.d.ts.map +1 -0
  12. package/dist/src/algorithms/graph/bfs.d.ts +71 -0
  13. package/dist/src/algorithms/graph/bfs.d.ts.map +1 -0
  14. package/dist/src/algorithms/graph/dfs.d.ts +62 -0
  15. package/dist/src/algorithms/graph/dfs.d.ts.map +1 -0
  16. package/dist/src/algorithms/graph/graph.interface.d.ts +63 -0
  17. package/dist/src/algorithms/graph/graph.interface.d.ts.map +1 -0
  18. package/dist/src/algorithms/graph/index.d.ts +9 -0
  19. package/dist/src/algorithms/graph/index.d.ts.map +1 -0
  20. package/dist/src/algorithms/index.d.ts +11 -0
  21. package/dist/src/algorithms/index.d.ts.map +1 -0
  22. package/dist/src/algorithms/pattern/index.d.ts +8 -0
  23. package/dist/src/algorithms/pattern/index.d.ts.map +1 -0
  24. package/dist/src/algorithms/pattern/sequence-detector.d.ts +62 -0
  25. package/dist/src/algorithms/pattern/sequence-detector.d.ts.map +1 -0
  26. package/dist/src/algorithms/search/binary-search.d.ts +86 -0
  27. package/dist/src/algorithms/search/binary-search.d.ts.map +1 -0
  28. package/dist/src/algorithms/search/index.d.ts +6 -0
  29. package/dist/src/algorithms/search/index.d.ts.map +1 -0
  30. package/dist/src/algorithms/sorting/comparators.d.ts +126 -0
  31. package/dist/src/algorithms/sorting/comparators.d.ts.map +1 -0
  32. package/dist/src/algorithms/sorting/index.d.ts +9 -0
  33. package/dist/src/algorithms/sorting/index.d.ts.map +1 -0
  34. package/dist/src/algorithms/sorting/sorting.interface.d.ts +38 -0
  35. package/dist/src/algorithms/sorting/sorting.interface.d.ts.map +1 -0
  36. package/dist/src/algorithms/sorting/timsort.d.ts +55 -0
  37. package/dist/src/algorithms/sorting/timsort.d.ts.map +1 -0
  38. package/dist/src/data-structures/column-store/column-store.d.ts +52 -0
  39. package/dist/src/data-structures/column-store/column-store.d.ts.map +1 -0
  40. package/dist/src/data-structures/column-store/column-store.interface.d.ts +155 -0
  41. package/dist/src/data-structures/column-store/column-store.interface.d.ts.map +1 -0
  42. package/dist/src/data-structures/column-store/index.d.ts +6 -0
  43. package/dist/src/data-structures/column-store/index.d.ts.map +1 -0
  44. package/dist/src/data-structures/command-stack/command-stack.d.ts +61 -0
  45. package/dist/src/data-structures/command-stack/command-stack.d.ts.map +1 -0
  46. package/dist/src/data-structures/command-stack/command-stack.interface.d.ts +80 -0
  47. package/dist/src/data-structures/command-stack/command-stack.interface.d.ts.map +1 -0
  48. package/dist/src/data-structures/command-stack/index.d.ts +3 -0
  49. package/dist/src/data-structures/command-stack/index.d.ts.map +1 -0
  50. package/dist/src/data-structures/dependency-graph/dependency-graph.d.ts +147 -0
  51. package/dist/src/data-structures/dependency-graph/dependency-graph.d.ts.map +1 -0
  52. package/dist/src/data-structures/dependency-graph/dependency-graph.interface.d.ts +161 -0
  53. package/dist/src/data-structures/dependency-graph/dependency-graph.interface.d.ts.map +1 -0
  54. package/dist/src/data-structures/dependency-graph/index.d.ts +8 -0
  55. package/dist/src/data-structures/dependency-graph/index.d.ts.map +1 -0
  56. package/dist/src/data-structures/disjoint-set/disjoint-set.d.ts +84 -0
  57. package/dist/src/data-structures/disjoint-set/disjoint-set.d.ts.map +1 -0
  58. package/dist/src/data-structures/disjoint-set/disjoint-set.interface.d.ts +185 -0
  59. package/dist/src/data-structures/disjoint-set/disjoint-set.interface.d.ts.map +1 -0
  60. package/dist/src/data-structures/disjoint-set/index.d.ts +7 -0
  61. package/dist/src/data-structures/disjoint-set/index.d.ts.map +1 -0
  62. package/dist/src/data-structures/index-map/index-map.d.ts +150 -0
  63. package/dist/src/data-structures/index-map/index-map.d.ts.map +1 -0
  64. package/dist/src/data-structures/index-map/index-map.interface.d.ts +186 -0
  65. package/dist/src/data-structures/index-map/index-map.interface.d.ts.map +1 -0
  66. package/dist/src/data-structures/index-map/index.d.ts +6 -0
  67. package/dist/src/data-structures/index-map/index.d.ts.map +1 -0
  68. package/dist/src/data-structures/index.d.ts +36 -0
  69. package/dist/src/data-structures/index.d.ts.map +1 -0
  70. package/dist/src/data-structures/interval-tree/index.d.ts +7 -0
  71. package/dist/src/data-structures/interval-tree/index.d.ts.map +1 -0
  72. package/dist/src/data-structures/interval-tree/interval-tree.d.ts +141 -0
  73. package/dist/src/data-structures/interval-tree/interval-tree.d.ts.map +1 -0
  74. package/dist/src/data-structures/interval-tree/interval-tree.interface.d.ts +212 -0
  75. package/dist/src/data-structures/interval-tree/interval-tree.interface.d.ts.map +1 -0
  76. package/dist/src/data-structures/lru-cache/index.d.ts +3 -0
  77. package/dist/src/data-structures/lru-cache/index.d.ts.map +1 -0
  78. package/dist/src/data-structures/lru-cache/lru-cache.d.ts +134 -0
  79. package/dist/src/data-structures/lru-cache/lru-cache.d.ts.map +1 -0
  80. package/dist/src/data-structures/lru-cache/lru-cache.interface.d.ts +173 -0
  81. package/dist/src/data-structures/lru-cache/lru-cache.interface.d.ts.map +1 -0
  82. package/dist/src/data-structures/prefix-sum-array/index.d.ts +6 -0
  83. package/dist/src/data-structures/prefix-sum-array/index.d.ts.map +1 -0
  84. package/dist/src/data-structures/prefix-sum-array/prefix-sum-array.d.ts +63 -0
  85. package/dist/src/data-structures/prefix-sum-array/prefix-sum-array.d.ts.map +1 -0
  86. package/dist/src/data-structures/prefix-sum-array/prefix-sum-array.interface.d.ts +80 -0
  87. package/dist/src/data-structures/prefix-sum-array/prefix-sum-array.interface.d.ts.map +1 -0
  88. package/dist/src/data-structures/rtree/index.d.ts +8 -0
  89. package/dist/src/data-structures/rtree/index.d.ts.map +1 -0
  90. package/dist/src/data-structures/rtree/rtree.d.ts +81 -0
  91. package/dist/src/data-structures/rtree/rtree.d.ts.map +1 -0
  92. package/dist/src/data-structures/rtree/rtree.interface.d.ts +143 -0
  93. package/dist/src/data-structures/rtree/rtree.interface.d.ts.map +1 -0
  94. package/dist/src/data-structures/segment-tree/index.d.ts +4 -0
  95. package/dist/src/data-structures/segment-tree/index.d.ts.map +1 -0
  96. package/dist/src/data-structures/segment-tree/segment-tree.d.ts +134 -0
  97. package/dist/src/data-structures/segment-tree/segment-tree.d.ts.map +1 -0
  98. package/dist/src/data-structures/segment-tree/segment-tree.interface.d.ts +202 -0
  99. package/dist/src/data-structures/segment-tree/segment-tree.interface.d.ts.map +1 -0
  100. package/dist/src/data-structures/skip-list/index.d.ts +4 -0
  101. package/dist/src/data-structures/skip-list/index.d.ts.map +1 -0
  102. package/dist/src/data-structures/skip-list/skip-list.d.ts +137 -0
  103. package/dist/src/data-structures/skip-list/skip-list.d.ts.map +1 -0
  104. package/dist/src/data-structures/skip-list/skip-list.interface.d.ts +223 -0
  105. package/dist/src/data-structures/skip-list/skip-list.interface.d.ts.map +1 -0
  106. package/dist/src/data-structures/sparse-matrix/index.d.ts +6 -0
  107. package/dist/src/data-structures/sparse-matrix/index.d.ts.map +1 -0
  108. package/dist/src/data-structures/sparse-matrix/sparse-matrix.d.ts +44 -0
  109. package/dist/src/data-structures/sparse-matrix/sparse-matrix.d.ts.map +1 -0
  110. package/dist/src/data-structures/sparse-matrix/sparse-matrix.interface.d.ts +105 -0
  111. package/dist/src/data-structures/sparse-matrix/sparse-matrix.interface.d.ts.map +1 -0
  112. package/dist/src/data-structures/suffix-array/index.d.ts +3 -0
  113. package/dist/src/data-structures/suffix-array/index.d.ts.map +1 -0
  114. package/dist/src/data-structures/suffix-array/suffix-array.d.ts +102 -0
  115. package/dist/src/data-structures/suffix-array/suffix-array.d.ts.map +1 -0
  116. package/dist/src/data-structures/suffix-array/suffix-array.interface.d.ts +117 -0
  117. package/dist/src/data-structures/suffix-array/suffix-array.interface.d.ts.map +1 -0
  118. package/dist/src/data-structures/trie/index.d.ts +8 -0
  119. package/dist/src/data-structures/trie/index.d.ts.map +1 -0
  120. package/dist/src/data-structures/trie/trie.d.ts +205 -0
  121. package/dist/src/data-structures/trie/trie.d.ts.map +1 -0
  122. package/dist/src/data-structures/trie/trie.interface.d.ts +117 -0
  123. package/dist/src/data-structures/trie/trie.interface.d.ts.map +1 -0
  124. package/dist/src/index.d.ts +47 -0
  125. package/dist/src/index.d.ts.map +1 -0
  126. package/dist/src/patterns/coordinator.d.ts +90 -0
  127. package/dist/src/patterns/coordinator.d.ts.map +1 -0
  128. package/dist/src/patterns/event-emitter.d.ts +106 -0
  129. package/dist/src/patterns/event-emitter.d.ts.map +1 -0
  130. package/dist/src/patterns/factory.d.ts +120 -0
  131. package/dist/src/patterns/factory.d.ts.map +1 -0
  132. package/dist/src/patterns/index.d.ts +21 -0
  133. package/dist/src/patterns/index.d.ts.map +1 -0
  134. package/dist/src/patterns/mediator.d.ts +116 -0
  135. package/dist/src/patterns/mediator.d.ts.map +1 -0
  136. package/dist/src/patterns/object-pool.d.ts +178 -0
  137. package/dist/src/patterns/object-pool.d.ts.map +1 -0
  138. package/dist/src/patterns/observer.d.ts +89 -0
  139. package/dist/src/patterns/observer.d.ts.map +1 -0
  140. package/dist/src/patterns/operation-mode.d.ts +75 -0
  141. package/dist/src/patterns/operation-mode.d.ts.map +1 -0
  142. package/dist/src/patterns/state-machine.d.ts +122 -0
  143. package/dist/src/patterns/state-machine.d.ts.map +1 -0
  144. package/dist/src/types/common.d.ts +56 -0
  145. package/dist/src/types/common.d.ts.map +1 -0
  146. package/dist/src/types/index.d.ts +5 -0
  147. package/dist/src/types/index.d.ts.map +1 -0
  148. package/dist/src/utils/index.d.ts +7 -0
  149. package/dist/src/utils/index.d.ts.map +1 -0
  150. package/dist/src/utils/timing.d.ts +104 -0
  151. package/dist/src/utils/timing.d.ts.map +1 -0
  152. package/dist/src/utils/timing.interface.d.ts +96 -0
  153. package/dist/src/utils/timing.interface.d.ts.map +1 -0
  154. package/package.json +1 -1
@@ -0,0 +1,150 @@
1
+ /**
2
+ * IndexMap implementation
3
+ * Provides O(1) bidirectional lookup with maintained insertion order
4
+ */
5
+ import type { IIndexMap, IndexMapEntry, IndexMapOptions } from './index-map.interface';
6
+ /**
7
+ * IndexMap - A hybrid data structure combining Map and Array benefits
8
+ *
9
+ * Features:
10
+ * - O(1) key → value lookup
11
+ * - O(1) index → entry lookup
12
+ * - O(1) key → index lookup
13
+ * - Optional O(1) value → key reverse lookup
14
+ * - Maintains insertion order
15
+ *
16
+ * Implementation:
17
+ * - Uses Map for key → {value, index} mapping
18
+ * - Uses Array for index → {key, value} mapping
19
+ * - Optional Map for value → key[] reverse mapping
20
+ *
21
+ * @example
22
+ * ```typescript
23
+ * const map = new IndexMap<string, number>();
24
+ * map.set('a', 1); // index 0
25
+ * map.set('b', 2); // index 1
26
+ * map.set('c', 3); // index 2
27
+ *
28
+ * map.get('b'); // 2
29
+ * map.getByIndex(1); // { key: 'b', value: 2, index: 1 }
30
+ * map.indexOf('c'); // 2
31
+ * map.getValueByIndex(0); // 1
32
+ * ```
33
+ */
34
+ export declare class IndexMap<K, V> implements IIndexMap<K, V> {
35
+ private keyToData;
36
+ private indexToEntry;
37
+ private valueToKeys?;
38
+ private readonly reverseMapping;
39
+ constructor(options?: IndexMapOptions);
40
+ /**
41
+ * Set a key-value pair
42
+ */
43
+ set(key: K, value: V): number;
44
+ /**
45
+ * Get value by key
46
+ */
47
+ get(key: K): V | undefined;
48
+ /**
49
+ * Get entry by index
50
+ */
51
+ getByIndex(index: number): IndexMapEntry<K, V> | undefined;
52
+ /**
53
+ * Get key by index
54
+ */
55
+ getKeyByIndex(index: number): K | undefined;
56
+ /**
57
+ * Get value by index
58
+ */
59
+ getValueByIndex(index: number): V | undefined;
60
+ /**
61
+ * Get the index of a key
62
+ */
63
+ indexOf(key: K): number;
64
+ /**
65
+ * Reverse lookup: get key(s) by value
66
+ */
67
+ getKeysByValue(value: V): K[];
68
+ /**
69
+ * Check if a key exists
70
+ */
71
+ has(key: K): boolean;
72
+ /**
73
+ * Check if a value exists
74
+ */
75
+ hasValue(value: V): boolean;
76
+ /**
77
+ * Delete an entry by key
78
+ * Reindexes all subsequent entries
79
+ */
80
+ delete(key: K): boolean;
81
+ /**
82
+ * Delete an entry by index
83
+ */
84
+ deleteByIndex(index: number): boolean;
85
+ /**
86
+ * Clear all entries
87
+ */
88
+ clear(): void;
89
+ /**
90
+ * Get all keys in insertion order
91
+ */
92
+ keys(): K[];
93
+ /**
94
+ * Get all values in insertion order
95
+ */
96
+ values(): V[];
97
+ /**
98
+ * Get all entries in insertion order
99
+ */
100
+ entries(): [K, V][];
101
+ /**
102
+ * Iterate over entries
103
+ */
104
+ forEach(callback: (value: V, key: K, index: number) => void): void;
105
+ /**
106
+ * Find the first key that satisfies a predicate
107
+ */
108
+ find(predicate: (value: V, key: K, index: number) => boolean): K | undefined;
109
+ /**
110
+ * Filter entries by a predicate
111
+ */
112
+ filter(predicate: (value: V, key: K, index: number) => boolean): IIndexMap<K, V>;
113
+ /**
114
+ * Map values to a new IndexMap
115
+ */
116
+ map<U>(mapper: (value: V, key: K, index: number) => U): IIndexMap<K, U>;
117
+ /**
118
+ * Number of entries
119
+ */
120
+ get size(): number;
121
+ /**
122
+ * Whether reverse mapping is enabled
123
+ */
124
+ get hasReverseMapping(): boolean;
125
+ /**
126
+ * Create IndexMap from an array of entries
127
+ */
128
+ static from<K, V>(entries: Iterable<[K, V]>, options?: IndexMapOptions): IndexMap<K, V>;
129
+ /**
130
+ * Create IndexMap from a regular Map
131
+ */
132
+ static fromMap<K, V>(source: Map<K, V>, options?: IndexMapOptions): IndexMap<K, V>;
133
+ /**
134
+ * Create IndexMap from an object
135
+ */
136
+ static fromObject<V>(obj: Record<string, V>, options?: IndexMapOptions): IndexMap<string, V>;
137
+ /**
138
+ * Convert to a plain object (only works with string keys)
139
+ */
140
+ toObject(): Record<string, V>;
141
+ /**
142
+ * Convert to a regular Map
143
+ */
144
+ toMap(): Map<K, V>;
145
+ /**
146
+ * Get a string representation for debugging
147
+ */
148
+ toString(): string;
149
+ }
150
+ //# sourceMappingURL=index-map.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-map.d.ts","sourceRoot":"","sources":["../../../../../../packages/shared/src/data-structures/index-map/index-map.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,186 @@
1
+ /**
2
+ * IndexMap interfaces for ZenGrid
3
+ * Provides O(1) bidirectional lookup: key → value, index → entry, and optionally value → key
4
+ */
5
+ /**
6
+ * Entry in the IndexMap containing both key and value
7
+ */
8
+ export interface IndexMapEntry<K, V> {
9
+ key: K;
10
+ value: V;
11
+ index: number;
12
+ }
13
+ /**
14
+ * IndexMap interface
15
+ *
16
+ * A data structure that combines the benefits of Map and Array:
17
+ * - O(1) key → value lookup (like Map)
18
+ * - O(1) index → entry lookup (like Array)
19
+ * - O(1) key → index lookup
20
+ * - Maintains insertion order
21
+ * - Optional O(1) value → key reverse lookup
22
+ *
23
+ * Use cases:
24
+ * - Column/row mappings where you need both name and index access
25
+ * - Ordered collections with fast lookup by both key and position
26
+ * - Maintaining insertion order while allowing random access
27
+ */
28
+ export interface IIndexMap<K, V> {
29
+ /**
30
+ * Set a key-value pair
31
+ * If key exists, updates the value without changing index
32
+ * If key is new, appends to the end
33
+ * @param key - The key
34
+ * @param value - The value
35
+ * @returns The index of the entry
36
+ * @complexity O(1)
37
+ */
38
+ set(key: K, value: V): number;
39
+ /**
40
+ * Get value by key
41
+ * @param key - The key to look up
42
+ * @returns The value or undefined if not found
43
+ * @complexity O(1)
44
+ */
45
+ get(key: K): V | undefined;
46
+ /**
47
+ * Get entry by index
48
+ * @param index - The index (0-based)
49
+ * @returns The entry or undefined if out of bounds
50
+ * @complexity O(1)
51
+ */
52
+ getByIndex(index: number): IndexMapEntry<K, V> | undefined;
53
+ /**
54
+ * Get key by index
55
+ * @param index - The index (0-based)
56
+ * @returns The key or undefined if out of bounds
57
+ * @complexity O(1)
58
+ */
59
+ getKeyByIndex(index: number): K | undefined;
60
+ /**
61
+ * Get value by index
62
+ * @param index - The index (0-based)
63
+ * @returns The value or undefined if out of bounds
64
+ * @complexity O(1)
65
+ */
66
+ getValueByIndex(index: number): V | undefined;
67
+ /**
68
+ * Get the index of a key
69
+ * @param key - The key to look up
70
+ * @returns The index or -1 if not found
71
+ * @complexity O(1)
72
+ */
73
+ indexOf(key: K): number;
74
+ /**
75
+ * Get the key(s) for a given value (reverse lookup)
76
+ * Only available when enableReverseMapping is true
77
+ * @param value - The value to find
78
+ * @returns Array of keys that map to this value (empty if not found or reverse mapping disabled)
79
+ * @complexity O(1) if reverse mapping enabled, O(n) if disabled
80
+ */
81
+ getKeysByValue(value: V): K[];
82
+ /**
83
+ * Check if a key exists
84
+ * @param key - The key to check
85
+ * @complexity O(1)
86
+ */
87
+ has(key: K): boolean;
88
+ /**
89
+ * Check if a value exists
90
+ * @param value - The value to check
91
+ * @complexity O(1) if reverse mapping enabled, O(n) if disabled
92
+ */
93
+ hasValue(value: V): boolean;
94
+ /**
95
+ * Delete an entry by key
96
+ * Reindexes all subsequent entries
97
+ * @param key - The key to delete
98
+ * @returns true if the entry existed and was deleted
99
+ * @complexity O(n) due to reindexing
100
+ */
101
+ delete(key: K): boolean;
102
+ /**
103
+ * Delete an entry by index
104
+ * Reindexes all subsequent entries
105
+ * @param index - The index to delete
106
+ * @returns true if the index was valid and entry was deleted
107
+ * @complexity O(n) due to reindexing
108
+ */
109
+ deleteByIndex(index: number): boolean;
110
+ /**
111
+ * Clear all entries
112
+ * @complexity O(1)
113
+ */
114
+ clear(): void;
115
+ /**
116
+ * Get all keys in insertion order
117
+ * @returns Array of keys
118
+ * @complexity O(n)
119
+ */
120
+ keys(): K[];
121
+ /**
122
+ * Get all values in insertion order
123
+ * @returns Array of values
124
+ * @complexity O(n)
125
+ */
126
+ values(): V[];
127
+ /**
128
+ * Get all entries in insertion order
129
+ * @returns Array of [key, value] tuples
130
+ * @complexity O(n)
131
+ */
132
+ entries(): [K, V][];
133
+ /**
134
+ * Iterate over entries
135
+ * @param callback - Function to call for each entry
136
+ * @complexity O(n)
137
+ */
138
+ forEach(callback: (value: V, key: K, index: number) => void): void;
139
+ /**
140
+ * Find the first key that satisfies a predicate
141
+ * @param predicate - Test function
142
+ * @returns The key or undefined
143
+ * @complexity O(n)
144
+ */
145
+ find(predicate: (value: V, key: K, index: number) => boolean): K | undefined;
146
+ /**
147
+ * Filter entries by a predicate
148
+ * @param predicate - Test function
149
+ * @returns New IndexMap with entries that pass the test
150
+ * @complexity O(n)
151
+ */
152
+ filter(predicate: (value: V, key: K, index: number) => boolean): IIndexMap<K, V>;
153
+ /**
154
+ * Map values to a new IndexMap
155
+ * @param mapper - Transform function
156
+ * @returns New IndexMap with transformed values
157
+ * @complexity O(n)
158
+ */
159
+ map<U>(mapper: (value: V, key: K, index: number) => U): IIndexMap<K, U>;
160
+ /**
161
+ * Number of entries
162
+ */
163
+ readonly size: number;
164
+ /**
165
+ * Whether reverse value → key mapping is enabled
166
+ */
167
+ readonly hasReverseMapping: boolean;
168
+ }
169
+ /**
170
+ * Options for creating an IndexMap
171
+ */
172
+ export interface IndexMapOptions {
173
+ /**
174
+ * Enable bidirectional value → key lookup
175
+ * Maintains a reverse map for O(1) value → key queries
176
+ * Increases memory usage but enables fast reverse lookups
177
+ * @default false
178
+ */
179
+ enableReverseMapping?: boolean;
180
+ /**
181
+ * Initial capacity hint for optimization
182
+ * @default 16
183
+ */
184
+ initialCapacity?: number;
185
+ }
186
+ //# sourceMappingURL=index-map.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-map.interface.d.ts","sourceRoot":"","sources":["../../../../../../packages/shared/src/data-structures/index-map/index-map.interface.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC,EAAE,CAAC;IACjC,GAAG,EAAE,CAAC,CAAC;IACP,KAAK,EAAE,CAAC,CAAC;IACT,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,SAAS,CAAC,CAAC,EAAE,CAAC;IAC7B;;;;;;;;OAQG;IACH,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC;IAE9B;;;;;OAKG;IACH,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IAE3B;;;;;OAKG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC;IAE3D;;;;;OAKG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC;IAE5C;;;;;OAKG;IACH,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC;IAE9C;;;;;OAKG;IACH,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,MAAM,CAAC;IAExB;;;;;;OAMG;IACH,cAAc,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;IAE9B;;;;OAIG;IACH,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC;IAErB;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC;IAE5B;;;;;;OAMG;IACH,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC;IAExB;;;;;;OAMG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;IAEtC;;;OAGG;IACH,KAAK,IAAI,IAAI,CAAC;IAEd;;;;OAIG;IACH,IAAI,IAAI,CAAC,EAAE,CAAC;IAEZ;;;;OAIG;IACH,MAAM,IAAI,CAAC,EAAE,CAAC;IAEd;;;;OAIG;IACH,OAAO,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IAEpB;;;;OAIG;IACH,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC;IAEnE;;;;;OAKG;IACH,IAAI,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,GAAG,CAAC,GAAG,SAAS,CAAC;IAE7E;;;;;OAKG;IACH,MAAM,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,GAAG,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAEjF;;;;;OAKG;IACH,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAExE;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * IndexMap - Bidirectional lookup data structure
3
+ */
4
+ export { IndexMap } from './index-map';
5
+ export type { IIndexMap, IndexMapEntry, IndexMapOptions, } from './index-map.interface';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/shared/src/data-structures/index-map/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,YAAY,EACV,SAAS,EACT,aAAa,EACb,eAAe,GAChB,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Data Structures for ZenGrid
3
+ */
4
+ export { SparseMatrix } from './sparse-matrix';
5
+ export type { ReadonlySparseMatrix, ISparseMatrix, SparseMatrixOptions, } from './sparse-matrix';
6
+ export { PrefixSumArray } from './prefix-sum-array';
7
+ export type { IPrefixSumArray, PrefixSumArrayOptions, } from './prefix-sum-array';
8
+ export { ColumnStore } from './column-store';
9
+ export type { IColumnStore, ColumnStoreOptions, ColumnDefinition, ColumnType, AggregateOperation, AggregationResult, } from './column-store';
10
+ export { IndexMap } from './index-map';
11
+ export type { IIndexMap, IndexMapEntry, IndexMapOptions, } from './index-map';
12
+ export { IntervalTree } from './interval-tree';
13
+ export type { IIntervalTree, Interval, IntervalData, IntervalTreeOptions, } from './interval-tree';
14
+ export { IntervalUtils } from './interval-tree';
15
+ export { Trie } from './trie';
16
+ export type { ITrie, ITrieNode, TrieOptions, TrieSearchResult, } from './trie';
17
+ export { RTree } from './rtree';
18
+ export type { IRTree, Rectangle, RTreeData, RTreeOptions, RTreeSearchResult, RTreeStats, } from './rtree';
19
+ export { DependencyGraph } from './dependency-graph';
20
+ export type { IDependencyGraph, NodeId, Dependency, DependencyGraphOptions, TopologicalSortResult, GraphStats, } from './dependency-graph';
21
+ export { SuffixArray } from './suffix-array';
22
+ export type { ISuffixArray, SuffixArrayOptions, SuffixSearchResult, SuffixArrayStats, } from './suffix-array';
23
+ export { LRUCache } from './lru-cache';
24
+ export type { ILRUCache, LRUCacheOptions, CacheEntry, CacheStats, } from './lru-cache';
25
+ export { CommandStack } from './command-stack';
26
+ export type { ICommandStack, ICommand, ICommandStackOptions, } from './command-stack';
27
+ export { SegmentTree } from './segment-tree';
28
+ export type { ISegmentTree, SegmentTreeOptions, AggregateFunction, AggregationType, } from './segment-tree';
29
+ export { Aggregations, SegmentTreeUtils } from './segment-tree';
30
+ export { SkipList } from './skip-list';
31
+ export type { ISkipList, SkipListNode, SkipListOptions, RangeResult, SkipListStats, } from './skip-list';
32
+ export { defaultComparator, SkipListUtils } from './skip-list';
33
+ export { DisjointSet } from './disjoint-set';
34
+ export type { IDisjointSet, DisjointSetOptions, DisjointSetStats, } from './disjoint-set';
35
+ export { DisjointSetUtils } from './disjoint-set';
36
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/shared/src/data-structures/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,YAAY,EACV,oBAAoB,EACpB,aAAa,EACb,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,YAAY,EACV,eAAe,EACf,qBAAqB,GACtB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,YAAY,EACV,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,UAAU,EACV,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,YAAY,EACV,SAAS,EACT,aAAa,EACb,eAAe,GAChB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,YAAY,EACV,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,YAAY,EACV,KAAK,EACL,SAAS,EACT,WAAW,EACX,gBAAgB,GACjB,MAAM,QAAQ,CAAC;AAGhB,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,YAAY,EACV,MAAM,EACN,SAAS,EACT,SAAS,EACT,YAAY,EACZ,iBAAiB,EACjB,UAAU,GACX,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,YAAY,EACV,gBAAgB,EAChB,MAAM,EACN,UAAU,EACV,sBAAsB,EACtB,qBAAqB,EACrB,UAAU,GACX,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,YAAY,EACV,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,YAAY,EACV,SAAS,EACT,eAAe,EACf,UAAU,EACV,UAAU,GACX,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,YAAY,EACV,aAAa,EACb,QAAQ,EACR,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,YAAY,EACV,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,GAChB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAGhE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,YAAY,EACV,SAAS,EACT,YAAY,EACZ,eAAe,EACf,WAAW,EACX,aAAa,GACd,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG/D,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,YAAY,EACV,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Interval Tree - Augmented BST for interval queries
3
+ */
4
+ export { IntervalTree } from './interval-tree';
5
+ export type { IIntervalTree, Interval, IntervalData, IntervalTreeOptions, } from './interval-tree.interface';
6
+ export { IntervalUtils } from './interval-tree.interface';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/shared/src/data-structures/interval-tree/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,YAAY,EACV,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,mBAAmB,GACpB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1,141 @@
1
+ /**
2
+ * Interval Tree implementation
3
+ * Augmented BST for efficient interval queries
4
+ */
5
+ import type { IIntervalTree, Interval, IntervalData, IntervalTreeOptions } from './interval-tree.interface';
6
+ /**
7
+ * Interval Tree - Augmented BST for interval queries
8
+ *
9
+ * Implementation:
10
+ * - Each node stores an interval and the max endpoint in its subtree
11
+ * - Balanced using AVL tree rotations for guaranteed O(log n) operations
12
+ * - Intervals are ordered by start time
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * const tree = new IntervalTree<string>();
17
+ * tree.insert({ start: 10, end: 20 }, 'A');
18
+ * tree.insert({ start: 15, end: 25 }, 'B');
19
+ * tree.insert({ start: 30, end: 40 }, 'C');
20
+ *
21
+ * tree.search({ start: 18, end: 22 }); // Returns A and B
22
+ * tree.searchPoint(35); // Returns C
23
+ * ```
24
+ */
25
+ export declare class IntervalTree<T> implements IIntervalTree<T> {
26
+ private root;
27
+ private count;
28
+ private nextId;
29
+ private readonly balanced;
30
+ private readonly allowDuplicates;
31
+ private readonly comparator;
32
+ constructor(options?: IntervalTreeOptions);
33
+ /**
34
+ * Insert an interval
35
+ */
36
+ insert(interval: Interval, data: T): IntervalData<T>;
37
+ private insertNode;
38
+ /**
39
+ * Delete an interval
40
+ */
41
+ delete(intervalData: IntervalData<T>): boolean;
42
+ private deleteNode;
43
+ /**
44
+ * Delete by ID
45
+ */
46
+ deleteById(id: string | number): boolean;
47
+ private findById;
48
+ /**
49
+ * Find all overlapping intervals
50
+ */
51
+ search(interval: Interval): IntervalData<T>[];
52
+ private searchOverlap;
53
+ /**
54
+ * Find all intervals containing a point
55
+ */
56
+ searchPoint(point: number): IntervalData<T>[];
57
+ /**
58
+ * Find all intervals contained within the given interval
59
+ */
60
+ searchContained(interval: Interval): IntervalData<T>[];
61
+ private searchContainedHelper;
62
+ /**
63
+ * Find all intervals containing the given interval
64
+ */
65
+ searchContaining(interval: Interval): IntervalData<T>[];
66
+ private searchContainingHelper;
67
+ /**
68
+ * Find minimum interval (by start time)
69
+ */
70
+ findMin(): IntervalData<T> | undefined;
71
+ private findMinNode;
72
+ /**
73
+ * Find maximum interval (by max endpoint in tree)
74
+ */
75
+ findMax(): IntervalData<T> | undefined;
76
+ private findMaxHelper;
77
+ /**
78
+ * Check if any interval overlaps
79
+ */
80
+ hasOverlap(interval: Interval): boolean;
81
+ private hasOverlapHelper;
82
+ /**
83
+ * Get all intervals in sorted order
84
+ */
85
+ inorder(): IntervalData<T>[];
86
+ private inorderHelper;
87
+ /**
88
+ * Iterate over all intervals
89
+ */
90
+ forEach(callback: (interval: IntervalData<T>) => void): void;
91
+ private forEachHelper;
92
+ /**
93
+ * Filter intervals
94
+ */
95
+ filter(predicate: (interval: IntervalData<T>) => boolean): IIntervalTree<T>;
96
+ /**
97
+ * Map intervals
98
+ */
99
+ map<U>(mapper: (data: T, interval: Interval) => U): IIntervalTree<U>;
100
+ /**
101
+ * Clear the tree
102
+ */
103
+ clear(): void;
104
+ /**
105
+ * Get tree size
106
+ */
107
+ get size(): number;
108
+ /**
109
+ * Check if empty
110
+ */
111
+ get isEmpty(): boolean;
112
+ /**
113
+ * Get tree height
114
+ */
115
+ get height(): number;
116
+ private getHeight;
117
+ /**
118
+ * AVL balancing methods
119
+ */
120
+ private balance;
121
+ private getBalanceFactor;
122
+ private rotateLeft;
123
+ private rotateRight;
124
+ /**
125
+ * Create IntervalTree from array of intervals
126
+ */
127
+ static from<T>(intervals: Array<{
128
+ interval: Interval;
129
+ data: T;
130
+ }>, options?: IntervalTreeOptions): IntervalTree<T>;
131
+ /**
132
+ * Debug: Get tree structure as string
133
+ */
134
+ toString(): string;
135
+ /**
136
+ * Debug: Validate tree structure
137
+ */
138
+ validate(): boolean;
139
+ private validateNode;
140
+ }
141
+ //# sourceMappingURL=interval-tree.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interval-tree.d.ts","sourceRoot":"","sources":["../../../../../../packages/shared/src/data-structures/interval-tree/interval-tree.ts"],"names":[],"mappings":"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"}