@flaid/devmap 0.4.0 → 0.5.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.
Files changed (78) hide show
  1. package/dist/analyzers/analysis/fileScanner.d.ts.map +1 -1
  2. package/dist/analyzers/analysis/fileScanner.js +34 -7
  3. package/dist/analyzers/analysis/fileScanner.js.map +1 -1
  4. package/dist/analyzers/analysis/filterEngine.d.ts +2 -0
  5. package/dist/analyzers/analysis/filterEngine.d.ts.map +1 -1
  6. package/dist/analyzers/analysis/filterEngine.js +57 -29
  7. package/dist/analyzers/analysis/filterEngine.js.map +1 -1
  8. package/dist/analyzers/analysis/index.d.ts +1 -0
  9. package/dist/analyzers/analysis/index.d.ts.map +1 -1
  10. package/dist/analyzers/analysis/index.js +1 -0
  11. package/dist/analyzers/analysis/index.js.map +1 -1
  12. package/dist/analyzers/analysis/jsonText.d.ts +7 -0
  13. package/dist/analyzers/analysis/jsonText.d.ts.map +1 -0
  14. package/dist/analyzers/analysis/jsonText.js +9 -0
  15. package/dist/analyzers/analysis/jsonText.js.map +1 -0
  16. package/dist/analyzers/analysis/tsMorphAnalyzer.d.ts.map +1 -1
  17. package/dist/analyzers/analysis/tsMorphAnalyzer.js +48 -11
  18. package/dist/analyzers/analysis/tsMorphAnalyzer.js.map +1 -1
  19. package/dist/analyzers/detectors/capabilityDetector.js +7 -3
  20. package/dist/analyzers/detectors/capabilityDetector.js.map +1 -1
  21. package/dist/analyzers/detectors/databaseDetector.d.ts +1 -1
  22. package/dist/analyzers/detectors/databaseDetector.d.ts.map +1 -1
  23. package/dist/analyzers/detectors/databaseDetector.js +2 -1
  24. package/dist/analyzers/detectors/databaseDetector.js.map +1 -1
  25. package/dist/analyzers/detectors/frameworkDetector.d.ts +1 -1
  26. package/dist/analyzers/detectors/frameworkDetector.d.ts.map +1 -1
  27. package/dist/analyzers/detectors/frameworkDetector.js +4 -2
  28. package/dist/analyzers/detectors/frameworkDetector.js.map +1 -1
  29. package/dist/analyzers/detectors/routeDetector.js +96 -25
  30. package/dist/analyzers/detectors/routeDetector.js.map +1 -1
  31. package/dist/analyzers/detectors/serviceDetector.d.ts +1 -1
  32. package/dist/analyzers/detectors/serviceDetector.d.ts.map +1 -1
  33. package/dist/analyzers/detectors/serviceDetector.js +2 -1
  34. package/dist/analyzers/detectors/serviceDetector.js.map +1 -1
  35. package/dist/analyzers/features/featureCandidates.d.ts.map +1 -1
  36. package/dist/analyzers/features/featureCandidates.js +48 -0
  37. package/dist/analyzers/features/featureCandidates.js.map +1 -1
  38. package/dist/analyzers/graph/aliasResolver.d.ts +28 -5
  39. package/dist/analyzers/graph/aliasResolver.d.ts.map +1 -1
  40. package/dist/analyzers/graph/aliasResolver.js +209 -34
  41. package/dist/analyzers/graph/aliasResolver.js.map +1 -1
  42. package/dist/analyzers/graph/dependencyGraph.d.ts.map +1 -1
  43. package/dist/analyzers/graph/dependencyGraph.js +71 -59
  44. package/dist/analyzers/graph/dependencyGraph.js.map +1 -1
  45. package/dist/analyzers/graph/entryPoints.d.ts.map +1 -1
  46. package/dist/analyzers/graph/entryPoints.js +16 -2
  47. package/dist/analyzers/graph/entryPoints.js.map +1 -1
  48. package/dist/analyzers/graph/index.d.ts +2 -2
  49. package/dist/analyzers/graph/index.d.ts.map +1 -1
  50. package/dist/analyzers/graph/index.js +2 -2
  51. package/dist/analyzers/graph/index.js.map +1 -1
  52. package/dist/analyzers/graph/sourceScope.d.ts +2 -0
  53. package/dist/analyzers/graph/sourceScope.d.ts.map +1 -1
  54. package/dist/analyzers/graph/sourceScope.js +23 -14
  55. package/dist/analyzers/graph/sourceScope.js.map +1 -1
  56. package/dist/analyzers/pipeline/heuristicAnalyzer.d.ts.map +1 -1
  57. package/dist/analyzers/pipeline/heuristicAnalyzer.js +10 -3
  58. package/dist/analyzers/pipeline/heuristicAnalyzer.js.map +1 -1
  59. package/dist/analyzers/pipeline/languageReaders.d.ts +8 -0
  60. package/dist/analyzers/pipeline/languageReaders.d.ts.map +1 -0
  61. package/dist/analyzers/pipeline/languageReaders.js +296 -0
  62. package/dist/analyzers/pipeline/languageReaders.js.map +1 -0
  63. package/dist/analyzers/pipeline/projectMap.d.ts.map +1 -1
  64. package/dist/analyzers/pipeline/projectMap.js +122 -109
  65. package/dist/analyzers/pipeline/projectMap.js.map +1 -1
  66. package/dist/analyzers/pipeline/projectMetadata.d.ts.map +1 -1
  67. package/dist/analyzers/pipeline/projectMetadata.js +33 -5
  68. package/dist/analyzers/pipeline/projectMetadata.js.map +1 -1
  69. package/dist/commands/analyze.js +0 -1
  70. package/dist/commands/analyze.js.map +1 -1
  71. package/dist/utils/output.d.ts +6 -0
  72. package/dist/utils/output.d.ts.map +1 -1
  73. package/dist/utils/output.js +49 -0
  74. package/dist/utils/output.js.map +1 -1
  75. package/dist/utils/welcome.d.ts.map +1 -1
  76. package/dist/utils/welcome.js +0 -12
  77. package/dist/utils/welcome.js.map +1 -1
  78. package/package.json +5 -5
