doc-freshness-checker 2.2.1 → 2.2.2
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/README.md +18 -5
- package/dist/config/defaults.d.ts +2 -1
- package/dist/config/defaults.js +2 -1
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/validateConfig.js +17 -1
- package/dist/config/validateConfig.js.map +1 -1
- package/dist/config/validateConfig.test.js +23 -0
- package/dist/config/validateConfig.test.js.map +1 -1
- package/dist/parsers/extractors/codeSnippetExtractor.d.ts +3 -4
- package/dist/parsers/extractors/codeSnippetExtractor.js +21 -32
- package/dist/parsers/extractors/codeSnippetExtractor.js.map +1 -1
- package/dist/parsers/extractors/codeSnippetExtractor.test.js +37 -0
- package/dist/parsers/extractors/codeSnippetExtractor.test.js.map +1 -1
- package/dist/runner.js +3 -11
- package/dist/runner.js.map +1 -1
- package/dist/runner.test.js +30 -55
- package/dist/runner.test.js.map +1 -1
- package/dist/source/sourceIndex.d.ts +1 -1
- package/dist/source/sourceIndex.js +56 -54
- package/dist/source/sourceIndex.js.map +1 -1
- package/dist/source/sourceIndex.test.js +48 -17
- package/dist/source/sourceIndex.test.js.map +1 -1
- package/dist/types.d.ts +7 -0
- package/dist/utils/pathSecurity.d.ts +5 -0
- package/dist/utils/pathSecurity.js +21 -0
- package/dist/utils/pathSecurity.js.map +1 -1
- package/dist/utils/pathSecurity.test.js +29 -1
- package/dist/utils/pathSecurity.test.js.map +1 -1
- package/dist/validators/codePatternValidator.js +1 -7
- package/dist/validators/codePatternValidator.js.map +1 -1
- package/dist/validators/codePatternValidator.test.js +4 -4
- package/dist/validators/codePatternValidator.test.js.map +1 -1
- package/dist/validators/codeSnippetValidator.d.ts +6 -0
- package/dist/validators/codeSnippetValidator.js +45 -27
- package/dist/validators/codeSnippetValidator.js.map +1 -1
- package/dist/validators/codeSnippetValidator.test.js +99 -0
- package/dist/validators/codeSnippetValidator.test.js.map +1 -1
- package/dist/validators/directoryValidator.d.ts +0 -1
- package/dist/validators/directoryValidator.js +18 -19
- package/dist/validators/directoryValidator.js.map +1 -1
- package/dist/validators/directoryValidator.test.js +44 -0
- package/dist/validators/directoryValidator.test.js.map +1 -1
- package/dist/validators/fileValidator.js +16 -25
- package/dist/validators/fileValidator.js.map +1 -1
- package/dist/validators/fileValidator.test.js +25 -0
- package/dist/validators/fileValidator.test.js.map +1 -1
- package/package.json +4 -5
|
@@ -25,13 +25,7 @@ export class CodePatternValidator {
|
|
|
25
25
|
if (this.sourceIndex) {
|
|
26
26
|
return;
|
|
27
27
|
}
|
|
28
|
-
|
|
29
|
-
this.useSnapshot(await this.index.load(config, 'pattern'));
|
|
30
|
-
}
|
|
31
|
-
catch (error) {
|
|
32
|
-
this.useSnapshot(await this.index.load(config, 'pattern'));
|
|
33
|
-
throw error;
|
|
34
|
-
}
|
|
28
|
+
this.useSnapshot(await this.index.load(config, 'pattern'));
|
|
35
29
|
}
|
|
36
30
|
useSnapshot(snapshot) {
|
|
37
31
|
this.sourceIndex = snapshot.symbols;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codePatternValidator.js","sourceRoot":"","sources":["../../src/validators/codePatternValidator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,eAAe,IAAI,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAKjG,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,+BAA+B,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEnH,MAAM,eAAe,GAAG,qBAAqB,CAAC;AAE9C;;GAEG;AACH,MAAM,OAAO,oBAAoB;IAUF;IAT7B,gBAAgB;IACP,uBAAuB,GAAG,SAAS,CAAC;IAC7C,gBAAgB;IACP,iCAAiC,GAAG,IAAI,CAAC;IAC1C,WAAW,CAAuC;IAClD,WAAW,CAAqC,CAAC,wCAAwC;IACzF,iBAAiB,CAA4B;IAGrD,YAA6B,QAAQ,IAAI,WAAW,EAAE;QAAzB,UAAK,GAAL,KAAK,CAAoB;QACpD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,MAA0B;QAC/C,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,OAAO;QACT,CAAC;QAED,IAAI,CAAC
|
|
1
|
+
{"version":3,"file":"codePatternValidator.js","sourceRoot":"","sources":["../../src/validators/codePatternValidator.ts"],"names":[],"mappings":"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"}
|
|
@@ -68,12 +68,12 @@ describe('CodePatternValidator', () => {
|
|
|
68
68
|
await fs.promises.rm(rootDir, { recursive: true, force: true });
|
|
69
69
|
}
|
|
70
70
|
});
|
|
71
|
-
it('
|
|
71
|
+
it('rejects source inputs when source discovery fails', async () => {
|
|
72
72
|
const validator = new CodePatternValidator();
|
|
73
73
|
const invalidConfig = { rootDir: process.cwd(), sourcePatterns: [null] };
|
|
74
|
-
expect(
|
|
74
|
+
await expect(validator.getIncrementalInputs([], doc, invalidConfig)).rejects.toThrow('Could not scan source pattern null');
|
|
75
75
|
});
|
|
76
|
-
it('
|
|
76
|
+
it('rejects source inputs when a matched source file is unreadable', async () => {
|
|
77
77
|
const rootDir = await fs.promises.mkdtemp(path.join(os.tmpdir(), 'code-pattern-unreadable-'));
|
|
78
78
|
const sourceDir = path.join(rootDir, 'src');
|
|
79
79
|
const sourcePath = path.join(sourceDir, 'source.ts');
|
|
@@ -88,7 +88,7 @@ describe('CodePatternValidator', () => {
|
|
|
88
88
|
});
|
|
89
89
|
try {
|
|
90
90
|
const validator = new CodePatternValidator();
|
|
91
|
-
await expect(validator.getIncrementalInputs([], doc, { rootDir, sourcePatterns: ['src/**/*.ts'] })).
|
|
91
|
+
await expect(validator.getIncrementalInputs([], doc, { rootDir, sourcePatterns: ['src/**/*.ts'] })).rejects.toThrow(`Could not read source file ${sourcePath}: permission denied`);
|
|
92
92
|
}
|
|
93
93
|
finally {
|
|
94
94
|
readSpy.mockRestore();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codePatternValidator.test.js","sourceRoot":"","sources":["../../src/validators/codePatternValidator.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAGjE,SAAS,OAAO,CAAC,KAAa,EAAE,YAAgC,EAAE;IAChE,OAAO;QACL,IAAI,EAAE,cAAc;QACpB,KAAK;QACL,UAAU,EAAE,CAAC;QACb,GAAG,EAAE,KAAK;QACV,UAAU,EAAE,QAAQ;QACpB,IAAI,EAAE,OAAO;QACb,QAAQ,EAAE,YAAY;QACtB,GAAG,SAAS;KACb,CAAC;AACJ,CAAC;AAED,MAAM,GAAG,GAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,iBAAiB,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;AAEtI,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,MAAM,MAAM,GAAuB;QACjC,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE;QACtB,cAAc,EAAE,CAAC,aAAa,CAAC;QAC/B,KAAK,EAAE,EAAE,cAAc,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE;KAClE,CAAC;IAEF,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;QACvD,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QAC9F,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;QACxD,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QAC7F,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;QAC1C,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QAC1G,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;QACxD,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QAChH,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;QACpE,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAC7C,MAAM,SAAS,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACzC,MAAM,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QACvD,MAAM,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QACvD,MAAM,CAAC,MAAM,SAAS,CAAC,oBAAoB,CAAC,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QACpF,MAAM,CAAC,SAAS,CAAC,cAAc,EAAG,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4EAA4E,EAAE,KAAK,IAAI,EAAE;QAC1F,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,sBAAsB,CAAC,CAAC,CAAC;QAC1F,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;YACrD,MAAM,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACnC,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,EAAE,mCAAmC,CAAC,CAAC;YAC7E,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;YAC7C,MAAM,YAAY,GAAG,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,qBAAqB,CAAC,EAAE,CAAC;YAE1E,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,oBAAoB,CAAC,EAAE,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC;YAC7E,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,mCAAmC,EAAE,CAAC,CAAC,CAAC;YAC/F,MAAM,CAAC,MAAM,SAAS,CAAC,oBAAoB,CAAC,EAAE,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrF,CAAC;gBACO,CAAC;YACP,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAClE,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"codePatternValidator.test.js","sourceRoot":"","sources":["../../src/validators/codePatternValidator.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,6 +29,12 @@ export declare class CodeSnippetValidator {
|
|
|
29
29
|
private legacyImportSpecifiers;
|
|
30
30
|
private extractSpecifiersByPrefix;
|
|
31
31
|
private validateFunctionParameterNames;
|
|
32
|
+
/** Custom extractors can set any value; an impossible count is treated as all-positional, the strictest reading. */
|
|
33
|
+
private keywordArgumentCount;
|
|
34
|
+
private acceptsArity;
|
|
35
|
+
/** How many arguments a call must add or remove to fit the signature; 0 means it fits. */
|
|
36
|
+
private arityDistance;
|
|
37
|
+
private maxPositional;
|
|
32
38
|
private parameterNamesMatch;
|
|
33
39
|
getFunctionSignatures(): Map<string, FunctionSignature[]> | null;
|
|
34
40
|
getInterfaceKeys(): Map<string, Set<string>> | null;
|
|
@@ -56,13 +56,7 @@ export class CodeSnippetValidator {
|
|
|
56
56
|
if (this.sourceFiles) {
|
|
57
57
|
return;
|
|
58
58
|
}
|
|
59
|
-
|
|
60
|
-
this.useSnapshot(await this.index.load(config, 'snippet'));
|
|
61
|
-
}
|
|
62
|
-
catch (error) {
|
|
63
|
-
this.useSnapshot(await this.index.load(config, 'snippet'));
|
|
64
|
-
throw error;
|
|
65
|
-
}
|
|
59
|
+
this.useSnapshot(await this.index.load(config, 'snippet'));
|
|
66
60
|
}
|
|
67
61
|
useSnapshot(snapshot) {
|
|
68
62
|
this.sourceFiles = snapshot.snippetFiles;
|
|
@@ -208,6 +202,7 @@ export class CodeSnippetValidator {
|
|
|
208
202
|
validateFunctionCall(ref, config) {
|
|
209
203
|
const funcName = ref.value;
|
|
210
204
|
const snippetArity = parseInt(ref.linkText || '0', 10);
|
|
205
|
+
const keywordCount = this.keywordArgumentCount(ref, snippetArity);
|
|
211
206
|
if (isIllustrativeSymbol(funcName)) {
|
|
212
207
|
return {
|
|
213
208
|
reference: ref,
|
|
@@ -225,10 +220,18 @@ export class CodeSnippetValidator {
|
|
|
225
220
|
message: `Function ${funcName} not found in project source (may be external)`,
|
|
226
221
|
};
|
|
227
222
|
}
|
|
223
|
+
if (ref.unpacksArguments) {
|
|
224
|
+
return {
|
|
225
|
+
reference: ref,
|
|
226
|
+
valid: true,
|
|
227
|
+
skipped: true,
|
|
228
|
+
message: `Function ${funcName} call spreads or unpacks arguments, so its argument count is not checked`,
|
|
229
|
+
};
|
|
230
|
+
}
|
|
228
231
|
// A call is valid if any signature can accept this many arguments
|
|
229
|
-
const compatible = signatures.find((sig) =>
|
|
232
|
+
const compatible = signatures.find((sig) => this.acceptsArity(sig, snippetArity, keywordCount));
|
|
230
233
|
if (compatible) {
|
|
231
|
-
const parameterNamesResult = this.validateFunctionParameterNames(ref, compatible, signatures, config);
|
|
234
|
+
const parameterNamesResult = this.validateFunctionParameterNames(ref, keywordCount, compatible, signatures, config);
|
|
232
235
|
if (parameterNamesResult) {
|
|
233
236
|
return parameterNamesResult;
|
|
234
237
|
}
|
|
@@ -238,19 +241,21 @@ export class CodeSnippetValidator {
|
|
|
238
241
|
foundIn: [compatible.filePath],
|
|
239
242
|
};
|
|
240
243
|
}
|
|
241
|
-
const closest = signatures.reduce((prev, curr) =>
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
244
|
+
const closest = signatures.reduce((prev, curr) => this.arityDistance(curr, snippetArity, keywordCount) < this.arityDistance(prev, snippetArity, keywordCount) ? curr : prev);
|
|
245
|
+
const maxPositional = this.maxPositional(closest);
|
|
246
|
+
const arityDesc = closest.restIndex !== undefined
|
|
247
|
+
? `at least ${closest.requiredParams}`
|
|
248
|
+
: closest.requiredParams === maxPositional
|
|
249
|
+
? String(maxPositional)
|
|
250
|
+
: `${closest.requiredParams}–${maxPositional}`;
|
|
251
|
+
const message = closest.keywordRestIndex !== undefined && closest.restIndex === undefined
|
|
252
|
+
? `Function ${funcName} called with ${snippetArity - keywordCount} positional arg(s) but expects ${arityDesc} positional`
|
|
253
|
+
: `Function ${funcName} called with ${snippetArity} arg(s) but expects ${arityDesc}`;
|
|
249
254
|
return {
|
|
250
255
|
reference: ref,
|
|
251
256
|
valid: false,
|
|
252
257
|
severity: getRuleSeverity(config, 'code-snippet', 'warning'),
|
|
253
|
-
message
|
|
258
|
+
message,
|
|
254
259
|
suggestion: `Current signature: ${funcName}(${closest.params.join(', ')})`,
|
|
255
260
|
foundIn: signatures.map((s) => s.filePath),
|
|
256
261
|
};
|
|
@@ -313,14 +318,13 @@ export class CodeSnippetValidator {
|
|
|
313
318
|
return value ? [value] : [];
|
|
314
319
|
});
|
|
315
320
|
}
|
|
316
|
-
validateFunctionParameterNames(ref, compatible, signatures, config) {
|
|
321
|
+
validateFunctionParameterNames(ref, keywordCount, compatible, signatures, config) {
|
|
317
322
|
const argumentNames = ref.argumentNames;
|
|
318
323
|
if (!argumentNames || argumentNames.length === 0) {
|
|
319
324
|
return null;
|
|
320
325
|
}
|
|
321
|
-
const compatibleByNames = signatures.find((signature) => argumentNames.length
|
|
322
|
-
argumentNames.
|
|
323
|
-
this.parameterNamesMatch(argumentNames, signature.params));
|
|
326
|
+
const compatibleByNames = signatures.find((signature) => this.acceptsArity(signature, argumentNames.length, keywordCount) &&
|
|
327
|
+
this.parameterNamesMatch(argumentNames.slice(0, Math.max(0, argumentNames.length - keywordCount)), signature));
|
|
324
328
|
if (compatibleByNames) {
|
|
325
329
|
return null;
|
|
326
330
|
}
|
|
@@ -333,11 +337,25 @@ export class CodeSnippetValidator {
|
|
|
333
337
|
foundIn: signatures.map((signature) => signature.filePath),
|
|
334
338
|
};
|
|
335
339
|
}
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
340
|
+
/** Custom extractors can set any value; an impossible count is treated as all-positional, the strictest reading. */
|
|
341
|
+
keywordArgumentCount(ref, arity) {
|
|
342
|
+
const count = ref.keywordArgumentCount;
|
|
343
|
+
return count !== undefined && Number.isInteger(count) && count >= 0 && count <= arity ? count : 0;
|
|
344
|
+
}
|
|
345
|
+
acceptsArity(signature, arity, keywordCount) {
|
|
346
|
+
return this.arityDistance(signature, arity, keywordCount) === 0;
|
|
347
|
+
}
|
|
348
|
+
/** How many arguments a call must add or remove to fit the signature; 0 means it fits. */
|
|
349
|
+
arityDistance(signature, arity, keywordCount) {
|
|
350
|
+
const maxArity = signature.restIndex === undefined && signature.keywordRestIndex === undefined ? signature.params.length : Infinity;
|
|
351
|
+
return Math.max(signature.requiredParams - arity, arity - maxArity, arity - keywordCount - this.maxPositional(signature), 0);
|
|
352
|
+
}
|
|
353
|
+
maxPositional(signature) {
|
|
354
|
+
return signature.restIndex === undefined ? (signature.keywordRestIndex ?? signature.params.length) : Infinity;
|
|
355
|
+
}
|
|
356
|
+
parameterNamesMatch(argumentNames, signature) {
|
|
357
|
+
const positionalCount = signature.restIndex ?? signature.keywordRestIndex ?? signature.params.length;
|
|
358
|
+
return argumentNames.slice(0, positionalCount).every((name, index) => name === signature.params[index]);
|
|
341
359
|
}
|
|
342
360
|
// Exposed for testing / integration
|
|
343
361
|
getFunctionSignatures() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codeSnippetValidator.js","sourceRoot":"","sources":["../../src/validators/codeSnippetValidator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"codeSnippetValidator.js","sourceRoot":"","sources":["../../src/validators/codeSnippetValidator.ts"],"names":[],"mappings":"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"}
|
|
@@ -216,6 +216,105 @@ describe('CodeSnippetValidator', () => {
|
|
|
216
216
|
expect(results[0].suggestion).toContain('createUser(name, email, role)');
|
|
217
217
|
});
|
|
218
218
|
});
|
|
219
|
+
it('accepts any number of arguments for rest parameters and reports too few as a minimum', async () => {
|
|
220
|
+
await withTempSourceFiles({
|
|
221
|
+
'src/api.ts': 'export function log(level: string, ...messages: string[]) { return [level, ...messages]; }\n',
|
|
222
|
+
'src/api.py': 'def gather(first, *rest): pass\n',
|
|
223
|
+
}, async (tempConfig) => {
|
|
224
|
+
const validator = new CodeSnippetValidator();
|
|
225
|
+
const results = await validator.validateBatch([
|
|
226
|
+
makeRef('function-call', 'log', { argumentNames: ['level', 'first', 'second', 'third'], linkText: '4', raw: 'log(...)' }),
|
|
227
|
+
makeRef('function-call', 'gather', { linkText: '3', raw: 'gather(a, b, c)', language: 'python' }),
|
|
228
|
+
makeRef('function-call', 'log', { linkText: '0', raw: 'log()' }),
|
|
229
|
+
], doc, tempConfig);
|
|
230
|
+
expect(results[0].valid).toBe(true);
|
|
231
|
+
expect(results[1].valid).toBe(true);
|
|
232
|
+
expect(results[2].valid).toBe(false);
|
|
233
|
+
expect(results[2].message).toContain('expects at least 1');
|
|
234
|
+
});
|
|
235
|
+
});
|
|
236
|
+
it('lets **kwargs absorb keyword arguments but not positional arguments', async () => {
|
|
237
|
+
await withTempSourceFiles({
|
|
238
|
+
'src/api.py': 'def configure(required, **options): pass\ndef gather(first, *rest, **options): pass\n',
|
|
239
|
+
}, async (tempConfig) => {
|
|
240
|
+
const python = { language: 'python' };
|
|
241
|
+
const results = await new CodeSnippetValidator().validateBatch([
|
|
242
|
+
makeRef('function-call', 'configure', {
|
|
243
|
+
...python,
|
|
244
|
+
linkText: '3',
|
|
245
|
+
keywordArgumentCount: 2,
|
|
246
|
+
raw: 'configure(x, debug=True, level=2)',
|
|
247
|
+
}),
|
|
248
|
+
makeRef('function-call', 'configure', { ...python, linkText: '1', keywordArgumentCount: 1, raw: 'configure(required=x)' }),
|
|
249
|
+
makeRef('function-call', 'configure', { ...python, linkText: '3', keywordArgumentCount: 0, raw: 'configure(a, b, c)' }),
|
|
250
|
+
makeRef('function-call', 'gather', { ...python, linkText: '4', keywordArgumentCount: 1, raw: 'gather(a, b, c, debug=True)' }),
|
|
251
|
+
], doc, tempConfig);
|
|
252
|
+
expect(results.map((result) => result.valid)).toEqual([true, true, false, true]);
|
|
253
|
+
expect(results[2].message).toBe('Function configure called with 3 positional arg(s) but expects 1 positional');
|
|
254
|
+
});
|
|
255
|
+
});
|
|
256
|
+
it('skips arity and name checks for calls that spread or unpack arguments', async () => {
|
|
257
|
+
await withTempSourceFiles({
|
|
258
|
+
'src/api.py': 'def connect(host, port): pass\n',
|
|
259
|
+
'src/mount.ts': 'export function mount(target: string, options: object) {}\n',
|
|
260
|
+
}, async (tempConfig) => {
|
|
261
|
+
const python = { language: 'python' };
|
|
262
|
+
const results = await new CodeSnippetValidator().validateBatch([
|
|
263
|
+
makeRef('function-call', 'connect', { ...python, linkText: '1', unpacksArguments: true, raw: 'connect(*address)' }),
|
|
264
|
+
makeRef('function-call', 'connect', {
|
|
265
|
+
...python,
|
|
266
|
+
linkText: '1',
|
|
267
|
+
keywordArgumentCount: 1,
|
|
268
|
+
unpacksArguments: true,
|
|
269
|
+
raw: 'connect(**settings)',
|
|
270
|
+
}),
|
|
271
|
+
makeRef('function-call', 'mount', {
|
|
272
|
+
language: 'typescript',
|
|
273
|
+
linkText: '1',
|
|
274
|
+
argumentNames: ['args'],
|
|
275
|
+
unpacksArguments: true,
|
|
276
|
+
raw: 'mount(...args)',
|
|
277
|
+
}),
|
|
278
|
+
makeRef('function-call', 'connect', { ...python, linkText: '1', raw: 'connect(address)' }),
|
|
279
|
+
], doc, tempConfig);
|
|
280
|
+
expect(results.map((result) => result.valid)).toEqual([true, true, true, false]);
|
|
281
|
+
expect(results.map((result) => result.skipped)).toEqual([true, true, true, undefined]);
|
|
282
|
+
expect(results[0].message).toBe('Function connect call spreads or unpacks arguments, so its argument count is not checked');
|
|
283
|
+
});
|
|
284
|
+
});
|
|
285
|
+
it('checks only positional argument names and treats impossible keyword counts as zero', async () => {
|
|
286
|
+
await withTempSourceFiles({
|
|
287
|
+
'src/api.py': 'def configure(required, **options): pass\ndef tune(a, b=1, **options): pass\n',
|
|
288
|
+
}, async (tempConfig) => {
|
|
289
|
+
const python = { language: 'python' };
|
|
290
|
+
const results = await new CodeSnippetValidator().validateBatch([
|
|
291
|
+
makeRef('function-call', 'configure', {
|
|
292
|
+
...python,
|
|
293
|
+
linkText: '2',
|
|
294
|
+
argumentNames: ['required', 'debug'],
|
|
295
|
+
keywordArgumentCount: 1,
|
|
296
|
+
}),
|
|
297
|
+
makeRef('function-call', 'tune', { ...python, linkText: '2', argumentNames: ['a', 'debug'], keywordArgumentCount: 1 }),
|
|
298
|
+
makeRef('function-call', 'configure', { ...python, linkText: '2', argumentNames: ['x', 'debug'], keywordArgumentCount: 1 }),
|
|
299
|
+
makeRef('function-call', 'configure', { ...python, linkText: '3', keywordArgumentCount: 4 }),
|
|
300
|
+
makeRef('function-call', 'configure', { ...python, linkText: '3', keywordArgumentCount: Number.NaN }),
|
|
301
|
+
], doc, tempConfig);
|
|
302
|
+
expect(results.map((result) => result.valid)).toEqual([true, true, false, false, false]);
|
|
303
|
+
expect(results[2].message).toContain('outdated parameter name');
|
|
304
|
+
expect(results[3].message).toBe('Function configure called with 3 positional arg(s) but expects 1 positional');
|
|
305
|
+
expect(results[4].message).toBe(results[3].message);
|
|
306
|
+
});
|
|
307
|
+
});
|
|
308
|
+
it('describes the overload nearest to the call when no overload accepts it', async () => {
|
|
309
|
+
await withTempSourceFiles({
|
|
310
|
+
'src/rest.ts': 'export function pick(first: string, ...rest: string[]) { return [first, ...rest]; }\n',
|
|
311
|
+
'src/fixed.ts': 'export function pick(a: string, b: string, c: string, d: string, e: string, f: string, g: string, h: string) { return a; }\n',
|
|
312
|
+
}, async (tempConfig) => {
|
|
313
|
+
const [result] = await new CodeSnippetValidator().validateBatch([makeRef('function-call', 'pick', { linkText: '0', raw: 'pick()' })], doc, tempConfig);
|
|
314
|
+
expect(result.valid).toBe(false);
|
|
315
|
+
expect(result.message).toBe('Function pick called with 0 arg(s) but expects at least 1');
|
|
316
|
+
});
|
|
317
|
+
});
|
|
219
318
|
it('skips parameter-name comparison when arguments are expressions', async () => {
|
|
220
319
|
await withTempSourceFiles({
|
|
221
320
|
'src/api.ts': 'export function createUser(name: string, email: string) { return { name, email }; }\n',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codeSnippetValidator.test.js","sourceRoot":"","sources":["../../src/validators/codeSnippetValidator.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"codeSnippetValidator.test.js","sourceRoot":"","sources":["../../src/validators/codeSnippetValidator.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAGjE,SAAS,OAAO,CAAC,IAAY,EAAE,KAAa,EAAE,YAAgC,EAAE;IAC9E,OAAO;QACL,IAAI,EAAE,cAAc;QACpB,KAAK;QACL,UAAU,EAAE,CAAC;QACb,GAAG,EAAE,KAAK;QACV,UAAU,EAAE,QAAQ;QACpB,IAAI;QACJ,QAAQ,EAAE,YAAY;QACtB,GAAG,SAAS;KACb,CAAC;AACJ,CAAC;AAED,MAAM,GAAG,GAAa;IACpB,IAAI,EAAE,QAAQ;IACd,YAAY,EAAE,iBAAiB;IAC/B,OAAO,EAAE,EAAE;IACX,MAAM,EAAE,UAAU;IAClB,KAAK,EAAE,EAAE;IACT,UAAU,EAAE,EAAE;CACf,CAAC;AAEF,MAAM,MAAM,GAAuB;IACjC,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE;IACtB,cAAc,EAAE,CAAC,aAAa,CAAC;IAC/B,KAAK,EAAE,EAAE,cAAc,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE;CAClE,CAAC;AAEF,KAAK,UAAU,mBAAmB,CAChC,KAA6B,EAC7B,QAA2D;IAE3D,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,6BAA6B,CAAC,CAAC,CAAC;IAEzF,IAAI,CAAC;QACH,KAAK,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5D,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;YACvD,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAChE,MAAM,EAAE,CAAC,SAAS,CAAC,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QACrD,CAAC;QAED,MAAM,QAAQ,CAAC;YACb,OAAO,EAAE,QAAQ;YACjB,cAAc,EAAE,CAAC,kBAAkB,CAAC;YACpC,KAAK,EAAE,EAAE,cAAc,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE;SAClE,CAAC,CAAC;IACL,CAAC;YACO,CAAC;QACP,MAAM,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC;AAED,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,4EAA4E;IAC5E,oBAAoB;IACpB,4EAA4E;IAC5E,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACjC,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;YAC3D,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;YAC7C,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,EAAE,aAAa,EAAE;gBAC3C,QAAQ,EAAE,WAAW;gBACrB,GAAG,EAAE,yCAAyC;aAC/C,CAAC,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;YAClE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;YAChD,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;YAC7C,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,EAAE,sBAAsB,EAAE;gBACpD,QAAQ,EAAE,KAAK;gBACf,GAAG,EAAE,4CAA4C;aAClD,CAAC,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;YAClE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;YAChD,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;YAC7C,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,EAAE,aAAa,EAAE;gBAC3C,QAAQ,EAAE,gCAAgC;gBAC1C,GAAG,EAAE,+DAA+D;aACrE,CAAC,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;YAClE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;YAC7D,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;YACtD,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;YAC7C,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,EAAE,oBAAoB,EAAE;gBAClD,QAAQ,EAAE,aAAa;gBACvB,GAAG,EAAE,kDAAkD;aACxD,CAAC,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;YAClE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;YAC5D,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;YAC7C,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,EAAE,aAAa,EAAE;gBAC3C,QAAQ,EAAE,EAAE;gBACZ,GAAG,EAAE,sCAAsC;aAC5C,CAAC,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;YAClE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;YAC5D,MAAM,mBAAmB,CACvB;gBACE,eAAe,EAAE,2DAA2D;aAC7E,EACD,KAAK,EAAE,UAAU,EAAE,EAAE;gBACnB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;gBAC7C,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE;oBACxC,UAAU,EAAE,iBAAiB;oBAC7B,QAAQ,EAAE,QAAQ;oBAClB,gBAAgB,EAAE,CAAC,gBAAgB,CAAC;oBACpC,GAAG,EAAE,+BAA+B;iBACrC,CAAC,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;gBACtE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtC,CAAC,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;YAClE,MAAM,mBAAmB,CACvB;gBACE,eAAe,EAAE,8BAA8B;aAChD,EACD,KAAK,EAAE,UAAU,EAAE,EAAE;gBACnB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;gBAC7C,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE;oBACxC,UAAU,EAAE,iBAAiB;oBAC7B,QAAQ,EAAE,EAAE;oBACZ,gBAAgB,EAAE,CAAC,UAAU,CAAC;oBAC9B,GAAG,EAAE,oCAAoC;iBAC1C,CAAC,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;gBACtE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtC,CAAC,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;YACpE,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;YAC7C,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,EAAE,4BAA4B,EAAE;gBAC1D,QAAQ,EAAE,cAAc;gBACxB,GAAG,EAAE,2DAA2D;aACjE,CAAC,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;YAClE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qEAAqE,EAAE,KAAK,IAAI,EAAE;YACnF,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;YAC7C,MAAM,YAAY,GAAuB;gBACvC,GAAG,MAAM;gBACT,KAAK,EAAE,EAAE,cAAc,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,gBAAgB,EAAE,KAAK,EAAE,EAAE;aAC3F,CAAC;YACF,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,EAAE,4BAA4B,EAAE;gBAC1D,QAAQ,EAAE,cAAc;gBACxB,GAAG,EAAE,2DAA2D;aACjE,CAAC,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC;YACxE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACzC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,4EAA4E;IAC5E,2BAA2B;IAC3B,4EAA4E;IAC5E,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;QACxC,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;YACrE,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;YAC7C,MAAM,GAAG,GAAG,OAAO,CAAC,eAAe,EAAE,wBAAwB,EAAE;gBAC7D,QAAQ,EAAE,GAAG;gBACb,GAAG,EAAE,wBAAwB;aAC9B,CAAC,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;YAClE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;YAC7D,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;YAC7C,yEAAyE;YACzE,MAAM,GAAG,GAAG,OAAO,CAAC,eAAe,EAAE,aAAa,EAAE;gBAClD,QAAQ,EAAE,GAAG;gBACb,GAAG,EAAE,aAAa;aACnB,CAAC,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;YAClE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;YAClE,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;YAC7C,MAAM,GAAG,GAAG,OAAO,CAAC,eAAe,EAAE,aAAa,EAAE;gBAClD,QAAQ,EAAE,GAAG;gBACb,GAAG,EAAE,aAAa;aACnB,CAAC,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;YAClE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;YACtC,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;YAC7C,iDAAiD;YACjD,MAAM,GAAG,GAAG,OAAO,CAAC,eAAe,EAAE,qBAAqB,EAAE;gBAC1D,QAAQ,EAAE,GAAG;gBACb,GAAG,EAAE,qBAAqB;aAC3B,CAAC,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;YAClE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;YAC5D,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;YAChF,MAAM,mBAAmB,CACvB;gBACE,YAAY,EAAE,4GAA4G;aAC3H,EACD,KAAK,EAAE,UAAU,EAAE,EAAE;gBACnB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;gBAC7C,MAAM,GAAG,GAAG,OAAO,CAAC,eAAe,EAAE,YAAY,EAAE;oBACjD,aAAa,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC;oBACpC,QAAQ,EAAE,GAAG;oBACb,GAAG,EAAE,6BAA6B;iBACnC,CAAC,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;gBACtE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACrC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;gBAChE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,+BAA+B,CAAC,CAAC;YAC3E,CAAC,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sFAAsF,EAAE,KAAK,IAAI,EAAE;YACpG,MAAM,mBAAmB,CACvB;gBACE,YAAY,EAAE,8FAA8F;gBAC5G,YAAY,EAAE,kCAAkC;aACjD,EACD,KAAK,EAAE,UAAU,EAAE,EAAE;gBACnB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;gBAC7C,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,aAAa,CAC3C;oBACE,OAAO,CAAC,eAAe,EAAE,KAAK,EAAE,EAAE,aAAa,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC;oBACzH,OAAO,CAAC,eAAe,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,iBAAiB,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;oBACjG,OAAO,CAAC,eAAe,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;iBACjE,EACD,GAAG,EACH,UAAU,CACX,CAAC;gBACF,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACpC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACpC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACrC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;YAC7D,CAAC,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qEAAqE,EAAE,KAAK,IAAI,EAAE;YACnF,MAAM,mBAAmB,CACvB;gBACE,YAAY,EAAE,uFAAuF;aACtG,EACD,KAAK,EAAE,UAAU,EAAE,EAAE;gBACnB,MAAM,MAAM,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;gBACtC,MAAM,OAAO,GAAG,MAAM,IAAI,oBAAoB,EAAE,CAAC,aAAa,CAC5D;oBACE,OAAO,CAAC,eAAe,EAAE,WAAW,EAAE;wBACpC,GAAG,MAAM;wBACT,QAAQ,EAAE,GAAG;wBACb,oBAAoB,EAAE,CAAC;wBACvB,GAAG,EAAE,mCAAmC;qBACzC,CAAC;oBACF,OAAO,CAAC,eAAe,EAAE,WAAW,EAAE,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,oBAAoB,EAAE,CAAC,EAAE,GAAG,EAAE,uBAAuB,EAAE,CAAC;oBAC1H,OAAO,CAAC,eAAe,EAAE,WAAW,EAAE,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,oBAAoB,EAAE,CAAC,EAAE,GAAG,EAAE,oBAAoB,EAAE,CAAC;oBACvH,OAAO,CAAC,eAAe,EAAE,QAAQ,EAAE,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,oBAAoB,EAAE,CAAC,EAAE,GAAG,EAAE,6BAA6B,EAAE,CAAC;iBAC9H,EACD,GAAG,EACH,UAAU,CACX,CAAC;gBACF,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;gBACjF,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,6EAA6E,CAAC,CAAC;YACjH,CAAC,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uEAAuE,EAAE,KAAK,IAAI,EAAE;YACrF,MAAM,mBAAmB,CACvB;gBACE,YAAY,EAAE,iCAAiC;gBAC/C,cAAc,EAAE,6DAA6D;aAC9E,EACD,KAAK,EAAE,UAAU,EAAE,EAAE;gBACnB,MAAM,MAAM,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;gBACtC,MAAM,OAAO,GAAG,MAAM,IAAI,oBAAoB,EAAE,CAAC,aAAa,CAC5D;oBACE,OAAO,CAAC,eAAe,EAAE,SAAS,EAAE,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,gBAAgB,EAAE,IAAI,EAAE,GAAG,EAAE,mBAAmB,EAAE,CAAC;oBACnH,OAAO,CAAC,eAAe,EAAE,SAAS,EAAE;wBAClC,GAAG,MAAM;wBACT,QAAQ,EAAE,GAAG;wBACb,oBAAoB,EAAE,CAAC;wBACvB,gBAAgB,EAAE,IAAI;wBACtB,GAAG,EAAE,qBAAqB;qBAC3B,CAAC;oBACF,OAAO,CAAC,eAAe,EAAE,OAAO,EAAE;wBAChC,QAAQ,EAAE,YAAY;wBACtB,QAAQ,EAAE,GAAG;wBACb,aAAa,EAAE,CAAC,MAAM,CAAC;wBACvB,gBAAgB,EAAE,IAAI;wBACtB,GAAG,EAAE,gBAAgB;qBACtB,CAAC;oBACF,OAAO,CAAC,eAAe,EAAE,SAAS,EAAE,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,kBAAkB,EAAE,CAAC;iBAC3F,EACD,GAAG,EACH,UAAU,CACX,CAAC;gBACF,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;gBACjF,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;gBACvF,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,0FAA0F,CAAC,CAAC;YAC9H,CAAC,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oFAAoF,EAAE,KAAK,IAAI,EAAE;YAClG,MAAM,mBAAmB,CACvB;gBACE,YAAY,EAAE,+EAA+E;aAC9F,EACD,KAAK,EAAE,UAAU,EAAE,EAAE;gBACnB,MAAM,MAAM,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;gBACtC,MAAM,OAAO,GAAG,MAAM,IAAI,oBAAoB,EAAE,CAAC,aAAa,CAC5D;oBACE,OAAO,CAAC,eAAe,EAAE,WAAW,EAAE;wBACpC,GAAG,MAAM;wBACT,QAAQ,EAAE,GAAG;wBACb,aAAa,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC;wBACpC,oBAAoB,EAAE,CAAC;qBACxB,CAAC;oBACF,OAAO,CAAC,eAAe,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,aAAa,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,oBAAoB,EAAE,CAAC,EAAE,CAAC;oBACtH,OAAO,CAAC,eAAe,EAAE,WAAW,EAAE,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,aAAa,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,oBAAoB,EAAE,CAAC,EAAE,CAAC;oBAC3H,OAAO,CAAC,eAAe,EAAE,WAAW,EAAE,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,oBAAoB,EAAE,CAAC,EAAE,CAAC;oBAC5F,OAAO,CAAC,eAAe,EAAE,WAAW,EAAE,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,oBAAoB,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC;iBACtG,EACD,GAAG,EACH,UAAU,CACX,CAAC;gBACF,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;gBACzF,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;gBAChE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,6EAA6E,CAAC,CAAC;gBAC/G,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YACtD,CAAC,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wEAAwE,EAAE,KAAK,IAAI,EAAE;YACtF,MAAM,mBAAmB,CACvB;gBACE,aAAa,EAAE,uFAAuF;gBACtG,cAAc,EACZ,8HAA8H;aACjI,EACD,KAAK,EAAE,UAAU,EAAE,EAAE;gBACnB,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,IAAI,oBAAoB,EAAE,CAAC,aAAa,CAC7D,CAAC,OAAO,CAAC,eAAe,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC,EACpE,GAAG,EACH,UAAU,CACX,CAAC;gBACF,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACjC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;YAC3F,CAAC,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;YAC9E,MAAM,mBAAmB,CACvB;gBACE,YAAY,EAAE,uFAAuF;aACtG,EACD,KAAK,EAAE,UAAU,EAAE,EAAE;gBACnB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;gBAC7C,MAAM,GAAG,GAAG,OAAO,CAAC,eAAe,EAAE,YAAY,EAAE;oBACjD,QAAQ,EAAE,GAAG;oBACb,GAAG,EAAE,qCAAqC;iBAC3C,CAAC,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;gBACtE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtC,CAAC,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yEAAyE,EAAE,KAAK,IAAI,EAAE;YACvF,MAAM,mBAAmB,CACvB;gBACE,aAAa,EAAE,kDAAkD;aAClE,EACD,KAAK,EAAE,UAAU,EAAE,EAAE;gBACnB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;gBAC7C,MAAM,GAAG,GAAG,OAAO,CAAC,eAAe,EAAE,GAAG,EAAE;oBACxC,QAAQ,EAAE,GAAG;oBACb,GAAG,EAAE,sBAAsB;iBAC5B,CAAC,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;gBACtE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACtC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAClD,CAAC,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,4EAA4E;IAC5E,wBAAwB;IACxB,4EAA4E;IAC5E,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;QACrC,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;YACtD,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;YAC7C,MAAM,GAAG,GAAG,OAAO,CAAC,aAAa,EAAE,KAAK,EAAE;gBACxC,QAAQ,EAAE,iBAAiB;gBAC3B,GAAG,EAAE,0BAA0B;aAChC,CAAC,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;YAClE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;YACxD,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;YAC7C,MAAM,GAAG,GAAG,OAAO,CAAC,aAAa,EAAE,yBAAyB,EAAE;gBAC5D,QAAQ,EAAE,oBAAoB;gBAC9B,GAAG,EAAE,kDAAkD;aACxD,CAAC,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;YAClE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;YAC5D,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;YAC7C,MAAM,GAAG,GAAG,OAAO,CAAC,aAAa,EAAE,gBAAgB,EAAE;gBACnD,QAAQ,EAAE,oBAAoB;gBAC9B,GAAG,EAAE,wCAAwC;aAC9C,CAAC,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;YAClE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YAC/C,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;YACnD,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;YAC7C,MAAM,GAAG,GAAG,OAAO,CAAC,aAAa,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;YAC5D,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;YAClE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;QACxC,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;YACrD,MAAM,mBAAmB,CACvB;gBACE,uBAAuB,EAAE,2CAA2C;aACrE,EACD,KAAK,EAAE,UAAU,EAAE,EAAE;gBACnB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;gBAC7C,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,EAAE,oBAAoB,EAAE;oBAClD,QAAQ,EAAE,QAAQ;oBAClB,QAAQ,EAAE,aAAa;oBACvB,gBAAgB,EAAE,CAAC,mBAAmB,CAAC;oBACvC,GAAG,EAAE,4CAA4C;iBAClD,CAAC,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;gBACtE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACpC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YAChE,CAAC,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,4EAA4E;IAC5E,qBAAqB;IACrB,4EAA4E;IAC5E,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAClC,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;YAC3D,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;YAC7C,MAAM,YAAY,GAAuB;gBACvC,GAAG,MAAM;gBACT,KAAK,EAAE,EAAE,cAAc,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,EAAE;aACrE,CAAC;YACF,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,EAAE,YAAY,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;YACjE,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC;YACxE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;YACxE,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;YAC7C,MAAM,YAAY,GAAuB;gBACvC,GAAG,MAAM;gBACT,KAAK,EAAE,EAAE,cAAc,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,EAAE;aAC3E,CAAC;YACF,MAAM,GAAG,GAAG,OAAO,CAAC,eAAe,EAAE,aAAa,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;YACxE,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC;YACxE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;YAClE,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;YAC7C,MAAM,YAAY,GAAuB;gBACvC,GAAG,MAAM;gBACT,KAAK,EAAE,EAAE,cAAc,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,EAAE;aACxE,CAAC;YACF,MAAM,GAAG,GAAG,OAAO,CAAC,aAAa,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,oBAAoB,EAAE,CAAC,CAAC;YACjF,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC;YACxE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,4EAA4E;IAC5E,gBAAgB;IAChB,4EAA4E;IAC5E,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;QAC5D,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAC7C,MAAM,SAAS,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,eAAe,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QACjG,MAAM,KAAK,GAAG,SAAS,CAAC,qBAAqB,EAAE,CAAC;QAChD,MAAM,SAAS,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,eAAe,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QACjG,MAAM,CAAC,SAAS,CAAC,qBAAqB,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;QAClD,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAC7C,MAAM,SAAS,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,oBAAoB,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QACpH,MAAM,IAAI,GAAG,SAAS,CAAC,gBAAgB,EAAE,CAAC;QAC1C,MAAM,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QACjC,MAAM,CAAC,IAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnD,MAAM,CAAC,IAAK,CAAC,GAAG,CAAC,oBAAoB,CAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -16,7 +16,6 @@ export declare class DirectoryValidator {
|
|
|
16
16
|
private initCustomPatterns;
|
|
17
17
|
validateBatch(references: Reference[], document: Document, config: DocFreshnessConfig): Promise<ValidationResult[]>;
|
|
18
18
|
private validateReference;
|
|
19
|
-
private pathExists;
|
|
20
19
|
/**
|
|
21
20
|
* Try to find a similar path for suggestions
|
|
22
21
|
* Handles common issues like singular/plural mismatches
|
|
@@ -2,7 +2,7 @@ import fs from 'fs';
|
|
|
2
2
|
import path from 'path';
|
|
3
3
|
import { isIllustrativePath, compilePatterns } from '../utils/illustrativePatterns.js';
|
|
4
4
|
import { similarityRatio } from '../utils/similarity.js';
|
|
5
|
-
import { isWithinRoot, resolveDocumentDir, resolveProjectRoot } from '../utils/pathSecurity.js';
|
|
5
|
+
import { isWithinRoot, locateRealPath, resolveDocumentDir, resolveProjectRoot } from '../utils/pathSecurity.js';
|
|
6
6
|
import { createIllustrativeSkippedResult, getRuleSeverity, severityForIllustrative } from '../utils/validation.js';
|
|
7
7
|
/**
|
|
8
8
|
* Validates that directory structure references exist
|
|
@@ -79,7 +79,15 @@ export class DirectoryValidator {
|
|
|
79
79
|
}
|
|
80
80
|
// Strategy 1: Check if the path exists from project root
|
|
81
81
|
// This handles full paths like "frontend/src/apps/domains"
|
|
82
|
-
|
|
82
|
+
// A permission error here must not hide a doc-relative match, so it is rethrown only if Strategy 2 also fails.
|
|
83
|
+
let fullPathError;
|
|
84
|
+
const fullLocation = isWithinRoot(fullPath, rootDir)
|
|
85
|
+
? await locateRealPath(fullPath, rootDir).catch((error) => {
|
|
86
|
+
fullPathError = error;
|
|
87
|
+
return null;
|
|
88
|
+
})
|
|
89
|
+
: null;
|
|
90
|
+
if (fullLocation === 'inside') {
|
|
83
91
|
this.pathCache.set(cacheKey, { found: true, foundAt: itemPath });
|
|
84
92
|
return {
|
|
85
93
|
reference: ref,
|
|
@@ -89,7 +97,8 @@ export class DirectoryValidator {
|
|
|
89
97
|
}
|
|
90
98
|
// Strategy 2: The path might be relative to the document's location
|
|
91
99
|
// e.g., a doc in "docs/" might reference "../src/..."
|
|
92
|
-
|
|
100
|
+
const docLocation = isWithinRoot(relativeToDoc, rootDir) ? await locateRealPath(relativeToDoc, rootDir) : null;
|
|
101
|
+
if (docLocation === 'inside') {
|
|
93
102
|
const foundAt = path.relative(rootDir, relativeToDoc);
|
|
94
103
|
this.pathCache.set(cacheKey, { found: true, foundAt });
|
|
95
104
|
return {
|
|
@@ -98,8 +107,11 @@ export class DirectoryValidator {
|
|
|
98
107
|
foundAt,
|
|
99
108
|
};
|
|
100
109
|
}
|
|
101
|
-
|
|
102
|
-
|
|
110
|
+
if (fullPathError) {
|
|
111
|
+
throw fullPathError;
|
|
112
|
+
}
|
|
113
|
+
// Fail early when both candidates are lexically outside root, or either one is a symlink out of it.
|
|
114
|
+
if (fullLocation === 'outside' || docLocation === 'outside' || (fullLocation === null && docLocation === null)) {
|
|
103
115
|
return {
|
|
104
116
|
reference: ref,
|
|
105
117
|
valid: false,
|
|
@@ -120,15 +132,6 @@ export class DirectoryValidator {
|
|
|
120
132
|
suggestion,
|
|
121
133
|
};
|
|
122
134
|
}
|
|
123
|
-
async pathExists(fullPath) {
|
|
124
|
-
try {
|
|
125
|
-
await fs.promises.access(fullPath);
|
|
126
|
-
return true;
|
|
127
|
-
}
|
|
128
|
-
catch {
|
|
129
|
-
return false;
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
135
|
/**
|
|
133
136
|
* Try to find a similar path for suggestions
|
|
134
137
|
* Handles common issues like singular/plural mismatches
|
|
@@ -140,11 +143,7 @@ export class DirectoryValidator {
|
|
|
140
143
|
// Get the parent directory path
|
|
141
144
|
const parentPath = segments.slice(0, -1).join('/');
|
|
142
145
|
const parentFullPath = path.resolve(rootDir, parentPath);
|
|
143
|
-
if (!isWithinRoot(parentFullPath, rootDir)) {
|
|
144
|
-
return null;
|
|
145
|
-
}
|
|
146
|
-
// Check if parent exists
|
|
147
|
-
if (!(await this.pathExists(parentFullPath))) {
|
|
146
|
+
if (!isWithinRoot(parentFullPath, rootDir) || (await locateRealPath(parentFullPath, rootDir)) !== 'inside') {
|
|
148
147
|
return null;
|
|
149
148
|
}
|
|
150
149
|
// List files in parent directory
|