@cloudbase/cli 2.0.3 → 2.0.5
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/LICENSE +5 -5
- package/README.md +35 -35
- package/bin/cloudbase.js +5 -5
- package/changelog.md +6 -6
- package/jest.config.js +17 -17
- package/lib/commands/account/login.js +18 -18
- package/lib/commands/run/list.js +2 -3
- package/lib/commands/storage/storage.js +1 -1
- package/lib/env/login.js +7 -7
- package/lib/utils/tcbrApi/callTcbrApi.js +2 -2
- package/package.json +3 -3
- 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/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/image/index.ts +4 -4
- package/src/commands/run/list.ts +2 -3
- 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/index.ts +4 -4
- 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/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/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/list.ts +29 -29
- package/src/run/repo.ts +24 -24
- 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/utils/auth.ts +15 -15
- package/src/utils/cli-table.ts +23 -23
- 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/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/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 +1 -1
- 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/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/.vscode/settings.json +0 -3
- package/lib/utils/tcbrApi/tcbr-cloud-api/cloud-api-service.js +0 -268
- package/lib/utils/tcbrApi/tcbr-cloud-api/error.js +0 -17
- package/lib/utils/tcbrApi/tcbr-cloud-api/index.js +0 -17
- package/lib/utils/tcbrApi/tcbr-cloud-api/request.js +0 -40
- package/lib/utils/tcbrApi/tcbr-cloud-api-request.js +0 -61
- package/src/utils/tcbrApi/tcbr-cloud-api/cloud-api-service.ts +0 -363
- package/src/utils/tcbrApi/tcbr-cloud-api/error.ts +0 -30
- package/src/utils/tcbrApi/tcbr-cloud-api/index.ts +0 -1
- package/src/utils/tcbrApi/tcbr-cloud-api/request.ts +0 -28
- package/src/utils/tcbrApi/tcbr-cloud-api-request.ts +0 -66
- package/types/utils/tcbrApi/tcbr-cloud-api/cloud-api-service.d.ts +0 -51
- package/types/utils/tcbrApi/tcbr-cloud-api/error.d.ts +0 -20
- package/types/utils/tcbrApi/tcbr-cloud-api/index.d.ts +0 -1
- package/types/utils/tcbrApi/tcbr-cloud-api/request.d.ts +0 -4
- package/types/utils/tcbrApi/tcbr-cloud-api-request.d.ts +0 -9
|
@@ -1,183 +1,183 @@
|
|
|
1
|
-
/* eslint-disable */
|
|
2
|
-
const fs = require('fs')
|
|
3
|
-
const crypto = require('crypto')
|
|
4
|
-
|
|
5
|
-
var GLOBAL_FUNCTION_HANDLER = process.argv[2] || process.env.SCF_FUNCTION_HANDLER || 'index.main'
|
|
6
|
-
var GLOBAL_FUNCTION_NAME = process.env.SCF_FUNCTION_NAME || 'main'
|
|
7
|
-
var GLOBAL_EVENT_BODY =
|
|
8
|
-
process.argv[3] ||
|
|
9
|
-
process.env.SCF_EVENT_BODY ||
|
|
10
|
-
(process.env.DOCKER_USE_STDIN && fs.readFileSync('/dev/stdin', 'utf8')) ||
|
|
11
|
-
'{}'
|
|
12
|
-
|
|
13
|
-
var GLOBAL_USER_FILE_PATH = process.env.GLOBAL_USER_FILE_PATH || ''
|
|
14
|
-
var GLOBAL_VERSION = process.env.SCF_FUNCTION_VERSION || '$LATEST'
|
|
15
|
-
var GLOBAL_MEM_SIZE = process.env.SCF_FUNCTION_MEMORY_SIZE || '256'
|
|
16
|
-
var GLOBAL_TIMEOUT = process.env.SCF_FUNCTION_TIMEOUT || '3'
|
|
17
|
-
var GLOBAL_ENVIRON = process.env.SCF_FUNCTION_ENVIRON || ''
|
|
18
|
-
var GLOBAL_IS_QUIET = process.env.SCF_DISPLAY_IS_QUIET === 'True' || false
|
|
19
|
-
|
|
20
|
-
var GLOBAL_REQUEST_ID = uuid()
|
|
21
|
-
var GLOBAL_START_TIME = process.hrtime()
|
|
22
|
-
var GLOBAL_SOCK = -1
|
|
23
|
-
var GLOBAL_STAGE = 0
|
|
24
|
-
|
|
25
|
-
module.exports = {
|
|
26
|
-
init: function() {
|
|
27
|
-
if (!GLOBAL_IS_QUIET) {
|
|
28
|
-
consoleLog('开始本地执行云函数,受环境影响,执行结果可能与云端存在一定差异!')
|
|
29
|
-
consoleLog('START RequestId: ' + GLOBAL_REQUEST_ID)
|
|
30
|
-
}
|
|
31
|
-
return 0
|
|
32
|
-
},
|
|
33
|
-
wait_for_invoke: function() {
|
|
34
|
-
var invokeInfo = []
|
|
35
|
-
|
|
36
|
-
GLOBAL_STAGE += 1
|
|
37
|
-
switch (GLOBAL_STAGE) {
|
|
38
|
-
case 1:
|
|
39
|
-
invokeInfo.cmd = 'RELOAD'
|
|
40
|
-
invokeInfo.context = GLOBAL_USER_FILE_PATH + GLOBAL_FUNCTION_HANDLER
|
|
41
|
-
invokeInfo.globalHandler = GLOBAL_FUNCTION_HANDLER
|
|
42
|
-
invokeInfo.filePath = GLOBAL_USER_FILE_PATH
|
|
43
|
-
break
|
|
44
|
-
case 2:
|
|
45
|
-
invokeInfo.cmd = 'EVENT'
|
|
46
|
-
invokeInfo.sockfd = GLOBAL_SOCK
|
|
47
|
-
invokeInfo.event = GLOBAL_EVENT_BODY
|
|
48
|
-
invokeInfo.context = initContext()
|
|
49
|
-
break
|
|
50
|
-
default:
|
|
51
|
-
process.exit()
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
return invokeInfo
|
|
55
|
-
},
|
|
56
|
-
log: function(str) {
|
|
57
|
-
// consoleLog(formatSystem(str))
|
|
58
|
-
},
|
|
59
|
-
console_log: function(str, err = false) {
|
|
60
|
-
if (!GLOBAL_IS_QUIET) {
|
|
61
|
-
if (err === false) {
|
|
62
|
-
consoleLog(formatConsole(str))
|
|
63
|
-
} else {
|
|
64
|
-
consoleLogErr(formatConsole(str))
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
},
|
|
68
|
-
report_fail: function(stackTrace, errNum, errType = 0) {
|
|
69
|
-
const result = {}
|
|
70
|
-
|
|
71
|
-
result['errorCode'] = 1
|
|
72
|
-
result['errorMessage'] = 'user code exception caught'
|
|
73
|
-
if (stackTrace) {
|
|
74
|
-
result['stackTrace'] = stackTrace
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
reportDone('', (errType = 1))
|
|
78
|
-
// console.dir(result);
|
|
79
|
-
consoleLogErr(JSON.stringify(result))
|
|
80
|
-
},
|
|
81
|
-
report_running: function() {
|
|
82
|
-
GLOBAL_START_TIME = process.hrtime()
|
|
83
|
-
},
|
|
84
|
-
report_done: function(resultStr, errType = 0) {
|
|
85
|
-
reportDone(resultStr, errType)
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
function initContext() {
|
|
90
|
-
var context = {}
|
|
91
|
-
context['function_version'] = GLOBAL_VERSION
|
|
92
|
-
context['function_name'] = GLOBAL_FUNCTION_NAME
|
|
93
|
-
|
|
94
|
-
context['time_limit_in_ms'] = GLOBAL_TIMEOUT
|
|
95
|
-
context['memory_limit_in_mb'] = GLOBAL_MEM_SIZE
|
|
96
|
-
|
|
97
|
-
context['request_id'] = GLOBAL_REQUEST_ID
|
|
98
|
-
context['environ'] = GLOBAL_ENVIRON
|
|
99
|
-
|
|
100
|
-
return JSON.stringify(context)
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
function reportDone(resultStr, errType = 0) {
|
|
104
|
-
if (GLOBAL_IS_QUIET) {
|
|
105
|
-
if (typeof resultStr === 'string') {
|
|
106
|
-
if (errType === 0) consoleLog(resultStr)
|
|
107
|
-
else consoleLogErr(resultStr)
|
|
108
|
-
}
|
|
109
|
-
return
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
var diffMs = hrTimeMs(process.hrtime(GLOBAL_START_TIME))
|
|
113
|
-
var billedMs = Math.min(100 * (Math.floor(diffMs / 100) + 1), GLOBAL_TIMEOUT * 1000)
|
|
114
|
-
if (errType === 0) {
|
|
115
|
-
consoleLog('END RequestId: ' + GLOBAL_REQUEST_ID)
|
|
116
|
-
consoleLog(
|
|
117
|
-
[
|
|
118
|
-
'运行信息:',
|
|
119
|
-
'REPORT RequestId: ' + GLOBAL_REQUEST_ID,
|
|
120
|
-
'Duration: ' + diffMs.toFixed(2) + ' ms',
|
|
121
|
-
'Billed Duration: ' + billedMs + ' ms',
|
|
122
|
-
'Memory Size: ' + GLOBAL_MEM_SIZE + ' MB',
|
|
123
|
-
'Max Memory Used: ' + Math.round(process.memoryUsage().rss / (1024 * 1024)) + ' MB'
|
|
124
|
-
].join('\n')
|
|
125
|
-
)
|
|
126
|
-
} else {
|
|
127
|
-
consoleLogErr(
|
|
128
|
-
[
|
|
129
|
-
'运行信息:',
|
|
130
|
-
'REPORT RequestId: ' + GLOBAL_REQUEST_ID,
|
|
131
|
-
'Duration: ' + diffMs.toFixed(2) + ' ms',
|
|
132
|
-
'Billed Duration: ' + billedMs + ' ms',
|
|
133
|
-
'Memory Size: ' + GLOBAL_MEM_SIZE + ' MB',
|
|
134
|
-
'Max Memory Used: ' + Math.round(process.memoryUsage().rss / (1024 * 1024)) + ' MB'
|
|
135
|
-
].join('\n')
|
|
136
|
-
)
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
if (typeof resultStr === 'string') {
|
|
140
|
-
if (errType === 0) {
|
|
141
|
-
consoleLog('返回结果:\n' + resultStr)
|
|
142
|
-
} else {
|
|
143
|
-
consoleLogErr('返回结果:\n' + resultStr)
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
function consoleLog(str) {
|
|
149
|
-
process.stdout.write(str + '\n')
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
function consoleLogErr(str) {
|
|
153
|
-
process.stderr.write(str + '\n')
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
function formatConsole(str) {
|
|
157
|
-
return str.replace(/^[0-9TZ:.-]+\t[0-9a-f-]+\t/, '\u001b[34m$&\u001b[0m')
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
function formatSystem(str) {
|
|
161
|
-
return '\u001b[32m' + str + '\u001b[0m'
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
function hrTimeMs(hrtime) {
|
|
165
|
-
return (hrtime[0] * 1e9 + hrtime[1]) / 1e6
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
function uuid() {
|
|
169
|
-
return (
|
|
170
|
-
crypto.randomBytes(4).toString('hex') +
|
|
171
|
-
'-' +
|
|
172
|
-
crypto.randomBytes(2).toString('hex') +
|
|
173
|
-
'-' +
|
|
174
|
-
crypto
|
|
175
|
-
.randomBytes(2)
|
|
176
|
-
.toString('hex')
|
|
177
|
-
.replace(/^./, '1') +
|
|
178
|
-
'-' +
|
|
179
|
-
crypto.randomBytes(2).toString('hex') +
|
|
180
|
-
'-' +
|
|
181
|
-
crypto.randomBytes(6).toString('hex')
|
|
182
|
-
)
|
|
183
|
-
}
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
const fs = require('fs')
|
|
3
|
+
const crypto = require('crypto')
|
|
4
|
+
|
|
5
|
+
var GLOBAL_FUNCTION_HANDLER = process.argv[2] || process.env.SCF_FUNCTION_HANDLER || 'index.main'
|
|
6
|
+
var GLOBAL_FUNCTION_NAME = process.env.SCF_FUNCTION_NAME || 'main'
|
|
7
|
+
var GLOBAL_EVENT_BODY =
|
|
8
|
+
process.argv[3] ||
|
|
9
|
+
process.env.SCF_EVENT_BODY ||
|
|
10
|
+
(process.env.DOCKER_USE_STDIN && fs.readFileSync('/dev/stdin', 'utf8')) ||
|
|
11
|
+
'{}'
|
|
12
|
+
|
|
13
|
+
var GLOBAL_USER_FILE_PATH = process.env.GLOBAL_USER_FILE_PATH || ''
|
|
14
|
+
var GLOBAL_VERSION = process.env.SCF_FUNCTION_VERSION || '$LATEST'
|
|
15
|
+
var GLOBAL_MEM_SIZE = process.env.SCF_FUNCTION_MEMORY_SIZE || '256'
|
|
16
|
+
var GLOBAL_TIMEOUT = process.env.SCF_FUNCTION_TIMEOUT || '3'
|
|
17
|
+
var GLOBAL_ENVIRON = process.env.SCF_FUNCTION_ENVIRON || ''
|
|
18
|
+
var GLOBAL_IS_QUIET = process.env.SCF_DISPLAY_IS_QUIET === 'True' || false
|
|
19
|
+
|
|
20
|
+
var GLOBAL_REQUEST_ID = uuid()
|
|
21
|
+
var GLOBAL_START_TIME = process.hrtime()
|
|
22
|
+
var GLOBAL_SOCK = -1
|
|
23
|
+
var GLOBAL_STAGE = 0
|
|
24
|
+
|
|
25
|
+
module.exports = {
|
|
26
|
+
init: function() {
|
|
27
|
+
if (!GLOBAL_IS_QUIET) {
|
|
28
|
+
consoleLog('开始本地执行云函数,受环境影响,执行结果可能与云端存在一定差异!')
|
|
29
|
+
consoleLog('START RequestId: ' + GLOBAL_REQUEST_ID)
|
|
30
|
+
}
|
|
31
|
+
return 0
|
|
32
|
+
},
|
|
33
|
+
wait_for_invoke: function() {
|
|
34
|
+
var invokeInfo = []
|
|
35
|
+
|
|
36
|
+
GLOBAL_STAGE += 1
|
|
37
|
+
switch (GLOBAL_STAGE) {
|
|
38
|
+
case 1:
|
|
39
|
+
invokeInfo.cmd = 'RELOAD'
|
|
40
|
+
invokeInfo.context = GLOBAL_USER_FILE_PATH + GLOBAL_FUNCTION_HANDLER
|
|
41
|
+
invokeInfo.globalHandler = GLOBAL_FUNCTION_HANDLER
|
|
42
|
+
invokeInfo.filePath = GLOBAL_USER_FILE_PATH
|
|
43
|
+
break
|
|
44
|
+
case 2:
|
|
45
|
+
invokeInfo.cmd = 'EVENT'
|
|
46
|
+
invokeInfo.sockfd = GLOBAL_SOCK
|
|
47
|
+
invokeInfo.event = GLOBAL_EVENT_BODY
|
|
48
|
+
invokeInfo.context = initContext()
|
|
49
|
+
break
|
|
50
|
+
default:
|
|
51
|
+
process.exit()
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
return invokeInfo
|
|
55
|
+
},
|
|
56
|
+
log: function(str) {
|
|
57
|
+
// consoleLog(formatSystem(str))
|
|
58
|
+
},
|
|
59
|
+
console_log: function(str, err = false) {
|
|
60
|
+
if (!GLOBAL_IS_QUIET) {
|
|
61
|
+
if (err === false) {
|
|
62
|
+
consoleLog(formatConsole(str))
|
|
63
|
+
} else {
|
|
64
|
+
consoleLogErr(formatConsole(str))
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
report_fail: function(stackTrace, errNum, errType = 0) {
|
|
69
|
+
const result = {}
|
|
70
|
+
|
|
71
|
+
result['errorCode'] = 1
|
|
72
|
+
result['errorMessage'] = 'user code exception caught'
|
|
73
|
+
if (stackTrace) {
|
|
74
|
+
result['stackTrace'] = stackTrace
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
reportDone('', (errType = 1))
|
|
78
|
+
// console.dir(result);
|
|
79
|
+
consoleLogErr(JSON.stringify(result))
|
|
80
|
+
},
|
|
81
|
+
report_running: function() {
|
|
82
|
+
GLOBAL_START_TIME = process.hrtime()
|
|
83
|
+
},
|
|
84
|
+
report_done: function(resultStr, errType = 0) {
|
|
85
|
+
reportDone(resultStr, errType)
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
function initContext() {
|
|
90
|
+
var context = {}
|
|
91
|
+
context['function_version'] = GLOBAL_VERSION
|
|
92
|
+
context['function_name'] = GLOBAL_FUNCTION_NAME
|
|
93
|
+
|
|
94
|
+
context['time_limit_in_ms'] = GLOBAL_TIMEOUT
|
|
95
|
+
context['memory_limit_in_mb'] = GLOBAL_MEM_SIZE
|
|
96
|
+
|
|
97
|
+
context['request_id'] = GLOBAL_REQUEST_ID
|
|
98
|
+
context['environ'] = GLOBAL_ENVIRON
|
|
99
|
+
|
|
100
|
+
return JSON.stringify(context)
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
function reportDone(resultStr, errType = 0) {
|
|
104
|
+
if (GLOBAL_IS_QUIET) {
|
|
105
|
+
if (typeof resultStr === 'string') {
|
|
106
|
+
if (errType === 0) consoleLog(resultStr)
|
|
107
|
+
else consoleLogErr(resultStr)
|
|
108
|
+
}
|
|
109
|
+
return
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
var diffMs = hrTimeMs(process.hrtime(GLOBAL_START_TIME))
|
|
113
|
+
var billedMs = Math.min(100 * (Math.floor(diffMs / 100) + 1), GLOBAL_TIMEOUT * 1000)
|
|
114
|
+
if (errType === 0) {
|
|
115
|
+
consoleLog('END RequestId: ' + GLOBAL_REQUEST_ID)
|
|
116
|
+
consoleLog(
|
|
117
|
+
[
|
|
118
|
+
'运行信息:',
|
|
119
|
+
'REPORT RequestId: ' + GLOBAL_REQUEST_ID,
|
|
120
|
+
'Duration: ' + diffMs.toFixed(2) + ' ms',
|
|
121
|
+
'Billed Duration: ' + billedMs + ' ms',
|
|
122
|
+
'Memory Size: ' + GLOBAL_MEM_SIZE + ' MB',
|
|
123
|
+
'Max Memory Used: ' + Math.round(process.memoryUsage().rss / (1024 * 1024)) + ' MB'
|
|
124
|
+
].join('\n')
|
|
125
|
+
)
|
|
126
|
+
} else {
|
|
127
|
+
consoleLogErr(
|
|
128
|
+
[
|
|
129
|
+
'运行信息:',
|
|
130
|
+
'REPORT RequestId: ' + GLOBAL_REQUEST_ID,
|
|
131
|
+
'Duration: ' + diffMs.toFixed(2) + ' ms',
|
|
132
|
+
'Billed Duration: ' + billedMs + ' ms',
|
|
133
|
+
'Memory Size: ' + GLOBAL_MEM_SIZE + ' MB',
|
|
134
|
+
'Max Memory Used: ' + Math.round(process.memoryUsage().rss / (1024 * 1024)) + ' MB'
|
|
135
|
+
].join('\n')
|
|
136
|
+
)
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
if (typeof resultStr === 'string') {
|
|
140
|
+
if (errType === 0) {
|
|
141
|
+
consoleLog('返回结果:\n' + resultStr)
|
|
142
|
+
} else {
|
|
143
|
+
consoleLogErr('返回结果:\n' + resultStr)
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
function consoleLog(str) {
|
|
149
|
+
process.stdout.write(str + '\n')
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
function consoleLogErr(str) {
|
|
153
|
+
process.stderr.write(str + '\n')
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
function formatConsole(str) {
|
|
157
|
+
return str.replace(/^[0-9TZ:.-]+\t[0-9a-f-]+\t/, '\u001b[34m$&\u001b[0m')
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
function formatSystem(str) {
|
|
161
|
+
return '\u001b[32m' + str + '\u001b[0m'
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
function hrTimeMs(hrtime) {
|
|
165
|
+
return (hrtime[0] * 1e9 + hrtime[1]) / 1e6
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
function uuid() {
|
|
169
|
+
return (
|
|
170
|
+
crypto.randomBytes(4).toString('hex') +
|
|
171
|
+
'-' +
|
|
172
|
+
crypto.randomBytes(2).toString('hex') +
|
|
173
|
+
'-' +
|
|
174
|
+
crypto
|
|
175
|
+
.randomBytes(2)
|
|
176
|
+
.toString('hex')
|
|
177
|
+
.replace(/^./, '1') +
|
|
178
|
+
'-' +
|
|
179
|
+
crypto.randomBytes(2).toString('hex') +
|
|
180
|
+
'-' +
|
|
181
|
+
crypto.randomBytes(6).toString('hex')
|
|
182
|
+
)
|
|
183
|
+
}
|
package/src/auth/index.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './login'
|
|
1
|
+
export * from './login'
|
|
2
2
|
export * from './logout'
|
package/src/auth/login.ts
CHANGED
|
@@ -1,91 +1,91 @@
|
|
|
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
|
-
}
|
|
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
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { authSupevisor } from '../utils'
|
|
2
|
-
|
|
3
|
-
// 注销登录信息
|
|
4
|
-
export async function logout() {
|
|
5
|
-
process.emit('logout')
|
|
6
|
-
await authSupevisor.logout()
|
|
7
|
-
}
|
|
1
|
+
import { authSupevisor } from '../utils'
|
|
2
|
+
|
|
3
|
+
// 注销登录信息
|
|
4
|
+
export async function logout() {
|
|
5
|
+
process.emit('logout')
|
|
6
|
+
await authSupevisor.logout()
|
|
7
|
+
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './login'
|
|
2
|
-
export * from './logout'
|
|
1
|
+
export * from './login'
|
|
2
|
+
export * from './logout'
|