@cloudglab/yapi-cli 0.0.4 → 0.0.7

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 (45) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/README.md +22 -4
  3. package/dist/cli.js +121 -23
  4. package/dist/cli.js.map +1 -1
  5. package/dist/core/cli-output.d.ts +1 -1
  6. package/dist/core/cli-output.js +114 -25
  7. package/dist/core/cli-output.js.map +1 -1
  8. package/dist/core/errors.js +36 -3
  9. package/dist/core/errors.js.map +1 -1
  10. package/dist/core/http-metrics.d.ts +31 -0
  11. package/dist/core/http-metrics.js +35 -0
  12. package/dist/core/http-metrics.js.map +1 -0
  13. package/dist/core/output.d.ts +18 -4
  14. package/dist/core/output.js +105 -22
  15. package/dist/core/output.js.map +1 -1
  16. package/dist/core/update-probe.d.ts +4 -1
  17. package/dist/core/update-probe.js +43 -2
  18. package/dist/core/update-probe.js.map +1 -1
  19. package/dist/core/url-parser.d.ts +20 -0
  20. package/dist/core/url-parser.js +237 -0
  21. package/dist/core/url-parser.js.map +1 -0
  22. package/dist/install.js +334 -108
  23. package/dist/install.js.map +1 -1
  24. package/dist/manifest.json +22 -2
  25. package/dist/services/yapi/api.d.ts +12 -1
  26. package/dist/services/yapi/api.js +96 -10
  27. package/dist/services/yapi/api.js.map +1 -1
  28. package/dist/tools/shared.d.ts +2 -2
  29. package/dist/tools/shared.js.map +1 -1
  30. package/dist/tools/yapi/register-auth.js +12 -12
  31. package/dist/tools/yapi/register-auth.js.map +1 -1
  32. package/dist/tools/yapi/register-group.js +16 -16
  33. package/dist/tools/yapi/register-group.js.map +1 -1
  34. package/dist/tools/yapi/register-interface.js +123 -55
  35. package/dist/tools/yapi/register-interface.js.map +1 -1
  36. package/dist/tools/yapi/register-project.js +92 -31
  37. package/dist/tools/yapi/register-project.js.map +1 -1
  38. package/dist/tools/yapi/register-test.js +11 -11
  39. package/dist/tools/yapi/register-test.js.map +1 -1
  40. package/dist/tools/yapi/register-util.js +124 -34
  41. package/dist/tools/yapi/register-util.js.map +1 -1
  42. package/dist/version.d.ts +1 -1
  43. package/dist/version.js +1 -1
  44. package/docs/ai-cli-optimization-plan.md +412 -0
  45. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/core/errors.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,OAAO,QAAS,SAAQ,KAAK;IACjC,YACE,OAAe,EACN,WAAmB,CAAC,EACpB,IAAa,EACb,IAAa;QAEtB,KAAK,CAAC,OAAO,CAAC,CAAC;QAJN,aAAQ,GAAR,QAAQ,CAAY;QACpB,SAAI,GAAJ,IAAI,CAAS;QACb,SAAI,GAAJ,IAAI,CAAS;QAGtB,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;IACzB,CAAC;CACF;AAED,2BAA2B;AAC3B,MAAM,OAAO,kBAAmB,SAAQ,QAAQ;IAC9C,YAAY,OAAO,GAAG,MAAM,EAAE,IAAa;QACzC,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,kBAAkB,EAAE,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AAED,2BAA2B;AAC3B,MAAM,OAAO,YAAa,SAAQ,QAAQ;IACxC,YAAY,OAAO,GAAG,YAAY,EAAE,IAAa;QAC/C,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;CACF;AAED,YAAY;AACZ,MAAM,OAAO,gBAAiB,SAAQ,QAAQ;IAC5C,YAAY,OAAO,GAAG,KAAK,EAAE,IAAa;QACxC,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF;AAED,kBAAkB;AAClB,MAAM,OAAO,cAAe,SAAQ,QAAQ;IAC1C,YAAY,OAAO,GAAG,MAAM,EAAE,IAAa;QACzC,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IAC/B,CAAC;CACF;AAED,WAAW;AACX,MAAM,OAAO,eAAgB,SAAQ,QAAQ;IAC3C,YAAY,OAAO,GAAG,MAAM,EAAE,IAAa;QACzC,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,eAAe,EAAE,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AAED,2BAA2B;AAC3B,MAAM,OAAO,WAAY,SAAQ,QAAQ;IACvC,YAAY,OAAe,EAAW,UAAmB,EAAE,IAAa;QACtE,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;QADF,eAAU,GAAV,UAAU,CAAS;QAEvD,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;IAC5B,CAAC;CACF;AAED,gDAAgD;AAChD,MAAM,UAAU,cAAc,CAAC,GAAY;IACzC,IAAI,GAAG,YAAY,QAAQ,EAAE,CAAC;QAC5B,OAAO,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;QAChC,IAAI,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC;QACtB,IAAI,GAAG,CAAC,IAAI;YAAE,GAAG,IAAI,SAAS,GAAG,CAAC,IAAI,EAAE,CAAC;QACzC,OAAO,GAAG,CAAC;IACb,CAAC;IACD,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;QACzB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO,GAAG,CAAC,OAAO,CAAC;IACrB,CAAC;IACD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACrB,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/core/errors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * 进程级 HTTP 请求指标。
