@refrakt-md/docs 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 (66) hide show
  1. package/dist/cli-plugin.d.ts +12 -0
  2. package/dist/cli-plugin.d.ts.map +1 -0
  3. package/dist/cli-plugin.js +113 -0
  4. package/dist/cli-plugin.js.map +1 -0
  5. package/dist/config.d.ts.map +1 -1
  6. package/dist/config.js +13 -9
  7. package/dist/config.js.map +1 -1
  8. package/dist/extract/command.d.ts +10 -0
  9. package/dist/extract/command.d.ts.map +1 -0
  10. package/dist/extract/command.js +161 -0
  11. package/dist/extract/command.js.map +1 -0
  12. package/dist/extract/extractors.d.ts +3 -0
  13. package/dist/extract/extractors.d.ts.map +1 -0
  14. package/dist/extract/extractors.js +17 -0
  15. package/dist/extract/extractors.js.map +1 -0
  16. package/dist/extract/layout-generator.d.ts +8 -0
  17. package/dist/extract/layout-generator.d.ts.map +1 -0
  18. package/dist/extract/layout-generator.js +22 -0
  19. package/dist/extract/layout-generator.js.map +1 -0
  20. package/dist/extract/python-docstring.d.ts +26 -0
  21. package/dist/extract/python-docstring.d.ts.map +1 -0
  22. package/dist/extract/python-docstring.js +396 -0
  23. package/dist/extract/python-docstring.js.map +1 -0
  24. package/dist/extract/python.d.ts +21 -0
  25. package/dist/extract/python.d.ts.map +1 -0
  26. package/dist/extract/python.js +557 -0
  27. package/dist/extract/python.js.map +1 -0
  28. package/dist/extract/symbol-generator.d.ts +14 -0
  29. package/dist/extract/symbol-generator.d.ts.map +1 -0
  30. package/dist/extract/symbol-generator.js +201 -0
  31. package/dist/extract/symbol-generator.js.map +1 -0
  32. package/dist/extract/types.d.ts +55 -0
  33. package/dist/extract/types.d.ts.map +1 -0
  34. package/dist/extract/types.js +2 -0
  35. package/dist/extract/types.js.map +1 -0
  36. package/dist/extract/typescript.d.ts +28 -0
  37. package/dist/extract/typescript.d.ts.map +1 -0
  38. package/dist/extract/typescript.js +562 -0
  39. package/dist/extract/typescript.js.map +1 -0
  40. package/dist/index.js +1 -1
  41. package/dist/tags/api.d.ts.map +1 -1
  42. package/dist/tags/api.js +1 -2
  43. package/dist/tags/api.js.map +1 -1
  44. package/dist/tags/changelog.d.ts.map +1 -1
  45. package/dist/tags/changelog.js +20 -34
  46. package/dist/tags/changelog.js.map +1 -1
  47. package/dist/tags/symbol.d.ts.map +1 -1
  48. package/dist/tags/symbol.js +3 -4
  49. package/dist/tags/symbol.js.map +1 -1
  50. package/package.json +18 -5
  51. package/dist/schema/api.d.ts +0 -6
  52. package/dist/schema/api.d.ts.map +0 -1
  53. package/dist/schema/api.js +0 -8
  54. package/dist/schema/api.js.map +0 -1
  55. package/dist/schema/changelog.d.ts +0 -10
  56. package/dist/schema/changelog.d.ts.map +0 -1
  57. package/dist/schema/changelog.js +0 -15
  58. package/dist/schema/changelog.js.map +0 -1
  59. package/dist/schema/symbol.d.ts +0 -14
  60. package/dist/schema/symbol.d.ts.map +0 -1
  61. package/dist/schema/symbol.js +0 -20
  62. package/dist/schema/symbol.js.map +0 -1
  63. package/dist/types.d.ts +0 -12
  64. package/dist/types.d.ts.map +0 -1
  65. package/dist/types.js +0 -13
  66. package/dist/types.js.map +0 -1
