@noyrax/documentation-system-plugin 1.0.4-beta.2 → 1.0.4-beta.3

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 (82) hide show
  1. package/docs/index/symbols.jsonl +54 -16
  2. package/docs/modules/mcp__src__tools__drift.ts.md +6 -2
  3. package/docs/modules/mcp__src__tools__impact.ts.md +3 -0
  4. package/docs/modules/package.json.md +10 -11
  5. package/docs/modules/scripts__verify-adrs.js.md +1 -1
  6. package/docs/modules/src__core__scanner.ts.md +0 -1
  7. package/docs/modules/src__index__index.ts.md +18 -0
  8. package/docs/modules/src__parsers__json-yaml.ts.md +0 -1
  9. package/docs/modules/src__parsers__types.ts.md +18 -0
  10. package/docs/system/CHANGE_REPORT.md +7 -10
  11. package/docs/system/SYSTEM_METADATA.json +37 -0
  12. package/package.json +1 -2
  13. package/noyrax-5d-database-plugin-0.1.8.tgz +0 -0
  14. package/noyrax-documentation-system-plugin-1.0.4-beta.2.tgz +0 -0
  15. package/out/cache/ast-cache.js +0 -69
  16. package/out/cache/ast-cache.js.map +0 -1
  17. package/out/cache/dependencies-cache.js +0 -73
  18. package/out/cache/dependencies-cache.js.map +0 -1
  19. package/out/cache/output-cache.js +0 -69
  20. package/out/cache/output-cache.js.map +0 -1
  21. package/out/cache/signature-cache.js +0 -60
  22. package/out/cache/signature-cache.js.map +0 -1
  23. package/out/cli/generate-cli.js +0 -330
  24. package/out/cli/generate-cli.js.map +0 -1
  25. package/out/cli/scan-cli.js +0 -151
  26. package/out/cli/scan-cli.js.map +0 -1
  27. package/out/cli/validate-cli.js +0 -258
  28. package/out/cli/validate-cli.js.map +0 -1
  29. package/out/core/async.js +0 -38
  30. package/out/core/async.js.map +0 -1
  31. package/out/core/consolidation.js +0 -230
  32. package/out/core/consolidation.js.map +0 -1
  33. package/out/core/git.js +0 -48
  34. package/out/core/git.js.map +0 -1
  35. package/out/core/language-detection.js +0 -29
  36. package/out/core/language-detection.js.map +0 -1
  37. package/out/core/scanner.js +0 -179
  38. package/out/core/scanner.js.map +0 -1
  39. package/out/core/signature-formatter.js +0 -162
  40. package/out/core/signature-formatter.js.map +0 -1
  41. package/out/core/symbol-classifier.js +0 -96
  42. package/out/core/symbol-classifier.js.map +0 -1
  43. package/out/core/symbols.js +0 -24
  44. package/out/core/symbols.js.map +0 -1
  45. package/out/drift/index.js +0 -28
  46. package/out/drift/index.js.map +0 -1
  47. package/out/extension.js +0 -984
  48. package/out/extension.js.map +0 -1
  49. package/out/generator/adr-linker.js +0 -216
  50. package/out/generator/adr-linker.js.map +0 -1
  51. package/out/generator/change-report.js +0 -124
  52. package/out/generator/change-report.js.map +0 -1
  53. package/out/generator/dependency-graph.js +0 -98
  54. package/out/generator/dependency-graph.js.map +0 -1
  55. package/out/generator/index.js +0 -117
  56. package/out/generator/index.js.map +0 -1
  57. package/out/generator/module-doc.js +0 -438
  58. package/out/generator/module-doc.js.map +0 -1
  59. package/out/index/index.js +0 -147
  60. package/out/index/index.js.map +0 -1
  61. package/out/logging/index.js +0 -24
  62. package/out/logging/index.js.map +0 -1
  63. package/out/parsers/dependencies.js +0 -126
  64. package/out/parsers/dependencies.js.map +0 -1
  65. package/out/parsers/json-yaml.js +0 -121
  66. package/out/parsers/json-yaml.js.map +0 -1
  67. package/out/parsers/python.js +0 -160
  68. package/out/parsers/python.js.map +0 -1
  69. package/out/parsers/ts-js.js +0 -397
  70. package/out/parsers/ts-js.js.map +0 -1
  71. package/out/parsers/types.js +0 -3
  72. package/out/parsers/types.js.map +0 -1
  73. package/out/ui/commands-provider.js +0 -91
  74. package/out/ui/commands-provider.js.map +0 -1
  75. package/out/ui/status-bar.js +0 -85
  76. package/out/ui/status-bar.js.map +0 -1
  77. package/out/validator/index.js +0 -185
  78. package/out/validator/index.js.map +0 -1
  79. package/out/validator/signature-matching.js +0 -261
  80. package/out/validator/signature-matching.js.map +0 -1
  81. package/out/validator/status.js +0 -38
  82. package/out/validator/status.js.map +0 -1
