@cloudbase/cli 2.0.12-alpha.3 → 2.0.14

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.
Files changed (252) hide show
  1. package/.vscode/launch.json +0 -10
  2. package/.vscode/settings.json +3 -0
  3. package/bin/cloudbase.js +0 -0
  4. package/bin/tcb.js +0 -0
  5. package/lib/commands/lowcode/app.js +2 -30
  6. package/lib/commands/run/service/create.js +4 -0
  7. package/lib/commands/run/service/deploy.js +4 -0
  8. package/lib/commands/run/service/update.js +4 -0
  9. package/lib/run/service/common.js +9 -3
  10. package/lib/run/service/deployPackage.js +2 -9
  11. package/lib/utils/checkTcbrEnv.js +5 -4
  12. package/lib/utils/debug-logger.js +30 -0
  13. package/lib/utils/net/cloud-api-request.js +7 -1
  14. package/lib/utils/net/http-request.js +16 -5
  15. package/package.json +5 -4
  16. package/types/commands/lowcode/app.d.ts +0 -10
  17. package/types/run/service/common.d.ts +4 -1
  18. package/types/types.d.ts +4 -0
  19. package/types/utils/debug-logger.d.ts +1 -0
  20. package/types/utils/net/http-request.d.ts +6 -2
  21. package/.history/.gitignore_20220624162613 +0 -84
  22. package/.history/.gitignore_20220627114054 +0 -86
  23. package/.history/package_20220711204706.json +0 -88
  24. package/.history/package_20220711204818.json +0 -88
  25. package/.history/package_20220712151717.json +0 -88
  26. package/.history/package_20220712212537.json +0 -88
  27. package/.history/package_20220722205058.json +0 -88
  28. package/.history/src/commands/lowcode/app_20220624162613.ts +0 -34
  29. package/.history/src/commands/lowcode/app_20220627114205.ts +0 -52
  30. package/.history/src/index_20220624162613.ts +0 -13
  31. package/.history/src/index_20220627113609.ts +0 -15
  32. package/.history/src/index_20220627114102.ts +0 -13
  33. package/src/auth/index.ts +0 -2
  34. package/src/auth/login.ts +0 -91
  35. package/src/auth/logout.ts +0 -7
  36. package/src/commands/account/index.ts +0 -2
  37. package/src/commands/account/login.ts +0 -192
  38. package/src/commands/account/logout.ts +0 -24
  39. package/src/commands/common.ts +0 -246
  40. package/src/commands/env/base.ts +0 -90
  41. package/src/commands/env/create.ts +0 -92
  42. package/src/commands/env/domain.ts +0 -186
  43. package/src/commands/env/index.ts +0 -4
  44. package/src/commands/env/login.ts +0 -235
  45. package/src/commands/framework/index.ts +0 -124
  46. package/src/commands/functions/alias/getRoute.ts +0 -76
  47. package/src/commands/functions/alias/index.ts +0 -2
  48. package/src/commands/functions/alias/setRoute.ts +0 -82
  49. package/src/commands/functions/code-download.ts +0 -100
  50. package/src/commands/functions/code-update.ts +0 -62
  51. package/src/commands/functions/concurrency/delete.ts +0 -45
  52. package/src/commands/functions/concurrency/index.ts +0 -3
  53. package/src/commands/functions/concurrency/list.ts +0 -58
  54. package/src/commands/functions/concurrency/set.ts +0 -47
  55. package/src/commands/functions/config-update.ts +0 -76
  56. package/src/commands/functions/copy.ts +0 -62
  57. package/src/commands/functions/delete.ts +0 -79
  58. package/src/commands/functions/deploy.ts +0 -293
  59. package/src/commands/functions/detail.ts +0 -138
  60. package/src/commands/functions/index.ts +0 -16
  61. package/src/commands/functions/invoke.ts +0 -121
  62. package/src/commands/functions/layer/bind.ts +0 -182
  63. package/src/commands/functions/layer/common.ts +0 -8
  64. package/src/commands/functions/layer/create.ts +0 -49
  65. package/src/commands/functions/layer/delete.ts +0 -73
  66. package/src/commands/functions/layer/download.ts +0 -92
  67. package/src/commands/functions/layer/index.ts +0 -7
  68. package/src/commands/functions/layer/list.ts +0 -94
  69. package/src/commands/functions/layer/sort.ts +0 -76
  70. package/src/commands/functions/list.ts +0 -68
  71. package/src/commands/functions/log.ts +0 -148
  72. package/src/commands/functions/run.ts +0 -249
  73. package/src/commands/functions/trigger-create.ts +0 -79
  74. package/src/commands/functions/trigger-delete.ts +0 -105
  75. package/src/commands/functions/version/index.ts +0 -2
  76. package/src/commands/functions/version/list.ts +0 -73
  77. package/src/commands/functions/version/publish.ts +0 -43
  78. package/src/commands/gateway/create.ts +0 -109
  79. package/src/commands/gateway/delete.ts +0 -81
  80. package/src/commands/gateway/domain.ts +0 -159
  81. package/src/commands/gateway/index.ts +0 -5
  82. package/src/commands/gateway/list.ts +0 -76
  83. package/src/commands/gateway/switch.ts +0 -107
  84. package/src/commands/helpers/index.ts +0 -3
  85. package/src/commands/helpers/init.ts +0 -431
  86. package/src/commands/helpers/new.ts +0 -117
  87. package/src/commands/helpers/open.ts +0 -67
  88. package/src/commands/hosting/hosting.ts +0 -360
  89. package/src/commands/hosting/index.ts +0 -1
  90. package/src/commands/index.ts +0 -13
  91. package/src/commands/lowcode/app.ts +0 -52
  92. package/src/commands/lowcode/comps.ts +0 -325
  93. package/src/commands/lowcode/index.ts +0 -2
  94. package/src/commands/lowcode/utils.ts +0 -25
  95. package/src/commands/run/create.ts +0 -153
  96. package/src/commands/run/delete.ts +0 -77
  97. package/src/commands/run/image/common.ts +0 -8
  98. package/src/commands/run/image/delete.ts +0 -68
  99. package/src/commands/run/image/download.ts +0 -68
  100. package/src/commands/run/image/index.ts +0 -5
  101. package/src/commands/run/image/list.ts +0 -84
  102. package/src/commands/run/image/upload.ts +0 -76
  103. package/src/commands/run/index.ts +0 -7
  104. package/src/commands/run/list.ts +0 -83
  105. package/src/commands/run/service/config.ts +0 -81
  106. package/src/commands/run/service/create.ts +0 -122
  107. package/src/commands/run/service/deploy.ts +0 -125
  108. package/src/commands/run/service/index.ts +0 -5
  109. package/src/commands/run/service/list.ts +0 -94
  110. package/src/commands/run/service/update.ts +0 -108
  111. package/src/commands/run/standalonegateway/common.ts +0 -8
  112. package/src/commands/run/standalonegateway/create.ts +0 -85
  113. package/src/commands/run/standalonegateway/destroy.ts +0 -59
  114. package/src/commands/run/standalonegateway/index.ts +0 -5
  115. package/src/commands/run/standalonegateway/list.ts +0 -53
  116. package/src/commands/run/standalonegateway/package.ts +0 -62
  117. package/src/commands/run/standalonegateway/turn.ts +0 -63
  118. package/src/commands/run/version/common.ts +0 -8
  119. package/src/commands/run/version/create.ts +0 -369
  120. package/src/commands/run/version/delete.ts +0 -64
  121. package/src/commands/run/version/index.ts +0 -5
  122. package/src/commands/run/version/list.ts +0 -91
  123. package/src/commands/run/version/modify.ts +0 -137
  124. package/src/commands/run/version/update.ts +0 -398
  125. package/src/commands/smart.ts +0 -132
  126. package/src/commands/storage/index.ts +0 -1
  127. package/src/commands/storage/storage.ts +0 -464
  128. package/src/commands/third/index.ts +0 -1
  129. package/src/commands/third/thirdAttach.ts +0 -49
  130. package/src/completion/index.ts +0 -13
  131. package/src/constant.ts +0 -154
  132. package/src/decorators/captureError.ts +0 -25
  133. package/src/decorators/constants.ts +0 -12
  134. package/src/decorators/deprecate.ts +0 -25
  135. package/src/decorators/guard.ts +0 -42
  136. package/src/decorators/index.ts +0 -7
  137. package/src/decorators/injectParams.ts +0 -54
  138. package/src/decorators/params/common.ts +0 -28
  139. package/src/decorators/params/index.ts +0 -35
  140. package/src/env/domain.ts +0 -33
  141. package/src/env/index.ts +0 -63
  142. package/src/env/login.ts +0 -80
  143. package/src/error.ts +0 -36
  144. package/src/function/alias.ts +0 -43
  145. package/src/function/base.ts +0 -253
  146. package/src/function/code.ts +0 -55
  147. package/src/function/concurrency.ts +0 -57
  148. package/src/function/create.ts +0 -78
  149. package/src/function/delete.ts +0 -42
  150. package/src/function/index.ts +0 -11
  151. package/src/function/layer/attach.ts +0 -68
  152. package/src/function/layer/create.ts +0 -63
  153. package/src/function/layer/delete.ts +0 -21
  154. package/src/function/layer/download.ts +0 -54
  155. package/src/function/layer/index.ts +0 -7
  156. package/src/function/layer/list.ts +0 -32
  157. package/src/function/layer/sort.ts +0 -24
  158. package/src/function/trigger.ts +0 -97
  159. package/src/function/update.ts +0 -35
  160. package/src/function/version.ts +0 -39
  161. package/src/function/vpc.ts +0 -22
  162. package/src/gateway/index.ts +0 -137
  163. package/src/help.ts +0 -50
  164. package/src/hosting.ts +0 -212
  165. package/src/index.ts +0 -13
  166. package/src/logger.ts +0 -17
  167. package/src/run/create.ts +0 -23
  168. package/src/run/delete.ts +0 -15
  169. package/src/run/image/build.ts +0 -36
  170. package/src/run/image/delete.ts +0 -14
  171. package/src/run/image/index.ts +0 -4
  172. package/src/run/image/info.ts +0 -27
  173. package/src/run/image/list.ts +0 -23
  174. package/src/run/index.ts +0 -8
  175. package/src/run/list.ts +0 -30
  176. package/src/run/repo.ts +0 -25
  177. package/src/run/service/common.ts +0 -311
  178. package/src/run/service/config.ts +0 -77
  179. package/src/run/service/create.ts +0 -52
  180. package/src/run/service/deployPackage.ts +0 -65
  181. package/src/run/service/index.ts +0 -7
  182. package/src/run/service/list.ts +0 -29
  183. package/src/run/service/showLogs.ts +0 -98
  184. package/src/run/service/update.ts +0 -82
  185. package/src/run/standalonegateway/create.ts +0 -24
  186. package/src/run/standalonegateway/destroy.ts +0 -19
  187. package/src/run/standalonegateway/index.ts +0 -5
  188. package/src/run/standalonegateway/list.ts +0 -74
  189. package/src/run/standalonegateway/package/index.ts +0 -1
  190. package/src/run/standalonegateway/package/list.ts +0 -24
  191. package/src/run/standalonegateway/turn/index.ts +0 -2
  192. package/src/run/standalonegateway/turn/off.ts +0 -19
  193. package/src/run/standalonegateway/turn/on.ts +0 -19
  194. package/src/run/version/create.ts +0 -68
  195. package/src/run/version/delete.ts +0 -16
  196. package/src/run/version/index.ts +0 -6
  197. package/src/run/version/list.ts +0 -17
  198. package/src/run/version/modify.ts +0 -17
  199. package/src/run/version/repo.ts +0 -28
  200. package/src/run/version/update.ts +0 -59
  201. package/src/storage.ts +0 -114
  202. package/src/third/index.ts +0 -13
  203. package/src/types.ts +0 -672
  204. package/src/utils/auth.ts +0 -15
  205. package/src/utils/checkTcbrEnv.ts +0 -67
  206. package/src/utils/cli-table.ts +0 -23
  207. package/src/utils/commonParamsCheck.ts +0 -65
  208. package/src/utils/config.ts +0 -39
  209. package/src/utils/env.ts +0 -244
  210. package/src/utils/fs/del.ts +0 -5
  211. package/src/utils/fs/index.ts +0 -71
  212. package/src/utils/function-packer.ts +0 -97
  213. package/src/utils/index.ts +0 -25
  214. package/src/utils/log.ts +0 -82
  215. package/src/utils/net/cloud-api-request.ts +0 -62
  216. package/src/utils/net/credential.ts +0 -53
  217. package/src/utils/net/http-request.ts +0 -84
  218. package/src/utils/net/index.ts +0 -5
  219. package/src/utils/net/manager-service.ts +0 -36
  220. package/src/utils/net/proxy.ts +0 -6
  221. package/src/utils/notice.ts +0 -28
  222. package/src/utils/output/highlight.ts +0 -5
  223. package/src/utils/output/index.ts +0 -3
  224. package/src/utils/output/link.ts +0 -10
  225. package/src/utils/output/loading.ts +0 -82
  226. package/src/utils/parallel.ts +0 -82
  227. package/src/utils/platform/index.ts +0 -3
  228. package/src/utils/platform/mac.ts +0 -21
  229. package/src/utils/platform/os.ts +0 -64
  230. package/src/utils/platform/port.ts +0 -10
  231. package/src/utils/progress-bar.ts +0 -38
  232. package/src/utils/prompt/index.ts +0 -1
  233. package/src/utils/prompt/select.ts +0 -60
  234. package/src/utils/reporter/agree.ts +0 -20
  235. package/src/utils/reporter/download.ts +0 -26
  236. package/src/utils/reporter/index.ts +0 -3
  237. package/src/utils/reporter/usage.ts +0 -20
  238. package/src/utils/store/auth.ts +0 -49
  239. package/src/utils/store/common.ts +0 -8
  240. package/src/utils/store/db.ts +0 -68
  241. package/src/utils/store/index.ts +0 -5
  242. package/src/utils/store/usage.ts +0 -12
  243. package/src/utils/tcbrApi/callTcbrApi.ts +0 -28
  244. package/src/utils/tcbrApi/index.ts +0 -1
  245. package/src/utils/template.ts +0 -170
  246. package/src/utils/tools/encoding.ts +0 -8
  247. package/src/utils/tools/index.ts +0 -4
  248. package/src/utils/tools/object.ts +0 -33
  249. package/src/utils/tools/time.ts +0 -38
  250. package/src/utils/tools/uid.ts +0 -19
  251. package/src/utils/validator.ts +0 -65
  252. package/yarn-error.log +0 -12841
