@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.
- package/dist/bin.js +56 -98
- package/dist/bin.js.map +1 -1
- package/dist/commands/inspect.d.ts +2 -0
- package/dist/commands/inspect.d.ts.map +1 -1
- package/dist/commands/inspect.js +50 -5
- package/dist/commands/inspect.js.map +1 -1
- package/dist/lib/dimension-audit.d.ts +48 -0
- package/dist/lib/dimension-audit.d.ts.map +1 -0
- package/dist/lib/dimension-audit.js +186 -0
- package/dist/lib/dimension-audit.js.map +1 -0
- package/dist/lib/format.d.ts +10 -0
- package/dist/lib/format.d.ts.map +1 -1
- package/dist/lib/format.js +246 -2
- package/dist/lib/format.js.map +1 -1
- package/dist/lib/meta-audit.d.ts +43 -0
- package/dist/lib/meta-audit.d.ts.map +1 -0
- package/dist/lib/meta-audit.js +116 -0
- package/dist/lib/meta-audit.js.map +1 -0
- package/package.json +6 -9
- package/dist/commands/extract.d.ts +0 -10
- package/dist/commands/extract.d.ts.map +0 -1
- package/dist/commands/extract.js +0 -161
- package/dist/commands/extract.js.map +0 -1
- package/dist/extractors/index.d.ts +0 -3
- package/dist/extractors/index.d.ts.map +0 -1
- package/dist/extractors/index.js +0 -17
- package/dist/extractors/index.js.map +0 -1
- package/dist/extractors/python-docstring.d.ts +0 -26
- package/dist/extractors/python-docstring.d.ts.map +0 -1
- package/dist/extractors/python-docstring.js +0 -396
- package/dist/extractors/python-docstring.js.map +0 -1
- package/dist/extractors/python.d.ts +0 -21
- package/dist/extractors/python.d.ts.map +0 -1
- package/dist/extractors/python.js +0 -560
- package/dist/extractors/python.js.map +0 -1
- package/dist/extractors/types.d.ts +0 -55
- package/dist/extractors/types.d.ts.map +0 -1
- package/dist/extractors/types.js +0 -2
- package/dist/extractors/types.js.map +0 -1
- package/dist/extractors/typescript.d.ts +0 -28
- package/dist/extractors/typescript.d.ts.map +0 -1
- package/dist/extractors/typescript.js +0 -566
- package/dist/extractors/typescript.js.map +0 -1
- package/dist/lib/layout-generator.d.ts +0 -8
- package/dist/lib/layout-generator.d.ts.map +0 -1
- package/dist/lib/layout-generator.js +0 -22
- package/dist/lib/layout-generator.js.map +0 -1
- package/dist/lib/symbol-generator.d.ts +0 -14
- package/dist/lib/symbol-generator.d.ts.map +0 -1
- package/dist/lib/symbol-generator.js +0 -201
- package/dist/lib/symbol-generator.js.map +0 -1
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { readdirSync, readFileSync, existsSync } from 'node:fs';
|
|
2
|
+
import { join, dirname } from 'node:path';
|
|
3
|
+
import { createRequire } from 'node:module';
|
|
4
|
+
import postcss from 'postcss';
|
|
5
|
+
/** Walk all rune configs and collect structure entries with metadata annotations */
|
|
6
|
+
export function collectMetadata(config) {
|
|
7
|
+
const fields = [];
|
|
8
|
+
const typeCount = {};
|
|
9
|
+
const rankCount = {};
|
|
10
|
+
let withSentiment = 0;
|
|
11
|
+
let withoutSentiment = 0;
|
|
12
|
+
for (const [runeKey, runeConfig] of Object.entries(config.runes)) {
|
|
13
|
+
if (!runeConfig.structure)
|
|
14
|
+
continue;
|
|
15
|
+
for (const [key, entry] of Object.entries(runeConfig.structure)) {
|
|
16
|
+
collectFromEntry(entry, key, runeKey, runeConfig.block, fields);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
for (const field of fields) {
|
|
20
|
+
typeCount[field.metaType] = (typeCount[field.metaType] || 0) + 1;
|
|
21
|
+
if (field.metaRank) {
|
|
22
|
+
rankCount[field.metaRank] = (rankCount[field.metaRank] || 0) + 1;
|
|
23
|
+
}
|
|
24
|
+
if (field.hasSentiment) {
|
|
25
|
+
withSentiment++;
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
withoutSentiment++;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return { fields, typeCount, rankCount, withSentiment, withoutSentiment };
|
|
32
|
+
}
|
|
33
|
+
/** Recursively collect metadata fields from a structure entry and its children */
|
|
34
|
+
function collectFromEntry(entry, key, runeKey, block, fields) {
|
|
35
|
+
if (entry.metaType) {
|
|
36
|
+
fields.push({
|
|
37
|
+
rune: runeKey,
|
|
38
|
+
block,
|
|
39
|
+
ref: entry.ref ?? key,
|
|
40
|
+
metaType: entry.metaType,
|
|
41
|
+
metaRank: entry.metaRank,
|
|
42
|
+
hasSentiment: !!entry.sentimentMap,
|
|
43
|
+
sentimentValues: entry.sentimentMap ? Object.keys(entry.sentimentMap) : undefined,
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
if (entry.children) {
|
|
47
|
+
for (const child of entry.children) {
|
|
48
|
+
if (typeof child !== 'string') {
|
|
49
|
+
collectFromEntry(child, child.ref ?? '', runeKey, block, fields);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
const META_ATTR_RE = /\[data-meta-[\w-]+(?:="[^"]*")?\]/g;
|
|
55
|
+
/** Check CSS files for metadata dimension selectors */
|
|
56
|
+
export function checkMetaCss(cssDir) {
|
|
57
|
+
const selectors = new Map();
|
|
58
|
+
// Check both runes/ and dimensions/ directories
|
|
59
|
+
const dirs = [cssDir];
|
|
60
|
+
const dimensionsDir = join(dirname(cssDir), 'dimensions');
|
|
61
|
+
if (existsSync(dimensionsDir)) {
|
|
62
|
+
dirs.push(dimensionsDir);
|
|
63
|
+
}
|
|
64
|
+
// Also try resolving from @refrakt-md/lumina
|
|
65
|
+
try {
|
|
66
|
+
const require = createRequire(import.meta.url);
|
|
67
|
+
const luminaPkg = require.resolve('@refrakt-md/lumina/package.json');
|
|
68
|
+
const luminaDimDir = join(dirname(luminaPkg), 'styles', 'dimensions');
|
|
69
|
+
if (existsSync(luminaDimDir) && !dirs.includes(luminaDimDir)) {
|
|
70
|
+
dirs.push(luminaDimDir);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
catch {
|
|
74
|
+
// Package not found
|
|
75
|
+
}
|
|
76
|
+
for (const dir of dirs) {
|
|
77
|
+
if (!existsSync(dir))
|
|
78
|
+
continue;
|
|
79
|
+
const files = readdirSync(dir).filter(f => f.endsWith('.css'));
|
|
80
|
+
for (const file of files) {
|
|
81
|
+
const content = readFileSync(join(dir, file), 'utf-8');
|
|
82
|
+
const root = postcss.parse(content);
|
|
83
|
+
root.walkRules((rule) => {
|
|
84
|
+
const line = rule.source?.start?.line ?? 0;
|
|
85
|
+
for (const m of rule.selector.matchAll(META_ATTR_RE)) {
|
|
86
|
+
if (!selectors.has(m[0])) {
|
|
87
|
+
selectors.set(m[0], { file, line });
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
const EXPECTED_TYPES = ['status', 'category', 'quantity', 'temporal', 'tag', 'id'];
|
|
94
|
+
const EXPECTED_SENTIMENTS = ['positive', 'negative', 'caution', 'neutral'];
|
|
95
|
+
const EXPECTED_RANKS = ['primary', 'secondary'];
|
|
96
|
+
const types = {};
|
|
97
|
+
for (const type of EXPECTED_TYPES) {
|
|
98
|
+
const sel = `[data-meta-type="${type}"]`;
|
|
99
|
+
const match = selectors.get(sel);
|
|
100
|
+
types[type] = match ? { styled: true, file: match.file, line: match.line } : { styled: false };
|
|
101
|
+
}
|
|
102
|
+
const sentiments = {};
|
|
103
|
+
for (const sentiment of EXPECTED_SENTIMENTS) {
|
|
104
|
+
const sel = `[data-meta-sentiment="${sentiment}"]`;
|
|
105
|
+
const match = selectors.get(sel);
|
|
106
|
+
sentiments[sentiment] = match ? { styled: true, file: match.file, line: match.line } : { styled: false };
|
|
107
|
+
}
|
|
108
|
+
const ranks = {};
|
|
109
|
+
for (const rank of EXPECTED_RANKS) {
|
|
110
|
+
const sel = `[data-meta-rank="${rank}"]`;
|
|
111
|
+
const match = selectors.get(sel);
|
|
112
|
+
ranks[rank] = match ? { styled: true, file: match.file, line: match.line } : { styled: false };
|
|
113
|
+
}
|
|
114
|
+
return { types, sentiments, ranks };
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=meta-audit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meta-audit.js","sourceRoot":"","sources":["../../src/lib/meta-audit.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@refrakt-md/cli",
|
|
3
3
|
"description": "CLI tools for refrakt.md",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.9.1",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"repository": {
|
|
@@ -25,13 +25,10 @@
|
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
27
|
"@markdoc/markdoc": "0.4.0",
|
|
28
|
-
"@refrakt-md/ai": "0.
|
|
29
|
-
"@refrakt-md/editor": "0.
|
|
30
|
-
"@refrakt-md/runes": "0.
|
|
31
|
-
"@refrakt-md/transform": "0.
|
|
32
|
-
"postcss": "^8.4.0"
|
|
33
|
-
"tree-sitter-wasms": "^0.1.13",
|
|
34
|
-
"typescript": "^5.4.0",
|
|
35
|
-
"web-tree-sitter": "^0.24.7"
|
|
28
|
+
"@refrakt-md/ai": "0.9.1",
|
|
29
|
+
"@refrakt-md/editor": "0.9.1",
|
|
30
|
+
"@refrakt-md/runes": "0.9.1",
|
|
31
|
+
"@refrakt-md/transform": "0.9.1",
|
|
32
|
+
"postcss": "^8.4.0"
|
|
36
33
|
}
|
|
37
34
|
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export interface ExtractOptions {
|
|
2
|
-
input: string;
|
|
3
|
-
output: string;
|
|
4
|
-
lang?: 'typescript' | 'python';
|
|
5
|
-
validate?: boolean;
|
|
6
|
-
sourceUrl?: string;
|
|
7
|
-
title?: string;
|
|
8
|
-
}
|
|
9
|
-
export declare function extractCommand(opts: ExtractOptions): Promise<void>;
|
|
10
|
-
//# sourceMappingURL=extract.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../../src/commands/extract.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,cAAc;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,YAAY,GAAG,QAAQ,CAAC;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AA8DD,wBAAsB,cAAc,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CA2GxE"}
|
package/dist/commands/extract.js
DELETED
|
@@ -1,161 +0,0 @@
|
|
|
1
|
-
import { resolve, join, relative, dirname } from 'node:path';
|
|
2
|
-
import { writeFileSync, readFileSync, existsSync, mkdirSync, readdirSync, statSync } from 'node:fs';
|
|
3
|
-
import { loadExtractor } from '../extractors/index.js';
|
|
4
|
-
import { generateSymbolMarkdown, toSlug } from '../lib/symbol-generator.js';
|
|
5
|
-
import { generateLayoutMarkdown } from '../lib/layout-generator.js';
|
|
6
|
-
function detectLanguage(inputPath) {
|
|
7
|
-
const abs = resolve(inputPath);
|
|
8
|
-
// Check if input is a single file
|
|
9
|
-
if (existsSync(abs) && statSync(abs).isFile()) {
|
|
10
|
-
if (abs.endsWith('.ts') || abs.endsWith('.tsx'))
|
|
11
|
-
return 'typescript';
|
|
12
|
-
if (abs.endsWith('.py'))
|
|
13
|
-
return 'python';
|
|
14
|
-
}
|
|
15
|
-
// Check for tsconfig.json
|
|
16
|
-
if (existsSync(join(abs, 'tsconfig.json')) ||
|
|
17
|
-
existsSync(join(dirname(abs), 'tsconfig.json'))) {
|
|
18
|
-
return 'typescript';
|
|
19
|
-
}
|
|
20
|
-
// Check directory contents
|
|
21
|
-
if (existsSync(abs) && statSync(abs).isDirectory()) {
|
|
22
|
-
try {
|
|
23
|
-
const files = readdirSync(abs);
|
|
24
|
-
if (files.some(f => f.endsWith('.ts') || f.endsWith('.tsx')))
|
|
25
|
-
return 'typescript';
|
|
26
|
-
if (files.some(f => f.endsWith('.py')))
|
|
27
|
-
return 'python';
|
|
28
|
-
}
|
|
29
|
-
catch {
|
|
30
|
-
// fall through
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
return 'typescript';
|
|
34
|
-
}
|
|
35
|
-
function findSourceFiles(inputPath, lang) {
|
|
36
|
-
const abs = resolve(inputPath);
|
|
37
|
-
if (!existsSync(abs))
|
|
38
|
-
return [];
|
|
39
|
-
const stat = statSync(abs);
|
|
40
|
-
if (stat.isFile())
|
|
41
|
-
return [abs];
|
|
42
|
-
const ext = lang === 'typescript' ? /\.tsx?$/ : /\.py$/;
|
|
43
|
-
return walkFiles(abs, ext);
|
|
44
|
-
}
|
|
45
|
-
function walkFiles(dir, ext) {
|
|
46
|
-
const files = [];
|
|
47
|
-
const entries = readdirSync(dir);
|
|
48
|
-
for (const entry of entries) {
|
|
49
|
-
if (entry === 'node_modules' || entry === '__pycache__' || entry.startsWith('.'))
|
|
50
|
-
continue;
|
|
51
|
-
const fullPath = resolve(dir, entry);
|
|
52
|
-
const stat = statSync(fullPath);
|
|
53
|
-
if (stat.isDirectory()) {
|
|
54
|
-
files.push(...walkFiles(fullPath, ext));
|
|
55
|
-
}
|
|
56
|
-
else if (ext.test(entry)
|
|
57
|
-
&& !entry.endsWith('.d.ts') && !entry.endsWith('.test.ts') && !entry.endsWith('.spec.ts')
|
|
58
|
-
&& !entry.startsWith('test_') && !entry.endsWith('_test.py')
|
|
59
|
-
&& entry !== 'conftest.py' && entry !== 'setup.py') {
|
|
60
|
-
files.push(fullPath);
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
return files;
|
|
64
|
-
}
|
|
65
|
-
export async function extractCommand(opts) {
|
|
66
|
-
const inputPath = resolve(opts.input);
|
|
67
|
-
const outputPath = resolve(opts.output);
|
|
68
|
-
const lang = opts.lang ?? detectLanguage(inputPath);
|
|
69
|
-
if (!existsSync(inputPath)) {
|
|
70
|
-
console.error(`Error: Input path does not exist: ${inputPath}`);
|
|
71
|
-
process.exit(1);
|
|
72
|
-
}
|
|
73
|
-
// Use the directory as rootDir for the extractor (even if input is a single file)
|
|
74
|
-
const extractorRoot = statSync(inputPath).isDirectory() ? inputPath : dirname(inputPath);
|
|
75
|
-
// Load the appropriate extractor
|
|
76
|
-
const extractor = await loadExtractor(lang, extractorRoot, opts.sourceUrl);
|
|
77
|
-
// Find all source files
|
|
78
|
-
const sourceFiles = findSourceFiles(inputPath, lang);
|
|
79
|
-
if (sourceFiles.length === 0) {
|
|
80
|
-
console.error(`No ${lang} source files found in ${inputPath}`);
|
|
81
|
-
process.exit(1);
|
|
82
|
-
}
|
|
83
|
-
// Extract symbols from all files
|
|
84
|
-
const allSymbols = [];
|
|
85
|
-
for (const file of sourceFiles) {
|
|
86
|
-
const result = extractor.extractFile(file);
|
|
87
|
-
allSymbols.push(...result.symbols);
|
|
88
|
-
}
|
|
89
|
-
if (allSymbols.length === 0) {
|
|
90
|
-
console.log('No exported symbols found.');
|
|
91
|
-
return;
|
|
92
|
-
}
|
|
93
|
-
console.log(`Found ${allSymbols.length} symbols in ${sourceFiles.length} files`);
|
|
94
|
-
// Detect slug collisions and resolve them
|
|
95
|
-
const slugMap = new Map();
|
|
96
|
-
for (const doc of allSymbols) {
|
|
97
|
-
const slug = toSlug(doc.name);
|
|
98
|
-
const existing = slugMap.get(slug) ?? [];
|
|
99
|
-
existing.push(doc);
|
|
100
|
-
slugMap.set(slug, existing);
|
|
101
|
-
}
|
|
102
|
-
// Generate Markdown for each symbol
|
|
103
|
-
const generated = new Map();
|
|
104
|
-
for (const [slug, docs] of slugMap) {
|
|
105
|
-
if (docs.length === 1) {
|
|
106
|
-
const filePath = join(outputPath, `${slug}.md`);
|
|
107
|
-
generated.set(filePath, generateSymbolMarkdown(docs[0], { lang }));
|
|
108
|
-
}
|
|
109
|
-
else {
|
|
110
|
-
// Resolve collisions by appending kind
|
|
111
|
-
for (const doc of docs) {
|
|
112
|
-
const uniqueSlug = `${slug}-${doc.kind}`;
|
|
113
|
-
const filePath = join(outputPath, `${uniqueSlug}.md`);
|
|
114
|
-
generated.set(filePath, generateSymbolMarkdown(doc, { lang }));
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
// Generate _layout.md
|
|
119
|
-
const layoutPath = join(outputPath, '_layout.md');
|
|
120
|
-
const layoutContent = generateLayoutMarkdown(allSymbols, { title: opts.title });
|
|
121
|
-
generated.set(layoutPath, layoutContent);
|
|
122
|
-
// Validate mode: compare generated to existing
|
|
123
|
-
if (opts.validate) {
|
|
124
|
-
let stale = false;
|
|
125
|
-
for (const [filePath, content] of generated) {
|
|
126
|
-
if (!existsSync(filePath)) {
|
|
127
|
-
console.error(`MISSING: ${relative(process.cwd(), filePath)}`);
|
|
128
|
-
stale = true;
|
|
129
|
-
}
|
|
130
|
-
else {
|
|
131
|
-
const existing = readFileSync(filePath, 'utf-8');
|
|
132
|
-
if (existing !== content) {
|
|
133
|
-
console.error(`STALE: ${relative(process.cwd(), filePath)}`);
|
|
134
|
-
stale = true;
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
if (stale) {
|
|
139
|
-
console.error('\nAPI reference is out of date. Run `refrakt extract` to regenerate.');
|
|
140
|
-
process.exit(1);
|
|
141
|
-
}
|
|
142
|
-
else {
|
|
143
|
-
console.log(`OK: ${generated.size} files up to date (${allSymbols.length} symbols)`);
|
|
144
|
-
}
|
|
145
|
-
return;
|
|
146
|
-
}
|
|
147
|
-
// Write mode
|
|
148
|
-
if (!existsSync(outputPath)) {
|
|
149
|
-
mkdirSync(outputPath, { recursive: true });
|
|
150
|
-
}
|
|
151
|
-
let written = 0;
|
|
152
|
-
for (const [filePath, content] of generated) {
|
|
153
|
-
const dir = dirname(filePath);
|
|
154
|
-
if (!existsSync(dir))
|
|
155
|
-
mkdirSync(dir, { recursive: true });
|
|
156
|
-
writeFileSync(filePath, content);
|
|
157
|
-
written++;
|
|
158
|
-
}
|
|
159
|
-
console.log(`Written ${written} files to ${relative(process.cwd(), outputPath)}`);
|
|
160
|
-
}
|
|
161
|
-
//# sourceMappingURL=extract.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"extract.js","sourceRoot":"","sources":["../../src/commands/extract.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export type { SymbolDoc, SymbolExtractor, ExtractorResult, SymbolKind, SymbolParameter, SymbolReturn, SymbolThrows, SymbolMemberDoc, SymbolGroupDoc, } from './types.js';
|
|
2
|
-
export declare function loadExtractor(lang: 'typescript' | 'python', rootDir: string, sourceUrl?: string): Promise<import('./types.js').SymbolExtractor>;
|
|
3
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/extractors/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACX,SAAS,EAAE,eAAe,EAAE,eAAe,EAAE,UAAU,EACvD,eAAe,EAAE,YAAY,EAAE,YAAY,EAC3C,eAAe,EAAE,cAAc,GAC/B,MAAM,YAAY,CAAC;AAEpB,wBAAsB,aAAa,CAClC,IAAI,EAAE,YAAY,GAAG,QAAQ,EAC7B,OAAO,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,OAAO,YAAY,EAAE,eAAe,CAAC,CAe/C"}
|
package/dist/extractors/index.js
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
export async function loadExtractor(lang, rootDir, sourceUrl) {
|
|
2
|
-
switch (lang) {
|
|
3
|
-
case 'typescript': {
|
|
4
|
-
const { TypeScriptExtractor } = await import('./typescript.js');
|
|
5
|
-
return new TypeScriptExtractor(rootDir, sourceUrl);
|
|
6
|
-
}
|
|
7
|
-
case 'python': {
|
|
8
|
-
const { PythonExtractor } = await import('./python.js');
|
|
9
|
-
const extractor = new PythonExtractor(rootDir, sourceUrl);
|
|
10
|
-
await extractor.init();
|
|
11
|
-
return extractor;
|
|
12
|
-
}
|
|
13
|
-
default:
|
|
14
|
-
throw new Error(`Unsupported language: ${lang}`);
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/extractors/index.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,KAAK,UAAU,aAAa,CAClC,IAA6B,EAC7B,OAAe,EACf,SAAkB;IAElB,QAAQ,IAAI,EAAE,CAAC;QACd,KAAK,YAAY,CAAC,CAAC,CAAC;YACnB,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;YAChE,OAAO,IAAI,mBAAmB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACpD,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACf,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;YACxD,MAAM,SAAS,GAAG,IAAI,eAAe,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YAC1D,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC;YACvB,OAAO,SAAS,CAAC;QAClB,CAAC;QACD;YACC,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,EAAE,CAAC,CAAC;IACnD,CAAC;AACF,CAAC"}
|
|
@@ -1,26 +0,0 @@
|
|
|
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
|
-
export interface DocstringParam {
|
|
6
|
-
type: string;
|
|
7
|
-
description: string;
|
|
8
|
-
}
|
|
9
|
-
export interface DocstringInfo {
|
|
10
|
-
description: string;
|
|
11
|
-
params: Map<string, DocstringParam>;
|
|
12
|
-
returns?: {
|
|
13
|
-
type: string;
|
|
14
|
-
description: string;
|
|
15
|
-
};
|
|
16
|
-
raises: Array<{
|
|
17
|
-
type: string;
|
|
18
|
-
description: string;
|
|
19
|
-
}>;
|
|
20
|
-
since?: string;
|
|
21
|
-
deprecated?: string;
|
|
22
|
-
}
|
|
23
|
-
export type DocstringStyle = 'google' | 'numpy' | 'sphinx' | 'plain';
|
|
24
|
-
export declare function detectStyle(raw: string): DocstringStyle;
|
|
25
|
-
export declare function parseDocstring(raw: string): DocstringInfo;
|
|
26
|
-
//# sourceMappingURL=python-docstring.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"python-docstring.d.ts","sourceRoot":"","sources":["../../src/extractors/python-docstring.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,cAAc;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACpC,OAAO,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IAChD,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AAQrE,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAMvD;AAID,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAazD"}
|