@refrakt-md/cli 0.8.5 → 0.9.1

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 (51) hide show
  1. package/dist/bin.js +56 -98
  2. package/dist/bin.js.map +1 -1
  3. package/dist/commands/inspect.d.ts +2 -0
  4. package/dist/commands/inspect.d.ts.map +1 -1
  5. package/dist/commands/inspect.js +50 -5
  6. package/dist/commands/inspect.js.map +1 -1
  7. package/dist/lib/dimension-audit.d.ts +48 -0
  8. package/dist/lib/dimension-audit.d.ts.map +1 -0
  9. package/dist/lib/dimension-audit.js +186 -0
  10. package/dist/lib/dimension-audit.js.map +1 -0
  11. package/dist/lib/format.d.ts +10 -0
  12. package/dist/lib/format.d.ts.map +1 -1
  13. package/dist/lib/format.js +246 -2
  14. package/dist/lib/format.js.map +1 -1
  15. package/dist/lib/meta-audit.d.ts +43 -0
  16. package/dist/lib/meta-audit.d.ts.map +1 -0
  17. package/dist/lib/meta-audit.js +116 -0
  18. package/dist/lib/meta-audit.js.map +1 -0
  19. package/package.json +6 -9
  20. package/dist/commands/extract.d.ts +0 -10
  21. package/dist/commands/extract.d.ts.map +0 -1
  22. package/dist/commands/extract.js +0 -161
  23. package/dist/commands/extract.js.map +0 -1
  24. package/dist/extractors/index.d.ts +0 -3
  25. package/dist/extractors/index.d.ts.map +0 -1
  26. package/dist/extractors/index.js +0 -17
  27. package/dist/extractors/index.js.map +0 -1
  28. package/dist/extractors/python-docstring.d.ts +0 -26
  29. package/dist/extractors/python-docstring.d.ts.map +0 -1
  30. package/dist/extractors/python-docstring.js +0 -396
  31. package/dist/extractors/python-docstring.js.map +0 -1
  32. package/dist/extractors/python.d.ts +0 -21
  33. package/dist/extractors/python.d.ts.map +0 -1
  34. package/dist/extractors/python.js +0 -560
  35. package/dist/extractors/python.js.map +0 -1
  36. package/dist/extractors/types.d.ts +0 -55
  37. package/dist/extractors/types.d.ts.map +0 -1
  38. package/dist/extractors/types.js +0 -2
  39. package/dist/extractors/types.js.map +0 -1
  40. package/dist/extractors/typescript.d.ts +0 -28
  41. package/dist/extractors/typescript.d.ts.map +0 -1
  42. package/dist/extractors/typescript.js +0 -566
  43. package/dist/extractors/typescript.js.map +0 -1
  44. package/dist/lib/layout-generator.d.ts +0 -8
  45. package/dist/lib/layout-generator.d.ts.map +0 -1
  46. package/dist/lib/layout-generator.js +0 -22
  47. package/dist/lib/layout-generator.js.map +0 -1
  48. package/dist/lib/symbol-generator.d.ts +0 -14
  49. package/dist/lib/symbol-generator.d.ts.map +0 -1
  50. package/dist/lib/symbol-generator.js +0 -201
  51. package/dist/lib/symbol-generator.js.map +0 -1
