@cloudglab/yapi-cli 0.0.2 → 0.0.3

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 CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.0.3 - 2026-06-22
4
+
5
+ - 安装与初始化链路改为对齐 `zentao-cli` 的统一配置校验流程,避免 `npx -y @cloudglab/yapi-cli@latest install` 先装 skill 再因缺少 `--url` 直接失败。
6
+ - `install` 与 `config-init` 在交互终端下会统一引导输入 YApi 地址、登录用户名、登录密码和认证方式;非交互环境下会给出一致的显式传参提示。
7
+ - 同步修正文档中的安装示例与说明,去掉已经不再适用的旧参数写法。
8
+
3
9
  ## 0.0.2 - 2026-06-22
4
10
 
5
11
  - 新增按组懒加载与 `manifest` 机制,帮助、补全和命令执行更稳定。
package/README.md CHANGED
@@ -10,14 +10,14 @@
10
10
 
11
11
  - 默认 JSON 输出适合 AI / 脚本消费:统一走 `jsonResult`,并可切到 `pretty` 人类可读模式。
12
12
  - 新增内置命令:`doctor`、`changelog`、`completion`,补齐安装 / 更新 / 卸载 / 版本查看链路。
13
- - 配置文件按 `url/username/password/authMode` 收敛;初始化与安装时会让你选择普通登录还是 LDAP 登录,token 只保存在认证缓存里。
13
+ - 配置文件按 `url/username/password/authMode` 收敛;`install` / `config-init` 现在统一走配置校验流程:交互终端会逐步提示填写,非交互环境会明确要求显式传参,token 只保存在认证缓存里。
14
14
  - 命令层统一使用 `InMemoryCliRegistry + Zod schema + jsonResult`,便于 Agent 稳定调用。
15
15
  - 共享了分页、项目 ID、可选文本、布尔值和导出格式等 Zod 片段,减少重复定义。
16
16
  - API 客户端加入超时、重试和错误分层,遇到认证 / 网络 / 配置错误时可直接判断。
17
17
 
18
18
  ## 典型变化
19
19
 
20
- - **输出模式**:`yapi --json ...` 会返回 JSON 结果;默认模式在终端输出更适合人工阅读的文本。
20
+ - **输出模式**:`yapi <command> --json` 会返回 JSON 结果;默认模式在终端输出更适合人工阅读的文本。
21
21
  - **自检**:`yapi doctor --verbose` 可检查 Node 版本、配置、网络连通性和认证状态。
22
22
  - **版本记录**:`yapi changelog --limit 5`、`--version`、`--since`、`--raw` 都可用。
23
23
  - **补全**:`yapi completion bash|zsh|fish` 会生成对应 shell 的补全脚本。
@@ -33,10 +33,10 @@
33
33
  ### 推荐:一键安装 CLI + Skill
34
34
 
35
35
  ```bash
36
- npx -y yapi-cli@latest install
36
+ npx -y @cloudglab/yapi-cli@latest install
37
37
  ```
38
38
 
39
- 该命令会安装全局 CLI 和内置 Skill,并在配置缺失或登录失败时给出引导。配置完成后即可直接使用查询命令。
39
+ 该命令会安装全局 CLI 和内置 Skill。首次安装时,会先检查本机是否已有可用配置;如果没有,会在交互终端里逐步提示你输入 YApi 地址、登录用户名、登录密码和认证方式。
40
40
 
41
41
  如果需要重新安装 skill,可直接运行:
42
42
 
@@ -55,6 +55,7 @@ yapi update
55
55
  ```bash
56
56
  yapi help
57
57
  yapi list
58
+ yapi install
58
59
  yapi version --verbose
59
60
  yapi doctor
60
61
  yapi changelog --limit 5
@@ -62,6 +63,7 @@ yapi completion bash
62
63
  ```
63
64
 
64
65
  ```bash
66
+ yapi config-init
65
67
  yapi config-init --url https://yapi.example.com --username user@example.com --password secret --auth-mode native
66
68
  yapi config-init --url https://yapi.example.com --username user@example.com --password secret --auth-mode ldap
67
69
  yapi login
@@ -70,6 +72,8 @@ yapi login --email user@example.com --password secret --ldap true
70
72
  yapi whoami
71
73
  ```
72
74
 
