@cloudbase/cli 2.0.12-alpha.1 → 2.0.13
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/.vscode/launch.json +0 -10
- package/.vscode/settings.json +3 -0
- package/bin/cloudbase.js +0 -0
- package/bin/tcb.js +0 -0
- package/lib/commands/lowcode/app.js +2 -30
- package/lib/run/service/deployPackage.js +2 -9
- package/lib/utils/checkTcbrEnv.js +5 -4
- package/lib/utils/debug-logger.js +30 -0
- package/lib/utils/net/cloud-api-request.js +7 -1
- package/lib/utils/net/http-request.js +16 -5
- package/package.json +5 -4
- package/types/commands/lowcode/app.d.ts +0 -10
- package/types/utils/debug-logger.d.ts +1 -0
- package/types/utils/net/http-request.d.ts +6 -2
- package/.history/.gitignore_20220624162613 +0 -84
- package/.history/.gitignore_20220627114054 +0 -86
- package/.history/package_20220711204706.json +0 -88
- package/.history/package_20220711204818.json +0 -88
- package/.history/package_20220712151717.json +0 -88
- package/.history/src/commands/lowcode/app_20220624162613.ts +0 -34
- package/.history/src/commands/lowcode/app_20220627114205.ts +0 -52
- package/.history/src/index_20220624162613.ts +0 -13
- package/.history/src/index_20220627113609.ts +0 -15
- package/.history/src/index_20220627114102.ts +0 -13
- package/src/auth/index.ts +0 -2
- package/src/auth/login.ts +0 -91
- package/src/auth/logout.ts +0 -7
- package/src/commands/account/index.ts +0 -2
- package/src/commands/account/login.ts +0 -192
- package/src/commands/account/logout.ts +0 -24
- package/src/commands/common.ts +0 -246
- package/src/commands/env/base.ts +0 -90
- package/src/commands/env/create.ts +0 -92
- package/src/commands/env/domain.ts +0 -186
- package/src/commands/env/index.ts +0 -4
- package/src/commands/env/login.ts +0 -235
- package/src/commands/framework/index.ts +0 -124
- package/src/commands/functions/alias/getRoute.ts +0 -76
- package/src/commands/functions/alias/index.ts +0 -2
- package/src/commands/functions/alias/setRoute.ts +0 -82
- package/src/commands/functions/code-download.ts +0 -100
- package/src/commands/functions/code-update.ts +0 -62
- package/src/commands/functions/concurrency/delete.ts +0 -45
- package/src/commands/functions/concurrency/index.ts +0 -3
- package/src/commands/functions/concurrency/list.ts +0 -58
- package/src/commands/functions/concurrency/set.ts +0 -47
- package/src/commands/functions/config-update.ts +0 -76
- package/src/commands/functions/copy.ts +0 -62
- package/src/commands/functions/delete.ts +0 -79
- package/src/commands/functions/deploy.ts +0 -293
- package/src/commands/functions/detail.ts +0 -138
- package/src/commands/functions/index.ts +0 -16
- package/src/commands/functions/invoke.ts +0 -121
- package/src/commands/functions/layer/bind.ts +0 -182
- package/src/commands/functions/layer/common.ts +0 -8
- package/src/commands/functions/layer/create.ts +0 -49
- package/src/commands/functions/layer/delete.ts +0 -73
- package/src/commands/functions/layer/download.ts +0 -92
- package/src/commands/functions/layer/index.ts +0 -7
- package/src/commands/functions/layer/list.ts +0 -94
- package/src/commands/functions/layer/sort.ts +0 -76
- package/src/commands/functions/list.ts +0 -68
- package/src/commands/functions/log.ts +0 -148
- package/src/commands/functions/run.ts +0 -249
- package/src/commands/functions/trigger-create.ts +0 -79
- package/src/commands/functions/trigger-delete.ts +0 -105
- package/src/commands/functions/version/index.ts +0 -2
- package/src/commands/functions/version/list.ts +0 -73
- package/src/commands/functions/version/publish.ts +0 -43
- package/src/commands/gateway/create.ts +0 -109
- package/src/commands/gateway/delete.ts +0 -81
- package/src/commands/gateway/domain.ts +0 -159
- package/src/commands/gateway/index.ts +0 -5
- package/src/commands/gateway/list.ts +0 -76
- package/src/commands/gateway/switch.ts +0 -107
- package/src/commands/helpers/index.ts +0 -3
- package/src/commands/helpers/init.ts +0 -431
- package/src/commands/helpers/new.ts +0 -117
- package/src/commands/helpers/open.ts +0 -67
- package/src/commands/hosting/hosting.ts +0 -360
- package/src/commands/hosting/index.ts +0 -1
- package/src/commands/index.ts +0 -13
- package/src/commands/lowcode/app.ts +0 -52
- package/src/commands/lowcode/comps.ts +0 -325
- package/src/commands/lowcode/index.ts +0 -2
- package/src/commands/lowcode/utils.ts +0 -25
- package/src/commands/run/create.ts +0 -153
- package/src/commands/run/delete.ts +0 -77
- package/src/commands/run/image/common.ts +0 -8
- package/src/commands/run/image/delete.ts +0 -68
- package/src/commands/run/image/download.ts +0 -68
- package/src/commands/run/image/index.ts +0 -5
- package/src/commands/run/image/list.ts +0 -84
- package/src/commands/run/image/upload.ts +0 -76
- package/src/commands/run/index.ts +0 -7
- package/src/commands/run/list.ts +0 -83
- package/src/commands/run/service/config.ts +0 -81
- package/src/commands/run/service/create.ts +0 -122
- package/src/commands/run/service/deploy.ts +0 -125
- package/src/commands/run/service/index.ts +0 -5
- package/src/commands/run/service/list.ts +0 -94
- package/src/commands/run/service/update.ts +0 -108
- package/src/commands/run/standalonegateway/common.ts +0 -8
- package/src/commands/run/standalonegateway/create.ts +0 -85
- package/src/commands/run/standalonegateway/destroy.ts +0 -59
- package/src/commands/run/standalonegateway/index.ts +0 -5
- package/src/commands/run/standalonegateway/list.ts +0 -53
- package/src/commands/run/standalonegateway/package.ts +0 -62
- package/src/commands/run/standalonegateway/turn.ts +0 -63
- package/src/commands/run/version/common.ts +0 -8
- package/src/commands/run/version/create.ts +0 -369
- package/src/commands/run/version/delete.ts +0 -64
- package/src/commands/run/version/index.ts +0 -5
- package/src/commands/run/version/list.ts +0 -91
- package/src/commands/run/version/modify.ts +0 -137
- package/src/commands/run/version/update.ts +0 -398
- package/src/commands/smart.ts +0 -132
- package/src/commands/storage/index.ts +0 -1
- package/src/commands/storage/storage.ts +0 -464
- package/src/commands/third/index.ts +0 -1
- package/src/commands/third/thirdAttach.ts +0 -49
- package/src/completion/index.ts +0 -13
- package/src/constant.ts +0 -154
- package/src/decorators/captureError.ts +0 -25
- package/src/decorators/constants.ts +0 -12
- package/src/decorators/deprecate.ts +0 -25
- package/src/decorators/guard.ts +0 -42
- package/src/decorators/index.ts +0 -7
- package/src/decorators/injectParams.ts +0 -54
- package/src/decorators/params/common.ts +0 -28
- package/src/decorators/params/index.ts +0 -35
- package/src/env/domain.ts +0 -33
- package/src/env/index.ts +0 -63
- package/src/env/login.ts +0 -80
- package/src/error.ts +0 -36
- package/src/function/alias.ts +0 -43
- package/src/function/base.ts +0 -253
- package/src/function/code.ts +0 -55
- package/src/function/concurrency.ts +0 -57
- package/src/function/create.ts +0 -78
- package/src/function/delete.ts +0 -42
- package/src/function/index.ts +0 -11
- package/src/function/layer/attach.ts +0 -68
- package/src/function/layer/create.ts +0 -63
- package/src/function/layer/delete.ts +0 -21
- package/src/function/layer/download.ts +0 -54
- package/src/function/layer/index.ts +0 -7
- package/src/function/layer/list.ts +0 -32
- package/src/function/layer/sort.ts +0 -24
- package/src/function/trigger.ts +0 -97
- package/src/function/update.ts +0 -35
- package/src/function/version.ts +0 -39
- package/src/function/vpc.ts +0 -22
- package/src/gateway/index.ts +0 -137
- package/src/help.ts +0 -50
- package/src/hosting.ts +0 -212
- package/src/index.ts +0 -13
- package/src/logger.ts +0 -17
- package/src/run/create.ts +0 -23
- package/src/run/delete.ts +0 -15
- package/src/run/image/build.ts +0 -36
- package/src/run/image/delete.ts +0 -14
- package/src/run/image/index.ts +0 -4
- package/src/run/image/info.ts +0 -27
- package/src/run/image/list.ts +0 -23
- package/src/run/index.ts +0 -8
- package/src/run/list.ts +0 -30
- package/src/run/repo.ts +0 -25
- package/src/run/service/common.ts +0 -311
- package/src/run/service/config.ts +0 -77
- package/src/run/service/create.ts +0 -52
- package/src/run/service/deployPackage.ts +0 -65
- package/src/run/service/index.ts +0 -7
- package/src/run/service/list.ts +0 -29
- package/src/run/service/showLogs.ts +0 -98
- package/src/run/service/update.ts +0 -82
- package/src/run/standalonegateway/create.ts +0 -24
- package/src/run/standalonegateway/destroy.ts +0 -19
- package/src/run/standalonegateway/index.ts +0 -5
- package/src/run/standalonegateway/list.ts +0 -74
- package/src/run/standalonegateway/package/index.ts +0 -1
- package/src/run/standalonegateway/package/list.ts +0 -24
- package/src/run/standalonegateway/turn/index.ts +0 -2
- package/src/run/standalonegateway/turn/off.ts +0 -19
- package/src/run/standalonegateway/turn/on.ts +0 -19
- package/src/run/version/create.ts +0 -68
- package/src/run/version/delete.ts +0 -16
- package/src/run/version/index.ts +0 -6
- package/src/run/version/list.ts +0 -17
- package/src/run/version/modify.ts +0 -17
- package/src/run/version/repo.ts +0 -28
- package/src/run/version/update.ts +0 -59
- package/src/storage.ts +0 -114
- package/src/third/index.ts +0 -13
- package/src/types.ts +0 -672
- package/src/utils/auth.ts +0 -15
- package/src/utils/checkTcbrEnv.ts +0 -67
- package/src/utils/cli-table.ts +0 -23
- package/src/utils/commonParamsCheck.ts +0 -65
- package/src/utils/config.ts +0 -39
- package/src/utils/env.ts +0 -244
- package/src/utils/fs/del.ts +0 -5
- package/src/utils/fs/index.ts +0 -71
- package/src/utils/function-packer.ts +0 -97
- package/src/utils/index.ts +0 -25
- package/src/utils/log.ts +0 -82
- package/src/utils/net/cloud-api-request.ts +0 -62
- package/src/utils/net/credential.ts +0 -53
- package/src/utils/net/http-request.ts +0 -84
- package/src/utils/net/index.ts +0 -5
- package/src/utils/net/manager-service.ts +0 -36
- package/src/utils/net/proxy.ts +0 -6
- package/src/utils/notice.ts +0 -28
- package/src/utils/output/highlight.ts +0 -5
- package/src/utils/output/index.ts +0 -3
- package/src/utils/output/link.ts +0 -10
- package/src/utils/output/loading.ts +0 -82
- package/src/utils/parallel.ts +0 -82
- package/src/utils/platform/index.ts +0 -3
- package/src/utils/platform/mac.ts +0 -21
- package/src/utils/platform/os.ts +0 -64
- package/src/utils/platform/port.ts +0 -10
- package/src/utils/progress-bar.ts +0 -38
- package/src/utils/prompt/index.ts +0 -1
- package/src/utils/prompt/select.ts +0 -60
- package/src/utils/reporter/agree.ts +0 -20
- package/src/utils/reporter/download.ts +0 -26
- package/src/utils/reporter/index.ts +0 -3
- package/src/utils/reporter/usage.ts +0 -20
- package/src/utils/store/auth.ts +0 -49
- package/src/utils/store/common.ts +0 -8
- package/src/utils/store/db.ts +0 -68
- package/src/utils/store/index.ts +0 -5
- package/src/utils/store/usage.ts +0 -12
- package/src/utils/tcbrApi/callTcbrApi.ts +0 -28
- package/src/utils/tcbrApi/index.ts +0 -1
- package/src/utils/template.ts +0 -170
- package/src/utils/tools/encoding.ts +0 -8
- package/src/utils/tools/index.ts +0 -4
- package/src/utils/tools/object.ts +0 -33
- package/src/utils/tools/time.ts +0 -38
- package/src/utils/tools/uid.ts +0 -19
- package/src/utils/validator.ts +0 -65
- package/yarn-error.log +0 -12841
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@cloudbase/cli",
|
|
3
|
-
"version": "2.0.12-alpha.0",
|
|
4
|
-
"description": "cli tool for cloudbase",
|
|
5
|
-
"main": "lib/index.js",
|
|
6
|
-
"scripts": {
|
|
7
|
-
"build": "rimraf lib types && tsc",
|
|
8
|
-
"watch": "rimraf lib types && tsc -w",
|
|
9
|
-
"dev": "rimraf lib types && tsc -w",
|
|
10
|
-
"eslint": "eslint \"./**/*.ts\"",
|
|
11
|
-
"test": "jest --runInBand --forceExit --detectOpenHandles --coverage --verbose --testTimeout=10000",
|
|
12
|
-
"tsc": "tsc",
|
|
13
|
-
"pkg": "pkg ./bin/cloudbase.js --out-path ./pkg",
|
|
14
|
-
"postinstall": "node ./post-install.js || exit 0"
|
|
15
|
-
},
|
|
16
|
-
"repository": {
|
|
17
|
-
"type": "git",
|
|
18
|
-
"url": "https://github.com/TencentCloudBase/cloud-base-cli.git"
|
|
19
|
-
},
|
|
20
|
-
"bin": {
|
|
21
|
-
"tcb": "bin/tcb.js",
|
|
22
|
-
"cloudbase": "bin/cloudbase.js"
|
|
23
|
-
},
|
|
24
|
-
"husky": {
|
|
25
|
-
"hooks": {
|
|
26
|
-
"pre-commit": "npm run build && git add ."
|
|
27
|
-
}
|
|
28
|
-
},
|
|
29
|
-
"author": "cwuyiqing@gmail.com",
|
|
30
|
-
"license": "ISC",
|
|
31
|
-
"dependencies": {
|
|
32
|
-
"@cloudbase/cloud-api": "^0.5.5",
|
|
33
|
-
"@cloudbase/framework-core": "^1.6.1",
|
|
34
|
-
"@cloudbase/lowcode-cli": "0.14.5-alpha.1",
|
|
35
|
-
"@cloudbase/manager-node": "4.0.1",
|
|
36
|
-
"@cloudbase/toolbox": "^0.7.3",
|
|
37
|
-
"@sentry/node": "^5.10.2",
|
|
38
|
-
"address": "^1.1.2",
|
|
39
|
-
"chalk": "^2.4.2",
|
|
40
|
-
"cli-table3": "^0.5.1",
|
|
41
|
-
"commander": "7",
|
|
42
|
-
"del": "^5.1.0",
|
|
43
|
-
"didyoumean": "^1.2.2",
|
|
44
|
-
"enquirer": "^2.3.6",
|
|
45
|
-
"execa": "^4.0.3",
|
|
46
|
-
"fs-extra": "^8.1.0",
|
|
47
|
-
"https-proxy-agent": "^5.0.1",
|
|
48
|
-
"inquirer": "^6.5.0",
|
|
49
|
-
"lodash": "^4.17.21",
|
|
50
|
-
"log-symbols": "^3.0.0",
|
|
51
|
-
"lowdb": "^1.0.0",
|
|
52
|
-
"make-dir": "^3.0.0",
|
|
53
|
-
"node-fetch": "^2.6.0",
|
|
54
|
-
"open": "^7.0.0",
|
|
55
|
-
"ora": "^4.0.2",
|
|
56
|
-
"portfinder": "^1.0.28",
|
|
57
|
-
"progress": "^2.0.3",
|
|
58
|
-
"query-string": "^6.8.1",
|
|
59
|
-
"reflect-metadata": "^0.1.13",
|
|
60
|
-
"semver": "^7.3.7",
|
|
61
|
-
"tar-fs": "^2.0.1",
|
|
62
|
-
"terminal-link": "^2.1.1",
|
|
63
|
-
"unzipper": "^0.10.10",
|
|
64
|
-
"update-notifier": "^4.0.0",
|
|
65
|
-
"xdg-basedir": "^4.0.0",
|
|
66
|
-
"yargs": "^16.2.0",
|
|
67
|
-
"yargs-parser": "^21.0.1"
|
|
68
|
-
},
|
|
69
|
-
"devDependencies": {
|
|
70
|
-
"@types/jest": "^27",
|
|
71
|
-
"@types/koa__router": "^8.0.11",
|
|
72
|
-
"@types/lodash": "^4.14.182",
|
|
73
|
-
"@types/node": "^12.12.38",
|
|
74
|
-
"@types/node-fetch": "^2.5.4",
|
|
75
|
-
"@types/react": "^17.0.37",
|
|
76
|
-
"@types/semver": "^7.3.9",
|
|
77
|
-
"@types/webpack-dev-server": "^3.11.1",
|
|
78
|
-
"@typescript-eslint/eslint-plugin": "^4.8.1",
|
|
79
|
-
"@typescript-eslint/parser": "^4.8.1",
|
|
80
|
-
"eslint": "^7.14.0",
|
|
81
|
-
"eslint-config-alloy": "^3.8.2",
|
|
82
|
-
"husky": "^3.0.9",
|
|
83
|
-
"jest": "^27",
|
|
84
|
-
"rimraf": "^3.0.2",
|
|
85
|
-
"ts-jest": "^27",
|
|
86
|
-
"typescript": "^4.7.2"
|
|
87
|
-
}
|
|
88
|
-
}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import _ from 'lodash'
|
|
2
|
-
import { Command, ICommand } from '../common'
|
|
3
|
-
import { watchApp } from '@cloudbase/lowcode-cli'
|
|
4
|
-
import { InjectParams, Log, Logger, CmdContext, ArgsOptions } from '../../decorators'
|
|
5
|
-
|
|
6
|
-
@ICommand()
|
|
7
|
-
export class LowCodeWatch extends Command {
|
|
8
|
-
get options() {
|
|
9
|
-
return {
|
|
10
|
-
cmd: 'lowcode',
|
|
11
|
-
childCmd: 'watch',
|
|
12
|
-
options: [
|
|
13
|
-
{
|
|
14
|
-
flags: '--verbose',
|
|
15
|
-
desc: '是否打印详细日志'
|
|
16
|
-
},
|
|
17
|
-
{
|
|
18
|
-
flags: '--wx-devtool-path <wxDevtoolPath>',
|
|
19
|
-
desc: '微信开发者工具的安装路径'
|
|
20
|
-
}
|
|
21
|
-
],
|
|
22
|
-
desc: '开启云开发低码的本地构建模式',
|
|
23
|
-
requiredEnvId: false
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
@InjectParams()
|
|
28
|
-
async execute(@CmdContext() ctx, @ArgsOptions() options) {
|
|
29
|
-
await watchApp({
|
|
30
|
-
watchPort: 8288,
|
|
31
|
-
wxDevtoolPath: options?.wxDevtoolPath,
|
|
32
|
-
})
|
|
33
|
-
}
|
|
34
|
-
}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import _ from 'lodash'
|
|
2
|
-
import { Command, ICommand } from '../common'
|
|
3
|
-
import { watchApp } from '@cloudbase/lowcode-cli'
|
|
4
|
-
import { InjectParams, Log, Logger, CmdContext, ArgsOptions } from '../../decorators'
|
|
5
|
-
|
|
6
|
-
@ICommand()
|
|
7
|
-
export class LowCodeWatch extends Command {
|
|
8
|
-
get options() {
|
|
9
|
-
return {
|
|
10
|
-
cmd: 'lowcode',
|
|
11
|
-
childCmd: 'watch',
|
|
12
|
-
options: [
|
|
13
|
-
{
|
|
14
|
-
flags: '--verbose',
|
|
15
|
-
desc: '是否打印详细日志'
|
|
16
|
-
},
|
|
17
|
-
{
|
|
18
|
-
flags: '--wx-devtool-path <wxDevtoolPath>',
|
|
19
|
-
desc: '微信开发者工具的安装路径'
|
|
20
|
-
}
|
|
21
|
-
],
|
|
22
|
-
desc: '开启云开发低码的本地构建模式',
|
|
23
|
-
requiredEnvId: false
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
@InjectParams()
|
|
28
|
-
async execute(@CmdContext() ctx, @ArgsOptions() options) {
|
|
29
|
-
await watchApp({
|
|
30
|
-
watchPort: 8288,
|
|
31
|
-
wxDevtoolPath: options?.wxDevtoolPath
|
|
32
|
-
})
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
@ICommand()
|
|
37
|
-
export class DanielWatch extends Command {
|
|
38
|
-
get options() {
|
|
39
|
-
return {
|
|
40
|
-
cmd: 'lowcode',
|
|
41
|
-
childCmd: 'watch-ws',
|
|
42
|
-
options: [],
|
|
43
|
-
desc: '开启云开发低码的本地开发模式',
|
|
44
|
-
requiredEnvId: false
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
@InjectParams()
|
|
49
|
-
async execute(@CmdContext() ctx, @ArgsOptions() options) {
|
|
50
|
-
console.log('>>> 启动啦')
|
|
51
|
-
}
|
|
52
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import 'reflect-metadata'
|
|
2
|
-
import { registerCommands } from './commands/common'
|
|
3
|
-
import './commands'
|
|
4
|
-
|
|
5
|
-
export { smartDeploy } from './commands'
|
|
6
|
-
|
|
7
|
-
registerCommands()
|
|
8
|
-
|
|
9
|
-
// HACK: 部分依赖使用了 globalThis,会在 Node12 以下的版本报错
|
|
10
|
-
if (typeof globalThis === undefined) {
|
|
11
|
-
// eslint-disable-next-line no-undef
|
|
12
|
-
;(globalThis as any) = global
|
|
13
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import 'reflect-metadata'
|
|
2
|
-
import { registerCommands } from './commands/common'
|
|
3
|
-
import './commands'
|
|
4
|
-
|
|
5
|
-
export { smartDeploy } from './commands'
|
|
6
|
-
|
|
7
|
-
registerCommands()
|
|
8
|
-
|
|
9
|
-
// HACK: 部分依赖使用了 globalThis,会在 Node12 以下的版本报错
|
|
10
|
-
if (typeof globalThis === undefined) {
|
|
11
|
-
// eslint-disable-next-line no-undef
|
|
12
|
-
;(globalThis as any) = global
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
console.log("daniel tcb")
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import 'reflect-metadata'
|
|
2
|
-
import { registerCommands } from './commands/common'
|
|
3
|
-
import './commands'
|
|
4
|
-
|
|
5
|
-
export { smartDeploy } from './commands'
|
|
6
|
-
|
|
7
|
-
registerCommands()
|
|
8
|
-
|
|
9
|
-
// HACK: 部分依赖使用了 globalThis,会在 Node12 以下的版本报错
|
|
10
|
-
if (typeof globalThis === undefined) {
|
|
11
|
-
// eslint-disable-next-line no-undef
|
|
12
|
-
;(globalThis as any) = global
|
|
13
|
-
}
|
package/src/auth/index.ts
DELETED
package/src/auth/login.ts
DELETED
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
import _ from 'lodash'
|
|
2
|
-
import { Credential } from '@cloudbase/toolbox'
|
|
3
|
-
import { authSupevisor, checkAndGetCredential, execWithLoading, checkEnvAvaliable } from '../utils'
|
|
4
|
-
import { ILoginOptions } from '../types'
|
|
5
|
-
import { ENV_STATUS } from '../constant'
|
|
6
|
-
import { Logger } from '../decorators'
|
|
7
|
-
import { getEnvInfo } from '../env'
|
|
8
|
-
|
|
9
|
-
const log = new Logger()
|
|
10
|
-
|
|
11
|
-
// 登录返回 code 与信息
|
|
12
|
-
const LoginRes = {
|
|
13
|
-
SUCCESS: {
|
|
14
|
-
code: 'SUCCESS',
|
|
15
|
-
msg: '登录成功!'
|
|
16
|
-
},
|
|
17
|
-
INVALID_TOKEN: {
|
|
18
|
-
code: 'INVALID_TOKEN',
|
|
19
|
-
msg: '无效的身份信息!'
|
|
20
|
-
},
|
|
21
|
-
CHECK_LOGIN_FAILED: {
|
|
22
|
-
code: 'CHECK_LOGIN_FAILED',
|
|
23
|
-
msg: '检查登录态失败'
|
|
24
|
-
},
|
|
25
|
-
INVALID_PARAM(msg) {
|
|
26
|
-
return {
|
|
27
|
-
code: 'INVALID_PARAM',
|
|
28
|
-
msg: `参数无效:${msg}`
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
// 打开腾讯云-云开发控制台,通过获取临时密钥登录,临时密钥可续期,最长时间为 1 个月
|
|
34
|
-
export async function loginByWebAuth() {
|
|
35
|
-
const credential = await authSupevisor.loginByWebAuth()
|
|
36
|
-
|
|
37
|
-
if (_.isEmpty(credential)) {
|
|
38
|
-
return LoginRes.INVALID_TOKEN
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
return {
|
|
42
|
-
credential,
|
|
43
|
-
...LoginRes.SUCCESS
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
// 使用密钥登录
|
|
48
|
-
export async function loginWithKey(secretId?: string, secretKey?: string, token?: string) {
|
|
49
|
-
if (!secretId || !secretKey) {
|
|
50
|
-
return LoginRes.INVALID_PARAM('SecretID 或 SecretKey 不能为空')
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
const credential = await authSupevisor.loginByApiSecret(secretId, secretKey, token)
|
|
54
|
-
|
|
55
|
-
if (_.isEmpty(credential)) {
|
|
56
|
-
return LoginRes.INVALID_TOKEN
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
return LoginRes.SUCCESS
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
export async function login(
|
|
63
|
-
options: ILoginOptions = {}
|
|
64
|
-
): Promise<{ code: string; msg: string; credential?: Credential }> {
|
|
65
|
-
const { secretId, secretKey, key, token } = options
|
|
66
|
-
return key ? loginWithKey(secretId, secretKey, token) : loginByWebAuth()
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
// 检查是否登录,没有登录时,自动拉起浏览器授权
|
|
70
|
-
export async function checkLogin() {
|
|
71
|
-
const credential = await checkAndGetCredential()
|
|
72
|
-
// 没有登录,拉起 Web 登录
|
|
73
|
-
if (_.isEmpty(credential)) {
|
|
74
|
-
log.info('你还没有登录,请在控制台中授权登录')
|
|
75
|
-
|
|
76
|
-
const res = await execWithLoading(() => login(), {
|
|
77
|
-
startTip: '获取授权中...',
|
|
78
|
-
successTip: '授权登录成功!'
|
|
79
|
-
})
|
|
80
|
-
|
|
81
|
-
const envId = res?.credential?.envId
|
|
82
|
-
|
|
83
|
-
// 登录返回 envId,检查环境初始化
|
|
84
|
-
if (envId) {
|
|
85
|
-
const env = await getEnvInfo(envId)
|
|
86
|
-
if (env.Status === ENV_STATUS.UNAVAILABLE) {
|
|
87
|
-
await checkEnvAvaliable(envId)
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
}
|
package/src/auth/logout.ts
DELETED
|
@@ -1,192 +0,0 @@
|
|
|
1
|
-
import _ from 'lodash'
|
|
2
|
-
import chalk from 'chalk'
|
|
3
|
-
import inquirer from 'inquirer'
|
|
4
|
-
import { Command, ICommand } from '../common'
|
|
5
|
-
import { login } from '../../auth'
|
|
6
|
-
import { listEnvs } from '../../env'
|
|
7
|
-
import { CloudBaseError } from '../../error'
|
|
8
|
-
import { InjectParams, ArgsOptions, Log, Logger } from '../../decorators'
|
|
9
|
-
import {
|
|
10
|
-
loadingFactory,
|
|
11
|
-
usageStore,
|
|
12
|
-
collectAgree,
|
|
13
|
-
genClickableLink,
|
|
14
|
-
checkAndGetCredential
|
|
15
|
-
} from '../../utils'
|
|
16
|
-
|
|
17
|
-
function printSuggestion() {
|
|
18
|
-
const tips = `可使用下面命令继续操作:
|
|
19
|
-
|
|
20
|
-
${chalk.gray('–')} 创建免费环境
|
|
21
|
-
|
|
22
|
-
${chalk.cyan('$ tcb env create envName')}
|
|
23
|
-
|
|
24
|
-
${chalk.gray('–')} 初始化云开发项目
|
|
25
|
-
|
|
26
|
-
${chalk.cyan('$ tcb new')}
|
|
27
|
-
|
|
28
|
-
${chalk.gray('–')} 部署云函数
|
|
29
|
-
|
|
30
|
-
${chalk.cyan('$ tcb fn deploy')}
|
|
31
|
-
|
|
32
|
-
${chalk.gray('–')} 查看命令使用介绍
|
|
33
|
-
|
|
34
|
-
${chalk.cyan('$ tcb -h')}
|
|
35
|
-
|
|
36
|
-
Tips:可以使用简写命令 tcb 代替 cloudbase`
|
|
37
|
-
console.log(tips)
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
async function askForCollectDataConfirm() {
|
|
41
|
-
const agree = await usageStore.get('agreeCollect')
|
|
42
|
-
if (agree) return
|
|
43
|
-
// 询问
|
|
44
|
-
const { confirm } = await inquirer.prompt({
|
|
45
|
-
type: 'confirm',
|
|
46
|
-
name: 'confirm',
|
|
47
|
-
message: '是否同意 Cloudbase CLI 收集您的使用数据以改进产品?',
|
|
48
|
-
default: true
|
|
49
|
-
})
|
|
50
|
-
|
|
51
|
-
if (confirm) {
|
|
52
|
-
await usageStore.set('agreeCollect', true)
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
await collectAgree(confirm)
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
@ICommand()
|
|
59
|
-
export class LoginCommand extends Command {
|
|
60
|
-
get options() {
|
|
61
|
-
return {
|
|
62
|
-
cmd: 'login',
|
|
63
|
-
options: [
|
|
64
|
-
{
|
|
65
|
-
flags: '-k, --key',
|
|
66
|
-
desc: '使用永久密钥登录'
|
|
67
|
-
},
|
|
68
|
-
{
|
|
69
|
-
flags: '--apiKeyId <apiKeyId>',
|
|
70
|
-
desc: '腾讯云 API 秘钥 Id'
|
|
71
|
-
},
|
|
72
|
-
{
|
|
73
|
-
flags: '--apiKey <apiKey>',
|
|
74
|
-
desc: '腾讯云 API 秘钥 Key'
|
|
75
|
-
},
|
|
76
|
-
{
|
|
77
|
-
flags: '--token [token]',
|
|
78
|
-
desc: '腾讯云 API 临时秘钥 Token'
|
|
79
|
-
}
|
|
80
|
-
],
|
|
81
|
-
desc: '登录腾讯云账号',
|
|
82
|
-
requiredEnvId: false,
|
|
83
|
-
withoutAuth: true
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
@InjectParams()
|
|
88
|
-
async execute(@ArgsOptions() options, @Log() log: Logger) {
|
|
89
|
-
log.verbose(options)
|
|
90
|
-
const { apiKeyId, apiKey, token } = options
|
|
91
|
-
const loading = loadingFactory()
|
|
92
|
-
loading.start('检验登录状态')
|
|
93
|
-
|
|
94
|
-
const credential = await checkAndGetCredential()
|
|
95
|
-
|
|
96
|
-
if (!_.isEmpty(credential)) {
|
|
97
|
-
loading.succeed('您已登录,无需再次登录!')
|
|
98
|
-
return
|
|
99
|
-
} else {
|
|
100
|
-
loading.stop()
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
// 通过参数传入 API Key,适用于 CI 场景
|
|
104
|
-
if (apiKey && apiKeyId) {
|
|
105
|
-
loading.start('正在验证腾讯云密钥...')
|
|
106
|
-
|
|
107
|
-
const res = await login({
|
|
108
|
-
token,
|
|
109
|
-
key: true,
|
|
110
|
-
secretKey: apiKey,
|
|
111
|
-
secretId: apiKeyId
|
|
112
|
-
})
|
|
113
|
-
|
|
114
|
-
if (res.code === 'SUCCESS') {
|
|
115
|
-
loading.succeed('登录成功!')
|
|
116
|
-
printSuggestion()
|
|
117
|
-
} else {
|
|
118
|
-
loading.fail('腾讯云密钥验证失败,请检查密钥是否正确或终端网络是否可用!')
|
|
119
|
-
return process.exit(1)
|
|
120
|
-
}
|
|
121
|
-
} else if (options.key) {
|
|
122
|
-
// 兼容临时密钥和永久密钥登录
|
|
123
|
-
const clickableLink = genClickableLink('https://console.cloud.tencent.com/cam/capi')
|
|
124
|
-
console.log(`您可以访问 ${clickableLink} 获取 API 秘钥`)
|
|
125
|
-
|
|
126
|
-
// 使用永久密钥登录
|
|
127
|
-
const { secretId } = await inquirer.prompt({
|
|
128
|
-
type: 'input',
|
|
129
|
-
name: 'secretId',
|
|
130
|
-
message: '请输入腾讯云 SecretID:'
|
|
131
|
-
})
|
|
132
|
-
|
|
133
|
-
const { secretKey } = await inquirer.prompt({
|
|
134
|
-
type: 'input',
|
|
135
|
-
name: 'secretKey',
|
|
136
|
-
message: '请输入腾讯云 SecretKey:'
|
|
137
|
-
})
|
|
138
|
-
|
|
139
|
-
if (!secretId || !secretKey) {
|
|
140
|
-
throw new CloudBaseError('SecretID 或 SecretKey 不能为空')
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
loading.start('正在验证腾讯云密钥...')
|
|
144
|
-
|
|
145
|
-
const res = await login({
|
|
146
|
-
key: true,
|
|
147
|
-
secretId,
|
|
148
|
-
secretKey
|
|
149
|
-
})
|
|
150
|
-
|
|
151
|
-
if (res.code === 'SUCCESS') {
|
|
152
|
-
loading.succeed('登录成功!')
|
|
153
|
-
await askForCollectDataConfirm()
|
|
154
|
-
printSuggestion()
|
|
155
|
-
} else {
|
|
156
|
-
loading.fail('腾讯云密钥验证失败,请检查密钥是否正确或终端网络是否可用!')
|
|
157
|
-
return process.exit(1)
|
|
158
|
-
}
|
|
159
|
-
} else {
|
|
160
|
-
// 使用临时密钥登录-支持自动续期
|
|
161
|
-
loading.start('获取授权中...')
|
|
162
|
-
const res = await login()
|
|
163
|
-
|
|
164
|
-
if (res.code === 'SUCCESS') {
|
|
165
|
-
loading.succeed('登录成功!')
|
|
166
|
-
await askForCollectDataConfirm()
|
|
167
|
-
printSuggestion()
|
|
168
|
-
} else {
|
|
169
|
-
loading.fail(res.msg)
|
|
170
|
-
console.log('Web 授权登录失败,秘钥校验失败!')
|
|
171
|
-
return process.exit(1)
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
// 检测用户是否存在,不存在则初始化
|
|
176
|
-
try {
|
|
177
|
-
const envs = await listEnvs()
|
|
178
|
-
if (!envs.length) {
|
|
179
|
-
log.warn('您还没有可用的环境,请使用 cloudbase env:create $name 创建环境')
|
|
180
|
-
}
|
|
181
|
-
} catch (e) {
|
|
182
|
-
// 用户不存在
|
|
183
|
-
// 主账户可以直接使用 env:create 完成初始化工作
|
|
184
|
-
if (e.code === 'ResourceNotFound.UserNotExists') {
|
|
185
|
-
log.error('您还没有可用的环境,请使用 cloudbase env:create $name 创建环境!')
|
|
186
|
-
} else {
|
|
187
|
-
console.error(e)
|
|
188
|
-
throw e
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { ICommand, Command } from '../common'
|
|
2
|
-
|
|
3
|
-
import { logout } from '../../auth'
|
|
4
|
-
import { InjectParams, Log, Logger } from '../../decorators'
|
|
5
|
-
|
|
6
|
-
@ICommand()
|
|
7
|
-
export class LogoutCommand extends Command {
|
|
8
|
-
get options() {
|
|
9
|
-
return {
|
|
10
|
-
cmd: 'logout',
|
|
11
|
-
options: [],
|
|
12
|
-
desc: '登出腾讯云账号',
|
|
13
|
-
requiredEnvId: false,
|
|
14
|
-
withoutAuth: true
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
@InjectParams()
|
|
19
|
-
async execute(@Log() log: Logger) {
|
|
20
|
-
await logout()
|
|
21
|
-
|
|
22
|
-
log.success('注销登录成功!')
|
|
23
|
-
}
|
|
24
|
-
}
|