@leeguoo/yapi-mcp 0.3.9 → 0.3.10
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/README.md +4 -0
- package/dist/docs/markdown.d.ts +1 -0
- package/dist/docs/markdown.js +32 -6
- package/dist/docs/markdown.js.map +1 -1
- package/dist/skill/install.js +161 -140
- package/dist/skill/install.js.map +1 -1
- package/dist/yapi-cli.js +270 -31
- package/dist/yapi-cli.js.map +1 -1
- package/package.json +4 -1
package/README.md
CHANGED
|
@@ -77,6 +77,8 @@ CLI 使用示例(走同一份 `~/.yapi/config.toml`):
|
|
|
77
77
|
npx -y @leeguoo/yapi-mcp yapi -V
|
|
78
78
|
npx -y @leeguoo/yapi-mcp yapi -h
|
|
79
79
|
npx -y @leeguoo/yapi-mcp yapi login
|
|
80
|
+
npx -y @leeguoo/yapi-mcp yapi whoami
|
|
81
|
+
npx -y @leeguoo/yapi-mcp yapi search --q keyword
|
|
80
82
|
npx -y @leeguoo/yapi-mcp yapi --path /api/interface/get --query id=123
|
|
81
83
|
```
|
|
82
84
|
|
|
@@ -105,6 +107,8 @@ npx -y @leeguoo/yapi-mcp yapi docs-sync
|
|
|
105
107
|
- 管理绑定:`yapi docs-sync bind list|get|add|update|remove`
|
|
106
108
|
- 可用 `--dry-run` 只做转换不更新
|
|
107
109
|
- 默认只同步内容变更的文件,如需全量更新使用 `--force`
|
|
110
|
+
- Mermaid 预渲染依赖 `mmdc`(安装时会尝试拉取,失败不影响同步)
|
|
111
|
+
- `pandoc` 需手动安装(用于完整 Markdown 渲染)
|
|
108
112
|
- 如需跳过 Mermaid 渲染,使用 `--no-mermaid`
|
|
109
113
|
|
|
110
114
|
### 手动方式:使用 npx(无需安装)
|
package/dist/docs/markdown.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ export type MarkdownRenderOptions = {
|
|
|
2
2
|
noMermaid?: boolean;
|
|
3
3
|
logMermaid?: boolean;
|
|
4
4
|
logger?: (message: string) => void;
|
|
5
|
+
onMermaidError?: (error: unknown) => void;
|
|
5
6
|
};
|
|
6
7
|
export declare function isPandocAvailable(): boolean;
|
|
7
8
|
export declare function isMmdcAvailable(): boolean;
|
package/dist/docs/markdown.js
CHANGED
|
@@ -17,9 +17,10 @@ const path_1 = __importDefault(require("path"));
|
|
|
17
17
|
const markdown_it_1 = __importDefault(require("markdown-it"));
|
|
18
18
|
let cachedPandocAvailable = null;
|
|
19
19
|
let cachedMmdcAvailable = null;
|
|
20
|
+
let cachedMmdcCommand = null;
|
|
20
21
|
let cachedMarkdownIt = null;
|
|
21
22
|
function stripAnsi(input) {
|
|
22
|
-
return input.replace(/\
|
|
23
|
+
return input.replace(/\x1b\[[0-9;]*m/g, "");
|
|
23
24
|
}
|
|
24
25
|
function formatMermaidError(error) {
|
|
25
26
|
if (!error || typeof error !== "object")
|
|
@@ -32,7 +33,10 @@ function formatMermaidError(error) {
|
|
|
32
33
|
const extra = [err.stderr, err.stdout].find((value) => typeof value === "string" || Buffer.isBuffer(value));
|
|
33
34
|
if (extra) {
|
|
34
35
|
const text = stripAnsi(typeof extra === "string" ? extra : Buffer.from(extra).toString("utf8"));
|
|
35
|
-
const line = text
|
|
36
|
+
const line = text
|
|
37
|
+
.split(/\r?\n/)
|
|
38
|
+
.map((item) => item.trim())
|
|
39
|
+
.find(Boolean);
|
|
36
40
|
if (line && !parts.join(" ").includes(line)) {
|
|
37
41
|
parts.push(line);
|
|
38
42
|
}
|
|
@@ -54,11 +58,23 @@ function isPandocAvailable() {
|
|
|
54
58
|
}
|
|
55
59
|
return cachedPandocAvailable;
|
|
56
60
|
}
|
|
61
|
+
function resolveMmdcCommand() {
|
|
62
|
+
if (cachedMmdcCommand)
|
|
63
|
+
return cachedMmdcCommand;
|
|
64
|
+
const binName = process.platform === "win32" ? "mmdc.cmd" : "mmdc";
|
|
65
|
+
const localBin = path_1.default.resolve(__dirname, "..", "..", "node_modules", ".bin", binName);
|
|
66
|
+
if (fs_1.default.existsSync(localBin)) {
|
|
67
|
+
cachedMmdcCommand = localBin;
|
|
68
|
+
return cachedMmdcCommand;
|
|
69
|
+
}
|
|
70
|
+
cachedMmdcCommand = binName;
|
|
71
|
+
return cachedMmdcCommand;
|
|
72
|
+
}
|
|
57
73
|
function isMmdcAvailable() {
|
|
58
74
|
if (cachedMmdcAvailable !== null)
|
|
59
75
|
return cachedMmdcAvailable;
|
|
60
76
|
try {
|
|
61
|
-
(0, child_process_1.execFileSync)(
|
|
77
|
+
(0, child_process_1.execFileSync)(resolveMmdcCommand(), ["--version"], { stdio: "ignore" });
|
|
62
78
|
cachedMmdcAvailable = true;
|
|
63
79
|
}
|
|
64
80
|
catch {
|
|
@@ -88,7 +104,10 @@ function renderMermaidWithMmdc(source) {
|
|
|
88
104
|
const outputPath = path_1.default.join(tmpDir, "diagram.svg");
|
|
89
105
|
try {
|
|
90
106
|
fs_1.default.writeFileSync(inputPath, source, "utf8");
|
|
91
|
-
|
|
107
|
+
const mmdcCommand = resolveMmdcCommand();
|
|
108
|
+
(0, child_process_1.execFileSync)(mmdcCommand, ["-i", inputPath, "-o", outputPath, "-b", "transparent"], {
|
|
109
|
+
stdio: "pipe",
|
|
110
|
+
});
|
|
92
111
|
const svg = fs_1.default.readFileSync(outputPath, "utf8");
|
|
93
112
|
return stripSvgProlog(svg);
|
|
94
113
|
}
|
|
@@ -114,7 +133,9 @@ function normalizeMermaidLabels(source) {
|
|
|
114
133
|
function renderMermaidToSvg(source) {
|
|
115
134
|
ensureMmdc();
|
|
116
135
|
const normalized = normalizeMermaidLabels(source);
|
|
117
|
-
const attempts = [
|
|
136
|
+
const attempts = [
|
|
137
|
+
{ text: source, normalized: false },
|
|
138
|
+
];
|
|
118
139
|
if (normalized !== source)
|
|
119
140
|
attempts.push({ text: normalized, normalized: true });
|
|
120
141
|
let lastError;
|
|
@@ -133,7 +154,9 @@ function renderMermaidToSvg(source) {
|
|
|
133
154
|
const suffix = normalizedTried ? " (auto label normalization attempted)" : "";
|
|
134
155
|
throw new Error(`${lastError.message}${suffix}`);
|
|
135
156
|
}
|
|
136
|
-
throw new Error(normalizedTried
|
|
157
|
+
throw new Error(normalizedTried
|
|
158
|
+
? "Failed to render mermaid diagram after label normalization."
|
|
159
|
+
: "Failed to render mermaid diagram.");
|
|
137
160
|
}
|
|
138
161
|
function preprocessMarkdown(markdown, options = {}) {
|
|
139
162
|
if (options.noMermaid)
|
|
@@ -166,6 +189,9 @@ function preprocessMarkdown(markdown, options = {}) {
|
|
|
166
189
|
const message = formatMermaidError(error);
|
|
167
190
|
logger(`Mermaid 块 #${index} 渲染失败,保持代码块原样。原因: ${message}`);
|
|
168
191
|
}
|
|
192
|
+
if (options.onMermaidError) {
|
|
193
|
+
options.onMermaidError(error);
|
|
194
|
+
}
|
|
169
195
|
return match;
|
|
170
196
|
}
|
|
171
197
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/docs/markdown.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/docs/markdown.ts"],"names":[],"mappings":"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"}
|