75
+ 如果在 CI 或其他非交互环境中初始化配置,请显式传入 `--url`、`--username`、`--password`、`--auth-mode`。
76
+
73
77
  ```bash
74
78
  yapi group-list
75
79
  yapi project-list --project-id 1
@@ -1,3 +1,10 @@
1
1
  import type { YApiConfig } from '../services/yapi/types.js';
2
2
  export type YApiAuthMode = YApiConfig['authMode'];
3
+ export declare function isInteractive(): boolean;
4
+ export declare function resolveRequiredTextInput(value: string | undefined, options: {
5
+ context: string;
6
+ flag: string;
7
+ prompt: string;
8
+ normalize?: (input: string) => string;
9
+ }): Promise<string>;
3
10
  export declare function resolveAuthModeSelection(authMode: YApiAuthMode | undefined, context: string): Promise<YApiAuthMode>;
@@ -1,8 +1,31 @@
1
1
  import { createInterface } from 'node:readline/promises';
2
2
  import { stdin, stdout } from 'node:process';
3
- function isInteractive() {
3
+ export function isInteractive() {
4
4
  return stdin.isTTY && stdout.isTTY && process.env.CI !== 'true';
5
5
  }
6
+ export async function resolveRequiredTextInput(value, options) {
7
+ const normalize = options.normalize ?? ((input) => input.trim());
8
+ const currentValue = value?.trim();
9
+ if (currentValue) {
10
+ return normalize(currentValue);
11
+ }
12
+ if (!isInteractive()) {
13
+ throw new Error(`${options.context} 未提供 ${options.flag},请显式传 ${options.flag}`);
14
+ }
15
+ const rl = createInterface({ input: stdin, output: stdout });
16
+ try {
17
+ while (true) {
18
+ const answer = normalize(await rl.question(`${options.prompt}:`));
19
+ if (answer) {
20
+ return answer;
21
+ }
22
+ stdout.write(`${options.prompt} 不能为空,请重新输入。\n`);
23
+ }
24
+ }
25
+ finally {
26
+ rl.close();
27
+ }
28
+ }
6
29
  function normalizeAuthMode(value) {
7
30
  const normalized = value.trim().toLowerCase();
8
31
  if (normalized === '' || ['1', 'native', 'normal', '普通', '普通登录', '普通登录方式'].includes(normalized)) {
@@ -1 +1 @@
1
- {"version":3,"file":"auth-mode.js","sourceRoot":"","sources":["../../src/core/auth-mode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAK7C,SAAS,aAAa;IACpB,OAAO,KAAK,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,MAAM,CAAC;AAClE,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAa;IACtC,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAE9C,IAAI,UAAU,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAChG,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAC7D,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,QAAkC,EAAE,OAAe;IAChG,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAE9B,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,qDAAqD,CAAC,CAAC;IACnF,CAAC;IAED,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC7D,IAAI,CAAC;QACH,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,CAAC,KAAK,CAAC;gBACX,EAAE;gBACF,GAAG,OAAO,YAAY;gBACtB,gCAAgC;gBAChC,kCAAkC;aACnC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;YAErB,MAAM,MAAM,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC;YACxE,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"auth-mode.js","sourceRoot":"","sources":["../../src/core/auth-mode.ts"],"names":[],"mappings":"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"}
package/dist/install.d.ts CHANGED
@@ -3,10 +3,7 @@ export interface InstallOptions {
3
3
  skillOnly: boolean;
4
4
  skillPath?: string;
5
5
  yes: boolean;
6
- url?: string;
7
- username?: string;
8
- password?: string;
9
- authMode?: 'native' | 'ldap';
6
+ keepConfig: boolean;
10
7
  }
11
8
  export declare function parseInstallOptions(args: string[]): InstallOptions;
12
9
  export declare function runInstallCommand(args: string[], _appName?: string): Promise<void>;
package/dist/install.js CHANGED
@@ -1,8 +1,9 @@
1
1
  import { existsSync, mkdirSync, copyFileSync, unlinkSync } from 'node:fs';
2
2
  import { join, dirname } from 'node:path';
3
3
  import { fileURLToPath } from 'node:url';
4
+ import readline from 'node:readline';
4
5
  import { YAPI_HOME, saveConfig, loadConfig, maskConfig } from './services/yapi/config.js';
5
- import { resolveAuthModeSelection } from './core/auth-mode.js';
6
+ import { YApiAuthService, YApiService, encryptPassword } from './services/yapi/index.js';
6
7
  /** 获取当前模块目录(兼容 Node 18-20) */
7
8
  function getModuleDir(importMetaUrl) {
8
9
  return dirname(fileURLToPath(importMetaUrl));
@@ -17,6 +18,7 @@ export function parseInstallOptions(args) {
17
18
  cliOnly: false,
18
19
  skillOnly: false,
19
20
  yes: false,
21
+ keepConfig: false,
20
22
  };
21
23
  for (let index = 0; index < args.length; index += 1) {
22
24
  const token = args[index];
@@ -26,118 +28,165 @@ export function parseInstallOptions(args) {
26
28
  options.skillOnly = true;
27
29
  else if (token === '--yes' || token === '-y')
28
30
  options.yes = true;
31
+ else if (token === '--confirm')
32
+ options.yes = true;
33
+ else if (token === '--keep-config')
34
+ options.keepConfig = true;
29
35
  else if (token.startsWith('--skill-path='))
30
36
  options.skillPath = token.slice('--skill-path='.length);
31
37
  else if (token === '--skill-path') {
32
38
  options.skillPath = args[index + 1];
33
39
  index += 1;
34
40
  }
35
- else if (token.startsWith('--url='))
36
- options.url = token.slice('--url='.length);
37
- else if (token === '--url') {
38
- options.url = args[index + 1];
39
- index += 1;
40
- }
41
- else if (token.startsWith('--server='))
42
- options.url = token.slice('--server='.length);
43
- else if (token === '--server') {
44
- options.url = args[index + 1];
45
- index += 1;
46
- }
47
- else if (token.startsWith('--username='))
48
- options.username = token.slice('--username='.length);
49
- else if (token === '--username') {
50
- options.username = args[index + 1];
51
- index += 1;
52
- }
53
- else if (token.startsWith('--password='))
54
- options.password = token.slice('--password='.length);
55
- else if (token === '--password') {
56
- options.password = args[index + 1];
57
- index += 1;
58
- }
59
- else if (token.startsWith('--auth-mode='))
60
- options.authMode = token.slice('--auth-mode='.length);
61
- else if (token === '--auth-mode') {
62
- options.authMode = args[index + 1];
63
- index += 1;
64
- }
65
41
  else if (token.startsWith('--yes='))
66
42
  options.yes = parseBooleanFlag(token.slice('--yes='.length));
43
+ else if (token.startsWith('--confirm='))
44
+ options.yes = parseBooleanFlag(token.slice('--confirm='.length));
67
45
  else if (token.startsWith('--cli-only='))
68
46
  options.cliOnly = parseBooleanFlag(token.slice('--cli-only='.length));
69
47
  else if (token.startsWith('--skill-only='))
70
48
  options.skillOnly = parseBooleanFlag(token.slice('--skill-only='.length));
49
+ else if (token.startsWith('--keep-config='))
50
+ options.keepConfig = parseBooleanFlag(token.slice('--keep-config='.length));
51
+ else
52
+ throw new Error(`未知安装参数: ${token}`);
71
53
  }
72
54
  return options;
73
55
  }
74
- /** 安装 CLI 配置 */
75
- async function installCli(options) {
76
- const configFile = join(YAPI_HOME, 'config.json');
77
- let existingConfig = null;
78
- let existingConfigError = null;
79
- try {
80
- existingConfig = loadConfig();
56
+ function printSuccessGuide(action, status) {
57
+ process.stdout.write(`\n${action}完成,${status}\n\n`);
58
+ process.stdout.write([
59
+ '快速开始:',
60
+ ' yapi help 查看帮助',
61
+ ' yapi list 查看全部命令',
62
+ ' yapi whoami 校验当前账号',
63
+ ' yapi group-list 查看分组',
64
+ ' yapi project-list 查看项目',
65
+ '',
66
+ '常用配置:',
67
+ ' yapi update 更新 CLI 和 Skill',
68
+ ' yapi install --skill-only 仅安装 Skill',
69
+ ].join('\n') + '\n');
70
+ }
71
+ async function ensureValidYApiConfig() {
72
+ const { config: existing, error: loadError } = tryLoadConfig();
73
+ if (existing && await validateConfig(existing)) {
74
+ process.stdout.write(`\nYApi 配置校验通过:${JSON.stringify(maskConfig(existing))}\n`);
75
+ return;
81
76
  }
82
- catch (error) {
83
- existingConfigError = error instanceof Error ? error.message : String(error);
77
+ if (existing) {
78
+ process.stdout.write('\n检测到已有 YApi 配置,但登录校验失败,请重新输入。\n');
84
79
  }
85
- if (existsSync(configFile) && !options.yes) {
86
- process.stdout.write('配置文件已存在,使用 --yes/-y 覆盖\n');
87
- if (existingConfigError) {
88
- process.stdout.write(`检测到现有配置不可直接使用:${existingConfigError}\n`);
80
+ else if (loadError) {
81
+ process.stdout.write(`\n检测到 YApi 配置文件异常:${loadError.message}\n`);
82
+ if (!process.stdin.isTTY || !process.stdout.isTTY) {
83
+ throw loadError;
89
84
  }
90
- return;
91
85
  }
92
- const config = {};
93
- if (options.url) {
94
- config.url = options.url.replace(/\/+$/, '');
86
+ else {
87
+ process.stdout.write('\n未检测到可用 YApi 配置,请输入配置。\n');
95
88
  }
96
- else if (existingConfig?.url) {
97
- config.url = existingConfig.url;
89
+ const config = await promptForConfig(existing ?? undefined);
90
+ await validateConfigOrThrow(config);
91
+ saveConfig(config);
92
+ process.stdout.write(`已保存 YApi 配置:${JSON.stringify(maskConfig(config))}\n`);
93
+ }
94
+ function tryLoadConfig() {
95
+ try {
96
+ return { config: loadConfig() };
98
97
  }
99
- else {
100
- throw new Error('请提供 --url 参数指定 YApi 服务器地址');
98
+ catch (error) {
99
+ return {
100
+ config: null,
101
+ error: error instanceof Error ? error : new Error(String(error)),
102
+ };
101
103
  }
102
- if (options.username) {
103
- config.username = options.username;
104
+ }
105
+ async function validateConfig(config) {
106
+ try {
107
+ await validateConfigOrThrow(config);
108
+ return true;
104
109
  }
105
- else if (existingConfig?.username) {
106
- config.username = existingConfig.username;
110
+ catch {
111
+ return false;
107
112
  }
108
- if (options.password) {
109
- config.password = options.password;
113
+ }
114
+ async function validateConfigOrThrow(config) {
115
+ const auth = new YApiAuthService(YAPI_HOME);
116
+ const api = new YApiService(config.url, () => auth.getAuthHeaders(), () => auth.getToken() ?? '');
117
+ if (config.authMode === 'ldap') {
118
+ const result = await api.loginByLdap(config.username, encryptPassword(config.password));
119
+ auth.loginWithJwtCookie(result.token, result.username, result.uid);
110
120
  }
111
- else if (existingConfig?.password) {
112
- config.password = existingConfig.password;
121
+ else {
122
+ const result = await api.loginWithPassword(config.username, config.password);
123
+ auth.loginWithJwtCookie(result.token, result.username, result.uid);
113
124
  }
114
- if (options.authMode) {
115
- config.authMode = options.authMode;
125
+ await api.getLoginStatus();
126
+ }
127
+ async function promptForConfig(defaults) {
128
+ if (!process.stdin.isTTY || !process.stdout.isTTY) {
129
+ throw new Error('当前不是交互式终端,无法输入配置。请显式传 --url、--username、--password、--auth-mode 后重试。');
116
130
  }
117
- else if (existingConfig?.authMode) {
118
- config.authMode = existingConfig.authMode;
131
+ const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
132
+ try {
133
+ const url = (await ask(rl, 'YApi 地址', defaults?.url)).replace(/\/+$/, '');
134
+ const username = await ask(rl, '登录用户名', defaults?.username);
135
+ const password = await askPassword(rl, defaults?.password ? '登录密码(直接回车保留原密码)' : '登录密码');
136
+ const authMode = await askAuthMode(rl, defaults?.authMode);
137
+ return {
138
+ url,
139
+ username,
140
+ password: password || defaults?.password || '',
141
+ authMode,
142
+ };
119
143
  }
120
- else {
121
- config.authMode = await resolveAuthModeSelection(undefined, '安装');
144
+ finally {
145
+ rl.close();
122
146
  }
123
- if (!config.username || !config.password) {
124
- throw new Error('请提供 --username 和 --password');
147
+ }
148
+ async function askAuthMode(rl, defaultValue) {
149
+ const defaultLabel = defaultValue === 'ldap' ? '2' : '1';
150
+ while (true) {
151
+ process.stdout.write([
152
+ '',
153
+ '安装 需要选择登录方式:',
154
+ ' 1) native 普通登录(YApi 原生密码登录)',
155
+ ' 2) ldap LDAP 登录(需要 LDAP 账号)',
156
+ ].join('\n') + '\n');
157
+ const answer = await ask(rl, '请输入 1 或 2', defaultLabel);
158
+ if (answer === '1')
159
+ return 'native';
160
+ if (answer === '2')
161
+ return 'ldap';
162
+ process.stdout.write('输入无效,请重新输入 1 或 2。\n');
125
163
  }
126
- saveConfig(config);
127
- const masked = maskConfig(config);
128
- process.stdout.write([
129
- `配置已写入 ${YAPI_HOME}/config.json`,
130
- '',
131
- '当前配置:',
132
- ` - URL: ${masked.url}`,
133
- ` - 用户名: ${masked.username}`,
134
- ` - 密码: ${masked.password}`,
135
- ` - 认证方式: ${masked.authMode}`,
136
- '',
137
- '下一步:',
138
- ' - 校验当前账号:yapi whoami',
139
- ' - 查看全部命令:yapi list',
140
- ].join('\n') + '\n');
164
+ }
165
+ function ask(rl, label, defaultValue = '') {
166
+ const suffix = defaultValue ? ` [${defaultValue}]` : '';
167
+ return new Promise((resolve) => {
168
+ rl.question(`${label}${suffix}: `, (answer) => resolve(answer.trim() || defaultValue));
169
+ });
170
+ }
171
+ function askPassword(rl, label) {
172
+ const mutableRl = rl;
173
+ return new Promise((resolve) => {
174
+ mutableRl.stdoutMuted = true;
175
+ const originalWrite = mutableRl._writeToOutput?.bind(rl);
176
+ if (originalWrite) {
177
+ mutableRl._writeToOutput = (value) => {
178
+ originalWrite(mutableRl.stdoutMuted ? '*' : value);
179
+ };
180
+ }
181
+ mutableRl.question(`${label}: `, (answer) => {
182
+ mutableRl.stdoutMuted = false;
183
+ process.stdout.write('\n');
184
+ if (originalWrite) {
185
+ mutableRl._writeToOutput = originalWrite;
186
+ }
187
+ resolve(answer.trim());
188
+ });
189
+ });
141
190
  }
142
191
  /** 安装 Skill */
143
192
  function installSkill(options) {
@@ -177,43 +226,15 @@ function installSkill(options) {
177
226
  }
178
227
  process.stdout.write('未找到内置 skill 文件。可通过 --skill-path 指定路径\n');
179
228
  }
180
- /** 测试连接 */
181
- async function testConnection() {
182
- let config = null;
183
- try {
184
- config = loadConfig();
185
- }
186
- catch (error) {
187
- process.stdout.write(`⚠️ 跳过连接校验:${error instanceof Error ? error.message : String(error)}\n`);
188
- return;
189
- }
190
- if (!config) {
191
- process.stdout.write('跳过连接校验(未配置)\n');
192
- return;
193
- }
194
- try {
195
- const url = `${config.url}/api/user/status`;
196
- const response = await fetch(url);
197
- if (response.ok) {
198
- process.stdout.write('✅ 连接校验通过\n');
199
- }
200
- else {
201
- process.stdout.write(`⚠️ 连接校验返回 ${response.status},请检查 URL 或认证配置\n`);
202
- }
203
- }
204
- catch (error) {
205
- process.stdout.write(`⚠️ 连接校验失败: ${error instanceof Error ? error.message : String(error)}\n`);
206
- }
207
- }
208
229
  export async function runInstallCommand(args, _appName = 'yapi-cli') {
209
230
  const options = parseInstallOptions(args);
210
231
  if (!options.cliOnly) {
211
232
  installSkill(options);
212
233
  }
213
234
  if (!options.skillOnly) {
214
- await installCli(options);
235
+ await ensureValidYApiConfig();
215
236
  }
216
- await testConnection();
237
+ printSuccessGuide('安装', 'YApi 配置校验通过。');
217
238
  }
218
239
  export async function runUpdateCommand(args, _appName = 'yapi-cli') {
219
240
  const options = parseInstallOptions(args);
@@ -222,8 +243,9 @@ export async function runUpdateCommand(args, _appName = 'yapi-cli') {
222
243
  installSkill(options);
223
244
  }
224
245
  if (!options.skillOnly) {
225
- process.stdout.write('配置未变更;如需重写,请运行 `yapi install --url <url> --username <username> --password <password> -y`\n');
246
+ await ensureValidYApiConfig();
226
247
  }
248
+ printSuccessGuide('更新', 'YApi 配置校验通过。');
227
249
  }
228
250
  export async function runUninstallCommand(args, _appName = 'yapi-cli') {
229
251
  const options = parseInstallOptions(args);
@@ -238,7 +260,7 @@ export async function runUninstallCommand(args, _appName = 'yapi-cli') {
238
260
  process.stdout.write('未找到已安装的 skill\n');
239
261
  }
240
262
  }
241
- if (!options.skillOnly && options.yes) {
263
+ if (!options.skillOnly && options.yes && !options.keepConfig) {
242
264
  // 只有在 --yes 时才删除配置
243
265
  const configFile = join(YAPI_HOME, 'config.json');
244
266
  if (existsSync(configFile)) {
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1E,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC1F,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,8BAA8B;AAC9B,SAAS,YAAY,CAAC,aAAqB;IACzC,OAAO,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAyB;IACjD,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACrC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;AAClE,CAAC;AAaD,MAAM,UAAU,mBAAmB,CAAC,IAAc;IAChD,MAAM,OAAO,GAAmB;QAC9B,OAAO,EAAE,KAAK;QACd,SAAS,EAAE,KAAK;QAChB,GAAG,EAAE,KAAK;KACX,CAAC;IAEF,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACpD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,KAAK,KAAK,YAAY;YAAE,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;aAC9C,IAAI,KAAK,KAAK,cAAc;YAAE,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;aACvD,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;aAC5D,IAAI,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC;YAAE,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;aAC/F,IAAI,KAAK,KAAK,cAAc,EAAE,CAAC;YAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YAAC,KAAK,IAAI,CAAC,CAAC;QAAC,CAAC;aAClF,IAAI,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,OAAO,CAAC,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;aAC3E,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;YAAC,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YAAC,KAAK,IAAI,CAAC,CAAC;QAAC,CAAC;aACrE,IAAI,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC;YAAE,OAAO,CAAC,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;aACjF,IAAI,KAAK,KAAK,UAAU,EAAE,CAAC;YAAC,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YAAC,KAAK,IAAI,CAAC,CAAC;QAAC,CAAC;aACxE,IAAI,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC;YAAE,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;aAC1F,IAAI,KAAK,KAAK,YAAY,EAAE,CAAC;YAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YAAC,KAAK,IAAI,CAAC,CAAC;QAAC,CAAC;aAC/E,IAAI,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC;YAAE,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;aAC1F,IAAI,KAAK,KAAK,YAAY,EAAE,CAAC;YAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YAAC,KAAK,IAAI,CAAC,CAAC;QAAC,CAAC;aAC/E,IAAI,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC;YAAE,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAA+B,CAAC;aAC1H,IAAI,KAAK,KAAK,aAAa,EAAE,CAAC;YAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAA+B,CAAC;YAAC,KAAK,IAAI,CAAC,CAAC;QAAC,CAAC;aAC9G,IAAI,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,OAAO,CAAC,GAAG,GAAG,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;aAC7F,IAAI,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC;YAAE,OAAO,CAAC,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;aAC3G,IAAI,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC;YAAE,OAAO,CAAC,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;IACxH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,gBAAgB;AAChB,KAAK,UAAU,UAAU,CAAC,OAAuB;IAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IAClD,IAAI,cAAc,GAAG,IAAI,CAAC;IAC1B,IAAI,mBAAmB,GAAkB,IAAI,CAAC;IAE9C,IAAI,CAAC;QACH,cAAc,GAAG,UAAU,EAAE,CAAC;IAChC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,mBAAmB,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/E,CAAC;IAED,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QAC3C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;QACjD,IAAI,mBAAmB,EAAE,CAAC;YACxB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,mBAAmB,IAAI,CAAC,CAAC;QACjE,CAAC;QACD,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAA4B,EAAE,CAAC;IAE3C,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,MAAM,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC/C,CAAC;SAAM,IAAI,cAAc,EAAE,GAAG,EAAE,CAAC;QAC/B,MAAM,CAAC,GAAG,GAAG,cAAc,CAAC,GAAG,CAAC;IAClC,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IACrC,CAAC;SAAM,IAAI,cAAc,EAAE,QAAQ,EAAE,CAAC;QACpC,MAAM,CAAC,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAC;IAC5C,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IACrC,CAAC;SAAM,IAAI,cAAc,EAAE,QAAQ,EAAE,CAAC;QACpC,MAAM,CAAC,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAC;IAC5C,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IACrC,CAAC;SAAM,IAAI,cAAc,EAAE,QAAQ,EAAE,CAAC;QACpC,MAAM,CAAC,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAC;IAC5C,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,QAAQ,GAAG,MAAM,wBAAwB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACjD,CAAC;IAED,UAAU,CAAC,MAAa,CAAC,CAAC;IAC1B,MAAM,MAAM,GAAG,UAAU,CAAC,MAAa,CAAC,CAAC;IACzC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;QACnB,SAAS,SAAS,cAAc;QAChC,EAAE;QACF,OAAO;QACP,YAAY,MAAM,CAAC,GAAG,EAAE;QACxB,YAAY,MAAM,CAAC,QAAQ,EAAE;QAC7B,WAAW,MAAM,CAAC,QAAQ,EAAE;QAC5B,aAAa,MAAM,CAAC,QAAQ,EAAE;QAC9B,EAAE;QACF,MAAM;QACN,wBAAwB;QACxB,sBAAsB;KACvB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AACvB,CAAC;AAED,eAAe;AACf,SAAS,YAAY,CAAC,OAAuB;IAC3C,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChD,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;IAE5E,uCAAuC;IACvC,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;QACrD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;YACjC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAClD,CAAC;QACD,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACxC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,MAAM,IAAI,CAAC,CAAC;QAChD,OAAO;IACT,CAAC;IAED,sBAAsB;IACtB,MAAM,aAAa,GAAG;QACpB,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC;QACvD,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC;QAC7D,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC;KACtD,CAAC;IAEF,KAAK,MAAM,SAAS,IAAI,aAAa,EAAE,CAAC;QACtC,IAAI,CAAC;YACH,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;gBACrD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;oBACjC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBAClD,CAAC;gBACD,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;gBAChC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,MAAM,IAAI,CAAC,CAAC;gBAChD,OAAO;YACT,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;IACH,CAAC;IAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;AACjE,CAAC;AAED,WAAW;AACX,KAAK,UAAU,cAAc;IAC3B,IAAI,MAAM,GAAG,IAAI,CAAC;IAClB,IAAI,CAAC;QACH,MAAM,GAAG,UAAU,EAAE,CAAC;IACxB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/F,OAAO;IACT,CAAC;IACD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QACtC,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,GAAG,kBAAkB,CAAC;QAC5C,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;YAChB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,QAAQ,CAAC,MAAM,kBAAkB,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClG,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAAc,EAAE,QAAQ,GAAG,UAAU;IAC3E,MAAM,OAAO,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAE1C,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACrB,YAAY,CAAC,OAAO,CAAC,CAAC;IACxB,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QACvB,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAED,MAAM,cAAc,EAAE,CAAC;AACzB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAc,EAAE,QAAQ,GAAG,UAAU;IAC1E,MAAM,OAAO,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAE1C,8BAA8B;IAC9B,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACrB,YAAY,CAAC,OAAO,CAAC,CAAC;IACxB,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QACvB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,4FAA4F,CAAC,CAAC;IACrH,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,IAAc,EAAE,QAAQ,GAAG,UAAU;IAC7E,MAAM,OAAO,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAE1C,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;IAE5E,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACrB,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;QACxD,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1B,UAAU,CAAC,SAAS,CAAC,CAAC;YACtB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QACtC,mBAAmB;QACnB,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QAClD,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3B,UAAU,CAAC,UAAU,CAAC,CAAC;YACvB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.0.2",
2
+ "version": "0.0.3",
3
3
  "groups": [
4
4
  "util",
5
5
  "interface",
@@ -1,12 +1,12 @@
1
1
  import { z } from 'zod';
2
- import { resolveAuthModeSelection } from '../../core/auth-mode.js';
2
+ import { isInteractive, resolveAuthModeSelection, resolveRequiredTextInput } from '../../core/auth-mode.js';
3
3
  import { CliConfigError, CliValidationError } from '../../core/errors.js';
4
4
  import { jsonResult, optionalTrimmedText } from '../shared.js';
5
5
  import { saveConfig, hasConfig, loadConfig, YAPI_HOME, YApiAuthService, YApiService, encryptPassword } from '../../services/yapi/index.js';
6
6
  export function registerAuthCommands(registry) {
7
7
  // ==================== 配置初始化 ====================
8
8
  registry.tool('config-init', {
9
- url: z.string().describe('YApi 服务器地址(如 https://yapi.example.com)'),
9
+ url: optionalTrimmedText.describe('YApi 服务器地址(如 https://yapi.example.com)'),
10
10
  username: optionalTrimmedText.describe('登录用户名(通常是邮箱)'),
11
11
  password: optionalTrimmedText.describe('登录密码'),
12
12
  authMode: z.enum(['native', 'ldap']).optional().describe('认证方式(native/ldap)'),
@@ -14,14 +14,30 @@ export function registerAuthCommands(registry) {
14
14
  if (hasConfig()) {
15
15
  throw new CliConfigError('配置文件已存在,如需重新配置请先删除 ~/.yapi/config.json');
16
16
  }
17
- if (!input.username || !input.password) {
18
- throw new CliValidationError('请提供 --username + --password');
17
+ if (!isInteractive() && (!input.url || !input.username || !input.password || !input.authMode)) {
18
+ throw new CliValidationError('当前不是交互式终端,无法输入配置。请显式传 --url、--username、--password、--auth-mode 后重试。');
19
19
  }
20
+ const url = await resolveRequiredTextInput(input.url, {
21
+ context: '配置初始化',
22
+ flag: '--url',
23
+ prompt: '请输入 YApi 服务器地址',
24
+ normalize: (value) => value.trim().replace(/\/+$/, ''),
25
+ });
26
+ const username = await resolveRequiredTextInput(input.username, {
27
+ context: '配置初始化',
28
+ flag: '--username',
29
+ prompt: '请输入登录用户名',
30
+ });
31
+ const password = await resolveRequiredTextInput(input.password, {
32
+ context: '配置初始化',
33
+ flag: '--password',
34
+ prompt: '请输入登录密码(输入可见)',
35
+ });
20
36
  const authMode = await resolveAuthModeSelection(input.authMode, '配置初始化');
21
37
  const config = {
22
- url: input.url.replace(/\/+$/, ''),
23
- username: input.username,
24
- password: input.password,
38
+ url,
39
+ username,
40
+ password,
25
41
  authMode,
26
42
  };
27
43
  saveConfig(config);
@@ -1 +1 @@
1
- {"version":3,"file":"register-auth.js","sourceRoot":"","sources":["../../../src/tools/yapi/register-auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"register-auth.js","sourceRoot":"","sources":["../../../src/tools/yapi/register-auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAC5G,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAG3I,MAAM,UAAU,oBAAoB,CAAC,QAAqB;IACxD,kDAAkD;IAClD,QAAQ,CAAC,IAAI,CACX,aAAa,EACb;QACE,GAAG,EAAE,mBAAmB,CAAC,QAAQ,CAAC,wCAAwC,CAAC;QAC3E,QAAQ,EAAE,mBAAmB,CAAC,QAAQ,CAAC,cAAc,CAAC;QACtD,QAAQ,EAAE,mBAAmB,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC9C,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;KAC9E,EACD,KAAK,EAAE,KAAK,EAAE,EAAE;QACd,IAAI,SAAS,EAAE,EAAE,CAAC;YAChB,MAAM,IAAI,cAAc,CACtB,wCAAwC,CACzC,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9F,MAAM,IAAI,kBAAkB,CAAC,oEAAoE,CAAC,CAAC;QACrG,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,wBAAwB,CAAC,KAAK,CAAC,GAAG,EAAE;YACpD,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,gBAAgB;YACxB,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;SACvD,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAM,wBAAwB,CAAC,KAAK,CAAC,QAAQ,EAAE;YAC9D,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,YAAY;YAClB,MAAM,EAAE,UAAU;SACnB,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAM,wBAAwB,CAAC,KAAK,CAAC,QAAQ,EAAE;YAC9D,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,YAAY;YAClB,MAAM,EAAE,eAAe;SACxB,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAM,wBAAwB,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAEzE,MAAM,MAAM,GAAG;YACb,GAAG;YACH,QAAQ;YACR,QAAQ;YACR,QAAQ;SACT,CAAC;QAEF,UAAU,CAAC,MAAM,CAAC,CAAC;QAEnB,OAAO,UAAU,CAAC;YAChB,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B,CAAC,CAAC;IACL,CAAC,EACD,iBAAiB,EACjB;QACE,QAAQ,EAAE,KAAK;QACf,aAAa,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;KACnC,CACF,CAAC;IAEF,+CAA+C;IAC/C,QAAQ,CAAC,IAAI,CACX,OAAO,EACP;QACE,KAAK,EAAE,mBAAmB,CAAC,QAAQ,CAAC,2BAA2B,CAAC;QAChE,QAAQ,EAAE,mBAAmB,CAAC,QAAQ,CAAC,yBAAyB,CAAC;QACjE,KAAK,EAAE,mBAAmB,CAAC,QAAQ,CAAC,6BAA6B,CAAC;QAClE,QAAQ,EAAE,mBAAmB,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QACxD,GAAG,EAAE,mBAAmB,CAAC,QAAQ,CAAC,oBAAoB,CAAC;QACvD,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,yCAAyC,CAAC;KACvG,EACD,KAAK,EAAE,KAAK,EAAE,EAAE;QACd,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;QAC5B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,cAAc,CAAC,+BAA+B,CAAC,CAAC;QAC5D,CAAC;QAED,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAChB,MAAM,IAAI,GAAG,IAAI,eAAe,CAAC,SAAS,CAAC,CAAC;YAC5C,kEAAkE;YAClE,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACpD,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;YACrD,OAAO,UAAU,CAAC;gBAChB,MAAM,EAAE,OAAO;gBACf,QAAQ,EAAE,IAAI;aACf,CAAC,CAAC;QACL,CAAC;QAED,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,KAAK,IAAI,MAAM,CAAC,QAAQ,CAAC;QAClE,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC;QAEnD,IAAI,QAAQ,IAAI,QAAQ,EAAE,CAAC;YACzB,MAAM,IAAI,GAAG,IAAI,eAAe,CAAC,SAAS,CAAC,CAAC;YAC5C,MAAM,GAAG,GAAG,IAAI,WAAW,CACzB,MAAM,CAAC,GAAG,EACV,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,EAC3B,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,CAC5B,CAAC;YAEF,IAAI,KAAK,CAAC,IAAI,IAAI,MAAM,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;gBAC7C,0BAA0B;gBAC1B,MAAM,SAAS,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;gBAC5C,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;gBAC9D,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;gBAC/E,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBAC3B,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBAC3B,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC;gBACzB,UAAU,CAAC,MAAM,CAAC,CAAC;gBACnB,OAAO,UAAU,CAAC;oBAChB,MAAM,EAAE,MAAM;oBACd,QAAQ,EAAE,UAAU,CAAC,QAAQ;iBAC9B,CAAC,CAAC;YACL,CAAC;YAED,SAAS;YACT,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAC/D,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;YACnE,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAC3B,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAC3B,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAC3B,UAAU,CAAC,MAAM,CAAC,CAAC;YACnB,OAAO,UAAU,CAAC;gBAChB,MAAM,EAAE,UAAU;gBAClB,QAAQ,EAAE,MAAM,CAAC,QAAQ;aAC1B,CAAC,CAAC;QACL,CAAC;QAED,MAAM,IAAI,kBAAkB,CAAC,+CAA+C,CAAC,CAAC;IAChF,CAAC,EACD,iBAAiB,EACjB;QACE,QAAQ,EAAE,KAAK;QACf,aAAa,EAAE,CAAC,QAAQ,EAAE,cAAc,EAAE,YAAY,CAAC;KACxD,CACF,CAAC;IAEF,+CAA+C;IAC/C,QAAQ,CAAC,IAAI,CACX,QAAQ,EACR,EAAE,EACF,KAAK,IAAI,EAAE;QACT,MAAM,IAAI,GAAG,IAAI,eAAe,CAAC,SAAS,CAAC,CAAC;QAC5C,IAAI,cAAc,GAAG,KAAK,CAAC;QAC3B,IAAI,iBAAqC,CAAC;QAE1C,kBAAkB;QAClB,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;QAC5B,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,IAAI,WAAW,CAC7B,MAAM,CAAC,GAAG,EACV,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,EAC3B,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,CAC5B,CAAC;gBACF,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;gBAC1C,cAAc,GAAG,MAAM,CAAC,OAAO,KAAK,CAAC,CAAC;gBACtC,IAAI,CAAC,cAAc,EAAE,CAAC;oBACpB,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC;gBACpC,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,iBAAiB,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACvE,CAAC;QACH,CAAC;QAED,YAAY;QACZ,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,OAAO,UAAU,CAAC;YAChB,OAAO,EAAE,KAAK;YACd,YAAY,EAAE,cAAc;YAC5B,iBAAiB;SAClB,CAAC,CAAC;IACL,CAAC,EACD,2BAA2B,EAC3B;QACE,QAAQ,EAAE,KAAK;QACf,aAAa,EAAE,CAAC,OAAO,CAAC;KACzB,CACF,CAAC;IAEF,mDAAmD;IACnD,QAAQ,CAAC,IAAI,CACX,QAAQ,EACR,EAAE,EACF,KAAK,IAAI,EAAE;QACT,MAAM,IAAI,GAAG,IAAI,eAAe,CAAC,SAAS,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;QAE5B,YAAY;QACZ,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,IAAI,WAAW,CAC7B,MAAM,CAAC,GAAG,EACV,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,EAC3B,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,CAC5B,CAAC;gBACF,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,cAAc,EAAE,CAAC;gBAC9C,OAAO,UAAU,CAAC;oBAChB,QAAQ,EAAE,IAAI;oBACd,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,QAAQ,IAAI,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ;oBACnE,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,IAAI,IAAI;oBACjC,MAAM,EAAE,MAAM,CAAC,GAAG;oBAClB,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,UAAU,EAAE,IAAI;iBACjB,CAAC,CAAC;YACL,CAAC;YAAC,MAAM,CAAC;gBACP,iBAAiB;YACnB,CAAC;QACH,CAAC;QAED,aAAa;QACb,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,OAAO,UAAU,CAAC;gBAChB,QAAQ,EAAE,IAAI;gBACd,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,KAAK,EAAE,IAAI;gBACX,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,IAAI;gBAC3B,QAAQ,EAAE,MAAM,EAAE,QAAQ,IAAI,QAAQ;gBACtC,UAAU,EAAE,CAAC,CAAC,MAAM;aACrB,CAAC,CAAC;QACL,CAAC;QAED,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,UAAU,CAAC;gBAChB,QAAQ,EAAE,KAAK;gBACf,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,KAAK,EAAE,IAAI;gBACX,MAAM,EAAE,MAAM,CAAC,GAAG;gBAClB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,UAAU,EAAE,IAAI;gBAChB,OAAO,EAAE,qBAAqB;aAC/B,CAAC,CAAC;QACL,CAAC;QAED,MAAM,IAAI,cAAc,CAAC,UAAU,EAAE,oCAAoC,CAAC,CAAC;IAC7E,CAAC,EACD,aAAa,EACb;QACE,QAAQ,EAAE,KAAK;QACf,aAAa,EAAE,CAAC,YAAY,EAAE,cAAc,CAAC;KAC9C,CACF,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,KAAa;IAClC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAEvC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAA8B,CAAC;QAC9G,IAAI,OAAO,CAAC,GAAG,KAAK,SAAS,IAAI,OAAO,CAAC,GAAG,KAAK,IAAI;YAAE,OAAO,SAAS,CAAC;QACxE,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
package/dist/version.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const CLI_VERSION = "0.0.2";
1
+ export declare const CLI_VERSION = "0.0.3";
package/dist/version.js CHANGED
@@ -1,2 +1,2 @@
1
- export const CLI_VERSION = '0.0.2';
1
+ export const CLI_VERSION = '0.0.3';
2
2
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cloudglab/yapi-cli",
3
- "version": "0.0.2",
3
+ "version": "0.0.3",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -4,7 +4,7 @@
4
4
 
5
5
  在调用任何认证或用户管理命令前,先判断用户意图:
6
6
 
7
- 1. **配置初始化** → 新用户首次使用,需要 `--url` + `--username` + `--password`,可选 `--auth-mode`
7
+ 1. **配置初始化** → 新用户首次使用,可直接运行 `config-init` 交互填写,也可显式传 `--url` + `--username` + `--password` + `--auth-mode`
8
8
  2. **登录** → 区分 token 登录 vs 密码登录(普通 native / LDAP)
9
9
  3. **查看当前用户** → `whoami`,不需要参数
10
10
  4. **用户管理** → 管理员操作,需要确认是否有权限
@@ -23,7 +23,7 @@ yapi config-init --url https://yapi.example.com --username user@example.com --pa
23
23
  - `--password`:登录密码
24
24
  - `--auth-mode`:认证方式,支持 `native` / `ldap`
25
25
 
26
- 如果不传 `--auth-mode`,`install` / `config-init` 会在交互终端里提示你选择:普通登录还是 LDAP 登录。
26
+ 如果不传 `--url`、`--username`、`--password`、`--auth-mode`,`install` / `config-init` 会在交互终端里逐步提示你填写;其中 `auth-mode` 会引导你选择普通登录还是 LDAP 登录。
27
27
 
28
28
  ### Token 登录
29
29
 
@@ -12,7 +12,7 @@
12
12
 
13
13
  | 场景 | 命令 | 用法 | 说明 |
14
14
  | --- | --- | --- | --- |
15
- | 初始化配置 | `config-init` | `yapi config-init --url <url> --username <u> --password <p> [--authMode native]` | 首次使用必做 |
15
+ | 初始化配置 | `config-init` | `yapi config-init [--url <url>] [--username <u>] [--password <p>] [--auth-mode native]` | 首次使用必做;缺参时可交互填写 |
16
16
  | Token 登录 | `login` | `yapi login --token <t>` | 用 token 认证 |
17
17
  | 密码登录 | `login` | `yapi login [--username <u>] [--email <e>] [--password <p>] [--ldap true]` | 不带参数时使用配置文件 |
18
18
  | Token 快捷登录 | `login-by-token` | `yapi login-by-token --token <t>` | 纯 token 登录 |
@@ -6,12 +6,10 @@
6
6
 
7
7
  ```bash
