@fundamental-ngx/mcp 0.62.0-rc.100

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 (33) hide show
  1. package/README.md +109 -0
  2. package/package.json +21 -0
  3. package/src/data/components.json +61370 -0
  4. package/src/extractors/build-metadata.d.ts +8 -0
  5. package/src/extractors/build-metadata.js +214 -0
  6. package/src/extractors/build-metadata.js.map +1 -0
  7. package/src/extractors/cem-extractor.d.ts +17 -0
  8. package/src/extractors/cem-extractor.js +434 -0
  9. package/src/extractors/cem-extractor.js.map +1 -0
  10. package/src/extractors/changelog-extractor.d.ts +6 -0
  11. package/src/extractors/changelog-extractor.js +118 -0
  12. package/src/extractors/changelog-extractor.js.map +1 -0
  13. package/src/extractors/description-extractor.d.ts +11 -0
  14. package/src/extractors/description-extractor.js +61 -0
  15. package/src/extractors/description-extractor.js.map +1 -0
  16. package/src/extractors/example-extractor.d.ts +19 -0
  17. package/src/extractors/example-extractor.js +70 -0
  18. package/src/extractors/example-extractor.js.map +1 -0
  19. package/src/extractors/token-extractor.d.ts +6 -0
  20. package/src/extractors/token-extractor.js +348 -0
  21. package/src/extractors/token-extractor.js.map +1 -0
  22. package/src/extractors/typedoc-extractor.d.ts +16 -0
  23. package/src/extractors/typedoc-extractor.js +580 -0
  24. package/src/extractors/typedoc-extractor.js.map +1 -0
  25. package/src/index.d.ts +2 -0
  26. package/src/index.js +5 -0
  27. package/src/index.js.map +1 -0
  28. package/src/server.d.ts +1 -0
  29. package/src/server.js +796 -0
  30. package/src/server.js.map +1 -0
  31. package/src/types/component-metadata.d.ts +177 -0
  32. package/src/types/component-metadata.js +24 -0
  33. package/src/types/component-metadata.js.map +1 -0