@@ -1,28 +0,0 @@
1
- import type { SymbolExtractor, ExtractorResult } from './types.js';
2
- export declare class TypeScriptExtractor implements SymbolExtractor {
3
- private program;
4
- private checker;
5
- private rootDir;
6
- private sourceUrl?;
7
- constructor(rootDir: string, sourceUrl?: string);
8
- extractFile(filePath: string): ExtractorResult;
9
- private extractExport;
10
- private extractFunction;
11
- private extractVariable;
12
- private extractClass;
13
- private extractClassMembers;
14
- private extractInterface;
15
- private extractInterfaceMembers;
16
- private extractEnum;
17
- private extractTypeAlias;
18
- private extractMemberDoc;
19
- private extractParameters;
20
- private extractReturn;
21
- private extractThrows;
22
- private isPrivateOrProtected;
23
- private hasModifier;
24
- private buildSourceUrl;
25
- }
26
- /** Find all TypeScript source files in a directory */
27
- export declare function findSourceFiles(dir: string): string[];
28
- //# sourceMappingURL=typescript.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"typescript.d.ts","sourceRoot":"","sources":["../../src/extractors/typescript.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEsB,eAAe,EAAE,eAAe,EACjE,MAAM,YAAY,CAAC;AAkFpB,qBAAa,mBAAoB,YAAW,eAAe;IAC1D,OAAO,CAAC,OAAO,CAAa;IAC5B,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAC,CAAS;gBAEf,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;IAoB/C,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe;IAmB9C,OAAO,CAAC,aAAa;IAuCrB,OAAO,CAAC,eAAe;IAyBvB,OAAO,CAAC,eAAe;IAiDvB,OAAO,CAAC,YAAY;IA0BpB,OAAO,CAAC,mBAAmB;IAuC3B,OAAO,CAAC,gBAAgB;IA4BxB,OAAO,CAAC,uBAAuB;IAuB/B,OAAO,CAAC,WAAW;IAyCnB,OAAO,CAAC,gBAAgB;IAqBxB,OAAO,CAAC,gBAAgB;IAkFxB,OAAO,CAAC,iBAAiB;IA8CzB,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,oBAAoB;IAK5B,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,cAAc;CAKtB;AAED,sDAAsD;AACtD,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAQrD"}
@@ -1,566 +0,0 @@
1
- import ts from 'typescript';
2
- import { resolve, relative, dirname } from 'node:path';
3
- import { readdirSync, statSync, existsSync } from 'node:fs';
4
- function getJSDocDescription(node) {
5
- const jsDocs = node.jsDoc;
6
- if (!jsDocs || jsDocs.length === 0)
7
- return '';
8
- const doc = jsDocs[jsDocs.length - 1];
9
- if (!doc.comment)
10
- return '';
11
- if (typeof doc.comment === 'string')
12
- return doc.comment;
13
- return doc.comment.map((c) => c.text ?? '').join('');
14
- }
15
- function extractJSDoc(node) {
16
- const description = getJSDocDescription(node);
17
- const params = new Map();
18
- let returns;
19
- let since;
20
- let deprecated;
21
- const throws = [];
22
- const tags = ts.getJSDocTags(node);
23
- for (const tag of tags) {
24
- const tagName = tag.tagName.text;
25
- const comment = typeof tag.comment === 'string'
26
- ? tag.comment
27
- : tag.comment?.map((c) => c.text ?? '').join('') ?? '';
28
- switch (tagName) {
29
- case 'param': {
30
- const paramTag = tag;
31
- const name = paramTag.name?.getText() ?? '';
32
- if (name)
33
- params.set(name, comment);
34
- break;
35
- }
36
- case 'returns':
37
- case 'return':
38
- returns = comment;
39
- break;
40
- case 'since':
41
- since = comment.trim();
42
- break;
43
- case 'deprecated':
44
- deprecated = comment.trim() || 'true';
45
- break;
46
- case 'throws':
47
- case 'throw':
48
- throws.push(comment);
49
- break;
50
- }
51
- }
52
- return { description, params, returns, since, deprecated, throws };
53
- }
54
- function getLineNumber(node, sourceFile) {
55
- return sourceFile.getLineAndCharacterOfPosition(node.getStart(sourceFile)).line + 1;
56
- }
57
- function findTsFiles(dir) {
58
- const files = [];
59
- const entries = readdirSync(dir);
60
- for (const entry of entries) {
61
- if (entry === 'node_modules' || entry.startsWith('.'))
62
- continue;
63
- const fullPath = resolve(dir, entry);
64
- const stat = statSync(fullPath);
65
- if (stat.isDirectory()) {
66
- files.push(...findTsFiles(fullPath));
67
- }
68
- else if (/\.tsx?$/.test(entry) && !entry.endsWith('.d.ts') && !entry.endsWith('.test.ts') && !entry.endsWith('.spec.ts')) {
69
- files.push(fullPath);
70
- }
71
- }
72
- return files;
73
- }
74
- export class TypeScriptExtractor {
75
- program;
76
- checker;
77
- rootDir;
78
- sourceUrl;
79
- constructor(rootDir, sourceUrl) {
80
- this.rootDir = resolve(rootDir);
81
- this.sourceUrl = sourceUrl;
82
- const configPath = ts.findConfigFile(this.rootDir, ts.sys.fileExists, 'tsconfig.json');
83
- if (configPath) {
84
- const configFile = ts.readConfigFile(configPath, ts.sys.readFile);
85
- const parsed = ts.parseJsonConfigFileContent(configFile.config, ts.sys, dirname(configPath));
86
- this.program = ts.createProgram(parsed.fileNames, parsed.options);
87
- }
88
- else {
89
- const files = findTsFiles(this.rootDir);
90
- this.program = ts.createProgram(files, {
91
- target: ts.ScriptTarget.ESNext,
92
- module: ts.ModuleKind.NodeNext,
93
- moduleResolution: ts.ModuleResolutionKind.NodeNext,
94
- });
95
- }
96
- this.checker = this.program.getTypeChecker();
97
- }
98
- extractFile(filePath) {
99
- const absPath = resolve(filePath);
100
- const sourceFile = this.program.getSourceFile(absPath);
101
- if (!sourceFile)
102
- return { symbols: [], filePath: absPath };
103
- const fileSymbol = this.checker.getSymbolAtLocation(sourceFile);
104
- if (!fileSymbol)
105
- return { symbols: [], filePath: absPath };
106
- const exports = this.checker.getExportsOfModule(fileSymbol);
107
- const symbols = [];
108
- for (const exp of exports) {
109
- const doc = this.extractExport(exp, sourceFile);
110
- if (doc)
111
- symbols.push(doc);
112
- }
113
- return { symbols, filePath: absPath };
114
- }
115
- extractExport(symbol, sourceFile) {
116
- // Resolve aliases (re-exports)
117
- let resolved = symbol;
118
- if (resolved.flags & ts.SymbolFlags.Alias) {
119
- resolved = this.checker.getAliasedSymbol(resolved);
120
- }
121
- const declarations = resolved.getDeclarations();
122
- if (!declarations || declarations.length === 0)
123
- return null;
124
- const decl = declarations[0];
125
- // Skip re-exports from other files
126
- if (decl.getSourceFile() !== sourceFile)
127
- return null;
128
- const name = symbol.getName();
129
- if (ts.isFunctionDeclaration(decl)) {
130
- return this.extractFunction(name, resolved, decl, sourceFile);
131
- }
132
- if (ts.isClassDeclaration(decl)) {
133
- return this.extractClass(name, resolved, decl, sourceFile);
134
- }
135
- if (ts.isInterfaceDeclaration(decl)) {
136
- return this.extractInterface(name, resolved, decl, sourceFile);
137
- }
138
- if (ts.isEnumDeclaration(decl)) {
139
- return this.extractEnum(name, resolved, decl, sourceFile);
140
- }
141
- if (ts.isTypeAliasDeclaration(decl)) {
142
- return this.extractTypeAlias(name, resolved, decl, sourceFile);
143
- }
144
- if (ts.isVariableDeclaration(decl)) {
145
- return this.extractVariable(name, resolved, decl, sourceFile);
146
- }
147
- return null;
148
- }
149
- extractFunction(name, symbol, decl, sourceFile) {
150
- const jsDoc = extractJSDoc(decl);
151
- const kind = name.startsWith('use') && /^use[A-Z]/.test(name) ? 'hook' : 'function';
152
- const type = this.checker.getTypeOfSymbolAtLocation(symbol, decl);
153
- const signatures = type.getCallSignatures();
154
- const signature = signatures.length > 0
155
- ? this.checker.signatureToString(signatures[0], decl, ts.TypeFormatFlags.WriteArrowStyleSignature | ts.TypeFormatFlags.NoTruncation)
156
- : this.checker.typeToString(type, decl, ts.TypeFormatFlags.NoTruncation);
157
- const parameters = this.extractParameters(decl.parameters, jsDoc);
158
- const returns = this.extractReturn(signatures[0], jsDoc);
159
- const throws = this.extractThrows(jsDoc);
160
- return {
161
- name, kind, signature,
162
- description: jsDoc.description,
163
- parameters: parameters.length > 0 ? parameters : undefined,
164
- returns, throws: throws.length > 0 ? throws : undefined,
165
- since: jsDoc.since, deprecated: jsDoc.deprecated,
166
- source: this.buildSourceUrl(sourceFile.fileName, getLineNumber(decl, sourceFile)),
167
- filePath: sourceFile.fileName,
168
- line: getLineNumber(decl, sourceFile),
169
- };
170
- }
171
- extractVariable(name, symbol, decl, sourceFile) {
172
- const type = this.checker.getTypeOfSymbolAtLocation(symbol, decl);
173
- const callSigs = type.getCallSignatures();
174
- // If the variable is a function (arrow function or function expression)
175
- if (callSigs.length > 0) {
176
- // Get JSDoc from the variable statement, not the declaration
177
- const varStatement = decl.parent?.parent;
178
- const jsDoc = varStatement ? extractJSDoc(varStatement) : extractJSDoc(decl);
179
- const kind = name.startsWith('use') && /^use[A-Z]/.test(name) ? 'hook' : 'function';
180
- const signature = this.checker.signatureToString(callSigs[0], decl, ts.TypeFormatFlags.WriteArrowStyleSignature | ts.TypeFormatFlags.NoTruncation);
181
- // Try to get parameters from the initializer if it's an arrow function
182
- let parameters = [];
183
- if (decl.initializer && (ts.isArrowFunction(decl.initializer) || ts.isFunctionExpression(decl.initializer))) {
184
- parameters = this.extractParameters(decl.initializer.parameters, jsDoc);
185
- }
186
- const returns = this.extractReturn(callSigs[0], jsDoc);
187
- const throws = this.extractThrows(jsDoc);
188
- return {
189
- name, kind, signature,
190
- description: jsDoc.description,
191
- parameters: parameters.length > 0 ? parameters : undefined,
192
- returns, throws: throws.length > 0 ? throws : undefined,
193
- since: jsDoc.since, deprecated: jsDoc.deprecated,
194
- source: this.buildSourceUrl(sourceFile.fileName, getLineNumber(decl, sourceFile)),
195
- filePath: sourceFile.fileName,
196
- line: getLineNumber(decl, sourceFile),
197
- };
198
- }
199
- // Non-function variable — treat as a constant/value
200
- const varStatement = decl.parent?.parent;
201
- const jsDoc = varStatement ? extractJSDoc(varStatement) : extractJSDoc(decl);
202
- const typeStr = this.checker.typeToString(type, decl, ts.TypeFormatFlags.NoTruncation);
203
- return {
204
- name, kind: 'function', // use 'function' kind for exported constants since there's no 'const' kind
205
- signature: `const ${name}: ${typeStr}`,
206
- description: jsDoc.description,
207
- since: jsDoc.since, deprecated: jsDoc.deprecated,
208
- source: this.buildSourceUrl(sourceFile.fileName, getLineNumber(decl, sourceFile)),
209
- filePath: sourceFile.fileName,
210
- line: getLineNumber(decl, sourceFile),
211
- };
212
- }
213
- extractClass(name, _symbol, decl, sourceFile) {
214
- const jsDoc = extractJSDoc(decl);
215
- // Build class signature
216
- let signature = `class ${name}`;
217
- if (decl.heritageClauses) {
218
- for (const clause of decl.heritageClauses) {
219
- const keyword = clause.token === ts.SyntaxKind.ExtendsKeyword ? 'extends' : 'implements';
220
- const types = clause.types.map(t => t.getText(sourceFile)).join(', ');
221
- signature += ` ${keyword} ${types}`;
222
- }
223
- }
224
- const groups = this.extractClassMembers(decl, sourceFile);
225
- return {
226
- name, kind: 'class', signature,
227
- description: jsDoc.description,
228
- groups: groups.length > 0 ? groups : undefined,
229
- since: jsDoc.since, deprecated: jsDoc.deprecated,
230
- source: this.buildSourceUrl(sourceFile.fileName, getLineNumber(decl, sourceFile)),
231
- filePath: sourceFile.fileName,
232
- line: getLineNumber(decl, sourceFile),
233
- };
234
- }
235
- extractClassMembers(decl, sourceFile) {
236
- const constructors = [];
237
- const properties = [];
238
- const methods = [];
239
- const staticProperties = [];
240
- const staticMethods = [];
241
- const accessors = [];
242
- for (const member of decl.members) {
243
- if (this.isPrivateOrProtected(member))
244
- continue;
245
- const isStatic = this.hasModifier(member, ts.SyntaxKind.StaticKeyword);
246
- if (ts.isConstructorDeclaration(member)) {
247
- constructors.push(this.extractMemberDoc(member, 'constructor', sourceFile));
248
- }
249
- else if (ts.isPropertyDeclaration(member)) {
250
- const doc = this.extractMemberDoc(member, 'property', sourceFile);
251
- if (isStatic)
252
- staticProperties.push(doc);
253
- else
254
- properties.push(doc);
255
- }
256
- else if (ts.isMethodDeclaration(member)) {
257
- const doc = this.extractMemberDoc(member, 'method', sourceFile);
258
- if (isStatic)
259
- staticMethods.push(doc);
260
- else
261
- methods.push(doc);
262
- }
263
- else if (ts.isGetAccessorDeclaration(member) || ts.isSetAccessorDeclaration(member)) {
264
- accessors.push(this.extractMemberDoc(member, 'accessor', sourceFile));
265
- }
266
- }
267
- const groups = [];
268
- if (constructors.length > 0)
269
- groups.push({ label: 'Constructor', members: constructors });
270
- if (properties.length > 0)
271
- groups.push({ label: 'Properties', members: properties });
272
- if (methods.length > 0)
273
- groups.push({ label: 'Methods', members: methods });
274
- if (staticProperties.length > 0)
275
- groups.push({ label: 'Static Properties', members: staticProperties });
276
- if (staticMethods.length > 0)
277
- groups.push({ label: 'Static Methods', members: staticMethods });
278
- if (accessors.length > 0)
279
- groups.push({ label: 'Accessors', members: accessors });
280
- return groups;
281
- }
282
- extractInterface(name, _symbol, decl, sourceFile) {
283
- const jsDoc = extractJSDoc(decl);
284
- let signature = `interface ${name}`;
285
- if (decl.heritageClauses) {
286
- for (const clause of decl.heritageClauses) {
287
- const types = clause.types.map(t => t.getText(sourceFile)).join(', ');
288
- signature += ` extends ${types}`;
289
- }
290
- }
291
- if (decl.typeParameters && decl.typeParameters.length > 0) {
292
- const params = decl.typeParameters.map(tp => tp.getText(sourceFile)).join(', ');
293
- signature = `interface ${name}<${params}>` + signature.slice(`interface ${name}`.length);
294
- }
295
- const groups = this.extractInterfaceMembers(decl, sourceFile);
296
- return {
297
- name, kind: 'interface', signature,
298
- description: jsDoc.description,
299
- groups: groups.length > 0 ? groups : undefined,
300
- since: jsDoc.since, deprecated: jsDoc.deprecated,
301
- source: this.buildSourceUrl(sourceFile.fileName, getLineNumber(decl, sourceFile)),
302
- filePath: sourceFile.fileName,
303
- line: getLineNumber(decl, sourceFile),
304
- };
305
- }
306
- extractInterfaceMembers(decl, sourceFile) {
307
- const properties = [];
308
- const methods = [];
309
- const indexSignatures = [];
310
- for (const member of decl.members) {
311
- if (ts.isPropertySignature(member)) {
312
- properties.push(this.extractMemberDoc(member, 'property', sourceFile));
313
- }
314
- else if (ts.isMethodSignature(member)) {
315
- methods.push(this.extractMemberDoc(member, 'method', sourceFile));
316
- }
317
- else if (ts.isIndexSignatureDeclaration(member)) {
318
- indexSignatures.push(this.extractMemberDoc(member, 'index-signature', sourceFile));
319
- }
320
- }
321
- const groups = [];
322
- if (properties.length > 0)
323
- groups.push({ label: 'Properties', members: properties });
324
- if (methods.length > 0)
325
- groups.push({ label: 'Methods', members: methods });
326
- if (indexSignatures.length > 0)
327
- groups.push({ label: 'Index Signatures', members: indexSignatures });
328
- return groups;
329
- }
330
- extractEnum(name, _symbol, decl, sourceFile) {
331
- const jsDoc = extractJSDoc(decl);
332
- const parameters = [];
333
- for (const member of decl.members) {
334
- const memberName = member.name.getText(sourceFile);
335
- const memberJsDoc = extractJSDoc(member);
336
- let value = '';
337
- if (member.initializer) {
338
- value = member.initializer.getText(sourceFile);
339
- }
340
- else {
341
- // Computed enum value
342
- const memberSymbol = this.checker.getSymbolAtLocation(member.name);
343
- if (memberSymbol) {
344
- const constantValue = this.checker.getConstantValue(member);
345
- if (constantValue !== undefined) {
346
- value = typeof constantValue === 'string' ? `"${constantValue}"` : String(constantValue);
347
- }
348
- }
349
- }
350
- parameters.push({
351
- name: memberName,
352
- type: value,
353
- description: memberJsDoc.description,
354
- optional: false,
355
- });
356
- }
357
- return {
358
- name, kind: 'enum',
359
- signature: `enum ${name}`,
360
- description: jsDoc.description,
361
- parameters: parameters.length > 0 ? parameters : undefined,
362
- since: jsDoc.since, deprecated: jsDoc.deprecated,
363
- source: this.buildSourceUrl(sourceFile.fileName, getLineNumber(decl, sourceFile)),
364
- filePath: sourceFile.fileName,
365
- line: getLineNumber(decl, sourceFile),
366
- };
367
- }
368
- extractTypeAlias(name, _symbol, decl, sourceFile) {
369
- const jsDoc = extractJSDoc(decl);
370
- const typeNode = decl.type;
371
- const typeText = typeNode.getText(sourceFile);
372
- let signature = `type ${name}`;
373
- if (decl.typeParameters && decl.typeParameters.length > 0) {
374
- const params = decl.typeParameters.map(tp => tp.getText(sourceFile)).join(', ');
375
- signature += `<${params}>`;
376
- }
377
- signature += ` = ${typeText}`;
378
- return {
379
- name, kind: 'type', signature,
380
- description: jsDoc.description,
381
- since: jsDoc.since, deprecated: jsDoc.deprecated,
382
- source: this.buildSourceUrl(sourceFile.fileName, getLineNumber(decl, sourceFile)),
383
- filePath: sourceFile.fileName,
384
- line: getLineNumber(decl, sourceFile),
385
- };
386
- }
387
- extractMemberDoc(member, kind, sourceFile) {
388
- const jsDoc = extractJSDoc(member);
389
- let name = '';
390
- let signature = '';
391
- let parameters;
392
- let returns;
393
- let throws;
394
- if (ts.isConstructorDeclaration(member)) {
395
- name = 'constructor';
396
- const paramTexts = member.parameters.map(p => p.getText(sourceFile)).join(', ');
397
- signature = `new (${paramTexts})`;
398
- parameters = this.extractParameters(member.parameters, jsDoc);
399
- }
400
- else if (ts.isMethodDeclaration(member) || ts.isMethodSignature(member)) {
401
- name = member.name?.getText(sourceFile) ?? '';
402
- const memberSymbol = member.name ? this.checker.getSymbolAtLocation(member.name) : undefined;
403
- if (memberSymbol) {
404
- const type = this.checker.getTypeOfSymbolAtLocation(memberSymbol, member);
405
- const callSigs = type.getCallSignatures();
406
- if (callSigs.length > 0) {
407
- signature = `${name}${this.checker.signatureToString(callSigs[0], member, ts.TypeFormatFlags.NoTruncation)}`;
408
- }
409
- else {
410
- signature = member.getText(sourceFile);
411
- }
412
- }
413
- else {
414
- signature = member.getText(sourceFile);
415
- }
416
- if ('parameters' in member) {
417
- parameters = this.extractParameters(member.parameters, jsDoc);
418
- }
419
- const memberSymbol2 = member.name ? this.checker.getSymbolAtLocation(member.name) : undefined;
420
- if (memberSymbol2) {
421
- const type = this.checker.getTypeOfSymbolAtLocation(memberSymbol2, member);
422
- const callSigs = type.getCallSignatures();
423
- if (callSigs.length > 0) {
424
- returns = this.extractReturn(callSigs[0], jsDoc);
425
- }
426
- }
427
- const throwsDocs = this.extractThrows(jsDoc);
428
- if (throwsDocs.length > 0)
429
- throws = throwsDocs;
430
- }
431
- else if (ts.isPropertyDeclaration(member) || ts.isPropertySignature(member)) {
432
- name = member.name?.getText(sourceFile) ?? '';
433
- const memberSymbol = member.name ? this.checker.getSymbolAtLocation(member.name) : undefined;
434
- if (memberSymbol) {
435
- const type = this.checker.getTypeOfSymbolAtLocation(memberSymbol, member);
436
- const typeStr = this.checker.typeToString(type, member, ts.TypeFormatFlags.NoTruncation);
437
- const optional = member.questionToken ? '?' : '';
438
- signature = `${name}${optional}: ${typeStr}`;
439
- }
440
- else {
441
- signature = member.getText(sourceFile);
442
- }
443
- }
444
- else if (ts.isGetAccessorDeclaration(member)) {
445
- name = member.name?.getText(sourceFile) ?? '';
446
- const memberSymbol = member.name ? this.checker.getSymbolAtLocation(member.name) : undefined;
447
- if (memberSymbol) {
448
- const type = this.checker.getTypeOfSymbolAtLocation(memberSymbol, member);
449
- const typeStr = this.checker.typeToString(type, member, ts.TypeFormatFlags.NoTruncation);
450
- signature = `get ${name}(): ${typeStr}`;
451
- }
452
- else {
453
- signature = member.getText(sourceFile);
454
- }
455
- }
456
- else if (ts.isSetAccessorDeclaration(member)) {
457
- name = member.name?.getText(sourceFile) ?? '';
458
- signature = member.getText(sourceFile);
459
- }
460
- else if (ts.isIndexSignatureDeclaration(member)) {
461
- name = '[index]';
462
- signature = member.getText(sourceFile);
463
- }
464
- return {
465
- name, kind, signature,
466
- description: jsDoc.description,
467
- parameters: parameters && parameters.length > 0 ? parameters : undefined,
468
- returns, throws,
469
- since: jsDoc.since, deprecated: jsDoc.deprecated,
470
- };
471
- }
472
- extractParameters(params, jsDoc) {
473
- return params.map(param => {
474
- const name = param.name.getText();
475
- const paramSymbol = this.checker.getSymbolAtLocation(param.name);
476
- let type = 'unknown';
477
- if (paramSymbol) {
478
- const paramType = this.checker.getTypeOfSymbolAtLocation(paramSymbol, param);
479
- type = this.checker.typeToString(paramType, param, ts.TypeFormatFlags.NoTruncation);
480
- }
481
- else if (param.type) {
482
- type = param.type.getText();
483
- }
484
- const optional = !!param.questionToken || !!param.initializer;
485
- let defaultValue;
486
- if (param.initializer) {
487
- defaultValue = param.initializer.getText();
488
- }
489
- const description = jsDoc.params.get(name) ?? '';
490
- // Check for destructured object parameters with documented children
491
- let children;
492
- if (ts.isObjectBindingPattern(param.name)) {
493
- children = param.name.elements.map(element => {
494
- const childName = element.name.getText();
495
- const childDesc = jsDoc.params.get(`${name}.${childName}`) ?? jsDoc.params.get(childName) ?? '';
496
- const childSymbol = this.checker.getSymbolAtLocation(element.name);
497
- let childType = 'unknown';
498
- if (childSymbol) {
499
- const ct = this.checker.getTypeOfSymbolAtLocation(childSymbol, element);
500
- childType = this.checker.typeToString(ct, element, ts.TypeFormatFlags.NoTruncation);
501
- }
502
- return {
503
- name: childName,
504
- type: childType,
505
- description: childDesc,
506
- optional: !!element.dotDotDotToken || !!element.initializer,
507
- defaultValue: element.initializer?.getText(),
508
- };
509
- });
510
- }
511
- return { name, type, description, optional, defaultValue, children };
512
- });
513
- }
514
- extractReturn(signature, jsDoc) {
515
- if (!signature)
516
- return undefined;
517
- const returnType = this.checker.getReturnTypeOfSignature(signature);
518
- const typeStr = this.checker.typeToString(returnType, undefined, ts.TypeFormatFlags.NoTruncation);
519
- if (typeStr === 'void' && !jsDoc.returns)
520
- return undefined;
521
- return {
522
- type: typeStr,
523
- description: jsDoc.returns ?? '',
524
- };
525
- }
526
- extractThrows(jsDoc) {
527
- return jsDoc.throws.map(text => {
528
- // Parse "ErrorType description" or just "description"
529
- const match = text.match(/^(\w+)\s+(.*)/);
530
- if (match) {
531
- return { type: match[1], description: match[2] };
532
- }
533
- return { type: 'Error', description: text };
534
- });
535
- }
536
- isPrivateOrProtected(member) {
537
- const flags = ts.getCombinedModifierFlags(member);
538
- return !!(flags & (ts.ModifierFlags.Private | ts.ModifierFlags.Protected));
539
- }
540
- hasModifier(member, kind) {
541
- // Use canHaveModifiers + getModifiers for TS 5.x compatibility
542
- const node = member;
543
- if (!ts.canHaveModifiers(node))
544
- return false;
545
- const modifiers = ts.getModifiers(node);
546
- return modifiers?.some((m) => m.kind === kind) ?? false;
547
- }
548
- buildSourceUrl(filePath, line) {
549
- if (!this.sourceUrl)
550
- return undefined;
551
- const rel = relative(this.rootDir, filePath).replace(/\\/g, '/');
552
- return `${this.sourceUrl.replace(/\/$/, '')}/${rel}#L${line}`;
553
- }
554
- }
555
- /** Find all TypeScript source files in a directory */
556
- export function findSourceFiles(dir) {
557
- const absDir = resolve(dir);
558
- if (!existsSync(absDir))
559
- return [];
560
- const stat = statSync(absDir);
561
- if (!stat.isDirectory()) {
562
- return /\.tsx?$/.test(absDir) ? [absDir] : [];
563
- }
564
- return findTsFiles(absDir);
565
- }
566
- //# sourceMappingURL=typescript.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"typescript.js","sourceRoot":"","sources":["../../src/extractors/typescript.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- import type { SymbolDoc } from '../extractors/types.js';
2
- export interface LayoutOptions {
3
- /** Title for the nav section (default: "API Reference") */
4
- title?: string;
5
- }
6
- /** Generate a _layout.md with {% nav %} for API reference navigation */
7
- export declare function generateLayoutMarkdown(symbols: SymbolDoc[], options?: LayoutOptions): string;
8
- //# sourceMappingURL=layout-generator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"layout-generator.d.ts","sourceRoot":"","sources":["../../src/lib/layout-generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAGxD,MAAM,WAAW,aAAa;IAC7B,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wEAAwE;AACxE,wBAAgB,sBAAsB,CACrC,OAAO,EAAE,SAAS,EAAE,EACpB,OAAO,CAAC,EAAE,aAAa,GACrB,MAAM,CAsBR"}