8
8
  yapi install
9
- yapi install --url https://yapi.example.com --username user@example.com --password secret
10
- yapi install --url https://yapi.example.com --username user@example.com --password secret --auth-mode ldap
11
9
  npx -y @cloudglab/yapi-cli@latest install
12
10
  ```
13
11
 
14
- 如果不传 `--auth-mode`,`install` 会在交互终端里提示你选择:`native` 普通登录,或 `ldap` 登录。
12
+ `install` 会在交互终端里逐步提示你填写 YApi 地址、登录用户名、登录密码和认证方式;`auth-mode` 会引导你选择 `native` 普通登录或 `ldap` 登录。
15
13
 
16
14
  仅 skill:
17
15
 
@@ -22,16 +20,14 @@ yapi install --skill-only
22
20
  仅 CLI 配置:
23
21
 
24
22
  ```bash
25
- yapi install --cli-only --url https://yapi.example.com --username user@example.com --password secret --auth-mode native
23
+ yapi install --cli-only
26
24
  ```
27
25
 
28
- 从源码安装 skill:
26
+ 从本地文件安装 skill:
29
27
 
30
28
  ```bash
31
- yapi install --skill-source git
32
- #
33
- npx -y @cloudglab/yapi-cli@latest install --skill-source git
34
- npx -y @cloudglab/yapi-cli@latest install --skill-local-path ./package
29
+ yapi install --skill-path ./SKILL.md
30
+ npx -y @cloudglab/yapi-cli@latest install --skill-path ./SKILL.md
35
31
  ```
36
32
 
37
33
  ## 更新
@@ -40,7 +36,6 @@ npx -y @cloudglab/yapi-cli@latest install --skill-local-path ./package
40
36
  yapi update
41
37
  yapi update --cli-only
42
38
  yapi update --skill-only
43
- yapi update --skip-config-check
44
39
  ```
45
40
 
46
41
  更新会先检查 npm 版本,再刷新本地 skill。