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

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 (197) hide show
  1. package/out/cache/ast-cache.js +69 -0
  2. package/out/cache/ast-cache.js.map +1 -0
  3. package/out/cache/dependencies-cache.js +73 -0
  4. package/out/cache/dependencies-cache.js.map +1 -0
  5. package/out/cache/output-cache.js +69 -0
  6. package/out/cache/output-cache.js.map +1 -0
  7. package/out/cache/signature-cache.js +60 -0
  8. package/out/cache/signature-cache.js.map +1 -0
  9. package/out/cli/generate-cli.js +345 -0
  10. package/out/cli/generate-cli.js.map +1 -0
  11. package/out/cli/scan-cli.js +157 -0
  12. package/out/cli/scan-cli.js.map +1 -0
  13. package/out/cli/validate-cli.js +258 -0
  14. package/out/cli/validate-cli.js.map +1 -0
  15. package/out/core/async.js +38 -0
  16. package/out/core/async.js.map +1 -0
  17. package/out/core/consolidation.js +230 -0
  18. package/out/core/consolidation.js.map +1 -0
  19. package/out/core/git.js +48 -0
  20. package/out/core/git.js.map +1 -0
  21. package/out/core/language-detection.js +29 -0
  22. package/out/core/language-detection.js.map +1 -0
  23. package/out/core/scanner.js +180 -0
  24. package/out/core/scanner.js.map +1 -0
  25. package/out/core/signature-formatter.js +162 -0
  26. package/out/core/signature-formatter.js.map +1 -0
  27. package/out/core/symbol-classifier.js +96 -0
  28. package/out/core/symbol-classifier.js.map +1 -0
  29. package/out/core/symbols.js +24 -0
  30. package/out/core/symbols.js.map +1 -0
  31. package/out/drift/index.js +28 -0
  32. package/out/drift/index.js.map +1 -0
  33. package/out/extension.js +984 -0
  34. package/out/extension.js.map +1 -0
  35. package/out/generator/adr-linker.js +216 -0
  36. package/out/generator/adr-linker.js.map +1 -0
  37. package/out/generator/change-report.js +124 -0
  38. package/out/generator/change-report.js.map +1 -0
  39. package/out/generator/dependency-graph.js +98 -0
  40. package/out/generator/dependency-graph.js.map +1 -0
  41. package/out/generator/index.js +117 -0
  42. package/out/generator/index.js.map +1 -0
  43. package/out/generator/module-doc.js +438 -0
  44. package/out/generator/module-doc.js.map +1 -0
  45. package/out/generator/system-metadata.js +202 -0
  46. package/out/generator/system-metadata.js.map +1 -0
  47. package/out/index/index.js +161 -0
  48. package/out/index/index.js.map +1 -0
  49. package/out/logging/index.js +24 -0
  50. package/out/logging/index.js.map +1 -0
  51. package/out/parsers/dependencies.js +126 -0
  52. package/out/parsers/dependencies.js.map +1 -0
  53. package/out/parsers/json-yaml.js +121 -0
  54. package/out/parsers/json-yaml.js.map +1 -0
  55. package/out/parsers/python.js +160 -0
  56. package/out/parsers/python.js.map +1 -0
  57. package/out/parsers/ts-js.js +598 -0
  58. package/out/parsers/ts-js.js.map +1 -0
  59. package/out/parsers/types.js +3 -0
  60. package/out/parsers/types.js.map +1 -0
  61. package/out/ui/commands-provider.js +91 -0
  62. package/out/ui/commands-provider.js.map +1 -0
  63. package/out/ui/status-bar.js +85 -0
  64. package/out/ui/status-bar.js.map +1 -0
  65. package/out/validator/index.js +185 -0
  66. package/out/validator/index.js.map +1 -0
  67. package/out/validator/signature-matching.js +261 -0
  68. package/out/validator/signature-matching.js.map +1 -0
  69. package/out/validator/status.js +38 -0
  70. package/out/validator/status.js.map +1 -0
  71. package/package.json +9 -1
  72. package/.vscodeignore +0 -41
  73. package/MCP_SERVER_SETUP.md +0 -371
  74. package/assets/icon.svg +0 -27
  75. package/docs/LINKEDIN_ANTWORT_SEQUENZDIAGRAMME.md +0 -190
  76. package/docs/SEQUENZDIAGRAMM_BEWEIS.md +0 -469
  77. package/docs/SEQUENZDIAGRAMM_VALIDATE_FLOW.md +0 -282
  78. package/docs/adr/001-signatur-abweichung-fix.md +0 -54
  79. package/docs/adr/002-file-specific-validation-1.0.1.md +0 -45
  80. package/docs/adr/003-documentation-generation-bugs.md +0 -134
  81. package/docs/adr/004-validator-signature-matching-fix.md +0 -121
  82. package/docs/adr/005-validator-generic-simplification-tightening.md +0 -35
  83. package/docs/adr/006-parser-variable-type-extraction.md +0 -33
  84. package/docs/adr/007-ts-parser-load-libs-for-accurate-types.md +0 -31
  85. package/docs/adr/008-dependencies-cache-phase1.md +0 -133
  86. package/docs/adr/009-consolidation-union-logic-phase1-2.md +0 -147
  87. package/docs/adr/010-extension-union-integration-phase1-3-and-phase2.md +0 -179
  88. package/docs/adr/011-module-doc-change-tracking-phase3.md +0 -190
  89. package/docs/adr/012-git-deletions-change-report-phase4.md +0 -235
  90. package/docs/adr/013-system-functionality-fixes.md +0 -279
  91. package/docs/adr/014-rules-migration-und-mcp-integration.md +0 -113
  92. package/docs/adr/015-global-agent-package.md +0 -158
  93. package/docs/adr/016-produktisierung-docguard.md +0 -193
  94. package/docs/adr/017-signature-matching-optional-fields.md +0 -128
  95. package/docs/adr/018-rebranding-docguard-to-noyrax.md +0 -109
  96. package/docs/adr/019-system-schwachstellen-analyse-und-fixes.md +0 -204
  97. package/docs/adr/020-api-doc-tiefe-und-signatureformatter.md +0 -74
  98. package/docs/adr/021-semantic-api-docs-and-symbol-classifier.md +0 -125
  99. package/docs/adr/022-semantic-class-and-constants-rendering.md +0 -82
  100. package/docs/adr/023-adr-verknuepfung-modul-doku.md +0 -54
  101. package/docs/adr/024-cursor-rules-mehrdimensionaler-raum.md +0 -230
  102. package/docs/adr/025-mcp-tools-scan-validate-cli-bridge.md +0 -202
  103. package/docs/adr/026-reality-driven-development-system.md +0 -173
  104. package/docs/adr/027-scanner-excludes-and-union-logic-fix.md +0 -189
  105. package/docs/adr/028-src-coverage-union-resync.md +0 -124
  106. package/docs/adr/029-parser-flow-kopplung-und-sync-drift-modi.md +0 -102
  107. package/docs/adr/030-dependency-import-symbol-names-preservation.md +0 -123
  108. package/docs/adr/031-generate-cli-vollstaendige-dokumentation.md +0 -99
  109. package/docs/adr/032-windows-optimized-verification-scripts.md +0 -165
  110. package/docs/adr/036-enhanced-dependency-metadata.md +0 -190
  111. package/docs/adr/TEMPLATE.md +0 -76
  112. package/docs/index/symbols.jsonl +0 -78
  113. package/docs/modules/action__action.yml.md +0 -50
  114. package/docs/modules/documentation.config.schema.json.md +0 -37
  115. package/docs/modules/mcp__package.json.md +0 -130
  116. package/docs/modules/mcp__src__resources__docs.ts.md +0 -94
  117. package/docs/modules/mcp__src__server.ts.md +0 -15
  118. package/docs/modules/mcp__src__tools__drift.ts.md +0 -114
  119. package/docs/modules/mcp__src__tools__impact.ts.md +0 -130
  120. package/docs/modules/mcp__src__tools__scan.ts.md +0 -75
  121. package/docs/modules/mcp__src__tools__validate.ts.md +0 -116
  122. package/docs/modules/mcp__src__tools__verify-adrs.ts.md +0 -106
  123. package/docs/modules/mcp__tsconfig.json.md +0 -22
  124. package/docs/modules/package.json.md +0 -130
  125. package/docs/modules/packages__doc-system-agent__examples__basic-project__package.json.md +0 -43
  126. package/docs/modules/packages__doc-system-agent__examples__basic-project__src__calculator.ts.md +0 -81
  127. package/docs/modules/packages__doc-system-agent__package.json.md +0 -154
  128. package/docs/modules/packages__doc-system-agent__src__cli__index.ts.md +0 -8
  129. package/docs/modules/packages__doc-system-agent__src__cli__init.ts.md +0 -93
  130. package/docs/modules/packages__doc-system-agent__src__cli__update.ts.md +0 -113
  131. package/docs/modules/packages__doc-system-agent__src__constants.ts.md +0 -29
  132. package/docs/modules/packages__doc-system-agent__src__index.ts.md +0 -234
  133. package/docs/modules/packages__doc-system-agent__src__mcp__resources__docs.ts.md +0 -94
  134. package/docs/modules/packages__doc-system-agent__src__mcp__server.ts.md +0 -17
  135. package/docs/modules/packages__doc-system-agent__src__mcp__tools__drift.ts.md +0 -38
  136. package/docs/modules/packages__doc-system-agent__src__mcp__tools__impact.ts.md +0 -75
  137. package/docs/modules/packages__doc-system-agent__src__mcp__tools__scan.ts.md +0 -23
  138. package/docs/modules/packages__doc-system-agent__src__mcp__tools__validate.ts.md +0 -23
  139. package/docs/modules/packages__doc-system-agent__src__mcp__tools__verify-adrs.ts.md +0 -106
  140. package/docs/modules/packages__doc-system-agent__src__mcp__types.ts.md +0 -355
  141. package/docs/modules/packages__doc-system-agent__tsconfig.json.md +0 -22
  142. package/docs/modules/scripts__verify-adrs.js.md +0 -97
  143. package/docs/modules/scripts__verify-architecture.js.md +0 -93
  144. package/docs/modules/scripts__verify-imports.js.md +0 -114
  145. package/docs/modules/src____tests____setup.ts.md +0 -8
  146. package/docs/modules/src____tests____signature-formatter.test.ts.md +0 -16
  147. package/docs/modules/src____tests____snapshot-doc-generation.test.ts.md +0 -8
  148. package/docs/modules/src____tests____symbol-classifier.test.ts.md +0 -16
  149. package/docs/modules/src__cache__ast-cache.ts.md +0 -91
  150. package/docs/modules/src__cache__dependencies-cache.ts.md +0 -89
  151. package/docs/modules/src__cache__output-cache.ts.md +0 -91
  152. package/docs/modules/src__cache__signature-cache.ts.md +0 -76
  153. package/docs/modules/src__cli__generate-cli.ts.md +0 -130
  154. package/docs/modules/src__cli__scan-cli.ts.md +0 -99
  155. package/docs/modules/src__cli__validate-cli.ts.md +0 -144
  156. package/docs/modules/src__core__async.ts.md +0 -18
  157. package/docs/modules/src__core__consolidation.ts.md +0 -157
  158. package/docs/modules/src__core__git.ts.md +0 -35
  159. package/docs/modules/src__core__language-detection.ts.md +0 -31
  160. package/docs/modules/src__core__scanner.ts.md +0 -100
  161. package/docs/modules/src__core__signature-formatter.ts.md +0 -232
  162. package/docs/modules/src__core__symbol-classifier.ts.md +0 -178
  163. package/docs/modules/src__core__symbols.ts.md +0 -31
  164. package/docs/modules/src__drift__index.ts.md +0 -53
  165. package/docs/modules/src__extension.ts.md +0 -418
  166. package/docs/modules/src__generator__adr-linker.ts.md +0 -154
  167. package/docs/modules/src__generator__change-report.ts.md +0 -85
  168. package/docs/modules/src__generator__dependency-graph.ts.md +0 -63
  169. package/docs/modules/src__generator__index.ts.md +0 -40
  170. package/docs/modules/src__generator__module-doc.ts.md +0 -242
  171. package/docs/modules/src__index__index.ts.md +0 -159
  172. package/docs/modules/src__logging__index.ts.md +0 -87
  173. package/docs/modules/src__parsers__dependencies.ts.md +0 -69
  174. package/docs/modules/src__parsers__json-yaml.ts.md +0 -96
  175. package/docs/modules/src__parsers__python.ts.md +0 -73
  176. package/docs/modules/src__parsers__ts-js.ts.md +0 -48
  177. package/docs/modules/src__parsers__types.ts.md +0 -117
  178. package/docs/modules/src__ui__commands-provider.ts.md +0 -70
  179. package/docs/modules/src__ui__status-bar.ts.md +0 -79
  180. package/docs/modules/src__validator__index.ts.md +0 -211
  181. package/docs/modules/src__validator__signature-matching.ts.md +0 -209
  182. package/docs/modules/src__validator__status.ts.md +0 -72
  183. package/docs/modules/test-mcp-resources.js.md +0 -27
  184. package/docs/modules/tsconfig.json.md +0 -22
  185. package/docs/system/CHANGE_REPORT.md +0 -26
  186. package/docs/system/DEPENDENCIES.md +0 -403
  187. package/docs/system/DEPENDENCY_GRAPH.md +0 -336
  188. package/docs/system/NAVIGATION_SPACE_ANALYSIS.md +0 -244
  189. package/docs/system/NPX_CACHE_FIX.md +0 -85
  190. package/docs/system/NPX_LOCAL_USAGE.md +0 -66
  191. package/docs/system/PLUGIN_ECOSYSTEM_STATUS.md +0 -465
  192. package/docs/system/PLUGIN_UPDATE_GUIDE.md +0 -212
  193. package/docs/system/RULES_UPDATE_GUIDE.md +0 -182
  194. package/docs/system/SYSTEM_ANALYSIS.md +0 -947
  195. package/docs/system/SYSTEM_METADATA.json +0 -37
  196. package/documentation.config.schema.json +0 -77
  197. package/publish.ps1 +0 -21
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extension.js","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,216 @@
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.AdrLinker = void 0;
27
+ const fs = __importStar(require("node:fs"));
28
+ const path = __importStar(require("node:path"));
29
+ /**
30
+ * @public
31
+ * ADR linker that maps file paths to relevant ADRs
32
+ */
33
+ class AdrLinker {
34
+ /**
35
+ * @public
36
+ * Initialize ADR linker by loading all ADRs from the given directory
37
+ */
38
+ constructor(adrDir, metadataPath) {
39
+ this.filePathToAdrs = new Map();
40
+ this.adrMetadata = new Map();
41
+ this.overrides = new Map();
42
+ this.excludes = new Map();
43
+ this.loadAdrMappings(adrDir);
44
+ if (metadataPath && fs.existsSync(metadataPath)) {
45
+ this.loadMetadataOverrides(metadataPath);
46
+ }
47
+ }
48
+ /**
49
+ * @public
50
+ * Get relevant ADR numbers for a given file path
51
+ */
52
+ getRelevantAdrs(filePath) {
53
+ const adrs = new Set();
54
+ // Add automatically detected ADRs
55
+ const autoAdrs = this.filePathToAdrs.get(filePath) || [];
56
+ for (const adr of autoAdrs) {
57
+ adrs.add(adr);
58
+ }
59
+ // Apply overrides (add)
60
+ const overrideAdrs = this.overrides.get(filePath) || [];
61
+ for (const adr of overrideAdrs) {
62
+ adrs.add(adr);
63
+ }
64
+ // Apply excludes (remove)
65
+ const excludeSet = this.excludes.get(filePath);
66
+ if (excludeSet) {
67
+ for (const adr of excludeSet) {
68
+ adrs.delete(adr);
69
+ }
70
+ }
71
+ // Sort deterministically
72
+ return Array.from(adrs).sort((a, b) => {
73
+ const numA = Number.parseInt(a, 10);
74
+ const numB = Number.parseInt(b, 10);
75
+ return numA - numB;
76
+ });
77
+ }
78
+ /**
79
+ * @public
80
+ * Get ADR metadata (title and fileName) for a given ADR number
81
+ */
82
+ getAdrMetadata(adrNumber) {
83
+ return this.adrMetadata.get(adrNumber);
84
+ }
85
+ /**
86
+ * @public
87
+ * Get all file path to ADR mappings
88
+ */
89
+ getAllAdrMappings() {
90
+ return new Map(this.filePathToAdrs);
91
+ }
92
+ /**
93
+ * Parse a single ADR file and extract file paths and metadata
94
+ */
95
+ parseAdrFile(adrPath) {
96
+ const content = fs.readFileSync(adrPath, 'utf8');
97
+ const fileName = path.basename(adrPath);
98
+ // Extract ADR number from filename (e.g., "020-api-doc-tiefe-und-signatureformatter.md" -> "020")
99
+ const numberMatch = fileName.match(/^(\d+)-/);
100
+ if (!numberMatch) {
101
+ return { number: '', filePaths: [], metadata: null };
102
+ }
103
+ const number = numberMatch[1];
104
+ // Extract title from first line (e.g., "# ADR-020: API-Doku-Tiefe & zentrale Signatur-Formatierung")
105
+ const titleMatch = content.match(/^#\s+ADR-\d+:\s*(.+)$/m);
106
+ const title = titleMatch ? titleMatch[1].trim() : fileName.replace(/\.md$/, '').replace(/^\d+-/, '');
107
+ const metadata = {
108
+ number,
109
+ title,
110
+ fileName
111
+ };
112
+ // Extract file paths using multiple patterns:
113
+ // 1. `src/...` (in code blocks or inline)
114
+ // 2. `Datei: src/...` or `- src/...` (in lists)
115
+ // 3. `src/...:` (with colon, in lists)
116
+ const filePaths = new Set();
117
+ // Pattern 1: Backtick-wrapped paths `src/...`
118
+ const backtickPattern = /`(src\/[^`]+)`/g;
119
+ let match;
120
+ while ((match = backtickPattern.exec(content)) !== null) {
121
+ const filePath = match[1].trim();
122
+ if (filePath.startsWith('src/')) {
123
+ filePaths.add(filePath);
124
+ }
125
+ }
126
+ // Pattern 2: "Datei: src/..." or "- src/..." or "src/...:" (in markdown lists or after colons)
127
+ const listPattern = /(?:^[-*]\s+|Datei:\s+|^\d+\.\s+)(?:`)?(src\/[^\s:`]+)(?:`)?/gm;
128
+ while ((match = listPattern.exec(content)) !== null) {
129
+ const filePath = match[1].trim();
130
+ if (filePath.startsWith('src/')) {
131
+ filePaths.add(filePath);
132
+ }
133
+ }
134
+ // Pattern 3: Lines starting with "- `src/..." (markdown list items with backticks)
135
+ const listBacktickPattern = /^[-*]\s+`(src\/[^`]+)`/gm;
136
+ while ((match = listBacktickPattern.exec(content)) !== null) {
137
+ const filePath = match[1].trim();
138
+ if (filePath.startsWith('src/')) {
139
+ filePaths.add(filePath);
140
+ }
141
+ }
142
+ return {
143
+ number,
144
+ filePaths: Array.from(filePaths).sort(),
145
+ metadata
146
+ };
147
+ }
148
+ /**
149
+ * Load all ADR mappings from the ADR directory
150
+ */
151
+ loadAdrMappings(adrDir) {
152
+ if (!fs.existsSync(adrDir)) {
153
+ return;
154
+ }
155
+ const files = fs.readdirSync(adrDir)
156
+ .filter(f => f.endsWith('.md') && /^\d+-/.test(f))
157
+ .sort();
158
+ for (const file of files) {
159
+ const adrPath = path.join(adrDir, file);
160
+ try {
161
+ const { number, filePaths, metadata } = this.parseAdrFile(adrPath);
162
+ if (number && metadata) {
163
+ this.adrMetadata.set(number, metadata);
164
+ for (const filePath of filePaths) {
165
+ if (!this.filePathToAdrs.has(filePath)) {
166
+ this.filePathToAdrs.set(filePath, []);
167
+ }
168
+ const adrs = this.filePathToAdrs.get(filePath);
169
+ if (!adrs.includes(number)) {
170
+ adrs.push(number);
171
+ }
172
+ }
173
+ }
174
+ }
175
+ catch (err) {
176
+ // Skip files that can't be parsed
177
+ // This is expected for malformed ADR files
178
+ continue;
179
+ }
180
+ }
181
+ // Sort ADR numbers for each file path deterministically
182
+ for (const [, adrs] of this.filePathToAdrs.entries()) {
183
+ adrs.sort((a, b) => {
184
+ const numA = Number.parseInt(a, 10);
185
+ const numB = Number.parseInt(b, 10);
186
+ return numA - numB;
187
+ });
188
+ }
189
+ }
190
+ /**
191
+ * Load metadata overrides from JSON file
192
+ */
193
+ loadMetadataOverrides(metadataPath) {
194
+ try {
195
+ const content = fs.readFileSync(metadataPath, 'utf8');
196
+ const data = JSON.parse(content);
197
+ if (data.overrides) {
198
+ for (const [filePath, adrs] of Object.entries(data.overrides)) {
199
+ this.overrides.set(filePath, [...adrs]);
200
+ }
201
+ }
202
+ if (data.excludes) {
203
+ for (const [filePath, adrs] of Object.entries(data.excludes)) {
204
+ this.excludes.set(filePath, new Set(adrs));
205
+ }
206
+ }
207
+ }
208
+ catch (err) {
209
+ // If metadata file is invalid, ignore it
210
+ // This is expected if the file doesn't exist or is malformed
211
+ return;
212
+ }
213
+ }
214
+ }
215
+ exports.AdrLinker = AdrLinker;
216
+ //# sourceMappingURL=adr-linker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adr-linker.js","sourceRoot":"","sources":["../../src/generator/adr-linker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,124 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateChangeReport = exports.extractChangesFromModuleDocs = void 0;
4
+ /**
5
+ * @public
6
+ * Extract change information from module documentation comments
7
+ */
8
+ function extractChangesFromModuleDocs(moduleDocs) {
9
+ const symbolsAdded = [];
10
+ const symbolsRemoved = [];
11
+ const symbolsChanged = [];
12
+ for (const [filePath, content] of moduleDocs.entries()) {
13
+ const lines = content.split(/\r?\n/);
14
+ let currentSymbolName = '';
15
+ let currentKind = '';
16
+ for (const line of lines) {
17
+ // Parse symbol-added comment
18
+ const addedMatch = line.match(/<!--\s*change:\s*symbol-added\s+name="([^"]+)"\s+kind="([^"]+)"\s*-->/);
19
+ if (addedMatch) {
20
+ symbolsAdded.push({
21
+ filePath,
22
+ symbolName: addedMatch[1],
23
+ kind: addedMatch[2]
24
+ });
25
+ continue;
26
+ }
27
+ // Parse symbol-removed comment
28
+ const removedMatch = line.match(/<!--\s*change:\s*symbol-removed\s+name="([^"]+)"\s+kind="([^"]+)"\s*-->/);
29
+ if (removedMatch) {
30
+ symbolsRemoved.push({
31
+ filePath,
32
+ symbolName: removedMatch[1],
33
+ kind: removedMatch[2]
34
+ });
35
+ continue;
36
+ }
37
+ // Parse signature-changed comment
38
+ const changedMatch = line.match(/<!--\s*change:\s*signature-changed\s+old="([^"]+)"\s+new="([^"]+)"\s*-->/);
39
+ if (changedMatch) {
40
+ // Try to extract symbol name from next line (header)
41
+ const nextLineIdx = lines.indexOf(line) + 1;
42
+ if (nextLineIdx < lines.length) {
43
+ const headerMatch = lines[nextLineIdx].match(/^###\s+\w+:\s+(.+)$/);
44
+ if (headerMatch) {
45
+ currentSymbolName = headerMatch[1];
46
+ }
47
+ }
48
+ symbolsChanged.push({
49
+ filePath,
50
+ symbolName: currentSymbolName || 'unknown',
51
+ oldSignature: changedMatch[1],
52
+ newSignature: changedMatch[2]
53
+ });
54
+ continue;
55
+ }
56
+ // Extract symbol name from header for context
57
+ const headerMatch = line.match(/^###\s+(\w+):\s+(.+)$/);
58
+ if (headerMatch) {
59
+ currentKind = headerMatch[1];
60
+ currentSymbolName = headerMatch[2];
61
+ }
62
+ }
63
+ }
64
+ return { symbolsAdded, symbolsRemoved, symbolsChanged };
65
+ }
66
+ exports.extractChangesFromModuleDocs = extractChangesFromModuleDocs;
67
+ /**
68
+ * @public
69
+ * Generate change report markdown
70
+ */
71
+ function generateChangeReport(data) {
72
+ const lines = [];
73
+ lines.push('# Änderungsreport');
74
+ lines.push('');
75
+ lines.push(`Letzter Lauf: ${data.runType === 'full' ? 'Full' : 'Incremental'}`);
76
+ lines.push(`Geparste Dateien: ${data.parsedFiles}`);
77
+ lines.push(`Übersprungene Dateien: ${data.skippedFiles}`);
78
+ lines.push('');
79
+ // Neu hinzugefügte Symbole
80
+ if (data.symbolsAdded.length > 0) {
81
+ lines.push('## Neu hinzugefügte Symbole');
82
+ for (const sym of data.symbolsAdded) {
83
+ lines.push(`- \`${sym.filePath}::${sym.symbolName}\` (${sym.kind})`);
84
+ }
85
+ lines.push('');
86
+ }
87
+ // Geänderte Symbole
88
+ if (data.symbolsChanged.length > 0) {
89
+ lines.push('## Geänderte Symbole');
90
+ for (const sym of data.symbolsChanged) {
91
+ lines.push(`- \`${sym.filePath}::${sym.symbolName}\``);
92
+ lines.push(` - Alt: \`${sym.oldSignature}\``);
93
+ lines.push(` - Neu: \`${sym.newSignature}\``);
94
+ }
95
+ lines.push('');
96
+ }
97
+ // Entfernte Symbole
98
+ if (data.symbolsRemoved.length > 0) {
99
+ lines.push('## Entfernte Symbole');
100
+ for (const sym of data.symbolsRemoved) {
101
+ lines.push(`- \`${sym.filePath}::${sym.symbolName}\` (${sym.kind})`);
102
+ }
103
+ lines.push('');
104
+ }
105
+ // Abhängigkeiten
106
+ lines.push('## Abhängigkeiten');
107
+ lines.push(`- Neu: ${data.dependenciesAdded} Dependencies`);
108
+ lines.push(`- Entfernt: ${data.dependenciesRemoved} Dependencies`);
109
+ lines.push(`- Gesamt: ${data.totalDependencies} Dependencies`);
110
+ lines.push('');
111
+ // Validator-Status
112
+ lines.push('## Validator-Status');
113
+ lines.push(`- Fehler: ${data.validationErrors}`);
114
+ lines.push(`- Warnungen: ${data.validationWarnings}`);
115
+ if (data.validationDetails && data.validationDetails.length > 0) {
116
+ for (const detail of data.validationDetails) {
117
+ lines.push(` - ${detail}`);
118
+ }
119
+ }
120
+ lines.push('');
121
+ return lines.join('\n');
122
+ }
123
+ exports.generateChangeReport = generateChangeReport;
124
+ //# sourceMappingURL=change-report.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"change-report.js","sourceRoot":"","sources":["../../src/generator/change-report.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateDependencyOverview = exports.generateMermaidGraph = void 0;
4
+ /**
5
+ * @public
6
+ * Generate Mermaid dependency graph
7
+ */
8
+ function generateMermaidGraph(dependencies) {
9
+ const lines = [];
10
+ lines.push('```mermaid');
11
+ lines.push('graph TD');
12
+ // Eindeutige Module sammeln
13
+ const modules = new Set();
14
+ for (const dep of dependencies) {
15
+ modules.add(dep.from);
16
+ modules.add(dep.to);
17
+ }
18
+ // Knoten definieren (sichere IDs)
19
+ const nodeMap = new Map();
20
+ let nodeId = 0;
21
+ const sortedModules = Array.from(modules).sort((a, b) => a.localeCompare(b));
22
+ for (const mod of sortedModules) {
23
+ const safeId = `N${nodeId++}`;
24
+ const label = mod.replace(/[^a-zA-Z0-9_\-./]/g, '_');
25
+ nodeMap.set(mod, safeId);
26
+ lines.push(` ${safeId}["${label}"]`);
27
+ }
28
+ lines.push('');
29
+ // Kanten definieren
30
+ const edges = new Set();
31
+ for (const dep of dependencies) {
32
+ const fromId = nodeMap.get(dep.from);
33
+ const toId = nodeMap.get(dep.to);
34
+ if (fromId && toId && fromId !== toId) {
35
+ const edge = ` ${fromId} --> ${toId}`;
36
+ edges.add(edge);
37
+ }
38
+ }
39
+ const sortedEdges = Array.from(edges).sort((a, b) => a.localeCompare(b));
40
+ for (const edge of sortedEdges) {
41
+ lines.push(edge);
42
+ }
43
+ lines.push('```');
44
+ return lines.join('\n');
45
+ }
46
+ exports.generateMermaidGraph = generateMermaidGraph;
47
+ /**
48
+ * @public
49
+ * Generate dependency overview documentation
50
+ */
51
+ function generateDependencyOverview(dependencies) {
52
+ const lines = [];
53
+ lines.push('# Abhängigkeitsübersicht');
54
+ lines.push('');
55
+ const grouped = groupDependenciesByFrom(dependencies);
56
+ const sortedEntries = Array.from(grouped.entries()).sort(([a], [b]) => a.localeCompare(b));
57
+ for (const [from, deps] of sortedEntries) {
58
+ lines.push(`## ${from}`);
59
+ lines.push('');
60
+ const imports = deps.filter(d => d.type === 'import');
61
+ const exports = deps.filter(d => d.type === 'export');
62
+ appendDependencySection(lines, 'Imports', imports);
63
+ appendDependencySection(lines, 'Re-Exports', exports);
64
+ }
65
+ return lines.join('\n');
66
+ }
67
+ exports.generateDependencyOverview = generateDependencyOverview;
68
+ /**
69
+ * @private
70
+ * Group dependencies by from-module
71
+ */
72
+ function groupDependenciesByFrom(dependencies) {
73
+ const grouped = new Map();
74
+ for (const dep of dependencies) {
75
+ if (!grouped.has(dep.from))
76
+ grouped.set(dep.from, []);
77
+ grouped.get(dep.from).push(dep);
78
+ }
79
+ return grouped;
80
+ }
81
+ /**
82
+ * @private
83
+ * Append dependency section (imports or exports)
84
+ */
85
+ function appendDependencySection(lines, title, deps) {
86
+ if (deps.length === 0)
87
+ return;
88
+ lines.push(`### ${title}`);
89
+ const sorted = [...deps].sort((a, b) => a.to.localeCompare(b.to));
90
+ for (const dep of sorted) {
91
+ const symbols = (dep.symbols && dep.symbols.length > 0)
92
+ ? ` (${dep.symbols.join(', ')})`
93
+ : '';
94
+ lines.push(`- \`${dep.to}\`${symbols}`);
95
+ }
96
+ lines.push('');
97
+ }
98
+ //# sourceMappingURL=dependency-graph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dependency-graph.js","sourceRoot":"","sources":["../../src/generator/dependency-graph.ts"],"names":[],"mappings":";;;AAEA;;;GAGG;AACH,SAAgB,oBAAoB,CAAC,YAAgC;IACjE,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACzB,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAEvB,4BAA4B;IAC5B,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE;QAC5B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;KACvB;IAED,kCAAkC;IAClC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC1C,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7E,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE;QAC7B,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC,OAAO,MAAM,KAAK,KAAK,IAAI,CAAC,CAAC;KAC3C;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,oBAAoB;IACpB,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE;QAC5B,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACjC,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,KAAK,IAAI,EAAE;YACnC,MAAM,IAAI,GAAG,OAAO,MAAM,QAAQ,IAAI,EAAE,CAAC;YACzC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;SACnB;KACJ;IAED,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IACzE,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE;QAC5B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACpB;IAED,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AA3CD,oDA2CC;AAED;;;GAGG;AACH,SAAgB,0BAA0B,CAAC,YAAgC;IACvE,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IACvC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,MAAM,OAAO,GAAG,uBAAuB,CAAC,YAAY,CAAC,CAAC;IACtD,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IAE3F,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,aAAa,EAAE;QACtC,KAAK,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEf,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;QAEtD,uBAAuB,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QACnD,uBAAuB,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;KACzD;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AApBD,gEAoBC;AAED;;;GAGG;AACH,SAAS,uBAAuB,CAAC,YAAgC;IAC7D,MAAM,OAAO,GAAG,IAAI,GAAG,EAA8B,CAAC;IACtD,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE;QAC5B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACpC;IACD,OAAO,OAAO,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,SAAS,uBAAuB,CAAC,KAAe,EAAE,KAAa,EAAE,IAAwB;IACrF,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAE9B,KAAK,CAAC,IAAI,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC;IAC3B,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAClE,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;QACtB,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;YACnD,CAAC,CAAC,KAAK,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;YAChC,CAAC,CAAC,EAAE,CAAC;QACT,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE,KAAK,OAAO,EAAE,CAAC,CAAC;KAC3C;IACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACnB,CAAC"}