@noyrax/documentation-system-plugin 1.0.4-beta.3 → 1.0.4-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/out/cache/ast-cache.js +69 -0
- package/out/cache/ast-cache.js.map +1 -0
- package/out/cache/dependencies-cache.js +73 -0
- package/out/cache/dependencies-cache.js.map +1 -0
- package/out/cache/output-cache.js +69 -0
- package/out/cache/output-cache.js.map +1 -0
- package/out/cache/signature-cache.js +60 -0
- package/out/cache/signature-cache.js.map +1 -0
- package/out/cli/generate-cli.js +341 -0
- package/out/cli/generate-cli.js.map +1 -0
- package/out/cli/scan-cli.js +157 -0
- package/out/cli/scan-cli.js.map +1 -0
- package/out/cli/validate-cli.js +258 -0
- package/out/cli/validate-cli.js.map +1 -0
- package/out/core/async.js +38 -0
- package/out/core/async.js.map +1 -0
- package/out/core/consolidation.js +230 -0
- package/out/core/consolidation.js.map +1 -0
- package/out/core/git.js +48 -0
- package/out/core/git.js.map +1 -0
- package/out/core/language-detection.js +29 -0
- package/out/core/language-detection.js.map +1 -0
- package/out/core/scanner.js +180 -0
- package/out/core/scanner.js.map +1 -0
- package/out/core/signature-formatter.js +162 -0
- package/out/core/signature-formatter.js.map +1 -0
- package/out/core/symbol-classifier.js +96 -0
- package/out/core/symbol-classifier.js.map +1 -0
- package/out/core/symbols.js +24 -0
- package/out/core/symbols.js.map +1 -0
- package/out/drift/index.js +28 -0
- package/out/drift/index.js.map +1 -0
- package/out/extension.js +984 -0
- package/out/extension.js.map +1 -0
- package/out/generator/adr-linker.js +216 -0
- package/out/generator/adr-linker.js.map +1 -0
- package/out/generator/change-report.js +124 -0
- package/out/generator/change-report.js.map +1 -0
- package/out/generator/dependency-graph.js +98 -0
- package/out/generator/dependency-graph.js.map +1 -0
- package/out/generator/index.js +117 -0
- package/out/generator/index.js.map +1 -0
- package/out/generator/module-doc.js +438 -0
- package/out/generator/module-doc.js.map +1 -0
- package/out/generator/system-metadata.js +202 -0
- package/out/generator/system-metadata.js.map +1 -0
- package/out/index/index.js +161 -0
- package/out/index/index.js.map +1 -0
- package/out/logging/index.js +24 -0
- package/out/logging/index.js.map +1 -0
- package/out/parsers/dependencies.js +126 -0
- package/out/parsers/dependencies.js.map +1 -0
- package/out/parsers/json-yaml.js +121 -0
- package/out/parsers/json-yaml.js.map +1 -0
- package/out/parsers/python.js +160 -0
- package/out/parsers/python.js.map +1 -0
- package/out/parsers/ts-js.js +598 -0
- package/out/parsers/ts-js.js.map +1 -0
- package/out/parsers/types.js +3 -0
- package/out/parsers/types.js.map +1 -0
- package/out/ui/commands-provider.js +91 -0
- package/out/ui/commands-provider.js.map +1 -0
- package/out/ui/status-bar.js +85 -0
- package/out/ui/status-bar.js.map +1 -0
- package/out/validator/index.js +185 -0
- package/out/validator/index.js.map +1 -0
- package/out/validator/signature-matching.js +261 -0
- package/out/validator/signature-matching.js.map +1 -0
- package/out/validator/status.js +38 -0
- package/out/validator/status.js.map +1 -0
- package/package.json +9 -1
- package/.vscodeignore +0 -41
- package/MCP_SERVER_SETUP.md +0 -371
- package/assets/icon.svg +0 -27
- package/docs/LINKEDIN_ANTWORT_SEQUENZDIAGRAMME.md +0 -190
- package/docs/SEQUENZDIAGRAMM_BEWEIS.md +0 -469
- package/docs/SEQUENZDIAGRAMM_VALIDATE_FLOW.md +0 -282
- package/docs/adr/001-signatur-abweichung-fix.md +0 -54
- package/docs/adr/002-file-specific-validation-1.0.1.md +0 -45
- package/docs/adr/003-documentation-generation-bugs.md +0 -134
- package/docs/adr/004-validator-signature-matching-fix.md +0 -121
- package/docs/adr/005-validator-generic-simplification-tightening.md +0 -35
- package/docs/adr/006-parser-variable-type-extraction.md +0 -33
- package/docs/adr/007-ts-parser-load-libs-for-accurate-types.md +0 -31
- package/docs/adr/008-dependencies-cache-phase1.md +0 -133
- package/docs/adr/009-consolidation-union-logic-phase1-2.md +0 -147
- package/docs/adr/010-extension-union-integration-phase1-3-and-phase2.md +0 -179
- package/docs/adr/011-module-doc-change-tracking-phase3.md +0 -190
- package/docs/adr/012-git-deletions-change-report-phase4.md +0 -235
- package/docs/adr/013-system-functionality-fixes.md +0 -279
- package/docs/adr/014-rules-migration-und-mcp-integration.md +0 -113
- package/docs/adr/015-global-agent-package.md +0 -158
- package/docs/adr/016-produktisierung-docguard.md +0 -193
- package/docs/adr/017-signature-matching-optional-fields.md +0 -128
- package/docs/adr/018-rebranding-docguard-to-noyrax.md +0 -109
- package/docs/adr/019-system-schwachstellen-analyse-und-fixes.md +0 -204
- package/docs/adr/020-api-doc-tiefe-und-signatureformatter.md +0 -74
- package/docs/adr/021-semantic-api-docs-and-symbol-classifier.md +0 -125
- package/docs/adr/022-semantic-class-and-constants-rendering.md +0 -82
- package/docs/adr/023-adr-verknuepfung-modul-doku.md +0 -54
- package/docs/adr/024-cursor-rules-mehrdimensionaler-raum.md +0 -230
- package/docs/adr/025-mcp-tools-scan-validate-cli-bridge.md +0 -202
- package/docs/adr/026-reality-driven-development-system.md +0 -173
- package/docs/adr/027-scanner-excludes-and-union-logic-fix.md +0 -189
- package/docs/adr/028-src-coverage-union-resync.md +0 -124
- package/docs/adr/029-parser-flow-kopplung-und-sync-drift-modi.md +0 -102
- package/docs/adr/030-dependency-import-symbol-names-preservation.md +0 -123
- package/docs/adr/031-generate-cli-vollstaendige-dokumentation.md +0 -99
- package/docs/adr/032-windows-optimized-verification-scripts.md +0 -165
- package/docs/adr/036-enhanced-dependency-metadata.md +0 -190
- package/docs/adr/TEMPLATE.md +0 -76
- package/docs/index/symbols.jsonl +0 -78
- package/docs/modules/action__action.yml.md +0 -50
- package/docs/modules/documentation.config.schema.json.md +0 -37
- package/docs/modules/mcp__package.json.md +0 -130
- package/docs/modules/mcp__src__resources__docs.ts.md +0 -94
- package/docs/modules/mcp__src__server.ts.md +0 -15
- package/docs/modules/mcp__src__tools__drift.ts.md +0 -114
- package/docs/modules/mcp__src__tools__impact.ts.md +0 -130
- package/docs/modules/mcp__src__tools__scan.ts.md +0 -75
- package/docs/modules/mcp__src__tools__validate.ts.md +0 -116
- package/docs/modules/mcp__src__tools__verify-adrs.ts.md +0 -106
- package/docs/modules/mcp__tsconfig.json.md +0 -22
- package/docs/modules/package.json.md +0 -130
- package/docs/modules/packages__doc-system-agent__examples__basic-project__package.json.md +0 -43
- package/docs/modules/packages__doc-system-agent__examples__basic-project__src__calculator.ts.md +0 -81
- package/docs/modules/packages__doc-system-agent__package.json.md +0 -154
- package/docs/modules/packages__doc-system-agent__src__cli__index.ts.md +0 -8
- package/docs/modules/packages__doc-system-agent__src__cli__init.ts.md +0 -93
- package/docs/modules/packages__doc-system-agent__src__cli__update.ts.md +0 -113
- package/docs/modules/packages__doc-system-agent__src__constants.ts.md +0 -29
- package/docs/modules/packages__doc-system-agent__src__index.ts.md +0 -234
- package/docs/modules/packages__doc-system-agent__src__mcp__resources__docs.ts.md +0 -94
- package/docs/modules/packages__doc-system-agent__src__mcp__server.ts.md +0 -17
- package/docs/modules/packages__doc-system-agent__src__mcp__tools__drift.ts.md +0 -38
- package/docs/modules/packages__doc-system-agent__src__mcp__tools__impact.ts.md +0 -75
- package/docs/modules/packages__doc-system-agent__src__mcp__tools__scan.ts.md +0 -23
- package/docs/modules/packages__doc-system-agent__src__mcp__tools__validate.ts.md +0 -23
- package/docs/modules/packages__doc-system-agent__src__mcp__tools__verify-adrs.ts.md +0 -106
- package/docs/modules/packages__doc-system-agent__src__mcp__types.ts.md +0 -355
- package/docs/modules/packages__doc-system-agent__tsconfig.json.md +0 -22
- package/docs/modules/scripts__verify-adrs.js.md +0 -97
- package/docs/modules/scripts__verify-architecture.js.md +0 -93
- package/docs/modules/scripts__verify-imports.js.md +0 -114
- package/docs/modules/src____tests____setup.ts.md +0 -8
- package/docs/modules/src____tests____signature-formatter.test.ts.md +0 -16
- package/docs/modules/src____tests____snapshot-doc-generation.test.ts.md +0 -8
- package/docs/modules/src____tests____symbol-classifier.test.ts.md +0 -16
- package/docs/modules/src__cache__ast-cache.ts.md +0 -91
- package/docs/modules/src__cache__dependencies-cache.ts.md +0 -89
- package/docs/modules/src__cache__output-cache.ts.md +0 -91
- package/docs/modules/src__cache__signature-cache.ts.md +0 -76
- package/docs/modules/src__cli__generate-cli.ts.md +0 -130
- package/docs/modules/src__cli__scan-cli.ts.md +0 -99
- package/docs/modules/src__cli__validate-cli.ts.md +0 -144
- package/docs/modules/src__core__async.ts.md +0 -18
- package/docs/modules/src__core__consolidation.ts.md +0 -157
- package/docs/modules/src__core__git.ts.md +0 -35
- package/docs/modules/src__core__language-detection.ts.md +0 -31
- package/docs/modules/src__core__scanner.ts.md +0 -100
- package/docs/modules/src__core__signature-formatter.ts.md +0 -232
- package/docs/modules/src__core__symbol-classifier.ts.md +0 -178
- package/docs/modules/src__core__symbols.ts.md +0 -31
- package/docs/modules/src__drift__index.ts.md +0 -53
- package/docs/modules/src__extension.ts.md +0 -418
- package/docs/modules/src__generator__adr-linker.ts.md +0 -154
- package/docs/modules/src__generator__change-report.ts.md +0 -85
- package/docs/modules/src__generator__dependency-graph.ts.md +0 -63
- package/docs/modules/src__generator__index.ts.md +0 -40
- package/docs/modules/src__generator__module-doc.ts.md +0 -242
- package/docs/modules/src__index__index.ts.md +0 -159
- package/docs/modules/src__logging__index.ts.md +0 -87
- package/docs/modules/src__parsers__dependencies.ts.md +0 -69
- package/docs/modules/src__parsers__json-yaml.ts.md +0 -96
- package/docs/modules/src__parsers__python.ts.md +0 -73
- package/docs/modules/src__parsers__ts-js.ts.md +0 -48
- package/docs/modules/src__parsers__types.ts.md +0 -117
- package/docs/modules/src__ui__commands-provider.ts.md +0 -70
- package/docs/modules/src__ui__status-bar.ts.md +0 -79
- package/docs/modules/src__validator__index.ts.md +0 -211
- package/docs/modules/src__validator__signature-matching.ts.md +0 -209
- package/docs/modules/src__validator__status.ts.md +0 -72
- package/docs/modules/test-mcp-resources.js.md +0 -27
- package/docs/modules/tsconfig.json.md +0 -22
- package/docs/system/CHANGE_REPORT.md +0 -26
- package/docs/system/DEPENDENCIES.md +0 -403
- package/docs/system/DEPENDENCY_GRAPH.md +0 -336
- package/docs/system/NAVIGATION_SPACE_ANALYSIS.md +0 -244
- package/docs/system/NPX_CACHE_FIX.md +0 -85
- package/docs/system/NPX_LOCAL_USAGE.md +0 -66
- package/docs/system/PLUGIN_ECOSYSTEM_STATUS.md +0 -465
- package/docs/system/PLUGIN_UPDATE_GUIDE.md +0 -212
- package/docs/system/RULES_UPDATE_GUIDE.md +0 -182
- package/docs/system/SYSTEM_ANALYSIS.md +0 -947
- package/docs/system/SYSTEM_METADATA.json +0 -37
- package/documentation.config.schema.json +0 -77
- 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"}
|