@@ -0,0 +1,580 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.extractFromTypeDoc = extractFromTypeDoc;
4
+ exports.extractAllTypeDocComponents = extractAllTypeDocComponents;
5
+ const promises_1 = require("fs/promises");
6
+ const path_1 = require("path");
7
+ /** Signal / observable wrapper names recognised as Angular inputs. */
8
+ const INPUT_TYPE_NAMES = new Set(['InputSignal', 'InputSignalWithTransform']);
9
+ /** Signal / observable wrapper names recognised as Angular outputs. */
10
+ const OUTPUT_TYPE_NAMES = new Set(['OutputEmitterRef', 'EventEmitter']);
11
+ /** Signal wrapper name for two-way bound model inputs. */
12
+ const MODEL_TYPE_NAME = 'ModelSignal';
13
+ const TYPEDOC_LIBRARIES = [
14
+ { relativePath: 'libs/docs/typedoc/core/typedoc.json', library: '@fundamental-ngx/core', prefix: 'fd' },
15
+ { relativePath: 'libs/docs/typedoc/platform/typedoc.json', library: '@fundamental-ngx/platform', prefix: 'fdp' },
16
+ { relativePath: 'libs/docs/typedoc/btp/typedoc.json', library: '@fundamental-ngx/btp', prefix: 'fdb' },
17
+ { relativePath: 'libs/docs/typedoc/cx/typedoc.json', library: '@fundamental-ngx/cx', prefix: 'cx' },
18
+ { relativePath: 'libs/docs/typedoc/cdk/typedoc.json', library: '@fundamental-ngx/cdk', prefix: 'fdk' }
19
+ ];
20
+ // ---------------------------------------------------------------------------
21
+ // Public API
22
+ // ---------------------------------------------------------------------------
23
+ /**
24
+ * Extract component metadata from a single TypeDoc JSON file.
25
+ *
26
+ * @param typeDocPath Absolute path to the typedoc.json file.
27
+ * @param library The `@fundamental-ngx/*` library identifier.
28
+ * @returns An array of {@link ComponentMetadata} for every public Component / Directive class found.
29
+ */
30
+ async function extractFromTypeDoc(typeDocPath, library) {
31
+ const prefix = TYPEDOC_LIBRARIES.find((l) => l.library === library)?.prefix ?? 'fd';
32
+ const raw = await (0, promises_1.readFile)(typeDocPath, 'utf-8');
33
+ const root = JSON.parse(raw);
34
+ const results = [];
35
+ for (const declaration of root.children ?? []) {
36
+ if (!isComponentOrDirective(declaration)) {
37
+ continue;
38
+ }
39
+ const metadata = extractClassMetadata(declaration, library, prefix);
40
+ if (metadata) {
41
+ results.push(metadata);
42
+ }
43
+ }
44
+ return results;
45
+ }
46
+ /**
47
+ * Extract component metadata from all five Angular TypeDoc libraries.
48
+ *
49
+ * @param basePath Absolute path to the repository root.
50
+ * @returns Combined metadata from core, platform, btp, cx, and cdk.
51
+ */
52
+ async function extractAllTypeDocComponents(basePath) {
53
+ const allComponents = [];
54
+ for (const config of TYPEDOC_LIBRARIES) {
55
+ const fullPath = (0, path_1.resolve)(basePath, config.relativePath);
56
+ try {
57
+ const components = await extractFromTypeDoc(fullPath, config.library);
58
+ allComponents.push(...components);
59
+ }
60
+ catch {
61
+ // TypeDoc JSON may not exist for a library — skip silently.
62
+ }
63
+ }
64
+ return allComponents;
65
+ }
66
+ // ---------------------------------------------------------------------------
67
+ // Class-level extraction
68
+ // ---------------------------------------------------------------------------
69
+ /**
70
+ * Determine whether a TypeDoc declaration represents a public Component or Directive class.
71
+ */
72
+ function isComponentOrDirective(decl) {
73
+ if (decl.kind !== 128 /* ReflectionKind.Class */) {
74
+ return false;
75
+ }
76
+ const name = decl.name;
77
+ // Skip internal / private classes.
78
+ if (name.startsWith('_') || decl.flags?.isPrivate || decl.flags?.isProtected) {
79
+ return false;
80
+ }
81
+ return name.endsWith('Component') || name.endsWith('Directive');
82
+ }
83
+ /**
84
+ * Build a {@link ComponentMetadata} from a TypeDoc class declaration.
85
+ */
86
+ function extractClassMetadata(decl, library, prefix) {
87
+ const sourceFile = decl.sources?.[0]?.fileName;
88
+ const description = flattenComment(decl.comment);
89
+ const selector = resolveSelector(decl, prefix);
90
+ const category = inferCategory(sourceFile, library);
91
+ const inputs = [];
92
+ const outputs = [];
93
+ const methods = [];
94
+ for (const member of decl.children ?? []) {
95
+ if (isPrivateOrProtected(member)) {
96
+ continue;
97
+ }
98
+ if (member.kind === 1024 /* ReflectionKind.Property */) {
99
+ classifyProperty(member, inputs, outputs);
100
+ }
101
+ else if (member.kind === 2048 /* ReflectionKind.Method */) {
102
+ const method = extractMethod(member);
103
+ if (method) {
104
+ methods.push(method);
105
+ }
106
+ }
107
+ }
108
+ return {
109
+ name: decl.name,
110
+ selector,
111
+ library,
112
+ category,
113
+ description: description || generateFallbackDescription(decl.name, selector, category, inputs, outputs, methods),
114
+ deprecated: extractDeprecation(decl.comment),
115
+ inputs,
116
+ outputs,
117
+ slots: [], // Angular components don't declare named slots in TypeDoc
118
+ methods,
119
+ cssProperties: [], // Not available from TypeDoc
120
+ sourceFile,
121
+ source: 'typedoc'
122
+ };
123
+ }
124
+ // ---------------------------------------------------------------------------
125
+ // Property classification (inputs vs outputs vs skip)
126
+ // ---------------------------------------------------------------------------
127
+ /**
128
+ * Classify a property declaration as an input, output, or neither,
129
+ * and push it into the corresponding array.
130
+ */
131
+ function classifyProperty(member, inputs, outputs) {
132
+ const typeName = member.type?.name;
133
+ // --- Signal inputs: InputSignal<T> / InputSignalWithTransform<T, U> ---
134
+ if (typeName && INPUT_TYPE_NAMES.has(typeName)) {
135
+ inputs.push(buildSignalInput(member));
136
+ return;
137
+ }
138
+ // --- Model signals: ModelSignal<T> (two-way binding — counted as input AND output) ---
139
+ if (typeName === MODEL_TYPE_NAME) {
140
+ inputs.push(buildModelInput(member));
141
+ outputs.push(buildModelOutput(member));
142
+ return;
143
+ }
144
+ // --- Signal outputs: OutputEmitterRef<T> / legacy EventEmitter<T> ---
145
+ if (typeName && OUTPUT_TYPE_NAMES.has(typeName)) {
146
+ outputs.push(buildOutput(member));
147
+ return;
148
+ }
149
+ // --- Legacy @Input() properties (plain typed, non-readonly, public) ---
150
+ // Heuristic: not a signal, not an output, not readonly (unless explicitly set),
151
+ // and not a complex service / observer type that happens to be public.
152
+ if (isLikelyLegacyInput(member)) {
153
+ inputs.push(buildLegacyInput(member));
154
+ }
155
+ }
156
+ /**
157
+ * Build an {@link InputMetadata} from a signal input property
158
+ * (`InputSignal<T>` or `InputSignalWithTransform<T, U>`).
159
+ */
160
+ function buildSignalInput(member) {
161
+ const innerType = member.type?.typeArguments?.[0];
162
+ const typeStr = innerType ? formatType(innerType) : 'unknown';
163
+ const description = flattenComment(member.comment);
164
+ const enumValues = innerType ? extractEnumValues(innerType) : undefined;
165
+ return {
166
+ name: member.name,
167
+ type: typeStr,
168
+ description,
169
+ required: isRequiredInput(innerType),
170
+ enumValues: enumValues?.length ? enumValues : undefined,
171
+ deprecated: extractDeprecation(member.comment)
172
+ };
173
+ }
174
+ /**
175
+ * Build an {@link InputMetadata} from a `ModelSignal<T>` property.
176
+ */
177
+ function buildModelInput(member) {
178
+ const innerType = member.type?.typeArguments?.[0];
179
+ const typeStr = innerType ? formatType(innerType) : 'unknown';
180
+ return {
181
+ name: member.name,
182
+ type: typeStr,
183
+ description: flattenComment(member.comment),
184
+ required: false,
185
+ deprecated: extractDeprecation(member.comment)
186
+ };
187
+ }
188
+ /**
189
+ * Build an {@link OutputMetadata} for the "Change" event emitted by a `ModelSignal<T>`.
190
+ * Angular model signals automatically emit `<name>Change` events.
191
+ */
192
+ function buildModelOutput(member) {
193
+ const innerType = member.type?.typeArguments?.[0];
194
+ const typeStr = innerType ? formatType(innerType) : 'unknown';
195
+ return {
196
+ name: `${member.name}Change`,
197
+ type: typeStr,
198
+ description: `Emitted when \`${member.name}\` changes (two-way binding).`,
199
+ deprecated: extractDeprecation(member.comment)
200
+ };
201
+ }
202
+ /**
203
+ * Build an {@link OutputMetadata} from an `OutputEmitterRef<T>` or `EventEmitter<T>`.
204
+ */
205
+ function buildOutput(member) {
206
+ const innerType = member.type?.typeArguments?.[0];
207
+ const typeStr = innerType ? formatType(innerType) : 'void';
208
+ return {
209
+ name: member.name,
210
+ type: typeStr,
211
+ description: flattenComment(member.comment),
212
+ deprecated: extractDeprecation(member.comment)
213
+ };
214
+ }
215
+ /**
216
+ * Build an {@link InputMetadata} from a legacy `@Input()` property.
217
+ */
218
+ function buildLegacyInput(member) {
219
+ const typeStr = member.type ? formatType(member.type) : 'unknown';
220
+ const defaultValue = member.defaultValue && member.defaultValue !== '...' ? member.defaultValue : undefined;
221
+ return {
222
+ name: member.name,
223
+ type: typeStr,
224
+ defaultValue,
225
+ description: flattenComment(member.comment),
226
+ required: !member.flags?.isOptional && defaultValue === undefined,
227
+ deprecated: extractDeprecation(member.comment)
228
+ };
229
+ }
230
+ /**
231
+ * Heuristic to detect legacy `@Input()` properties.
232
+ *
233
+ * These are plain-typed public properties that are not outputs, not readonly service
234
+ * injections, and not Angular lifecycle / internal fields.
235
+ */
236
+ function isLikelyLegacyInput(member) {
237
+ // Skip readonly properties — they are typically injected services or computed fields.
238
+ // Exception: signal inputs are readonly but handled before this check.
239
+ if (member.flags?.isReadonly) {
240
+ return false;
241
+ }
242
+ // Skip static members.
243
+ if (member.flags?.isStatic) {
244
+ return false;
245
+ }
246
+ const typeType = member.type?.type;
247
+ const typeName = member.type?.name;
248
+ // Skip reflection types (callback signatures, object shapes) — rarely inputs.
249
+ if (typeType === 'reflection') {
250
+ // Allow simple callback-style properties that could be @Input() (e.g. displayFn).
251
+ // But skip complex declarations without a defaultValue (likely internal).
252
+ if (!member.defaultValue) {
253
+ return false;
254
+ }
255
+ }
256
+ // Skip known non-input reference types (services, observables, etc.).
257
+ if (typeName && isInternalReferenceName(typeName)) {
258
+ return false;
259
+ }
260
+ // Must have a basic type (intrinsic, reference, union, literal, array).
261
+ return (typeType === 'intrinsic' ||
262
+ typeType === 'reference' ||
263
+ typeType === 'union' ||
264
+ typeType === 'literal' ||
265
+ typeType === 'array' ||
266
+ typeType === 'reflection');
267
+ }
268
+ /** Reference type names that indicate internal / injected dependencies, not inputs. */
269
+ const INTERNAL_REFERENCE_NAMES = new Set([
270
+ 'Observable',
271
+ 'Subject',
272
+ 'BehaviorSubject',
273
+ 'Subscription',
274
+ 'TemplateRef',
275
+ 'ElementRef',
276
+ 'ViewContainerRef',
277
+ 'ChangeDetectorRef',
278
+ 'ContentDensityObserver',
279
+ 'DestroyRef',
280
+ 'Injector',
281
+ 'NgZone',
282
+ 'Renderer2',
283
+ 'FormControl',
284
+ 'FormGroup',
285
+ 'QueryList'
286
+ ]);
287
+ function isInternalReferenceName(name) {
288
+ return INTERNAL_REFERENCE_NAMES.has(name);
289
+ }
290
+ // ---------------------------------------------------------------------------
291
+ // Method extraction
292
+ // ---------------------------------------------------------------------------
293
+ /**
294
+ * Extract a {@link MethodMetadata} from a TypeDoc method declaration.
295
+ * Returns `null` if the method should be skipped (lifecycle hooks, internal, etc.).
296
+ */
297
+ function extractMethod(member) {
298
+ if (isPrivateOrProtected(member)) {
299
+ return null;
300
+ }
301
+ const sig = member.signatures?.[0];
302
+ if (!sig) {
303
+ return null;
304
+ }
305
+ const name = member.name;
306
+ // Skip Angular lifecycle hooks — they are implementation details.
307
+ if (isLifecycleHook(name)) {
308
+ return null;
309
+ }
310
+ // Skip internal methods (prefixed with underscore).
311
+ if (name.startsWith('_')) {
312
+ return null;
313
+ }
314
+ const description = flattenComment(sig.comment);
315
+ const returnType = sig.type ? formatType(sig.type) : 'void';
316
+ const params = (sig.parameters ?? []).map((p) => ({
317
+ name: p.name,
318
+ type: p.type ? formatType(p.type) : 'unknown',
319
+ description: flattenComment(p.comment),
320
+ optional: p.flags?.isOptional ?? false
321
+ }));
322
+ return { name, returnType, description, params, deprecated: extractDeprecation(sig.comment) };
323
+ }
324
+ const LIFECYCLE_HOOKS = new Set([
325
+ 'ngOnInit',
326
+ 'ngOnDestroy',
327
+ 'ngOnChanges',
328
+ 'ngDoCheck',
329
+ 'ngAfterContentInit',
330
+ 'ngAfterContentChecked',
331
+ 'ngAfterViewInit',
332
+ 'ngAfterViewChecked',
333
+ 'ngAfterRender',
334
+ 'ngAfterNextRender'
335
+ ]);
336
+ function isLifecycleHook(name) {
337
+ return LIFECYCLE_HOOKS.has(name);
338
+ }
339
+ // ---------------------------------------------------------------------------
340
+ // Type formatting
341
+ // ---------------------------------------------------------------------------
342
+ /**
343
+ * Recursively format a TypeDoc type object into a human-readable TypeScript string.
344
+ */
345
+ function formatType(type) {
346
+ switch (type.type) {
347
+ case 'intrinsic':
348
+ return type.name ?? 'unknown';
349
+ case 'literal':
350
+ if (type.value === null) {
351
+ return 'null';
352
+ }
353
+ if (typeof type.value === 'string') {
354
+ return `'${type.value}'`;
355
+ }
356
+ return String(type.value);
357
+ case 'union':
358
+ return (type.types ?? []).map(formatType).join(' | ');
359
+ case 'array':
360
+ if (type.elementType) {
361
+ const inner = formatType(type.elementType);
362
+ // Wrap union types in parens for readability: (A | B)[]
363
+ return inner.includes('|') ? `(${inner})[]` : `${inner}[]`;
364
+ }
365
+ return 'unknown[]';
366
+ case 'reference': {
367
+ const refName = type.name ?? 'unknown';
368
+ // Unwrap Angular signal wrappers to expose the inner type.
369
+ if (INPUT_TYPE_NAMES.has(refName) || refName === MODEL_TYPE_NAME) {
370
+ return type.typeArguments?.[0] ? formatType(type.typeArguments[0]) : 'unknown';
371
+ }
372
+ if (OUTPUT_TYPE_NAMES.has(refName)) {
373
+ return type.typeArguments?.[0] ? formatType(type.typeArguments[0]) : 'void';
374
+ }
375
+ // Generic reference with type arguments: Map<K, V>, Nullable<T>, etc.
376
+ if (type.typeArguments?.length) {
377
+ const args = type.typeArguments.map(formatType).join(', ');
378
+ return `${refName}<${args}>`;
379
+ }
380
+ return refName;
381
+ }
382
+ case 'reflection': {
383
+ // Attempt to render a simple function signature: (a: T) => R
384
+ const sig = type.declaration?.signatures?.[0];
385
+ if (sig) {
386
+ const params = (sig.parameters ?? [])
387
+ .map((p) => `${p.name}: ${p.type ? formatType(p.type) : 'unknown'}`)
388
+ .join(', ');
389
+ const ret = sig.type ? formatType(sig.type) : 'void';
390
+ return `(${params}) => ${ret}`;
391
+ }
392
+ return 'object';
393
+ }
394
+ default:
395
+ return type.name ?? 'unknown';
396
+ }
397
+ }
398
+ /**
399
+ * For union types whose members are all string literals, extract them as enum values.
400
+ */
401
+ function extractEnumValues(type) {
402
+ if (type.type !== 'union' || !type.types) {
403
+ return undefined;
404
+ }
405
+ const literals = [];
406
+ for (const t of type.types) {
407
+ if (t.type === 'literal' && typeof t.value === 'string') {
408
+ literals.push(t.value);
409
+ }
410
+ }
411
+ // Only return if all non-null/undefined members are string literals.
412
+ const nonNullMembers = type.types.filter((t) => !(t.type === 'intrinsic' && t.name === 'undefined') && !(t.type === 'literal' && t.value === null));
413
+ if (nonNullMembers.length > 0 && literals.length === nonNullMembers.length) {
414
+ return literals;
415
+ }
416
+ return undefined;
417
+ }
418
+ /**
419
+ * Determine whether a signal input is required (has no `undefined` in its type union).
420
+ */
421
+ function isRequiredInput(innerType) {
422
+ if (!innerType) {
423
+ return false;
424
+ }
425
+ // If the inner type is a union containing undefined or null, it is optional.
426
+ if (innerType.type === 'union' && innerType.types) {
427
+ return !innerType.types.some((t) => (t.type === 'intrinsic' && t.name === 'undefined') || (t.type === 'literal' && t.value === null));
428
+ }
429
+ // Scalar type with no defaults — technically required unless the signal has a default.
430
+ // Since TypeDoc shows `...` for signal defaults, we cannot distinguish; default to false.
431
+ return false;
432
+ }
433
+ // ---------------------------------------------------------------------------
434
+ // Selector derivation
435
+ // ---------------------------------------------------------------------------
436
+ /**
437
+ * Resolve the CSS selector for a Component or Directive.
438
+ *
439
+ * Strategy (in priority order):
440
+ * 1. `@selector` block tag in the JSDoc comment.
441
+ * 2. Inline `` selector: ... `` in the comment summary text.
442
+ * 3. Derived from the class name using the library prefix convention.
443
+ */
444
+ function resolveSelector(decl, prefix) {
445
+ // 1. @selector block tag.
446
+ const selectorTag = decl.comment?.blockTags?.find((t) => t.tag === '@selector');
447
+ if (selectorTag?.content?.length) {
448
+ const tagText = selectorTag.content
449
+ .map((c) => c.text)
450
+ .join('')
451
+ .trim();
452
+ if (tagText) {
453
+ return tagText;
454
+ }
455
+ }
456
+ // 2. Parse from inline comment: ``` selector: button[fd-button], a[fd-button] ```
457
+ // Only match when the text appears inside backtick fences (not in example code blocks).
458
+ const commentText = flattenComment(decl.comment);
459
+ const selectorMatch = commentText.match(/```\s*selector:\s*([^`]+)```/);
460
+ if (selectorMatch) {
461
+ // Trim trailing whitespace and stray formatting artifacts.
462
+ return selectorMatch[1].trim();
463
+ }
464
+ // 3. Derive from class name.
465
+ return deriveSelectorFromClassName(decl.name, prefix);
466
+ }
467
+ /**
468
+ * Derive a CSS selector from a class name.
469
+ *
470
+ * Examples:
471
+ * - `ButtonComponent` → `fd-button` (prefix "fd")
472
+ * - `ActionBarComponent` → `fd-action-bar` (prefix "fd")
473
+ * - `ActionListItemComponent` → `fdp-action-list-item` (prefix "fdp")
474
+ * - `AutoCompleteDirective` → `fdk-auto-complete`(prefix "fdk")
475
+ *
476
+ * The class name is converted from PascalCase to kebab-case, with the
477
+ * `Component` / `Directive` suffix stripped and the library prefix prepended.
478
+ */
479
+ function deriveSelectorFromClassName(className, prefix) {
480
+ // Strip Component / Directive suffix.
481
+ const baseName = className.replace(/Component$|Directive$/, '');
482
+ // PascalCase → kebab-case.
483
+ const kebab = baseName.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();
484
+ return `${prefix}-${kebab}`;
485
+ }
486
+ // ---------------------------------------------------------------------------
487
+ // Category inference
488
+ // ---------------------------------------------------------------------------
489
+ /**
490
+ * Infer a functional category from the source file path.
491
+ *
492
+ * For `libs/core/button/button.component.ts` → `"button"`
493
+ * For `libs/platform/list/action-list-item/action-list-item.component.ts` → `"list"`
494
+ *
495
+ * Falls back to the library short name (e.g. `"core"`) when the path structure is unexpected.
496
+ */
497
+ function inferCategory(sourceFile, library) {
498
+ if (!sourceFile) {
499
+ return libraryShortName(library);
500
+ }
501
+ // Expected pattern: libs/<library-dir>/<category>/...
502
+ const parts = sourceFile.split('/');
503
+ // parts[0] = "libs", parts[1] = library dir, parts[2] = category
504
+ if (parts.length >= 3 && parts[0] === 'libs') {
505
+ const category = parts[2];
506
+ // Avoid returning overly generic folders like "utils" or "directives"
507
+ if (category && category !== 'utils' && category !== 'directives' && category !== 'src') {
508
+ return category;
509
+ }
510
+ }
511
+ return libraryShortName(library);
512
+ }
513
+ /** Extract the short name from a full library identifier. */
514
+ function libraryShortName(library) {
515
+ // '@fundamental-ngx/core' → 'core'
516
+ return library.split('/').pop() ?? library;
517
+ }
518
+ // ---------------------------------------------------------------------------
519
+ // Comment helpers
520
+ // ---------------------------------------------------------------------------
521
+ /**
522
+ * Flatten a TypeDoc comment into a single markdown string.
523
+ * Concatenates all `summary` parts and preserves code blocks.
524
+ */
525
+ function flattenComment(comment) {
526
+ if (!comment?.summary?.length) {
527
+ return '';
528
+ }
529
+ return comment.summary
530
+ .map((part) => part.text)
531
+ .join('')
532
+ .trim();
533
+ }
534
+ /**
535
+ * Extract the `@deprecated` block tag from a TypeDoc comment.
536
+ * Returns the deprecation message or `undefined` if not deprecated.
537
+ */
538
+ function extractDeprecation(comment) {
539
+ const tag = comment?.blockTags?.find((t) => t.tag === '@deprecated');
540
+ if (!tag) {
541
+ return undefined;
542
+ }
543
+ const text = tag.content
544
+ ?.map((c) => c.text)
545
+ .join('')
546
+ .trim();
547
+ return text || 'Deprecated';
548
+ }
549
+ /**
550
+ * Generate a fallback description when no JSDoc comment is present.
551
+ *
552
+ * Summarises the component from its API surface: key inputs, outputs, and methods.
553
+ */
554
+ function generateFallbackDescription(className, selector, category, inputs, outputs, methods) {
555
+ const kind = className.endsWith('Directive') ? 'directive' : 'component';
556
+ const humanName = className.replace(/Component$|Directive$/, '').replace(/([a-z0-9])([A-Z])/g, '$1 $2');
557
+ const parts = [`${humanName} ${kind} (${selector}).`];
558
+ if (inputs.length > 0) {
559
+ const inputNames = inputs.slice(0, 5).map((i) => i.name);
560
+ const suffix = inputs.length > 5 ? ` and ${inputs.length - 5} more` : '';
561
+ parts.push(`Inputs: ${inputNames.join(', ')}${suffix}.`);
562
+ }
563
+ if (outputs.length > 0) {
564
+ const outputNames = outputs.slice(0, 3).map((o) => o.name);
565
+ const suffix = outputs.length > 3 ? ` and ${outputs.length - 3} more` : '';
566
+ parts.push(`Outputs: ${outputNames.join(', ')}${suffix}.`);
567
+ }
568
+ if (methods.length > 0) {
569
+ const methodNames = methods.slice(0, 3).map((m) => m.name);
570
+ parts.push(`Methods: ${methodNames.join(', ')}.`);
571
+ }
572
+ return parts.join(' ');
573
+ }
574
+ // ---------------------------------------------------------------------------
575
+ // Utility helpers
576
+ // ---------------------------------------------------------------------------
577
+ function isPrivateOrProtected(decl) {
578
+ return !!(decl.flags?.isPrivate || decl.flags?.isProtected);
579
+ }
580
+ //# sourceMappingURL=typedoc-extractor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typedoc-extractor.js","sourceRoot":"","sources":["../../../../../libs/mcp-server/src/extractors/typedoc-extractor.ts"],"names":[],"mappings":"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"}
package/src/index.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ import './server';
package/src/index.js ADDED
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ require("./server");
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/mcp-server/src/index.ts"],"names":[],"mappings":";;;AACA,oBAAkB"}
@@ -0,0 +1 @@
1
+ export {};