@@ -0,0 +1,396 @@
1
+ /**
2
+ * Python docstring parser — supports Google, NumPy, and Sphinx (reST) conventions.
3
+ * Auto-detects the format and extracts parameters, returns, raises, since, and deprecated.
4
+ */
5
+ // ── Detection ────────────────────────────────────────────────────────
6
+ const GOOGLE_SECTIONS = /^(Args|Arguments|Parameters|Returns?|Raises?|Yields?|Examples?|Notes?|Attributes|Todo|References):\s*$/m;
7
+ const NUMPY_SECTIONS = /^(Parameters|Returns?|Raises?|Yields?|See Also|Notes|References|Examples|Attributes)\s*\n-{3,}/m;
8
+ const SPHINX_DIRECTIVES = /:(param|type|returns?|rtype|raises?|var|ivar|cvar)[\s:]/;
9
+ export function detectStyle(raw) {
10
+ const text = dedent(raw);
11
+ if (NUMPY_SECTIONS.test(text))
12
+ return 'numpy';
13
+ if (SPHINX_DIRECTIVES.test(text))
14
+ return 'sphinx';
15
+ if (GOOGLE_SECTIONS.test(text))
16
+ return 'google';
17
+ return 'plain';
18
+ }
19
+ // ── Main entry ───────────────────────────────────────────────────────
20
+ export function parseDocstring(raw) {
21
+ const cleaned = dedent(raw);
22
+ const style = detectStyle(cleaned);
23
+ let info;
24
+ switch (style) {
25
+ case 'google':
26
+ info = parseGoogleDocstring(cleaned);
27
+ break;
28
+ case 'numpy':
29
+ info = parseNumpyDocstring(cleaned);
30
+ break;
31
+ case 'sphinx':
32
+ info = parseSphinxDocstring(cleaned);
33
+ break;
34
+ default:
35
+ info = parsePlainDocstring(cleaned);
36
+ break;
37
+ }
38
+ // Extract reStructuredText directives from any style
39
+ extractRstDirectives(cleaned, info);
40
+ return info;
41
+ }
42
+ // ── RST directives (shared across all styles) ────────────────────────
43
+ function extractRstDirectives(raw, info) {
44
+ // .. versionadded:: X.Y
45
+ const sinceMatch = raw.match(/\.\.\s+versionadded::\s*(.+)/);
46
+ if (sinceMatch)
47
+ info.since = sinceMatch[1].trim();
48
+ // .. deprecated:: X.Y
49
+ const deprecatedMatch = raw.match(/\.\.\s+deprecated::\s*(.+)/);
50
+ if (deprecatedMatch)
51
+ info.deprecated = deprecatedMatch[1].trim();
52
+ }
53
+ // ── Plain ────────────────────────────────────────────────────────────
54
+ function parsePlainDocstring(raw) {
55
+ return {
56
+ description: raw.trim(),
57
+ params: new Map(),
58
+ raises: [],
59
+ };
60
+ }
61
+ // ── Google style ─────────────────────────────────────────────────────
62
+ function parseGoogleDocstring(raw) {
63
+ const info = { description: '', params: new Map(), raises: [] };
64
+ // Split into sections. Each section starts with a header like "Args:"
65
+ const sectionRe = /^(Args|Arguments|Parameters|Returns?|Raises?|Yields?|Examples?|Notes?|Attributes|Todo|References):\s*$/gm;
66
+ const sections = [];
67
+ let match;
68
+ while ((match = sectionRe.exec(raw)) !== null) {
69
+ sections.push({ name: match[1], headerStart: match.index, start: match.index + match[0].length, end: raw.length });
70
+ }
71
+ // Set end boundaries
72
+ for (let i = 0; i < sections.length - 1; i++) {
73
+ sections[i].end = sections[i + 1].headerStart;
74
+ }
75
+ // Description is everything before the first section (minus RST directives)
76
+ const descEnd = sections.length > 0 ? sections[0].headerStart : raw.length;
77
+ info.description = stripRstDirectives(raw.slice(0, descEnd)).trim();
78
+ for (const section of sections) {
79
+ const body = raw.slice(section.start, section.end);
80
+ const normalized = section.name.replace(/s$/, '').toLowerCase();
81
+ if (normalized === 'arg' || normalized === 'argument' || normalized === 'parameter') {
82
+ parseGoogleParams(body, info.params);
83
+ }
84
+ else if (normalized === 'return' || normalized === 'yield') {
85
+ info.returns = parseGoogleReturns(body);
86
+ }
87
+ else if (normalized === 'raise') {
88
+ parseGoogleRaises(body, info.raises);
89
+ }
90
+ }
91
+ return info;
92
+ }
93
+ function parseGoogleParams(body, params) {
94
+ // Pattern: " name (type): Description" or " name: Description"
95
+ const lines = body.split('\n');
96
+ let currentName = '';
97
+ let currentType = '';
98
+ let currentDesc = '';
99
+ for (const line of lines) {
100
+ // New param line: starts with indent + identifier
101
+ const paramMatch = line.match(/^\s{2,}(\*{0,2}\w+)\s*(?:\(([^)]+)\))?\s*:\s*(.*)/);
102
+ if (paramMatch) {
103
+ if (currentName) {
104
+ params.set(currentName, { type: currentType || 'Any', description: currentDesc.trim() });
105
+ }
106
+ currentName = paramMatch[1];
107
+ currentType = paramMatch[2] ?? '';
108
+ currentDesc = paramMatch[3] ?? '';
109
+ }
110
+ else if (currentName && line.match(/^\s{4,}/)) {
111
+ // Continuation line
112
+ currentDesc += ' ' + line.trim();
113
+ }
114
+ }
115
+ if (currentName) {
116
+ params.set(currentName, { type: currentType || 'Any', description: currentDesc.trim() });
117
+ }
118
+ }
119
+ function parseGoogleReturns(body) {
120
+ const lines = body.split('\n').filter(l => l.trim());
121
+ if (lines.length === 0)
122
+ return undefined;
123
+ // Pattern: " type: Description" or just " Description"
124
+ const first = lines[0].trim();
125
+ const typeMatch = first.match(/^(\S+)\s*:\s*(.*)/);
126
+ if (typeMatch) {
127
+ const desc = [typeMatch[2], ...lines.slice(1).map(l => l.trim())].join(' ').trim();
128
+ return { type: typeMatch[1], description: desc };
129
+ }
130
+ return { type: 'Any', description: lines.map(l => l.trim()).join(' ').trim() };
131
+ }
132
+ function parseGoogleRaises(body, raises) {
133
+ const lines = body.split('\n');
134
+ let currentType = '';
135
+ let currentDesc = '';
136
+ for (const line of lines) {
137
+ const raiseMatch = line.match(/^\s{2,}(\w+)\s*:\s*(.*)/);
138
+ if (raiseMatch) {
139
+ if (currentType) {
140
+ raises.push({ type: currentType, description: currentDesc.trim() });
141
+ }
142
+ currentType = raiseMatch[1];
143
+ currentDesc = raiseMatch[2] ?? '';
144
+ }
145
+ else if (currentType && line.match(/^\s{4,}/)) {
146
+ currentDesc += ' ' + line.trim();
147
+ }
148
+ }
149
+ if (currentType) {
150
+ raises.push({ type: currentType, description: currentDesc.trim() });
151
+ }
152
+ }
153
+ // ── NumPy style ──────────────────────────────────────────────────────
154
+ function parseNumpyDocstring(raw) {
155
+ const info = { description: '', params: new Map(), raises: [] };
156
+ // Split on sections delimited by underlined headers
157
+ const sectionRe = /^(\w[\w\s]*?)\s*\n(-{3,})\s*$/gm;
158
+ const sections = [];
159
+ let match;
160
+ while ((match = sectionRe.exec(raw)) !== null) {
161
+ const headerStart = match.index;
162
+ const bodyStart = match.index + match[0].length;
163
+ sections.push({ name: match[1].trim(), start: bodyStart, end: raw.length });
164
+ // Store headerStart for description extraction
165
+ if (sections.length === 1) {
166
+ info.description = stripRstDirectives(raw.slice(0, headerStart)).trim();
167
+ }
168
+ }
169
+ if (sections.length === 0) {
170
+ info.description = stripRstDirectives(raw).trim();
171
+ return info;
172
+ }
173
+ // Set end boundaries
174
+ for (let i = 0; i < sections.length - 1; i++) {
175
+ // Find start of next section's header
176
+ const nextHeaderRe = new RegExp(`^${escapeRegex(sections[i + 1].name)}\\s*\\n-{3,}`, 'm');
177
+ const nextMatch = raw.slice(sections[i].start).match(nextHeaderRe);
178
+ if (nextMatch) {
179
+ sections[i].end = sections[i].start + nextMatch.index;
180
+ }
181
+ }
182
+ for (const section of sections) {
183
+ const body = raw.slice(section.start, section.end);
184
+ const normalized = section.name.replace(/s$/, '').toLowerCase();
185
+ if (normalized === 'parameter') {
186
+ parseNumpyParams(body, info.params);
187
+ }
188
+ else if (normalized === 'return' || normalized === 'yield') {
189
+ info.returns = parseNumpyReturns(body);
190
+ }
191
+ else if (normalized === 'raise') {
192
+ parseNumpyRaises(body, info.raises);
193
+ }
194
+ }
195
+ return info;
196
+ }
197
+ function parseNumpyParams(body, params) {
198
+ // Pattern: "name : type\n Description" or "name : type, optional\n Description"
199
+ const lines = body.split('\n');
200
+ let currentName = '';
201
+ let currentType = '';
202
+ let currentDesc = '';
203
+ for (const line of lines) {
204
+ const paramMatch = line.match(/^(\*{0,2}\w+)\s*:\s*(.*)/);
205
+ if (paramMatch && !line.match(/^\s/)) {
206
+ if (currentName) {
207
+ params.set(currentName, { type: currentType || 'Any', description: currentDesc.trim() });
208
+ }
209
+ currentName = paramMatch[1];
210
+ currentType = paramMatch[2].replace(/,?\s*optional\s*$/, '').trim() || 'Any';
211
+ currentDesc = '';
212
+ }
213
+ else if (currentName && line.match(/^\s{2,}/)) {
214
+ currentDesc += (currentDesc ? ' ' : '') + line.trim();
215
+ }
216
+ }
217
+ if (currentName) {
218
+ params.set(currentName, { type: currentType || 'Any', description: currentDesc.trim() });
219
+ }
220
+ }
221
+ function parseNumpyReturns(body) {
222
+ const lines = body.split('\n');
223
+ let type = 'Any';
224
+ let desc = '';
225
+ for (const line of lines) {
226
+ const typeMatch = line.match(/^(\S+)\s*$/);
227
+ if (typeMatch && !line.match(/^\s/) && !desc) {
228
+ type = typeMatch[1];
229
+ }
230
+ else if (line.match(/^\s{2,}/)) {
231
+ desc += (desc ? ' ' : '') + line.trim();
232
+ }
233
+ }
234
+ if (!type && !desc)
235
+ return undefined;
236
+ return { type, description: desc.trim() };
237
+ }
238
+ function parseNumpyRaises(body, raises) {
239
+ const lines = body.split('\n');
240
+ let currentType = '';
241
+ let currentDesc = '';
242
+ for (const line of lines) {
243
+ const typeMatch = line.match(/^(\w+)\s*$/);
244
+ if (typeMatch && !line.match(/^\s/)) {
245
+ if (currentType) {
246
+ raises.push({ type: currentType, description: currentDesc.trim() });
247
+ }
248
+ currentType = typeMatch[1];
249
+ currentDesc = '';
250
+ }
251
+ else if (currentType && line.match(/^\s{2,}/)) {
252
+ currentDesc += (currentDesc ? ' ' : '') + line.trim();
253
+ }
254
+ }
255
+ if (currentType) {
256
+ raises.push({ type: currentType, description: currentDesc.trim() });
257
+ }
258
+ }
259
+ // ── Sphinx/reST style ────────────────────────────────────────────────
260
+ function parseSphinxDocstring(raw) {
261
+ const info = { description: '', params: new Map(), raises: [] };
262
+ const lines = raw.split('\n');
263
+ const descLines = [];
264
+ let foundDirective = false;
265
+ // Temporary storage for :type: merging
266
+ const paramTypes = new Map();
267
+ let returnDesc = '';
268
+ let returnType = '';
269
+ for (let i = 0; i < lines.length; i++) {
270
+ const line = lines[i];
271
+ // :param name: description
272
+ const paramMatch = line.match(/^\s*:param\s+(\w+)\s*:\s*(.*)/);
273
+ if (paramMatch) {
274
+ foundDirective = true;
275
+ const name = paramMatch[1];
276
+ let desc = paramMatch[2];
277
+ // Collect continuation lines
278
+ while (i + 1 < lines.length && lines[i + 1].match(/^\s+\S/) && !lines[i + 1].match(/^\s*:/)) {
279
+ i++;
280
+ desc += ' ' + lines[i].trim();
281
+ }
282
+ const existing = info.params.get(name);
283
+ info.params.set(name, {
284
+ type: existing?.type ?? 'Any',
285
+ description: desc.trim(),
286
+ });
287
+ continue;
288
+ }
289
+ // :type name: type
290
+ const typeMatch = line.match(/^\s*:type\s+(\w+)\s*:\s*(.*)/);
291
+ if (typeMatch) {
292
+ foundDirective = true;
293
+ paramTypes.set(typeMatch[1], typeMatch[2].trim());
294
+ continue;
295
+ }
296
+ // :returns: / :return: description
297
+ const returnMatch = line.match(/^\s*:returns?\s*:\s*(.*)/);
298
+ if (returnMatch) {
299
+ foundDirective = true;
300
+ returnDesc = returnMatch[1];
301
+ while (i + 1 < lines.length && lines[i + 1].match(/^\s+\S/) && !lines[i + 1].match(/^\s*:/)) {
302
+ i++;
303
+ returnDesc += ' ' + lines[i].trim();
304
+ }
305
+ continue;
306
+ }
307
+ // :rtype: type
308
+ const rtypeMatch = line.match(/^\s*:rtype\s*:\s*(.*)/);
309
+ if (rtypeMatch) {
310
+ foundDirective = true;
311
+ returnType = rtypeMatch[1].trim();
312
+ continue;
313
+ }
314
+ // :raises Type: description
315
+ const raiseMatch = line.match(/^\s*:raises?\s+(\w+)\s*:\s*(.*)/);
316
+ if (raiseMatch) {
317
+ foundDirective = true;
318
+ let desc = raiseMatch[2];
319
+ while (i + 1 < lines.length && lines[i + 1].match(/^\s+\S/) && !lines[i + 1].match(/^\s*:/)) {
320
+ i++;
321
+ desc += ' ' + lines[i].trim();
322
+ }
323
+ info.raises.push({ type: raiseMatch[1], description: desc.trim() });
324
+ continue;
325
+ }
326
+ // RST directives (.. versionadded, .. deprecated) are handled by extractRstDirectives
327
+ if (line.match(/^\s*\.\.\s+(versionadded|deprecated)::/)) {
328
+ foundDirective = true;
329
+ continue;
330
+ }
331
+ if (!foundDirective) {
332
+ descLines.push(line);
333
+ }
334
+ }
335
+ info.description = stripRstDirectives(descLines.join('\n')).trim();
336
+ // Merge :type: into :param:
337
+ for (const [name, type] of paramTypes) {
338
+ const existing = info.params.get(name);
339
+ if (existing) {
340
+ existing.type = type;
341
+ }
342
+ else {
343
+ info.params.set(name, { type, description: '' });
344
+ }
345
+ }
346
+ // Set returns
347
+ if (returnDesc || returnType) {
348
+ info.returns = { type: returnType || 'Any', description: returnDesc.trim() };
349
+ }
350
+ return info;
351
+ }
352
+ // ── Helpers ──────────────────────────────────────────────────────────
353
+ function stripRstDirectives(text) {
354
+ return text
355
+ .replace(/\.\.\s+versionadded::\s*.+(\n\s+.*)*/g, '')
356
+ .replace(/\.\.\s+deprecated::\s*.+(\n\s+.*)*/g, '')
357
+ .trim();
358
+ }
359
+ function escapeRegex(s) {
360
+ return s.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
361
+ }
362
+ /**
363
+ * Remove common leading whitespace from all lines (Python's `inspect.cleandoc` equivalent).
364
+ * The first line is treated specially: its leading whitespace is stripped independently.
365
+ */
366
+ function dedent(text) {
367
+ const lines = text.split('\n');
368
+ // First line: strip leading whitespace
369
+ const firstLine = lines[0].trimStart();
370
+ if (lines.length === 1)
371
+ return firstLine;
372
+ // Find minimum indentation of non-empty lines after the first
373
+ let minIndent = Infinity;
374
+ for (let i = 1; i < lines.length; i++) {
375
+ const line = lines[i];
376
+ if (line.trim().length === 0)
377
+ continue;
378
+ const indent = line.match(/^\s*/)[0].length;
379
+ if (indent < minIndent)
380
+ minIndent = indent;
381
+ }
382
+ if (!isFinite(minIndent))
383
+ minIndent = 0;
384
+ // Strip common indentation
385
+ const dedented = [firstLine];
386
+ for (let i = 1; i < lines.length; i++) {
387
+ dedented.push(lines[i].slice(minIndent));
388
+ }
389
+ // Remove leading/trailing blank lines
390
+ while (dedented.length > 0 && dedented[0].trim() === '')
391
+ dedented.shift();
392
+ while (dedented.length > 0 && dedented[dedented.length - 1].trim() === '')
393
+ dedented.pop();
394
+ return dedented.join('\n');
395
+ }
396
+ //# sourceMappingURL=python-docstring.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"python-docstring.js","sourceRoot":"","sources":["../../src/extract/python-docstring.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { SymbolExtractor, ExtractorResult } from './types.js';
2
+ export declare class PythonExtractor implements SymbolExtractor {
3
+ private rootDir;
4
+ private sourceUrl?;
5
+ private parser;
6
+ private initialized;
7
+ constructor(rootDir: string, sourceUrl?: string);
8
+ init(): Promise<void>;
9
+ extractFile(filePath: string): ExtractorResult;
10
+ private extractAllList;
11
+ private isExported;
12
+ private extractFunction;
13
+ private extractClass;
14
+ private extractEnumMembers;
15
+ private extractClassMembers;
16
+ private extractMethodMember;
17
+ private extractPropertyMember;
18
+ private mergeParamDocs;
19
+ private buildSourceUrl;
20
+ }
21
+ //# sourceMappingURL=python.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"python.d.ts","sourceRoot":"","sources":["../../src/extract/python.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEsB,eAAe,EAAE,eAAe,EACjE,MAAM,YAAY,CAAC;AA+QpB,qBAAa,eAAgB,YAAW,eAAe;IACtD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,WAAW,CAAS;gBAEhB,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;IAKzC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAiB3B,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe;IA2C9C,OAAO,CAAC,cAAc;IAuBtB,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,eAAe;IAoDvB,OAAO,CAAC,YAAY;IAqCpB,OAAO,CAAC,kBAAkB;IA2B1B,OAAO,CAAC,mBAAmB;IA8C3B,OAAO,CAAC,mBAAmB;IAkD3B,OAAO,CAAC,qBAAqB;IAqB7B,OAAO,CAAC,cAAc;IAkBtB,OAAO,CAAC,cAAc;CAKtB"}