3
+ *
4
+ * 设计目的:
5
+ * - 业务命令一次调用通常会发多个 HTTP 请求(列表、详情、用户信息等)
6
+ * - 输出 JSON 时自动注入 `meta.requestCount/durationMs/cacheHit`,
7
+ * 让 AI 或脚本能直接判断这次调用有多贵、是否命中了缓存
8
+ *
9
+ * 状态是进程级,CLI 一次执行内累计;
10
+ * 在 `cli.ts` 顶层 `runCli()` 开始时调用 `resetRequestMetrics()` 清零。
11
+ */
12
+ export interface RequestMetricSample {
13
+ /** 本次请求的耗时(毫秒) */
14
+ durationMs: number;
15
+ /** 本次请求是否命中缓存 */
16
+ cacheHit?: boolean;
17
+ }
18
+ export interface RequestMetrics {
19
+ /** 本次 CLI 执行累计的请求数 */
20
+ requestCount: number;
21
+ /** 最近一次请求的耗时(毫秒) */
22
+ durationMs: number;
23
+ /** 最近一次请求是否命中缓存 */
24
+ cacheHit: boolean;
25
+ }
26
+ /** 记录一次请求的耗时与缓存命中状态。 */
27
+ export declare function recordRequest(sample: RequestMetricSample): void;
28
+ /** 获取当前累计指标快照。 */
29
+ export declare function getRequestMetrics(): RequestMetrics;
30
+ /** 清零累计指标。一般在 CLI 入口处、每次执行开始时调用。 */
31
+ export declare function resetRequestMetrics(): void;
@@ -0,0 +1,35 @@
1
+ /**
2
+ * 进程级 HTTP 请求指标。
3
+ *
4
+ * 设计目的:
5
+ * - 业务命令一次调用通常会发多个 HTTP 请求(列表、详情、用户信息等)
6
+ * - 输出 JSON 时自动注入 `meta.requestCount/durationMs/cacheHit`,
7
+ * 让 AI 或脚本能直接判断这次调用有多贵、是否命中了缓存
8
+ *
9
+ * 状态是进程级,CLI 一次执行内累计;
10
+ * 在 `cli.ts` 顶层 `runCli()` 开始时调用 `resetRequestMetrics()` 清零。
11
+ */
12
+ let _requestCount = 0;
13
+ let _lastDurationMs = 0;
14
+ let _lastCacheHit = false;
15
+ /** 记录一次请求的耗时与缓存命中状态。 */
16
+ export function recordRequest(sample) {
17
+ _requestCount += 1;
18
+ _lastDurationMs = sample.durationMs;
19
+ _lastCacheHit = sample.cacheHit ?? false;
20
+ }
21
+ /** 获取当前累计指标快照。 */
22
+ export function getRequestMetrics() {
23
+ return {
24
+ requestCount: _requestCount,
25
+ durationMs: _lastDurationMs,
26
+ cacheHit: _lastCacheHit,
27
+ };
28
+ }
29
+ /** 清零累计指标。一般在 CLI 入口处、每次执行开始时调用。 */
30
+ export function resetRequestMetrics() {
31
+ _requestCount = 0;
32
+ _lastDurationMs = 0;
33
+ _lastCacheHit = false;
34
+ }
35
+ //# sourceMappingURL=http-metrics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-metrics.js","sourceRoot":"","sources":["../../src/core/http-metrics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAkBH,IAAI,aAAa,GAAG,CAAC,CAAC;AACtB,IAAI,eAAe,GAAG,CAAC,CAAC;AACxB,IAAI,aAAa,GAAG,KAAK,CAAC;AAE1B,wBAAwB;AACxB,MAAM,UAAU,aAAa,CAAC,MAA2B;IACvD,aAAa,IAAI,CAAC,CAAC;IACnB,eAAe,GAAG,MAAM,CAAC,UAAU,CAAC;IACpC,aAAa,GAAG,MAAM,CAAC,QAAQ,IAAI,KAAK,CAAC;AAC3C,CAAC;AAED,kBAAkB;AAClB,MAAM,UAAU,iBAAiB;IAC/B,OAAO;QACL,YAAY,EAAE,aAAa;QAC3B,UAAU,EAAE,eAAe;QAC3B,QAAQ,EAAE,aAAa;KACxB,CAAC;AACJ,CAAC;AAED,oCAAoC;AACpC,MAAM,UAAU,mBAAmB;IACjC,aAAa,GAAG,CAAC,CAAC;IAClB,eAAe,GAAG,CAAC,CAAC;IACpB,aAAa,GAAG,KAAK,CAAC;AACxB,CAAC"}
@@ -1,15 +1,17 @@
1
1
  /**
2
2
  * 统一输出渲染。
3
3
  *
4
- * 支持两种模式:
5
- * json JSON 输出(默认,MCP 协议兼容)
6
- * pretty 人类友好格式(列表、表格、颜色标记)
4
+ * 支持多种模式:
5
+ * compact 面向 AI 的精简 JSON
6
+ * normal 保留主要字段的 JSON
7
+ * verbose — 完整 JSON
8
+ * pretty — 人类友好格式(列表、表格、颜色标记)
7
9
  *
8
10
  * 所有命令 handler 统一通过 `output.result(data)` 返回,
9
11
  * 由 OutputFormatter 根据格式模式渲染。
10
12
  */