@@ -1,30 +1,39 @@
1
+ // Test and fixture folders are never production code, at any depth.
1
2
  const NON_PRODUCTION_SEGMENTS = new Set([
2
3
  "__fixtures__",
3
4
  "__mocks__",
4
5
  "__tests__",
5
6
  "coverage",
6
- "demo",
7
- "docs",
8
- "example",
9
- "examples",
10
7
  "fixtures",
11
- "samples",
12
8
  "test",
13
9
  "tests"
14
10
  ]);
11
+ // Sample material is only recognised where a repo keeps it (the root or a
12
+ // workspace member's root). A product feature that happens to live in
13
+ // src/features/demo or src/docs is real code.
14
+ const SAMPLE_SEGMENTS = new Set(["demo", "docs", "example", "examples", "samples"]);
15
+ const WORKSPACE_PARENTS = new Set(["apps", "packages", "libs", "services", "projects"]);
16
+ const TEST_FILE_PATTERN = /\.(?:test|spec)\.[cm]?[jt]sx?$|(?:^|\/)test_[^/]+\.py$|_test\.(?:py|go)$|(?:^|\/)conftest\.py$/;
17
+ /** Test, spec, fixture and mock files, including a root-level test/ folder. */
18
+ export function isTestPath(path) {
19
+ const normalized = path.toLowerCase();
20
+ return normalized.split("/").some((segment) => NON_PRODUCTION_SEGMENTS.has(segment))
21
+ || TEST_FILE_PATTERN.test(normalized);
22
+ }
15
23
  export function isArchitectureSource(path) {
16
24
  const normalized = path.toLowerCase();
17
25
  const segments = normalized.split("/");
18
- if (segments.some((segment) => NON_PRODUCTION_SEGMENTS.has(segment))) {
26
+ if (isTestPath(normalized)) {
27
+ return false;
28
+ }
29
+ if (SAMPLE_SEGMENTS.has(segments[0]) && segments.length > 1) {
30
+ return false;
31
+ }
32
+ if (segments.length > 3
33
+ && WORKSPACE_PARENTS.has(segments[0])
34
+ && SAMPLE_SEGMENTS.has(segments[2])) {
19
35
  return false;
20
36
  }
21
- return !(normalized.endsWith(".test.ts")
22
- || normalized.endsWith(".test.tsx")
23
- || normalized.endsWith(".test.js")
24
- || normalized.endsWith(".test.jsx")
25
- || normalized.endsWith(".spec.ts")
26
- || normalized.endsWith(".spec.tsx")
27
- || normalized.endsWith(".spec.js")
28
- || normalized.endsWith(".spec.jsx"));
37
+ return true;
29
38
  }
30
39
  //# sourceMappingURL=sourceScope.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sourceScope.js","sourceRoot":"","sources":["../../../src/analyzers/graph/sourceScope.ts"],"names":[],"mappings":"AAAA,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC;IACtC,cAAc;IACd,WAAW;IACX,WAAW;IACX,UAAU;IACV,MAAM;IACN,MAAM;IACN,SAAS;IACT,UAAU;IACV,UAAU;IACV,SAAS;IACT,MAAM;IACN,OAAO;CACR,CAAC,CAAC;AAEH,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACtC,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAEvC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,uBAAuB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;QACrE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,CAAC,CACN,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC;WAC5B,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC;WAChC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC;WAC/B,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC;WAChC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC;WAC/B,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC;WAChC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC;WAC/B,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CACpC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"sourceScope.js","sourceRoot":"","sources":["../../../src/analyzers/graph/sourceScope.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC;IACtC,cAAc;IACd,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,MAAM;IACN,OAAO;CACR,CAAC,CAAC;AAEH,0EAA0E;AAC1E,sEAAsE;AACtE,8CAA8C;AAC9C,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;AACpF,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;AAExF,MAAM,iBAAiB,GAAG,gGAAgG,CAAC;AAE3H,+EAA+E;AAC/E,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACtC,OAAO,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,uBAAuB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;WAC/E,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACtC,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAEvC,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5D,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IACE,QAAQ,CAAC,MAAM,GAAG,CAAC;WAChB,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;WAClC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EACnC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"heuristicAnalyzer.d.ts","sourceRoot":"","sources":["../../../src/analyzers/pipeline/heuristicAnalyzer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,YAAY,EAGZ,WAAW,EACZ,MAAM,sBAAsB,CAAC;AAuB9B,qBAAa,iBAAkB,YAAW,YAAY;IACpD,QAAQ,CAAC,EAAE,eAAe;IAE1B,QAAQ,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO;IAI9B,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,YAAY,CAAC;CA8BnF;AAED,qBAAa,gBAAiB,YAAW,YAAY;IACnD,QAAQ,CAAC,EAAE,cAAc;IAEzB,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO;IAI/B,OAAO,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,YAAY,CAAC;CAUpF"}
1
+ {"version":3,"file":"heuristicAnalyzer.d.ts","sourceRoot":"","sources":["../../../src/analyzers/pipeline/heuristicAnalyzer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,YAAY,EAGZ,WAAW,EACZ,MAAM,sBAAsB,CAAC;AAwB9B,qBAAa,iBAAkB,YAAW,YAAY;IACpD,QAAQ,CAAC,EAAE,eAAe;IAE1B,QAAQ,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO;IAI9B,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,YAAY,CAAC;CAoCnF;AAED,qBAAa,gBAAiB,YAAW,YAAY;IACnD,QAAQ,CAAC,EAAE,cAAc;IAEzB,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO;IAI/B,OAAO,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,YAAY,CAAC;CAUpF"}
@@ -1,3 +1,4 @@
1
+ import { readLanguage, supportsLanguageReader } from "./languageReaders.js";
1
2
  // TS/JS extensions are intentionally excluded here.
2
3
  // TsMorphAnalyzer handles .ts/.tsx/.js/.jsx with full AST accuracy (confidence: "high").
3
4
  // If ts-morph throws on a malformed file, AnalyzerRegistry falls through to this analyzer.
@@ -24,8 +25,14 @@ export class HeuristicAnalyzer {
24
25
  return HEURISTIC_EXTENSIONS.has(file.extension);
25
26
  }
26
27
  async analyze(file, _context) {
27
- const imports = readImportSpecifiers(file.content);
28
- const symbols = readSymbols(file.content);
28
+ // Python, Ruby, PHP, Go, C# and Java have their own import and declaration
29
+ // syntax; running the JS patterns over them yields nothing (imports) or
30
+ // noise (`class of` from a docstring). The JS family keeps the JS readers.
31
+ const reading = supportsLanguageReader(file.extension)
32
+ ? readLanguage(file.extension, file.content)
33
+ : undefined;
34
+ const imports = reading?.imports ?? readImportSpecifiers(file.content);
35
+ const symbols = reading?.symbols ?? readSymbols(file.content);
29
36
  const exports = symbols
30
37
  .filter((symbol) => symbol.exported)
31
38
  .map((symbol) => symbol.name)
@@ -69,7 +76,7 @@ export class FallbackAnalyzer {
69
76
  }
70
77
  function readImportSpecifiers(content) {
71
78
  const imports = new Set();
72
- const pattern = /(?:import\s+(?:[^'"]+\s+from\s+)?|export\s+[^'"]+\s+from\s+|require\()\s*['"]([^'"]+)['"]/g;
79
+ const pattern = /(?:\bimport\s+(?:[^'"]+\s+from\s+)?|\bexport\s+[^'"]+\s+from\s+|\b(?:require|import)\s*\(\s*)['"]([^'"]+)['"]/g;
73
80
  let match = pattern.exec(content);
74
81
  while (match) {
75
82
  imports.add(match[1]);
@@ -1 +1 @@
1
- {"version":3,"file":"heuristicAnalyzer.js","sourceRoot":"","sources":["../../../src/analyzers/pipeline/heuristicAnalyzer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"heuristicAnalyzer.js","sourceRoot":"","sources":["../../../src/analyzers/pipeline/heuristicAnalyzer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { SymbolInfo } from "../analysis/index.js";
2
+ export interface LanguageReading {
3
+ imports: string[];
4
+ symbols: SymbolInfo[];
5
+ }
6
+ export declare function supportsLanguageReader(extension: string): boolean;
7
+ export declare function readLanguage(extension: string, content: string): LanguageReading;
8
+ //# sourceMappingURL=languageReaders.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"languageReaders.d.ts","sourceRoot":"","sources":["../../../src/analyzers/pipeline/languageReaders.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,UAAU,EAAE,CAAC;CACvB;AAuBD,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAEjE;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,eAAe,CAYhF"}
@@ -0,0 +1,296 @@
1
+ const C_LIKE = { line: ["//"], block: ["/*", "*/"], quotes: ['"', "'"] };
2
+ const SYNTAX = {
3
+ ".py": { line: ["#"], tripleQuotes: true, quotes: ['"', "'"] },
4
+ ".rb": { line: ["#"], rubyBlock: true, quotes: ['"', "'"] },
5
+ ".php": { line: ["//", "#"], block: ["/*", "*/"], quotes: ['"', "'"] },
6
+ ".go": { line: ["//"], block: ["/*", "*/"], quotes: ['"', "'", "`"] },
7
+ ".cs": C_LIKE,
8
+ ".java": C_LIKE
9
+ };
10
+ export function supportsLanguageReader(extension) {
11
+ return extension in SYNTAX;
12
+ }
13
+ export function readLanguage(extension, content) {
14
+ const syntax = SYNTAX[extension];
15
+ const code = stripComments(content, syntax);
16
+ switch (extension) {
17
+ case ".py": return readPython(code);
18
+ case ".rb": return readRuby(code);
19
+ case ".php": return readPhp(code);
20
+ case ".go": return readGo(code);
21
+ case ".cs": return readCSharp(code);
22
+ default: return readJava(code);
23
+ }
24
+ }
25
+ /**
26
+ * Blank out comments (and Python docstrings) while keeping every newline and
27
+ * string literal, so offsets and line numbers stay valid and `#` or `//` inside
28
+ * a string is not mistaken for a comment.
29
+ */
30
+ function stripComments(content, syntax) {
31
+ const out = [];
32
+ let index = 0;
33
+ const blank = (text) => text.replace(/[^\n]/g, " ");
34
+ while (index < content.length) {
35
+ const rest = content.slice(index, index + 3);
36
+ if (syntax.rubyBlock && content.startsWith("=begin", index) && (index === 0 || content[index - 1] === "\n")) {
37
+ const end = content.indexOf("\n=end", index);
38
+ const stop = end === -1 ? content.length : end + 5;
39
+ out.push(blank(content.slice(index, stop)));
40
+ index = stop;
41
+ continue;
42
+ }
43
+ if (syntax.tripleQuotes && (rest === '"""' || rest === "'''")) {
44
+ const end = content.indexOf(rest, index + 3);
45
+ const stop = end === -1 ? content.length : end + 3;
46
+ out.push(blank(content.slice(index, stop)));
47
+ index = stop;
48
+ continue;
49
+ }
50
+ if (syntax.block && content.startsWith(syntax.block[0], index)) {
51
+ const end = content.indexOf(syntax.block[1], index + syntax.block[0].length);
52
+ const stop = end === -1 ? content.length : end + syntax.block[1].length;
53
+ out.push(blank(content.slice(index, stop)));
54
+ index = stop;
55
+ continue;
56
+ }
57
+ const lineMarker = syntax.line.find((marker) => content.startsWith(marker, index));
58
+ if (lineMarker) {
59
+ const end = content.indexOf("\n", index);
60
+ const stop = end === -1 ? content.length : end;
61
+ out.push(blank(content.slice(index, stop)));
62
+ index = stop;
63
+ continue;
64
+ }
65
+ const character = content[index];
66
+ if (syntax.quotes.includes(character)) {
67
+ let cursor = index + 1;
68
+ // Backtick (Go raw) strings may span lines and do not escape.
69
+ const multiline = character === "`";
70
+ while (cursor < content.length && content[cursor] !== character) {
71
+ if (content[cursor] === "\\" && !multiline)
72
+ cursor += 1;
73
+ else if (content[cursor] === "\n" && !multiline)
74
+ break;
75
+ cursor += 1;
76
+ }
77
+ const stop = Math.min(cursor + 1, content.length);
78
+ out.push(content.slice(index, stop));
79
+ index = stop;
80
+ continue;
81
+ }
82
+ out.push(character);
83
+ index += 1;
84
+ }
85
+ return out.join("");
86
+ }
87
+ function lineStarts(content) {
88
+ const starts = [0];
89
+ for (let index = 0; index < content.length; index += 1) {
90
+ if (content[index] === "\n")
91
+ starts.push(index + 1);
92
+ }
93
+ return starts;
94
+ }
95
+ function lineAt(starts, offset) {
96
+ let low = 0;
97
+ let high = starts.length - 1;
98
+ while (low < high) {
99
+ const middle = Math.ceil((low + high) / 2);
100
+ if (starts[middle] <= offset)
101
+ low = middle;
102
+ else
103
+ high = middle - 1;
104
+ }
105
+ return low + 1;
106
+ }
107
+ function matchAll(content, pattern) {
108
+ return [...content.matchAll(new RegExp(pattern.source, pattern.flags.includes("g") ? pattern.flags : `${pattern.flags}g`))];
109
+ }
110
+ // ------------------------------------------------------------------- Python
111
+ function readPython(code) {
112
+ const imports = new Set();
113
+ const symbols = [];
114
+ const starts = lineStarts(code);
115
+ for (const match of matchAll(code, /^[ \t]*import[ \t]+([^\n;#]+)/m)) {
116
+ for (const part of match[1].split(",")) {
117
+ const module = part.trim().split(/\s+as\s+/)[0].trim();
118
+ if (/^[A-Za-z_][\w.]*$/.test(module))
119
+ imports.add(module);
120
+ }
121
+ }
122
+ for (const match of matchAll(code, /^[ \t]*from[ \t]+(\.*)([A-Za-z_][\w.]*)?[ \t]+import[ \t]+([^\n;#]*)/m)) {
123
+ const dots = match[1].length;
124
+ const module = match[2] ?? "";
125
+ if (dots === 0) {
126
+ if (module)
127
+ imports.add(module);
128
+ continue;
129
+ }
130
+ // Relative imports become path-style specifiers the graph can resolve:
131
+ // `.models` -> ./models, `..core.db` -> ../core/db.
132
+ const base = dots === 1 ? "./" : "../".repeat(dots - 1);
133
+ if (module) {
134
+ imports.add(`${base}${module.replace(/\./g, "/")}`);
135
+ }
136
+ else {
137
+ // `from . import views, forms` imports sibling modules.
138
+ for (const part of match[3].replace(/[()]/g, "").split(",")) {
139
+ const name = part.trim().split(/\s+as\s+/)[0].trim();
140
+ if (/^[A-Za-z_]\w*$/.test(name))
141
+ imports.add(`${base}${name}`);
142
+ }
143
+ }
144
+ }
145
+ for (const match of matchAll(code, /^([ \t]*)(async[ \t]+)?(def|class)[ \t]+([A-Za-z_]\w*)/m)) {
146
+ const indented = match[1].length > 0;
147
+ const name = match[4];
148
+ const isClass = match[3] === "class";
149
+ symbols.push({
150
+ name,
151
+ kind: isClass ? "class" : indented ? "method" : "function",
152
+ line: lineAt(starts, match.index),
153
+ // Python has no export keyword: public top-level names are the module API.
154
+ exported: !indented && !name.startsWith("_"),
155
+ ...(isClass ? {} : { async: Boolean(match[2]) })
156
+ });
157
+ }
158
+ return { imports: [...imports], symbols };
159
+ }
160
+ // --------------------------------------------------------------------- Ruby
161
+ function readRuby(code) {
162
+ const imports = new Set();
163
+ const symbols = [];
164
+ const starts = lineStarts(code);
165
+ for (const match of matchAll(code, /^[ \t]*(require_relative|require|load)[ \t(]+['"]([^'"]+)['"]/m)) {
166
+ const specifier = match[2];
167
+ if (match[1] === "require_relative") {
168
+ imports.add(specifier.startsWith(".") ? specifier : `./${specifier}`);
169
+ }
170
+ else {
171
+ imports.add(specifier);
172
+ }
173
+ }
174
+ for (const match of matchAll(code, /^([ \t]*)(class|module|def)[ \t]+(self\.)?([A-Za-z_][\w:]*[?!=]?)/m)) {
175
+ const indented = match[1].length > 0;
176
+ const keyword = match[2];
177
+ const kind = keyword === "def" ? (indented ? "method" : "function") : "class";
178
+ symbols.push({
179
+ name: match[4],
180
+ kind,
181
+ line: lineAt(starts, match.index),
182
+ exported: keyword !== "def" || !indented,
183
+ ...(keyword === "def" ? { async: false } : {})
184
+ });
185
+ }
186
+ return { imports: [...imports], symbols };
187
+ }
188
+ // ---------------------------------------------------------------------- PHP
189
+ function readPhp(code) {
190
+ const imports = new Set();
191
+ const symbols = [];
192
+ const starts = lineStarts(code);
193
+ for (const match of matchAll(code, /^[ \t]*use[ \t]+(?:function[ \t]+|const[ \t]+)?([A-Za-z_\\][\w\\]*)(?:[ \t]+as[ \t]+\w+)?[ \t]*;/m)) {
194
+ imports.add(match[1].replace(/^\\/, ""));
195
+ }
196
+ for (const match of matchAll(code, /\b(?:require|include)(?:_once)?[ \t]*\(?[ \t]*(__DIR__[ \t]*\.[ \t]*)?['"]([^'"]+\.php)['"]/)) {
197
+ const path = match[2];
198
+ if (/^[a-z][a-z0-9+.-]*:/i.test(path))
199
+ continue;
200
+ if (match[1])
201
+ imports.add(`./${path.replace(/^\//, "")}`);
202
+ else
203
+ imports.add(path.startsWith(".") ? path : `./${path}`);
204
+ }
205
+ for (const match of matchAll(code, /^[ \t]*(?:(?:abstract|final|readonly)[ \t]+)*(class|interface|trait|enum)[ \t]+([A-Za-z_]\w*)/m)) {
206
+ symbols.push({
207
+ name: match[2],
208
+ kind: match[1] === "interface" ? "interface" : match[1] === "enum" ? "enum" : "class",
209
+ line: lineAt(starts, match.index),
210
+ exported: true
211
+ });
212
+ }
213
+ for (const match of matchAll(code, /^([ \t]*)(?:(?:public|protected|private|static|abstract|final)[ \t]+)*function[ \t]+&?([A-Za-z_]\w*)/m)) {
214
+ const indented = match[1].length > 0;
215
+ symbols.push({
216
+ name: match[2],
217
+ kind: indented ? "method" : "function",
218
+ line: lineAt(starts, match.index),
219
+ exported: !indented,
220
+ async: false
221
+ });
222
+ }
223
+ return { imports: [...imports], symbols: symbols.sort(byLine) };
224
+ }
225
+ // ----------------------------------------------------------------------- Go
226
+ function readGo(code) {
227
+ const imports = new Set();
228
+ const symbols = [];
229
+ const starts = lineStarts(code);
230
+ for (const match of matchAll(code, /^import[ \t]+(?:[\w.]+[ \t]+)?"([^"]+)"/m)) {
231
+ imports.add(match[1]);
232
+ }
233
+ for (const block of matchAll(code, /^import[ \t]*\(([^)]*)\)/m)) {
234
+ for (const entry of matchAll(block[1], /^[ \t]*(?:[\w.]+[ \t]+)?"([^"]+)"/m)) {
235
+ imports.add(entry[1]);
236
+ }
237
+ }
238
+ for (const match of matchAll(code, /^func[ \t]+(\([^)]*\)[ \t]*)?([A-Za-z_]\w*)/m)) {
239
+ symbols.push({
240
+ name: match[2],
241
+ kind: match[1] ? "method" : "function",
242
+ line: lineAt(starts, match.index),
243
+ exported: /^[A-Z]/.test(match[2]),
244
+ async: false
245
+ });
246
+ }
247
+ for (const match of matchAll(code, /^type[ \t]+([A-Za-z_]\w*)[ \t]+(struct|interface)?/m)) {
248
+ symbols.push({
249
+ name: match[1],
250
+ kind: match[2] === "interface" ? "interface" : match[2] === "struct" ? "class" : "type",
251
+ line: lineAt(starts, match.index),
252
+ exported: /^[A-Z]/.test(match[1])
253
+ });
254
+ }
255
+ return { imports: [...imports], symbols: symbols.sort(byLine) };
256
+ }
257
+ // ------------------------------------------------------------ C# and Java
258
+ function readCSharp(code) {
259
+ const imports = new Set();
260
+ const starts = lineStarts(code);
261
+ const symbols = [];
262
+ // `using System;` / `using static X.Y;` / `using Alias = X.Y;` but not `using (var x = ...)`.
263
+ for (const match of matchAll(code, /^[ \t]*(?:global[ \t]+)?using[ \t]+(?:static[ \t]+)?(?:\w+[ \t]*=[ \t]*)?([A-Za-z_][\w.]*)[ \t]*;/m)) {
264
+ imports.add(match[1]);
265
+ }
266
+ for (const match of matchAll(code, /^[ \t]*((?:(?:public|internal|private|protected|static|abstract|sealed|partial|readonly)[ \t]+)*)(class|interface|struct|enum|record)[ \t]+([A-Za-z_]\w*)/m)) {
267
+ symbols.push({
268
+ name: match[3],
269
+ kind: match[2] === "interface" ? "interface" : match[2] === "enum" ? "enum" : "class",
270
+ line: lineAt(starts, match.index),
271
+ exported: /\bpublic\b/.test(match[1])
272
+ });
273
+ }
274
+ return { imports: [...imports], symbols };
275
+ }
276
+ function readJava(code) {
277
+ const imports = new Set();
278
+ const starts = lineStarts(code);
279
+ const symbols = [];
280
+ for (const match of matchAll(code, /^[ \t]*import[ \t]+(?:static[ \t]+)?([A-Za-z_][\w.]*(?:\.\*)?)[ \t]*;/m)) {
281
+ imports.add(match[1]);
282
+ }
283
+ for (const match of matchAll(code, /^[ \t]*((?:(?:public|private|protected|static|abstract|final|sealed)[ \t]+)*)(class|interface|enum|record|@interface)[ \t]+([A-Za-z_]\w*)/m)) {
284
+ symbols.push({
285
+ name: match[3],
286
+ kind: match[2] === "interface" || match[2] === "@interface" ? "interface" : match[2] === "enum" ? "enum" : "class",
287
+ line: lineAt(starts, match.index),
288
+ exported: /\bpublic\b/.test(match[1])
289
+ });
290
+ }
291
+ return { imports: [...imports], symbols };
292
+ }
293
+ function byLine(left, right) {
294
+ return left.line - right.line || left.name.localeCompare(right.name);
295
+ }
296
+ //# sourceMappingURL=languageReaders.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"languageReaders.js","sourceRoot":"","sources":["../../../src/analyzers/pipeline/languageReaders.ts"],"names":[],"mappings":"AAiBA,MAAM,MAAM,GAAkB,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;AAExF,MAAM,MAAM,GAAkC;IAC5C,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;IAC9D,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;IAC3D,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;IACtE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE;IACrE,KAAK,EAAE,MAAM;IACb,OAAO,EAAE,MAAM;CAChB,CAAC;AAEF,MAAM,UAAU,sBAAsB,CAAC,SAAiB;IACtD,OAAO,SAAS,IAAI,MAAM,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,SAAiB,EAAE,OAAe;IAC7D,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;IACjC,MAAM,IAAI,GAAG,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAE5C,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,KAAK,CAAC,CAAC,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;QACpC,KAAK,KAAK,CAAC,CAAC,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;QAClC,KAAK,MAAM,CAAC,CAAC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;QAClC,KAAK,KAAK,CAAC,CAAC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;QAChC,KAAK,KAAK,CAAC,CAAC,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;QACpC,OAAO,CAAC,CAAC,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,aAAa,CAAC,OAAe,EAAE,MAAqB;IAC3D,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAE5D,OAAO,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QAE7C,IAAI,MAAM,CAAC,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC;YAC5G,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YAC7C,MAAM,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;YACnD,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;YAC5C,KAAK,GAAG,IAAI,CAAC;YACb,SAAS;QACX,CAAC;QAED,IAAI,MAAM,CAAC,YAAY,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YAC9D,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YAC7C,MAAM,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;YACnD,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;YAC5C,KAAK,GAAG,IAAI,CAAC;YACb,SAAS;QACX,CAAC;QAED,IAAI,MAAM,CAAC,KAAK,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;YAC/D,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC7E,MAAM,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YACxE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;YAC5C,KAAK,GAAG,IAAI,CAAC;YACb,SAAS;QACX,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;QACnF,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACzC,MAAM,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;YAC/C,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;YAC5C,KAAK,GAAG,IAAI,CAAC;YACb,SAAS;QACX,CAAC;QAED,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACtC,IAAI,MAAM,GAAG,KAAK,GAAG,CAAC,CAAC;YACvB,8DAA8D;YAC9D,MAAM,SAAS,GAAG,SAAS,KAAK,GAAG,CAAC;YACpC,OAAO,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE,CAAC;gBAChE,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS;oBAAE,MAAM,IAAI,CAAC,CAAC;qBACnD,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS;oBAAE,MAAM;gBACvD,MAAM,IAAI,CAAC,CAAC;YACd,CAAC;YACD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YAClD,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;YACrC,KAAK,GAAG,IAAI,CAAC;YACb,SAAS;QACX,CAAC;QAED,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACpB,KAAK,IAAI,CAAC,CAAC;IACb,CAAC;IAED,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,UAAU,CAAC,OAAe;IACjC,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IACnB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACvD,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI;YAAE,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,MAAM,CAAC,MAAgB,EAAE,MAAc;IAC9C,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,IAAI,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IAC7B,OAAO,GAAG,GAAG,IAAI,EAAE,CAAC;QAClB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3C,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,MAAM;YAAE,GAAG,GAAG,MAAM,CAAC;;YACtC,IAAI,GAAG,MAAM,GAAG,CAAC,CAAC;IACzB,CAAC;IACD,OAAO,GAAG,GAAG,CAAC,CAAC;AACjB,CAAC;AAED,SAAS,QAAQ,CAAC,OAAe,EAAE,OAAe;IAChD,OAAO,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;AAC9H,CAAC;AAED,6EAA6E;AAE7E,SAAS,UAAU,CAAC,IAAY;IAC9B,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,MAAM,OAAO,GAAiB,EAAE,CAAC;IACjC,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAEhC,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE,gCAAgC,CAAC,EAAE,CAAC;QACrE,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YACvC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACvD,IAAI,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC;gBAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE,uEAAuE,CAAC,EAAE,CAAC;QAC5G,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAC7B,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAE9B,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;YACf,IAAI,MAAM;gBAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAChC,SAAS;QACX,CAAC;QAED,uEAAuE;QACvE,oDAAoD;QACpD,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;QACxD,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QACtD,CAAC;aAAM,CAAC;YACN,wDAAwD;YACxD,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC5D,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBACrD,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;oBAAE,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,CAAC;YACjE,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE,yDAAyD,CAAC,EAAE,CAAC;QAC9F,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QACrC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC;QAErC,OAAO,CAAC,IAAI,CAAC;YACX,IAAI;YACJ,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU;YAC1D,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC;YACjC,2EAA2E;YAC3E,QAAQ,EAAE,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAC5C,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SACjD,CAAC,CAAC;IACL,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;AAC5C,CAAC;AAED,6EAA6E;AAE7E,SAAS,QAAQ,CAAC,IAAY;IAC5B,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,MAAM,OAAO,GAAiB,EAAE,CAAC;IACjC,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAEhC,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE,gEAAgE,CAAC,EAAE,CAAC;QACrG,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,kBAAkB,EAAE,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC,CAAC;QACxE,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE,oEAAoE,CAAC,EAAE,CAAC;QACzG,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QACrC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACzB,MAAM,IAAI,GAAuB,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QAElG,OAAO,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;YACd,IAAI;YACJ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC;YACjC,QAAQ,EAAE,OAAO,KAAK,KAAK,IAAI,CAAC,QAAQ;YACxC,GAAG,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC/C,CAAC,CAAC;IACL,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;AAC5C,CAAC;AAED,6EAA6E;AAE7E,SAAS,OAAO,CAAC,IAAY;IAC3B,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,MAAM,OAAO,GAAiB,EAAE,CAAC;IACjC,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAEhC,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE,mGAAmG,CAAC,EAAE,CAAC;QACxI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE,6FAA6F,CAAC,EAAE,CAAC;QAClI,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,SAAS;QAChD,IAAI,KAAK,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;;YACrD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE,gGAAgG,CAAC,EAAE,CAAC;QACrI,OAAO,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;YACd,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;YACrF,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC;YACjC,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;IACL,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE,uGAAuG,CAAC,EAAE,CAAC;QAC5I,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QACrC,OAAO,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;YACd,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU;YACtC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC;YACjC,QAAQ,EAAE,CAAC,QAAQ;YACnB,KAAK,EAAE,KAAK;SACb,CAAC,CAAC;IACL,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;AAClE,CAAC;AAED,6EAA6E;AAE7E,SAAS,MAAM,CAAC,IAAY;IAC1B,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,MAAM,OAAO,GAAiB,EAAE,CAAC;IACjC,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAEhC,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE,0CAA0C,CAAC,EAAE,CAAC;QAC/E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE,2BAA2B,CAAC,EAAE,CAAC;QAChE,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,oCAAoC,CAAC,EAAE,CAAC;YAC7E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE,8CAA8C,CAAC,EAAE,CAAC;QACnF,OAAO,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;YACd,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU;YACtC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC;YACjC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACjC,KAAK,EAAE,KAAK;SACb,CAAC,CAAC;IACL,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE,qDAAqD,CAAC,EAAE,CAAC;QAC1F,OAAO,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;YACd,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;YACvF,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC;YACjC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SAClC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;AAClE,CAAC;AAED,2EAA2E;AAE3E,SAAS,UAAU,CAAC,IAAY;IAC9B,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,OAAO,GAAiB,EAAE,CAAC;IAEjC,8FAA8F;IAC9F,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE,oGAAoG,CAAC,EAAE,CAAC;QACzI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE,4JAA4J,CAAC,EAAE,CAAC;QACjM,OAAO,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;YACd,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;YACrF,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC;YACjC,QAAQ,EAAE,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SACtC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;AAC5C,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY;IAC5B,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,OAAO,GAAiB,EAAE,CAAC;IAEjC,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE,wEAAwE,CAAC,EAAE,CAAC;QAC7G,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE,4IAA4I,CAAC,EAAE,CAAC;QACjL,OAAO,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;YACd,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,WAAW,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;YAClH,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC;YACjC,QAAQ,EAAE,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SACtC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;AAC5C,CAAC;AAED,SAAS,MAAM,CAAC,IAAgB,EAAE,KAAiB;IACjD,OAAO,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACvE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"projectMap.d.ts","sourceRoot":"","sources":["../../../src/analyzers/pipeline/projectMap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"projectMap.d.ts","sourceRoot":"","sources":["../../../src/analyzers/pipeline/projectMap.ts"],"names":[],"mappings":"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"}