@@ -1,147 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.readSymbolsFromIndex = exports.buildIndexFromSymbols = exports.writeJsonlIndex = void 0;
27
- const fs = __importStar(require("fs"));
28
- const path = __importStar(require("path"));
29
- const symbols_1 = require("../core/symbols");
30
- function writeJsonlIndex(rows, outFile) {
31
- const dir = path.dirname(outFile);
32
- if (!fs.existsSync(dir))
33
- fs.mkdirSync(dir, { recursive: true });
34
- const sorted = [...rows].sort((a, b) => (a.path === b.path ? a.symbol_id.localeCompare(b.symbol_id) : a.path.localeCompare(b.path)));
35
- const content = sorted.map(r => JSON.stringify(r)).join('\n') + '\n';
36
- fs.writeFileSync(outFile, content, 'utf8');
37
- }
38
- exports.writeJsonlIndex = writeJsonlIndex;
39
- function buildIndexFromSymbols(symbols, dependencies = []) {
40
- // Sammle Dependencies pro Quell-Datei und Zielmodul,
41
- // damit alle Symbolnamen je Modul zusammengeführt werden können.
42
- const depsByFile = new Map();
43
- for (const dep of dependencies) {
44
- if (!depsByFile.has(dep.from)) {
45
- depsByFile.set(dep.from, new Map());
46
- }
47
- const fileDeps = depsByFile.get(dep.from);
48
- const existing = fileDeps.get(dep.to);
49
- if (existing) {
50
- // Merge symbols
51
- if (dep.symbols && dep.symbols.length > 0) {
52
- existing.symbols.push(...dep.symbols);
53
- }
54
- // isTypeOnly bleibt nur true, wenn ALLE Imports type-only sind
55
- if (!dep.isTypeOnly) {
56
- existing.isTypeOnly = false;
57
- }
58
- // isReexport wird true, wenn mindestens ein Re-Export existiert
59
- if (dep.isReexport) {
60
- existing.isReexport = true;
61
- }
62
- }
63
- else {
64
- fileDeps.set(dep.to, {
65
- module: dep.to,
66
- symbols: dep.symbols && dep.symbols.length > 0 ? [...dep.symbols] : [],
67
- isTypeOnly: dep.isTypeOnly ?? false,
68
- isReexport: dep.isReexport ?? false,
69
- });
70
- }
71
- }
72
- return symbols.map(s => {
73
- const fileDeps = depsByFile.get(s.filePath);
74
- let dependencyEntries;
75
- if (fileDeps && fileDeps.size > 0) {
76
- // Erzeuge ein deterministisches Array:
77
- // 1. Sortiere nach Modulpfad
78
- // 2. Dedupliziere und sortiere Symbolnamen pro Modul
79
- const entries = Array.from(fileDeps.values()).map(acc => {
80
- const entry = { module: acc.module };
81
- if (acc.symbols.length > 0) {
82
- entry.symbols = Array.from(new Set(acc.symbols)).sort();
83
- }
84
- // Nur hinzufügen wenn true (spart Platz im JSON)
85
- if (acc.isTypeOnly) {
86
- entry.isTypeOnly = true;
87
- }
88
- if (acc.isReexport) {
89
- entry.isReexport = true;
90
- }
91
- return entry;
92
- });
93
- entries.sort((a, b) => a.module.localeCompare(b.module));
94
- dependencyEntries = entries;
95
- }
96
- return {
97
- symbol_id: (0, symbols_1.makeStableSymbolId)(s),
98
- path: s.filePath,
99
- kind: s.kind,
100
- name: s.fullyQualifiedName,
101
- signature: s.signature,
102
- dependencies: dependencyEntries,
103
- };
104
- });
105
- }
106
- exports.buildIndexFromSymbols = buildIndexFromSymbols;
107
- /**
108
- * @public
109
- * Reconstruct ParsedSymbol[] from a JSONL index file.
110
- * Wird sowohl vom Generate-Flow (als symbolsPrev) als auch vom Validator verwendet,
111
- * um eine gemeinsame Symbolbasis aus `docs/index/symbols.jsonl` herzustellen.
112
- */
113
- function readSymbolsFromIndex(indexFile) {
114
- if (!fs.existsSync(indexFile)) {
115
- return [];
116
- }
117
- try {
118
- const lines = fs.readFileSync(indexFile, 'utf8').split(/\r?\n/).filter(Boolean);
119
- const symbols = [];
120
- for (const line of lines) {
121
- try {
122
- const row = JSON.parse(line);
123
- symbols.push({
124
- language: 'unknown',
125
- filePath: row.path,
126
- fullyQualifiedName: row.name,
127
- kind: row.kind,
128
- signature: row.signature ?? {
129
- name: row.name,
130
- parameters: [],
131
- returnType: '',
132
- visibility: 'public',
133
- },
134
- });
135
- }
136
- catch {
137
- // Ignoriere defekte Zeilen – Validator/Generator arbeiten dann mit Teilmenge
138
- }
139
- }
140
- return symbols;
141
- }
142
- catch {
143
- return [];
144
- }
145
- }
146
- exports.readSymbolsFromIndex = readSymbolsFromIndex;
147
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index/index.ts"],"names":[],"mappings":"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"}
@@ -1,24 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Logger = void 0;
4
- class Logger {
5
- constructor(options) {
6
- this.component = options.component;
7
- }
8
- info(message) {
9
- console.log(`[${this.component}] ${message}`);
10
- }
11
- warn(message) {
12
- console.warn(`[${this.component}] ${message}`);
13
- }
14
- error(message, err) {
15
- if (err) {
16
- console.error(`[${this.component}] ${message}:`, err);
17
- }
18
- else {
19
- console.error(`[${this.component}] ${message}`);
20
- }
21
- }
22
- }
23
- exports.Logger = Logger;
24
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/logging/index.ts"],"names":[],"mappings":";;;AAMA,MAAa,MAAM;IAGf,YAAY,OAAsB;QAC9B,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IACvC,CAAC;IAED,IAAI,CAAC,OAAe;QAChB,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,KAAK,OAAO,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,IAAI,CAAC,OAAe;QAChB,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,KAAK,OAAO,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,GAAa;QAChC,IAAI,GAAG,EAAE;YACL,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,SAAS,KAAK,OAAO,GAAG,EAAE,GAAG,CAAC,CAAC;SACzD;aAAM;YACH,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,SAAS,KAAK,OAAO,EAAE,CAAC,CAAC;SACnD;IACL,CAAC;CACJ;AAtBD,wBAsBC"}
@@ -1,126 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.extractPythonDependencies = exports.extractTsJsDependencies = void 0;
4
- /**
5
- * @public
6
- * Extract dependencies from TypeScript/JavaScript files
7
- */
8
- function extractTsJsDependencies(sourceFile, repoRelPath) {
9
- const deps = [];
10
- // Import declarations
11
- sourceFile.getImportDeclarations().forEach(imp => {
12
- const moduleSpec = imp.getModuleSpecifierValue();
13
- const isTypeOnly = imp.isTypeOnly();
14
- // Named imports mit Alias-Unterstützung
15
- const namedImports = imp.getNamedImports().map(ni => {
16
- const name = ni.getName();
17
- const alias = ni.getAliasNode()?.getText();
18
- const isTypeOnlySpecifier = ni.isTypeOnly();
19
- // Format: "OriginalName" oder "OriginalName as Alias" oder "type OriginalName"
20
- let result = name;
21
- if (alias && alias !== name) {
22
- result = `${name} as ${alias}`;
23
- }
24
- if (isTypeOnlySpecifier || isTypeOnly) {
25
- result = `type ${result}`;
26
- }
27
- return result;
28
- });
29
- const defaultImport = imp.getDefaultImport()?.getText();
30
- const namespaceImport = imp.getNamespaceImport()?.getText();
31
- const symbols = [];
32
- if (defaultImport) {
33
- const prefix = isTypeOnly ? 'type default as' : 'default as';
34
- symbols.push(`${prefix} ${defaultImport}`);
35
- }
36
- if (namespaceImport) {
37
- const prefix = isTypeOnly ? 'type * as' : '* as';
38
- symbols.push(`${prefix} ${namespaceImport}`);
39
- }
40
- symbols.push(...namedImports);
41
- deps.push({
42
- from: repoRelPath,
43
- to: moduleSpec,
44
- type: 'import',
45
- symbols: symbols.length > 0 ? symbols : undefined,
46
- isTypeOnly: isTypeOnly || undefined,
47
- });
48
- });
49
- // Export declarations (Re-Exports / Barrel-Pattern)
50
- sourceFile.getExportDeclarations().forEach(exp => {
51
- const moduleSpec = exp.getModuleSpecifierValue();
52
- if (moduleSpec) {
53
- const isTypeOnly = exp.isTypeOnly();
54
- const isNamespace = exp.isNamespaceExport();
55
- // Named exports mit Alias-Unterstützung
56
- const namedExports = exp.getNamedExports().map(ne => {
57
- const name = ne.getName();
58
- const alias = ne.getAliasNode()?.getText();
59
- const isTypeOnlySpecifier = ne.isTypeOnly();
60
- // Format: "OriginalName" oder "OriginalName as Alias" oder "type OriginalName"
61
- let result = name;
62
- if (alias && alias !== name) {
63
- result = `${name} as ${alias}`;
64
- }
65
- if (isTypeOnlySpecifier || isTypeOnly) {
66
- result = `type ${result}`;
67
- }
68
- return result;
69
- });
70
- const symbols = [];
71
- if (isNamespace) {
72
- symbols.push(isTypeOnly ? 'type *' : '*');
73
- }
74
- symbols.push(...namedExports);
75
- deps.push({
76
- from: repoRelPath,
77
- to: moduleSpec,
78
- type: 'export',
79
- symbols: symbols.length > 0 ? symbols : undefined,
80
- isTypeOnly: isTypeOnly || undefined,
81
- isReexport: true, // Markiert als Re-Export (Barrel-Pattern)
82
- });
83
- }
84
- });
85
- return deps;
86
- }
87
- exports.extractTsJsDependencies = extractTsJsDependencies;
88
- /**
89
- * @public
90
- * Extract dependencies from Python files
91
- */
92
- function extractPythonDependencies(content, repoRelPath) {
93
- const deps = [];
94
- const lines = content.split(/\r?\n/);
95
- for (const line of lines) {
96
- const trimmed = line.trim();
97
- // import module
98
- const importMatch = trimmed.match(/^import\s+([^#]+)/);
99
- if (importMatch) {
100
- const modules = importMatch[1].split(',').map(m => m.trim());
101
- for (const mod of modules) {
102
- deps.push({
103
- from: repoRelPath,
104
- to: mod,
105
- type: 'import',
106
- });
107
- }
108
- continue;
109
- }
110
- // from module import symbols
111
- const fromMatch = trimmed.match(/^from\s+([^\s]+)\s+import\s+([^#]+)/);
112
- if (fromMatch) {
113
- const module = fromMatch[1];
114
- const symbols = fromMatch[2].split(',').map(s => s.trim());
115
- deps.push({
116
- from: repoRelPath,
117
- to: module,
118
- type: 'import',
119
- symbols,
120
- });
121
- }
122
- }
123
- return deps;
124
- }
125
- exports.extractPythonDependencies = extractPythonDependencies;
126
- //# sourceMappingURL=dependencies.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../../src/parsers/dependencies.ts"],"names":[],"mappings":"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"}
@@ -1,121 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.JsonYamlParser = void 0;
27
- const path = __importStar(require("path"));
28
- const YAML = __importStar(require("yaml"));
29
- function asRepoRel(p) {
30
- return p.split(path.sep).join('/');
31
- }
32
- class JsonYamlParser {
33
- constructor() {
34
- this.language = 'json-yaml';
35
- }
36
- parse(filePath, fileContent) {
37
- // ARCHITECTURE DECISION (ADR): JSON/YAML liefern keine Code-Symbole
38
- // Diese Dateien enthalten Konfiguration, keine Code-Symbole.
39
- // Root Cause Fix: Verhindert $schema, $ref und andere JSON-Keys als Symbole.
40
- //
41
- // Option A (alt): Komplett deaktivieren - return []
42
- // Option B (implementiert): Nur spezifische Config-Keys extrahieren (z.B. package.json, tsconfig.json)
43
- //
44
- // Begründung: JSON/YAML sind Konfigurationsdateien, keine Code-Quellen.
45
- // Symbole sollten nur aus .ts/.tsx/.js/.jsx extrahiert werden.
46
- const ext = path.extname(filePath).toLowerCase();
47
- const base = path.basename(filePath).toLowerCase();
48
- const repoRel = asRepoRel(filePath);
49
- // JSON/YAML: standardmäßig keine Symbole extrahieren (Konfiguration ≠ Code),
50
- // aber für wenige, semantisch nützliche Standarddateien Top-Level-Keys extrahieren.
51
- if (ext === '.json') {
52
- if (base === 'package.json' || base === 'tsconfig.json') {
53
- try {
54
- const parsed = JSON.parse(fileContent);
55
- const out = [];
56
- this.collectFromObject(this.filterConfigKeys(parsed), repoRel, out, this.language);
57
- return out;
58
- }
59
- catch {
60
- // Invalid JSON → keine Symbole
61
- return [];
62
- }
63
- }
64
- return [];
65
- }
66
- if (ext === '.yaml' || ext === '.yml') {
67
- return [];
68
- }
69
- // Markdown Front-Matter: Auch keine Symbole (nur Metadaten)
70
- if (ext === '.md') {
71
- return [];
72
- }
73
- return [];
74
- }
75
- filterConfigKeys(obj) {
76
- if (!obj || typeof obj !== 'object' || Array.isArray(obj))
77
- return {};
78
- const record = obj;
79
- const out = {};
80
- for (const k of Object.keys(record)) {
81
- // Schutz gegen Noise: $schema, $ref, etc. nie als „Symbol“ behandeln
82
- if (k.startsWith('$'))
83
- continue;
84
- out[k] = record[k];
85
- }
86
- return out;
87
- }
88
- collectFromObject(obj, repoRel, out, lang) {
89
- if (!obj || typeof obj !== 'object')
90
- return;
91
- const keys = Object.keys(obj).sort();
92
- for (const k of keys) {
93
- const v = obj[k];
94
- const sig = { name: k, parameters: [], returnType: typeof v, visibility: 'public' };
95
- out.push({
96
- language: lang,
97
- filePath: repoRel,
98
- fullyQualifiedName: k,
99
- signature: sig,
100
- kind: 'variable',
101
- });
102
- }
103
- }
104
- extractFrontMatter(content) {
105
- // Einfacher Front-Matter-Parser: erwartet '---' Block am Anfang
106
- if (!content.startsWith('---'))
107
- return null;
108
- const end = content.indexOf('\n---', 3);
109
- if (end === -1)
110
- return null;
111
- const block = content.slice(3, end).trim();
112
- try {
113
- return YAML.parse(block);
114
- }
115
- catch {
116
- return null;
117
- }
118
- }
119
- }
120
- exports.JsonYamlParser = JsonYamlParser;
121
- //# sourceMappingURL=json-yaml.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"json-yaml.js","sourceRoot":"","sources":["../../src/parsers/json-yaml.ts"],"names":[],"mappings":"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"}
@@ -1,160 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.PythonParser = void 0;
30
- const tree_sitter_1 = __importDefault(require("tree-sitter"));
31
- const tree_sitter_python_1 = __importDefault(require("tree-sitter-python"));
32
- const path = __importStar(require("path"));
33
- class PythonParser {
34
- constructor() {
35
- this.language = 'python';
36
- this.parser = new tree_sitter_1.default();
37
- this.parser.setLanguage(tree_sitter_python_1.default);
38
- }
39
- parse(filePath, fileContent) {
40
- try {
41
- const tree = this.parser.parse(fileContent);
42
- const repoRelPath = filePath.split(path.sep).join('/');
43
- const symbols = [];
44
- const walkNode = (node, namespace = '') => {
45
- switch (node.type) {
46
- case 'class_definition':
47
- const className = this.getNodeText(node, 'identifier', fileContent);
48
- if (className) {
49
- const fqn = namespace ? `${namespace}.${className}` : className;
50
- symbols.push({
51
- language: 'python',
52
- filePath: repoRelPath,
53
- fullyQualifiedName: fqn,
54
- signature: { name: className, parameters: [] },
55
- kind: 'class',
56
- });
57
- // Methoden in der Klasse
58
- for (const child of node.children) {
59
- if (child.type === 'block') {
60
- for (const stmt of child.children) {
61
- if (stmt.type === 'function_definition') {
62
- const methodName = this.getNodeText(stmt, 'identifier', fileContent);
63
- if (methodName) {
64
- const params = this.extractParameters(stmt, fileContent);
65
- symbols.push({
66
- language: 'python',
67
- filePath: repoRelPath,
68
- fullyQualifiedName: `${fqn}.${methodName}`,
69
- signature: { name: methodName, parameters: params },
70
- kind: 'method',
71
- });
72
- }
73
- }
74
- }
75
- }
76
- }
77
- }
78
- break;
79
- case 'function_definition':
80
- const funcName = this.getNodeText(node, 'identifier', fileContent);
81
- if (funcName) {
82
- const fqn = namespace ? `${namespace}.${funcName}` : funcName;
83
- const params = this.extractParameters(node, fileContent);
84
- symbols.push({
85
- language: 'python',
86
- filePath: repoRelPath,
87
- fullyQualifiedName: fqn,
88
- signature: { name: funcName, parameters: params },
89
- kind: 'function',
90
- });
91
- }
92
- break;
93
- case 'assignment':
94
- // Einfache Variablen-Zuweisungen auf Modul-Ebene
95
- const varName = this.getNodeText(node, 'identifier', fileContent);
96
- if (varName && !namespace) { // nur top-level
97
- symbols.push({
98
- language: 'python',
99
- filePath: repoRelPath,
100
- fullyQualifiedName: varName,
101
- signature: { name: varName, parameters: [] },
102
- kind: 'variable',
103
- });
104
- }
105
- break;
106
- }
107
- // Rekursiv durch Kinder
108
- for (const child of node.children) {
109
- walkNode(child, namespace);
110
- }
111
- };
112
- walkNode(tree.rootNode);
113
- // Deterministisch sortieren
114
- symbols.sort((a, b) => {
115
- if (a.filePath !== b.filePath)
116
- return a.filePath.localeCompare(b.filePath);
117
- return a.fullyQualifiedName.localeCompare(b.fullyQualifiedName);
118
- });
119
- return symbols;
120
- }
121
- catch {
122
- return [];
123
- }
124
- }
125
- getNodeText(node, childType, source) {
126
- const child = node.children.find((c) => c.type === childType);
127
- return child ? source.slice(child.startIndex, child.endIndex) : null;
128
- }
129
- extractParameters(funcNode, source) {
130
- const params = [];
131
- const paramsNode = funcNode.children.find((c) => c.type === 'parameters');
132
- if (!paramsNode)
133
- return params;
134
- for (const child of paramsNode.children) {
135
- if (child.type === 'identifier') {
136
- const name = source.slice(child.startIndex, child.endIndex);
137
- params.push({ name });
138
- }
139
- else if (child.type === 'default_parameter') {
140
- const nameNode = child.children.find((c) => c.type === 'identifier');
141
- if (nameNode) {
142
- const name = source.slice(nameNode.startIndex, nameNode.endIndex);
143
- params.push({ name, hasDefault: true });
144
- }
145
- }
146
- else if (child.type === 'typed_parameter') {
147
- const nameNode = child.children.find((c) => c.type === 'identifier');
148
- const typeNode = child.children.find((c) => c.type === 'type');
149
- if (nameNode) {
150
- const name = source.slice(nameNode.startIndex, nameNode.endIndex);
151
- const type = typeNode ? source.slice(typeNode.startIndex, typeNode.endIndex) : undefined;
152
- params.push({ name, type });
153
- }
154
- }
155
- }
156
- return params;
157
- }
158
- }
159
- exports.PythonParser = PythonParser;
160
- //# sourceMappingURL=python.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"python.js","sourceRoot":"","sources":["../../src/parsers/python.ts"],"names":[],"mappings":"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"}