@cloudbase/cli 2.10.0-beta.0 → 2.11.0-beta.0
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/lib/auth/login.js +51 -65
- package/lib/auth/logout.js +3 -14
- package/lib/commands/account/login.js +136 -149
- package/lib/commands/account/logout.js +3 -14
- package/lib/commands/ag/base.js +203 -0
- package/lib/commands/ag/create.js +301 -0
- package/lib/commands/ag/debug/index.html +699 -0
- package/lib/commands/ag/delete.js +200 -0
- package/lib/commands/ag/deploy.js +185 -0
- package/lib/commands/ag/detail.js +113 -0
- package/lib/commands/ag/index.js +22 -0
- package/lib/commands/ag/list.js +155 -0
- package/lib/commands/ag/run.js +644 -0
- package/lib/commands/ai/index.js +76 -95
- package/lib/commands/cloudfunction/base.js +182 -203
- package/lib/commands/cloudrun/base.js +578 -603
- package/lib/commands/common.js +48 -63
- package/lib/commands/config/delete.js +16 -27
- package/lib/commands/config/get.js +13 -24
- package/lib/commands/config/list.js +16 -27
- package/lib/commands/config/set.js +33 -44
- package/lib/commands/db/base.js +221 -240
- package/lib/commands/env/base.js +36 -49
- package/lib/commands/env/domain.js +79 -94
- package/lib/commands/env/login.js +120 -135
- package/lib/commands/framework/index.js +32 -49
- package/lib/commands/fun/base.js +223 -244
- package/lib/commands/functions/alias/getRoute.js +33 -44
- package/lib/commands/functions/alias/setRoute.js +36 -47
- package/lib/commands/functions/code-download.js +43 -54
- package/lib/commands/functions/code-update.js +23 -34
- package/lib/commands/functions/concurrency/delete.js +11 -22
- package/lib/commands/functions/concurrency/list.js +20 -31
- package/lib/commands/functions/concurrency/set.js +13 -24
- package/lib/commands/functions/config-update.js +30 -41
- package/lib/commands/functions/copy.js +12 -23
- package/lib/commands/functions/delete.js +30 -41
- package/lib/commands/functions/deploy.js +184 -202
- package/lib/commands/functions/detail.js +23 -34
- package/lib/commands/functions/invoke.js +69 -75
- package/lib/commands/functions/layer/bind.js +102 -105
- package/lib/commands/functions/layer/create.js +29 -35
- package/lib/commands/functions/layer/delete.js +42 -48
- package/lib/commands/functions/layer/download.js +52 -58
- package/lib/commands/functions/layer/list.js +44 -50
- package/lib/commands/functions/layer/sort.js +39 -45
- package/lib/commands/functions/list.js +25 -36
- package/lib/commands/functions/log.js +65 -73
- package/lib/commands/functions/run.js +118 -116
- package/lib/commands/functions/trigger-create.js +32 -43
- package/lib/commands/functions/trigger-delete.js +50 -61
- package/lib/commands/functions/version/list.js +29 -40
- package/lib/commands/functions/version/publish.js +11 -22
- package/lib/commands/gateway/create.js +50 -61
- package/lib/commands/gateway/delete.js +38 -49
- package/lib/commands/gateway/domain.js +65 -80
- package/lib/commands/gateway/list.js +31 -42
- package/lib/commands/gateway/switch.js +48 -61
- package/lib/commands/helpers/init.js +226 -249
- package/lib/commands/helpers/new.js +35 -46
- package/lib/commands/helpers/open.js +22 -33
- package/lib/commands/hosting/hosting.js +157 -178
- package/lib/commands/index.js +1 -0
- package/lib/commands/lowcode/app.js +114 -144
- package/lib/commands/lowcode/comps.js +136 -127
- package/lib/commands/lowcode/utils.js +11 -22
- package/lib/commands/pull/pull.js +33 -46
- package/lib/commands/run/delete.js +35 -46
- package/lib/commands/run/image/delete.js +32 -39
- package/lib/commands/run/image/download.js +26 -33
- package/lib/commands/run/image/list.js +41 -48
- package/lib/commands/run/image/upload.js +26 -33
- package/lib/commands/run/list.js +32 -43
- package/lib/commands/run/service/config.js +17 -28
- package/lib/commands/run/service/deploy.js +15 -26
- package/lib/commands/run/service/list.js +48 -59
- package/lib/commands/run/service/update.js +7 -18
- package/lib/commands/run/standalonegateway/create.js +35 -42
- package/lib/commands/run/standalonegateway/destroy.js +23 -30
- package/lib/commands/run/standalonegateway/list.js +19 -26
- package/lib/commands/run/standalonegateway/package.js +31 -38
- package/lib/commands/run/standalonegateway/turn.js +27 -34
- package/lib/commands/run/version/create.js +198 -205
- package/lib/commands/run/version/delete.js +31 -38
- package/lib/commands/run/version/list.js +42 -49
- package/lib/commands/run/version/modify.js +27 -34
- package/lib/commands/run/version/update.js +201 -208
- package/lib/commands/runf/base.js +216 -237
- package/lib/commands/self-update.js +59 -72
- package/lib/commands/smart.js +66 -79
- package/lib/commands/storage/storage.js +192 -219
- package/lib/commands/third/thirdAttach.js +16 -27
- package/lib/commands/utils.js +119 -149
- package/lib/db/index.js +48 -67
- package/lib/decorators/captureError.js +10 -21
- package/lib/decorators/guard.js +11 -22
- package/lib/decorators/injectParams.js +29 -40
- package/lib/decorators/params/common.js +5 -2
- package/lib/decorators/params/index.js +3 -12
- package/lib/env/domain.js +13 -28
- package/lib/env/index.js +25 -44
- package/lib/env/login.js +30 -45
- package/lib/function/alias.js +31 -44
- package/lib/function/base.js +187 -215
- package/lib/function/code.js +8 -19
- package/lib/function/concurrency.js +43 -58
- package/lib/function/create.js +43 -53
- package/lib/function/delete.js +22 -35
- package/lib/function/layer/attach.js +33 -46
- package/lib/function/layer/create.js +34 -45
- package/lib/function/layer/delete.js +5 -16
- package/lib/function/layer/download.js +11 -22
- package/lib/function/layer/list.js +12 -25
- package/lib/function/layer/sort.js +6 -17
- package/lib/function/trigger.js +65 -82
- package/lib/function/update.js +24 -32
- package/lib/function/version.js +29 -42
- package/lib/function/vpc.js +12 -25
- package/lib/gateway/index.js +77 -104
- package/lib/hosting.js +157 -188
- package/lib/run/delete.js +3 -12
- package/lib/run/image/build.js +6 -15
- package/lib/run/image/delete.js +3 -12
- package/lib/run/image/info.js +3 -12
- package/lib/run/image/list.js +6 -15
- package/lib/run/list.js +19 -30
- package/lib/run/repo.js +6 -15
- package/lib/run/service/common.js +160 -173
- package/lib/run/service/config.js +44 -57
- package/lib/run/service/deployPackage.js +33 -44
- package/lib/run/service/list.js +8 -14
- package/lib/run/service/showLogs.js +69 -90
- package/lib/run/service/update.js +50 -63
- package/lib/run/standalonegateway/create.js +3 -12
- package/lib/run/standalonegateway/destroy.js +3 -12
- package/lib/run/standalonegateway/list.js +3 -12
- package/lib/run/standalonegateway/package/list.js +3 -12
- package/lib/run/standalonegateway/turn/off.js +3 -12
- package/lib/run/standalonegateway/turn/on.js +3 -12
- package/lib/run/version/create.js +41 -31
- package/lib/run/version/delete.js +3 -12
- package/lib/run/version/list.js +3 -12
- package/lib/run/version/modify.js +3 -12
- package/lib/run/version/repo.js +6 -15
- package/lib/run/version/update.js +37 -26
- package/lib/storage.js +62 -93
- package/lib/third/index.js +6 -17
- package/lib/utils/ai/banner.js +49 -60
- package/lib/utils/ai/claudeWindows.js +2 -2
- package/lib/utils/ai/config.js +169 -206
- package/lib/utils/ai/ensureFiles.js +6 -17
- package/lib/utils/ai/env.js +16 -27
- package/lib/utils/ai/envLocalManager.js +35 -52
- package/lib/utils/ai/router.js +927 -1005
- package/lib/utils/ai/setup.js +527 -563
- package/lib/utils/auth.js +3 -14
- package/lib/utils/checkTcbrEnv.js +20 -31
- package/lib/utils/cli-table.js +6 -1
- package/lib/utils/config.js +4 -13
- package/lib/utils/dts.js +98 -113
- package/lib/utils/env.js +154 -175
- package/lib/utils/function-packer.js +29 -42
- package/lib/utils/log.js +10 -21
- package/lib/utils/mcp-config-modifier.js +105 -120
- package/lib/utils/net/cloud-api-request.js +15 -23
- package/lib/utils/net/credential.js +26 -39
- package/lib/utils/net/http-request.js +63 -80
- package/lib/utils/net/manager-service.js +22 -35
- package/lib/utils/notice.js +16 -27
- package/lib/utils/output/loading.js +3 -12
- package/lib/utils/parallel.js +32 -43
- package/lib/utils/platform/mac.js +4 -15
- package/lib/utils/platform/port.js +4 -15
- package/lib/utils/prompt/select.js +6 -15
- package/lib/utils/report.js +28 -33
- package/lib/utils/reporter/agree.js +11 -22
- package/lib/utils/reporter/download.js +17 -28
- package/lib/utils/reporter/usage.js +12 -23
- package/lib/utils/store/auth.js +17 -30
- package/lib/utils/store/config.js +11 -25
- package/lib/utils/store/db.js +17 -36
- package/lib/utils/tcbrApi/callTcbrApi.js +19 -28
- package/lib/utils/template-manager.js +215 -242
- package/lib/utils/template.js +81 -96
- package/lib/utils/tools/common.js +45 -56
- package/lib/utils/tools/time.js +5 -16
- package/lib/utils/url.js +10 -4
- package/package.json +2 -2
- package/specs/ag-command/design.md +421 -0
- package/specs/ag-command/doc.md +204 -0
- package/specs/ag-command/requirements.md +173 -0
- package/specs/ag-command/summary.md +174 -0
- package/specs/ag-command/tasks.md +197 -0
- package/specs/ag-command/usage-guide.md +420 -0
- package/tsconfig.json +1 -1
- package/types/commands/ag/base.d.ts +44 -0
- package/types/commands/ag/create.d.ts +25 -0
- package/types/commands/ag/delete.d.ts +32 -0
- package/types/commands/ag/deploy.d.ts +31 -0
- package/types/commands/ag/detail.d.ts +28 -0
- package/types/commands/ag/index.d.ts +6 -0
- package/types/commands/ag/list.d.ts +35 -0
- package/types/commands/ag/run.d.ts +52 -0
- package/types/commands/cloudrun/base.d.ts +10 -0
- package/types/commands/index.d.ts +1 -0
package/lib/utils/env.js
CHANGED
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
4
|
};
|
|
@@ -28,195 +19,183 @@ const tcbService = net_1.CloudApiService.getInstance('tcb');
|
|
|
28
19
|
const ENV_INIT_TIP = (0, i18n_1.t)('环境初始化中,预计需要三分钟');
|
|
29
20
|
const CREATE_ENV = 'CREATE';
|
|
30
21
|
const consoleUrl = `${url_1.EUrl.TcbConsole}/env/index?action=CreateEnv&from=cli`;
|
|
31
|
-
function getSelectedEnv(inputEnvId) {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
const
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
}), 2000);
|
|
45
|
-
});
|
|
46
|
-
}, {
|
|
47
|
-
startTip: (0, i18n_1.t)('获取环境列表中')
|
|
22
|
+
async function getSelectedEnv(inputEnvId) {
|
|
23
|
+
const isInitNow = await checkTcbService();
|
|
24
|
+
let envData = [];
|
|
25
|
+
if (isInitNow) {
|
|
26
|
+
envData = await (0, output_1.execWithLoading)(() => {
|
|
27
|
+
return new Promise((resolve) => {
|
|
28
|
+
const timer = setInterval(async () => {
|
|
29
|
+
const envs = await (0, env_1.listEnvs)();
|
|
30
|
+
if (envs.length) {
|
|
31
|
+
clearInterval(timer);
|
|
32
|
+
resolve(envs);
|
|
33
|
+
}
|
|
34
|
+
}, 2000);
|
|
48
35
|
});
|
|
36
|
+
}, {
|
|
37
|
+
startTip: (0, i18n_1.t)('获取环境列表中')
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
envData = await (0, output_1.execWithLoading)(() => (0, env_1.listEnvs)(), {
|
|
42
|
+
startTip: (0, i18n_1.t)('获取环境列表中')
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
envData = envData || [];
|
|
46
|
+
if ((envData === null || envData === void 0 ? void 0 : envData.length) && inputEnvId) {
|
|
47
|
+
const inputEnvIdExist = envData.find((_) => _.EnvId === inputEnvId);
|
|
48
|
+
if (!inputEnvIdExist) {
|
|
49
|
+
throw new error_1.CloudBaseError((0, i18n_1.t)('你指定的环境 Id {{envId}} 不存在,请指定正确的环境 Id!', { envId: inputEnvId }));
|
|
49
50
|
}
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
51
|
+
return inputEnvId;
|
|
52
|
+
}
|
|
53
|
+
const envs = envData
|
|
54
|
+
.map((item) => {
|
|
55
|
+
let name = `${item.Alias} - [${item.EnvId}:${item.PackageName || (0, i18n_1.t)('按量计费')}]`;
|
|
56
|
+
if (item.Status !== "NORMAL") {
|
|
57
|
+
name += `(${constant_1.STATUS_TEXT[item.Status]})`;
|
|
54
58
|
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
59
|
+
return {
|
|
60
|
+
name,
|
|
61
|
+
value: item.EnvId
|
|
62
|
+
};
|
|
63
|
+
})
|
|
64
|
+
.sort((prev, next) => prev.value.charCodeAt(0) - next.value.charCodeAt(0));
|
|
65
|
+
const choices = [
|
|
66
|
+
...envs,
|
|
67
|
+
{
|
|
68
|
+
name: envData.length ? (0, i18n_1.t)('创建新环境') : (0, i18n_1.t)('无可用环境,创建新环境'),
|
|
69
|
+
value: CREATE_ENV
|
|
62
70
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
value: item.EnvId
|
|
72
|
-
};
|
|
73
|
-
})
|
|
74
|
-
.sort((prev, next) => prev.value.charCodeAt(0) - next.value.charCodeAt(0));
|
|
75
|
-
const choices = [
|
|
76
|
-
...envs,
|
|
77
|
-
{
|
|
78
|
-
name: envData.length ? (0, i18n_1.t)('创建新环境') : (0, i18n_1.t)('无可用环境,创建新环境'),
|
|
79
|
-
value: CREATE_ENV
|
|
80
|
-
}
|
|
81
|
-
];
|
|
82
|
-
let { env } = yield (0, enquirer_1.prompt)({
|
|
83
|
-
choices,
|
|
84
|
-
type: 'select',
|
|
85
|
-
name: 'env',
|
|
86
|
-
message: (0, i18n_1.t)('请选择关联环境'),
|
|
87
|
-
result(choice) {
|
|
88
|
-
return this.map(choice)[choice];
|
|
89
|
-
}
|
|
90
|
-
});
|
|
91
|
-
if (env === CREATE_ENV) {
|
|
92
|
-
log_1.logger.success((0, i18n_1.t)('已打开控制台,请前往控制台创建环境'));
|
|
93
|
-
const { envId } = yield (0, toolbox_1.getDataFromWeb)((port) => `${consoleUrl}&port=${port}`, 'getData');
|
|
94
|
-
if (!envId) {
|
|
95
|
-
throw new error_1.CloudBaseError((0, i18n_1.t)('接收环境 Id 信息失败,请重新运行 init 命令!'));
|
|
96
|
-
}
|
|
97
|
-
log_1.logger.success((0, i18n_1.t)('创建环境成功,环境 Id: {{envId}}', { envId }));
|
|
98
|
-
env = envId;
|
|
71
|
+
];
|
|
72
|
+
let { env } = await (0, enquirer_1.prompt)({
|
|
73
|
+
choices,
|
|
74
|
+
type: 'select',
|
|
75
|
+
name: 'env',
|
|
76
|
+
message: (0, i18n_1.t)('请选择关联环境'),
|
|
77
|
+
result(choice) {
|
|
78
|
+
return this.map(choice)[choice];
|
|
99
79
|
}
|
|
100
|
-
yield checkEnvStatus(env);
|
|
101
|
-
return env;
|
|
102
80
|
});
|
|
81
|
+
if (env === CREATE_ENV) {
|
|
82
|
+
log_1.logger.success((0, i18n_1.t)('已打开控制台,请前往控制台创建环境'));
|
|
83
|
+
const { envId } = await (0, toolbox_1.getDataFromWeb)((port) => `${consoleUrl}&port=${port}`, 'getData');
|
|
84
|
+
if (!envId) {
|
|
85
|
+
throw new error_1.CloudBaseError((0, i18n_1.t)('接收环境 Id 信息失败,请重新运行 init 命令!'));
|
|
86
|
+
}
|
|
87
|
+
log_1.logger.success((0, i18n_1.t)('创建环境成功,环境 Id: {{envId}}', { envId }));
|
|
88
|
+
env = envId;
|
|
89
|
+
}
|
|
90
|
+
await checkEnvStatus(env);
|
|
91
|
+
return env;
|
|
103
92
|
}
|
|
104
93
|
exports.getSelectedEnv = getSelectedEnv;
|
|
105
|
-
function getSelectRegion() {
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
value: 'ap-guangzhou'
|
|
116
|
-
}
|
|
117
|
-
],
|
|
118
|
-
type: 'select',
|
|
119
|
-
name: 'region',
|
|
120
|
-
message: (0, i18n_1.t)('请选择环境所在地域'),
|
|
121
|
-
result(choice) {
|
|
122
|
-
return this.map(choice)[choice];
|
|
94
|
+
async function getSelectRegion() {
|
|
95
|
+
const { region } = await (0, enquirer_1.prompt)({
|
|
96
|
+
choices: [
|
|
97
|
+
{
|
|
98
|
+
name: (0, i18n_1.t)('上海'),
|
|
99
|
+
value: 'ap-shanghai'
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
name: (0, i18n_1.t)('广州'),
|
|
103
|
+
value: 'ap-guangzhou'
|
|
123
104
|
}
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
105
|
+
],
|
|
106
|
+
type: 'select',
|
|
107
|
+
name: 'region',
|
|
108
|
+
message: (0, i18n_1.t)('请选择环境所在地域'),
|
|
109
|
+
result(choice) {
|
|
110
|
+
return this.map(choice)[choice];
|
|
111
|
+
}
|
|
127
112
|
});
|
|
113
|
+
tcbService.region = region;
|
|
114
|
+
return region;
|
|
128
115
|
}
|
|
129
116
|
exports.getSelectRegion = getSelectRegion;
|
|
130
|
-
function checkTcbService() {
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
117
|
+
async function checkTcbService() {
|
|
118
|
+
const app = await (0, net_1.getMangerService)();
|
|
119
|
+
let Initialized;
|
|
120
|
+
try {
|
|
121
|
+
Initialized = (await app.env.checkTcbService()).Initialized;
|
|
122
|
+
}
|
|
123
|
+
catch (e) {
|
|
124
|
+
if (!(0, toolbox_1.isCamRefused)(e)) {
|
|
125
|
+
throw e;
|
|
136
126
|
}
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
initial: true
|
|
148
|
-
});
|
|
149
|
-
if (!jump) {
|
|
150
|
-
throw new error_1.CloudBaseError((0, i18n_1.t)('init 操作终止,请开通云开发服务后再进行操作!'));
|
|
151
|
-
}
|
|
152
|
-
(0, open_1.default)(consoleUrl);
|
|
153
|
-
log_1.logger.success((0, i18n_1.t)('已打开云开发控制台,请登录并在云开发控制台中开通服务!'));
|
|
154
|
-
yield (0, output_1.execWithLoading)(() => waitForServiceEnable(), {
|
|
155
|
-
startTip: (0, i18n_1.t)('等待云开发服务开通中'),
|
|
156
|
-
successTip: (0, i18n_1.t)('云开发服务开通成功!')
|
|
157
|
-
});
|
|
158
|
-
return true;
|
|
127
|
+
}
|
|
128
|
+
if (!Initialized) {
|
|
129
|
+
const { jump } = await (0, enquirer_1.prompt)({
|
|
130
|
+
type: 'confirm',
|
|
131
|
+
name: 'jump',
|
|
132
|
+
message: (0, i18n_1.t)('你还没有开通云开发服务,是否跳转到控制台开通云开发服务?(取消将无法继续操作)'),
|
|
133
|
+
initial: true
|
|
134
|
+
});
|
|
135
|
+
if (!jump) {
|
|
136
|
+
throw new error_1.CloudBaseError((0, i18n_1.t)('init 操作终止,请开通云开发服务后再进行操作!'));
|
|
159
137
|
}
|
|
160
|
-
|
|
161
|
-
|
|
138
|
+
(0, open_1.default)(consoleUrl);
|
|
139
|
+
log_1.logger.success((0, i18n_1.t)('已打开云开发控制台,请登录并在云开发控制台中开通服务!'));
|
|
140
|
+
await (0, output_1.execWithLoading)(() => waitForServiceEnable(), {
|
|
141
|
+
startTip: (0, i18n_1.t)('等待云开发服务开通中'),
|
|
142
|
+
successTip: (0, i18n_1.t)('云开发服务开通成功!')
|
|
143
|
+
});
|
|
144
|
+
return true;
|
|
145
|
+
}
|
|
146
|
+
return false;
|
|
162
147
|
}
|
|
163
148
|
exports.checkTcbService = checkTcbService;
|
|
164
|
-
function checkEnvStatus(envId) {
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
}
|
|
173
|
-
});
|
|
149
|
+
async function checkEnvStatus(envId) {
|
|
150
|
+
const env = await (0, env_1.getEnvInfo)(envId);
|
|
151
|
+
if (env.Status === "UNAVAILABLE") {
|
|
152
|
+
await checkEnvAvaliable(envId);
|
|
153
|
+
}
|
|
154
|
+
else if (env.Status !== "NORMAL") {
|
|
155
|
+
throw new error_1.CloudBaseError((0, i18n_1.t)('所有环境状态异常'));
|
|
156
|
+
}
|
|
174
157
|
}
|
|
175
158
|
exports.checkEnvStatus = checkEnvStatus;
|
|
176
|
-
function checkEnvAvaliable(envId) {
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
const
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
}), 3000);
|
|
192
|
-
});
|
|
193
|
-
}, {
|
|
194
|
-
startTip: ENV_INIT_TIP,
|
|
195
|
-
successTip: (0, i18n_1.t)('环境 {{envId}} 初始化成功', { envId })
|
|
159
|
+
async function checkEnvAvaliable(envId) {
|
|
160
|
+
let count = 0;
|
|
161
|
+
await (0, output_1.execWithLoading)((flush) => {
|
|
162
|
+
const increase = setInterval(() => {
|
|
163
|
+
flush(`${ENV_INIT_TIP} ${++count}S`);
|
|
164
|
+
}, 1000);
|
|
165
|
+
return new Promise((resolve) => {
|
|
166
|
+
const timer = setInterval(async () => {
|
|
167
|
+
const env = await (0, env_1.getEnvInfo)(envId);
|
|
168
|
+
if (env.Status === "NORMAL") {
|
|
169
|
+
clearInterval(timer);
|
|
170
|
+
clearInterval(increase);
|
|
171
|
+
resolve();
|
|
172
|
+
}
|
|
173
|
+
}, 3000);
|
|
196
174
|
});
|
|
175
|
+
}, {
|
|
176
|
+
startTip: ENV_INIT_TIP,
|
|
177
|
+
successTip: (0, i18n_1.t)('环境 {{envId}} 初始化成功', { envId })
|
|
197
178
|
});
|
|
198
179
|
}
|
|
199
180
|
exports.checkEnvAvaliable = checkEnvAvaliable;
|
|
200
|
-
function waitForServiceEnable() {
|
|
201
|
-
return
|
|
202
|
-
|
|
203
|
-
const
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
}, 5000);
|
|
212
|
-
}
|
|
181
|
+
async function waitForServiceEnable() {
|
|
182
|
+
return new Promise((resolve) => {
|
|
183
|
+
const timer = setInterval(async () => {
|
|
184
|
+
const app = await (0, net_1.getMangerService)();
|
|
185
|
+
try {
|
|
186
|
+
const { Initialized } = await app.env.checkTcbService();
|
|
187
|
+
if (Initialized) {
|
|
188
|
+
clearInterval(timer);
|
|
189
|
+
setTimeout(() => {
|
|
190
|
+
resolve();
|
|
191
|
+
}, 5000);
|
|
213
192
|
}
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
193
|
+
}
|
|
194
|
+
catch (e) {
|
|
195
|
+
if (!(0, toolbox_1.isCamRefused)(e)) {
|
|
196
|
+
throw e;
|
|
218
197
|
}
|
|
219
|
-
}
|
|
220
|
-
});
|
|
198
|
+
}
|
|
199
|
+
}, 3000);
|
|
221
200
|
});
|
|
222
201
|
}
|
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
4
|
};
|
|
@@ -32,18 +23,16 @@ class FunctionPacker {
|
|
|
32
23
|
this.ignore = ignore;
|
|
33
24
|
this.funcPath = path_1.default.join(root, name);
|
|
34
25
|
}
|
|
35
|
-
getFileCode() {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
return base64;
|
|
46
|
-
});
|
|
26
|
+
async getFileCode() {
|
|
27
|
+
(0, toolbox_1.checkFullAccess)(this.funcPath, true);
|
|
28
|
+
this.tmpPath = path_1.default.join(this.root, `.cloudbase_tmp_${(0, tools_1.random)()}`);
|
|
29
|
+
this.funcDistPath = path_1.default.join(this.tmpPath, this.name);
|
|
30
|
+
await (0, make_dir_1.default)(this.funcDistPath);
|
|
31
|
+
const zipPath = path_1.default.resolve(this.funcDistPath, 'dist.zip');
|
|
32
|
+
await (0, toolbox_1.zipDir)(this.funcPath, zipPath, this.ignore);
|
|
33
|
+
const base64 = fs_1.default.readFileSync(zipPath).toString('base64');
|
|
34
|
+
this.clean();
|
|
35
|
+
return base64;
|
|
47
36
|
}
|
|
48
37
|
getJavaFileCode() {
|
|
49
38
|
const { funcPath } = this;
|
|
@@ -55,29 +44,27 @@ class FunctionPacker {
|
|
|
55
44
|
const packagePath = jarExist ? `${funcPath}.jar` : `${funcPath}.zip`;
|
|
56
45
|
return fs_1.default.readFileSync(packagePath).toString('base64');
|
|
57
46
|
}
|
|
58
|
-
build(type) {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
throw new toolbox_1.CloudBaseError((0, i18n_1.t)('函数代码打包失败:\n {{error}}', { error: error.message }));
|
|
68
|
-
}
|
|
47
|
+
async build(type) {
|
|
48
|
+
if (type === CodeType.JavaFile) {
|
|
49
|
+
try {
|
|
50
|
+
const code = await this.getJavaFileCode();
|
|
51
|
+
return code;
|
|
52
|
+
}
|
|
53
|
+
catch (error) {
|
|
54
|
+
this.clean();
|
|
55
|
+
throw new toolbox_1.CloudBaseError((0, i18n_1.t)('函数代码打包失败:\n {{error}}', { error: error.message }));
|
|
69
56
|
}
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
catch (error) {
|
|
76
|
-
this.clean();
|
|
77
|
-
throw new toolbox_1.CloudBaseError((0, i18n_1.t)('函数代码打包失败:\n {{error}}', { error: error.message }));
|
|
78
|
-
}
|
|
57
|
+
}
|
|
58
|
+
if (type === CodeType.File) {
|
|
59
|
+
try {
|
|
60
|
+
const code = await this.getFileCode();
|
|
61
|
+
return code;
|
|
79
62
|
}
|
|
80
|
-
|
|
63
|
+
catch (error) {
|
|
64
|
+
this.clean();
|
|
65
|
+
throw new toolbox_1.CloudBaseError((0, i18n_1.t)('函数代码打包失败:\n {{error}}', { error: error.message }));
|
|
66
|
+
}
|
|
67
|
+
}
|
|
81
68
|
}
|
|
82
69
|
clean() {
|
|
83
70
|
this.funcDistPath && del_1.default.sync([this.funcDistPath], { force: true });
|
package/lib/utils/log.js
CHANGED
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
4
|
};
|
|
@@ -67,18 +58,16 @@ class Logger {
|
|
|
67
58
|
const clickLink = this.genClickableLink(link);
|
|
68
59
|
this.info(clickLink);
|
|
69
60
|
}
|
|
70
|
-
time(label, fn) {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
return promise;
|
|
81
|
-
});
|
|
61
|
+
async time(label, fn) {
|
|
62
|
+
const promise = typeof fn === 'function' ? fn() : fn;
|
|
63
|
+
if (this.verboseEnabled) {
|
|
64
|
+
this.c.log(label);
|
|
65
|
+
console_1.Console.prototype.time.call(this.c, label);
|
|
66
|
+
const r = await promise;
|
|
67
|
+
console_1.Console.prototype.timeEnd.call(this.c, label);
|
|
68
|
+
return r;
|
|
69
|
+
}
|
|
70
|
+
return promise;
|
|
82
71
|
}
|
|
83
72
|
}
|
|
84
73
|
exports.Logger = Logger;
|