11
13
  import type { JsonContentResult } from './cli-registry.js';
12
- export type OutputFormat = 'json' | 'pretty';
14
+ export type OutputFormat = 'json' | 'compact' | 'normal' | 'verbose' | 'pretty';
13
15
  export declare class OutputFormatter {
14
16
  readonly format: OutputFormat;
15
17
  private readonly appName;
@@ -22,6 +24,18 @@ export declare class OutputFormatter {
22
24
  printMessage(msg: string): void;
23
25
  /** 将数据格式化为字符串 */
24
26
  private formatData;
27
+ /**
28
+ * 当输出为非 pretty 的结构化模式且数据本身是普通对象时,
29
+ * 自动注入 `meta.requestCount / durationMs / cacheHit`,方便 AI 与脚本
30
+ * 直接判断本次调用的成本和缓存命中情况。
31
+ *
32
+ * 仅在确实发生过 HTTP 请求(`requestCount > 0`)时注入 meta,
33
+ * 避免给 `help` / `version` 等本地命令增加噪声。
34
+ */
35
+ private injectMetaIfNeeded;
36
+ private resolveStructuredFormat;
37
+ private normalizeStructuredValue;
38
+ private formatPrettyData;
25
39
  private renderTable;
26
40
  private renderObject;
27
41
  }
@@ -1,13 +1,20 @@
1
1
  /**
2
2
  * 统一输出渲染。
3
3
  *
4
- * 支持两种模式:
5
- * json JSON 输出(默认,MCP 协议兼容)
6
- * pretty 人类友好格式(列表、表格、颜色标记)
4
+ * 支持多种模式:
5
+ * compact 面向 AI 的精简 JSON
6
+ * normal 保留主要字段的 JSON
7
+ * verbose — 完整 JSON
8
+ * pretty — 人类友好格式(列表、表格、颜色标记)
7
9
  *
8
10
  * 所有命令 handler 统一通过 `output.result(data)` 返回,
9
11
  * 由 OutputFormatter 根据格式模式渲染。
10
12
  */
13
+ import { getRequestMetrics } from './http-metrics.js';
14
+ const COMPACT_STRING_LIMIT = 600;
15
+ const NORMAL_STRING_LIMIT = 2000;
16
+ const COMPACT_ARRAY_LIMIT = 20;
17
+ const NORMAL_ARRAY_LIMIT = 100;
11
18
  export class OutputFormatter {
12
19
  constructor(format = 'json', appName = 'yapi-cli') {
13
20
  this.format = format;
@@ -38,14 +45,104 @@ export class OutputFormatter {
38
45
  }
39
46
  /** 将数据格式化为字符串 */
40
47
  formatData(data) {
41
- if (this.format === 'json') {
42
- return JSON.stringify(data, null, 2);
48
+ if (this.format === 'pretty') {
49
+ return this.formatPrettyData(data);
50
+ }
51
+ const normalized = this.normalizeStructuredValue(data, this.resolveStructuredFormat());
52
+ return JSON.stringify(this.injectMetaIfNeeded(normalized), null, 2);
53
+ }
54
+ /**
55
+ * 当输出为非 pretty 的结构化模式且数据本身是普通对象时,
56
+ * 自动注入 `meta.requestCount / durationMs / cacheHit`,方便 AI 与脚本
57
+ * 直接判断本次调用的成本和缓存命中情况。
58
+ *
59
+ * 仅在确实发生过 HTTP 请求(`requestCount > 0`)时注入 meta,
60
+ * 避免给 `help` / `version` 等本地命令增加噪声。
61
+ */
62
+ injectMetaIfNeeded(value) {
63
+ if (!isRecord(value)) {
64
+ return value;
65
+ }
66
+ const metrics = getRequestMetrics();
67
+ if (metrics.requestCount <= 0) {
68
+ return value;
69
+ }
70
+ return {
71
+ ...value,
72
+ meta: {
73
+ requestCount: metrics.requestCount,
74
+ durationMs: metrics.durationMs,
75
+ cacheHit: metrics.cacheHit,
76
+ },
77
+ };
78
+ }
79
+ resolveStructuredFormat() {
80
+ if (this.format === 'json' || this.format === 'pretty') {
81
+ return 'verbose';
43
82
  }
83
+ return this.format;
84
+ }
85
+ normalizeStructuredValue(value, format) {
86
+ const stringLimit = format === 'compact'
87
+ ? COMPACT_STRING_LIMIT
88
+ : format === 'normal'
89
+ ? NORMAL_STRING_LIMIT
90
+ : Number.POSITIVE_INFINITY;
91
+ const arrayLimit = format === 'compact'
92
+ ? COMPACT_ARRAY_LIMIT
93
+ : format === 'normal'
94
+ ? NORMAL_ARRAY_LIMIT
95
+ : Number.POSITIVE_INFINITY;
96
+ if (value === null || value === undefined) {
97
+ return value;
98
+ }
99
+ if (typeof value === 'string') {
100
+ if (value.length <= stringLimit) {
101
+ return value;
102
+ }
103
+ return `${value.slice(0, stringLimit)}…`;
104
+ }
105
+ if (typeof value === 'number' || typeof value === 'boolean') {
106
+ return value;
107
+ }
108
+ if (Array.isArray(value)) {
109
+ const items = value.slice(0, arrayLimit).map((item) => this.normalizeStructuredValue(item, format));
110
+ if (value.length > arrayLimit) {
111
+ return {
112
+ total: value.length,
113
+ items,
114
+ truncated: true,
115
+ };
116
+ }
117
+ return items;
118
+ }
119
+ if (isRecord(value)) {
120
+ const normalized = {};
121
+ for (const [key, item] of Object.entries(value)) {
122
+ normalized[key] = this.normalizeStructuredValue(item, format);
123
+ }
124
+ return normalized;
125
+ }
126
+ return String(value);
127
+ }
128
+ formatPrettyData(data) {
44
129
  if (!isRecord(data)) {
45
130
  return String(data);
46
131
  }
47
- // 纯成功消息
48
- if (data.success === true && data.message && !data.items && !data.projects && !data.interfaces && !data.categories && !data.users && !data.collections && !data.envs && !data.members && !data.logs && !data.groups && data.constructor === Object && Object.keys(data).length <= 3) {
132
+ if (data.success === true
133
+ && data.message
134
+ && !data.items
135
+ && !data.projects
136
+ && !data.interfaces
137
+ && !data.categories
138
+ && !data.users
139
+ && !data.collections
140
+ && !data.envs
141
+ && !data.members
142
+ && !data.logs
143
+ && !data.groups
144
+ && data.constructor === Object
145
+ && Object.keys(data).length <= 3) {
49
146
  return data.message;
50
147
  }
51
148
  if (looksLikeConfigSummary(data)) {
@@ -72,11 +169,9 @@ export class OutputFormatter {
72
169
  message: data.message ?? '-',
73
170
  });
74
171
  }
75
- // 错误消息
76
172
  if (data.success === false && data.message) {
77
173
  return `✗ ${data.message}`;
78
174
  }
79
- // 项目列表
80
175
  if (data.projects && Array.isArray(data.projects)) {
81
176
  return this.renderTable(['ID', '名称', '路径前缀', '分组 ID', '类型'], data.projects.map((p) => [
82
177
  String(p.id ?? ''),
@@ -86,7 +181,6 @@ export class OutputFormatter {
86
181
  String(p.projectType ?? ''),
87
182
  ]), `项目列表 (共 ${data.total ?? data.projects.length} 个)`);
88
183
  }
89
- // 接口列表
90
184
  if (data.interfaces && Array.isArray(data.interfaces)) {
91
185
  return this.renderTable(['ID', '方法', '路径', '标题', '状态'], data.interfaces.map((i) => [
92
186
  String(i.id ?? ''),
@@ -96,7 +190,6 @@ export class OutputFormatter {
96
190
  String(i.status ?? ''),
97
191
  ]), `接口列表 (共 ${data.total ?? data.interfaces.length} 个)`);
98
192
  }
99
- // 搜索结果
100
193
  if (data.items && Array.isArray(data.items)) {
101
194
  return this.renderTable(['ID', '方法', '路径', '标题', '项目'], data.items.map((i) => [
102
195
  String(i.id ?? ''),
@@ -106,7 +199,6 @@ export class OutputFormatter {
106
199
  String(i.projectName ?? ''),
107
200
  ]), `搜索结果 (共 ${data.total ?? data.items.length} 个)`);
108
201
  }
109
- // 分组列表
110
202
  if (data.groups && Array.isArray(data.groups)) {
111
203
  return this.renderTable(['ID', '名称', '项目数'], data.groups.map((g) => [
112
204
  String(g.id ?? ''),
@@ -114,7 +206,6 @@ export class OutputFormatter {
114
206
  String(g.projectCount ?? ''),
115
207
  ]), `分组列表 (共 ${data.groups.length} 个)`);
116
208
  }
117
- // 分类列表
118
209
  if (data.categories && Array.isArray(data.categories)) {
119
210
  return this.renderTable(['ID', '名称', '接口数'], data.categories.map((c) => [
120
211
  String(c.id ?? ''),
@@ -122,7 +213,6 @@ export class OutputFormatter {
122
213
  String(c.interfaceCount ?? ''),
123
214
  ]), `分类列表 (共 ${data.categories.length} 个)`);
124
215
  }
125
- // 用户列表
126
216
  if (data.users && Array.isArray(data.users)) {
127
217
  return this.renderTable(['ID', '用户名', '邮箱', '角色'], data.users.map((u) => [
128
218
  String(u.id ?? ''),
@@ -131,15 +221,13 @@ export class OutputFormatter {
131
221
  String(u.role ?? ''),
132
222
  ]), `用户列表 (共 ${data.total ?? data.users.length} 个)`);
133
223
  }
134
- // 环境列表
135
224
  if (data.envs && Array.isArray(data.envs)) {
136
225
  return this.renderTable(['ID', '名称', '域名'], data.envs.map((e) => [
137
226
  String(e.id ?? ''),
138
227
  String(e.name ?? ''),
139
228
  String(e.domain ?? ''),
140
- ]), `环境列表`);
229
+ ]), '环境列表');
141
230
  }
142
- // 成员列表
143
231
  if (data.members && Array.isArray(data.members)) {
144
232
  return this.renderTable(['ID', '用户名', '邮箱', '角色'], data.members.map((m) => [
145
233
  String(m.id ?? ''),
@@ -148,14 +236,12 @@ export class OutputFormatter {
148
236
  String(m.role ?? ''),
149
237
  ]), `成员列表 (共 ${data.members.length} 个)`);
150
238
  }
151
- // 集合列表
152
239
  if (data.collections && Array.isArray(data.collections)) {
153
240
  return this.renderTable(['ID', '名称'], data.collections.map((c) => [
154
241
  String(c.id ?? ''),
155
242
  String(c.name ?? ''),
156
243
  ]), `集合列表 (共 ${data.collections.length} 个)`);
157
244
  }
158
- // 日志列表
159
245
  if (data.logs && Array.isArray(data.logs)) {
160
246
  return this.renderTable(['时间', '用户', '类型', '内容'], data.logs.map((l) => [
161
247
  l.time ? formatTimestamp(l.time) : '',
@@ -164,7 +250,6 @@ export class OutputFormatter {
164
250
  String(String(l.content ?? '').slice(0, 60)),
165
251
  ]), `日志 (共 ${data.total ?? data.logs.length} 条)`);
166
252
  }
167
- // 用户详情 / 项目详情 / 接口详情等单对象
168
253
  if (data.user && isRecord(data.user)) {
169
254
  return this.renderObject('用户信息', data.user);
170
255
  }
@@ -174,7 +259,6 @@ export class OutputFormatter {
174
259
  if (data.interface && isRecord(data.interface)) {
175
260
  return this.renderObject('接口详情', data.interface);
176
261
  }
177
- // 兜底:JSON
178
262
  return JSON.stringify(data, null, 2);
179
263
  }
180
264
  renderTable(headers, rows, title) {
@@ -183,7 +267,6 @@ export class OutputFormatter {
183
267
  lines.push(title);
184
268
  if (title)
185
269
  lines.push('');
186
- // 计算列宽
187
270
  const colWidths = headers.map((h, i) => {
188
271
  const maxData = rows.reduce((w, r) => Math.max(w, r[i]?.length ?? 0), 0);
189
272
  return Math.max(h.length, maxData) + 2;
@@ -1 +1 @@
1
- {"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/core/output.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH,MAAM,OAAO,eAAe;IAC1B,YACW,SAAuB,MAAM,EACrB,UAAU,UAAU;QAD5B,WAAM,GAAN,MAAM,CAAuB;QACrB,YAAO,GAAP,OAAO,CAAa;IACpC,CAAC;IAEJ,+BAA+B;IAC/B,MAAM,CAAC,IAAa;QAClB,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;iBAC5B;aACF;SACF,CAAC;IACJ,CAAC;IAED,oCAAoC;IACpC,UAAU,CAAC,GAAY;QACrB,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,OAAO,IAAI,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,wBAAwB;IACxB,YAAY,CAAC,GAAW;QACtB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,iBAAiB;IACT,UAAU,CAAC,IAAa;QAC9B,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACvC,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACpB,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;QAED,QAAQ;QACR,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW,KAAK,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACpR,OAAO,IAAI,CAAC,OAAiB,CAAC;QAChC,CAAC;QAED,IAAI,sBAAsB,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;gBAC/B,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB,CAAC,CAAC;QACL,CAAC;QAED,IAAI,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;gBAC/B,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,OAAO;aACnC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;gBAC/B,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,GAAG;gBAC9B,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,GAAG;gBACxB,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,GAAG;gBAC1B,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,GAAG;gBAC9B,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,GAAG;aAC7B,CAAC,CAAC;QACL,CAAC;QAED,OAAO;QACP,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAC3C,OAAO,KAAK,IAAI,CAAC,OAAiB,EAAE,CAAC;QACvC,CAAC;QAED,OAAO;QACP,IAAI,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAClD,OAAO,IAAI,CAAC,WAAW,CACrB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,EACnC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAA0B,EAAE,EAAE,CAAC;gBAChD,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;gBAClB,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;gBACpB,MAAM,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC;gBACxB,MAAM,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC;gBACvB,MAAM,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC;aAC5B,CAAC,EACF,WAAW,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CACnD,CAAC;QACJ,CAAC;QAED,OAAO;QACP,IAAI,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACtD,OAAO,IAAI,CAAC,WAAW,CACrB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAC9B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAA0B,EAAE,EAAE,CAAC;gBAClD,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;gBAClB,MAAM,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC;gBACtB,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;gBACpB,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBACrB,MAAM,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC;aACvB,CAAC,EACF,WAAW,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CACrD,CAAC;QACJ,CAAC;QAED,OAAO;QACP,IAAI,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5C,OAAO,IAAI,CAAC,WAAW,CACrB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAC9B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAA0B,EAAE,EAAE,CAAC;gBAC7C,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;gBAClB,MAAM,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC;gBACtB,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;gBACpB,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBACrB,MAAM,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC;aAC5B,CAAC,EACF,WAAW,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAChD,CAAC;QACJ,CAAC;QAED,OAAO;QACP,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9C,OAAO,IAAI,CAAC,WAAW,CACrB,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,EACnB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAA0B,EAAE,EAAE,CAAC;gBAC9C,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;gBAClB,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;gBACpB,MAAM,CAAC,CAAC,CAAC,YAAY,IAAI,EAAE,CAAC;aAC7B,CAAC,EACF,WAAW,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CACnC,CAAC;QACJ,CAAC;QAED,OAAO;QACP,IAAI,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACtD,OAAO,IAAI,CAAC,WAAW,CACrB,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,EACnB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAA0B,EAAE,EAAE,CAAC;gBAClD,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;gBAClB,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;gBACpB,MAAM,CAAC,CAAC,CAAC,cAAc,IAAI,EAAE,CAAC;aAC/B,CAAC,EACF,WAAW,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CACvC,CAAC;QACJ,CAAC;QAED,OAAO;QACP,IAAI,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5C,OAAO,IAAI,CAAC,WAAW,CACrB,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,EACzB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAA0B,EAAE,EAAE,CAAC;gBAC7C,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;gBAClB,MAAM,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC;gBACxB,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBACrB,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;aACrB,CAAC,EACF,WAAW,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAChD,CAAC;QACJ,CAAC;QAED,OAAO;QACP,IAAI,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1C,OAAO,IAAI,CAAC,WAAW,CACrB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAClB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAA0B,EAAE,EAAE,CAAC;gBAC5C,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;gBAClB,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;gBACpB,MAAM,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC;aACvB,CAAC,EACF,MAAM,CACP,CAAC;QACJ,CAAC;QAED,OAAO;QACP,IAAI,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAChD,OAAO,IAAI,CAAC,WAAW,CACrB,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,EACzB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAA0B,EAAE,EAAE,CAAC;gBAC/C,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;gBAClB,MAAM,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC;gBACxB,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBACrB,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;aACrB,CAAC,EACF,WAAW,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CACpC,CAAC;QACJ,CAAC;QAED,OAAO;QACP,IAAI,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YACxD,OAAO,IAAI,CAAC,WAAW,CACrB,CAAC,IAAI,EAAE,IAAI,CAAC,EACZ,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAA0B,EAAE,EAAE,CAAC;gBACnD,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;gBAClB,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;aACrB,CAAC,EACF,WAAW,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CACxC,CAAC;QACJ,CAAC;QAED,OAAO;QACP,IAAI,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1C,OAAO,IAAI,CAAC,WAAW,CACrB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EACxB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAA0B,EAAE,EAAE,CAAC;gBAC5C,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAc,CAAC,CAAC,CAAC,CAAC,EAAE;gBAC/C,MAAM,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC;gBACxB,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;gBACpB,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;aAC7C,CAAC,EACF,SAAS,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAC7C,CAAC;QACJ,CAAC;QAED,yBAAyB;QACzB,IAAI,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACrC,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,IAA+B,CAAC,CAAC;QACzE,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3C,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,OAAkC,CAAC,CAAC;QAC5E,CAAC;QACD,IAAI,IAAI,CAAC,SAAS,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YAC/C,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,SAAoC,CAAC,CAAC;QAC9E,CAAC;QAED,UAAU;QACV,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACvC,CAAC;IAEO,WAAW,CAAC,OAAiB,EAAE,IAAgB,EAAE,KAAc;QACrE,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,IAAI,KAAK;YAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAI,KAAK;YAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAE1B,OAAO;QACP,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACrC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACzE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAErE,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QACjE,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAEO,YAAY,CAAC,KAAa,EAAE,GAA4B;QAC9D,MAAM,KAAK,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QACrE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/C,MAAM,GAAG,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;YAC/B,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;QACnD,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;CACF;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,sBAAsB,CAAC,IAA6B;IAC3D,OAAO,KAAK,IAAI,IAAI,IAAI,UAAU,IAAI,IAAI,IAAI,UAAU,IAAI,IAAI,IAAI,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC;AACnH,CAAC;AAED,SAAS,qBAAqB,CAAC,IAA6B;IAC1D,OAAO,QAAQ,IAAI,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,IAAI,SAAS,IAAI,IAAI,CAAC,CAAC;AACvE,CAAC;AAED,SAAS,eAAe,CAAC,IAA6B;IACpD,OAAO,UAAU,IAAI,IAAI,IAAI,YAAY,IAAI,IAAI,CAAC;AACpD,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,GAAG,CAAC;IACtD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACpC,OAAO,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;IAC/B,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC1E,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAED,SAAS,eAAe,CAAC,EAAU;IACjC,IAAI,CAAC;QACH,OAAO,IAAI,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC1E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC;IACpB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/core/output.ts"],"names":[],"mappings":"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"}
@@ -4,11 +4,14 @@ export interface UpdateInfo {
4
4
  isUpdateAvailable: boolean;
5
5
  packageName: string;
6
6
  error?: string;
7
+ checkedAt?: string;
7
8
  }
8
9
  /**
9
10
  * 检查 npm registry 是否有更新版本。
10
11
  * 不抛错 — 失败时静默返回当前版本。
11
12
  */
12
- export declare function checkForUpdates(): UpdateInfo;
13
+ export declare function checkForUpdates(options?: {
14
+ force?: boolean;
15
+ }): UpdateInfo;
13
16
  /** 获取 npm install 更新命令提示 */
14
17
  export declare function getUpdateSuggestion(updateInfo: UpdateInfo, isGlobal?: boolean): string;
@@ -1,8 +1,11 @@
1
1
  import { execSync } from 'node:child_process';
2
- import { readFileSync } from 'node:fs';
2
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
3
+ import { homedir } from 'node:os';
3
4
  import { fileURLToPath } from 'node:url';
4
5
  import { dirname, join } from 'node:path';
5
6
  import { CLI_VERSION } from '../version.js';
7
+ const UPDATE_CACHE_MAX_AGE_MS = 24 * 60 * 60 * 1000;
8
+ const UPDATE_CACHE_PATH = join(homedir(), '.yapi', 'update-check.json');
6
9
  /** 从 package.json 读取包名 */
7
10
  function getPackageName() {
8
11
  try {
@@ -18,13 +21,18 @@ function getPackageName() {
18
21
  * 检查 npm registry 是否有更新版本。
19
22
  * 不抛错 — 失败时静默返回当前版本。
20
23
  */
21
- export function checkForUpdates() {
24
+ export function checkForUpdates(options) {
22
25
  const packageName = getPackageName();
26
+ const cached = options?.force ? null : readCachedUpdateInfo(packageName);
27
+ if (cached) {
28
+ return cached;
29
+ }
23
30
  const result = {
24
31
  currentVersion: CLI_VERSION,
25
32
  latestVersion: null,
26
33
  isUpdateAvailable: false,
27
34
  packageName,
35
+ checkedAt: new Date().toISOString(),
28
36
  };
29
37
  try {
30
38
  const stdout = execSync(`npm view ${packageName} version 2>/dev/null || true`, {
@@ -45,6 +53,7 @@ export function checkForUpdates() {
45
53
  // 静默失败 — 可能未发布、无网络等
46
54
  result.error = '无法检查更新(可能未发布到 npm registry)';
47
55
  }
56
+ writeCachedUpdateInfo(result);
48
57
  return result;
49
58
  }
50
59
  /** 获取 npm install 更新命令提示 */
@@ -64,4 +73,36 @@ function detectPackageManager() {
64
73
  return 'yarn';
65
74
  return 'npm';
66
75
  }
76
+ function readCachedUpdateInfo(packageName) {
77
+ try {
78
+ if (!existsSync(UPDATE_CACHE_PATH)) {
79
+ return null;
80
+ }
81
+ const raw = readFileSync(UPDATE_CACHE_PATH, 'utf-8');
82
+ const cached = JSON.parse(raw);
83
+ if (!cached.checkedAt) {
84
+ return null;
85
+ }
86
+ const age = Date.now() - Date.parse(cached.checkedAt);
87
+ if (!Number.isFinite(age) || age > UPDATE_CACHE_MAX_AGE_MS) {
88
+ return null;
89
+ }
90
+ if (cached.currentVersion !== CLI_VERSION || cached.packageName !== packageName) {
91
+ return null;
92
+ }
93
+ return cached;
94
+ }
95
+ catch {
96
+ return null;
97
+ }
98
+ }
99
+ function writeCachedUpdateInfo(info) {
100
+ try {
101
+ mkdirSync(dirname(UPDATE_CACHE_PATH), { recursive: true });
102
+ writeFileSync(UPDATE_CACHE_PATH, JSON.stringify(info, null, 2));
103
+ }
104
+ catch {
105
+ // 忽略缓存写入失败,避免影响主流程
106
+ }
107
+ }
67
108
  //# sourceMappingURL=update-probe.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"update-probe.js","sourceRoot":"","sources":["../../src/core/update-probe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAU5C,0BAA0B;AAC1B,SAAS,cAAc;IACrB,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;QAC1F,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QACvD,OAAO,GAAG,CAAC,IAAI,IAAI,UAAU,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,UAAU,CAAC;IACpB,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe;IAC7B,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,MAAM,GAAe;QACzB,cAAc,EAAE,WAAW;QAC3B,aAAa,EAAE,IAAI;QACnB,iBAAiB,EAAE,KAAK;QACxB,WAAW;KACZ,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,QAAQ,CAAC,YAAY,WAAW,8BAA8B,EAAE;YAC7E,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;SACpC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,CAAC;QAC9B,IAAI,MAAM,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;YACrC,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC;YAC9B,MAAM,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAClC,CAAC;aAAM,IAAI,MAAM,EAAE,CAAC;YAClB,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC;QAChC,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,oBAAoB;QACpB,MAAM,CAAC,KAAK,GAAG,6BAA6B,CAAC;IAC/C,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,4BAA4B;AAC5B,MAAM,UAAU,mBAAmB,CAAC,UAAsB,EAAE,QAAQ,GAAG,IAAI;IACzE,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC;QAClC,OAAO,QAAQ,UAAU,CAAC,cAAc,QAAQ,CAAC;IACnD,CAAC;IAED,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IACrC,MAAM,EAAE,GAAG,oBAAoB,EAAE,CAAC;IAElC,OAAO,SAAS,UAAU,CAAC,cAAc,MAAM,UAAU,CAAC,aAAa,WAAW,EAAE,YAAY,MAAM,GAAG,UAAU,CAAC,WAAW,SAAS,CAAC;AAC3I,CAAC;AAED,SAAS,oBAAoB;IAC3B,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,EAAE,CAAC;IAC1D,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IAC9C,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IAC9C,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"update-probe.js","sourceRoot":"","sources":["../../src/core/update-probe.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ export type YApiRouteKind = 'home' | 'login' | 'group-list' | 'group-detail' | 'project-detail' | 'interface-list' | 'interface-detail' | 'category-detail' | 'collection-detail' | 'case-detail' | 'project-activity' | 'project-data' | 'project-members' | 'project-setting' | 'project-wiki' | 'user-list' | 'user-profile' | 'follow' | 'add-project' | 'statistic' | 'unknown';
2
+ export interface ParsedYApiUrl {
3
+ url: string;
4
+ matchedServer: boolean;
5
+ configuredBaseUrl: string | null;
6
+ normalizedPath: string;
7
+ routeKind: YApiRouteKind;
8
+ params: Record<string, string | number>;
9
+ primaryCommand: string | null;
10
+ suggestedCommands: string[];
11
+ note?: string;
12
+ }
13
+ export interface ParsedYApiUrlCommand {
14
+ commandName: string;
15
+ commandArgs: string[];
16
+ displayCommand: string;
17
+ }
18
+ export declare function looksLikeHttpUrl(value: string): boolean;
19
+ export declare function parseYApiPageUrl(rawUrl: string, configuredBaseUrl?: string | null): ParsedYApiUrl;
20
+ export declare function resolveParsedYApiUrlCommand(parsed: ParsedYApiUrl): ParsedYApiUrlCommand | null;