@cloudglab/yapi-cli 0.0.5 → 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.
- package/CHANGELOG.md +13 -0
- package/README.md +17 -2
- package/dist/cli.js +121 -23
- package/dist/cli.js.map +1 -1
- package/dist/core/cli-output.d.ts +1 -1
- package/dist/core/cli-output.js +114 -25
- package/dist/core/cli-output.js.map +1 -1
- package/dist/core/errors.js +36 -3
- package/dist/core/errors.js.map +1 -1
- package/dist/core/http-metrics.d.ts +31 -0
- package/dist/core/http-metrics.js +35 -0
- package/dist/core/http-metrics.js.map +1 -0
- package/dist/core/output.d.ts +18 -4
- package/dist/core/output.js +105 -22
- package/dist/core/output.js.map +1 -1
- package/dist/core/update-probe.d.ts +4 -1
- package/dist/core/update-probe.js +43 -2
- package/dist/core/update-probe.js.map +1 -1
- package/dist/core/url-parser.d.ts +20 -0
- package/dist/core/url-parser.js +237 -0
- package/dist/core/url-parser.js.map +1 -0
- package/dist/install.js +10 -1
- package/dist/install.js.map +1 -1
- package/dist/manifest.json +22 -2
- package/dist/services/yapi/api.d.ts +12 -1
- package/dist/services/yapi/api.js +96 -10
- package/dist/services/yapi/api.js.map +1 -1
- package/dist/tools/shared.d.ts +2 -2
- package/dist/tools/shared.js.map +1 -1
- package/dist/tools/yapi/register-auth.js +12 -12
- package/dist/tools/yapi/register-auth.js.map +1 -1
- package/dist/tools/yapi/register-group.js +16 -16
- package/dist/tools/yapi/register-group.js.map +1 -1
- package/dist/tools/yapi/register-interface.js +123 -55
- package/dist/tools/yapi/register-interface.js.map +1 -1
- package/dist/tools/yapi/register-project.js +92 -31
- package/dist/tools/yapi/register-project.js.map +1 -1
- package/dist/tools/yapi/register-test.js +11 -11
- package/dist/tools/yapi/register-test.js.map +1 -1
- package/dist/tools/yapi/register-util.js +124 -34
- package/dist/tools/yapi/register-util.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/docs/ai-cli-optimization-plan.md +412 -0
- package/package.json +1 -1
|
@@ -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"}
|
package/dist/core/output.d.ts
CHANGED
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* 统一输出渲染。
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
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
|
}
|
package/dist/core/output.js
CHANGED
|
@@ -1,13 +1,20 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* 统一输出渲染。
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
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 === '
|
|
42
|
-
return
|
|
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
|
-
|
|
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;
|
package/dist/core/output.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/core/output.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/core/output.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAMtD,MAAM,oBAAoB,GAAG,GAAG,CAAC;AACjC,MAAM,mBAAmB,GAAG,IAAI,CAAC;AACjC,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAC/B,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAE/B,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,QAAQ,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,wBAAwB,CAAC,IAAI,EAAE,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC;QACvF,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACtE,CAAC;IAED;;;;;;;OAOG;IACK,kBAAkB,CAAC,KAAc;QACvC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACrB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,OAAO,GAAG,iBAAiB,EAAE,CAAC;QACpC,IAAI,OAAO,CAAC,YAAY,IAAI,CAAC,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO;YACL,GAAG,KAAK;YACR,IAAI,EAAE;gBACJ,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ;aAC3B;SACF,CAAC;IACJ,CAAC;IAEO,uBAAuB;QAC7B,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACvD,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAEO,wBAAwB,CAAC,KAAc,EAAE,MAAwB;QACvE,MAAM,WAAW,GAAG,MAAM,KAAK,SAAS;YACtC,CAAC,CAAC,oBAAoB;YACtB,CAAC,CAAC,MAAM,KAAK,QAAQ;gBACnB,CAAC,CAAC,mBAAmB;gBACrB,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC;QAC/B,MAAM,UAAU,GAAG,MAAM,KAAK,SAAS;YACrC,CAAC,CAAC,mBAAmB;YACrB,CAAC,CAAC,MAAM,KAAK,QAAQ;gBACnB,CAAC,CAAC,kBAAkB;gBACpB,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC;QAE/B,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YAC1C,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,IAAI,KAAK,CAAC,MAAM,IAAI,WAAW,EAAE,CAAC;gBAChC,OAAO,KAAK,CAAC;YACf,CAAC;YAED,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,GAAG,CAAC;QAC3C,CAAC;QAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;YAC5D,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,wBAAwB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;YAEpG,IAAI,KAAK,CAAC,MAAM,GAAG,UAAU,EAAE,CAAC;gBAC9B,OAAO;oBACL,KAAK,EAAE,KAAK,CAAC,MAAM;oBACnB,KAAK;oBACL,SAAS,EAAE,IAAI;iBAChB,CAAC;YACJ,CAAC;YAED,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACpB,MAAM,UAAU,GAA4B,EAAE,CAAC;YAE/C,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAChD,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,wBAAwB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAChE,CAAC;YAED,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAEO,gBAAgB,CAAC,IAAa;QACpC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACpB,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;QAED,IACE,IAAI,CAAC,OAAO,KAAK,IAAI;eAClB,IAAI,CAAC,OAAO;eACZ,CAAC,IAAI,CAAC,KAAK;eACX,CAAC,IAAI,CAAC,QAAQ;eACd,CAAC,IAAI,CAAC,UAAU;eAChB,CAAC,IAAI,CAAC,UAAU;eAChB,CAAC,IAAI,CAAC,KAAK;eACX,CAAC,IAAI,CAAC,WAAW;eACjB,CAAC,IAAI,CAAC,IAAI;eACV,CAAC,IAAI,CAAC,OAAO;eACb,CAAC,IAAI,CAAC,IAAI;eACV,CAAC,IAAI,CAAC,MAAM;eACZ,IAAI,CAAC,WAAW,KAAK,MAAM;eAC3B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,EAChC,CAAC;YACD,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,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAC3C,OAAO,KAAK,IAAI,CAAC,OAAiB,EAAE,CAAC;QACvC,CAAC;QAED,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,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,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,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,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,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,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,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,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,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,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;QAED,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;QAED,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,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,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"}
|
|
@@ -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(
|
|
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;
|
|
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;
|