@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,162 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SignatureFormatter = void 0;
4
- /**
5
- * @public
6
- * Zentrale Klasse für konsistente Signatur-Formatierung
7
- *
8
- * Diese Klasse stellt sicher, dass Generator und Validator identische
9
- * Signatur-Darstellungen verwenden. Basierend auf ADR-004 und der
10
- * Analyse aus agent-pre.plan.md (Abschnitt 2.6).
11
- */
12
- class SignatureFormatter {
13
- /**
14
- * Formatiert ein Symbol für die Dokumentation
15
- * Verwendet von: Generator (renderModuleDoc) und Validator (formatSignatureForDoc)
16
- */
17
- static formatForDoc(symbol) {
18
- switch (symbol.kind) {
19
- case 'interface':
20
- return SignatureFormatter.formatInterface(symbol);
21
- case 'class':
22
- return `class ${symbol.signature.name}`;
23
- case 'type':
24
- return `type ${symbol.signature.name}`;
25
- case 'enum':
26
- return `enum ${symbol.signature.name}`;
27
- case 'function':
28
- case 'method':
29
- return SignatureFormatter.formatFunctionOrMethod(symbol);
30
- case 'variable':
31
- return SignatureFormatter.formatVariable(symbol);
32
- case 'module':
33
- return `module ${symbol.signature.name}`;
34
- default:
35
- return symbol.signature.name;
36
- }
37
- }
38
- /**
39
- * Formatiert ein Interface mit allen Properties
40
- */
41
- static formatInterface(symbol) {
42
- if (symbol.signature.parameters.length > 0) {
43
- const props = symbol.signature.parameters
44
- .map(p => SignatureFormatter.formatInterfaceProperty(p))
45
- .join('\n');
46
- return 'interface ' + symbol.signature.name + ' {\n' + props + '\n}';
47
- }
48
- return 'interface ' + symbol.signature.name + ' {}';
49
- }
50
- /**
51
- * Formatiert eine einzelne Interface-Property
52
- */
53
- static formatInterfaceProperty(p) {
54
- const optionalMarker = p.optional ? '?' : '';
55
- const typeAnnotation = p.type ? ': ' + p.type : '';
56
- return ' ' + p.name + optionalMarker + typeAnnotation + ';';
57
- }
58
- /**
59
- * Formatiert eine Funktion oder Methode mit Parametern und Rückgabetyp
60
- */
61
- static formatFunctionOrMethod(symbol) {
62
- const params = symbol.signature.parameters
63
- .map(p => SignatureFormatter.formatFunctionParameter(p))
64
- .join(', ');
65
- const ret = symbol.signature.returnType ? ': ' + symbol.signature.returnType : '';
66
- return symbol.signature.name + '(' + params + ')' + ret;
67
- }
68
- /**
69
- * Formatiert einen einzelnen Funktions-Parameter
70
- */
71
- static formatFunctionParameter(p) {
72
- const optionalMarker = p.optional ? '?' : '';
73
- const typeAnnotation = p.type ? ': ' + p.type : '';
74
- const defaultMarker = p.hasDefault ? ' = …' : '';
75
- return p.name + optionalMarker + typeAnnotation + defaultMarker;
76
- }
77
- /**
78
- * Formatiert eine Variable mit Typ
79
- */
80
- static formatVariable(symbol) {
81
- const varType = symbol.signature.returnType ? `: ${symbol.signature.returnType}` : '';
82
- return `${symbol.signature.name}${varType}`;
83
- }
84
- /**
85
- * Normalisiert eine Signatur für Vergleiche
86
- * Entfernt Whitespace-Unterschiede und normalisiert Formatierung
87
- */
88
- static normalize(signature) {
89
- // Using replace with /g flag (replaceAll requires ES2021+)
90
- return signature
91
- .replace(/\s+/g, ' ')
92
- .replace(/\s*:\s*/g, ':')
93
- .replace(/\s*;\s*/g, ';')
94
- .replace(/\s*\{\s*/g, '{')
95
- .replace(/\s*\}\s*/g, '}')
96
- .replace(/\s*\|\s*/g, '|')
97
- .replace(/\s*,\s*/g, ', ')
98
- .trim();
99
- }
100
- /**
101
- * Normalisiert eine SymbolSignature zu einem String für Hashing/Vergleiche
102
- */
103
- static normalizeSignature(sig) {
104
- const params = sig.parameters
105
- .map(p => {
106
- const optMarker = p.optional ? '?' : '';
107
- const typeStr = p.type ?? '';
108
- const defaultMarker = p.hasDefault ? '=…' : '';
109
- return p.name + optMarker + ':' + typeStr + defaultMarker;
110
- })
111
- .sort((a, b) => a.localeCompare(b))
112
- .join(',');
113
- const retType = sig.returnType ?? '';
114
- return sig.name + '(' + params + '):' + retType;
115
- }
116
- /**
117
- * Vergleicht zwei Signaturen mit konfigurierbarer Toleranz
118
- */
119
- static compare(expected, documented, options = {}) {
120
- const expectedNorm = SignatureFormatter.normalize(expected);
121
- const documentedNorm = SignatureFormatter.normalize(documented);
122
- // Exakter Match
123
- if (expectedNorm === documentedNorm) {
124
- return { match: true, reason: 'exact' };
125
- }
126
- // Optional-Feld-Toleranz
127
- if (options.tolerateOptionalFields && SignatureFormatter.isOptionalFieldCompatible(expectedNorm, documentedNorm)) {
128
- return { match: true, reason: 'optional-fields' };
129
- }
130
- // Generics-Vereinfachung
131
- if (options.tolerateGenericSimplification && SignatureFormatter.isGenericTypeSimplification(expectedNorm, documentedNorm)) {
132
- return { match: true, reason: 'generic-simplification' };
133
- }
134
- return { match: false, reason: 'mismatch' };
135
- }
136
- /**
137
- * Prüft ob Signaturen nur durch optionale Felder unterschiedlich sind
138
- */
139
- static isOptionalFieldCompatible(expected, documented) {
140
- // Using replace with /g flag (replaceAll requires ES2021+)
141
- const removeOptionalMarkers = (s) => s.replace(/(\w+)\?:/g, '$1:');
142
- return removeOptionalMarkers(expected) === removeOptionalMarkers(documented);
143
- }
144
- /**
145
- * Prüft ob es sich um eine Generics-Vereinfachung handelt
146
- */
147
- static isGenericTypeSimplification(expected, documented) {
148
- // Using replace with /g flag (replaceAll requires ES2021+)
149
- const simplifyTypes = (sig) => {
150
- return sig
151
- .replace(/\b[A-Z]\b\[\]/g, '{}')
152
- .replace(/\b[A-Z]\b(?!\[\])/g, '{}')
153
- .replace(/Promise<[^>]+>/g, 'Promise<{}>')
154
- .replace(/Thenable<[^>]+>/g, 'Thenable<{}>')
155
- .replace(/Map<([^,>]+),\s*[^>]+>/g, 'Map<$1, {}>')
156
- .replace(/Array<([^>]+)>/g, '$1[]');
157
- };
158
- return simplifyTypes(expected) === simplifyTypes(documented);
159
- }
160
- }
161
- exports.SignatureFormatter = SignatureFormatter;
162
- //# sourceMappingURL=signature-formatter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"signature-formatter.js","sourceRoot":"","sources":["../../src/core/signature-formatter.ts"],"names":[],"mappings":"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"}
@@ -1,96 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.classifySymbol = void 0;
4
- /**
5
- * @public
6
- * Zentrale, deterministische Klassifizierungs-API für Symbole.
7
- *
8
- * Arbeitet ausschließlich auf ParsedSymbol-Daten (kein I/O, keine
9
- * Plugin-spezifischen Abhängigkeiten) und wird von Generator und
10
- * Validator verwendet, um Doku-Tiefe und Prüfstrenge zu steuern.
11
- */
12
- function classifySymbol(symbol) {
13
- const visibility = classifyVisibility(symbol);
14
- const role = classifyRole(symbol);
15
- const priority = classifyPriority(role, visibility);
16
- return { visibility, role, priority };
17
- }
18
- exports.classifySymbol = classifySymbol;
19
- function classifyVisibility(symbol) {
20
- // Wenn der Parser explizite Sichtbarkeit liefert, respektieren
21
- // wir diese. Fallback ist „public“, um sich konservativ zu verhalten.
22
- const v = symbol.signature.visibility;
23
- if (v === 'private' || v === 'protected') {
24
- return 'internal';
25
- }
26
- return 'public';
27
- }
28
- function classifyRole(symbol) {
29
- const kind = symbol.kind;
30
- const name = symbol.signature.name;
31
- const fqn = symbol.fullyQualifiedName;
32
- const filePath = normalizePath(symbol.filePath);
33
- // Service-APIs: Funktionen/Methoden/Klassen mit typischen Suffixen
34
- if (kind === 'function' || kind === 'method' || kind === 'class') {
35
- if (hasAnySuffix(name, ['Api', 'API', 'Service', 'Manager', 'Controller'])) {
36
- return 'service-api';
37
- }
38
- if (filePathIncludes(filePath, ['api', 'service', 'services', 'controller'])) {
39
- return 'service-api';
40
- }
41
- }
42
- // Domain-Modelle: Interfaces/Klassen mit typischen Namensmustern
43
- if (kind === 'interface' || kind === 'class' || kind === 'type') {
44
- if (hasAnySuffix(name, ['Entity', 'Model', 'Record', 'Result', 'Request', 'Response', 'Stats'])) {
45
- return 'domain-model';
46
- }
47
- if (filePathIncludes(filePath, ['models', 'entities', 'domain'])) {
48
- return 'domain-model';
49
- }
50
- }
51
- // Konfigurationen: Typen mit „Config“/„Options“ oder in *config*-Pfaden
52
- if (kind === 'interface' || kind === 'type' || kind === 'variable') {
53
- if (hasAnySuffix(name, ['Config', 'Options', 'Settings'])) {
54
- return 'config';
55
- }
56
- if (filePathIncludes(filePath, ['config', 'configs'])) {
57
- return 'config';
58
- }
59
- }
60
- // Infrastruktur / technische Typen (Cache, Validator, Repository, Query, Migration, Snapshot etc.)
61
- if (hasAnySubstring(name, ['Cache', 'Validator', 'Repository', 'Query', 'Migration', 'Snapshot']) ||
62
- filePathIncludes(filePath, ['cache', 'validator', 'validators', 'repository', 'repositories', 'migrations'])) {
63
- return 'infra';
64
- }
65
- return 'other';
66
- }
67
- function classifyPriority(role, visibility) {
68
- if (visibility === 'public') {
69
- if (role === 'service-api' || role === 'domain-model') {
70
- return 'high';
71
- }
72
- if (role === 'config') {
73
- return 'normal';
74
- }
75
- }
76
- // Interne oder rein infrastrukturelle Symbole sind niedriger priorisiert
77
- if (role === 'infra' || visibility === 'internal') {
78
- return 'low';
79
- }
80
- return 'normal';
81
- }
82
- function normalizePath(p) {
83
- return p.replace(/\\/g, '/').toLowerCase();
84
- }
85
- function hasAnySuffix(name, suffixes) {
86
- return suffixes.some(s => name.endsWith(s));
87
- }
88
- function hasAnySubstring(name, parts) {
89
- const lower = name.toLowerCase();
90
- return parts.some(p => lower.includes(p.toLowerCase()));
91
- }
92
- function filePathIncludes(path, segments) {
93
- const lower = path.toLowerCase();
94
- return segments.some(seg => lower.includes(`/${seg.toLowerCase()}/`) || lower.endsWith(`/${seg.toLowerCase()}.ts`));
95
- }
96
- //# sourceMappingURL=symbol-classifier.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"symbol-classifier.js","sourceRoot":"","sources":["../../src/core/symbol-classifier.ts"],"names":[],"mappings":"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"}
@@ -1,24 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.makeStableSymbolId = exports.computeSignatureHash = void 0;
4
- const crypto_1 = require("crypto");
5
- /**
6
- * @public
7
- * Compute hash for symbol signature
8
- */
9
- function computeSignatureHash(symbol) {
10
- const base = [
11
- symbol.signature.name,
12
- symbol.signature.parameters.map(p => `${p.name}:${p.type ?? ''}:${p.hasDefault ? '1' : '0'}`).join('|'),
13
- symbol.signature.returnType ?? '',
14
- symbol.signature.visibility ?? 'public',
15
- ].join('::');
16
- return (0, crypto_1.createHash)('sha256').update(base).digest('hex').slice(0, 16);
17
- }
18
- exports.computeSignatureHash = computeSignatureHash;
19
- function makeStableSymbolId(symbol) {
20
- const hash = computeSignatureHash(symbol);
21
- return `${symbol.language}://${symbol.filePath}#${symbol.fullyQualifiedName}(${hash})`;
22
- }
23
- exports.makeStableSymbolId = makeStableSymbolId;
24
- //# sourceMappingURL=symbols.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"symbols.js","sourceRoot":"","sources":["../../src/core/symbols.ts"],"names":[],"mappings":";;;AAAA,mCAAoC;AAGpC;;;GAGG;AACH,SAAgB,oBAAoB,CAAC,MAAoB;IACrD,MAAM,IAAI,GAAG;QACT,MAAM,CAAC,SAAS,CAAC,IAAI;QACrB,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,EAAE,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QACvG,MAAM,CAAC,SAAS,CAAC,UAAU,IAAI,EAAE;QACjC,MAAM,CAAC,SAAS,CAAC,UAAU,IAAI,QAAQ;KAC1C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACb,OAAO,IAAA,mBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACxE,CAAC;AARD,oDAQC;AAED,SAAgB,kBAAkB,CAAC,MAAoB;IACnD,MAAM,IAAI,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC1C,OAAO,GAAG,MAAM,CAAC,QAAQ,MAAM,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,kBAAkB,IAAI,IAAI,GAAG,CAAC;AAC3F,CAAC;AAHD,gDAGC"}
@@ -1,28 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.detectDrift = exports.computeCacheEntries = void 0;
4
- const symbols_1 = require("../core/symbols");
5
- function computeCacheEntries(symbols) {
6
- return symbols.map(s => {
7
- const id = (0, symbols_1.makeStableSymbolId)(s);
8
- const baseId = id.replace(/\([^)]*\)$/, ''); // ohne hash
9
- const signatureHash = (0, symbols_1.computeSignatureHash)(s);
10
- return { baseId, signatureHash };
11
- }).sort((a, b) => a.baseId.localeCompare(b.baseId));
12
- }
13
- exports.computeCacheEntries = computeCacheEntries;
14
- function detectDrift(previous, current) {
15
- if (!previous)
16
- return { staleSymbols: [] };
17
- const prevMap = new Map(previous.entries.map(e => [e.baseId, e.signatureHash]));
18
- const stale = [];
19
- for (const now of current) {
20
- const before = prevMap.get(now.baseId);
21
- if (before && before !== now.signatureHash) {
22
- stale.push(now.baseId);
23
- }
24
- }
25
- return { staleSymbols: stale };
26
- }
27
- exports.detectDrift = detectDrift;
28
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/drift/index.ts"],"names":[],"mappings":";;;AACA,6CAA2E;AAO3E,SAAgB,mBAAmB,CAAC,OAAuB;IACvD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QACnB,MAAM,EAAE,GAAG,IAAA,4BAAkB,EAAC,CAAC,CAAC,CAAC;QACjC,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY;QACzD,MAAM,aAAa,GAAG,IAAA,8BAAoB,EAAC,CAAC,CAAC,CAAC;QAC9C,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;IACrC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACxD,CAAC;AAPD,kDAOC;AAED,SAAgB,WAAW,CAAC,QAAmC,EAAE,OAAqB;IAClF,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;IAC3C,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,aAAa,CAAU,CAAC,CAAC,CAAC;IACzF,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE;QACvB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,MAAM,IAAI,MAAM,KAAK,GAAG,CAAC,aAAa,EAAE;YACxC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;SAC1B;KACJ;IACD,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;AACnC,CAAC;AAXD,kCAWC"}