@@ -1,464 +0,0 @@
1
- import fs from 'fs'
2
- import path from 'path'
3
- import inquirer from 'inquirer'
4
- import logSymbols from 'log-symbols'
5
- import { StorageService } from '@cloudbase/manager-node/types/storage'
6
- import { Command, ICommand } from '../common'
7
-
8
- import {
9
- loadingFactory,
10
- printHorizontalTable,
11
- formatDate,
12
- createUploadProgressBar,
13
- formateFileSize,
14
- getMangerService,
15
- isDirectory,
16
- checkFullAccess
17
- } from '../../utils'
18
-
19
- import { CloudBaseError } from '../../error'
20
- import { InjectParams, EnvId, ArgsParams, ArgsOptions, Log, Logger } from '../../decorators'
21
-
22
- const AclMap = {
23
- READONLY: '所有用户可读,仅创建者和管理员可写',
24
- PRIVATE: '仅创建者及管理员可读写',
25
- ADMINWRITE: '所有用户可读,仅管理员可写',
26
- ADMINONLY: '仅管理员可读写'
27
- }
28
-
29
- async function getStorageService(envId: string): Promise<StorageService> {
30
- const { storage } = await getMangerService(envId)
31
- return storage
32
- }
33
-
34
- function checkCloudPath(cloudPath: string) {
35
- if (cloudPath?.[0] === '/') {
36
- throw new CloudBaseError('cloudPath 不能以 "/" 开头')
37
- }
38
- }
39
-
40
- @ICommand()
41
- export class UploadCommand extends Command {
42
- get options() {
43
- return {
44
- cmd: 'storage',
45
- childCmd: 'upload <localPath> [cloudPath]',
46
- deprecateCmd: 'storage:upload <localPath> [cloudPath]',
47
- options: [
48
- {
49
- flags: '-e, --envId <envId>',
50
- desc: '环境 Id'
51
- },
52
- { flags: '--times <times>', desc: '设置上传重试次数,默认值为 1' },
53
- {
54
- flags: '--interval <interval>',
55
- desc: '设置上传失败时,重试时间间隔(毫秒),默认值为 500'
56
- }
57
- ],
58
- desc: '上传文件/文件夹'
59
- }
60
- }
61
-
62
- @InjectParams()
63
- async execute(
64
- @EnvId() envId,
65
- @ArgsParams() params,
66
- @ArgsOptions() options,
67
- @Log() log: Logger
68
- ) {
69
- const localPath = params?.[0]
70
- const cloudPath = params?.[1]
71
- const retryCount = options?.times
72
- const retryInterval = options?.interval
73
- const resolveLocalPath = path.resolve(localPath)
74
- if (!checkFullAccess(resolveLocalPath)) {
75
- throw new CloudBaseError('文件未找到!')
76
- }
77
- if (retryCount > 10) {
78
- throw new CloudBaseError('上传重试次数为 0-10 次之间')
79
- }
80
-
81
- const loading = loadingFactory()
82
- loading.start('准备上传中...')
83
- const storageService = await getStorageService(envId)
84
- const isDir = fs.statSync(resolveLocalPath).isDirectory()
85
-
86
- let totalFiles = 0
87
-
88
- if (isDir) {
89
- let files = await storageService.walkLocalDir(resolveLocalPath)
90
- files = files.filter((item) => !isDirectory(item))
91
- totalFiles = files.length
92
- }
93
-
94
- // 上传进度条
95
- const onProgress = createUploadProgressBar(
96
- () => {
97
- !isDir && log.success('上传文件成功!')
98
- },
99
- () => {
100
- loading.stop()
101
- }
102
- )
103
-
104
- const successFiles = []
105
- const failedFiles = []
106
- if (isDir) {
107
- await storageService.uploadDirectory({
108
- localPath: resolveLocalPath,
109
- cloudPath,
110
- onProgress,
111
- onFileFinish: (...args) => {
112
- const error = args[0]
113
- const fileInfo = (args as any)[2]
114
- if (error) {
115
- failedFiles.push(fileInfo.Key)
116
- } else {
117
- successFiles.push(fileInfo.Key)
118
- }
119
- },
120
- retryCount: retryCount || 1,
121
- retryInterval,
122
- parallel: 20
123
- })
124
-
125
- log.success(`文件共计 ${totalFiles} 个`)
126
- log.success(`文件上传成功 ${successFiles.length} 个`)
127
- // 上传成功的文件
128
- if (totalFiles <= 50) {
129
- printHorizontalTable(
130
- ['状态', '文件'],
131
- successFiles.map((item) => [logSymbols.success, item])
132
- )
133
- }
134
-
135
- // 上传失败的文件
136
- log.error(`文件上传失败 ${failedFiles.length} 个`)
137
- if (failedFiles.length) {
138
- if (totalFiles <= 50) {
139
- printHorizontalTable(
140
- ['状态', '文件'],
141
- failedFiles.map((item) => [logSymbols.error, item])
142
- )
143
- } else {
144
- // 写入文件到本地
145
- const errorLogPath = path.resolve('./cloudbase-error.log')
146
- log.error('上传失败文件:')
147
- console.log(errorLogPath)
148
- fs.writeFileSync(errorLogPath, failedFiles.join('\n'))
149
- }
150
- }
151
- } else {
152
- const assignCloudPath = cloudPath || path.parse(resolveLocalPath).base
153
- await storageService.uploadFile({
154
- localPath: resolveLocalPath,
155
- cloudPath: assignCloudPath,
156
- onProgress
157
- })
158
- }
159
- }
160
- }
161
-
162
- @ICommand()
163
- export class DownloadCommand extends Command {
164
- get options() {
165
- return {
166
- cmd: 'storage',
167
- childCmd: 'download <cloudPath> <localPath>',
168
- deprecateCmd: 'storage:download <cloudPath> <localPath>',
169
- options: [
170
- {
171
- flags: '-e, --envId <envId>',
172
- desc: '环境 Id'
173
- },
174
- {
175
- flags: '-d, --dir',
176
- desc: '下载目标是否为文件夹'
177
- }
178
- ],
179
- desc: '下载文件/文件夹,文件夹需指定 --dir 选项'
180
- }
181
- }
182
-
183
- @InjectParams()
184
- async execute(@EnvId() envId, @ArgsOptions() options, @ArgsParams() params) {
185
- const cloudPath = params?.[0]
186
- const localPath = params?.[1]
187
- const storageService = await getStorageService(envId)
188
- const resolveLocalPath = path.resolve(localPath)
189
-
190
- const { dir } = options
191
- const fileText = dir ? '文件夹' : '文件'
192
-
193
- if (dir && !checkFullAccess(resolveLocalPath)) {
194
- throw new CloudBaseError('存储文件夹不存在!')
195
- }
196
-
197
- const loading = loadingFactory()
198
-
199
- loading.start(`下载${fileText}中`)
200
-
201
- if (dir) {
202
- await storageService.downloadDirectory({
203
- localPath: resolveLocalPath,
204
- cloudPath,
205
- parallel: 20
206
- })
207
- } else {
208
- await storageService.downloadFile({
209
- cloudPath,
210
- localPath: resolveLocalPath
211
- })
212
- }
213
-
214
- loading.succeed(`下载${fileText}成功!`)
215
- }
216
- }
217
-
218
- @ICommand()
219
- export class DeleteFileCommand extends Command {
220
- get options() {
221
- return {
222
- cmd: 'storage',
223
- childCmd: 'delete [cloudPath]',
224
- deprecateCmd: 'storage:delete [cloudPath]',
225
- options: [
226
- {
227
- flags: '-e, --envId <envId>',
228
- desc: '环境 Id'
229
- },
230
- {
231
- flags: '-d, --dir',
232
- desc: '下载目标是否为文件夹'
233
- }
234
- ],
235
- desc: '删除文件/文件夹,文件夹需指定 --dir 选项'
236
- }
237
- }
238
-
239
- @InjectParams()
240
- async execute(@EnvId() envId, @ArgsOptions() options, @ArgsParams() params) {
241
- let isDir = options.dir
242
- const cloudPath = params?.[0]
243
- const loading = loadingFactory()
244
- const storageService = await getStorageService(envId)
245
-
246
- // 删除所有文件,危险操作,需要提示
247
- if (!cloudPath) {
248
- const { confirm } = await inquirer.prompt({
249
- type: 'confirm',
250
- name: 'confirm',
251
- message: '指定云端路径为空,将会删除所有文件,是否继续',
252
- default: false
253
- })
254
- if (!confirm) {
255
- throw new CloudBaseError('操作终止!')
256
- }
257
- isDir = true
258
- }
259
-
260
- // cloudPath 为 / 时,只能删除文件夹
261
- if (cloudPath === '/') {
262
- isDir = true
263
- }
264
-
265
- const fileText = isDir ? '文件夹' : '文件'
266
- loading.start(`删除${fileText}中`)
267
-
268
- if (isDir) {
269
- await storageService.deleteDirectory(cloudPath)
270
- } else {
271
- await storageService.deleteFile([cloudPath])
272
- }
273
-
274
- loading.succeed(`删除${fileText}成功!`)
275
- }
276
- }
277
-
278
- @ICommand()
279
- export class StorageListCommand extends Command {
280
- get options() {
281
- return {
282
- cmd: 'storage',
283
- childCmd: 'list [cloudPath]',
284
- deprecateCmd: 'storage:list [cloudPath]',
285
- options: [
286
- {
287
- flags: '-e, --envId <envId>',
288
- desc: '环境 Id'
289
- }
290
- // {
291
- // flags: '-m, --max',
292
- // desc: '传输数据的最大条数'
293
- // },
294
- // {
295
- // flags: '--markder',
296
- // desc: '起始路径名,后(不含)按照 UTF-8 字典序返回条目'
297
- // }
298
- ],
299
- desc: '获取文件存储的文件列表,不指定路径时获取全部文件列表'
300
- }
301
- }
302
-
303
- @InjectParams()
304
- async execute(@EnvId() envId, @ArgsParams() params) {
305
- const cloudPath = params?.[0]
306
- const storageService = await getStorageService(envId)
307
-
308
- const loading = loadingFactory()
309
- loading.start('获取文件列表中...')
310
- const list = await storageService.listDirectoryFiles(cloudPath)
311
- loading.stop()
312
-
313
- const head = ['序号', 'Key', 'LastModified', 'ETag', 'Size(KB)']
314
-
315
- const notDir = (item) => !(Number(item.Size) === 0 && /\/$/g.test(item.Key))
316
-
317
- const tableData = list
318
- .filter(notDir)
319
- .map((item, index) => [
320
- index + 1,
321
- item.Key,
322
- formatDate(item.LastModified, 'yyyy-MM-dd hh:mm:ss'),
323
- item.ETag,
324
- String(formateFileSize(item.Size, 'KB'))
325
- ])
326
- printHorizontalTable(head, tableData)
327
- }
328
- }
329
-
330
- @ICommand()
331
- export class GetUrlCommand extends Command {
332
- get options() {
333
- return {
334
- cmd: 'storage',
335
- childCmd: 'url <cloudPath>',
336
- deprecateCmd: 'storage:url <cloudPath>',
337
- options: [
338
- {
339
- flags: '-e, --envId <envId>',
340
- desc: '环境 Id'
341
- }
342
- ],
343
- desc: '获取文件临时访问地址'
344
- }
345
- }
346
-
347
- @InjectParams()
348
- async execute(@EnvId() envId, @ArgsParams() params, @Log() log: Logger) {
349
- const cloudPath = params?.[0]
350
- const storageService = await getStorageService(envId)
351
-
352
- const fileList = await storageService.getTemporaryUrl([cloudPath])
353
- const { url } = fileList[0]
354
-
355
- log.success(`文件临时访问地址:${url}`)
356
- }
357
- }
358
-
359
- @ICommand()
360
- export class StorageDetailCommand extends Command {
361
- get options() {
362
- return {
363
- cmd: 'storage',
364
- childCmd: 'detail <cloudPath>',
365
- deprecateCmd: 'storage:detail <cloudPath>',
366
- options: [
367
- {
368
- flags: '-e, --envId <envId>',
369
- desc: '环境 Id'
370
- }
371
- ],
372
- desc: '获取文件信息'
373
- }
374
- }
375
-
376
- @InjectParams()
377
- async execute(@EnvId() envId, @ArgsParams() params) {
378
- const cloudPath = params?.[0]
379
- const storageService = await getStorageService(envId)
380
-
381
- const fileInfo = await storageService.getFileInfo(cloudPath)
382
- const date = formatDate(fileInfo.Date, 'yyyy-MM-dd hh:mm:ss')
383
-
384
- const logInfo = `文件大小:${fileInfo.Size}\n文件类型:${fileInfo.Type}\n修改日期:${date}\nETag:${fileInfo.ETag}
385
- `
386
- console.log(logInfo)
387
- }
388
- }
389
-
390
- @ICommand()
391
- export class GetAclCommand extends Command {
392
- get options() {
393
- return {
394
- cmd: 'storage',
395
- childCmd: 'get-acl',
396
- deprecateCmd: 'storage:get-acl',
397
- options: [
398
- {
399
- flags: '-e, --envId <envId>',
400
- desc: '环境 Id'
401
- }
402
- ],
403
- desc: '获取文件存储权限信息'
404
- }
405
- }
406
-
407
- @InjectParams()
408
- async execute(@EnvId() envId) {
409
- const storageService = await getStorageService(envId)
410
- const acl = await storageService.getStorageAcl()
411
-
412
- console.log(`当前权限【${AclMap[acl]}】`)
413
- }
414
- }
415
-
416
- @ICommand()
417
- export class setAclCommand extends Command {
418
- get options() {
419
- return {
420
- cmd: 'storage',
421
- childCmd: 'set-acl',
422
- deprecateCmd: 'storage:set-acl',
423
- options: [
424
- {
425
- flags: '-e, --envId <envId>',
426
- desc: '环境 Id'
427
- }
428
- ],
429
- desc: '设置文件存储权限信息'
430
- }
431
- }
432
-
433
- @InjectParams()
434
- async execute(@EnvId() envId, @Log() log: Logger) {
435
- const storageService = await getStorageService(envId)
436
-
437
- const { acl } = await inquirer.prompt({
438
- type: 'list',
439
- name: 'acl',
440
- message: '选择权限',
441
- choices: [
442
- {
443
- name: '所有用户可读,仅创建者和管理员可写',
444
- value: 'READONLY'
445
- },
446
- {
447
- name: '仅创建者及管理员可读写',
448
- value: 'PRIVATE'
449
- },
450
- {
451
- name: '所有用户可读,仅管理员可写',
452
- value: 'ADMINWRITE'
453
- },
454
- {
455
- name: '仅管理员可读写',
456
- value: 'ADMINONLY'
457
- }
458
- ]
459
- })
460
-
461
- await storageService.setStorageAcl(acl)
462
- log.success('设置存储权限成功!')
463
- }
464
- }
@@ -1 +0,0 @@
1
- export * from './thirdAttach'
@@ -1,49 +0,0 @@
1
- import { Command } from '../common'
2
- import { loadingFactory } from '../../utils'
3
- import { deleteThirdPartAttach } from '../../third'
4
- import { InjectParams, ArgsOptions } from '../../decorators'
5
-
6
- export class DeleteThirdAttach extends Command {
7
- get options() {
8
- return {
9
- cmd: 'third',
10
- childCmd: 'deleteThirdAttach',
11
- deprecateCmd: 'third:deleteThirdAttach',
12
- options: [
13
- {
14
- flags: '--source <source>',
15
- desc: '第三方来源'
16
- },
17
- {
18
- flags: '--thirdAppId <thirdAppId>',
19
- desc: '第三方appId'
20
- }
21
- ],
22
- desc: '解除第三方绑定',
23
- requiredEnvId: false
24
- }
25
- }
26
-
27
- @InjectParams()
28
- async execute(@ArgsOptions() options) {
29
- const { source, thirdAppId } = options
30
-
31
- let typeFlag
32
- if (source === 'qq') {
33
- typeFlag = 1
34
- }
35
-
36
- if (!typeFlag) {
37
- throw new Error('请指定对应的source')
38
- }
39
-
40
- const loading = loadingFactory()
41
- loading.start('数据加载中...')
42
- const data = await deleteThirdPartAttach({
43
- TypeFlag: typeFlag,
44
- ThirdPartAppid: thirdAppId
45
- })
46
- loading.stop()
47
- console.log(data)
48
- }
49
- }
@@ -1,13 +0,0 @@
1
- import { ALL_COMMANDS } from '../constant'
2
-
3
- export function handleCompletion({ reply, line }) {
4
- // 命令
5
- const cmd = line.replace(/^cloudbase\s|^tcb\s/, '')
6
-
7
- const commands = ALL_COMMANDS.filter(item => item.indexOf(cmd) > -1)
8
- if (commands.length > 0) {
9
- reply(commands)
10
- } else {
11
- reply(['-h', '-v'])
12
- }
13
- }
package/src/constant.ts DELETED
@@ -1,154 +0,0 @@
1
- // cloudbase cli 配置的字段名
2
- export class ConfigItems {
3
- static credential = 'credential'
4
- static ssh = 'ssh'
5
- }
6
-
7
- // Node.js 默认部署配置
8
- export const DefaultFunctionDeployConfig = {
9
- timeout: 3,
10
- handler: 'index.main',
11
- runtime: 'Nodejs10.15',
12
- installDependency: true,
13
- ignore: ['node_modules', 'node_modules/**/*', '.git']
14
- }
15
-
16
- // cloudbase 配置文件默认配置
17
- export const DefaultCloudBaseConfig = {
18
- functionRoot: './functions',
19
- functions: []
20
- }
21
-
22
- // 请求超时时间
23
- export const REQUEST_TIMEOUT = 15000
24
-
25
- export const enum ENV_STATUS {
26
- // 创建中
27
- UNAVAILABLE = 'UNAVAILABLE',
28
- // 正常
29
- NORMAL = 'NORMAL',
30
- // 销毁隔离
31
- ISOLATE = 'ISOLATE',
32
- // 异常
33
- ABNORMAL = 'ABNORMAL',
34
- ERROR = 'ERROR'
35
- }
36
-
37
- export const STATUS_TEXT = {
38
- UNAVAILABLE: '创建中',
39
- NORMAL: '正常',
40
- ISOLATE: '隔离中',
41
- ABNORMAL: '异常',
42
- ERROR: '异常'
43
- }
44
-
45
- export const ALL_COMMANDS = [
46
- 'login',
47
- 'logout',
48
- 'init',
49
- 'open',
50
- 'env list',
51
- 'env rename',
52
- 'env create',
53
- 'env domain list',
54
- 'env domain create',
55
- 'env domain delete',
56
- 'env login list',
57
- 'env login create',
58
- 'env login update',
59
- 'fn list',
60
- 'fn download',
61
- 'fn deploy',
62
- 'fn delete',
63
- 'fn detail',
64
- 'fn code update',
65
- 'fn config update',
66
- 'fn copy',
67
- 'fn log',
68
- 'fn trigger create',
69
- 'fn trigger delete',
70
- 'fn invoke',
71
- 'fn publish-version',
72
- 'fn list-function-versions',
73
- 'fn put-provisioned-concurrency',
74
- 'fn get-provisioned-concurrency',
75
- 'fn delete-provisioned-concurrency',
76
- 'fn config-route',
77
- 'functions run',
78
- 'storage upload',
79
- 'storage download',
80
- 'storage delete',
81
- 'storage list',
82
- 'storage url',
83
- 'storage detail',
84
- 'storage get-acl',
85
- 'storage set-acl',
86
- 'hosting detail',
87
- 'hosting deploy',
88
- 'hosting delete',
89
- 'hosting list',
90
- 'access create',
91
- 'access delete',
92
- 'access list',
93
- 'access domain bind',
94
- 'access domain unbind',
95
- 'access domain list',
96
- 'run standalonegateway create',
97
- 'run standalonegateway list',
98
- 'run standalonegateway destroy',
99
- 'run standalonegateway package list',
100
- 'run standalonegateway turn on',
101
- 'run standalonegateway turn off',
102
- ]
103
-
104
- export const StatusMap = {
105
- Active: '部署完成',
106
- Creating: '创建中',
107
- CreateFailed: '创建失败',
108
- Updating: '更新中',
109
- UpdateFailed: '更新失败',
110
- Publishing: '函数版本发布中',
111
- PublishFailed: '函数版本发布失败',
112
- Deleting: '函数删除中',
113
- DeleteFailed: '函数删除失败'
114
- }
115
-
116
- export const ConcurrencyTaskStatus = {
117
- Done: '已完成',
118
- InProgress: '进行中',
119
- Failed: '失败'
120
- }
121
-
122
- export const enum EnumEnvCheck {
123
- EnvFit = 0,
124
- EnvNewCmdOld,
125
- EnvOldCmdNew,
126
- }
127
-
128
- export const enum EnumDeployStatus {
129
- Deploying = 'deploying',
130
- DeploySuccess = 'running',
131
- DeployFailed = 'deploy_failed'
132
- }
133
-
134
- // tcbr 服务配置 cpu 和 mem 的约束
135
- export const CPU_MEM_OPTS: { cpu: number; mems: number[] }[] = [
136
- { cpu: 0.25, mems: [0.5] },
137
- { cpu: 0.5, mems: [1] },
138
- { cpu: 1, mems: [2] },
139
- { cpu: 2, mems: [4] },
140
- { cpu: 4, mems: [8] },
141
- { cpu: 8, mems: [16] },
142
- { cpu: 16, mems: [32] },
143
- ]
144
-
145
- export const DEFAULT_CPU_MEM_SET: { PolicyType: 'mem' | 'cpu', PolicyThreshold: number }[] = [
146
- {
147
- PolicyType: 'mem',
148
- PolicyThreshold: 60
149
- },
150
- {
151
- PolicyType: 'cpu',
152
- PolicyThreshold: 60
153
- },
154
- ]
@@ -1,25 +0,0 @@
1
- /**
2
- * 捕获操作发生的异常,显示错误提示,并在输出中显示详细的错误堆栈信息
3
- */
4
- export const CaptureError = (): MethodDecorator => (
5
- target: any,
6
- key: string | symbol,
7
- descriptor: TypedPropertyDescriptor<any>
8
- ) => {
9
- const rawFunc: Function = descriptor.value
10
-
11
- descriptor.value = async function (...args) {
12
- try {
13
- const res = await rawFunc.apply(this, args)
14
- return res
15
- } catch (e) {
16
- const errMsg =
17
- e?.message ||
18
- (typeof e?.toString === 'function' ? e.toString() : '') ||
19
- 'Unknown Error'
20
- // output.showErrorWithMessage(errMsg, e?.stack || errMsg)
21
- }
22
- }
23
-
24
- return descriptor
25
- }