@cloudbase/cli 1.12.7-alpha.4 → 2.0.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/.editorconfig +9 -9
- package/.eslintignore +7 -7
- package/.eslintrc +35 -35
- package/.prettierrc.js +29 -29
- package/.vscode/launch.json +16 -16
- package/.vscode/settings.json +3 -0
- package/LICENSE +5 -5
- package/README.md +35 -35
- package/bin/cloudbase.js +5 -5
- package/bin/tcb.js +0 -0
- package/changelog.md +6 -6
- package/jest.config.js +17 -17
- package/lib/commands/account/login.js +18 -18
- package/lib/commands/run/create.js +6 -1
- package/lib/commands/run/delete.js +6 -1
- package/lib/commands/run/image/common.js +1 -1
- package/lib/commands/run/image/delete.js +5 -0
- package/lib/commands/run/image/download.js +5 -0
- package/lib/commands/run/image/list.js +5 -0
- package/lib/commands/run/image/upload.js +5 -0
- package/lib/commands/run/index.js +1 -0
- package/lib/commands/run/list.js +7 -1
- package/lib/commands/run/service/config.js +112 -0
- package/lib/commands/run/service/create.js +140 -0
- package/lib/commands/run/service/deploy.js +145 -0
- package/lib/commands/run/service/index.js +21 -0
- package/lib/commands/run/service/list.js +115 -0
- package/lib/commands/run/service/update.js +132 -0
- package/lib/commands/run/version/common.js +1 -1
- package/lib/commands/run/version/create.js +5 -0
- package/lib/commands/run/version/delete.js +5 -0
- package/lib/commands/run/version/list.js +5 -0
- package/lib/commands/run/version/modify.js +5 -0
- package/lib/commands/run/version/update.js +5 -0
- package/lib/commands/storage/storage.js +1 -1
- package/lib/constant.js +20 -1
- package/lib/env/login.js +7 -7
- package/lib/help.js +40 -38
- package/lib/run/index.js +1 -0
- package/lib/run/service/common.js +163 -0
- package/lib/run/service/config.js +70 -0
- package/lib/run/service/create.js +67 -0
- package/lib/run/service/deployPackage.js +87 -0
- package/lib/run/service/index.js +23 -0
- package/lib/run/service/list.js +31 -0
- package/lib/run/service/showLogs.js +116 -0
- package/lib/run/service/update.js +83 -0
- package/lib/utils/checkTcbrEnv.js +74 -0
- package/lib/utils/commonParamsCheck.js +48 -0
- package/lib/utils/index.js +3 -0
- package/lib/utils/tcbrApi/callTcbrApi.js +38 -0
- package/lib/utils/tcbrApi/index.js +17 -0
- package/lib/utils/tcbrApi/tcbr-cloud-api/cloud-api-service.js +268 -0
- package/lib/utils/tcbrApi/tcbr-cloud-api/error.js +17 -0
- package/lib/utils/tcbrApi/tcbr-cloud-api/index.js +17 -0
- package/lib/utils/tcbrApi/tcbr-cloud-api/request.js +40 -0
- package/lib/utils/tcbrApi/tcbr-cloud-api-request.js +61 -0
- package/lib/utils/validator.js +32 -1
- package/package.json +88 -88
- package/post-install.js +61 -61
- package/runtime/nodejs/bootstrap.js +255 -255
- package/runtime/nodejs/runtime.js +183 -183
- package/src/auth/index.ts +1 -1
- package/src/auth/login.ts +91 -91
- package/src/auth/logout.ts +7 -7
- package/src/commands/account/index.ts +2 -2
- package/src/commands/account/login.ts +192 -192
- package/src/commands/account/logout.ts +24 -24
- package/src/commands/common.ts +246 -246
- package/src/commands/env/base.ts +90 -90
- package/src/commands/env/create.ts +92 -92
- package/src/commands/env/domain.ts +186 -186
- package/src/commands/env/index.ts +4 -4
- package/src/commands/env/login.ts +235 -235
- package/src/commands/framework/index.ts +124 -124
- package/src/commands/functions/alias/getRoute.ts +76 -76
- package/src/commands/functions/alias/index.ts +2 -2
- package/src/commands/functions/alias/setRoute.ts +82 -82
- package/src/commands/functions/code-download.ts +100 -100
- package/src/commands/functions/code-update.ts +62 -62
- package/src/commands/functions/concurrency/delete.ts +45 -45
- package/src/commands/functions/concurrency/index.ts +2 -2
- package/src/commands/functions/concurrency/list.ts +58 -58
- package/src/commands/functions/concurrency/set.ts +47 -47
- package/src/commands/functions/config-update.ts +76 -76
- package/src/commands/functions/copy.ts +62 -62
- package/src/commands/functions/delete.ts +79 -79
- package/src/commands/functions/deploy.ts +293 -293
- package/src/commands/functions/detail.ts +138 -138
- package/src/commands/functions/index.ts +16 -16
- package/src/commands/functions/invoke.ts +121 -121
- package/src/commands/functions/layer/bind.ts +182 -182
- package/src/commands/functions/layer/common.ts +8 -8
- package/src/commands/functions/layer/create.ts +49 -49
- package/src/commands/functions/layer/delete.ts +73 -73
- package/src/commands/functions/layer/download.ts +92 -92
- package/src/commands/functions/layer/index.ts +7 -7
- package/src/commands/functions/layer/list.ts +94 -94
- package/src/commands/functions/layer/sort.ts +76 -76
- package/src/commands/functions/list.ts +68 -68
- package/src/commands/functions/log.ts +148 -148
- package/src/commands/functions/run.ts +249 -249
- package/src/commands/functions/trigger-create.ts +79 -79
- package/src/commands/functions/trigger-delete.ts +105 -105
- package/src/commands/functions/version/index.ts +1 -1
- package/src/commands/functions/version/list.ts +73 -73
- package/src/commands/functions/version/publish.ts +43 -43
- package/src/commands/gateway/create.ts +109 -109
- package/src/commands/gateway/delete.ts +81 -81
- package/src/commands/gateway/domain.ts +159 -159
- package/src/commands/gateway/index.ts +5 -5
- package/src/commands/gateway/list.ts +76 -76
- package/src/commands/gateway/switch.ts +107 -107
- package/src/commands/helpers/index.ts +2 -2
- package/src/commands/helpers/init.ts +431 -431
- package/src/commands/helpers/new.ts +117 -117
- package/src/commands/helpers/open.ts +67 -67
- package/src/commands/hosting/hosting.ts +360 -360
- package/src/commands/index.ts +13 -13
- package/src/commands/lowcode/app.ts +34 -34
- package/src/commands/lowcode/comps.ts +322 -322
- package/src/commands/lowcode/index.ts +1 -1
- package/src/commands/lowcode/utils.ts +24 -24
- package/src/commands/run/create.ts +9 -2
- package/src/commands/run/delete.ts +8 -2
- package/src/commands/run/image/common.ts +1 -1
- package/src/commands/run/image/delete.ts +8 -1
- package/src/commands/run/image/download.ts +7 -1
- package/src/commands/run/image/index.ts +4 -4
- package/src/commands/run/image/list.ts +7 -2
- package/src/commands/run/image/upload.ts +8 -1
- package/src/commands/run/index.ts +2 -1
- package/src/commands/run/list.ts +11 -3
- package/src/commands/run/service/config.ts +81 -0
- package/src/commands/run/service/create.ts +118 -0
- package/src/commands/run/service/deploy.ts +121 -0
- package/src/commands/run/service/index.ts +5 -0
- package/src/commands/run/service/list.ts +94 -0
- package/src/commands/run/service/update.ts +104 -0
- package/src/commands/run/standalonegateway/common.ts +7 -7
- package/src/commands/run/standalonegateway/create.ts +85 -85
- package/src/commands/run/standalonegateway/destroy.ts +59 -59
- package/src/commands/run/standalonegateway/index.ts +4 -4
- package/src/commands/run/standalonegateway/list.ts +53 -53
- package/src/commands/run/standalonegateway/package.ts +62 -62
- package/src/commands/run/standalonegateway/turn.ts +63 -63
- package/src/commands/run/version/common.ts +1 -1
- package/src/commands/run/version/create.ts +8 -1
- package/src/commands/run/version/delete.ts +8 -2
- package/src/commands/run/version/index.ts +4 -4
- package/src/commands/run/version/list.ts +7 -1
- package/src/commands/run/version/modify.ts +8 -1
- package/src/commands/run/version/update.ts +8 -1
- package/src/commands/smart.ts +132 -132
- package/src/commands/storage/storage.ts +464 -464
- package/src/commands/third/thirdAttach.ts +49 -49
- package/src/completion/index.ts +13 -13
- package/src/constant.ts +35 -1
- package/src/decorators/captureError.ts +25 -25
- package/src/decorators/constants.ts +12 -12
- package/src/decorators/deprecate.ts +25 -25
- package/src/decorators/guard.ts +42 -42
- package/src/decorators/index.ts +7 -7
- package/src/decorators/injectParams.ts +54 -54
- package/src/decorators/params/common.ts +28 -28
- package/src/decorators/params/index.ts +35 -35
- package/src/env/domain.ts +33 -33
- package/src/env/index.ts +63 -63
- package/src/env/login.ts +80 -80
- package/src/error.ts +36 -36
- package/src/function/alias.ts +43 -43
- package/src/function/base.ts +253 -253
- package/src/function/code.ts +55 -55
- package/src/function/concurrency.ts +57 -57
- package/src/function/create.ts +78 -78
- package/src/function/delete.ts +42 -42
- package/src/function/index.ts +10 -10
- package/src/function/layer/attach.ts +68 -68
- package/src/function/layer/create.ts +63 -63
- package/src/function/layer/delete.ts +21 -21
- package/src/function/layer/download.ts +54 -54
- package/src/function/layer/index.ts +7 -7
- package/src/function/layer/list.ts +32 -32
- package/src/function/layer/sort.ts +24 -24
- package/src/function/trigger.ts +97 -97
- package/src/function/update.ts +35 -35
- package/src/function/version.ts +38 -38
- package/src/function/vpc.ts +22 -22
- package/src/gateway/index.ts +137 -137
- package/src/help.ts +50 -48
- package/src/hosting.ts +212 -212
- package/src/index.ts +13 -13
- package/src/logger.ts +17 -17
- package/src/run/create.ts +23 -23
- package/src/run/delete.ts +15 -15
- package/src/run/image/build.ts +36 -36
- package/src/run/image/delete.ts +13 -13
- package/src/run/image/index.ts +3 -3
- package/src/run/image/info.ts +26 -26
- package/src/run/index.ts +2 -1
- package/src/run/list.ts +29 -29
- package/src/run/repo.ts +24 -24
- package/src/run/service/common.ts +206 -0
- package/src/run/service/config.ts +77 -0
- package/src/run/service/create.ts +52 -0
- package/src/run/service/deployPackage.ts +63 -0
- package/src/run/service/index.ts +7 -0
- package/src/run/service/list.ts +29 -0
- package/src/run/service/showLogs.ts +98 -0
- package/src/run/service/update.ts +81 -0
- package/src/run/standalonegateway/create.ts +24 -24
- package/src/run/standalonegateway/destroy.ts +19 -19
- package/src/run/standalonegateway/index.ts +4 -4
- package/src/run/standalonegateway/list.ts +74 -74
- package/src/run/standalonegateway/package/list.ts +24 -24
- package/src/run/standalonegateway/turn/index.ts +1 -1
- package/src/run/standalonegateway/turn/off.ts +19 -19
- package/src/run/standalonegateway/turn/on.ts +19 -19
- package/src/run/version/create.ts +68 -68
- package/src/run/version/delete.ts +15 -15
- package/src/run/version/index.ts +5 -5
- package/src/run/version/list.ts +16 -16
- package/src/run/version/modify.ts +16 -16
- package/src/run/version/repo.ts +27 -27
- package/src/run/version/update.ts +58 -58
- package/src/storage.ts +114 -114
- package/src/third/index.ts +12 -12
- package/src/types.ts +128 -2
- package/src/utils/auth.ts +15 -15
- package/src/utils/checkTcbrEnv.ts +67 -0
- package/src/utils/cli-table.ts +23 -23
- package/src/utils/commonParamsCheck.ts +65 -0
- package/src/utils/config.ts +39 -39
- package/src/utils/env.ts +244 -244
- package/src/utils/fs/del.ts +5 -5
- package/src/utils/fs/index.ts +71 -71
- package/src/utils/function-packer.ts +97 -97
- package/src/utils/index.ts +5 -1
- package/src/utils/log.ts +81 -81
- package/src/utils/net/cloud-api-request.ts +62 -62
- package/src/utils/net/credential.ts +53 -53
- package/src/utils/net/http-request.ts +84 -84
- package/src/utils/net/index.ts +4 -4
- package/src/utils/net/manager-service.ts +36 -36
- package/src/utils/net/proxy.ts +6 -6
- package/src/utils/notice.ts +28 -28
- package/src/utils/output/highlight.ts +5 -5
- package/src/utils/output/index.ts +2 -2
- package/src/utils/output/link.ts +10 -10
- package/src/utils/output/loading.ts +82 -82
- package/src/utils/parallel.ts +82 -82
- package/src/utils/platform/index.ts +2 -2
- package/src/utils/platform/mac.ts +21 -21
- package/src/utils/platform/os.ts +64 -64
- package/src/utils/platform/port.ts +10 -10
- package/src/utils/progress-bar.ts +38 -38
- package/src/utils/prompt/select.ts +59 -59
- package/src/utils/reporter/agree.ts +20 -20
- package/src/utils/reporter/download.ts +26 -26
- package/src/utils/reporter/index.ts +3 -3
- package/src/utils/reporter/usage.ts +20 -20
- package/src/utils/store/auth.ts +49 -49
- package/src/utils/store/common.ts +8 -8
- package/src/utils/store/db.ts +68 -68
- package/src/utils/store/index.ts +4 -4
- package/src/utils/store/usage.ts +12 -12
- package/src/utils/tcbrApi/callTcbrApi.ts +28 -0
- package/src/utils/tcbrApi/index.ts +1 -0
- package/src/utils/tcbrApi/tcbr-cloud-api/cloud-api-service.ts +363 -0
- package/src/utils/tcbrApi/tcbr-cloud-api/error.ts +30 -0
- package/src/utils/tcbrApi/tcbr-cloud-api/index.ts +1 -0
- package/src/utils/tcbrApi/tcbr-cloud-api/request.ts +28 -0
- package/src/utils/tcbrApi/tcbr-cloud-api-request.ts +66 -0
- package/src/utils/template.ts +170 -170
- package/src/utils/tools/encoding.ts +8 -8
- package/src/utils/tools/index.ts +4 -4
- package/src/utils/tools/object.ts +33 -33
- package/src/utils/tools/time.ts +38 -38
- package/src/utils/tools/uid.ts +19 -19
- package/src/utils/validator.ts +64 -32
- package/templates/html/loginFail.html +90 -90
- package/templates/html/loginSuccess.html +86 -86
- package/templates/server/node/_gitignore +54 -54
- package/templates/server/node/cloudbaserc.json +10 -10
- package/templates/server/node/index.js +5 -5
- package/templates/server/node/package.json +9 -9
- package/tsconfig.json +19 -19
- package/tsconfig.test.json +13 -13
- package/types/commands/run/index.d.ts +1 -0
- package/types/commands/run/service/config.d.ts +14 -0
- package/types/commands/run/service/create.d.ts +13 -0
- package/types/commands/run/service/deploy.d.ts +13 -0
- package/types/commands/run/service/index.d.ts +5 -0
- package/types/commands/run/service/list.d.ts +13 -0
- package/types/commands/run/service/update.d.ts +13 -0
- package/types/constant.d.ts +18 -0
- package/types/run/index.d.ts +1 -0
- package/types/run/service/common.d.ts +32 -0
- package/types/run/service/config.d.ts +23 -0
- package/types/run/service/create.d.ts +7 -0
- package/types/run/service/deployPackage.d.ts +11 -0
- package/types/run/service/index.d.ts +7 -0
- package/types/run/service/list.d.ts +2 -0
- package/types/run/service/showLogs.d.ts +2 -0
- package/types/run/service/update.d.ts +2 -0
- package/types/types.d.ts +116 -2
- package/types/utils/checkTcbrEnv.d.ts +3 -0
- package/types/utils/commonParamsCheck.d.ts +3 -0
- package/types/utils/index.d.ts +3 -0
- package/types/utils/tcbrApi/callTcbrApi.d.ts +1 -0
- package/types/utils/tcbrApi/index.d.ts +1 -0
- package/types/utils/tcbrApi/tcbr-cloud-api/cloud-api-service.d.ts +51 -0
- package/types/utils/tcbrApi/tcbr-cloud-api/error.d.ts +20 -0
- package/types/utils/tcbrApi/tcbr-cloud-api/index.d.ts +1 -0
- package/types/utils/tcbrApi/tcbr-cloud-api/request.d.ts +4 -0
- package/types/utils/tcbrApi/tcbr-cloud-api-request.d.ts +9 -0
- package/types/utils/validator.d.ts +4 -0
|
@@ -1,84 +1,84 @@
|
|
|
1
|
-
import _fetch, { RequestInit } from 'node-fetch'
|
|
2
|
-
import HttpsProxyAgent from 'https-proxy-agent'
|
|
3
|
-
import { REQUEST_TIMEOUT } from '../../constant'
|
|
4
|
-
import { CloudBaseError } from '../../error'
|
|
5
|
-
import { getProxy } from './proxy'
|
|
6
|
-
|
|
7
|
-
function handleTimeout(e) {
|
|
8
|
-
if (e.type === 'request-timeout') {
|
|
9
|
-
throw new CloudBaseError(
|
|
10
|
-
'请求超时,请检查你的网络,如果终端无法直接访问公网,请设置终端 HTTP 请求代理!'
|
|
11
|
-
)
|
|
12
|
-
} else {
|
|
13
|
-
// 其他错误,抛出
|
|
14
|
-
throw e
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
// 使用 fetch + 代理
|
|
19
|
-
export async function fetch(url: string, config: RequestInit = {}) {
|
|
20
|
-
const proxy = getProxy()
|
|
21
|
-
if (proxy) {
|
|
22
|
-
config.agent = new HttpsProxyAgent(proxy)
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
config.timeout = REQUEST_TIMEOUT
|
|
26
|
-
|
|
27
|
-
let json
|
|
28
|
-
let text
|
|
29
|
-
try {
|
|
30
|
-
const res = await _fetch(url, config)
|
|
31
|
-
text = await res.text()
|
|
32
|
-
json = JSON.parse(text)
|
|
33
|
-
} catch (e) {
|
|
34
|
-
handleTimeout(e)
|
|
35
|
-
json = text
|
|
36
|
-
}
|
|
37
|
-
return json
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
// 使用 fetch + 代理
|
|
41
|
-
export async function postFetch(url: string, data?: Record<string, any>) {
|
|
42
|
-
const proxy = getProxy()
|
|
43
|
-
const config: RequestInit = {
|
|
44
|
-
method: 'POST',
|
|
45
|
-
headers: {
|
|
46
|
-
'Content-Type': 'application/json'
|
|
47
|
-
},
|
|
48
|
-
body: JSON.stringify(data)
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
if (proxy) {
|
|
52
|
-
config.agent = new HttpsProxyAgent(proxy)
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
config.timeout = REQUEST_TIMEOUT
|
|
56
|
-
|
|
57
|
-
let json
|
|
58
|
-
let text
|
|
59
|
-
try {
|
|
60
|
-
const res = await _fetch(url, config)
|
|
61
|
-
text = await res.text()
|
|
62
|
-
json = JSON.parse(text)
|
|
63
|
-
} catch (e) {
|
|
64
|
-
handleTimeout(e)
|
|
65
|
-
json = text
|
|
66
|
-
}
|
|
67
|
-
return json
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
export async function fetchStream(url, config: Record<string, any> = {}) {
|
|
71
|
-
const proxy = getProxy()
|
|
72
|
-
if (proxy) {
|
|
73
|
-
config.agent = new HttpsProxyAgent(proxy)
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
config.timeout = REQUEST_TIMEOUT
|
|
77
|
-
|
|
78
|
-
try {
|
|
79
|
-
const res = await _fetch(url, config)
|
|
80
|
-
return res
|
|
81
|
-
} catch (e) {
|
|
82
|
-
handleTimeout(e)
|
|
83
|
-
}
|
|
84
|
-
}
|
|
1
|
+
import _fetch, { RequestInit } from 'node-fetch'
|
|
2
|
+
import HttpsProxyAgent from 'https-proxy-agent'
|
|
3
|
+
import { REQUEST_TIMEOUT } from '../../constant'
|
|
4
|
+
import { CloudBaseError } from '../../error'
|
|
5
|
+
import { getProxy } from './proxy'
|
|
6
|
+
|
|
7
|
+
function handleTimeout(e) {
|
|
8
|
+
if (e.type === 'request-timeout') {
|
|
9
|
+
throw new CloudBaseError(
|
|
10
|
+
'请求超时,请检查你的网络,如果终端无法直接访问公网,请设置终端 HTTP 请求代理!'
|
|
11
|
+
)
|
|
12
|
+
} else {
|
|
13
|
+
// 其他错误,抛出
|
|
14
|
+
throw e
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
// 使用 fetch + 代理
|
|
19
|
+
export async function fetch(url: string, config: RequestInit = {}) {
|
|
20
|
+
const proxy = getProxy()
|
|
21
|
+
if (proxy) {
|
|
22
|
+
config.agent = new HttpsProxyAgent(proxy)
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
config.timeout = REQUEST_TIMEOUT
|
|
26
|
+
|
|
27
|
+
let json
|
|
28
|
+
let text
|
|
29
|
+
try {
|
|
30
|
+
const res = await _fetch(url, config)
|
|
31
|
+
text = await res.text()
|
|
32
|
+
json = JSON.parse(text)
|
|
33
|
+
} catch (e) {
|
|
34
|
+
handleTimeout(e)
|
|
35
|
+
json = text
|
|
36
|
+
}
|
|
37
|
+
return json
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
// 使用 fetch + 代理
|
|
41
|
+
export async function postFetch(url: string, data?: Record<string, any>) {
|
|
42
|
+
const proxy = getProxy()
|
|
43
|
+
const config: RequestInit = {
|
|
44
|
+
method: 'POST',
|
|
45
|
+
headers: {
|
|
46
|
+
'Content-Type': 'application/json'
|
|
47
|
+
},
|
|
48
|
+
body: JSON.stringify(data)
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
if (proxy) {
|
|
52
|
+
config.agent = new HttpsProxyAgent(proxy)
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
config.timeout = REQUEST_TIMEOUT
|
|
56
|
+
|
|
57
|
+
let json
|
|
58
|
+
let text
|
|
59
|
+
try {
|
|
60
|
+
const res = await _fetch(url, config)
|
|
61
|
+
text = await res.text()
|
|
62
|
+
json = JSON.parse(text)
|
|
63
|
+
} catch (e) {
|
|
64
|
+
handleTimeout(e)
|
|
65
|
+
json = text
|
|
66
|
+
}
|
|
67
|
+
return json
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
export async function fetchStream(url, config: Record<string, any> = {}) {
|
|
71
|
+
const proxy = getProxy()
|
|
72
|
+
if (proxy) {
|
|
73
|
+
config.agent = new HttpsProxyAgent(proxy)
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
config.timeout = REQUEST_TIMEOUT
|
|
77
|
+
|
|
78
|
+
try {
|
|
79
|
+
const res = await _fetch(url, config)
|
|
80
|
+
return res
|
|
81
|
+
} catch (e) {
|
|
82
|
+
handleTimeout(e)
|
|
83
|
+
}
|
|
84
|
+
}
|
package/src/utils/net/index.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export * from './proxy'
|
|
2
|
-
export * from './credential'
|
|
3
|
-
export * from './http-request'
|
|
4
|
-
export * from './manager-service'
|
|
1
|
+
export * from './proxy'
|
|
2
|
+
export * from './credential'
|
|
3
|
+
export * from './http-request'
|
|
4
|
+
export * from './manager-service'
|
|
5
5
|
export * from './cloud-api-request'
|
|
@@ -1,36 +1,36 @@
|
|
|
1
|
-
import CloudBase from '@cloudbase/manager-node'
|
|
2
|
-
import { StorageService } from '@cloudbase/manager-node/types/storage'
|
|
3
|
-
import { getRegion } from '@cloudbase/toolbox'
|
|
4
|
-
import { checkAndGetCredential } from './credential'
|
|
5
|
-
import { getProxy } from './proxy'
|
|
6
|
-
|
|
7
|
-
export async function getMangerService(envId = ''): Promise<CloudBase> {
|
|
8
|
-
const { secretId, secretKey, token } = await checkAndGetCredential(true)
|
|
9
|
-
const region = await getRegion()
|
|
10
|
-
|
|
11
|
-
const app = new CloudBase({
|
|
12
|
-
token,
|
|
13
|
-
envId,
|
|
14
|
-
region,
|
|
15
|
-
secretId,
|
|
16
|
-
secretKey,
|
|
17
|
-
proxy: getProxy()
|
|
18
|
-
})
|
|
19
|
-
|
|
20
|
-
return app
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
export async function getStorageService(envId: string): Promise<StorageService> {
|
|
24
|
-
const { secretId, secretKey, token } = await checkAndGetCredential(true)
|
|
25
|
-
const region = await getRegion()
|
|
26
|
-
|
|
27
|
-
const app = new CloudBase({
|
|
28
|
-
token,
|
|
29
|
-
envId,
|
|
30
|
-
secretId,
|
|
31
|
-
region,
|
|
32
|
-
secretKey,
|
|
33
|
-
proxy: getProxy()
|
|
34
|
-
})
|
|
35
|
-
return app.storage
|
|
36
|
-
}
|
|
1
|
+
import CloudBase from '@cloudbase/manager-node'
|
|
2
|
+
import { StorageService } from '@cloudbase/manager-node/types/storage'
|
|
3
|
+
import { getRegion } from '@cloudbase/toolbox'
|
|
4
|
+
import { checkAndGetCredential } from './credential'
|
|
5
|
+
import { getProxy } from './proxy'
|
|
6
|
+
|
|
7
|
+
export async function getMangerService(envId = ''): Promise<CloudBase> {
|
|
8
|
+
const { secretId, secretKey, token } = await checkAndGetCredential(true)
|
|
9
|
+
const region = await getRegion()
|
|
10
|
+
|
|
11
|
+
const app = new CloudBase({
|
|
12
|
+
token,
|
|
13
|
+
envId,
|
|
14
|
+
region,
|
|
15
|
+
secretId,
|
|
16
|
+
secretKey,
|
|
17
|
+
proxy: getProxy()
|
|
18
|
+
})
|
|
19
|
+
|
|
20
|
+
return app
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export async function getStorageService(envId: string): Promise<StorageService> {
|
|
24
|
+
const { secretId, secretKey, token } = await checkAndGetCredential(true)
|
|
25
|
+
const region = await getRegion()
|
|
26
|
+
|
|
27
|
+
const app = new CloudBase({
|
|
28
|
+
token,
|
|
29
|
+
envId,
|
|
30
|
+
secretId,
|
|
31
|
+
region,
|
|
32
|
+
secretKey,
|
|
33
|
+
proxy: getProxy()
|
|
34
|
+
})
|
|
35
|
+
return app.storage
|
|
36
|
+
}
|
package/src/utils/net/proxy.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
// 解析 Proxy 配置
|
|
2
|
-
export function getProxy(): string {
|
|
3
|
-
const httpProxy = process.env.http_proxy || process.env.HTTP_PROXY
|
|
4
|
-
const isTestMode = process.env.TCB_TEST_MODE
|
|
5
|
-
return isTestMode ? process.env.TCB_TEST_PROXY || httpProxy : httpProxy
|
|
6
|
-
}
|
|
1
|
+
// 解析 Proxy 配置
|
|
2
|
+
export function getProxy(): string {
|
|
3
|
+
const httpProxy = process.env.http_proxy || process.env.HTTP_PROXY
|
|
4
|
+
const isTestMode = process.env.TCB_TEST_MODE
|
|
5
|
+
return isTestMode ? process.env.TCB_TEST_PROXY || httpProxy : httpProxy
|
|
6
|
+
}
|
package/src/utils/notice.ts
CHANGED
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
import { postFetch } from './net'
|
|
2
|
-
import { commonStore } from './store'
|
|
3
|
-
|
|
4
|
-
const url = 'https://tcli.service.tcloudbase.com/notify'
|
|
5
|
-
|
|
6
|
-
// 获取通知,最多每天获取一次
|
|
7
|
-
const ONE_DAY = 86400000
|
|
8
|
-
|
|
9
|
-
export async function getNotification() {
|
|
10
|
-
// 不再获取通知
|
|
11
|
-
return null
|
|
12
|
-
const now = Date.now()
|
|
13
|
-
// 上次记录的时间
|
|
14
|
-
const lastTime = await commonStore.get('lastNotifyTime')
|
|
15
|
-
const diff = now - Number(lastTime)
|
|
16
|
-
const day = new Date(lastTime).getDay()
|
|
17
|
-
const today = new Date().getDay()
|
|
18
|
-
// 日期不同,且时差小于 1 天
|
|
19
|
-
if (day === today && diff < ONE_DAY) return null
|
|
20
|
-
const lastUid = await commonStore.get('lastNotificationUid')
|
|
21
|
-
const data = await postFetch(url)
|
|
22
|
-
const uid = data?.uid || 0
|
|
23
|
-
// 消息已读
|
|
24
|
-
if (Number(lastUid) >= Number(uid)) return
|
|
25
|
-
await commonStore.set('readNotificationUid', data.uid)
|
|
26
|
-
await commonStore.set('lastNotifyTime', Date.now())
|
|
27
|
-
return data
|
|
28
|
-
}
|
|
1
|
+
import { postFetch } from './net'
|
|
2
|
+
import { commonStore } from './store'
|
|
3
|
+
|
|
4
|
+
const url = 'https://tcli.service.tcloudbase.com/notify'
|
|
5
|
+
|
|
6
|
+
// 获取通知,最多每天获取一次
|
|
7
|
+
const ONE_DAY = 86400000
|
|
8
|
+
|
|
9
|
+
export async function getNotification() {
|
|
10
|
+
// 不再获取通知
|
|
11
|
+
return null
|
|
12
|
+
const now = Date.now()
|
|
13
|
+
// 上次记录的时间
|
|
14
|
+
const lastTime = await commonStore.get('lastNotifyTime')
|
|
15
|
+
const diff = now - Number(lastTime)
|
|
16
|
+
const day = new Date(lastTime).getDay()
|
|
17
|
+
const today = new Date().getDay()
|
|
18
|
+
// 日期不同,且时差小于 1 天
|
|
19
|
+
if (day === today && diff < ONE_DAY) return null
|
|
20
|
+
const lastUid = await commonStore.get('lastNotificationUid')
|
|
21
|
+
const data = await postFetch(url)
|
|
22
|
+
const uid = data?.uid || 0
|
|
23
|
+
// 消息已读
|
|
24
|
+
if (Number(lastUid) >= Number(uid)) return
|
|
25
|
+
await commonStore.set('readNotificationUid', data.uid)
|
|
26
|
+
await commonStore.set('lastNotifyTime', Date.now())
|
|
27
|
+
return data
|
|
28
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import chalk from 'chalk'
|
|
2
|
-
|
|
3
|
-
export function highlightCommand(command: string) {
|
|
4
|
-
return chalk.bold.cyan(command)
|
|
5
|
-
}
|
|
1
|
+
import chalk from 'chalk'
|
|
2
|
+
|
|
3
|
+
export function highlightCommand(command: string) {
|
|
4
|
+
return chalk.bold.cyan(command)
|
|
5
|
+
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * from './loading'
|
|
2
|
-
export * from './link'
|
|
1
|
+
export * from './loading'
|
|
2
|
+
export * from './link'
|
|
3
3
|
export * from './highlight'
|
package/src/utils/output/link.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import chalk from 'chalk'
|
|
2
|
-
import terminalLink from 'terminal-link'
|
|
3
|
-
|
|
4
|
-
export function genClickableLink(link: string) {
|
|
5
|
-
if (terminalLink.isSupported) {
|
|
6
|
-
const clickablelink = terminalLink(link, link)
|
|
7
|
-
return chalk.bold.cyan(clickablelink)
|
|
8
|
-
}
|
|
9
|
-
return chalk.bold.underline.cyan(link)
|
|
10
|
-
}
|
|
1
|
+
import chalk from 'chalk'
|
|
2
|
+
import terminalLink from 'terminal-link'
|
|
3
|
+
|
|
4
|
+
export function genClickableLink(link: string) {
|
|
5
|
+
if (terminalLink.isSupported) {
|
|
6
|
+
const clickablelink = terminalLink(link, link)
|
|
7
|
+
return chalk.bold.cyan(clickablelink)
|
|
8
|
+
}
|
|
9
|
+
return chalk.bold.underline.cyan(link)
|
|
10
|
+
}
|
|
@@ -1,82 +1,82 @@
|
|
|
1
|
-
import ora from 'ora'
|
|
2
|
-
|
|
3
|
-
class Loading {
|
|
4
|
-
private spinner: ReturnType<typeof ora>
|
|
5
|
-
|
|
6
|
-
constructor() {
|
|
7
|
-
// @ts-ignore
|
|
8
|
-
process.on('tcbExit', this.stop.bind(this))
|
|
9
|
-
// @ts-ignore
|
|
10
|
-
process.on('tcbError', this.stop.bind(this))
|
|
11
|
-
this.spinner = ora({
|
|
12
|
-
discardStdin: false
|
|
13
|
-
})
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
// eslint-disable-next-line
|
|
17
|
-
set text(text: string) {
|
|
18
|
-
this.spinner.text = text
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
start(text: string) {
|
|
22
|
-
this.spinner = this.spinner.start(text)
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
stop() {
|
|
26
|
-
if (this.spinner) {
|
|
27
|
-
this.spinner = this.spinner.stop()
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
succeed(text: string) {
|
|
32
|
-
if (this.spinner) {
|
|
33
|
-
this.spinner = this.spinner.succeed(text)
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
fail(text: string) {
|
|
38
|
-
if (this.spinner) {
|
|
39
|
-
this.spinner = this.spinner.fail(text)
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
export const loadingFactory = (): Loading => {
|
|
45
|
-
return new Loading()
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
type Task<T> = (flush: (text: string) => void, ...args: any[]) => Promise<T>
|
|
49
|
-
|
|
50
|
-
export interface ILoadingOptions {
|
|
51
|
-
startTip?: string
|
|
52
|
-
successTip?: string
|
|
53
|
-
failTip?: string
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* 执行异步任务,显示 loading 动画
|
|
58
|
-
* @param task
|
|
59
|
-
* @param options
|
|
60
|
-
*/
|
|
61
|
-
export const execWithLoading = async <T>(
|
|
62
|
-
task: Task<T>,
|
|
63
|
-
options: ILoadingOptions = {}
|
|
64
|
-
): Promise<T> => {
|
|
65
|
-
const { startTip, successTip, failTip } = options
|
|
66
|
-
const loading = loadingFactory()
|
|
67
|
-
|
|
68
|
-
// 刷新 loading 提示
|
|
69
|
-
const flush = (text: string) => {
|
|
70
|
-
loading.text = text
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
try {
|
|
74
|
-
loading.start(startTip)
|
|
75
|
-
const res = await task(flush)
|
|
76
|
-
successTip ? loading.succeed(successTip) : loading.stop()
|
|
77
|
-
return res
|
|
78
|
-
} catch (e) {
|
|
79
|
-
failTip ? loading.fail(failTip) : loading.stop()
|
|
80
|
-
throw e
|
|
81
|
-
}
|
|
82
|
-
}
|
|
1
|
+
import ora from 'ora'
|
|
2
|
+
|
|
3
|
+
class Loading {
|
|
4
|
+
private spinner: ReturnType<typeof ora>
|
|
5
|
+
|
|
6
|
+
constructor() {
|
|
7
|
+
// @ts-ignore
|
|
8
|
+
process.on('tcbExit', this.stop.bind(this))
|
|
9
|
+
// @ts-ignore
|
|
10
|
+
process.on('tcbError', this.stop.bind(this))
|
|
11
|
+
this.spinner = ora({
|
|
12
|
+
discardStdin: false
|
|
13
|
+
})
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
// eslint-disable-next-line
|
|
17
|
+
set text(text: string) {
|
|
18
|
+
this.spinner.text = text
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
start(text: string) {
|
|
22
|
+
this.spinner = this.spinner.start(text)
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
stop() {
|
|
26
|
+
if (this.spinner) {
|
|
27
|
+
this.spinner = this.spinner.stop()
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
succeed(text: string) {
|
|
32
|
+
if (this.spinner) {
|
|
33
|
+
this.spinner = this.spinner.succeed(text)
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
fail(text: string) {
|
|
38
|
+
if (this.spinner) {
|
|
39
|
+
this.spinner = this.spinner.fail(text)
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export const loadingFactory = (): Loading => {
|
|
45
|
+
return new Loading()
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
type Task<T> = (flush: (text: string) => void, ...args: any[]) => Promise<T>
|
|
49
|
+
|
|
50
|
+
export interface ILoadingOptions {
|
|
51
|
+
startTip?: string
|
|
52
|
+
successTip?: string
|
|
53
|
+
failTip?: string
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* 执行异步任务,显示 loading 动画
|
|
58
|
+
* @param task
|
|
59
|
+
* @param options
|
|
60
|
+
*/
|
|
61
|
+
export const execWithLoading = async <T>(
|
|
62
|
+
task: Task<T>,
|
|
63
|
+
options: ILoadingOptions = {}
|
|
64
|
+
): Promise<T> => {
|
|
65
|
+
const { startTip, successTip, failTip } = options
|
|
66
|
+
const loading = loadingFactory()
|
|
67
|
+
|
|
68
|
+
// 刷新 loading 提示
|
|
69
|
+
const flush = (text: string) => {
|
|
70
|
+
loading.text = text
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
try {
|
|
74
|
+
loading.start(startTip)
|
|
75
|
+
const res = await task(flush)
|
|
76
|
+
successTip ? loading.succeed(successTip) : loading.stop()
|
|
77
|
+
return res
|
|
78
|
+
} catch (e) {
|
|
79
|
+
failTip ? loading.fail(failTip) : loading.stop()
|
|
80
|
+
throw e
|
|
81
|
+
}
|
|
82
|
+
}
|