okit-cli 2.1.0 → 2.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +103 -139
- package/dist/commands/auth.d.ts +4 -0
- package/dist/commands/auth.d.ts.map +1 -0
- package/dist/commands/auth.js +134 -0
- package/dist/commands/auth.js.map +1 -0
- package/dist/commands/check.d.ts +2 -0
- package/dist/commands/check.d.ts.map +1 -1
- package/dist/commands/check.js +122 -29
- package/dist/commands/check.js.map +1 -1
- package/dist/commands/menu.d.ts.map +1 -1
- package/dist/commands/menu.js +5 -0
- package/dist/commands/menu.js.map +1 -1
- package/dist/commands/profile.d.ts +18 -0
- package/dist/commands/profile.d.ts.map +1 -0
- package/dist/commands/profile.js +409 -0
- package/dist/commands/profile.js.map +1 -0
- package/dist/commands/relay.d.ts +14 -0
- package/dist/commands/relay.d.ts.map +1 -0
- package/dist/commands/relay.js +263 -0
- package/dist/commands/relay.js.map +1 -0
- package/dist/commands/repo.js +0 -16
- package/dist/commands/repo.js.map +1 -1
- package/dist/commands/uninstall.d.ts.map +1 -1
- package/dist/commands/uninstall.js +21 -72
- package/dist/commands/uninstall.js.map +1 -1
- package/dist/commands/upgrade.d.ts +1 -3
- package/dist/commands/upgrade.d.ts.map +1 -1
- package/dist/commands/upgrade.js +45 -110
- package/dist/commands/upgrade.js.map +1 -1
- package/dist/commands/vault.d.ts +14 -0
- package/dist/commands/vault.d.ts.map +1 -0
- package/dist/commands/vault.js +255 -0
- package/dist/commands/vault.js.map +1 -0
- package/dist/config/i18n.d.ts +71 -0
- package/dist/config/i18n.d.ts.map +1 -1
- package/dist/config/i18n.js +150 -0
- package/dist/config/i18n.js.map +1 -1
- package/dist/config/registry.d.ts +14 -6
- package/dist/config/registry.d.ts.map +1 -1
- package/dist/config/registry.js +638 -68
- package/dist/config/registry.js.map +1 -1
- package/dist/config/user.d.ts +4 -0
- package/dist/config/user.d.ts.map +1 -1
- package/dist/config/user.js +1 -0
- package/dist/config/user.js.map +1 -1
- package/dist/executor/deps/BrewDependencyProvider.d.ts.map +1 -1
- package/dist/executor/deps/BrewDependencyProvider.js +4 -2
- package/dist/executor/deps/BrewDependencyProvider.js.map +1 -1
- package/dist/executor/deps/NpmDependencyProvider.d.ts.map +1 -1
- package/dist/executor/deps/NpmDependencyProvider.js +4 -2
- package/dist/executor/deps/NpmDependencyProvider.js.map +1 -1
- package/dist/executor/deps/PipxDependencyProvider.d.ts.map +1 -1
- package/dist/executor/deps/PipxDependencyProvider.js +4 -2
- package/dist/executor/deps/PipxDependencyProvider.js.map +1 -1
- package/dist/executor/deps/UvToolDependencyProvider.d.ts.map +1 -1
- package/dist/executor/deps/UvToolDependencyProvider.js +4 -2
- package/dist/executor/deps/UvToolDependencyProvider.js.map +1 -1
- package/dist/executor/plan/registryDeps.d.ts.map +1 -1
- package/dist/executor/plan/registryDeps.js +13 -5
- package/dist/executor/plan/registryDeps.js.map +1 -1
- package/dist/executor/runner.d.ts.map +1 -1
- package/dist/executor/runner.js +11 -9
- package/dist/executor/runner.js.map +1 -1
- package/dist/main.js +194 -4
- package/dist/main.js.map +1 -1
- package/dist/relay/client.d.ts +29 -0
- package/dist/relay/client.d.ts.map +1 -0
- package/dist/relay/client.js +209 -0
- package/dist/relay/client.js.map +1 -0
- package/dist/utils/semver.d.ts +12 -0
- package/dist/utils/semver.d.ts.map +1 -0
- package/dist/utils/semver.js +71 -0
- package/dist/utils/semver.js.map +1 -0
- package/dist/vault/store.d.ts +51 -0
- package/dist/vault/store.d.ts.map +1 -0
- package/dist/vault/store.js +260 -0
- package/dist/vault/store.js.map +1 -0
- package/package.json +11 -4
package/README.md
CHANGED
|
@@ -1,218 +1,182 @@
|
|
|
1
1
|
# OKIT
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Agent 基础设施运维工具,集中管理工具安装、授权、密钥与中继连接,消除 Agent 执行中断。
|
|
4
4
|
|
|
5
5
|
适合场景:
|
|
6
|
-
-
|
|
7
|
-
-
|
|
8
|
-
-
|
|
6
|
+
- Agent 运行时自动安装缺失的 CLI 工具
|
|
7
|
+
- 统一管理 API Key,按项目注入环境变量
|
|
8
|
+
- 通过中继服务器让外部 Agent 访问本地服务
|
|
9
|
+
- 团队共享工具配置 Profile
|
|
9
10
|
|
|
10
11
|
---
|
|
11
12
|
|
|
12
|
-
##
|
|
13
|
+
## 安装
|
|
14
|
+
|
|
15
|
+
**NPM(推荐)**:
|
|
13
16
|
|
|
14
17
|
```bash
|
|
15
|
-
|
|
18
|
+
npm install -g okit-cli
|
|
16
19
|
```
|
|
17
20
|
|
|
18
|
-
|
|
21
|
+
**脚本安装**:
|
|
19
22
|
|
|
20
23
|
```bash
|
|
21
|
-
okit
|
|
24
|
+
curl -fsSL https://raw.githubusercontent.com/dolphin-molt/okit/refs/heads/main/install.sh | bash
|
|
22
25
|
```
|
|
23
26
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
## 重要说明
|
|
27
|
+
安装完成后:
|
|
27
28
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
- 默认使用 HTTPS 下载 Release 二进制。
|
|
29
|
+
```bash
|
|
30
|
+
okit
|
|
31
|
+
```
|
|
32
32
|
|
|
33
33
|
---
|
|
34
34
|
|
|
35
35
|
## 常用命令
|
|
36
36
|
|
|
37
37
|
```bash
|
|
38
|
-
okit
|
|
39
|
-
okit
|
|
40
|
-
okit
|
|
41
|
-
okit
|
|
42
|
-
okit
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
okit
|
|
38
|
+
okit # 交互式菜单
|
|
39
|
+
okit check # 检查所有工具安装状态
|
|
40
|
+
okit upgrade # 升级 OKIT 或工具
|
|
41
|
+
okit uninstall # 卸载 OKIT
|
|
42
|
+
okit profile # 工具分组管理
|
|
43
|
+
okit auth # 检查工具授权状态
|
|
44
|
+
okit auth --fix # 自动修复授权
|
|
45
|
+
okit vault # 密钥管理
|
|
46
|
+
okit relay # 中继服务器连接
|
|
47
|
+
okit repo # Git/GitHub 设置
|
|
48
|
+
okit claude # Claude 配置管理
|
|
49
|
+
okit -V # 查看版本
|
|
49
50
|
```
|
|
50
51
|
|
|
51
52
|
---
|
|
52
53
|
|
|
53
|
-
##
|
|
54
|
+
## Profile — 工具分组
|
|
54
55
|
|
|
55
|
-
|
|
56
|
+
自定义工具组合,一键安装:
|
|
56
57
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
58
|
+
```bash
|
|
59
|
+
okit profile create # 创建 Profile
|
|
60
|
+
okit profile apply # 安装 Profile 中的所有工具
|
|
61
|
+
okit profile list # 查看所有 Profile
|
|
62
|
+
okit profile export # 导出(分享给团队)
|
|
63
|
+
okit profile import # 导入
|
|
64
|
+
```
|
|
62
65
|
|
|
63
|
-
|
|
66
|
+
Profile 存储在 `~/.okit/profiles/`。
|
|
64
67
|
|
|
65
68
|
---
|
|
66
69
|
|
|
67
|
-
##
|
|
68
|
-
|
|
69
|
-
目前仅支持 GitHub。
|
|
70
|
-
|
|
71
|
-
功能包括:
|
|
72
|
-
- 一键设置 Git + GitHub 凭据
|
|
73
|
-
- 创建远程仓库
|
|
74
|
-
- 自动绑定 `origin`(HTTPS)
|
|
75
|
-
- 可选首次推送
|
|
70
|
+
## Auth — 授权管理
|
|
76
71
|
|
|
77
|
-
|
|
72
|
+
检查所有工具的登录/授权状态,一键修复:
|
|
78
73
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
74
|
+
```bash
|
|
75
|
+
okit auth # 检查授权状态
|
|
76
|
+
okit auth --fix # 自动运行 gh auth login、docker login 等
|
|
77
|
+
```
|
|
82
78
|
|
|
83
|
-
|
|
84
|
-
- GitHub Token 会保存在 `~/.okit/user.json`。
|
|
85
|
-
- 同时会写入系统 Keychain,以便 HTTPS 推送免输入。
|
|
79
|
+
支持 15+ 工具的授权检测与修复(gh、docker、wrangler、vercel、aws、gcloud 等)。
|
|
86
80
|
|
|
87
81
|
---
|
|
88
82
|
|
|
89
|
-
##
|
|
90
|
-
|
|
91
|
-
配置文件:`~/.okit/claude-profiles.json`
|
|
92
|
-
|
|
93
|
-
示例:
|
|
94
|
-
|
|
95
|
-
```json
|
|
96
|
-
[
|
|
97
|
-
{
|
|
98
|
-
"name": "Volcengine",
|
|
99
|
-
"baseUrl": "https://ark.cn-beijing.volces.com/api/coding",
|
|
100
|
-
"authToken": "YOUR_TOKEN",
|
|
101
|
-
"models": ["model-a", "model-b"]
|
|
102
|
-
}
|
|
103
|
-
]
|
|
104
|
-
```
|
|
83
|
+
## Vault — 密钥管理
|
|
105
84
|
|
|
106
|
-
|
|
85
|
+
加密存储 API Key,按项目注入环境变量:
|
|
107
86
|
|
|
108
87
|
```bash
|
|
109
|
-
okit
|
|
88
|
+
okit vault set OPENROUTER_KEY # 保存密钥
|
|
89
|
+
okit vault list # 查看所有密钥
|
|
90
|
+
okit vault get OPENROUTER_KEY # 输出原始值
|
|
91
|
+
okit vault inject # 输出 export 语句
|
|
92
|
+
okit vault env # 生成 .env 文件
|
|
93
|
+
okit vault where OPENROUTER_KEY # 查看密钥被哪些项目使用
|
|
94
|
+
okit vault sync # 同步到所有绑定项目
|
|
110
95
|
```
|
|
111
96
|
|
|
112
|
-
|
|
113
|
-
- Agent Teams 实验开关使用配置项管理(默认开启)。
|
|
114
|
-
- 通过 TUI 配置:`okit claude` → `Agent Teams 开关`。
|
|
115
|
-
- `okit claude` 运行时会根据该配置注入(或移除)`CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS`。
|
|
116
|
-
- 队友显示模式支持 `auto`(默认)/`in-process`/`tmux`,通过 TUI 配置:`okit claude` → `队友显示模式`。
|
|
97
|
+
### 密钥映射
|
|
117
98
|
|
|
118
|
-
|
|
99
|
+
在项目根目录创建 `.okitenv` 文件,将 Vault 中的密钥映射为框架需要的环境变量名:
|
|
119
100
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
```json
|
|
125
|
-
{
|
|
126
|
-
"language": "zh",
|
|
127
|
-
"git": {
|
|
128
|
-
"name": "Your Name",
|
|
129
|
-
"email": "you@example.com"
|
|
130
|
-
},
|
|
131
|
-
"repo": {
|
|
132
|
-
"github": {
|
|
133
|
-
"username": "your-github",
|
|
134
|
-
"token": "ghp_xxx"
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
}
|
|
101
|
+
```
|
|
102
|
+
OPENAI_API_KEY: OPENROUTER_KEY
|
|
103
|
+
GITHUB_TOKEN: GITHUB_TOKEN/company
|
|
104
|
+
DATABASE_URL
|
|
138
105
|
```
|
|
139
106
|
|
|
140
|
-
|
|
141
|
-
- 同名工具会覆盖默认配置
|
|
142
|
-
- 新增工具会被追加
|
|
143
|
-
- 默认新增工具不会丢失
|
|
144
|
-
|
|
145
|
-
---
|
|
146
|
-
|
|
147
|
-
## 安装脚本高级用法
|
|
107
|
+
格式:`环境变量名: Vault密钥名`,支持 `KEY/alias` 多别名。
|
|
148
108
|
|
|
149
|
-
|
|
109
|
+
### 使用方式
|
|
150
110
|
|
|
151
111
|
```bash
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
设置下载超时(秒):
|
|
112
|
+
# 注入到当前 shell
|
|
113
|
+
eval "$(okit vault inject)"
|
|
156
114
|
|
|
157
|
-
|
|
158
|
-
|
|
115
|
+
# 生成 .env 文件
|
|
116
|
+
okit vault env
|
|
159
117
|
```
|
|
160
118
|
|
|
161
119
|
---
|
|
162
120
|
|
|
163
|
-
##
|
|
121
|
+
## Relay — 中继服务器
|
|
164
122
|
|
|
165
|
-
|
|
123
|
+
通过 Cloudflare Worker 中继,让外部 Agent 访问本地服务,无需开放端口:
|
|
166
124
|
|
|
167
125
|
```bash
|
|
168
|
-
okit
|
|
126
|
+
okit relay config # 配置中继 URL 和 Token
|
|
127
|
+
okit relay connect # 建立连接
|
|
128
|
+
okit relay agents # 查看在线 Agent
|
|
129
|
+
okit relay status # 查看隧道状态
|
|
169
130
|
```
|
|
170
131
|
|
|
171
|
-
|
|
172
|
-
- 自动查找并删除多个可能的 `okit` 路径
|
|
173
|
-
- 如需 sudo 会询问是否执行
|
|
174
|
-
- 可选删除 `~/.okit` 配置目录
|
|
132
|
+
工作原理:
|
|
175
133
|
|
|
176
|
-
|
|
134
|
+
```
|
|
135
|
+
本地服务 ──WebSocket出站──→ Cloudflare Worker ←──HTTP── 外部调用者
|
|
136
|
+
(不开端口) (公网入口)
|
|
137
|
+
```
|
|
177
138
|
|
|
178
|
-
|
|
139
|
+
外部调用示例:
|
|
179
140
|
|
|
180
|
-
|
|
141
|
+
```bash
|
|
142
|
+
curl https://<relay-url>/agent/<agent-name>/api/data \
|
|
143
|
+
-H "Authorization: Bearer <token>"
|
|
144
|
+
```
|
|
181
145
|
|
|
182
|
-
|
|
183
|
-
- 手动指定版本号再安装
|
|
146
|
+
---
|
|
184
147
|
|
|
185
|
-
|
|
148
|
+
## 工具注册表
|
|
186
149
|
|
|
187
|
-
|
|
188
|
-
- 重新执行 `okit uninstall` 并允许 sudo 删除即可
|
|
150
|
+
内置 54+ 常用工具,覆盖:
|
|
189
151
|
|
|
190
|
-
|
|
152
|
+
- **基础开发**:Node.js、Python、Git、Docker
|
|
153
|
+
- **包管理**:Homebrew、pnpm、uv、pipx
|
|
154
|
+
- **云平台**:AWS CLI、gcloud、Azure CLI、Wrangler、Vercel、Netlify
|
|
155
|
+
- **部署**:Railway、Supabase、Firebase、Fly.io、Heroku
|
|
156
|
+
- **AI 工具**:Claude Code、Ollama
|
|
157
|
+
- **实用工具**:jq、httpie、bat、tree、ngrok、cloudflared
|
|
191
158
|
|
|
192
|
-
|
|
193
|
-
- 仅保存在 `~/.okit/user.json` 与系统 Keychain
|
|
159
|
+
自定义工具可通过 `~/.okit/registry.json` 添加。
|
|
194
160
|
|
|
195
161
|
---
|
|
196
162
|
|
|
197
|
-
##
|
|
163
|
+
## 配置文件
|
|
198
164
|
|
|
199
|
-
|
|
165
|
+
| 文件 | 用途 |
|
|
166
|
+
|------|------|
|
|
167
|
+
| `~/.okit/user.json` | 用户偏好、凭据、中继配置 |
|
|
168
|
+
| `~/.okit/registry.json` | 自定义工具注册表 |
|
|
169
|
+
| `~/.okit/profiles/` | Profile 配置 |
|
|
170
|
+
| `~/.okit/vault/` | 加密密钥存储 |
|
|
171
|
+
| `.okitenv` | 项目级密钥映射 |
|
|
200
172
|
|
|
201
|
-
|
|
202
|
-
npm run dev
|
|
203
|
-
```
|
|
204
|
-
|
|
205
|
-
本地构建:
|
|
206
|
-
|
|
207
|
-
```bash
|
|
208
|
-
npm run build
|
|
209
|
-
npm run pkg
|
|
210
|
-
```
|
|
173
|
+
---
|
|
211
174
|
|
|
212
|
-
|
|
175
|
+
## 开发
|
|
213
176
|
|
|
214
177
|
```bash
|
|
215
|
-
|
|
178
|
+
npm run dev # 本地开发
|
|
179
|
+
npm run build # 构建
|
|
216
180
|
```
|
|
217
181
|
|
|
218
182
|
---
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AAsEA,wBAAsB,OAAO,CAAC,OAAO,CAAC,EAAE;IAAE,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAwExE"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.runAuth = runAuth;
|
|
7
|
+
const kleur_1 = __importDefault(require("kleur"));
|
|
8
|
+
const child_process_1 = require("child_process");
|
|
9
|
+
const registry_1 = require("../config/registry");
|
|
10
|
+
const i18n_1 = require("../config/i18n");
|
|
11
|
+
function checkAuth(step) {
|
|
12
|
+
const authCmd = (0, registry_1.resolveCmd)(step.authCheck);
|
|
13
|
+
if (!authCmd)
|
|
14
|
+
return "no_check";
|
|
15
|
+
try {
|
|
16
|
+
const output = (0, child_process_1.execSync)(authCmd, {
|
|
17
|
+
timeout: 15000,
|
|
18
|
+
stdio: ["pipe", "pipe", "pipe"],
|
|
19
|
+
}).toString();
|
|
20
|
+
// Common failure patterns
|
|
21
|
+
const failPatterns = [
|
|
22
|
+
/not logged in/i,
|
|
23
|
+
/not authenticated/i,
|
|
24
|
+
/no auth/i,
|
|
25
|
+
/login required/i,
|
|
26
|
+
/unauthorized/i,
|
|
27
|
+
/expired/i,
|
|
28
|
+
/invalid.*token/i,
|
|
29
|
+
/could not determine/i,
|
|
30
|
+
/error/i,
|
|
31
|
+
/EACCES/i,
|
|
32
|
+
];
|
|
33
|
+
for (const pattern of failPatterns) {
|
|
34
|
+
if (pattern.test(output))
|
|
35
|
+
return "failed";
|
|
36
|
+
}
|
|
37
|
+
return "ok";
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
return "failed";
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
function isInstalled(step) {
|
|
44
|
+
const checkCmd = (0, registry_1.resolveCmd)(step.check);
|
|
45
|
+
if (!checkCmd)
|
|
46
|
+
return false;
|
|
47
|
+
try {
|
|
48
|
+
(0, child_process_1.execSync)(checkCmd, { stdio: "ignore", timeout: 5000 });
|
|
49
|
+
return true;
|
|
50
|
+
}
|
|
51
|
+
catch {
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
function tryFix(step) {
|
|
56
|
+
const fixCmd = (0, registry_1.resolveCmd)(step.authFix);
|
|
57
|
+
if (!fixCmd)
|
|
58
|
+
return false;
|
|
59
|
+
console.log(kleur_1.default.gray(` ${(0, i18n_1.t)("authFixing")} ${step.name}...`));
|
|
60
|
+
// Use spawnSync with inherit to allow interactive auth flows
|
|
61
|
+
const result = (0, child_process_1.spawnSync)("sh", ["-c", fixCmd], {
|
|
62
|
+
stdio: "inherit",
|
|
63
|
+
timeout: 120000,
|
|
64
|
+
});
|
|
65
|
+
return result.status === 0;
|
|
66
|
+
}
|
|
67
|
+
async function runAuth(options) {
|
|
68
|
+
const registry = await (0, registry_1.loadRegistry)();
|
|
69
|
+
const results = [];
|
|
70
|
+
// Find all tools with authCheck
|
|
71
|
+
const authTools = registry.steps.filter((s) => (0, registry_1.resolveCmd)(s.authCheck) !== undefined);
|
|
72
|
+
if (authTools.length === 0) {
|
|
73
|
+
console.log(kleur_1.default.yellow((0, i18n_1.t)("authNoTools")));
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
console.log(kleur_1.default.cyan(`\n${(0, i18n_1.t)("authChecking")}\n`));
|
|
77
|
+
for (const step of authTools) {
|
|
78
|
+
if (!isInstalled(step)) {
|
|
79
|
+
results.push({ name: step.name, status: "skipped", message: (0, i18n_1.t)("checkNotInstalled") });
|
|
80
|
+
continue;
|
|
81
|
+
}
|
|
82
|
+
const status = checkAuth(step);
|
|
83
|
+
if (status === "no_check")
|
|
84
|
+
continue;
|
|
85
|
+
if (status === "ok") {
|
|
86
|
+
results.push({ name: step.name, status: "ok" });
|
|
87
|
+
console.log(` ${kleur_1.default.green("\u2713")} ${step.name} ${kleur_1.default.gray((0, i18n_1.t)("checkAuthOk"))}`);
|
|
88
|
+
continue;
|
|
89
|
+
}
|
|
90
|
+
// Auth failed
|
|
91
|
+
if (options?.fix) {
|
|
92
|
+
const fixCmd = (0, registry_1.resolveCmd)(step.authFix);
|
|
93
|
+
if (fixCmd) {
|
|
94
|
+
const fixed = tryFix(step);
|
|
95
|
+
if (fixed) {
|
|
96
|
+
// Verify after fix
|
|
97
|
+
const recheck = checkAuth(step);
|
|
98
|
+
if (recheck === "ok") {
|
|
99
|
+
results.push({ name: step.name, status: "fixed" });
|
|
100
|
+
console.log(` ${kleur_1.default.green("\u2713")} ${step.name} ${kleur_1.default.green((0, i18n_1.t)("authFixed"))}`);
|
|
101
|
+
continue;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
results.push({ name: step.name, status: "fix_failed" });
|
|
105
|
+
console.log(` ${kleur_1.default.red("\u2717")} ${step.name} ${kleur_1.default.red((0, i18n_1.t)("authFixFailed"))}`);
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
results.push({ name: step.name, status: "failed", message: (0, i18n_1.t)("authNoFixCmd") });
|
|
109
|
+
console.log(` ${kleur_1.default.red("\u2717")} ${step.name} ${kleur_1.default.yellow((0, i18n_1.t)("authNoFixCmd"))}`);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
results.push({ name: step.name, status: "failed" });
|
|
114
|
+
console.log(` ${kleur_1.default.red("\u2717")} ${step.name} ${kleur_1.default.red((0, i18n_1.t)("checkAuthFailed"))}`);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
// Summary
|
|
118
|
+
const ok = results.filter((r) => r.status === "ok").length;
|
|
119
|
+
const fixed = results.filter((r) => r.status === "fixed").length;
|
|
120
|
+
const failed = results.filter((r) => r.status === "failed" || r.status === "fix_failed").length;
|
|
121
|
+
const skipped = results.filter((r) => r.status === "skipped").length;
|
|
122
|
+
console.log(kleur_1.default.cyan(`\n${(0, i18n_1.t)("authSummary")}`));
|
|
123
|
+
console.log(kleur_1.default.green(` ${(0, i18n_1.t)("checkAuthOk")}: ${ok}`));
|
|
124
|
+
if (fixed > 0)
|
|
125
|
+
console.log(kleur_1.default.green(` ${(0, i18n_1.t)("authFixed")}: ${fixed}`));
|
|
126
|
+
if (failed > 0)
|
|
127
|
+
console.log(kleur_1.default.red(` ${(0, i18n_1.t)("checkAuthFailed")}: ${failed}`));
|
|
128
|
+
if (skipped > 0)
|
|
129
|
+
console.log(kleur_1.default.gray(` ${(0, i18n_1.t)("skipped")}: ${skipped}`));
|
|
130
|
+
if (failed > 0 && !options?.fix) {
|
|
131
|
+
console.log(kleur_1.default.yellow(`\n ${(0, i18n_1.t)("authHintFix")}`));
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/check.d.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
|
+
import { UpgradeLevel } from "../utils/semver";
|
|
1
2
|
export interface CheckResult {
|
|
2
3
|
name: string;
|
|
3
4
|
installed: boolean;
|
|
4
5
|
version?: string;
|
|
5
6
|
outdated?: boolean;
|
|
6
7
|
availableVersion?: string;
|
|
8
|
+
upgradeLevel?: UpgradeLevel;
|
|
7
9
|
authOk?: boolean;
|
|
8
10
|
authMsg?: string;
|
|
9
11
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"AAQA,OAAO,EAKL,YAAY,EACb,MAAM,iBAAiB,CAAC;AAEzB,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AA6GD,wBAAsB,QAAQ,CAAC,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAgEvF"}
|