@wispbit/local 1.0.25
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/build.d.ts +3 -0
- package/dist/build.d.ts.map +1 -0
- package/dist/cli.js +3668 -0
- package/dist/cli.js.map +7 -0
- package/dist/index.js +3868 -0
- package/dist/index.js.map +7 -0
- package/dist/package.json +72 -0
- package/dist/src/cli.d.ts +16 -0
- package/dist/src/cli.d.ts.map +1 -0
- package/dist/src/config.d.ts +6 -0
- package/dist/src/config.d.ts.map +1 -0
- package/dist/src/environment/Config.d.ts +69 -0
- package/dist/src/environment/Config.d.ts.map +1 -0
- package/dist/src/environment/Environment.d.ts +23 -0
- package/dist/src/environment/Environment.d.ts.map +1 -0
- package/dist/src/environment/Sandbox.d.ts +48 -0
- package/dist/src/environment/Sandbox.d.ts.map +1 -0
- package/dist/src/environment/Storage.d.ts +84 -0
- package/dist/src/environment/Storage.d.ts.map +1 -0
- package/dist/src/index.d.ts +16 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/languages.d.ts +36 -0
- package/dist/src/languages.d.ts.map +1 -0
- package/dist/src/providers/AstGrepAstProvider.d.ts +44 -0
- package/dist/src/providers/AstGrepAstProvider.d.ts.map +1 -0
- package/dist/src/providers/LanguageBackend.d.ts +74 -0
- package/dist/src/providers/LanguageBackend.d.ts.map +1 -0
- package/dist/src/providers/RuleProvider.d.ts +46 -0
- package/dist/src/providers/RuleProvider.d.ts.map +1 -0
- package/dist/src/providers/ScipIntelligenceProvider.d.ts +84 -0
- package/dist/src/providers/ScipIntelligenceProvider.d.ts.map +1 -0
- package/dist/src/providers/ViolationValidationProvider.d.ts +42 -0
- package/dist/src/providers/ViolationValidationProvider.d.ts.map +1 -0
- package/dist/src/providers/WispbitRuleProvider.d.ts +45 -0
- package/dist/src/providers/WispbitRuleProvider.d.ts.map +1 -0
- package/dist/src/providers/WispbitViolationValidationProvider.d.ts +15 -0
- package/dist/src/providers/WispbitViolationValidationProvider.d.ts.map +1 -0
- package/dist/src/schemas.d.ts +1771 -0
- package/dist/src/schemas.d.ts.map +1 -0
- package/dist/src/steps/ExecutionEventEmitter.d.ts +156 -0
- package/dist/src/steps/ExecutionEventEmitter.d.ts.map +1 -0
- package/dist/src/steps/FileExecutionContext.d.ts +85 -0
- package/dist/src/steps/FileExecutionContext.d.ts.map +1 -0
- package/dist/src/steps/FileFilterStep.d.ts +35 -0
- package/dist/src/steps/FileFilterStep.d.ts.map +1 -0
- package/dist/src/steps/FileFilterStep.test.d.ts +2 -0
- package/dist/src/steps/FileFilterStep.test.d.ts.map +1 -0
- package/dist/src/steps/FindMatchesStep.d.ts +41 -0
- package/dist/src/steps/FindMatchesStep.d.ts.map +1 -0
- package/dist/src/steps/FindMatchesStep.test.d.ts +2 -0
- package/dist/src/steps/FindMatchesStep.test.d.ts.map +1 -0
- package/dist/src/steps/GotoDefinitionStep.d.ts +86 -0
- package/dist/src/steps/GotoDefinitionStep.d.ts.map +1 -0
- package/dist/src/steps/LLMStep.d.ts +50 -0
- package/dist/src/steps/LLMStep.d.ts.map +1 -0
- package/dist/src/steps/RuleExecutor.d.ts +35 -0
- package/dist/src/steps/RuleExecutor.d.ts.map +1 -0
- package/dist/src/steps/RuleExecutor.test.d.ts +2 -0
- package/dist/src/steps/RuleExecutor.test.d.ts.map +1 -0
- package/dist/src/test/TestExecutor.d.ts +33 -0
- package/dist/src/test/TestExecutor.d.ts.map +1 -0
- package/dist/src/test/rules.test.d.ts +2 -0
- package/dist/src/test/rules.test.d.ts.map +1 -0
- package/dist/src/types.d.ts +200 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/utils/asciiFrames.d.ts +5 -0
- package/dist/src/utils/asciiFrames.d.ts.map +1 -0
- package/dist/src/utils/formatters.d.ts +55 -0
- package/dist/src/utils/formatters.d.ts.map +1 -0
- package/dist/src/utils/generateTreeDump.d.ts +19 -0
- package/dist/src/utils/generateTreeDump.d.ts.map +1 -0
- package/dist/src/utils/git.d.ts +39 -0
- package/dist/src/utils/git.d.ts.map +1 -0
- package/dist/src/utils/hashString.d.ts +2 -0
- package/dist/src/utils/hashString.d.ts.map +1 -0
- package/dist/src/utils/readTextAtRange.d.ts +10 -0
- package/dist/src/utils/readTextAtRange.d.ts.map +1 -0
- package/dist/src/utils/snapshotComparison.d.ts +16 -0
- package/dist/src/utils/snapshotComparison.d.ts.map +1 -0
- package/dist/src/utils/startupScreen.d.ts +5 -0
- package/dist/src/utils/startupScreen.d.ts.map +1 -0
- package/dist/src/utils/validateRule.d.ts +16 -0
- package/dist/src/utils/validateRule.d.ts.map +1 -0
- package/dist/src/version.d.ts +3 -0
- package/dist/src/version.d.ts.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/vitest.config.d.mts +3 -0
- package/dist/vitest.config.d.mts.map +1 -0
- package/package.json +90 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/schemas.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import { EventEmitter } from "events";
|
|
2
|
+
import { Language } from "powerlint/languages";
|
|
3
|
+
import { Match } from "powerlint/types";
|
|
4
|
+
export interface ExecutionEvents {
|
|
5
|
+
"execution:mode": {
|
|
6
|
+
mode: "check" | "diff";
|
|
7
|
+
filePath?: string;
|
|
8
|
+
baseCommit?: string;
|
|
9
|
+
headCommit?: string;
|
|
10
|
+
};
|
|
11
|
+
"rules:start": {
|
|
12
|
+
totalRules: number;
|
|
13
|
+
};
|
|
14
|
+
"rules:progress": {
|
|
15
|
+
currentRule: number;
|
|
16
|
+
totalRules: number;
|
|
17
|
+
ruleId: string;
|
|
18
|
+
percentage: number;
|
|
19
|
+
isLlm: boolean;
|
|
20
|
+
};
|
|
21
|
+
"rules:complete": {
|
|
22
|
+
totalRules: number;
|
|
23
|
+
totalMatches: number;
|
|
24
|
+
executionTime: number;
|
|
25
|
+
};
|
|
26
|
+
"step:start": {
|
|
27
|
+
ruleId: string;
|
|
28
|
+
stepName: string;
|
|
29
|
+
stepType: string;
|
|
30
|
+
inputs: {
|
|
31
|
+
filePaths: string[];
|
|
32
|
+
matches: Match[];
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
"step:complete": {
|
|
36
|
+
ruleId: string;
|
|
37
|
+
stepName: string;
|
|
38
|
+
stepType: string;
|
|
39
|
+
outputs: {
|
|
40
|
+
filePaths?: string[];
|
|
41
|
+
matches?: Match[];
|
|
42
|
+
};
|
|
43
|
+
executionTime: number;
|
|
44
|
+
};
|
|
45
|
+
"test:start": {
|
|
46
|
+
ruleId: string;
|
|
47
|
+
testName: string;
|
|
48
|
+
};
|
|
49
|
+
"test:matches": {
|
|
50
|
+
ruleId: string;
|
|
51
|
+
testName: string;
|
|
52
|
+
matches: Match[];
|
|
53
|
+
};
|
|
54
|
+
"files:discovery:start": {
|
|
55
|
+
mode: "check" | "diff";
|
|
56
|
+
};
|
|
57
|
+
"files:discovery:progress": {
|
|
58
|
+
message: string;
|
|
59
|
+
currentCount?: number;
|
|
60
|
+
};
|
|
61
|
+
"files:discovery:complete": {
|
|
62
|
+
totalFiles: number;
|
|
63
|
+
mode: "check" | "diff";
|
|
64
|
+
executionTime: number;
|
|
65
|
+
};
|
|
66
|
+
"files:filter": {
|
|
67
|
+
originalCount: number;
|
|
68
|
+
filteredCount: number;
|
|
69
|
+
filterType: string;
|
|
70
|
+
};
|
|
71
|
+
"indexing:start": {
|
|
72
|
+
language: Language;
|
|
73
|
+
};
|
|
74
|
+
"indexing:progress": {
|
|
75
|
+
language: Language;
|
|
76
|
+
message: string;
|
|
77
|
+
packageName?: string;
|
|
78
|
+
timeMs?: number;
|
|
79
|
+
};
|
|
80
|
+
"indexing:complete": {
|
|
81
|
+
language: Language;
|
|
82
|
+
executionTime: number;
|
|
83
|
+
};
|
|
84
|
+
"scip:match-lookup:start": {
|
|
85
|
+
language: Language;
|
|
86
|
+
match: Match;
|
|
87
|
+
};
|
|
88
|
+
"scip:match-lookup:progress": {
|
|
89
|
+
language: Language;
|
|
90
|
+
document: any;
|
|
91
|
+
};
|
|
92
|
+
"scip:match-lookup:complete": {
|
|
93
|
+
language: Language;
|
|
94
|
+
document?: any;
|
|
95
|
+
};
|
|
96
|
+
"llm:validation:start": {
|
|
97
|
+
ruleId: string;
|
|
98
|
+
matchCount: number;
|
|
99
|
+
estimatedCost?: string;
|
|
100
|
+
};
|
|
101
|
+
"llm:validation:progress": {
|
|
102
|
+
ruleId: string;
|
|
103
|
+
tokenCount: number;
|
|
104
|
+
elapsedTime: number;
|
|
105
|
+
streamedText?: string;
|
|
106
|
+
};
|
|
107
|
+
"llm:validation:complete": {
|
|
108
|
+
ruleId: string;
|
|
109
|
+
tokenCount: number;
|
|
110
|
+
executionTime: number;
|
|
111
|
+
violationCount: number;
|
|
112
|
+
fromCache: boolean;
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
export declare class ExecutionEventEmitter extends EventEmitter {
|
|
116
|
+
private rulesStartTime;
|
|
117
|
+
private indexingStartTimes;
|
|
118
|
+
private fileDiscoveryStartTime;
|
|
119
|
+
constructor();
|
|
120
|
+
emit<K extends keyof ExecutionEvents>(event: K, data: ExecutionEvents[K]): boolean;
|
|
121
|
+
on<K extends keyof ExecutionEvents>(event: K, listener: (data: ExecutionEvents[K]) => void): this;
|
|
122
|
+
once<K extends keyof ExecutionEvents>(event: K, listener: (data: ExecutionEvents[K]) => void): this;
|
|
123
|
+
off<K extends keyof ExecutionEvents>(event: K, listener: (data: ExecutionEvents[K]) => void): this;
|
|
124
|
+
setExecutionMode(mode: "check" | "diff", options?: {
|
|
125
|
+
filePath?: string;
|
|
126
|
+
baseCommit?: string;
|
|
127
|
+
headCommit?: string;
|
|
128
|
+
}): void;
|
|
129
|
+
startRules(totalRules: number): void;
|
|
130
|
+
progressRule(currentRule: number, totalRules: number, ruleId: string, isLlm: boolean): void;
|
|
131
|
+
completeRules(totalRules: number, totalMatches: number): void;
|
|
132
|
+
startFileDiscovery(mode: "check" | "diff"): void;
|
|
133
|
+
fileDiscoveryProgress(message: string, currentCount?: number): void;
|
|
134
|
+
completeFileDiscovery(totalFiles: number, mode: "check" | "diff"): void;
|
|
135
|
+
fileFilter(originalCount: number, filteredCount: number, filterType: string): void;
|
|
136
|
+
startScipMatchLookup(language: Language, match: Match): void;
|
|
137
|
+
scipMatchLookupProgress(language: Language, document: unknown): void;
|
|
138
|
+
scipMatchLookupComplete(language: Language, document?: unknown): void;
|
|
139
|
+
startIndexing(language: Language): void;
|
|
140
|
+
indexingProgress(language: Language, message: string, packageName?: string, timeMs?: number): void;
|
|
141
|
+
completeIndexing(language: Language): void;
|
|
142
|
+
startStep(ruleId: string, stepName: string, stepType: string, inputs: {
|
|
143
|
+
filePaths: string[];
|
|
144
|
+
matches: Match[];
|
|
145
|
+
}): void;
|
|
146
|
+
completeStep(ruleId: string, stepName: string, stepType: string, outputs: {
|
|
147
|
+
filePaths?: string[];
|
|
148
|
+
matches?: Match[];
|
|
149
|
+
}, executionTime?: number): void;
|
|
150
|
+
startTest(ruleId: string, testName: string): void;
|
|
151
|
+
testMatches(ruleId: string, testName: string, matches: Match[]): void;
|
|
152
|
+
startLLMValidation(ruleId: string, matchCount: number, estimatedCost?: string): void;
|
|
153
|
+
llmValidationProgress(ruleId: string, tokenCount: number, elapsedTime: number, streamedText?: string): void;
|
|
154
|
+
completeLLMValidation(ruleId: string, tokenCount: number, executionTime: number, violationCount: number, fromCache: boolean): void;
|
|
155
|
+
}
|
|
156
|
+
//# sourceMappingURL=ExecutionEventEmitter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExecutionEventEmitter.d.ts","sourceRoot":"","sources":["../../../src/steps/ExecutionEventEmitter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { Config } from "powerlint/environment/Config";
|
|
2
|
+
import type { Environment } from "powerlint/environment/Environment";
|
|
3
|
+
import { ExecutionEventEmitter } from "powerlint/steps/ExecutionEventEmitter";
|
|
4
|
+
import { Match } from "powerlint/types";
|
|
5
|
+
export type ExecutionMode = "check" | "diff";
|
|
6
|
+
export declare class FileExecutionContext {
|
|
7
|
+
private environment;
|
|
8
|
+
private _filePaths;
|
|
9
|
+
private mode;
|
|
10
|
+
private eventEmitter;
|
|
11
|
+
private config;
|
|
12
|
+
private diffMode?;
|
|
13
|
+
private constructor();
|
|
14
|
+
/**
|
|
15
|
+
* Create and initialize an ExecutionContext
|
|
16
|
+
*/
|
|
17
|
+
static initialize(config: Config, environment: Environment, mode: ExecutionMode, eventEmitter?: ExecutionEventEmitter, filePath?: string, baseSha?: string): Promise<FileExecutionContext>;
|
|
18
|
+
get filePaths(): string[];
|
|
19
|
+
/**
|
|
20
|
+
* Filter files based on execution mode and return filtered files
|
|
21
|
+
*/
|
|
22
|
+
filterFiles(filePaths: string[]): string[];
|
|
23
|
+
/**
|
|
24
|
+
* Filter matches based on execution mode and return filtered matches
|
|
25
|
+
*/
|
|
26
|
+
filterMatches(matches: Match[]): Match[];
|
|
27
|
+
/**
|
|
28
|
+
* Filter matches to only include those from the given file paths
|
|
29
|
+
*/
|
|
30
|
+
filterMatchesByFilePaths(matches: Match[], filePaths: string[]): Match[];
|
|
31
|
+
get executionMode(): ExecutionMode;
|
|
32
|
+
/**
|
|
33
|
+
* Discover files based on the execution mode
|
|
34
|
+
* In 'scan' mode: discovers all files in workspace
|
|
35
|
+
* In 'diff' mode: gets changed files from git and returns only those
|
|
36
|
+
*
|
|
37
|
+
* The filePath parameter can be:
|
|
38
|
+
* - A specific filename (e.g., "src/file.ts")
|
|
39
|
+
* - A directory path (e.g., "src/components/")
|
|
40
|
+
* - A glob pattern (e.g., ".ts")
|
|
41
|
+
*/
|
|
42
|
+
private discoverFiles;
|
|
43
|
+
/**
|
|
44
|
+
* Discover files from a given path which can be a file, directory, or glob pattern
|
|
45
|
+
*/
|
|
46
|
+
private discoverFilesFromPath;
|
|
47
|
+
/**
|
|
48
|
+
* Check if a path contains glob pattern characters
|
|
49
|
+
*/
|
|
50
|
+
private isGlobPattern;
|
|
51
|
+
/**
|
|
52
|
+
* Discover files matching a glob pattern
|
|
53
|
+
*/
|
|
54
|
+
private discoverFilesFromGlob;
|
|
55
|
+
/**
|
|
56
|
+
* Discover all files in a directory
|
|
57
|
+
*/
|
|
58
|
+
private discoverFilesFromDirectory;
|
|
59
|
+
/**
|
|
60
|
+
* Discover all files from directories using glob patterns (scan mode)
|
|
61
|
+
*/
|
|
62
|
+
private discoverAllFiles;
|
|
63
|
+
/**
|
|
64
|
+
* Pattern matching function that uses consistent options
|
|
65
|
+
*/
|
|
66
|
+
private matchesPattern;
|
|
67
|
+
/**
|
|
68
|
+
* Check if a file should be processed
|
|
69
|
+
*/
|
|
70
|
+
private isFileValid;
|
|
71
|
+
/**
|
|
72
|
+
* Check if a specific line range should be processed
|
|
73
|
+
*/
|
|
74
|
+
private isLineRangeValid;
|
|
75
|
+
/**
|
|
76
|
+
* Check if a match should be processed
|
|
77
|
+
*/
|
|
78
|
+
private isMatchValid;
|
|
79
|
+
/**
|
|
80
|
+
* Parse a git patch to determine if a line range intersects with changed lines
|
|
81
|
+
* Adapted from patchParser.ts logic
|
|
82
|
+
*/
|
|
83
|
+
private isLineRangeInPatch;
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=FileExecutionContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FileExecutionContext.d.ts","sourceRoot":"","sources":["../../../src/steps/FileExecutionContext.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAA;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAA;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAA;AAC7E,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAGvC,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,MAAM,CAAA;AAE5C,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,UAAU,CAAe;IACjC,OAAO,CAAC,IAAI,CAAe;IAC3B,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,QAAQ,CAAC,CAIhB;IAED,OAAO;IAYP;;OAEG;WACU,UAAU,CACrB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,aAAa,EACnB,YAAY,CAAC,EAAE,qBAAqB,EACpC,QAAQ,CAAC,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,oBAAoB,CAAC;IAYhC,IAAI,SAAS,IAAI,MAAM,EAAE,CAExB;IAED;;OAEG;IACH,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;IAoB1C;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE;IAiBxC;;OAEG;IACH,wBAAwB,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE;IASxE,IAAI,aAAa,IAAI,aAAa,CAEjC;IAID;;;;;;;;;OASG;YACW,aAAa;IAwE3B;;OAEG;YACW,qBAAqB;IA4CnC;;OAEG;IACH,OAAO,CAAC,aAAa;IAIrB;;OAEG;YACW,qBAAqB;IAoBnC;;OAEG;YACW,0BAA0B;IAuBxC;;OAEG;YACW,gBAAgB;IA2C9B;;OAEG;IACH,OAAO,CAAC,cAAc;IAItB;;OAEG;IACH,OAAO,CAAC,WAAW;IAmBnB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAmCxB;;OAEG;IACH,OAAO,CAAC,YAAY;IAsBpB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;CA0C3B"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { Environment } from "powerlint/environment/Environment";
|
|
2
|
+
import { FileFilterConditions } from "powerlint/types";
|
|
3
|
+
export interface FileFilterResult {
|
|
4
|
+
filteredPaths: string[];
|
|
5
|
+
executionTime: number;
|
|
6
|
+
}
|
|
7
|
+
export interface FileFilterOptions {
|
|
8
|
+
include?: string[];
|
|
9
|
+
ignore?: string[];
|
|
10
|
+
conditions?: FileFilterConditions;
|
|
11
|
+
}
|
|
12
|
+
export declare class FileFilterStep {
|
|
13
|
+
private environment;
|
|
14
|
+
constructor(environment: Environment);
|
|
15
|
+
/**
|
|
16
|
+
* Centralized pattern matching function that uses consistent options
|
|
17
|
+
* @param path - The path to test
|
|
18
|
+
* @param pattern - The glob pattern to match against
|
|
19
|
+
* @returns true if the path matches the pattern
|
|
20
|
+
*/
|
|
21
|
+
private matchesPattern;
|
|
22
|
+
/**
|
|
23
|
+
* Evaluate a single file filter condition for a given file path
|
|
24
|
+
*/
|
|
25
|
+
private evaluateCondition;
|
|
26
|
+
/**
|
|
27
|
+
* Evaluate file filter conditions for a given file path
|
|
28
|
+
*/
|
|
29
|
+
private evaluateConditions;
|
|
30
|
+
/**
|
|
31
|
+
* Execute file filter on file paths
|
|
32
|
+
*/
|
|
33
|
+
execute(filePaths: string[], options: FileFilterOptions): Promise<FileFilterResult>;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=FileFilterStep.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FileFilterStep.d.ts","sourceRoot":"","sources":["../../../src/steps/FileFilterStep.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAA;AACpE,OAAO,EAAuB,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAE3E,MAAM,WAAW,gBAAgB;IAC/B,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,UAAU,CAAC,EAAE,oBAAoB,CAAA;CAClC;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,WAAW,CAAa;gBAEpB,WAAW,EAAE,WAAW;IAIpC;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAItB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAkDzB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAsB1B;;OAEG;IACG,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAoC1F"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FileFilterStep.test.d.ts","sourceRoot":"","sources":["../../../src/steps/FileFilterStep.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { Environment } from "powerlint/environment/Environment";
|
|
2
|
+
import type { Language } from "powerlint/languages";
|
|
3
|
+
import { ExecutionEventEmitter } from "powerlint/steps/ExecutionEventEmitter";
|
|
4
|
+
import { Match } from "powerlint/types";
|
|
5
|
+
export interface FindMatchesResult {
|
|
6
|
+
matches: Match[];
|
|
7
|
+
totalMatches: number;
|
|
8
|
+
executionTime: number;
|
|
9
|
+
}
|
|
10
|
+
export declare class FindMatchesStep {
|
|
11
|
+
private environment;
|
|
12
|
+
private eventEmitter?;
|
|
13
|
+
constructor(environment: Environment, eventEmitter?: ExecutionEventEmitter);
|
|
14
|
+
/**
|
|
15
|
+
* Execute pattern matching on files
|
|
16
|
+
* @param schema - The matching schema (rule, constraints, etc.) - provider-specific
|
|
17
|
+
* @param language - The language to use for pattern matching
|
|
18
|
+
* @param context - Context containing filePaths and optional previousMatches to filter against
|
|
19
|
+
*/
|
|
20
|
+
execute(schema: Record<string, any>, language: Language, context: {
|
|
21
|
+
filePaths: string[];
|
|
22
|
+
previousMatches?: Match[];
|
|
23
|
+
}): Promise<FindMatchesResult>;
|
|
24
|
+
/**
|
|
25
|
+
* Filter matches to only include those within the ranges of previous matches
|
|
26
|
+
* A match is included if it falls within any of the previous match ranges
|
|
27
|
+
* The source is propagated from the previous match
|
|
28
|
+
*/
|
|
29
|
+
private filterMatchesByRanges;
|
|
30
|
+
/**
|
|
31
|
+
* Check if a match falls within the range of another match
|
|
32
|
+
* Both matches must be in the same file
|
|
33
|
+
*/
|
|
34
|
+
private isMatchInRange;
|
|
35
|
+
/**
|
|
36
|
+
* Remove duplicate matches by keeping only the largest overlapping match.
|
|
37
|
+
* If multiple matches overlap (one is contained within another), keep only the largest one.
|
|
38
|
+
*/
|
|
39
|
+
private deduplicateMatches;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=FindMatchesStep.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FindMatchesStep.d.ts","sourceRoot":"","sources":["../../../src/steps/FindMatchesStep.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAA;AACpE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAGnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAA;AAC7E,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAEvC,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,KAAK,EAAE,CAAA;IAChB,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,YAAY,CAAC,CAAuB;gBAEhC,WAAW,EAAE,WAAW,EAAE,YAAY,CAAC,EAAE,qBAAqB;IAK1E;;;;;OAKG;IACG,OAAO,CACX,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3B,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE;QAAE,SAAS,EAAE,MAAM,EAAE,CAAC;QAAC,eAAe,CAAC,EAAE,KAAK,EAAE,CAAA;KAAE,GAC1D,OAAO,CAAC,iBAAiB,CAAC;IA8C7B;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IAsC7B;;;OAGG;IACH,OAAO,CAAC,cAAc;IAwBtB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;CAuB3B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FindMatchesStep.test.d.ts","sourceRoot":"","sources":["../../../src/steps/FindMatchesStep.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import type { Environment } from "powerlint/environment/Environment";
|
|
2
|
+
import type { Language } from "powerlint/languages";
|
|
3
|
+
import { ExecutionEventEmitter } from "powerlint/steps/ExecutionEventEmitter";
|
|
4
|
+
import { Match } from "powerlint/types";
|
|
5
|
+
/** Exact or regex name matching */
|
|
6
|
+
interface NameSpec {
|
|
7
|
+
equals?: string;
|
|
8
|
+
anyOf?: string[];
|
|
9
|
+
regex?: string;
|
|
10
|
+
}
|
|
11
|
+
/** File matcher (path OR glob OR regex) */
|
|
12
|
+
interface FileMatch {
|
|
13
|
+
path?: string;
|
|
14
|
+
glob?: string;
|
|
15
|
+
regex?: string;
|
|
16
|
+
}
|
|
17
|
+
/** Method filter */
|
|
18
|
+
interface MethodSelector {
|
|
19
|
+
file?: FileMatch;
|
|
20
|
+
name: NameSpec;
|
|
21
|
+
}
|
|
22
|
+
/** Class filter */
|
|
23
|
+
interface ClassSelector {
|
|
24
|
+
file?: FileMatch;
|
|
25
|
+
name: NameSpec;
|
|
26
|
+
method?: MethodSelector;
|
|
27
|
+
}
|
|
28
|
+
/** Top-level function filter */
|
|
29
|
+
interface FunctionSelector {
|
|
30
|
+
file?: FileMatch;
|
|
31
|
+
name: NameSpec;
|
|
32
|
+
}
|
|
33
|
+
/** Definition-side predicates (post-hop) */
|
|
34
|
+
interface DefinitionPredicate {
|
|
35
|
+
file?: FileMatch;
|
|
36
|
+
class?: ClassSelector;
|
|
37
|
+
method?: MethodSelector;
|
|
38
|
+
function?: FunctionSelector;
|
|
39
|
+
}
|
|
40
|
+
/** Boolean combinators for definition filters */
|
|
41
|
+
interface DefinitionFilter extends Partial<DefinitionPredicate> {
|
|
42
|
+
all?: DefinitionFilter[];
|
|
43
|
+
any?: DefinitionFilter[];
|
|
44
|
+
not?: DefinitionFilter;
|
|
45
|
+
}
|
|
46
|
+
export interface GotoDefinitionResult {
|
|
47
|
+
definitions: Match[];
|
|
48
|
+
totalDefinitions: number;
|
|
49
|
+
executionTime: number;
|
|
50
|
+
}
|
|
51
|
+
export interface GotoDefinitionOptions {
|
|
52
|
+
/** Filter for which definitions to include (default: all non-external) */
|
|
53
|
+
where?: DefinitionFilter;
|
|
54
|
+
}
|
|
55
|
+
export declare class GotoDefinitionStep {
|
|
56
|
+
private readonly maxDepth;
|
|
57
|
+
private environment;
|
|
58
|
+
private eventEmitter?;
|
|
59
|
+
constructor(environment: Environment, eventEmitter?: ExecutionEventEmitter);
|
|
60
|
+
/**
|
|
61
|
+
* Execute goto-definition on matches
|
|
62
|
+
*/
|
|
63
|
+
execute(matches: Match[], language: Language, options?: GotoDefinitionOptions): Promise<GotoDefinitionResult>;
|
|
64
|
+
/**
|
|
65
|
+
* Follow definitions up to maxDepth
|
|
66
|
+
*/
|
|
67
|
+
private followDefinitions;
|
|
68
|
+
/**
|
|
69
|
+
* Recursively follow definitions
|
|
70
|
+
*/
|
|
71
|
+
private followDefinitionsRecursive;
|
|
72
|
+
/**
|
|
73
|
+
* Check if a definition matches a filter
|
|
74
|
+
*/
|
|
75
|
+
private matchesDefinitionFilter;
|
|
76
|
+
/**
|
|
77
|
+
* Check if a name matches a name specification
|
|
78
|
+
*/
|
|
79
|
+
private matchesNameSpec;
|
|
80
|
+
/**
|
|
81
|
+
* Check if a file path matches a file specification
|
|
82
|
+
*/
|
|
83
|
+
private matchesFileSpec;
|
|
84
|
+
}
|
|
85
|
+
export {};
|
|
86
|
+
//# sourceMappingURL=GotoDefinitionStep.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GotoDefinitionStep.d.ts","sourceRoot":"","sources":["../../../src/steps/GotoDefinitionStep.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAA;AACpE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAEnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAA;AAC7E,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAEvC,mCAAmC;AACnC,UAAU,QAAQ;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,2CAA2C;AAC3C,UAAU,SAAS;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,oBAAoB;AACpB,UAAU,cAAc;IACtB,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,IAAI,EAAE,QAAQ,CAAA;CACf;AAED,mBAAmB;AACnB,UAAU,aAAa;IACrB,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,IAAI,EAAE,QAAQ,CAAA;IACd,MAAM,CAAC,EAAE,cAAc,CAAA;CACxB;AAED,gCAAgC;AAChC,UAAU,gBAAgB;IACxB,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,IAAI,EAAE,QAAQ,CAAA;CACf;AAED,4CAA4C;AAC5C,UAAU,mBAAmB;IAC3B,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,KAAK,CAAC,EAAE,aAAa,CAAA;IACrB,MAAM,CAAC,EAAE,cAAc,CAAA;IACvB,QAAQ,CAAC,EAAE,gBAAgB,CAAA;CAC5B;AAED,iDAAiD;AACjD,UAAU,gBAAiB,SAAQ,OAAO,CAAC,mBAAmB,CAAC;IAC7D,GAAG,CAAC,EAAE,gBAAgB,EAAE,CAAA;IACxB,GAAG,CAAC,EAAE,gBAAgB,EAAE,CAAA;IACxB,GAAG,CAAC,EAAE,gBAAgB,CAAA;CACvB;AAQD,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,KAAK,EAAE,CAAA;IACpB,gBAAgB,EAAE,MAAM,CAAA;IACxB,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,qBAAqB;IACpC,0EAA0E;IAC1E,KAAK,CAAC,EAAE,gBAAgB,CAAA;CACzB;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAY;IACrC,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,YAAY,CAAC,CAAuB;gBAEhC,WAAW,EAAE,WAAW,EAAE,YAAY,CAAC,EAAE,qBAAqB;IAK1E;;OAEG;IACG,OAAO,CACX,OAAO,EAAE,KAAK,EAAE,EAChB,QAAQ,EAAE,QAAQ,EAClB,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,oBAAoB,CAAC;IAgDhC;;OAEG;YACW,iBAAiB;IA2B/B;;OAEG;YACW,0BAA0B;IA6DxC;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAyC/B;;OAEG;IACH,OAAO,CAAC,eAAe;IAcvB;;OAEG;IACH,OAAO,CAAC,eAAe;CAexB"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { Config } from "powerlint/environment/Config";
|
|
2
|
+
import type { Environment } from "powerlint/environment/Environment";
|
|
3
|
+
import { ExecutionEventEmitter } from "powerlint/steps/ExecutionEventEmitter";
|
|
4
|
+
import type { Match } from "powerlint/types";
|
|
5
|
+
import { Rule } from "powerlint/types";
|
|
6
|
+
export interface LLMStepResult {
|
|
7
|
+
matches: Match[];
|
|
8
|
+
executionTime: number;
|
|
9
|
+
}
|
|
10
|
+
export type LLMStepExecutionResult = LLMStepResult;
|
|
11
|
+
export interface LLMMatchDecision {
|
|
12
|
+
matchId: string;
|
|
13
|
+
isViolation: boolean;
|
|
14
|
+
confidence: number;
|
|
15
|
+
reason: string;
|
|
16
|
+
}
|
|
17
|
+
export declare class LLMStep {
|
|
18
|
+
private environment;
|
|
19
|
+
private eventEmitter;
|
|
20
|
+
private config;
|
|
21
|
+
private storage;
|
|
22
|
+
constructor(config: Config, environment: Environment, eventEmitter?: ExecutionEventEmitter);
|
|
23
|
+
/**
|
|
24
|
+
* Generate a unique ID for a single match
|
|
25
|
+
* Hash is based on filePath + range + text
|
|
26
|
+
*/
|
|
27
|
+
private generateMatchId;
|
|
28
|
+
/**
|
|
29
|
+
* Generate a hash for a prompt string
|
|
30
|
+
*/
|
|
31
|
+
private hashPrompt;
|
|
32
|
+
/**
|
|
33
|
+
* Generate a cache key for a single match LLM validation
|
|
34
|
+
*/
|
|
35
|
+
private generateMatchCacheKey;
|
|
36
|
+
/**
|
|
37
|
+
* Execute the actual LLM validation for uncached matches
|
|
38
|
+
* @param config - LLM step configuration (contains provider and model)
|
|
39
|
+
* @param uncachedMatches - Matches that need LLM evaluation
|
|
40
|
+
* @param promptContent - The loaded prompt content
|
|
41
|
+
*/
|
|
42
|
+
private executeLLMValidation;
|
|
43
|
+
/**
|
|
44
|
+
* Execute the LLM step - always runs LLM validation immediately
|
|
45
|
+
* @param config - LLM step configuration
|
|
46
|
+
* @param previousMatches - Matches from previous steps to be judged by LLM
|
|
47
|
+
*/
|
|
48
|
+
execute(rule: Rule, previousMatches: Match[]): Promise<LLMStepExecutionResult>;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=LLMStep.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LLMStep.d.ts","sourceRoot":"","sources":["../../../src/steps/LLMStep.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAA;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAA;AAIpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAA;AAC7E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAGtC,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,KAAK,EAAE,CAAA;IAChB,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,MAAM,sBAAsB,GAAG,aAAa,CAAA;AAElD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,OAAO,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,MAAM,CAAA;CACf;AAED,qBAAa,OAAO;IAClB,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,OAAO,CAAS;gBACZ,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,CAAC,EAAE,qBAAqB;IAO1F;;;OAGG;IACH,OAAO,CAAC,eAAe;IAYvB;;OAEG;IACH,OAAO,CAAC,UAAU;IAIlB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAI7B;;;;;OAKG;YACW,oBAAoB;IAkElC;;;;OAIG;IACG,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,sBAAsB,CAAC;CAkErF"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Config } from "powerlint/environment/Config";
|
|
2
|
+
import { Environment } from "powerlint/environment/Environment";
|
|
3
|
+
import { ExecutionEventEmitter } from "powerlint/steps/ExecutionEventEmitter";
|
|
4
|
+
import { ExecutionMode } from "powerlint/steps/FileExecutionContext";
|
|
5
|
+
import { Match, Rule } from "powerlint/types";
|
|
6
|
+
export interface RuleExecutionResult {
|
|
7
|
+
ruleId: string;
|
|
8
|
+
matches: Match[];
|
|
9
|
+
}
|
|
10
|
+
export interface RuleExecutionOptions {
|
|
11
|
+
mode: ExecutionMode;
|
|
12
|
+
filePath?: string;
|
|
13
|
+
baseSha?: string;
|
|
14
|
+
}
|
|
15
|
+
export declare class RuleExecutor {
|
|
16
|
+
private fileFilterStep;
|
|
17
|
+
private findMatchesStep;
|
|
18
|
+
private gotoDefinitionStep;
|
|
19
|
+
private llmStep;
|
|
20
|
+
private environment;
|
|
21
|
+
private executionContext?;
|
|
22
|
+
private currentMode?;
|
|
23
|
+
private eventEmitter;
|
|
24
|
+
private config;
|
|
25
|
+
constructor(config: Config, environment: Environment, eventEmitter?: ExecutionEventEmitter);
|
|
26
|
+
/**
|
|
27
|
+
* Execute a single step
|
|
28
|
+
*/
|
|
29
|
+
private executeStep;
|
|
30
|
+
/**
|
|
31
|
+
* Execute all steps in multiple rule configurations
|
|
32
|
+
*/
|
|
33
|
+
execute(rules: Rule[], options: RuleExecutionOptions): Promise<RuleExecutionResult[]>;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=RuleExecutor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RuleExecutor.d.ts","sourceRoot":"","sources":["../../../src/steps/RuleExecutor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAA;AAE/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAA;AAC7E,OAAO,EAAwB,aAAa,EAAE,MAAM,sCAAsC,CAAA;AAK1F,OAAO,EAAY,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAEvD,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,KAAK,EAAE,CAAA;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,aAAa,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,eAAe,CAAiB;IACxC,OAAO,CAAC,kBAAkB,CAAoB;IAC9C,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,gBAAgB,CAAC,CAAsB;IAC/C,OAAO,CAAC,WAAW,CAAC,CAAe;IACnC,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,MAAM,CAAQ;gBAEV,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,CAAC,EAAE,qBAAqB;IAU1F;;OAEG;YACW,WAAW;IAmHzB;;OAEG;IACG,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;CAiH5F"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RuleExecutor.test.d.ts","sourceRoot":"","sources":["../../../src/steps/RuleExecutor.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Config } from "powerlint/environment/Config";
|
|
2
|
+
import { Match } from "powerlint/types";
|
|
3
|
+
import { type Rule, type RuleTestCase } from "powerlint/types";
|
|
4
|
+
export interface TestExecutorOptions {
|
|
5
|
+
rules: Rule[];
|
|
6
|
+
}
|
|
7
|
+
export interface TestCaseExecutionResult {
|
|
8
|
+
testCase: RuleTestCase;
|
|
9
|
+
matches: Match[];
|
|
10
|
+
executionTime: number;
|
|
11
|
+
error?: string;
|
|
12
|
+
}
|
|
13
|
+
export interface RuleExecutionResult {
|
|
14
|
+
rule: Rule;
|
|
15
|
+
results: TestCaseExecutionResult[];
|
|
16
|
+
}
|
|
17
|
+
export interface TestExecutorResult {
|
|
18
|
+
ruleResults: RuleExecutionResult[];
|
|
19
|
+
}
|
|
20
|
+
export declare class TestExecutor {
|
|
21
|
+
private eventEmitter;
|
|
22
|
+
private config;
|
|
23
|
+
constructor(config: Config);
|
|
24
|
+
/**
|
|
25
|
+
* Run a single test case for a rule and return the matches
|
|
26
|
+
*/
|
|
27
|
+
private runTestCase;
|
|
28
|
+
/**
|
|
29
|
+
* Execute tests for the given rules
|
|
30
|
+
*/
|
|
31
|
+
execute(options: TestExecutorOptions): Promise<TestExecutorResult>;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=TestExecutor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TestExecutor.d.ts","sourceRoot":"","sources":["../../../src/test/TestExecutor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAA;AAIrD,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AACvC,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAE9D,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,IAAI,EAAE,CAAA;CACd;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,YAAY,CAAA;IACtB,OAAO,EAAE,KAAK,EAAE,CAAA;IAChB,aAAa,EAAE,MAAM,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,IAAI,CAAA;IACV,OAAO,EAAE,uBAAuB,EAAE,CAAA;CACnC;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,mBAAmB,EAAE,CAAA;CACnC;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,MAAM,CAAQ;gBAEV,MAAM,EAAE,MAAM;IAK1B;;OAEG;YACW,WAAW;IAkCzB;;OAEG;IACG,OAAO,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAqCzE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rules.test.d.ts","sourceRoot":"","sources":["../../../src/test/rules.test.ts"],"names":[],"mappings":""}
|