driftdetect-core 0.4.1 → 0.4.3

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 (238) hide show
  1. package/LICENSE +21 -0
  2. package/dist/boundaries/boundary-scanner.d.ts +76 -0
  3. package/dist/boundaries/boundary-scanner.d.ts.map +1 -0
  4. package/dist/boundaries/boundary-scanner.js +801 -0
  5. package/dist/boundaries/boundary-scanner.js.map +1 -0
  6. package/dist/boundaries/data-access-learner.d.ts +126 -0
  7. package/dist/boundaries/data-access-learner.d.ts.map +1 -0
  8. package/dist/boundaries/data-access-learner.js +486 -0
  9. package/dist/boundaries/data-access-learner.js.map +1 -0
  10. package/dist/boundaries/index.d.ts +6 -0
  11. package/dist/boundaries/index.d.ts.map +1 -1
  12. package/dist/boundaries/index.js +6 -0
  13. package/dist/boundaries/index.js.map +1 -1
  14. package/dist/boundaries/security-prioritizer.d.ts +118 -0
  15. package/dist/boundaries/security-prioritizer.d.ts.map +1 -0
  16. package/dist/boundaries/security-prioritizer.js +316 -0
  17. package/dist/boundaries/security-prioritizer.js.map +1 -0
  18. package/dist/call-graph/analysis/coverage-analyzer.d.ts +201 -0
  19. package/dist/call-graph/analysis/coverage-analyzer.d.ts.map +1 -0
  20. package/dist/call-graph/analysis/coverage-analyzer.js +553 -0
  21. package/dist/call-graph/analysis/coverage-analyzer.js.map +1 -0
  22. package/dist/call-graph/analysis/dead-code-detector.d.ts +145 -0
  23. package/dist/call-graph/analysis/dead-code-detector.d.ts.map +1 -0
  24. package/dist/call-graph/analysis/dead-code-detector.js +391 -0
  25. package/dist/call-graph/analysis/dead-code-detector.js.map +1 -0
  26. package/dist/call-graph/analysis/graph-builder.d.ts +142 -0
  27. package/dist/call-graph/analysis/graph-builder.d.ts.map +1 -0
  28. package/dist/call-graph/analysis/graph-builder.js +624 -0
  29. package/dist/call-graph/analysis/graph-builder.js.map +1 -0
  30. package/dist/call-graph/analysis/impact-analyzer.d.ts +150 -0
  31. package/dist/call-graph/analysis/impact-analyzer.d.ts.map +1 -0
  32. package/dist/call-graph/analysis/impact-analyzer.js +329 -0
  33. package/dist/call-graph/analysis/impact-analyzer.js.map +1 -0
  34. package/dist/call-graph/analysis/index.d.ts +11 -0
  35. package/dist/call-graph/analysis/index.d.ts.map +1 -0
  36. package/dist/call-graph/analysis/index.js +9 -0
  37. package/dist/call-graph/analysis/index.js.map +1 -0
  38. package/dist/call-graph/analysis/path-finder.d.ts +117 -0
  39. package/dist/call-graph/analysis/path-finder.d.ts.map +1 -0
  40. package/dist/call-graph/analysis/path-finder.js +360 -0
  41. package/dist/call-graph/analysis/path-finder.js.map +1 -0
  42. package/dist/call-graph/analysis/reachability.d.ts +56 -0
  43. package/dist/call-graph/analysis/reachability.d.ts.map +1 -0
  44. package/dist/call-graph/analysis/reachability.js +357 -0
  45. package/dist/call-graph/analysis/reachability.js.map +1 -0
  46. package/dist/call-graph/demo.d.ts +11 -0
  47. package/dist/call-graph/demo.d.ts.map +1 -0
  48. package/dist/call-graph/demo.js +339 -0
  49. package/dist/call-graph/demo.js.map +1 -0
  50. package/dist/call-graph/enrichment/enrichment-engine.d.ts +126 -0
  51. package/dist/call-graph/enrichment/enrichment-engine.d.ts.map +1 -0
  52. package/dist/call-graph/enrichment/enrichment-engine.js +760 -0
  53. package/dist/call-graph/enrichment/enrichment-engine.js.map +1 -0
  54. package/dist/call-graph/enrichment/impact-scorer.d.ts +59 -0
  55. package/dist/call-graph/enrichment/impact-scorer.d.ts.map +1 -0
  56. package/dist/call-graph/enrichment/impact-scorer.js +328 -0
  57. package/dist/call-graph/enrichment/impact-scorer.js.map +1 -0
  58. package/dist/call-graph/enrichment/index.d.ts +12 -0
  59. package/dist/call-graph/enrichment/index.d.ts.map +1 -0
  60. package/dist/call-graph/enrichment/index.js +15 -0
  61. package/dist/call-graph/enrichment/index.js.map +1 -0
  62. package/dist/call-graph/enrichment/remediation-generator.d.ts +41 -0
  63. package/dist/call-graph/enrichment/remediation-generator.d.ts.map +1 -0
  64. package/dist/call-graph/enrichment/remediation-generator.js +609 -0
  65. package/dist/call-graph/enrichment/remediation-generator.js.map +1 -0
  66. package/dist/call-graph/enrichment/sensitivity-classifier.d.ts +71 -0
  67. package/dist/call-graph/enrichment/sensitivity-classifier.d.ts.map +1 -0
  68. package/dist/call-graph/enrichment/sensitivity-classifier.js +454 -0
  69. package/dist/call-graph/enrichment/sensitivity-classifier.js.map +1 -0
  70. package/dist/call-graph/enrichment/types.d.ts +402 -0
  71. package/dist/call-graph/enrichment/types.d.ts.map +1 -0
  72. package/dist/call-graph/enrichment/types.js +9 -0
  73. package/dist/call-graph/enrichment/types.js.map +1 -0
  74. package/dist/call-graph/extractors/base-extractor.d.ts +112 -0
  75. package/dist/call-graph/extractors/base-extractor.d.ts.map +1 -0
  76. package/dist/call-graph/extractors/base-extractor.js +140 -0
  77. package/dist/call-graph/extractors/base-extractor.js.map +1 -0
  78. package/dist/call-graph/extractors/csharp-data-access-extractor.d.ts +76 -0
  79. package/dist/call-graph/extractors/csharp-data-access-extractor.d.ts.map +1 -0
  80. package/dist/call-graph/extractors/csharp-data-access-extractor.js +387 -0
  81. package/dist/call-graph/extractors/csharp-data-access-extractor.js.map +1 -0
  82. package/dist/call-graph/extractors/csharp-extractor.d.ts +87 -0
  83. package/dist/call-graph/extractors/csharp-extractor.d.ts.map +1 -0
  84. package/dist/call-graph/extractors/csharp-extractor.js +470 -0
  85. package/dist/call-graph/extractors/csharp-extractor.js.map +1 -0
  86. package/dist/call-graph/extractors/data-access-extractor.d.ts +76 -0
  87. package/dist/call-graph/extractors/data-access-extractor.d.ts.map +1 -0
  88. package/dist/call-graph/extractors/data-access-extractor.js +234 -0
  89. package/dist/call-graph/extractors/data-access-extractor.js.map +1 -0
  90. package/dist/call-graph/extractors/index.d.ts +26 -0
  91. package/dist/call-graph/extractors/index.d.ts.map +1 -0
  92. package/dist/call-graph/extractors/index.js +36 -0
  93. package/dist/call-graph/extractors/index.js.map +1 -0
  94. package/dist/call-graph/extractors/java-data-access-extractor.d.ts +101 -0
  95. package/dist/call-graph/extractors/java-data-access-extractor.d.ts.map +1 -0
  96. package/dist/call-graph/extractors/java-data-access-extractor.js +611 -0
  97. package/dist/call-graph/extractors/java-data-access-extractor.js.map +1 -0
  98. package/dist/call-graph/extractors/java-extractor.d.ts +87 -0
  99. package/dist/call-graph/extractors/java-extractor.d.ts.map +1 -0
  100. package/dist/call-graph/extractors/java-extractor.js +510 -0
  101. package/dist/call-graph/extractors/java-extractor.js.map +1 -0
  102. package/dist/call-graph/extractors/php-data-access-extractor.d.ts +93 -0
  103. package/dist/call-graph/extractors/php-data-access-extractor.d.ts.map +1 -0
  104. package/dist/call-graph/extractors/php-data-access-extractor.js +589 -0
  105. package/dist/call-graph/extractors/php-data-access-extractor.js.map +1 -0
  106. package/dist/call-graph/extractors/php-extractor.d.ts +104 -0
  107. package/dist/call-graph/extractors/php-extractor.d.ts.map +1 -0
  108. package/dist/call-graph/extractors/php-extractor.js +619 -0
  109. package/dist/call-graph/extractors/php-extractor.js.map +1 -0
  110. package/dist/call-graph/extractors/python-data-access-extractor.d.ts +90 -0
  111. package/dist/call-graph/extractors/python-data-access-extractor.d.ts.map +1 -0
  112. package/dist/call-graph/extractors/python-data-access-extractor.js +537 -0
  113. package/dist/call-graph/extractors/python-data-access-extractor.js.map +1 -0
  114. package/dist/call-graph/extractors/python-extractor.d.ts +98 -0
  115. package/dist/call-graph/extractors/python-extractor.d.ts.map +1 -0
  116. package/dist/call-graph/extractors/python-extractor.js +681 -0
  117. package/dist/call-graph/extractors/python-extractor.js.map +1 -0
  118. package/dist/call-graph/extractors/semantic-data-access-scanner.d.ts +91 -0
  119. package/dist/call-graph/extractors/semantic-data-access-scanner.d.ts.map +1 -0
  120. package/dist/call-graph/extractors/semantic-data-access-scanner.js +498 -0
  121. package/dist/call-graph/extractors/semantic-data-access-scanner.js.map +1 -0
  122. package/dist/call-graph/extractors/typescript-data-access-extractor.d.ts +122 -0
  123. package/dist/call-graph/extractors/typescript-data-access-extractor.d.ts.map +1 -0
  124. package/dist/call-graph/extractors/typescript-data-access-extractor.js +788 -0
  125. package/dist/call-graph/extractors/typescript-data-access-extractor.js.map +1 -0
  126. package/dist/call-graph/extractors/typescript-extractor.d.ts +145 -0
  127. package/dist/call-graph/extractors/typescript-extractor.d.ts.map +1 -0
  128. package/dist/call-graph/extractors/typescript-extractor.js +904 -0
  129. package/dist/call-graph/extractors/typescript-extractor.js.map +1 -0
  130. package/dist/call-graph/index.d.ts +127 -0
  131. package/dist/call-graph/index.d.ts.map +1 -0
  132. package/dist/call-graph/index.js +247 -0
  133. package/dist/call-graph/index.js.map +1 -0
  134. package/dist/call-graph/store/call-graph-store.d.ts +70 -0
  135. package/dist/call-graph/store/call-graph-store.d.ts.map +1 -0
  136. package/dist/call-graph/store/call-graph-store.js +210 -0
  137. package/dist/call-graph/store/call-graph-store.js.map +1 -0
  138. package/dist/call-graph/store/index.d.ts +7 -0
  139. package/dist/call-graph/store/index.d.ts.map +1 -0
  140. package/dist/call-graph/store/index.js +7 -0
  141. package/dist/call-graph/store/index.js.map +1 -0
  142. package/dist/call-graph/types.d.ts +376 -0
  143. package/dist/call-graph/types.d.ts.map +1 -0
  144. package/dist/call-graph/types.js +8 -0
  145. package/dist/call-graph/types.js.map +1 -0
  146. package/dist/index.d.ts +8 -0
  147. package/dist/index.d.ts.map +1 -1
  148. package/dist/index.js +12 -0
  149. package/dist/index.js.map +1 -1
  150. package/dist/lake/callgraph-shard-store.d.ts +168 -0
  151. package/dist/lake/callgraph-shard-store.d.ts.map +1 -0
  152. package/dist/lake/callgraph-shard-store.js +466 -0
  153. package/dist/lake/callgraph-shard-store.js.map +1 -0
  154. package/dist/lake/examples-store.d.ts +127 -0
  155. package/dist/lake/examples-store.d.ts.map +1 -0
  156. package/dist/lake/examples-store.js +389 -0
  157. package/dist/lake/examples-store.js.map +1 -0
  158. package/dist/lake/index-store.d.ts +82 -0
  159. package/dist/lake/index-store.d.ts.map +1 -0
  160. package/dist/lake/index-store.js +359 -0
  161. package/dist/lake/index-store.js.map +1 -0
  162. package/dist/lake/index.d.ts +93 -0
  163. package/dist/lake/index.d.ts.map +1 -0
  164. package/dist/lake/index.js +138 -0
  165. package/dist/lake/index.js.map +1 -0
  166. package/dist/lake/lake.bak/index-store.d.ts +82 -0
  167. package/dist/lake/lake.bak/index-store.d.ts.map +1 -0
  168. package/dist/lake/lake.bak/index-store.js +357 -0
  169. package/dist/lake/lake.bak/index-store.js.map +1 -0
  170. package/dist/lake/lake.bak/index.d.ts +81 -0
  171. package/dist/lake/lake.bak/index.d.ts.map +1 -0
  172. package/dist/lake/lake.bak/index.js +114 -0
  173. package/dist/lake/lake.bak/index.js.map +1 -0
  174. package/dist/lake/lake.bak/manifest-store.d.ts +51 -0
  175. package/dist/lake/lake.bak/manifest-store.d.ts.map +1 -0
  176. package/dist/lake/lake.bak/manifest-store.js +347 -0
  177. package/dist/lake/lake.bak/manifest-store.js.map +1 -0
  178. package/dist/lake/lake.bak/query-engine.d.ts +112 -0
  179. package/dist/lake/lake.bak/query-engine.d.ts.map +1 -0
  180. package/dist/lake/lake.bak/query-engine.js +370 -0
  181. package/dist/lake/lake.bak/query-engine.js.map +1 -0
  182. package/dist/lake/lake.bak/types.d.ts +428 -0
  183. package/dist/lake/lake.bak/types.d.ts.map +1 -0
  184. package/dist/lake/lake.bak/types.js +46 -0
  185. package/dist/lake/lake.bak/types.js.map +1 -0
  186. package/dist/lake/lake.bak/view-materializer.d.ts +70 -0
  187. package/dist/lake/lake.bak/view-materializer.d.ts.map +1 -0
  188. package/dist/lake/lake.bak/view-materializer.js +314 -0
  189. package/dist/lake/lake.bak/view-materializer.js.map +1 -0
  190. package/dist/lake/lake.bak/view-store.d.ts +57 -0
  191. package/dist/lake/lake.bak/view-store.d.ts.map +1 -0
  192. package/dist/lake/lake.bak/view-store.js +348 -0
  193. package/dist/lake/lake.bak/view-store.js.map +1 -0
  194. package/dist/lake/manifest-store.d.ts +51 -0
  195. package/dist/lake/manifest-store.d.ts.map +1 -0
  196. package/dist/lake/manifest-store.js +348 -0
  197. package/dist/lake/manifest-store.js.map +1 -0
  198. package/dist/lake/pattern-shard-store.d.ts +87 -0
  199. package/dist/lake/pattern-shard-store.d.ts.map +1 -0
  200. package/dist/lake/pattern-shard-store.js +347 -0
  201. package/dist/lake/pattern-shard-store.js.map +1 -0
  202. package/dist/lake/query-engine.d.ts +124 -0
  203. package/dist/lake/query-engine.d.ts.map +1 -0
  204. package/dist/lake/query-engine.js +453 -0
  205. package/dist/lake/query-engine.js.map +1 -0
  206. package/dist/lake/security-shard-store.d.ts +156 -0
  207. package/dist/lake/security-shard-store.d.ts.map +1 -0
  208. package/dist/lake/security-shard-store.js +498 -0
  209. package/dist/lake/security-shard-store.js.map +1 -0
  210. package/dist/lake/types.d.ts +428 -0
  211. package/dist/lake/types.d.ts.map +1 -0
  212. package/dist/lake/types.js +46 -0
  213. package/dist/lake/types.js.map +1 -0
  214. package/dist/lake/view-materializer.d.ts +70 -0
  215. package/dist/lake/view-materializer.d.ts.map +1 -0
  216. package/dist/lake/view-materializer.js +314 -0
  217. package/dist/lake/view-materializer.js.map +1 -0
  218. package/dist/lake/view-store.d.ts +57 -0
  219. package/dist/lake/view-store.d.ts.map +1 -0
  220. package/dist/lake/view-store.js +348 -0
  221. package/dist/lake/view-store.js.map +1 -0
  222. package/dist/parsers/tree-sitter/index.d.ts +1 -0
  223. package/dist/parsers/tree-sitter/index.d.ts.map +1 -1
  224. package/dist/parsers/tree-sitter/index.js +4 -0
  225. package/dist/parsers/tree-sitter/index.js.map +1 -1
  226. package/dist/parsers/tree-sitter/typescript-loader.d.ts +58 -0
  227. package/dist/parsers/tree-sitter/typescript-loader.d.ts.map +1 -0
  228. package/dist/parsers/tree-sitter/typescript-loader.js +250 -0
  229. package/dist/parsers/tree-sitter/typescript-loader.js.map +1 -0
  230. package/dist/store/project-config.d.ts +154 -0
  231. package/dist/store/project-config.d.ts.map +1 -0
  232. package/dist/store/project-config.js +235 -0
  233. package/dist/store/project-config.js.map +1 -0
  234. package/dist/store/project-registry.d.ts +241 -0
  235. package/dist/store/project-registry.d.ts.map +1 -0
  236. package/dist/store/project-registry.js +557 -0
  237. package/dist/store/project-registry.js.map +1 -0
  238. package/package.json +16 -14
