lostconf 0.2.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/CHANGELOG.md +83 -0
- package/LICENSE +21 -0
- package/LICENSE.md +21 -0
- package/README.md +445 -0
- package/dist/cli.d.ts +6 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +139 -0
- package/dist/cli.js.map +1 -0
- package/dist/core/discovery.d.ts +23 -0
- package/dist/core/discovery.d.ts.map +1 -0
- package/dist/core/discovery.js +75 -0
- package/dist/core/discovery.js.map +1 -0
- package/dist/core/engine.d.ts +24 -0
- package/dist/core/engine.d.ts.map +1 -0
- package/dist/core/engine.js +86 -0
- package/dist/core/engine.js.map +1 -0
- package/dist/core/severity.d.ts +25 -0
- package/dist/core/severity.d.ts.map +1 -0
- package/dist/core/severity.js +225 -0
- package/dist/core/severity.js.map +1 -0
- package/dist/core/types.d.ts +77 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +21 -0
- package/dist/core/types.js.map +1 -0
- package/dist/filetree/scanner.d.ts +26 -0
- package/dist/filetree/scanner.d.ts.map +1 -0
- package/dist/filetree/scanner.js +71 -0
- package/dist/filetree/scanner.js.map +1 -0
- package/dist/filetree/tree.d.ts +5 -0
- package/dist/filetree/tree.d.ts.map +1 -0
- package/dist/filetree/tree.js +5 -0
- package/dist/filetree/tree.js.map +1 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +18 -0
- package/dist/index.js.map +1 -0
- package/dist/output/formatter.d.ts +12 -0
- package/dist/output/formatter.d.ts.map +1 -0
- package/dist/output/formatter.js +5 -0
- package/dist/output/formatter.js.map +1 -0
- package/dist/output/json.d.ts +9 -0
- package/dist/output/json.d.ts.map +1 -0
- package/dist/output/json.js +14 -0
- package/dist/output/json.js.map +1 -0
- package/dist/output/sarif.d.ts +9 -0
- package/dist/output/sarif.d.ts.map +1 -0
- package/dist/output/sarif.js +84 -0
- package/dist/output/sarif.js.map +1 -0
- package/dist/output/text.d.ts +9 -0
- package/dist/output/text.d.ts.map +1 -0
- package/dist/output/text.js +87 -0
- package/dist/output/text.js.map +1 -0
- package/dist/parsers/bandit.d.ts +8 -0
- package/dist/parsers/bandit.d.ts.map +1 -0
- package/dist/parsers/bandit.js +66 -0
- package/dist/parsers/bandit.js.map +1 -0
- package/dist/parsers/biome.d.ts +8 -0
- package/dist/parsers/biome.d.ts.map +1 -0
- package/dist/parsers/biome.js +74 -0
- package/dist/parsers/biome.js.map +1 -0
- package/dist/parsers/clang.d.ts +9 -0
- package/dist/parsers/clang.d.ts.map +1 -0
- package/dist/parsers/clang.js +99 -0
- package/dist/parsers/clang.js.map +1 -0
- package/dist/parsers/deno.d.ts +8 -0
- package/dist/parsers/deno.d.ts.map +1 -0
- package/dist/parsers/deno.js +73 -0
- package/dist/parsers/deno.js.map +1 -0
- package/dist/parsers/dotnet.d.ts +9 -0
- package/dist/parsers/dotnet.d.ts.map +1 -0
- package/dist/parsers/dotnet.js +89 -0
- package/dist/parsers/dotnet.js.map +1 -0
- package/dist/parsers/elixir.d.ts +7 -0
- package/dist/parsers/elixir.d.ts.map +1 -0
- package/dist/parsers/elixir.js +59 -0
- package/dist/parsers/elixir.js.map +1 -0
- package/dist/parsers/eslint.d.ts +7 -0
- package/dist/parsers/eslint.d.ts.map +1 -0
- package/dist/parsers/eslint.js +43 -0
- package/dist/parsers/eslint.js.map +1 -0
- package/dist/parsers/flake8.d.ts +10 -0
- package/dist/parsers/flake8.d.ts.map +1 -0
- package/dist/parsers/flake8.js +89 -0
- package/dist/parsers/flake8.js.map +1 -0
- package/dist/parsers/gitignore.d.ts +11 -0
- package/dist/parsers/gitignore.d.ts.map +1 -0
- package/dist/parsers/gitignore.js +72 -0
- package/dist/parsers/gitignore.js.map +1 -0
- package/dist/parsers/gitleaks.d.ts +8 -0
- package/dist/parsers/gitleaks.d.ts.map +1 -0
- package/dist/parsers/gitleaks.js +127 -0
- package/dist/parsers/gitleaks.js.map +1 -0
- package/dist/parsers/golangci.d.ts +7 -0
- package/dist/parsers/golangci.d.ts.map +1 -0
- package/dist/parsers/golangci.js +73 -0
- package/dist/parsers/golangci.js.map +1 -0
- package/dist/parsers/hadolint.d.ts +8 -0
- package/dist/parsers/hadolint.d.ts.map +1 -0
- package/dist/parsers/hadolint.js +95 -0
- package/dist/parsers/hadolint.js.map +1 -0
- package/dist/parsers/index.d.ts +38 -0
- package/dist/parsers/index.d.ts.map +1 -0
- package/dist/parsers/index.js +154 -0
- package/dist/parsers/index.js.map +1 -0
- package/dist/parsers/java.d.ts +11 -0
- package/dist/parsers/java.d.ts.map +1 -0
- package/dist/parsers/java.js +75 -0
- package/dist/parsers/java.js.map +1 -0
- package/dist/parsers/jest.d.ts +7 -0
- package/dist/parsers/jest.d.ts.map +1 -0
- package/dist/parsers/jest.js +118 -0
- package/dist/parsers/jest.js.map +1 -0
- package/dist/parsers/kotlin.d.ts +7 -0
- package/dist/parsers/kotlin.d.ts.map +1 -0
- package/dist/parsers/kotlin.js +90 -0
- package/dist/parsers/kotlin.js.map +1 -0
- package/dist/parsers/markdown.d.ts +7 -0
- package/dist/parsers/markdown.d.ts.map +1 -0
- package/dist/parsers/markdown.js +40 -0
- package/dist/parsers/markdown.js.map +1 -0
- package/dist/parsers/php.d.ts +9 -0
- package/dist/parsers/php.d.ts.map +1 -0
- package/dist/parsers/php.js +92 -0
- package/dist/parsers/php.js.map +1 -0
- package/dist/parsers/prettier.d.ts +7 -0
- package/dist/parsers/prettier.d.ts.map +1 -0
- package/dist/parsers/prettier.js +43 -0
- package/dist/parsers/prettier.js.map +1 -0
- package/dist/parsers/pylint.d.ts +8 -0
- package/dist/parsers/pylint.d.ts.map +1 -0
- package/dist/parsers/pylint.js +92 -0
- package/dist/parsers/pylint.js.map +1 -0
- package/dist/parsers/pyproject.d.ts +7 -0
- package/dist/parsers/pyproject.d.ts.map +1 -0
- package/dist/parsers/pyproject.js +127 -0
- package/dist/parsers/pyproject.js.map +1 -0
- package/dist/parsers/pyright.d.ts +8 -0
- package/dist/parsers/pyright.d.ts.map +1 -0
- package/dist/parsers/pyright.js +63 -0
- package/dist/parsers/pyright.js.map +1 -0
- package/dist/parsers/rubocop.d.ts +7 -0
- package/dist/parsers/rubocop.d.ts.map +1 -0
- package/dist/parsers/rubocop.js +102 -0
- package/dist/parsers/rubocop.js.map +1 -0
- package/dist/parsers/rust.d.ts +9 -0
- package/dist/parsers/rust.d.ts.map +1 -0
- package/dist/parsers/rust.js +68 -0
- package/dist/parsers/rust.js.map +1 -0
- package/dist/parsers/scala.d.ts +9 -0
- package/dist/parsers/scala.d.ts.map +1 -0
- package/dist/parsers/scala.js +72 -0
- package/dist/parsers/scala.js.map +1 -0
- package/dist/parsers/semgrep.d.ts +10 -0
- package/dist/parsers/semgrep.d.ts.map +1 -0
- package/dist/parsers/semgrep.js +111 -0
- package/dist/parsers/semgrep.js.map +1 -0
- package/dist/parsers/shellcheck.d.ts +8 -0
- package/dist/parsers/shellcheck.d.ts.map +1 -0
- package/dist/parsers/shellcheck.js +49 -0
- package/dist/parsers/shellcheck.js.map +1 -0
- package/dist/parsers/stylelint.d.ts +9 -0
- package/dist/parsers/stylelint.d.ts.map +1 -0
- package/dist/parsers/stylelint.js +95 -0
- package/dist/parsers/stylelint.js.map +1 -0
- package/dist/parsers/swift.d.ts +7 -0
- package/dist/parsers/swift.d.ts.map +1 -0
- package/dist/parsers/swift.js +64 -0
- package/dist/parsers/swift.js.map +1 -0
- package/dist/parsers/tflint.d.ts +8 -0
- package/dist/parsers/tflint.d.ts.map +1 -0
- package/dist/parsers/tflint.js +59 -0
- package/dist/parsers/tflint.js.map +1 -0
- package/dist/parsers/typescript.d.ts +7 -0
- package/dist/parsers/typescript.d.ts.map +1 -0
- package/dist/parsers/typescript.js +138 -0
- package/dist/parsers/typescript.js.map +1 -0
- package/dist/parsers/yamllint.d.ts +8 -0
- package/dist/parsers/yamllint.d.ts.map +1 -0
- package/dist/parsers/yamllint.js +93 -0
- package/dist/parsers/yamllint.js.map +1 -0
- package/dist/plugin/registry.d.ts +20 -0
- package/dist/plugin/registry.d.ts.map +1 -0
- package/dist/plugin/registry.js +52 -0
- package/dist/plugin/registry.js.map +1 -0
- package/dist/plugin/types.d.ts +16 -0
- package/dist/plugin/types.d.ts.map +1 -0
- package/dist/plugin/types.js +5 -0
- package/dist/plugin/types.js.map +1 -0
- package/dist/validator/glob.d.ts +16 -0
- package/dist/validator/glob.d.ts.map +1 -0
- package/dist/validator/glob.js +44 -0
- package/dist/validator/glob.js.map +1 -0
- package/dist/validator/regex.d.ts +10 -0
- package/dist/validator/regex.d.ts.map +1 -0
- package/dist/validator/regex.js +45 -0
- package/dist/validator/regex.js.map +1 -0
- package/dist/validator/validator.d.ts +17 -0
- package/dist/validator/validator.d.ts.map +1 -0
- package/dist/validator/validator.js +85 -0
- package/dist/validator/validator.js.map +1 -0
- package/package.json +75 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bandit.js","sourceRoot":"","sources":["../../src/parsers/bandit.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAE1C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAUrD,yBAAyB;AACzB,SAAS,WAAW,CAAC,SAAiB,EAAE,OAAe;IACrD,MAAM,QAAQ,GAAc,EAAE,CAAC;IAE/B,IAAI,MAAoB,CAAC;IACzB,IAAI,CAAC;QACH,MAAM,GAAG,SAAS,CAAC,OAAO,CAAiB,CAAC;IAC9C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,2CAA2C;IAC3C,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IAEtC,iDAAiD;IACjD,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAErE,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;YAAE,SAAS;QAElD,KAAK,MAAM,OAAO,IAAI,OAAO,EAAE,CAAC;YAC9B,IAAI,OAAO,OAAO,KAAK,QAAQ;gBAAE,SAAS;YAE1C,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACtC,MAAM,IAAI,GAAG,QAAQ,EAAE,IAAI,IAAI,CAAC,CAAC;YACjC,MAAM,MAAM,GAAG,QAAQ,EAAE,MAAM,CAAC;YAEhC,MAAM,IAAI,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC;YAE1E,QAAQ,CAAC,IAAI,CAAC;gBACZ,KAAK,EAAE,OAAO;gBACd,IAAI;gBACJ,IAAI;gBACJ,MAAM;aACP,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,yDAAyD;AACzD,SAAS,YAAY,CAAC,OAAe;IACnC,MAAM,GAAG,GAAG,IAAI,GAAG,EAA6C,CAAC;IACjE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAElC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;QAEtB,0CAA0C;QAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,8BAA8B,CAAC,CAAC;QAC9D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;YAC/B,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC7B,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,iCAAiC;AACjC,MAAM,CAAC,MAAM,YAAY,GAAW;IAClC,IAAI,EAAE,QAAQ;IACd,YAAY,EAAE,CAAC,SAAS,EAAE,YAAY,CAAC;IACvC,KAAK,EAAE,WAAW;CACnB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parser for Biome configuration files
|
|
3
|
+
* Biome is a fast formatter and linter for JavaScript, TypeScript, JSX, and JSON
|
|
4
|
+
*/
|
|
5
|
+
import type { Parser } from '../plugin/types.js';
|
|
6
|
+
/** Biome configuration parser */
|
|
7
|
+
export declare const biomeParser: Parser;
|
|
8
|
+
//# sourceMappingURL=biome.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"biome.d.ts","sourceRoot":"","sources":["../../src/parsers/biome.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAgGjD,iCAAiC;AACjC,eAAO,MAAM,WAAW,EAAE,MAIzB,CAAC"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parser for Biome configuration files
|
|
3
|
+
* Biome is a fast formatter and linter for JavaScript, TypeScript, JSX, and JSON
|
|
4
|
+
*/
|
|
5
|
+
import { PatternType } from '../core/types.js';
|
|
6
|
+
import { isGlobPattern } from '../validator/glob.js';
|
|
7
|
+
/** Parse biome.json/biome.jsonc file */
|
|
8
|
+
function parseBiome(_filename, content) {
|
|
9
|
+
const patterns = [];
|
|
10
|
+
let config;
|
|
11
|
+
try {
|
|
12
|
+
// Strip JSONC comments (simple approach - handles // and /* */ comments)
|
|
13
|
+
const cleanContent = content.replace(/\/\*[\s\S]*?\*\//g, '').replace(/\/\/.*/g, '');
|
|
14
|
+
config = JSON.parse(cleanContent);
|
|
15
|
+
}
|
|
16
|
+
catch {
|
|
17
|
+
return patterns;
|
|
18
|
+
}
|
|
19
|
+
// Build a line map to track line numbers
|
|
20
|
+
const lineMap = buildLineMap(content);
|
|
21
|
+
// Extract patterns from various sections
|
|
22
|
+
const sections = [
|
|
23
|
+
config.files?.ignore,
|
|
24
|
+
config.files?.include,
|
|
25
|
+
config.linter?.ignore,
|
|
26
|
+
config.linter?.include,
|
|
27
|
+
config.formatter?.ignore,
|
|
28
|
+
config.formatter?.include
|
|
29
|
+
];
|
|
30
|
+
for (const section of sections) {
|
|
31
|
+
if (!section || !Array.isArray(section))
|
|
32
|
+
continue;
|
|
33
|
+
for (const pattern of section) {
|
|
34
|
+
if (typeof pattern !== 'string')
|
|
35
|
+
continue;
|
|
36
|
+
const lineInfo = lineMap.get(pattern);
|
|
37
|
+
const line = lineInfo?.line ?? 1;
|
|
38
|
+
const column = lineInfo?.column;
|
|
39
|
+
const type = isGlobPattern(pattern) ? PatternType.GLOB : PatternType.PATH;
|
|
40
|
+
patterns.push({
|
|
41
|
+
value: pattern,
|
|
42
|
+
type,
|
|
43
|
+
line,
|
|
44
|
+
column
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return patterns;
|
|
49
|
+
}
|
|
50
|
+
/** Build a map of string values to their line numbers */
|
|
51
|
+
function buildLineMap(content) {
|
|
52
|
+
const map = new Map();
|
|
53
|
+
const lines = content.split('\n');
|
|
54
|
+
for (let i = 0; i < lines.length; i++) {
|
|
55
|
+
const line = lines[i];
|
|
56
|
+
const lineNum = i + 1;
|
|
57
|
+
// Match quoted strings
|
|
58
|
+
const stringMatches = line.matchAll(/"([^"]+)"/g);
|
|
59
|
+
for (const match of stringMatches) {
|
|
60
|
+
const value = match[1];
|
|
61
|
+
if (value && !map.has(value)) {
|
|
62
|
+
map.set(value, { line: lineNum, column: (match.index ?? 0) + 1 });
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return map;
|
|
67
|
+
}
|
|
68
|
+
/** Biome configuration parser */
|
|
69
|
+
export const biomeParser = {
|
|
70
|
+
name: 'biome',
|
|
71
|
+
filePatterns: ['biome.json', 'biome.jsonc', '**/biome.json', '**/biome.jsonc'],
|
|
72
|
+
parse: parseBiome
|
|
73
|
+
};
|
|
74
|
+
//# sourceMappingURL=biome.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"biome.js","sourceRoot":"","sources":["../../src/parsers/biome.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parser for C/C++ configuration files (.clang-format, .clang-tidy)
|
|
3
|
+
*/
|
|
4
|
+
import type { Parser } from '../plugin/types.js';
|
|
5
|
+
/** Clang-Tidy parser */
|
|
6
|
+
export declare const clangTidyParser: Parser;
|
|
7
|
+
/** Clang-Format parser */
|
|
8
|
+
export declare const clangFormatParser: Parser;
|
|
9
|
+
//# sourceMappingURL=clang.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clang.d.ts","sourceRoot":"","sources":["../../src/parsers/clang.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AA2GjD,wBAAwB;AACxB,eAAO,MAAM,eAAe,EAAE,MAI7B,CAAC;AAEF,0BAA0B;AAC1B,eAAO,MAAM,iBAAiB,EAAE,MAI/B,CAAC"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parser for C/C++ configuration files (.clang-format, .clang-tidy)
|
|
3
|
+
*/
|
|
4
|
+
import { parse as parseYaml } from 'yaml';
|
|
5
|
+
import { PatternType } from '../core/types.js';
|
|
6
|
+
import { isGlobPattern } from '../validator/glob.js';
|
|
7
|
+
import { looksLikeRegex } from '../validator/regex.js';
|
|
8
|
+
/** Parse .clang-tidy and extract patterns */
|
|
9
|
+
function parseClangTidy(_filename, content) {
|
|
10
|
+
const patterns = [];
|
|
11
|
+
let config;
|
|
12
|
+
try {
|
|
13
|
+
config = parseYaml(content);
|
|
14
|
+
}
|
|
15
|
+
catch {
|
|
16
|
+
return patterns;
|
|
17
|
+
}
|
|
18
|
+
if (!config || typeof config !== 'object') {
|
|
19
|
+
return patterns;
|
|
20
|
+
}
|
|
21
|
+
const lineMap = buildLineMap(content);
|
|
22
|
+
// Extract header filter regexes
|
|
23
|
+
if (typeof config.HeaderFilterRegex === 'string') {
|
|
24
|
+
const value = config.HeaderFilterRegex;
|
|
25
|
+
const lineInfo = lineMap.get(value);
|
|
26
|
+
patterns.push({
|
|
27
|
+
value,
|
|
28
|
+
type: looksLikeRegex(value) ? PatternType.REGEX : PatternType.GLOB,
|
|
29
|
+
line: lineInfo?.line ?? 1,
|
|
30
|
+
column: lineInfo?.column
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
if (typeof config.ExcludeHeaderFilterRegex === 'string') {
|
|
34
|
+
const value = config.ExcludeHeaderFilterRegex;
|
|
35
|
+
const lineInfo = lineMap.get(value);
|
|
36
|
+
patterns.push({
|
|
37
|
+
value,
|
|
38
|
+
type: looksLikeRegex(value) ? PatternType.REGEX : PatternType.GLOB,
|
|
39
|
+
line: lineInfo?.line ?? 1,
|
|
40
|
+
column: lineInfo?.column
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
return patterns;
|
|
44
|
+
}
|
|
45
|
+
/** Parse .clang-format - typically doesn't have file patterns, but may have some */
|
|
46
|
+
function parseClangFormat(_filename, content) {
|
|
47
|
+
const patterns = [];
|
|
48
|
+
const lines = content.split('\n');
|
|
49
|
+
for (let i = 0; i < lines.length; i++) {
|
|
50
|
+
const line = lines[i];
|
|
51
|
+
const lineNum = i + 1;
|
|
52
|
+
// Look for file-related directives
|
|
53
|
+
const match = line.match(/^\s*(?:IncludeCategories|SortIncludes).*["']([^"']+)["']/);
|
|
54
|
+
if (match) {
|
|
55
|
+
const value = match[1];
|
|
56
|
+
const type = isGlobPattern(value)
|
|
57
|
+
? PatternType.GLOB
|
|
58
|
+
: looksLikeRegex(value)
|
|
59
|
+
? PatternType.REGEX
|
|
60
|
+
: PatternType.PATH;
|
|
61
|
+
patterns.push({
|
|
62
|
+
value,
|
|
63
|
+
type,
|
|
64
|
+
line: lineNum,
|
|
65
|
+
column: line.indexOf(value) + 1
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
return patterns;
|
|
70
|
+
}
|
|
71
|
+
function buildLineMap(content) {
|
|
72
|
+
const map = new Map();
|
|
73
|
+
const lines = content.split('\n');
|
|
74
|
+
for (let i = 0; i < lines.length; i++) {
|
|
75
|
+
const line = lines[i];
|
|
76
|
+
const lineNum = i + 1;
|
|
77
|
+
const stringMatches = line.matchAll(/["']([^"']+)["']/g);
|
|
78
|
+
for (const match of stringMatches) {
|
|
79
|
+
const value = match[1];
|
|
80
|
+
if (value && !map.has(value)) {
|
|
81
|
+
map.set(value, { line: lineNum, column: (match.index ?? 0) + 1 });
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return map;
|
|
86
|
+
}
|
|
87
|
+
/** Clang-Tidy parser */
|
|
88
|
+
export const clangTidyParser = {
|
|
89
|
+
name: 'clang-tidy',
|
|
90
|
+
filePatterns: ['.clang-tidy', '**/.clang-tidy'],
|
|
91
|
+
parse: parseClangTidy
|
|
92
|
+
};
|
|
93
|
+
/** Clang-Format parser */
|
|
94
|
+
export const clangFormatParser = {
|
|
95
|
+
name: 'clang-format',
|
|
96
|
+
filePatterns: ['.clang-format', '**/.clang-format', '_clang-format', '**/_clang-format'],
|
|
97
|
+
parse: parseClangFormat
|
|
98
|
+
};
|
|
99
|
+
//# sourceMappingURL=clang.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clang.js","sourceRoot":"","sources":["../../src/parsers/clang.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parser for Deno configuration files
|
|
3
|
+
* Deno is a modern runtime for JavaScript and TypeScript
|
|
4
|
+
*/
|
|
5
|
+
import type { Parser } from '../plugin/types.js';
|
|
6
|
+
/** Deno configuration parser */
|
|
7
|
+
export declare const denoParser: Parser;
|
|
8
|
+
//# sourceMappingURL=deno.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deno.d.ts","sourceRoot":"","sources":["../../src/parsers/deno.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AA2FjD,gCAAgC;AAChC,eAAO,MAAM,UAAU,EAAE,MAIxB,CAAC"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parser for Deno configuration files
|
|
3
|
+
* Deno is a modern runtime for JavaScript and TypeScript
|
|
4
|
+
*/
|
|
5
|
+
import { PatternType } from '../core/types.js';
|
|
6
|
+
import { isGlobPattern } from '../validator/glob.js';
|
|
7
|
+
/** Parse deno.json/deno.jsonc file */
|
|
8
|
+
function parseDeno(_filename, content) {
|
|
9
|
+
const patterns = [];
|
|
10
|
+
let config;
|
|
11
|
+
try {
|
|
12
|
+
// Strip JSONC comments (simple approach - handles // and /* */ comments)
|
|
13
|
+
const cleanContent = content.replace(/\/\*[\s\S]*?\*\//g, '').replace(/\/\/.*/g, '');
|
|
14
|
+
config = JSON.parse(cleanContent);
|
|
15
|
+
}
|
|
16
|
+
catch {
|
|
17
|
+
return patterns;
|
|
18
|
+
}
|
|
19
|
+
const lineMap = buildLineMap(content);
|
|
20
|
+
// Extract patterns from various sections
|
|
21
|
+
const sections = [
|
|
22
|
+
config.exclude,
|
|
23
|
+
config.lint?.exclude,
|
|
24
|
+
config.lint?.include,
|
|
25
|
+
config.fmt?.exclude,
|
|
26
|
+
config.fmt?.include,
|
|
27
|
+
config.test?.exclude,
|
|
28
|
+
config.test?.include
|
|
29
|
+
];
|
|
30
|
+
for (const section of sections) {
|
|
31
|
+
if (!section || !Array.isArray(section))
|
|
32
|
+
continue;
|
|
33
|
+
for (const pattern of section) {
|
|
34
|
+
if (typeof pattern !== 'string')
|
|
35
|
+
continue;
|
|
36
|
+
const lineInfo = lineMap.get(pattern);
|
|
37
|
+
const line = lineInfo?.line ?? 1;
|
|
38
|
+
const column = lineInfo?.column;
|
|
39
|
+
const type = isGlobPattern(pattern) ? PatternType.GLOB : PatternType.PATH;
|
|
40
|
+
patterns.push({
|
|
41
|
+
value: pattern,
|
|
42
|
+
type,
|
|
43
|
+
line,
|
|
44
|
+
column
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return patterns;
|
|
49
|
+
}
|
|
50
|
+
/** Build a map of string values to their line numbers */
|
|
51
|
+
function buildLineMap(content) {
|
|
52
|
+
const map = new Map();
|
|
53
|
+
const lines = content.split('\n');
|
|
54
|
+
for (let i = 0; i < lines.length; i++) {
|
|
55
|
+
const line = lines[i];
|
|
56
|
+
const lineNum = i + 1;
|
|
57
|
+
const stringMatches = line.matchAll(/"([^"]+)"/g);
|
|
58
|
+
for (const match of stringMatches) {
|
|
59
|
+
const value = match[1];
|
|
60
|
+
if (value && !map.has(value)) {
|
|
61
|
+
map.set(value, { line: lineNum, column: (match.index ?? 0) + 1 });
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return map;
|
|
66
|
+
}
|
|
67
|
+
/** Deno configuration parser */
|
|
68
|
+
export const denoParser = {
|
|
69
|
+
name: 'deno',
|
|
70
|
+
filePatterns: ['deno.json', 'deno.jsonc', '**/deno.json', '**/deno.jsonc'],
|
|
71
|
+
parse: parseDeno
|
|
72
|
+
};
|
|
73
|
+
//# sourceMappingURL=deno.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deno.js","sourceRoot":"","sources":["../../src/parsers/deno.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parser for .NET configuration files (.editorconfig, Directory.Build.props)
|
|
3
|
+
*/
|
|
4
|
+
import type { Parser } from '../plugin/types.js';
|
|
5
|
+
/** EditorConfig parser */
|
|
6
|
+
export declare const editorConfigParser: Parser;
|
|
7
|
+
/** Directory.Build.props parser */
|
|
8
|
+
export declare const buildPropsParser: Parser;
|
|
9
|
+
//# sourceMappingURL=dotnet.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dotnet.d.ts","sourceRoot":"","sources":["../../src/parsers/dotnet.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAiFjD,0BAA0B;AAC1B,eAAO,MAAM,kBAAkB,EAAE,MAIhC,CAAC;AAEF,mCAAmC;AACnC,eAAO,MAAM,gBAAgB,EAAE,MAS9B,CAAC"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parser for .NET configuration files (.editorconfig, Directory.Build.props)
|
|
3
|
+
*/
|
|
4
|
+
import { PatternType } from '../core/types.js';
|
|
5
|
+
import { isGlobPattern } from '../validator/glob.js';
|
|
6
|
+
/** Parse .editorconfig and extract file patterns */
|
|
7
|
+
function parseEditorConfig(_filename, content) {
|
|
8
|
+
const patterns = [];
|
|
9
|
+
const lines = content.split('\n');
|
|
10
|
+
for (let i = 0; i < lines.length; i++) {
|
|
11
|
+
const line = lines[i];
|
|
12
|
+
const lineNum = i + 1;
|
|
13
|
+
const trimmed = line.trim();
|
|
14
|
+
// Skip comments and empty lines
|
|
15
|
+
if (!trimmed || trimmed.startsWith('#') || trimmed.startsWith(';')) {
|
|
16
|
+
continue;
|
|
17
|
+
}
|
|
18
|
+
// Match section headers like [*.cs] or [*.{js,ts}]
|
|
19
|
+
const sectionMatch = trimmed.match(/^\[([^\]]+)\]$/);
|
|
20
|
+
if (sectionMatch) {
|
|
21
|
+
const value = sectionMatch[1];
|
|
22
|
+
// Skip root indicator
|
|
23
|
+
if (value === '*')
|
|
24
|
+
continue;
|
|
25
|
+
const type = isGlobPattern(value) ? PatternType.GLOB : PatternType.PATH;
|
|
26
|
+
patterns.push({
|
|
27
|
+
value,
|
|
28
|
+
type,
|
|
29
|
+
line: lineNum,
|
|
30
|
+
column: 2 // After the [
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return patterns;
|
|
35
|
+
}
|
|
36
|
+
/** Parse Directory.Build.props and extract file patterns */
|
|
37
|
+
function parseBuildProps(_filename, content) {
|
|
38
|
+
const patterns = [];
|
|
39
|
+
const lines = content.split('\n');
|
|
40
|
+
// Regex patterns for MSBuild file patterns
|
|
41
|
+
const filePatternRegexes = [
|
|
42
|
+
// <Compile Include="..." /> or <Compile Remove="..." />
|
|
43
|
+
/<(?:Compile|Content|None|EmbeddedResource)[^>]*\s(?:Include|Remove|Exclude)\s*=\s*["']([^"']+)["']/gi,
|
|
44
|
+
// <ProjectReference Include="..." />
|
|
45
|
+
/<ProjectReference[^>]*\sInclude\s*=\s*["']([^"']+)["']/gi
|
|
46
|
+
];
|
|
47
|
+
for (let i = 0; i < lines.length; i++) {
|
|
48
|
+
const line = lines[i];
|
|
49
|
+
const lineNum = i + 1;
|
|
50
|
+
for (const regex of filePatternRegexes) {
|
|
51
|
+
regex.lastIndex = 0;
|
|
52
|
+
let match;
|
|
53
|
+
while ((match = regex.exec(line)) !== null) {
|
|
54
|
+
const value = match[1];
|
|
55
|
+
if (!value)
|
|
56
|
+
continue;
|
|
57
|
+
// Skip MSBuild variables
|
|
58
|
+
if (value.includes('$('))
|
|
59
|
+
continue;
|
|
60
|
+
const type = isGlobPattern(value) ? PatternType.GLOB : PatternType.PATH;
|
|
61
|
+
patterns.push({
|
|
62
|
+
value,
|
|
63
|
+
type,
|
|
64
|
+
line: lineNum,
|
|
65
|
+
column: (match.index ?? 0) + 1
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return patterns;
|
|
71
|
+
}
|
|
72
|
+
/** EditorConfig parser */
|
|
73
|
+
export const editorConfigParser = {
|
|
74
|
+
name: 'editorconfig',
|
|
75
|
+
filePatterns: ['.editorconfig', '**/.editorconfig'],
|
|
76
|
+
parse: parseEditorConfig
|
|
77
|
+
};
|
|
78
|
+
/** Directory.Build.props parser */
|
|
79
|
+
export const buildPropsParser = {
|
|
80
|
+
name: 'msbuild',
|
|
81
|
+
filePatterns: [
|
|
82
|
+
'Directory.Build.props',
|
|
83
|
+
'Directory.Build.targets',
|
|
84
|
+
'**/Directory.Build.props',
|
|
85
|
+
'**/Directory.Build.targets'
|
|
86
|
+
],
|
|
87
|
+
parse: parseBuildProps
|
|
88
|
+
};
|
|
89
|
+
//# sourceMappingURL=dotnet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dotnet.js","sourceRoot":"","sources":["../../src/parsers/dotnet.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"elixir.d.ts","sourceRoot":"","sources":["../../src/parsers/elixir.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAyDjD,mBAAmB;AACnB,eAAO,MAAM,WAAW,EAAE,MAIzB,CAAC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parser for Elixir linter configuration (.credo.exs)
|
|
3
|
+
*/
|
|
4
|
+
import { PatternType } from '../core/types.js';
|
|
5
|
+
import { isGlobPattern } from '../validator/glob.js';
|
|
6
|
+
import { looksLikeRegex } from '../validator/regex.js';
|
|
7
|
+
/** Parse .credo.exs and extract patterns */
|
|
8
|
+
function parseCredoConfig(_filename, content) {
|
|
9
|
+
const patterns = [];
|
|
10
|
+
const lines = content.split('\n');
|
|
11
|
+
// Look for included/excluded patterns in Elixir syntax
|
|
12
|
+
// included: [~r"lib/", ~r"src/"]
|
|
13
|
+
// excluded: [~r"test/"]
|
|
14
|
+
for (let i = 0; i < lines.length; i++) {
|
|
15
|
+
const line = lines[i];
|
|
16
|
+
const lineNum = i + 1;
|
|
17
|
+
// Match Elixir regex patterns ~r"..." or ~r/.../ or ~r{...}
|
|
18
|
+
const regexMatches = line.matchAll(/~r["/{}]([^"/{}]+)["/{}]/g);
|
|
19
|
+
for (const match of regexMatches) {
|
|
20
|
+
const value = match[1];
|
|
21
|
+
if (!value)
|
|
22
|
+
continue;
|
|
23
|
+
patterns.push({
|
|
24
|
+
value,
|
|
25
|
+
type: looksLikeRegex(value) ? PatternType.REGEX : PatternType.GLOB,
|
|
26
|
+
line: lineNum,
|
|
27
|
+
column: (match.index ?? 0) + 1
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
// Match quoted strings that look like paths
|
|
31
|
+
const stringMatches = line.matchAll(/"([^"]+)"/g);
|
|
32
|
+
for (const match of stringMatches) {
|
|
33
|
+
const value = match[1];
|
|
34
|
+
if (!value)
|
|
35
|
+
continue;
|
|
36
|
+
// Skip if it's part of a config key or looks like a URL
|
|
37
|
+
if (value.includes(':') || value.startsWith('http'))
|
|
38
|
+
continue;
|
|
39
|
+
// Only include if it looks like a path or glob
|
|
40
|
+
if (value.includes('/') || isGlobPattern(value)) {
|
|
41
|
+
const type = isGlobPattern(value) ? PatternType.GLOB : PatternType.PATH;
|
|
42
|
+
patterns.push({
|
|
43
|
+
value,
|
|
44
|
+
type,
|
|
45
|
+
line: lineNum,
|
|
46
|
+
column: (match.index ?? 0) + 1
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return patterns;
|
|
52
|
+
}
|
|
53
|
+
/** Credo parser */
|
|
54
|
+
export const credoParser = {
|
|
55
|
+
name: 'credo',
|
|
56
|
+
filePatterns: ['.credo.exs', '**/.credo.exs'],
|
|
57
|
+
parse: parseCredoConfig
|
|
58
|
+
};
|
|
59
|
+
//# sourceMappingURL=elixir.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"elixir.js","sourceRoot":"","sources":["../../src/parsers/elixir.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,4CAA4C;AAC5C,SAAS,gBAAgB,CAAC,SAAiB,EAAE,OAAe;IAC1D,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAElC,uDAAuD;IACvD,iCAAiC;IACjC,wBAAwB;IAExB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;QAEtB,4DAA4D;QAC5D,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,2BAA2B,CAAC,CAAC;QAChE,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;YACjC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACvB,IAAI,CAAC,KAAK;gBAAE,SAAS;YAErB,QAAQ,CAAC,IAAI,CAAC;gBACZ,KAAK;gBACL,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI;gBAClE,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC;aAC/B,CAAC,CAAC;QACL,CAAC;QAED,4CAA4C;QAC5C,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAClD,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;YAClC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACvB,IAAI,CAAC,KAAK;gBAAE,SAAS;YAErB,wDAAwD;YACxD,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC;gBAAE,SAAS;YAE9D,+CAA+C;YAC/C,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;gBAChD,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC;gBAExE,QAAQ,CAAC,IAAI,CAAC;oBACZ,KAAK;oBACL,IAAI;oBACJ,IAAI,EAAE,OAAO;oBACb,MAAM,EAAE,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC;iBAC/B,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,mBAAmB;AACnB,MAAM,CAAC,MAAM,WAAW,GAAW;IACjC,IAAI,EAAE,OAAO;IACb,YAAY,EAAE,CAAC,YAAY,EAAE,eAAe,CAAC;IAC7C,KAAK,EAAE,gBAAgB;CACxB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eslint.d.ts","sourceRoot":"","sources":["../../src/parsers/eslint.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAyCjD,gCAAgC;AAChC,eAAO,MAAM,kBAAkB,EAAE,MAIhC,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parser for ESLint ignore files and configs
|
|
3
|
+
*/
|
|
4
|
+
import { PatternType } from '../core/types.js';
|
|
5
|
+
import { isGlobPattern } from '../validator/glob.js';
|
|
6
|
+
/** Parse .eslintignore file (same format as .gitignore) */
|
|
7
|
+
function parseEslintIgnore(_filename, content) {
|
|
8
|
+
const patterns = [];
|
|
9
|
+
const lines = content.split('\n');
|
|
10
|
+
for (let i = 0; i < lines.length; i++) {
|
|
11
|
+
const line = lines[i];
|
|
12
|
+
const lineNum = i + 1;
|
|
13
|
+
// Skip empty lines and comments
|
|
14
|
+
const trimmed = line.trim();
|
|
15
|
+
if (!trimmed || trimmed.startsWith('#')) {
|
|
16
|
+
continue;
|
|
17
|
+
}
|
|
18
|
+
// Check for negation
|
|
19
|
+
let patternValue = trimmed;
|
|
20
|
+
let negated = false;
|
|
21
|
+
if (patternValue.startsWith('!')) {
|
|
22
|
+
negated = true;
|
|
23
|
+
patternValue = patternValue.slice(1);
|
|
24
|
+
}
|
|
25
|
+
// Determine pattern type
|
|
26
|
+
const type = isGlobPattern(patternValue) ? PatternType.GLOB : PatternType.PATH;
|
|
27
|
+
patterns.push({
|
|
28
|
+
value: patternValue,
|
|
29
|
+
type,
|
|
30
|
+
line: lineNum,
|
|
31
|
+
column: 1,
|
|
32
|
+
negated
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
return patterns;
|
|
36
|
+
}
|
|
37
|
+
/** ESLint ignore file parser */
|
|
38
|
+
export const eslintIgnoreParser = {
|
|
39
|
+
name: 'eslintignore',
|
|
40
|
+
filePatterns: ['.eslintignore', '**/.eslintignore'],
|
|
41
|
+
parse: parseEslintIgnore
|
|
42
|
+
};
|
|
43
|
+
//# sourceMappingURL=eslint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eslint.js","sourceRoot":"","sources":["../../src/parsers/eslint.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,2DAA2D;AAC3D,SAAS,iBAAiB,CAAC,SAAiB,EAAE,OAAe;IAC3D,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAElC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;QAEtB,gCAAgC;QAChC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACxC,SAAS;QACX,CAAC;QAED,qBAAqB;QACrB,IAAI,YAAY,GAAG,OAAO,CAAC;QAC3B,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACjC,OAAO,GAAG,IAAI,CAAC;YACf,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACvC,CAAC;QAED,yBAAyB;QACzB,MAAM,IAAI,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC;QAE/E,QAAQ,CAAC,IAAI,CAAC;YACZ,KAAK,EAAE,YAAY;YACnB,IAAI;YACJ,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,CAAC;YACT,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,gCAAgC;AAChC,MAAM,CAAC,MAAM,kBAAkB,GAAW;IACxC,IAAI,EAAE,cAAc;IACpB,YAAY,EAAE,CAAC,eAAe,EAAE,kBAAkB,CAAC;IACnD,KAAK,EAAE,iBAAiB;CACzB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parser for Flake8 configuration files
|
|
3
|
+
* Flake8 is a Python linting tool that checks for PEP 8 compliance
|
|
4
|
+
*/
|
|
5
|
+
import type { Parser } from '../plugin/types.js';
|
|
6
|
+
/** Flake8 .flake8 file parser */
|
|
7
|
+
export declare const flake8Parser: Parser;
|
|
8
|
+
/** Flake8 setup.cfg parser (only processes [flake8] section) */
|
|
9
|
+
export declare const flake8SetupCfgParser: Parser;
|
|
10
|
+
//# sourceMappingURL=flake8.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flake8.d.ts","sourceRoot":"","sources":["../../src/parsers/flake8.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAsFjD,iCAAiC;AACjC,eAAO,MAAM,YAAY,EAAE,MAI1B,CAAC;AAEF,gEAAgE;AAChE,eAAO,MAAM,oBAAoB,EAAE,MAIlC,CAAC"}
|