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.
- package/LICENSE +21 -0
- package/dist/boundaries/boundary-scanner.d.ts +76 -0
- package/dist/boundaries/boundary-scanner.d.ts.map +1 -0
- package/dist/boundaries/boundary-scanner.js +801 -0
- package/dist/boundaries/boundary-scanner.js.map +1 -0
- package/dist/boundaries/data-access-learner.d.ts +126 -0
- package/dist/boundaries/data-access-learner.d.ts.map +1 -0
- package/dist/boundaries/data-access-learner.js +486 -0
- package/dist/boundaries/data-access-learner.js.map +1 -0
- package/dist/boundaries/index.d.ts +6 -0
- package/dist/boundaries/index.d.ts.map +1 -1
- package/dist/boundaries/index.js +6 -0
- package/dist/boundaries/index.js.map +1 -1
- package/dist/boundaries/security-prioritizer.d.ts +118 -0
- package/dist/boundaries/security-prioritizer.d.ts.map +1 -0
- package/dist/boundaries/security-prioritizer.js +316 -0
- package/dist/boundaries/security-prioritizer.js.map +1 -0
- package/dist/call-graph/analysis/coverage-analyzer.d.ts +201 -0
- package/dist/call-graph/analysis/coverage-analyzer.d.ts.map +1 -0
- package/dist/call-graph/analysis/coverage-analyzer.js +553 -0
- package/dist/call-graph/analysis/coverage-analyzer.js.map +1 -0
- package/dist/call-graph/analysis/dead-code-detector.d.ts +145 -0
- package/dist/call-graph/analysis/dead-code-detector.d.ts.map +1 -0
- package/dist/call-graph/analysis/dead-code-detector.js +391 -0
- package/dist/call-graph/analysis/dead-code-detector.js.map +1 -0
- package/dist/call-graph/analysis/graph-builder.d.ts +142 -0
- package/dist/call-graph/analysis/graph-builder.d.ts.map +1 -0
- package/dist/call-graph/analysis/graph-builder.js +624 -0
- package/dist/call-graph/analysis/graph-builder.js.map +1 -0
- package/dist/call-graph/analysis/impact-analyzer.d.ts +150 -0
- package/dist/call-graph/analysis/impact-analyzer.d.ts.map +1 -0
- package/dist/call-graph/analysis/impact-analyzer.js +329 -0
- package/dist/call-graph/analysis/impact-analyzer.js.map +1 -0
- package/dist/call-graph/analysis/index.d.ts +11 -0
- package/dist/call-graph/analysis/index.d.ts.map +1 -0
- package/dist/call-graph/analysis/index.js +9 -0
- package/dist/call-graph/analysis/index.js.map +1 -0
- package/dist/call-graph/analysis/path-finder.d.ts +117 -0
- package/dist/call-graph/analysis/path-finder.d.ts.map +1 -0
- package/dist/call-graph/analysis/path-finder.js +360 -0
- package/dist/call-graph/analysis/path-finder.js.map +1 -0
- package/dist/call-graph/analysis/reachability.d.ts +56 -0
- package/dist/call-graph/analysis/reachability.d.ts.map +1 -0
- package/dist/call-graph/analysis/reachability.js +357 -0
- package/dist/call-graph/analysis/reachability.js.map +1 -0
- package/dist/call-graph/demo.d.ts +11 -0
- package/dist/call-graph/demo.d.ts.map +1 -0
- package/dist/call-graph/demo.js +339 -0
- package/dist/call-graph/demo.js.map +1 -0
- package/dist/call-graph/enrichment/enrichment-engine.d.ts +126 -0
- package/dist/call-graph/enrichment/enrichment-engine.d.ts.map +1 -0
- package/dist/call-graph/enrichment/enrichment-engine.js +760 -0
- package/dist/call-graph/enrichment/enrichment-engine.js.map +1 -0
- package/dist/call-graph/enrichment/impact-scorer.d.ts +59 -0
- package/dist/call-graph/enrichment/impact-scorer.d.ts.map +1 -0
- package/dist/call-graph/enrichment/impact-scorer.js +328 -0
- package/dist/call-graph/enrichment/impact-scorer.js.map +1 -0
- package/dist/call-graph/enrichment/index.d.ts +12 -0
- package/dist/call-graph/enrichment/index.d.ts.map +1 -0
- package/dist/call-graph/enrichment/index.js +15 -0
- package/dist/call-graph/enrichment/index.js.map +1 -0
- package/dist/call-graph/enrichment/remediation-generator.d.ts +41 -0
- package/dist/call-graph/enrichment/remediation-generator.d.ts.map +1 -0
- package/dist/call-graph/enrichment/remediation-generator.js +609 -0
- package/dist/call-graph/enrichment/remediation-generator.js.map +1 -0
- package/dist/call-graph/enrichment/sensitivity-classifier.d.ts +71 -0
- package/dist/call-graph/enrichment/sensitivity-classifier.d.ts.map +1 -0
- package/dist/call-graph/enrichment/sensitivity-classifier.js +454 -0
- package/dist/call-graph/enrichment/sensitivity-classifier.js.map +1 -0
- package/dist/call-graph/enrichment/types.d.ts +402 -0
- package/dist/call-graph/enrichment/types.d.ts.map +1 -0
- package/dist/call-graph/enrichment/types.js +9 -0
- package/dist/call-graph/enrichment/types.js.map +1 -0
- package/dist/call-graph/extractors/base-extractor.d.ts +112 -0
- package/dist/call-graph/extractors/base-extractor.d.ts.map +1 -0
- package/dist/call-graph/extractors/base-extractor.js +140 -0
- package/dist/call-graph/extractors/base-extractor.js.map +1 -0
- package/dist/call-graph/extractors/csharp-data-access-extractor.d.ts +76 -0
- package/dist/call-graph/extractors/csharp-data-access-extractor.d.ts.map +1 -0
- package/dist/call-graph/extractors/csharp-data-access-extractor.js +387 -0
- package/dist/call-graph/extractors/csharp-data-access-extractor.js.map +1 -0
- package/dist/call-graph/extractors/csharp-extractor.d.ts +87 -0
- package/dist/call-graph/extractors/csharp-extractor.d.ts.map +1 -0
- package/dist/call-graph/extractors/csharp-extractor.js +470 -0
- package/dist/call-graph/extractors/csharp-extractor.js.map +1 -0
- package/dist/call-graph/extractors/data-access-extractor.d.ts +76 -0
- package/dist/call-graph/extractors/data-access-extractor.d.ts.map +1 -0
- package/dist/call-graph/extractors/data-access-extractor.js +234 -0
- package/dist/call-graph/extractors/data-access-extractor.js.map +1 -0
- package/dist/call-graph/extractors/index.d.ts +26 -0
- package/dist/call-graph/extractors/index.d.ts.map +1 -0
- package/dist/call-graph/extractors/index.js +36 -0
- package/dist/call-graph/extractors/index.js.map +1 -0
- package/dist/call-graph/extractors/java-data-access-extractor.d.ts +101 -0
- package/dist/call-graph/extractors/java-data-access-extractor.d.ts.map +1 -0
- package/dist/call-graph/extractors/java-data-access-extractor.js +611 -0
- package/dist/call-graph/extractors/java-data-access-extractor.js.map +1 -0
- package/dist/call-graph/extractors/java-extractor.d.ts +87 -0
- package/dist/call-graph/extractors/java-extractor.d.ts.map +1 -0
- package/dist/call-graph/extractors/java-extractor.js +510 -0
- package/dist/call-graph/extractors/java-extractor.js.map +1 -0
- package/dist/call-graph/extractors/php-data-access-extractor.d.ts +93 -0
- package/dist/call-graph/extractors/php-data-access-extractor.d.ts.map +1 -0
- package/dist/call-graph/extractors/php-data-access-extractor.js +589 -0
- package/dist/call-graph/extractors/php-data-access-extractor.js.map +1 -0
- package/dist/call-graph/extractors/php-extractor.d.ts +104 -0
- package/dist/call-graph/extractors/php-extractor.d.ts.map +1 -0
- package/dist/call-graph/extractors/php-extractor.js +619 -0
- package/dist/call-graph/extractors/php-extractor.js.map +1 -0
- package/dist/call-graph/extractors/python-data-access-extractor.d.ts +90 -0
- package/dist/call-graph/extractors/python-data-access-extractor.d.ts.map +1 -0
- package/dist/call-graph/extractors/python-data-access-extractor.js +537 -0
- package/dist/call-graph/extractors/python-data-access-extractor.js.map +1 -0
- package/dist/call-graph/extractors/python-extractor.d.ts +98 -0
- package/dist/call-graph/extractors/python-extractor.d.ts.map +1 -0
- package/dist/call-graph/extractors/python-extractor.js +681 -0
- package/dist/call-graph/extractors/python-extractor.js.map +1 -0
- package/dist/call-graph/extractors/semantic-data-access-scanner.d.ts +91 -0
- package/dist/call-graph/extractors/semantic-data-access-scanner.d.ts.map +1 -0
- package/dist/call-graph/extractors/semantic-data-access-scanner.js +498 -0
- package/dist/call-graph/extractors/semantic-data-access-scanner.js.map +1 -0
- package/dist/call-graph/extractors/typescript-data-access-extractor.d.ts +122 -0
- package/dist/call-graph/extractors/typescript-data-access-extractor.d.ts.map +1 -0
- package/dist/call-graph/extractors/typescript-data-access-extractor.js +788 -0
- package/dist/call-graph/extractors/typescript-data-access-extractor.js.map +1 -0
- package/dist/call-graph/extractors/typescript-extractor.d.ts +145 -0
- package/dist/call-graph/extractors/typescript-extractor.d.ts.map +1 -0
- package/dist/call-graph/extractors/typescript-extractor.js +904 -0
- package/dist/call-graph/extractors/typescript-extractor.js.map +1 -0
- package/dist/call-graph/index.d.ts +127 -0
- package/dist/call-graph/index.d.ts.map +1 -0
- package/dist/call-graph/index.js +247 -0
- package/dist/call-graph/index.js.map +1 -0
- package/dist/call-graph/store/call-graph-store.d.ts +70 -0
- package/dist/call-graph/store/call-graph-store.d.ts.map +1 -0
- package/dist/call-graph/store/call-graph-store.js +210 -0
- package/dist/call-graph/store/call-graph-store.js.map +1 -0
- package/dist/call-graph/store/index.d.ts +7 -0
- package/dist/call-graph/store/index.d.ts.map +1 -0
- package/dist/call-graph/store/index.js +7 -0
- package/dist/call-graph/store/index.js.map +1 -0
- package/dist/call-graph/types.d.ts +376 -0
- package/dist/call-graph/types.d.ts.map +1 -0
- package/dist/call-graph/types.js +8 -0
- package/dist/call-graph/types.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -1
- package/dist/lake/callgraph-shard-store.d.ts +168 -0
- package/dist/lake/callgraph-shard-store.d.ts.map +1 -0
- package/dist/lake/callgraph-shard-store.js +466 -0
- package/dist/lake/callgraph-shard-store.js.map +1 -0
- package/dist/lake/examples-store.d.ts +127 -0
- package/dist/lake/examples-store.d.ts.map +1 -0
- package/dist/lake/examples-store.js +389 -0
- package/dist/lake/examples-store.js.map +1 -0
- package/dist/lake/index-store.d.ts +82 -0
- package/dist/lake/index-store.d.ts.map +1 -0
- package/dist/lake/index-store.js +359 -0
- package/dist/lake/index-store.js.map +1 -0
- package/dist/lake/index.d.ts +93 -0
- package/dist/lake/index.d.ts.map +1 -0
- package/dist/lake/index.js +138 -0
- package/dist/lake/index.js.map +1 -0
- package/dist/lake/lake.bak/index-store.d.ts +82 -0
- package/dist/lake/lake.bak/index-store.d.ts.map +1 -0
- package/dist/lake/lake.bak/index-store.js +357 -0
- package/dist/lake/lake.bak/index-store.js.map +1 -0
- package/dist/lake/lake.bak/index.d.ts +81 -0
- package/dist/lake/lake.bak/index.d.ts.map +1 -0
- package/dist/lake/lake.bak/index.js +114 -0
- package/dist/lake/lake.bak/index.js.map +1 -0
- package/dist/lake/lake.bak/manifest-store.d.ts +51 -0
- package/dist/lake/lake.bak/manifest-store.d.ts.map +1 -0
- package/dist/lake/lake.bak/manifest-store.js +347 -0
- package/dist/lake/lake.bak/manifest-store.js.map +1 -0
- package/dist/lake/lake.bak/query-engine.d.ts +112 -0
- package/dist/lake/lake.bak/query-engine.d.ts.map +1 -0
- package/dist/lake/lake.bak/query-engine.js +370 -0
- package/dist/lake/lake.bak/query-engine.js.map +1 -0
- package/dist/lake/lake.bak/types.d.ts +428 -0
- package/dist/lake/lake.bak/types.d.ts.map +1 -0
- package/dist/lake/lake.bak/types.js +46 -0
- package/dist/lake/lake.bak/types.js.map +1 -0
- package/dist/lake/lake.bak/view-materializer.d.ts +70 -0
- package/dist/lake/lake.bak/view-materializer.d.ts.map +1 -0
- package/dist/lake/lake.bak/view-materializer.js +314 -0
- package/dist/lake/lake.bak/view-materializer.js.map +1 -0
- package/dist/lake/lake.bak/view-store.d.ts +57 -0
- package/dist/lake/lake.bak/view-store.d.ts.map +1 -0
- package/dist/lake/lake.bak/view-store.js +348 -0
- package/dist/lake/lake.bak/view-store.js.map +1 -0
- package/dist/lake/manifest-store.d.ts +51 -0
- package/dist/lake/manifest-store.d.ts.map +1 -0
- package/dist/lake/manifest-store.js +348 -0
- package/dist/lake/manifest-store.js.map +1 -0
- package/dist/lake/pattern-shard-store.d.ts +87 -0
- package/dist/lake/pattern-shard-store.d.ts.map +1 -0
- package/dist/lake/pattern-shard-store.js +347 -0
- package/dist/lake/pattern-shard-store.js.map +1 -0
- package/dist/lake/query-engine.d.ts +124 -0
- package/dist/lake/query-engine.d.ts.map +1 -0
- package/dist/lake/query-engine.js +453 -0
- package/dist/lake/query-engine.js.map +1 -0
- package/dist/lake/security-shard-store.d.ts +156 -0
- package/dist/lake/security-shard-store.d.ts.map +1 -0
- package/dist/lake/security-shard-store.js +498 -0
- package/dist/lake/security-shard-store.js.map +1 -0
- package/dist/lake/types.d.ts +428 -0
- package/dist/lake/types.d.ts.map +1 -0
- package/dist/lake/types.js +46 -0
- package/dist/lake/types.js.map +1 -0
- package/dist/lake/view-materializer.d.ts +70 -0
- package/dist/lake/view-materializer.d.ts.map +1 -0
- package/dist/lake/view-materializer.js +314 -0
- package/dist/lake/view-materializer.js.map +1 -0
- package/dist/lake/view-store.d.ts +57 -0
- package/dist/lake/view-store.d.ts.map +1 -0
- package/dist/lake/view-store.js +348 -0
- package/dist/lake/view-store.js.map +1 -0
- package/dist/parsers/tree-sitter/index.d.ts +1 -0
- package/dist/parsers/tree-sitter/index.d.ts.map +1 -1
- package/dist/parsers/tree-sitter/index.js +4 -0
- package/dist/parsers/tree-sitter/index.js.map +1 -1
- package/dist/parsers/tree-sitter/typescript-loader.d.ts +58 -0
- package/dist/parsers/tree-sitter/typescript-loader.d.ts.map +1 -0
- package/dist/parsers/tree-sitter/typescript-loader.js +250 -0
- package/dist/parsers/tree-sitter/typescript-loader.js.map +1 -0
- package/dist/store/project-config.d.ts +154 -0
- package/dist/store/project-config.d.ts.map +1 -0
- package/dist/store/project-config.js +235 -0
- package/dist/store/project-config.js.map +1 -0
- package/dist/store/project-registry.d.ts +241 -0
- package/dist/store/project-registry.d.ts.map +1 -0
- package/dist/store/project-registry.js +557 -0
- package/dist/store/project-registry.js.map +1 -0
- package/package.json +16 -14
|
@@ -0,0 +1,428 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Data Lake Types
|
|
3
|
+
*
|
|
4
|
+
* Type definitions for the unified data lake architecture.
|
|
5
|
+
* The data lake provides:
|
|
6
|
+
* - Materialized views for instant queries
|
|
7
|
+
* - Sharded storage for large datasets
|
|
8
|
+
* - Pre-computed indexes for fast lookups
|
|
9
|
+
* - Incremental updates for efficient rebuilds
|
|
10
|
+
*/
|
|
11
|
+
import type { PatternCategory, PatternStatus, ConfidenceLevel } from '../store/types.js';
|
|
12
|
+
/**
|
|
13
|
+
* The manifest is the quick-load index of everything in the data lake.
|
|
14
|
+
* Reading this single file gives you all stats needed for drift_status.
|
|
15
|
+
*/
|
|
16
|
+
export interface DriftManifest {
|
|
17
|
+
/** Schema version for forward compatibility */
|
|
18
|
+
version: string;
|
|
19
|
+
/** When the manifest was last generated */
|
|
20
|
+
generatedAt: string;
|
|
21
|
+
/** Absolute path to project root */
|
|
22
|
+
projectRoot: string;
|
|
23
|
+
/** Quick stats for drift_status */
|
|
24
|
+
stats: ManifestStats;
|
|
25
|
+
/** File hashes for cache invalidation */
|
|
26
|
+
fileHashes: Record<string, string>;
|
|
27
|
+
/** Last scan information */
|
|
28
|
+
lastScan: LastScanInfo;
|
|
29
|
+
/** View freshness markers */
|
|
30
|
+
views: ViewFreshness;
|
|
31
|
+
}
|
|
32
|
+
export interface ManifestStats {
|
|
33
|
+
patterns: PatternStats;
|
|
34
|
+
security: SecurityStats;
|
|
35
|
+
callGraph: CallGraphStats;
|
|
36
|
+
contracts: ContractStats;
|
|
37
|
+
dna: DNAStats;
|
|
38
|
+
}
|
|
39
|
+
export interface PatternStats {
|
|
40
|
+
total: number;
|
|
41
|
+
byCategory: Record<PatternCategory, number>;
|
|
42
|
+
byStatus: Record<PatternStatus, number>;
|
|
43
|
+
byConfidence: Record<ConfidenceLevel, number>;
|
|
44
|
+
totalLocations: number;
|
|
45
|
+
totalOutliers: number;
|
|
46
|
+
}
|
|
47
|
+
export interface SecurityStats {
|
|
48
|
+
totalTables: number;
|
|
49
|
+
totalAccessPoints: number;
|
|
50
|
+
sensitiveFields: number;
|
|
51
|
+
violations: number;
|
|
52
|
+
riskLevel: 'low' | 'medium' | 'high' | 'critical';
|
|
53
|
+
}
|
|
54
|
+
export interface CallGraphStats {
|
|
55
|
+
totalFunctions: number;
|
|
56
|
+
totalCalls: number;
|
|
57
|
+
entryPoints: number;
|
|
58
|
+
dataAccessors: number;
|
|
59
|
+
avgDepth: number;
|
|
60
|
+
}
|
|
61
|
+
export interface ContractStats {
|
|
62
|
+
verified: number;
|
|
63
|
+
mismatch: number;
|
|
64
|
+
discovered: number;
|
|
65
|
+
ignored: number;
|
|
66
|
+
}
|
|
67
|
+
export interface DNAStats {
|
|
68
|
+
healthScore: number;
|
|
69
|
+
geneticDiversity: number;
|
|
70
|
+
mutations: number;
|
|
71
|
+
dominantGenes: string[];
|
|
72
|
+
}
|
|
73
|
+
export interface LastScanInfo {
|
|
74
|
+
timestamp: string;
|
|
75
|
+
duration: number;
|
|
76
|
+
filesScanned: number;
|
|
77
|
+
patternsFound: number;
|
|
78
|
+
errors: number;
|
|
79
|
+
}
|
|
80
|
+
export interface ViewFreshness {
|
|
81
|
+
status: ViewMeta;
|
|
82
|
+
patternIndex: ViewMeta;
|
|
83
|
+
securitySummary: ViewMeta;
|
|
84
|
+
trends: ViewMeta;
|
|
85
|
+
examples: ViewMeta;
|
|
86
|
+
}
|
|
87
|
+
export interface ViewMeta {
|
|
88
|
+
generatedAt: string;
|
|
89
|
+
stale: boolean;
|
|
90
|
+
invalidatedBy?: string[];
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Pre-computed status view - instant drift_status response
|
|
94
|
+
*/
|
|
95
|
+
export interface StatusView {
|
|
96
|
+
generatedAt: string;
|
|
97
|
+
health: {
|
|
98
|
+
score: number;
|
|
99
|
+
trend: 'improving' | 'stable' | 'declining';
|
|
100
|
+
factors: HealthFactor[];
|
|
101
|
+
};
|
|
102
|
+
patterns: {
|
|
103
|
+
total: number;
|
|
104
|
+
approved: number;
|
|
105
|
+
discovered: number;
|
|
106
|
+
ignored: number;
|
|
107
|
+
byCategory: Record<string, number>;
|
|
108
|
+
};
|
|
109
|
+
issues: {
|
|
110
|
+
critical: number;
|
|
111
|
+
warnings: number;
|
|
112
|
+
topIssues: TopIssue[];
|
|
113
|
+
};
|
|
114
|
+
security: {
|
|
115
|
+
riskLevel: 'low' | 'medium' | 'high' | 'critical';
|
|
116
|
+
violations: number;
|
|
117
|
+
sensitiveExposures: number;
|
|
118
|
+
};
|
|
119
|
+
lastScan: LastScanInfo;
|
|
120
|
+
}
|
|
121
|
+
export interface HealthFactor {
|
|
122
|
+
name: string;
|
|
123
|
+
score: number;
|
|
124
|
+
weight: number;
|
|
125
|
+
trend: 'up' | 'down' | 'stable';
|
|
126
|
+
}
|
|
127
|
+
export interface TopIssue {
|
|
128
|
+
id: string;
|
|
129
|
+
type: 'regression' | 'violation' | 'outlier';
|
|
130
|
+
severity: 'critical' | 'warning';
|
|
131
|
+
message: string;
|
|
132
|
+
file?: string;
|
|
133
|
+
patternId?: string;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Pattern index view - lightweight pattern listing
|
|
137
|
+
*/
|
|
138
|
+
export interface PatternIndexView {
|
|
139
|
+
generatedAt: string;
|
|
140
|
+
total: number;
|
|
141
|
+
patterns: PatternSummary[];
|
|
142
|
+
}
|
|
143
|
+
export interface PatternSummary {
|
|
144
|
+
id: string;
|
|
145
|
+
name: string;
|
|
146
|
+
category: PatternCategory;
|
|
147
|
+
subcategory: string;
|
|
148
|
+
status: PatternStatus;
|
|
149
|
+
confidence: number;
|
|
150
|
+
confidenceLevel: ConfidenceLevel;
|
|
151
|
+
locationCount: number;
|
|
152
|
+
outlierCount: number;
|
|
153
|
+
severity: string;
|
|
154
|
+
/** Hash of locations for change detection */
|
|
155
|
+
locationsHash: string;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Security summary view - instant security overview
|
|
159
|
+
*/
|
|
160
|
+
export interface SecuritySummaryView {
|
|
161
|
+
generatedAt: string;
|
|
162
|
+
riskLevel: 'low' | 'medium' | 'high' | 'critical';
|
|
163
|
+
summary: {
|
|
164
|
+
totalTables: number;
|
|
165
|
+
sensitiveTablesCount: number;
|
|
166
|
+
totalAccessPoints: number;
|
|
167
|
+
violationCount: number;
|
|
168
|
+
};
|
|
169
|
+
topSensitiveTables: SensitiveTableSummary[];
|
|
170
|
+
topViolations: ViolationSummary[];
|
|
171
|
+
recentChanges: SecurityChange[];
|
|
172
|
+
}
|
|
173
|
+
export interface SensitiveTableSummary {
|
|
174
|
+
table: string;
|
|
175
|
+
sensitiveFields: number;
|
|
176
|
+
accessPoints: number;
|
|
177
|
+
riskScore: number;
|
|
178
|
+
}
|
|
179
|
+
export interface ViolationSummary {
|
|
180
|
+
id: string;
|
|
181
|
+
severity: 'critical' | 'warning' | 'info';
|
|
182
|
+
message: string;
|
|
183
|
+
file: string;
|
|
184
|
+
table: string;
|
|
185
|
+
}
|
|
186
|
+
export interface SecurityChange {
|
|
187
|
+
type: 'new_access' | 'new_sensitive' | 'violation_added' | 'violation_resolved';
|
|
188
|
+
timestamp: string;
|
|
189
|
+
description: string;
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Trends view - pre-computed trend analysis
|
|
193
|
+
*/
|
|
194
|
+
export interface TrendsView {
|
|
195
|
+
generatedAt: string;
|
|
196
|
+
period: '7d' | '30d' | '90d';
|
|
197
|
+
overallTrend: 'improving' | 'stable' | 'declining';
|
|
198
|
+
healthDelta: number;
|
|
199
|
+
regressions: TrendItem[];
|
|
200
|
+
improvements: TrendItem[];
|
|
201
|
+
stableCount: number;
|
|
202
|
+
categoryTrends: Record<string, CategoryTrend>;
|
|
203
|
+
}
|
|
204
|
+
export interface TrendItem {
|
|
205
|
+
patternId: string;
|
|
206
|
+
patternName: string;
|
|
207
|
+
category: PatternCategory;
|
|
208
|
+
metric: 'confidence' | 'compliance' | 'outliers';
|
|
209
|
+
previousValue: number;
|
|
210
|
+
currentValue: number;
|
|
211
|
+
change: number;
|
|
212
|
+
severity: 'critical' | 'warning' | 'info';
|
|
213
|
+
}
|
|
214
|
+
export interface CategoryTrend {
|
|
215
|
+
trend: 'improving' | 'stable' | 'declining';
|
|
216
|
+
avgConfidenceChange: number;
|
|
217
|
+
complianceChange: number;
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* File-to-patterns index
|
|
221
|
+
*/
|
|
222
|
+
export interface FileIndex {
|
|
223
|
+
generatedAt: string;
|
|
224
|
+
/** file path -> pattern IDs */
|
|
225
|
+
patterns: Record<string, string[]>;
|
|
226
|
+
/** file path -> access point IDs */
|
|
227
|
+
accessPoints: Record<string, string[]>;
|
|
228
|
+
/** file path -> function IDs */
|
|
229
|
+
functions: Record<string, string[]>;
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Category-to-patterns index
|
|
233
|
+
*/
|
|
234
|
+
export interface CategoryIndex {
|
|
235
|
+
generatedAt: string;
|
|
236
|
+
/** category -> pattern IDs */
|
|
237
|
+
patterns: Record<PatternCategory, string[]>;
|
|
238
|
+
/** category -> pattern count */
|
|
239
|
+
counts: Record<PatternCategory, number>;
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Table-to-access index
|
|
243
|
+
*/
|
|
244
|
+
export interface TableIndex {
|
|
245
|
+
generatedAt: string;
|
|
246
|
+
/** table name -> access point IDs */
|
|
247
|
+
accessPoints: Record<string, string[]>;
|
|
248
|
+
/** table name -> function IDs that access it */
|
|
249
|
+
accessors: Record<string, string[]>;
|
|
250
|
+
/** table name -> sensitive field names */
|
|
251
|
+
sensitiveFields: Record<string, string[]>;
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Entry point reachability index
|
|
255
|
+
*/
|
|
256
|
+
export interface EntryPointIndex {
|
|
257
|
+
generatedAt: string;
|
|
258
|
+
/** entry point ID -> reachable function IDs */
|
|
259
|
+
reachable: Record<string, string[]>;
|
|
260
|
+
/** entry point ID -> reachable tables */
|
|
261
|
+
tables: Record<string, string[]>;
|
|
262
|
+
/** entry point ID -> reachable sensitive fields */
|
|
263
|
+
sensitiveData: Record<string, string[]>;
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* A shard contains a subset of data for a specific key
|
|
267
|
+
*/
|
|
268
|
+
export interface Shard<T> {
|
|
269
|
+
version: string;
|
|
270
|
+
generatedAt: string;
|
|
271
|
+
key: string;
|
|
272
|
+
data: T;
|
|
273
|
+
checksum: string;
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Pattern shard - patterns for a single category
|
|
277
|
+
*/
|
|
278
|
+
export interface PatternShard {
|
|
279
|
+
category: PatternCategory;
|
|
280
|
+
patterns: PatternShardEntry[];
|
|
281
|
+
}
|
|
282
|
+
export interface PatternShardEntry {
|
|
283
|
+
id: string;
|
|
284
|
+
name: string;
|
|
285
|
+
description: string;
|
|
286
|
+
subcategory: string;
|
|
287
|
+
status: PatternStatus;
|
|
288
|
+
confidence: {
|
|
289
|
+
score: number;
|
|
290
|
+
level: ConfidenceLevel;
|
|
291
|
+
};
|
|
292
|
+
severity: string;
|
|
293
|
+
locations: PatternLocation[];
|
|
294
|
+
outliers: PatternLocation[];
|
|
295
|
+
metadata: PatternMetadata;
|
|
296
|
+
}
|
|
297
|
+
export interface PatternLocation {
|
|
298
|
+
file: string;
|
|
299
|
+
line: number;
|
|
300
|
+
column: number;
|
|
301
|
+
endLine?: number;
|
|
302
|
+
endColumn?: number;
|
|
303
|
+
snippet?: string;
|
|
304
|
+
}
|
|
305
|
+
export interface PatternMetadata {
|
|
306
|
+
firstSeen: string;
|
|
307
|
+
lastSeen: string;
|
|
308
|
+
approvedAt?: string;
|
|
309
|
+
approvedBy?: string;
|
|
310
|
+
tags?: string[];
|
|
311
|
+
}
|
|
312
|
+
/**
|
|
313
|
+
* Access map shard - access points for a single table
|
|
314
|
+
*/
|
|
315
|
+
export interface AccessMapShard {
|
|
316
|
+
table: string;
|
|
317
|
+
model?: string;
|
|
318
|
+
fields: string[];
|
|
319
|
+
sensitiveFields: SensitiveFieldInfo[];
|
|
320
|
+
accessPoints: AccessPointEntry[];
|
|
321
|
+
}
|
|
322
|
+
export interface SensitiveFieldInfo {
|
|
323
|
+
field: string;
|
|
324
|
+
sensitivity: 'pii' | 'financial' | 'auth' | 'health' | 'custom';
|
|
325
|
+
reason: string;
|
|
326
|
+
}
|
|
327
|
+
export interface AccessPointEntry {
|
|
328
|
+
id: string;
|
|
329
|
+
file: string;
|
|
330
|
+
line: number;
|
|
331
|
+
column: number;
|
|
332
|
+
operation: 'read' | 'write' | 'delete';
|
|
333
|
+
fields: string[];
|
|
334
|
+
functionId?: string;
|
|
335
|
+
confidence: number;
|
|
336
|
+
}
|
|
337
|
+
/**
|
|
338
|
+
* Call graph shard - functions in a single file
|
|
339
|
+
*/
|
|
340
|
+
export interface CallGraphShard {
|
|
341
|
+
file: string;
|
|
342
|
+
functions: FunctionEntry[];
|
|
343
|
+
}
|
|
344
|
+
export interface FunctionEntry {
|
|
345
|
+
id: string;
|
|
346
|
+
name: string;
|
|
347
|
+
startLine: number;
|
|
348
|
+
endLine: number;
|
|
349
|
+
isEntryPoint: boolean;
|
|
350
|
+
isDataAccessor: boolean;
|
|
351
|
+
calls: string[];
|
|
352
|
+
calledBy: string[];
|
|
353
|
+
dataAccess: DataAccessRef[];
|
|
354
|
+
}
|
|
355
|
+
export interface DataAccessRef {
|
|
356
|
+
table: string;
|
|
357
|
+
fields: string[];
|
|
358
|
+
operation: 'read' | 'write' | 'delete';
|
|
359
|
+
line: number;
|
|
360
|
+
}
|
|
361
|
+
export interface PatternExamples {
|
|
362
|
+
patternId: string;
|
|
363
|
+
patternName: string;
|
|
364
|
+
category: PatternCategory;
|
|
365
|
+
generatedAt: string;
|
|
366
|
+
examples: CodeExample[];
|
|
367
|
+
}
|
|
368
|
+
export interface CodeExample {
|
|
369
|
+
file: string;
|
|
370
|
+
line: number;
|
|
371
|
+
endLine: number;
|
|
372
|
+
code: string;
|
|
373
|
+
context: string;
|
|
374
|
+
quality: number;
|
|
375
|
+
isOutlier: boolean;
|
|
376
|
+
}
|
|
377
|
+
export interface IncrementalUpdate {
|
|
378
|
+
timestamp: string;
|
|
379
|
+
changedFiles: string[];
|
|
380
|
+
addedPatterns: string[];
|
|
381
|
+
removedPatterns: string[];
|
|
382
|
+
modifiedPatterns: string[];
|
|
383
|
+
affectedTables: string[];
|
|
384
|
+
affectedCategories: PatternCategory[];
|
|
385
|
+
affectedViews: ViewType[];
|
|
386
|
+
}
|
|
387
|
+
export type ViewType = 'status' | 'patternIndex' | 'securitySummary' | 'trends' | 'examples';
|
|
388
|
+
export type IndexType = 'byFile' | 'byCategory' | 'byTable' | 'byEntryPoint';
|
|
389
|
+
export interface DataLakeConfig {
|
|
390
|
+
rootDir: string;
|
|
391
|
+
/** Enable sharding for large datasets */
|
|
392
|
+
enableSharding: boolean;
|
|
393
|
+
/** Threshold for sharding (number of items) */
|
|
394
|
+
shardThreshold: number;
|
|
395
|
+
/** Enable pre-computed views */
|
|
396
|
+
enableViews: boolean;
|
|
397
|
+
/** Enable indexes */
|
|
398
|
+
enableIndexes: boolean;
|
|
399
|
+
/** Auto-rebuild stale views */
|
|
400
|
+
autoRebuild: boolean;
|
|
401
|
+
/** View TTL in milliseconds */
|
|
402
|
+
viewTtlMs: number;
|
|
403
|
+
}
|
|
404
|
+
export declare const DEFAULT_DATA_LAKE_CONFIG: DataLakeConfig;
|
|
405
|
+
export declare const LAKE_VERSION = "1.0.0";
|
|
406
|
+
export declare const LAKE_DIRS: {
|
|
407
|
+
readonly root: ".drift";
|
|
408
|
+
readonly lake: "lake";
|
|
409
|
+
readonly views: "views";
|
|
410
|
+
readonly indexes: "indexes";
|
|
411
|
+
readonly shards: "shards";
|
|
412
|
+
readonly examples: "examples";
|
|
413
|
+
readonly cursors: "cursors";
|
|
414
|
+
readonly meta: "meta";
|
|
415
|
+
};
|
|
416
|
+
export declare const VIEW_FILES: {
|
|
417
|
+
readonly status: "status.json";
|
|
418
|
+
readonly patternIndex: "pattern-index.json";
|
|
419
|
+
readonly securitySummary: "security-summary.json";
|
|
420
|
+
readonly trends: "trends.json";
|
|
421
|
+
};
|
|
422
|
+
export declare const INDEX_FILES: {
|
|
423
|
+
readonly byFile: "by-file.json";
|
|
424
|
+
readonly byCategory: "by-category.json";
|
|
425
|
+
readonly byTable: "by-table.json";
|
|
426
|
+
readonly byEntryPoint: "by-entry-point.json";
|
|
427
|
+
};
|
|
428
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lake/lake.bak/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Data Lake Types
|
|
3
|
+
*
|
|
4
|
+
* Type definitions for the unified data lake architecture.
|
|
5
|
+
* The data lake provides:
|
|
6
|
+
* - Materialized views for instant queries
|
|
7
|
+
* - Sharded storage for large datasets
|
|
8
|
+
* - Pre-computed indexes for fast lookups
|
|
9
|
+
* - Incremental updates for efficient rebuilds
|
|
10
|
+
*/
|
|
11
|
+
export const DEFAULT_DATA_LAKE_CONFIG = {
|
|
12
|
+
rootDir: '.',
|
|
13
|
+
enableSharding: true,
|
|
14
|
+
shardThreshold: 100,
|
|
15
|
+
enableViews: true,
|
|
16
|
+
enableIndexes: true,
|
|
17
|
+
autoRebuild: true,
|
|
18
|
+
viewTtlMs: 3600000, // 1 hour
|
|
19
|
+
};
|
|
20
|
+
// ============================================================================
|
|
21
|
+
// Constants
|
|
22
|
+
// ============================================================================
|
|
23
|
+
export const LAKE_VERSION = '1.0.0';
|
|
24
|
+
export const LAKE_DIRS = {
|
|
25
|
+
root: '.drift',
|
|
26
|
+
lake: 'lake',
|
|
27
|
+
views: 'views',
|
|
28
|
+
indexes: 'indexes',
|
|
29
|
+
shards: 'shards',
|
|
30
|
+
examples: 'examples',
|
|
31
|
+
cursors: 'cursors',
|
|
32
|
+
meta: 'meta',
|
|
33
|
+
};
|
|
34
|
+
export const VIEW_FILES = {
|
|
35
|
+
status: 'status.json',
|
|
36
|
+
patternIndex: 'pattern-index.json',
|
|
37
|
+
securitySummary: 'security-summary.json',
|
|
38
|
+
trends: 'trends.json',
|
|
39
|
+
};
|
|
40
|
+
export const INDEX_FILES = {
|
|
41
|
+
byFile: 'by-file.json',
|
|
42
|
+
byCategory: 'by-category.json',
|
|
43
|
+
byTable: 'by-table.json',
|
|
44
|
+
byEntryPoint: 'by-entry-point.json',
|
|
45
|
+
};
|
|
46
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/lake/lake.bak/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAgeH,MAAM,CAAC,MAAM,wBAAwB,GAAmB;IACtD,OAAO,EAAE,GAAG;IACZ,cAAc,EAAE,IAAI;IACpB,cAAc,EAAE,GAAG;IACnB,WAAW,EAAE,IAAI;IACjB,aAAa,EAAE,IAAI;IACnB,WAAW,EAAE,IAAI;IACjB,SAAS,EAAE,OAAO,EAAE,SAAS;CAC9B,CAAC;AAEF,+EAA+E;AAC/E,YAAY;AACZ,+EAA+E;AAE/E,MAAM,CAAC,MAAM,YAAY,GAAG,OAAO,CAAC;AAEpC,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,MAAM;CACJ,CAAC;AAEX,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,MAAM,EAAE,aAAa;IACrB,YAAY,EAAE,oBAAoB;IAClC,eAAe,EAAE,uBAAuB;IACxC,MAAM,EAAE,aAAa;CACb,CAAC;AAEX,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,MAAM,EAAE,cAAc;IACtB,UAAU,EAAE,kBAAkB;IAC9B,OAAO,EAAE,eAAe;IACxB,YAAY,EAAE,qBAAqB;CAC3B,CAAC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* View Materializer
|
|
3
|
+
*
|
|
4
|
+
* Rebuilds materialized views after scans or data changes.
|
|
5
|
+
* Supports both full rebuilds and incremental updates.
|
|
6
|
+
*
|
|
7
|
+
* Key features:
|
|
8
|
+
* - Automatic view generation after scan
|
|
9
|
+
* - Incremental updates for changed files
|
|
10
|
+
* - Dependency tracking between views
|
|
11
|
+
* - Parallel view generation
|
|
12
|
+
*/
|
|
13
|
+
import { EventEmitter } from 'node:events';
|
|
14
|
+
import type { IncrementalUpdate, ViewType, DataLakeConfig } from './types.js';
|
|
15
|
+
import { ManifestStore } from './manifest-store.js';
|
|
16
|
+
import { ViewStore } from './view-store.js';
|
|
17
|
+
import { IndexStore } from './index-store.js';
|
|
18
|
+
import type { Pattern } from '../store/types.js';
|
|
19
|
+
import type { DataAccessMap, BoundaryViolation } from '../boundaries/types.js';
|
|
20
|
+
import type { TrendSummary } from '../store/history-store.js';
|
|
21
|
+
export interface MaterializeOptions {
|
|
22
|
+
/** Force rebuild even if views are fresh */
|
|
23
|
+
force?: boolean;
|
|
24
|
+
/** Only rebuild specific views */
|
|
25
|
+
views?: ViewType[];
|
|
26
|
+
/** Incremental update info */
|
|
27
|
+
incremental?: IncrementalUpdate;
|
|
28
|
+
}
|
|
29
|
+
export interface MaterializeResult {
|
|
30
|
+
viewsRebuilt: ViewType[];
|
|
31
|
+
indexesRebuilt: string[];
|
|
32
|
+
duration: number;
|
|
33
|
+
errors: string[];
|
|
34
|
+
}
|
|
35
|
+
export declare class ViewMaterializer extends EventEmitter {
|
|
36
|
+
private readonly config;
|
|
37
|
+
private readonly manifestStore;
|
|
38
|
+
private readonly viewStore;
|
|
39
|
+
private readonly indexStore;
|
|
40
|
+
constructor(config?: Partial<DataLakeConfig>, manifestStore?: ManifestStore, viewStore?: ViewStore, indexStore?: IndexStore);
|
|
41
|
+
initialize(): Promise<void>;
|
|
42
|
+
/**
|
|
43
|
+
* Materialize all views from source data
|
|
44
|
+
*/
|
|
45
|
+
materialize(patterns: Pattern[], options?: MaterializeOptions, additionalData?: {
|
|
46
|
+
accessMap?: DataAccessMap;
|
|
47
|
+
violations?: BoundaryViolation[];
|
|
48
|
+
trendSummary?: TrendSummary;
|
|
49
|
+
lastScan?: {
|
|
50
|
+
timestamp: string;
|
|
51
|
+
duration: number;
|
|
52
|
+
filesScanned: number;
|
|
53
|
+
patternsFound: number;
|
|
54
|
+
errors: number;
|
|
55
|
+
};
|
|
56
|
+
}): Promise<MaterializeResult>;
|
|
57
|
+
private rebuildStatusView;
|
|
58
|
+
private rebuildPatternIndexView;
|
|
59
|
+
private rebuildSecuritySummaryView;
|
|
60
|
+
private rebuildTrendsView;
|
|
61
|
+
private rebuildIndexes;
|
|
62
|
+
private buildSecuritySummaryView;
|
|
63
|
+
private buildTrendsView;
|
|
64
|
+
private updateManifestStats;
|
|
65
|
+
private getViewsToRebuild;
|
|
66
|
+
private calculateRiskLevel;
|
|
67
|
+
private calculateTableRiskScore;
|
|
68
|
+
}
|
|
69
|
+
export declare function createViewMaterializer(config?: Partial<DataLakeConfig>, manifestStore?: ManifestStore, viewStore?: ViewStore, indexStore?: IndexStore): ViewMaterializer;
|
|
70
|
+
//# sourceMappingURL=view-materializer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"view-materializer.d.ts","sourceRoot":"","sources":["../../../src/lake/lake.bak/view-materializer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,KAAK,EACV,iBAAiB,EACjB,QAAQ,EACR,cAAc,EAOf,MAAM,YAAY,CAAC;AAIpB,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,KAAK,EAAE,OAAO,EAAmB,MAAM,mBAAmB,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC/E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAM9D,MAAM,WAAW,kBAAkB;IACjC,4CAA4C;IAC5C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,kCAAkC;IAClC,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;IACnB,8BAA8B;IAC9B,WAAW,CAAC,EAAE,iBAAiB,CAAC;CACjC;AAED,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,QAAQ,EAAE,CAAC;IACzB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAMD,qBAAa,gBAAiB,SAAQ,YAAY;IAChD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IACxC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IACtC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;gBAGtC,MAAM,GAAE,OAAO,CAAC,cAAc,CAAM,EACpC,aAAa,CAAC,EAAE,aAAa,EAC7B,SAAS,CAAC,EAAE,SAAS,EACrB,UAAU,CAAC,EAAE,UAAU;IAanB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAYjC;;OAEG;IACG,WAAW,CACf,QAAQ,EAAE,OAAO,EAAE,EACnB,OAAO,GAAE,kBAAuB,EAChC,cAAc,CAAC,EAAE;QACf,SAAS,CAAC,EAAE,aAAa,CAAC;QAC1B,UAAU,CAAC,EAAE,iBAAiB,EAAE,CAAC;QACjC,YAAY,CAAC,EAAE,YAAY,CAAC;QAC5B,QAAQ,CAAC,EAAE;YACT,SAAS,EAAE,MAAM,CAAC;YAClB,QAAQ,EAAE,MAAM,CAAC;YACjB,YAAY,EAAE,MAAM,CAAC;YACrB,aAAa,EAAE,MAAM,CAAC;YACtB,MAAM,EAAE,MAAM,CAAC;SAChB,CAAC;KACH,GACA,OAAO,CAAC,iBAAiB,CAAC;YAuEf,iBAAiB;YA+BjB,uBAAuB;YAOvB,0BAA0B;YAU1B,iBAAiB;YAWjB,cAAc;IA0B5B,OAAO,CAAC,wBAAwB;IAgDhC,OAAO,CAAC,eAAe;YAkDT,mBAAmB;IA0DjC,OAAO,CAAC,iBAAiB;IAmBzB,OAAO,CAAC,kBAAkB;IAe1B,OAAO,CAAC,uBAAuB;CAOhC;AAMD,wBAAgB,sBAAsB,CACpC,MAAM,GAAE,OAAO,CAAC,cAAc,CAAM,EACpC,aAAa,CAAC,EAAE,aAAa,EAC7B,SAAS,CAAC,EAAE,SAAS,EACrB,UAAU,CAAC,EAAE,UAAU,GACtB,gBAAgB,CAElB"}
|