driftdetect-core 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/analyzers/ast-analyzer.d.ts +251 -0
- package/dist/analyzers/ast-analyzer.d.ts.map +1 -0
- package/dist/analyzers/ast-analyzer.js +548 -0
- package/dist/analyzers/ast-analyzer.js.map +1 -0
- package/dist/analyzers/flow-analyzer.d.ts +241 -0
- package/dist/analyzers/flow-analyzer.d.ts.map +1 -0
- package/dist/analyzers/flow-analyzer.js +1219 -0
- package/dist/analyzers/flow-analyzer.js.map +1 -0
- package/dist/analyzers/index.d.ts +18 -0
- package/dist/analyzers/index.d.ts.map +1 -0
- package/dist/analyzers/index.js +19 -0
- package/dist/analyzers/index.js.map +1 -0
- package/dist/analyzers/semantic-analyzer.d.ts +252 -0
- package/dist/analyzers/semantic-analyzer.d.ts.map +1 -0
- package/dist/analyzers/semantic-analyzer.js +1182 -0
- package/dist/analyzers/semantic-analyzer.js.map +1 -0
- package/dist/analyzers/type-analyzer.d.ts +289 -0
- package/dist/analyzers/type-analyzer.d.ts.map +1 -0
- package/dist/analyzers/type-analyzer.js +1269 -0
- package/dist/analyzers/type-analyzer.js.map +1 -0
- package/dist/analyzers/types.d.ts +537 -0
- package/dist/analyzers/types.d.ts.map +1 -0
- package/dist/analyzers/types.js +11 -0
- package/dist/analyzers/types.js.map +1 -0
- package/dist/config/config-loader.d.ts +166 -0
- package/dist/config/config-loader.d.ts.map +1 -0
- package/dist/config/config-loader.js +429 -0
- package/dist/config/config-loader.js.map +1 -0
- package/dist/config/config-validator.d.ts +204 -0
- package/dist/config/config-validator.d.ts.map +1 -0
- package/dist/config/config-validator.js +632 -0
- package/dist/config/config-validator.js.map +1 -0
- package/dist/config/defaults.d.ts +8 -0
- package/dist/config/defaults.d.ts.map +1 -0
- package/dist/config/defaults.js +26 -0
- package/dist/config/defaults.js.map +1 -0
- package/dist/config/index.d.ts +10 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +10 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/types.d.ts +47 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/types.js +7 -0
- package/dist/config/types.js.map +1 -0
- package/dist/index.d.ts +37 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +39 -0
- package/dist/index.js.map +1 -0
- package/dist/manifest/exporter.d.ts +21 -0
- package/dist/manifest/exporter.d.ts.map +1 -0
- package/dist/manifest/exporter.js +339 -0
- package/dist/manifest/exporter.js.map +1 -0
- package/dist/manifest/index.d.ts +14 -0
- package/dist/manifest/index.d.ts.map +1 -0
- package/dist/manifest/index.js +15 -0
- package/dist/manifest/index.js.map +1 -0
- package/dist/manifest/manifest-store.d.ts +111 -0
- package/dist/manifest/manifest-store.d.ts.map +1 -0
- package/dist/manifest/manifest-store.js +418 -0
- package/dist/manifest/manifest-store.js.map +1 -0
- package/dist/manifest/types.d.ts +238 -0
- package/dist/manifest/types.d.ts.map +1 -0
- package/dist/manifest/types.js +11 -0
- package/dist/manifest/types.js.map +1 -0
- package/dist/matcher/confidence-scorer.d.ts +188 -0
- package/dist/matcher/confidence-scorer.d.ts.map +1 -0
- package/dist/matcher/confidence-scorer.js +302 -0
- package/dist/matcher/confidence-scorer.js.map +1 -0
- package/dist/matcher/index.d.ts +24 -0
- package/dist/matcher/index.d.ts.map +1 -0
- package/dist/matcher/index.js +26 -0
- package/dist/matcher/index.js.map +1 -0
- package/dist/matcher/outlier-detector.d.ts +252 -0
- package/dist/matcher/outlier-detector.d.ts.map +1 -0
- package/dist/matcher/outlier-detector.js +544 -0
- package/dist/matcher/outlier-detector.js.map +1 -0
- package/dist/matcher/pattern-matcher.d.ts +169 -0
- package/dist/matcher/pattern-matcher.d.ts.map +1 -0
- package/dist/matcher/pattern-matcher.js +692 -0
- package/dist/matcher/pattern-matcher.js.map +1 -0
- package/dist/matcher/types.d.ts +476 -0
- package/dist/matcher/types.d.ts.map +1 -0
- package/dist/matcher/types.js +36 -0
- package/dist/matcher/types.js.map +1 -0
- package/dist/parsers/base-parser.d.ts +282 -0
- package/dist/parsers/base-parser.d.ts.map +1 -0
- package/dist/parsers/base-parser.js +421 -0
- package/dist/parsers/base-parser.js.map +1 -0
- package/dist/parsers/css-parser.d.ts +225 -0
- package/dist/parsers/css-parser.d.ts.map +1 -0
- package/dist/parsers/css-parser.js +477 -0
- package/dist/parsers/css-parser.js.map +1 -0
- package/dist/parsers/index.d.ts +15 -0
- package/dist/parsers/index.d.ts.map +1 -0
- package/dist/parsers/index.js +15 -0
- package/dist/parsers/index.js.map +1 -0
- package/dist/parsers/json-parser.d.ts +219 -0
- package/dist/parsers/json-parser.d.ts.map +1 -0
- package/dist/parsers/json-parser.js +602 -0
- package/dist/parsers/json-parser.js.map +1 -0
- package/dist/parsers/markdown-parser.d.ts +276 -0
- package/dist/parsers/markdown-parser.d.ts.map +1 -0
- package/dist/parsers/markdown-parser.js +731 -0
- package/dist/parsers/markdown-parser.js.map +1 -0
- package/dist/parsers/parser-manager.d.ts +294 -0
- package/dist/parsers/parser-manager.d.ts.map +1 -0
- package/dist/parsers/parser-manager.js +738 -0
- package/dist/parsers/parser-manager.js.map +1 -0
- package/dist/parsers/python-parser.d.ts +204 -0
- package/dist/parsers/python-parser.d.ts.map +1 -0
- package/dist/parsers/python-parser.js +517 -0
- package/dist/parsers/python-parser.js.map +1 -0
- package/dist/parsers/types.d.ts +43 -0
- package/dist/parsers/types.d.ts.map +1 -0
- package/dist/parsers/types.js +7 -0
- package/dist/parsers/types.js.map +1 -0
- package/dist/parsers/typescript-parser.d.ts +264 -0
- package/dist/parsers/typescript-parser.d.ts.map +1 -0
- package/dist/parsers/typescript-parser.js +658 -0
- package/dist/parsers/typescript-parser.js.map +1 -0
- package/dist/rules/evaluator.d.ts +305 -0
- package/dist/rules/evaluator.d.ts.map +1 -0
- package/dist/rules/evaluator.js +579 -0
- package/dist/rules/evaluator.js.map +1 -0
- package/dist/rules/index.d.ts +13 -0
- package/dist/rules/index.d.ts.map +1 -0
- package/dist/rules/index.js +13 -0
- package/dist/rules/index.js.map +1 -0
- package/dist/rules/quick-fix-generator.d.ts +334 -0
- package/dist/rules/quick-fix-generator.d.ts.map +1 -0
- package/dist/rules/quick-fix-generator.js +1075 -0
- package/dist/rules/quick-fix-generator.js.map +1 -0
- package/dist/rules/rule-engine.d.ts +241 -0
- package/dist/rules/rule-engine.d.ts.map +1 -0
- package/dist/rules/rule-engine.js +585 -0
- package/dist/rules/rule-engine.js.map +1 -0
- package/dist/rules/severity-manager.d.ts +394 -0
- package/dist/rules/severity-manager.d.ts.map +1 -0
- package/dist/rules/severity-manager.js +619 -0
- package/dist/rules/severity-manager.js.map +1 -0
- package/dist/rules/types.d.ts +370 -0
- package/dist/rules/types.d.ts.map +1 -0
- package/dist/rules/types.js +133 -0
- package/dist/rules/types.js.map +1 -0
- package/dist/rules/variant-manager.d.ts +388 -0
- package/dist/rules/variant-manager.d.ts.map +1 -0
- package/dist/rules/variant-manager.js +777 -0
- package/dist/rules/variant-manager.js.map +1 -0
- package/dist/scanner/change-detector.d.ts +164 -0
- package/dist/scanner/change-detector.d.ts.map +1 -0
- package/dist/scanner/change-detector.js +263 -0
- package/dist/scanner/change-detector.js.map +1 -0
- package/dist/scanner/dependency-graph.d.ts +270 -0
- package/dist/scanner/dependency-graph.d.ts.map +1 -0
- package/dist/scanner/dependency-graph.js +436 -0
- package/dist/scanner/dependency-graph.js.map +1 -0
- package/dist/scanner/file-walker.d.ts +127 -0
- package/dist/scanner/file-walker.d.ts.map +1 -0
- package/dist/scanner/file-walker.js +526 -0
- package/dist/scanner/file-walker.js.map +1 -0
- package/dist/scanner/index.d.ts +12 -0
- package/dist/scanner/index.d.ts.map +1 -0
- package/dist/scanner/index.js +12 -0
- package/dist/scanner/index.js.map +1 -0
- package/dist/scanner/types.d.ts +218 -0
- package/dist/scanner/types.d.ts.map +1 -0
- package/dist/scanner/types.js +10 -0
- package/dist/scanner/types.js.map +1 -0
- package/dist/scanner/worker-pool.d.ts +317 -0
- package/dist/scanner/worker-pool.d.ts.map +1 -0
- package/dist/scanner/worker-pool.js +571 -0
- package/dist/scanner/worker-pool.js.map +1 -0
- package/dist/store/cache-manager.d.ts +179 -0
- package/dist/store/cache-manager.d.ts.map +1 -0
- package/dist/store/cache-manager.js +391 -0
- package/dist/store/cache-manager.js.map +1 -0
- package/dist/store/history-store.d.ts +314 -0
- package/dist/store/history-store.d.ts.map +1 -0
- package/dist/store/history-store.js +707 -0
- package/dist/store/history-store.js.map +1 -0
- package/dist/store/index.d.ts +20 -0
- package/dist/store/index.d.ts.map +1 -0
- package/dist/store/index.js +26 -0
- package/dist/store/index.js.map +1 -0
- package/dist/store/lock-file-manager.d.ts +202 -0
- package/dist/store/lock-file-manager.d.ts.map +1 -0
- package/dist/store/lock-file-manager.js +475 -0
- package/dist/store/lock-file-manager.js.map +1 -0
- package/dist/store/pattern-store.d.ts +289 -0
- package/dist/store/pattern-store.d.ts.map +1 -0
- package/dist/store/pattern-store.js +936 -0
- package/dist/store/pattern-store.js.map +1 -0
- package/dist/store/schema-validator.d.ts +159 -0
- package/dist/store/schema-validator.d.ts.map +1 -0
- package/dist/store/schema-validator.js +1096 -0
- package/dist/store/schema-validator.js.map +1 -0
- package/dist/store/types.d.ts +585 -0
- package/dist/store/types.d.ts.map +1 -0
- package/dist/store/types.js +82 -0
- package/dist/store/types.js.map +1 -0
- package/dist/types/analysis.d.ts +19 -0
- package/dist/types/analysis.d.ts.map +1 -0
- package/dist/types/analysis.js +5 -0
- package/dist/types/analysis.js.map +1 -0
- package/dist/types/common.d.ts +7 -0
- package/dist/types/common.d.ts.map +1 -0
- package/dist/types/common.js +5 -0
- package/dist/types/common.js.map +1 -0
- package/dist/types/index.d.ts +12 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +10 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/patterns.d.ts +40 -0
- package/dist/types/patterns.d.ts.map +1 -0
- package/dist/types/patterns.js +7 -0
- package/dist/types/patterns.js.map +1 -0
- package/dist/types/violations.d.ts +7 -0
- package/dist/types/violations.d.ts.map +1 -0
- package/dist/types/violations.js +7 -0
- package/dist/types/violations.js.map +1 -0
- package/package.json +46 -0
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pattern Matcher - Match code against pattern definitions
|
|
3
|
+
*
|
|
4
|
+
* Provides pattern matching capabilities using AST-based, regex-based,
|
|
5
|
+
* and structural matching methods. Supports caching of match results
|
|
6
|
+
* for improved performance.
|
|
7
|
+
*
|
|
8
|
+
* @requirements 5.1 - Pattern matching with confidence scoring
|
|
9
|
+
*/
|
|
10
|
+
import type { PatternDefinition, PatternMatchResult, MatcherContext, MatcherConfig, MatchingResult } from './types.js';
|
|
11
|
+
/**
|
|
12
|
+
* Options for matching operations
|
|
13
|
+
*/
|
|
14
|
+
export interface MatchOptions {
|
|
15
|
+
/** Whether to use cached results */
|
|
16
|
+
useCache?: boolean;
|
|
17
|
+
/** Maximum matches to return */
|
|
18
|
+
maxMatches?: number;
|
|
19
|
+
/** Minimum confidence threshold */
|
|
20
|
+
minConfidence?: number;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* PatternMatcher class for matching code against pattern definitions.
|
|
24
|
+
*
|
|
25
|
+
* Supports multiple matching methods:
|
|
26
|
+
* - AST-based matching: Uses AST node types and properties
|
|
27
|
+
* - Regex-based matching: Uses regular expressions
|
|
28
|
+
* - Structural matching: Uses file paths and naming conventions
|
|
29
|
+
*
|
|
30
|
+
* @requirements 5.1 - Pattern matching with confidence scoring
|
|
31
|
+
*/
|
|
32
|
+
export declare class PatternMatcher {
|
|
33
|
+
private config;
|
|
34
|
+
private cache;
|
|
35
|
+
private cacheMaxSize;
|
|
36
|
+
private cacheTTL;
|
|
37
|
+
/**
|
|
38
|
+
* Create a new PatternMatcher instance.
|
|
39
|
+
*
|
|
40
|
+
* @param config - Matcher configuration options
|
|
41
|
+
*/
|
|
42
|
+
constructor(config?: MatcherConfig);
|
|
43
|
+
/**
|
|
44
|
+
* Match code against a single pattern definition.
|
|
45
|
+
*
|
|
46
|
+
* @param context - The matcher context containing file info and AST
|
|
47
|
+
* @param pattern - The pattern definition to match against
|
|
48
|
+
* @param options - Optional matching options
|
|
49
|
+
* @returns Array of pattern match results
|
|
50
|
+
*/
|
|
51
|
+
match(context: MatcherContext, pattern: PatternDefinition, options?: MatchOptions): PatternMatchResult[];
|
|
52
|
+
/**
|
|
53
|
+
* Match code against multiple pattern definitions.
|
|
54
|
+
*
|
|
55
|
+
* @param context - The matcher context containing file info and AST
|
|
56
|
+
* @param patterns - Array of pattern definitions to match against
|
|
57
|
+
* @param options - Optional matching options
|
|
58
|
+
* @returns Matching result with all matches and errors
|
|
59
|
+
*/
|
|
60
|
+
matchAll(context: MatcherContext, patterns: PatternDefinition[], options?: MatchOptions): MatchingResult;
|
|
61
|
+
/**
|
|
62
|
+
* Clear the match cache.
|
|
63
|
+
*/
|
|
64
|
+
clearCache(): void;
|
|
65
|
+
/**
|
|
66
|
+
* Get cache statistics.
|
|
67
|
+
*/
|
|
68
|
+
getCacheStats(): {
|
|
69
|
+
size: number;
|
|
70
|
+
maxSize: number;
|
|
71
|
+
};
|
|
72
|
+
/**
|
|
73
|
+
* Perform AST-based pattern matching.
|
|
74
|
+
*/
|
|
75
|
+
private matchAST;
|
|
76
|
+
/**
|
|
77
|
+
* Match a single AST node against an AST match config.
|
|
78
|
+
*/
|
|
79
|
+
private matchASTNode;
|
|
80
|
+
/**
|
|
81
|
+
* Match AST children against child patterns.
|
|
82
|
+
*/
|
|
83
|
+
private matchASTChildren;
|
|
84
|
+
/**
|
|
85
|
+
* Get all descendants of an AST node.
|
|
86
|
+
*/
|
|
87
|
+
private getAllDescendants;
|
|
88
|
+
/**
|
|
89
|
+
* Traverse AST depth-first.
|
|
90
|
+
*/
|
|
91
|
+
private traverseAST;
|
|
92
|
+
/**
|
|
93
|
+
* Match a property value against an expected value.
|
|
94
|
+
*/
|
|
95
|
+
private matchPropertyValue;
|
|
96
|
+
/**
|
|
97
|
+
* Perform regex-based pattern matching.
|
|
98
|
+
*/
|
|
99
|
+
private matchRegex;
|
|
100
|
+
/**
|
|
101
|
+
* Create a RegExp from regex config.
|
|
102
|
+
*/
|
|
103
|
+
private createRegex;
|
|
104
|
+
/**
|
|
105
|
+
* Extract named captures from a regex match.
|
|
106
|
+
*/
|
|
107
|
+
private extractCaptures;
|
|
108
|
+
/**
|
|
109
|
+
* Convert a string index to a location.
|
|
110
|
+
*/
|
|
111
|
+
private indexToLocation;
|
|
112
|
+
/**
|
|
113
|
+
* Perform structural pattern matching.
|
|
114
|
+
*/
|
|
115
|
+
private matchStructural;
|
|
116
|
+
/**
|
|
117
|
+
* Match a path against a glob pattern.
|
|
118
|
+
*/
|
|
119
|
+
private matchGlobPattern;
|
|
120
|
+
/**
|
|
121
|
+
* Match a filename against a naming pattern.
|
|
122
|
+
*/
|
|
123
|
+
private matchNamingPattern;
|
|
124
|
+
/**
|
|
125
|
+
* Get the directory part of a path.
|
|
126
|
+
*/
|
|
127
|
+
private getDirectory;
|
|
128
|
+
/**
|
|
129
|
+
* Get the filename without extension.
|
|
130
|
+
*/
|
|
131
|
+
private getFileName;
|
|
132
|
+
/**
|
|
133
|
+
* Get the file extension.
|
|
134
|
+
*/
|
|
135
|
+
private getExtension;
|
|
136
|
+
/**
|
|
137
|
+
* Check if a file matches the pattern's include/exclude patterns.
|
|
138
|
+
*/
|
|
139
|
+
private matchesFilePatterns;
|
|
140
|
+
/**
|
|
141
|
+
* Generate a cache key for a context and pattern.
|
|
142
|
+
*/
|
|
143
|
+
private getCacheKey;
|
|
144
|
+
/**
|
|
145
|
+
* Generate a content hash for cache validation.
|
|
146
|
+
*/
|
|
147
|
+
private getContentHash;
|
|
148
|
+
/**
|
|
149
|
+
* Get cached results if available and valid.
|
|
150
|
+
*/
|
|
151
|
+
private getCachedResults;
|
|
152
|
+
/**
|
|
153
|
+
* Cache match results.
|
|
154
|
+
*/
|
|
155
|
+
private cacheResults;
|
|
156
|
+
/**
|
|
157
|
+
* Evict the oldest cache entry.
|
|
158
|
+
*/
|
|
159
|
+
private evictOldestEntry;
|
|
160
|
+
/**
|
|
161
|
+
* Filter results based on options.
|
|
162
|
+
*/
|
|
163
|
+
private filterResults;
|
|
164
|
+
/**
|
|
165
|
+
* Convert an AST node to a Location.
|
|
166
|
+
*/
|
|
167
|
+
private nodeToLocation;
|
|
168
|
+
}
|
|
169
|
+
//# sourceMappingURL=pattern-matcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pattern-matcher.d.ts","sourceRoot":"","sources":["../../src/matcher/pattern-matcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,aAAa,EACb,cAAc,EAKf,MAAM,YAAY,CAAC;AAcpB;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,oCAAoC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gCAAgC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mCAAmC;IACnC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;GASG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,KAAK,CAA0B;IACvC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAS;IAEzB;;;;OAIG;gBACS,MAAM,GAAE,aAAkB;IAOtC;;;;;;;OAOG;IACH,KAAK,CACH,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,iBAAiB,EAC1B,OAAO,GAAE,YAAiB,GACzB,kBAAkB,EAAE;IAiEvB;;;;;;;OAOG;IACH,QAAQ,CACN,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,iBAAiB,EAAE,EAC7B,OAAO,GAAE,YAAiB,GACzB,cAAc;IA4BjB;;OAEG;IACH,UAAU,IAAI,IAAI;IAIlB;;OAEG;IACH,aAAa,IAAI;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE;IAWlD;;OAEG;IACH,OAAO,CAAC,QAAQ;IAgDhB;;OAEG;IACH,OAAO,CAAC,YAAY;IAgDpB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA+BxB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAYzB;;OAEG;IACH,OAAO,CAAC,WAAW;IAWnB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAkB1B;;OAEG;IACH,OAAO,CAAC,UAAU;IAoDlB;;OAEG;IACH,OAAO,CAAC,WAAW;IAenB;;OAEG;IACH,OAAO,CAAC,eAAe;IAoBvB;;OAEG;IACH,OAAO,CAAC,eAAe;IAiCvB;;OAEG;IACH,OAAO,CAAC,eAAe;IAiFvB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAaxB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAwB1B;;OAEG;IACH,OAAO,CAAC,YAAY;IAKpB;;OAEG;IACH,OAAO,CAAC,WAAW;IAOnB;;OAEG;IACH,OAAO,CAAC,YAAY;IASpB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA2B3B;;OAEG;IACH,OAAO,CAAC,WAAW;IAInB;;OAEG;IACH,OAAO,CAAC,cAAc;IAWtB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA2BxB;;OAEG;IACH,OAAO,CAAC,YAAY;IAkBpB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAoBxB;;OAEG;IACH,OAAO,CAAC,aAAa;IAyBrB;;OAEG;IACH,OAAO,CAAC,cAAc;CASvB"}
|