@@ -0,0 +1,82 @@
1
+ /**
2
+ * Index Store
3
+ *
4
+ * Manages pre-built indexes for fast lookups.
5
+ * Indexes map common query dimensions to IDs for O(1) access.
6
+ *
7
+ * Key indexes:
8
+ * - by-file: file path → pattern/function/access IDs
9
+ * - by-category: category → pattern IDs
10
+ * - by-table: table name → access point/function IDs
11
+ * - by-entry-point: entry point → reachable function IDs
12
+ */
13
+ import { EventEmitter } from 'node:events';
14
+ import type { FileIndex, CategoryIndex, TableIndex, EntryPointIndex, DataLakeConfig, IndexType } from './types.js';
15
+ import type { Pattern, PatternCategory } from '../store/types.js';
16
+ export declare class IndexStore extends EventEmitter {
17
+ private readonly config;
18
+ private readonly indexesDir;
19
+ private fileIndexCache;
20
+ private categoryIndexCache;
21
+ private tableIndexCache;
22
+ private entryPointIndexCache;
23
+ constructor(config?: Partial<DataLakeConfig>);
24
+ initialize(): Promise<void>;
25
+ getFileIndex(): Promise<FileIndex | null>;
26
+ saveFileIndex(index: FileIndex): Promise<void>;
27
+ /**
28
+ * Build file index from patterns
29
+ */
30
+ buildFileIndex(patterns: Pattern[]): FileIndex;
31
+ /**
32
+ * Get pattern IDs for a specific file
33
+ */
34
+ getPatternIdsForFile(file: string): Promise<string[]>;
35
+ /**
36
+ * Update file index for specific files (incremental)
37
+ */
38
+ updateFileIndex(file: string, patternIds: string[], accessPointIds?: string[], functionIds?: string[]): Promise<void>;
39
+ getCategoryIndex(): Promise<CategoryIndex | null>;
40
+ saveCategoryIndex(index: CategoryIndex): Promise<void>;
41
+ /**
42
+ * Build category index from patterns
43
+ */
44
+ buildCategoryIndex(patterns: Pattern[]): CategoryIndex;
45
+ /**
46
+ * Get pattern IDs for a specific category
47
+ */
48
+ getPatternIdsForCategory(category: PatternCategory): Promise<string[]>;
49
+ getTableIndex(): Promise<TableIndex | null>;
50
+ saveTableIndex(index: TableIndex): Promise<void>;
51
+ /**
52
+ * Get access point IDs for a specific table
53
+ */
54
+ getAccessPointIdsForTable(table: string): Promise<string[]>;
55
+ /**
56
+ * Get function IDs that access a specific table
57
+ */
58
+ getAccessorIdsForTable(table: string): Promise<string[]>;
59
+ getEntryPointIndex(): Promise<EntryPointIndex | null>;
60
+ saveEntryPointIndex(index: EntryPointIndex): Promise<void>;
61
+ /**
62
+ * Get reachable function IDs from an entry point
63
+ */
64
+ getReachableFunctions(entryPointId: string): Promise<string[]>;
65
+ /**
66
+ * Get tables reachable from an entry point
67
+ */
68
+ getReachableTables(entryPointId: string): Promise<string[]>;
69
+ /**
70
+ * Get sensitive data reachable from an entry point
71
+ */
72
+ getReachableSensitiveData(entryPointId: string): Promise<string[]>;
73
+ invalidateCache(index?: IndexType): void;
74
+ hasIndex(index: IndexType): Promise<boolean>;
75
+ deleteIndex(index: IndexType): Promise<void>;
76
+ /**
77
+ * Rebuild all indexes from patterns
78
+ */
79
+ rebuildAllIndexes(patterns: Pattern[]): Promise<void>;
80
+ }
81
+ export declare function createIndexStore(config?: Partial<DataLakeConfig>): IndexStore;
82
+ //# sourceMappingURL=index-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-store.d.ts","sourceRoot":"","sources":["../../../src/lake/lake.bak/index-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,357 @@
1
+ /**
2
+ * Index Store
3
+ *
4
+ * Manages pre-built indexes for fast lookups.
5
+ * Indexes map common query dimensions to IDs for O(1) access.
6
+ *
7
+ * Key indexes:
8
+ * - by-file: file path → pattern/function/access IDs
9
+ * - by-category: category → pattern IDs
10
+ * - by-table: table name → access point/function IDs
11
+ * - by-entry-point: entry point → reachable function IDs
12
+ */
13
+ import * as fs from 'node:fs/promises';
14
+ import * as path from 'node:path';
15
+ import { EventEmitter } from 'node:events';
16
+ import { LAKE_DIRS, INDEX_FILES, DEFAULT_DATA_LAKE_CONFIG, } from './types.js';
17
+ // ============================================================================
18
+ // Helper Functions
19
+ // ============================================================================
20
+ async function fileExists(filePath) {
21
+ try {
22
+ await fs.access(filePath);
23
+ return true;
24
+ }
25
+ catch {
26
+ return false;
27
+ }
28
+ }
29
+ async function ensureDir(dirPath) {
30
+ await fs.mkdir(dirPath, { recursive: true });
31
+ }
32
+ // ============================================================================
33
+ // Index Store Class
34
+ // ============================================================================
35
+ export class IndexStore extends EventEmitter {
36
+ config;
37
+ indexesDir;
38
+ // In-memory cache
39
+ fileIndexCache = null;
40
+ categoryIndexCache = null;
41
+ tableIndexCache = null;
42
+ entryPointIndexCache = null;
43
+ constructor(config = {}) {
44
+ super();
45
+ this.config = { ...DEFAULT_DATA_LAKE_CONFIG, ...config };
46
+ this.indexesDir = path.join(this.config.rootDir, LAKE_DIRS.root, LAKE_DIRS.indexes);
47
+ }
48
+ // ==========================================================================
49
+ // Initialization
50
+ // ==========================================================================
51
+ async initialize() {
52
+ await ensureDir(this.indexesDir);
53
+ }
54
+ // ==========================================================================
55
+ // File Index
56
+ // ==========================================================================
57
+ async getFileIndex() {
58
+ if (this.fileIndexCache) {
59
+ return this.fileIndexCache;
60
+ }
61
+ const filePath = path.join(this.indexesDir, INDEX_FILES.byFile);
62
+ if (!(await fileExists(filePath))) {
63
+ return null;
64
+ }
65
+ try {
66
+ const content = await fs.readFile(filePath, 'utf-8');
67
+ this.fileIndexCache = JSON.parse(content);
68
+ return this.fileIndexCache;
69
+ }
70
+ catch {
71
+ return null;
72
+ }
73
+ }
74
+ async saveFileIndex(index) {
75
+ await ensureDir(this.indexesDir);
76
+ const filePath = path.join(this.indexesDir, INDEX_FILES.byFile);
77
+ await fs.writeFile(filePath, JSON.stringify(index, null, 2));
78
+ this.fileIndexCache = index;
79
+ this.emit('index:saved', 'byFile', index);
80
+ }
81
+ /**
82
+ * Build file index from patterns
83
+ */
84
+ buildFileIndex(patterns) {
85
+ const patternsByFile = {};
86
+ for (const pattern of patterns) {
87
+ for (const location of pattern.locations) {
88
+ if (!patternsByFile[location.file]) {
89
+ patternsByFile[location.file] = [];
90
+ }
91
+ if (!patternsByFile[location.file].includes(pattern.id)) {
92
+ patternsByFile[location.file].push(pattern.id);
93
+ }
94
+ }
95
+ for (const outlier of pattern.outliers) {
96
+ if (!patternsByFile[outlier.file]) {
97
+ patternsByFile[outlier.file] = [];
98
+ }
99
+ if (!patternsByFile[outlier.file].includes(pattern.id)) {
100
+ patternsByFile[outlier.file].push(pattern.id);
101
+ }
102
+ }
103
+ }
104
+ return {
105
+ generatedAt: new Date().toISOString(),
106
+ patterns: patternsByFile,
107
+ accessPoints: {}, // Populated by boundary scanner
108
+ functions: {}, // Populated by call graph builder
109
+ };
110
+ }
111
+ /**
112
+ * Get pattern IDs for a specific file
113
+ */
114
+ async getPatternIdsForFile(file) {
115
+ const index = await this.getFileIndex();
116
+ return index?.patterns[file] ?? [];
117
+ }
118
+ /**
119
+ * Update file index for specific files (incremental)
120
+ */
121
+ async updateFileIndex(file, patternIds, accessPointIds, functionIds) {
122
+ let index = await this.getFileIndex();
123
+ if (!index) {
124
+ index = {
125
+ generatedAt: new Date().toISOString(),
126
+ patterns: {},
127
+ accessPoints: {},
128
+ functions: {},
129
+ };
130
+ }
131
+ index.patterns[file] = patternIds;
132
+ if (accessPointIds) {
133
+ index.accessPoints[file] = accessPointIds;
134
+ }
135
+ if (functionIds) {
136
+ index.functions[file] = functionIds;
137
+ }
138
+ index.generatedAt = new Date().toISOString();
139
+ await this.saveFileIndex(index);
140
+ }
141
+ // ==========================================================================
142
+ // Category Index
143
+ // ==========================================================================
144
+ async getCategoryIndex() {
145
+ if (this.categoryIndexCache) {
146
+ return this.categoryIndexCache;
147
+ }
148
+ const filePath = path.join(this.indexesDir, INDEX_FILES.byCategory);
149
+ if (!(await fileExists(filePath))) {
150
+ return null;
151
+ }
152
+ try {
153
+ const content = await fs.readFile(filePath, 'utf-8');
154
+ this.categoryIndexCache = JSON.parse(content);
155
+ return this.categoryIndexCache;
156
+ }
157
+ catch {
158
+ return null;
159
+ }
160
+ }
161
+ async saveCategoryIndex(index) {
162
+ await ensureDir(this.indexesDir);
163
+ const filePath = path.join(this.indexesDir, INDEX_FILES.byCategory);
164
+ await fs.writeFile(filePath, JSON.stringify(index, null, 2));
165
+ this.categoryIndexCache = index;
166
+ this.emit('index:saved', 'byCategory', index);
167
+ }
168
+ /**
169
+ * Build category index from patterns
170
+ */
171
+ buildCategoryIndex(patterns) {
172
+ const patternsByCategory = {};
173
+ const counts = {};
174
+ for (const pattern of patterns) {
175
+ if (!patternsByCategory[pattern.category]) {
176
+ patternsByCategory[pattern.category] = [];
177
+ counts[pattern.category] = 0;
178
+ }
179
+ patternsByCategory[pattern.category].push(pattern.id);
180
+ counts[pattern.category]++;
181
+ }
182
+ return {
183
+ generatedAt: new Date().toISOString(),
184
+ patterns: patternsByCategory,
185
+ counts,
186
+ };
187
+ }
188
+ /**
189
+ * Get pattern IDs for a specific category
190
+ */
191
+ async getPatternIdsForCategory(category) {
192
+ const index = await this.getCategoryIndex();
193
+ return index?.patterns[category] ?? [];
194
+ }
195
+ // ==========================================================================
196
+ // Table Index
197
+ // ==========================================================================
198
+ async getTableIndex() {
199
+ if (this.tableIndexCache) {
200
+ return this.tableIndexCache;
201
+ }
202
+ const filePath = path.join(this.indexesDir, INDEX_FILES.byTable);
203
+ if (!(await fileExists(filePath))) {
204
+ return null;
205
+ }
206
+ try {
207
+ const content = await fs.readFile(filePath, 'utf-8');
208
+ this.tableIndexCache = JSON.parse(content);
209
+ return this.tableIndexCache;
210
+ }
211
+ catch {
212
+ return null;
213
+ }
214
+ }
215
+ async saveTableIndex(index) {
216
+ await ensureDir(this.indexesDir);
217
+ const filePath = path.join(this.indexesDir, INDEX_FILES.byTable);
218
+ await fs.writeFile(filePath, JSON.stringify(index, null, 2));
219
+ this.tableIndexCache = index;
220
+ this.emit('index:saved', 'byTable', index);
221
+ }
222
+ /**
223
+ * Get access point IDs for a specific table
224
+ */
225
+ async getAccessPointIdsForTable(table) {
226
+ const index = await this.getTableIndex();
227
+ return index?.accessPoints[table] ?? [];
228
+ }
229
+ /**
230
+ * Get function IDs that access a specific table
231
+ */
232
+ async getAccessorIdsForTable(table) {
233
+ const index = await this.getTableIndex();
234
+ return index?.accessors[table] ?? [];
235
+ }
236
+ // ==========================================================================
237
+ // Entry Point Index
238
+ // ==========================================================================
239
+ async getEntryPointIndex() {
240
+ if (this.entryPointIndexCache) {
241
+ return this.entryPointIndexCache;
242
+ }
243
+ const filePath = path.join(this.indexesDir, INDEX_FILES.byEntryPoint);
244
+ if (!(await fileExists(filePath))) {
245
+ return null;
246
+ }
247
+ try {
248
+ const content = await fs.readFile(filePath, 'utf-8');
249
+ this.entryPointIndexCache = JSON.parse(content);
250
+ return this.entryPointIndexCache;
251
+ }
252
+ catch {
253
+ return null;
254
+ }
255
+ }
256
+ async saveEntryPointIndex(index) {
257
+ await ensureDir(this.indexesDir);
258
+ const filePath = path.join(this.indexesDir, INDEX_FILES.byEntryPoint);
259
+ await fs.writeFile(filePath, JSON.stringify(index, null, 2));
260
+ this.entryPointIndexCache = index;
261
+ this.emit('index:saved', 'byEntryPoint', index);
262
+ }
263
+ /**
264
+ * Get reachable function IDs from an entry point
265
+ */
266
+ async getReachableFunctions(entryPointId) {
267
+ const index = await this.getEntryPointIndex();
268
+ return index?.reachable[entryPointId] ?? [];
269
+ }
270
+ /**
271
+ * Get tables reachable from an entry point
272
+ */
273
+ async getReachableTables(entryPointId) {
274
+ const index = await this.getEntryPointIndex();
275
+ return index?.tables[entryPointId] ?? [];
276
+ }
277
+ /**
278
+ * Get sensitive data reachable from an entry point
279
+ */
280
+ async getReachableSensitiveData(entryPointId) {
281
+ const index = await this.getEntryPointIndex();
282
+ return index?.sensitiveData[entryPointId] ?? [];
283
+ }
284
+ // ==========================================================================
285
+ // Cache Management
286
+ // ==========================================================================
287
+ invalidateCache(index) {
288
+ if (!index) {
289
+ this.fileIndexCache = null;
290
+ this.categoryIndexCache = null;
291
+ this.tableIndexCache = null;
292
+ this.entryPointIndexCache = null;
293
+ return;
294
+ }
295
+ switch (index) {
296
+ case 'byFile':
297
+ this.fileIndexCache = null;
298
+ break;
299
+ case 'byCategory':
300
+ this.categoryIndexCache = null;
301
+ break;
302
+ case 'byTable':
303
+ this.tableIndexCache = null;
304
+ break;
305
+ case 'byEntryPoint':
306
+ this.entryPointIndexCache = null;
307
+ break;
308
+ }
309
+ }
310
+ // ==========================================================================
311
+ // Bulk Operations
312
+ // ==========================================================================
313
+ async hasIndex(index) {
314
+ const files = {
315
+ byFile: INDEX_FILES.byFile,
316
+ byCategory: INDEX_FILES.byCategory,
317
+ byTable: INDEX_FILES.byTable,
318
+ byEntryPoint: INDEX_FILES.byEntryPoint,
319
+ };
320
+ const filePath = path.join(this.indexesDir, files[index]);
321
+ return fileExists(filePath);
322
+ }
323
+ async deleteIndex(index) {
324
+ const files = {
325
+ byFile: INDEX_FILES.byFile,
326
+ byCategory: INDEX_FILES.byCategory,
327
+ byTable: INDEX_FILES.byTable,
328
+ byEntryPoint: INDEX_FILES.byEntryPoint,
329
+ };
330
+ const filePath = path.join(this.indexesDir, files[index]);
331
+ try {
332
+ await fs.unlink(filePath);
333
+ }
334
+ catch {
335
+ // Ignore if doesn't exist
336
+ }
337
+ this.invalidateCache(index);
338
+ }
339
+ /**
340
+ * Rebuild all indexes from patterns
341
+ */
342
+ async rebuildAllIndexes(patterns) {
343
+ const fileIndex = this.buildFileIndex(patterns);
344
+ const categoryIndex = this.buildCategoryIndex(patterns);
345
+ await Promise.all([
346
+ this.saveFileIndex(fileIndex),
347
+ this.saveCategoryIndex(categoryIndex),
348
+ ]);
349
+ }
350
+ }
351
+ // ============================================================================
352
+ // Factory Function
353
+ // ============================================================================
354
+ export function createIndexStore(config = {}) {
355
+ return new IndexStore(config);
356
+ }
357
+ //# sourceMappingURL=index-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-store.js","sourceRoot":"","sources":["../../../src/lake/lake.bak/index-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Data Lake Module
3
+ *
4
+ * Enterprise-grade data storage with materialized views, indexes, and query optimization.
5
+ *
6
+ * Architecture:
7
+ * - ManifestStore: Quick-load index of everything (instant drift_status)
8
+ * - ViewStore: Pre-computed views for common queries
9
+ * - IndexStore: Fast lookups by file, category, table, entry point
10
+ * - QueryEngine: Unified query API with automatic view/index selection
11
+ * - ViewMaterializer: Rebuilds views after scans
12
+ *
13
+ * Usage:
14
+ * ```typescript
15
+ * import { createDataLake } from './lake';
16
+ *
17
+ * const lake = createDataLake({ rootDir: '/path/to/project' });
18
+ * await lake.initialize();
19
+ *
20
+ * // Instant status (reads pre-computed view)
21
+ * const status = await lake.query.getStatus();
22
+ *
23
+ * // Fast pattern listing (uses index + view)
24
+ * const patterns = await lake.query.getPatterns({ categories: ['api'] });
25
+ *
26
+ * // After scan, materialize views
27
+ * await lake.materializer.materialize(patterns, {}, { lastScan: scanInfo });
28
+ * ```
29
+ */
30
+ export type { DriftManifest, ManifestStats, PatternStats, SecurityStats, CallGraphStats, ContractStats, DNAStats, LastScanInfo, ViewFreshness, ViewMeta, StatusView, PatternIndexView, PatternSummary, SecuritySummaryView, TrendsView, HealthFactor, TopIssue, SensitiveTableSummary, ViolationSummary, TrendItem, CategoryTrend, FileIndex, CategoryIndex, TableIndex, EntryPointIndex, Shard, PatternShard, PatternShardEntry, PatternLocation, PatternMetadata, AccessMapShard, SensitiveFieldInfo, AccessPointEntry, CallGraphShard, FunctionEntry, DataAccessRef, PatternExamples, CodeExample, IncrementalUpdate, ViewType, IndexType, DataLakeConfig, } from './types.js';
31
+ export { LAKE_VERSION, LAKE_DIRS, VIEW_FILES, INDEX_FILES, DEFAULT_DATA_LAKE_CONFIG, } from './types.js';
32
+ export { ManifestStore, createManifestStore } from './manifest-store.js';
33
+ export { ViewStore, createViewStore } from './view-store.js';
34
+ export { IndexStore, createIndexStore } from './index-store.js';
35
+ export { QueryEngine, createQueryEngine, type PaginationOptions, type PaginatedResult, type PatternQueryOptions, type QueryStats, } from './query-engine.js';
36
+ export { ViewMaterializer, createViewMaterializer, type MaterializeOptions, type MaterializeResult, } from './view-materializer.js';
37
+ import type { DataLakeConfig } from './types.js';
38
+ import { ManifestStore } from './manifest-store.js';
39
+ import { ViewStore } from './view-store.js';
40
+ import { IndexStore } from './index-store.js';
41
+ import { QueryEngine } from './query-engine.js';
42
+ import { ViewMaterializer } from './view-materializer.js';
43
+ import type { Pattern } from '../store/types.js';
44
+ /**
45
+ * Data Lake - Unified interface for all data lake operations
46
+ */
47
+ export declare class DataLake {
48
+ readonly config: DataLakeConfig;
49
+ readonly manifest: ManifestStore;
50
+ readonly views: ViewStore;
51
+ readonly indexes: IndexStore;
52
+ readonly query: QueryEngine;
53
+ readonly materializer: ViewMaterializer;
54
+ private initialized;
55
+ constructor(config?: Partial<DataLakeConfig>);
56
+ /**
57
+ * Initialize the data lake
58
+ */
59
+ initialize(): Promise<void>;
60
+ /**
61
+ * Set the raw pattern loader for fallback queries
62
+ */
63
+ setPatternLoader(loader: () => Promise<Pattern[]>): void;
64
+ /**
65
+ * Check if the data lake has been initialized with data
66
+ */
67
+ hasData(): boolean;
68
+ /**
69
+ * Get quick stats (instant, from manifest)
70
+ */
71
+ getQuickStats(): import("./types.js").ManifestStats;
72
+ /**
73
+ * Invalidate all caches and views
74
+ */
75
+ invalidateAll(): void;
76
+ }
77
+ /**
78
+ * Create a new DataLake instance
79
+ */
80
+ export declare function createDataLake(config?: Partial<DataLakeConfig>): DataLake;
81
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lake/lake.bak/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAGH,YAAY,EAEV,aAAa,EACb,aAAa,EACb,YAAY,EACZ,aAAa,EACb,cAAc,EACd,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,QAAQ,EAGR,UAAU,EACV,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,UAAU,EACV,YAAY,EACZ,QAAQ,EACR,qBAAqB,EACrB,gBAAgB,EAChB,SAAS,EACT,aAAa,EAGb,SAAS,EACT,aAAa,EACb,UAAU,EACV,eAAe,EAGf,KAAK,EACL,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,aAAa,EAGb,eAAe,EACf,WAAW,EAGX,iBAAiB,EACjB,QAAQ,EACR,SAAS,EAGT,cAAc,GACf,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,YAAY,EACZ,SAAS,EACT,UAAU,EACV,WAAW,EACX,wBAAwB,GACzB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAGhE,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,UAAU,GAChB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,GACvB,MAAM,wBAAwB,CAAC;AAMhC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAEjD;;GAEG;AACH,qBAAa,QAAQ;IACnB,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,gBAAgB,CAAC;IAExC,OAAO,CAAC,WAAW,CAAS;gBAEhB,MAAM,GAAE,OAAO,CAAC,cAAc,CAAM;IAyBhD;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAYjC;;OAEG;IACH,gBAAgB,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI;IAIxD;;OAEG;IACH,OAAO,IAAI,OAAO;IAKlB;;OAEG;IACH,aAAa;IAIb;;OAEG;IACH,aAAa,IAAI,IAAI;CAKtB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,GAAE,OAAO,CAAC,cAAc,CAAM,GAAG,QAAQ,CAE7E"}
@@ -0,0 +1,114 @@
1
+ /**
2
+ * Data Lake Module
3
+ *
4
+ * Enterprise-grade data storage with materialized views, indexes, and query optimization.
5
+ *
6
+ * Architecture:
7
+ * - ManifestStore: Quick-load index of everything (instant drift_status)
8
+ * - ViewStore: Pre-computed views for common queries
9
+ * - IndexStore: Fast lookups by file, category, table, entry point
10
+ * - QueryEngine: Unified query API with automatic view/index selection
11
+ * - ViewMaterializer: Rebuilds views after scans
12
+ *
13
+ * Usage:
14
+ * ```typescript
15
+ * import { createDataLake } from './lake';
16
+ *
17
+ * const lake = createDataLake({ rootDir: '/path/to/project' });
18
+ * await lake.initialize();
19
+ *
20
+ * // Instant status (reads pre-computed view)
21
+ * const status = await lake.query.getStatus();
22
+ *
23
+ * // Fast pattern listing (uses index + view)
24
+ * const patterns = await lake.query.getPatterns({ categories: ['api'] });
25
+ *
26
+ * // After scan, materialize views
27
+ * await lake.materializer.materialize(patterns, {}, { lastScan: scanInfo });
28
+ * ```
29
+ */
30
+ export { LAKE_VERSION, LAKE_DIRS, VIEW_FILES, INDEX_FILES, DEFAULT_DATA_LAKE_CONFIG, } from './types.js';
31
+ // Stores
32
+ export { ManifestStore, createManifestStore } from './manifest-store.js';
33
+ export { ViewStore, createViewStore } from './view-store.js';
34
+ export { IndexStore, createIndexStore } from './index-store.js';
35
+ // Query Engine
36
+ export { QueryEngine, createQueryEngine, } from './query-engine.js';
37
+ // View Materializer
38
+ export { ViewMaterializer, createViewMaterializer, } from './view-materializer.js';
39
+ import { DEFAULT_DATA_LAKE_CONFIG } from './types.js';
40
+ import { ManifestStore } from './manifest-store.js';
41
+ import { ViewStore } from './view-store.js';
42
+ import { IndexStore } from './index-store.js';
43
+ import { QueryEngine } from './query-engine.js';
44
+ import { ViewMaterializer } from './view-materializer.js';
45
+ /**
46
+ * Data Lake - Unified interface for all data lake operations
47
+ */
48
+ export class DataLake {
49
+ config;
50
+ manifest;
51
+ views;
52
+ indexes;
53
+ query;
54
+ materializer;
55
+ initialized = false;
56
+ constructor(config = {}) {
57
+ this.config = { ...DEFAULT_DATA_LAKE_CONFIG, ...config };
58
+ // Create stores
59
+ this.manifest = new ManifestStore(this.config);
60
+ this.views = new ViewStore(this.config);
61
+ this.indexes = new IndexStore(this.config);
62
+ // Create query engine with stores
63
+ this.query = new QueryEngine(this.config, this.manifest, this.views, this.indexes);
64
+ // Create materializer with stores
65
+ this.materializer = new ViewMaterializer(this.config, this.manifest, this.views, this.indexes);
66
+ }
67
+ /**
68
+ * Initialize the data lake
69
+ */
70
+ async initialize() {
71
+ if (this.initialized)
72
+ return;
73
+ await Promise.all([
74
+ this.manifest.initialize(),
75
+ this.views.initialize(),
76
+ this.indexes.initialize(),
77
+ ]);
78
+ this.initialized = true;
79
+ }
80
+ /**
81
+ * Set the raw pattern loader for fallback queries
82
+ */
83
+ setPatternLoader(loader) {
84
+ this.query.setRawPatternLoader(loader);
85
+ }
86
+ /**
87
+ * Check if the data lake has been initialized with data
88
+ */
89
+ hasData() {
90
+ const stats = this.manifest.getStats();
91
+ return stats.patterns.total > 0;
92
+ }
93
+ /**
94
+ * Get quick stats (instant, from manifest)
95
+ */
96
+ getQuickStats() {
97
+ return this.manifest.getStats();
98
+ }
99
+ /**
100
+ * Invalidate all caches and views
101
+ */
102
+ invalidateAll() {
103
+ this.manifest.markAllViewsStale('full invalidation');
104
+ this.views.invalidateCache();
105
+ this.indexes.invalidateCache();
106
+ }
107
+ }
108
+ /**
109
+ * Create a new DataLake instance
110
+ */
111
+ export function createDataLake(config = {}) {
112
+ return new DataLake(config);
113
+ }
114
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lake/lake.bak/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AA6DH,OAAO,EACL,YAAY,EACZ,SAAS,EACT,UAAU,EACV,WAAW,EACX,wBAAwB,GACzB,MAAM,YAAY,CAAC;AAEpB,SAAS;AACT,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEhE,eAAe;AACf,OAAO,EACL,WAAW,EACX,iBAAiB,GAKlB,MAAM,mBAAmB,CAAC;AAE3B,oBAAoB;AACpB,OAAO,EACL,gBAAgB,EAChB,sBAAsB,GAGvB,MAAM,wBAAwB,CAAC;AAOhC,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG1D;;GAEG;AACH,MAAM,OAAO,QAAQ;IACV,MAAM,CAAiB;IACvB,QAAQ,CAAgB;IACxB,KAAK,CAAY;IACjB,OAAO,CAAa;IACpB,KAAK,CAAc;IACnB,YAAY,CAAmB;IAEhC,WAAW,GAAG,KAAK,CAAC;IAE5B,YAAY,SAAkC,EAAE;QAC9C,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,wBAAwB,EAAE,GAAG,MAAM,EAAE,CAAC;QAEzD,gBAAgB;QAChB,IAAI,CAAC,QAAQ,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/C,IAAI,CAAC,KAAK,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,CAAC,OAAO,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAE3C,kCAAkC;QAClC,IAAI,CAAC,KAAK,GAAG,IAAI,WAAW,CAC1B,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,OAAO,CACb,CAAC;QAEF,kCAAkC;QAClC,IAAI,CAAC,YAAY,GAAG,IAAI,gBAAgB,CACtC,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,OAAO,CACb,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU;QACd,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO;QAE7B,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE;YAC1B,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;YACvB,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;SAC1B,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,MAAgC;QAC/C,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,OAAO;QACL,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACvC,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,aAAa;QACX,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;QACrD,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;QAC7B,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;IACjC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,SAAkC,EAAE;IACjE,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC9B,CAAC"}