@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.
Files changed (244) 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/run/service/deployPackage.js +2 -9
  7. package/lib/utils/checkTcbrEnv.js +5 -4
  8. package/lib/utils/debug-logger.js +30 -0
  9. package/lib/utils/net/cloud-api-request.js +7 -1
  10. package/lib/utils/net/http-request.js +16 -5
  11. package/package.json +5 -4
  12. package/types/commands/lowcode/app.d.ts +0 -10
  13. package/types/utils/debug-logger.d.ts +1 -0
  14. package/types/utils/net/http-request.d.ts +6 -2
  15. package/.history/.gitignore_20220624162613 +0 -84
  16. package/.history/.gitignore_20220627114054 +0 -86
  17. package/.history/package_20220711204706.json +0 -88
  18. package/.history/package_20220711204818.json +0 -88
  19. package/.history/package_20220712151717.json +0 -88
  20. package/.history/src/commands/lowcode/app_20220624162613.ts +0 -34
  21. package/.history/src/commands/lowcode/app_20220627114205.ts +0 -52
  22. package/.history/src/index_20220624162613.ts +0 -13
  23. package/.history/src/index_20220627113609.ts +0 -15
  24. package/.history/src/index_20220627114102.ts +0 -13
  25. package/src/auth/index.ts +0 -2
  26. package/src/auth/login.ts +0 -91
  27. package/src/auth/logout.ts +0 -7
  28. package/src/commands/account/index.ts +0 -2
  29. package/src/commands/account/login.ts +0 -192
  30. package/src/commands/account/logout.ts +0 -24
  31. package/src/commands/common.ts +0 -246
  32. package/src/commands/env/base.ts +0 -90
  33. package/src/commands/env/create.ts +0 -92
  34. package/src/commands/env/domain.ts +0 -186
  35. package/src/commands/env/index.ts +0 -4
  36. package/src/commands/env/login.ts +0 -235
  37. package/src/commands/framework/index.ts +0 -124
  38. package/src/commands/functions/alias/getRoute.ts +0 -76
  39. package/src/commands/functions/alias/index.ts +0 -2
  40. package/src/commands/functions/alias/setRoute.ts +0 -82
  41. package/src/commands/functions/code-download.ts +0 -100
  42. package/src/commands/functions/code-update.ts +0 -62
  43. package/src/commands/functions/concurrency/delete.ts +0 -45
  44. package/src/commands/functions/concurrency/index.ts +0 -3
  45. package/src/commands/functions/concurrency/list.ts +0 -58
  46. package/src/commands/functions/concurrency/set.ts +0 -47
  47. package/src/commands/functions/config-update.ts +0 -76
  48. package/src/commands/functions/copy.ts +0 -62
  49. package/src/commands/functions/delete.ts +0 -79
  50. package/src/commands/functions/deploy.ts +0 -293
  51. package/src/commands/functions/detail.ts +0 -138
  52. package/src/commands/functions/index.ts +0 -16
  53. package/src/commands/functions/invoke.ts +0 -121
  54. package/src/commands/functions/layer/bind.ts +0 -182
  55. package/src/commands/functions/layer/common.ts +0 -8
  56. package/src/commands/functions/layer/create.ts +0 -49
  57. package/src/commands/functions/layer/delete.ts +0 -73
  58. package/src/commands/functions/layer/download.ts +0 -92
  59. package/src/commands/functions/layer/index.ts +0 -7
  60. package/src/commands/functions/layer/list.ts +0 -94
  61. package/src/commands/functions/layer/sort.ts +0 -76
  62. package/src/commands/functions/list.ts +0 -68
  63. package/src/commands/functions/log.ts +0 -148
  64. package/src/commands/functions/run.ts +0 -249
  65. package/src/commands/functions/trigger-create.ts +0 -79
  66. package/src/commands/functions/trigger-delete.ts +0 -105
  67. package/src/commands/functions/version/index.ts +0 -2
  68. package/src/commands/functions/version/list.ts +0 -73
  69. package/src/commands/functions/version/publish.ts +0 -43
  70. package/src/commands/gateway/create.ts +0 -109
  71. package/src/commands/gateway/delete.ts +0 -81
  72. package/src/commands/gateway/domain.ts +0 -159
  73. package/src/commands/gateway/index.ts +0 -5
  74. package/src/commands/gateway/list.ts +0 -76
  75. package/src/commands/gateway/switch.ts +0 -107
  76. package/src/commands/helpers/index.ts +0 -3
  77. package/src/commands/helpers/init.ts +0 -431
  78. package/src/commands/helpers/new.ts +0 -117
  79. package/src/commands/helpers/open.ts +0 -67
  80. package/src/commands/hosting/hosting.ts +0 -360
  81. package/src/commands/hosting/index.ts +0 -1
  82. package/src/commands/index.ts +0 -13
  83. package/src/commands/lowcode/app.ts +0 -52
  84. package/src/commands/lowcode/comps.ts +0 -325
  85. package/src/commands/lowcode/index.ts +0 -2
  86. package/src/commands/lowcode/utils.ts +0 -25
  87. package/src/commands/run/create.ts +0 -153
  88. package/src/commands/run/delete.ts +0 -77
  89. package/src/commands/run/image/common.ts +0 -8
  90. package/src/commands/run/image/delete.ts +0 -68
  91. package/src/commands/run/image/download.ts +0 -68
  92. package/src/commands/run/image/index.ts +0 -5
  93. package/src/commands/run/image/list.ts +0 -84
  94. package/src/commands/run/image/upload.ts +0 -76
  95. package/src/commands/run/index.ts +0 -7
  96. package/src/commands/run/list.ts +0 -83
  97. package/src/commands/run/service/config.ts +0 -81
  98. package/src/commands/run/service/create.ts +0 -122
  99. package/src/commands/run/service/deploy.ts +0 -125
  100. package/src/commands/run/service/index.ts +0 -5
  101. package/src/commands/run/service/list.ts +0 -94
  102. package/src/commands/run/service/update.ts +0 -108
  103. package/src/commands/run/standalonegateway/common.ts +0 -8
  104. package/src/commands/run/standalonegateway/create.ts +0 -85
  105. package/src/commands/run/standalonegateway/destroy.ts +0 -59
  106. package/src/commands/run/standalonegateway/index.ts +0 -5
  107. package/src/commands/run/standalonegateway/list.ts +0 -53
  108. package/src/commands/run/standalonegateway/package.ts +0 -62
  109. package/src/commands/run/standalonegateway/turn.ts +0 -63
  110. package/src/commands/run/version/common.ts +0 -8
  111. package/src/commands/run/version/create.ts +0 -369
  112. package/src/commands/run/version/delete.ts +0 -64
  113. package/src/commands/run/version/index.ts +0 -5
  114. package/src/commands/run/version/list.ts +0 -91
  115. package/src/commands/run/version/modify.ts +0 -137
  116. package/src/commands/run/version/update.ts +0 -398
  117. package/src/commands/smart.ts +0 -132
  118. package/src/commands/storage/index.ts +0 -1
  119. package/src/commands/storage/storage.ts +0 -464
  120. package/src/commands/third/index.ts +0 -1
  121. package/src/commands/third/thirdAttach.ts +0 -49
  122. package/src/completion/index.ts +0 -13
  123. package/src/constant.ts +0 -154
  124. package/src/decorators/captureError.ts +0 -25
  125. package/src/decorators/constants.ts +0 -12
  126. package/src/decorators/deprecate.ts +0 -25
  127. package/src/decorators/guard.ts +0 -42
  128. package/src/decorators/index.ts +0 -7
  129. package/src/decorators/injectParams.ts +0 -54
  130. package/src/decorators/params/common.ts +0 -28
  131. package/src/decorators/params/index.ts +0 -35
  132. package/src/env/domain.ts +0 -33
  133. package/src/env/index.ts +0 -63
  134. package/src/env/login.ts +0 -80
  135. package/src/error.ts +0 -36
  136. package/src/function/alias.ts +0 -43
  137. package/src/function/base.ts +0 -253
  138. package/src/function/code.ts +0 -55
  139. package/src/function/concurrency.ts +0 -57
  140. package/src/function/create.ts +0 -78
  141. package/src/function/delete.ts +0 -42
  142. package/src/function/index.ts +0 -11
  143. package/src/function/layer/attach.ts +0 -68
  144. package/src/function/layer/create.ts +0 -63
  145. package/src/function/layer/delete.ts +0 -21
  146. package/src/function/layer/download.ts +0 -54
  147. package/src/function/layer/index.ts +0 -7
  148. package/src/function/layer/list.ts +0 -32
  149. package/src/function/layer/sort.ts +0 -24
  150. package/src/function/trigger.ts +0 -97
  151. package/src/function/update.ts +0 -35
  152. package/src/function/version.ts +0 -39
  153. package/src/function/vpc.ts +0 -22
  154. package/src/gateway/index.ts +0 -137
  155. package/src/help.ts +0 -50
  156. package/src/hosting.ts +0 -212
  157. package/src/index.ts +0 -13
  158. package/src/logger.ts +0 -17
  159. package/src/run/create.ts +0 -23
  160. package/src/run/delete.ts +0 -15
  161. package/src/run/image/build.ts +0 -36
  162. package/src/run/image/delete.ts +0 -14
  163. package/src/run/image/index.ts +0 -4
  164. package/src/run/image/info.ts +0 -27
  165. package/src/run/image/list.ts +0 -23
  166. package/src/run/index.ts +0 -8
  167. package/src/run/list.ts +0 -30
  168. package/src/run/repo.ts +0 -25
  169. package/src/run/service/common.ts +0 -311
  170. package/src/run/service/config.ts +0 -77
  171. package/src/run/service/create.ts +0 -52
  172. package/src/run/service/deployPackage.ts +0 -65
  173. package/src/run/service/index.ts +0 -7
  174. package/src/run/service/list.ts +0 -29
  175. package/src/run/service/showLogs.ts +0 -98
  176. package/src/run/service/update.ts +0 -82
  177. package/src/run/standalonegateway/create.ts +0 -24
  178. package/src/run/standalonegateway/destroy.ts +0 -19
  179. package/src/run/standalonegateway/index.ts +0 -5
  180. package/src/run/standalonegateway/list.ts +0 -74
  181. package/src/run/standalonegateway/package/index.ts +0 -1
  182. package/src/run/standalonegateway/package/list.ts +0 -24
  183. package/src/run/standalonegateway/turn/index.ts +0 -2
  184. package/src/run/standalonegateway/turn/off.ts +0 -19
  185. package/src/run/standalonegateway/turn/on.ts +0 -19
  186. package/src/run/version/create.ts +0 -68
  187. package/src/run/version/delete.ts +0 -16
  188. package/src/run/version/index.ts +0 -6
  189. package/src/run/version/list.ts +0 -17
  190. package/src/run/version/modify.ts +0 -17
  191. package/src/run/version/repo.ts +0 -28
  192. package/src/run/version/update.ts +0 -59
  193. package/src/storage.ts +0 -114
  194. package/src/third/index.ts +0 -13
  195. package/src/types.ts +0 -672
  196. package/src/utils/auth.ts +0 -15
  197. package/src/utils/checkTcbrEnv.ts +0 -67
  198. package/src/utils/cli-table.ts +0 -23
  199. package/src/utils/commonParamsCheck.ts +0 -65
  200. package/src/utils/config.ts +0 -39
  201. package/src/utils/env.ts +0 -244
  202. package/src/utils/fs/del.ts +0 -5
  203. package/src/utils/fs/index.ts +0 -71
  204. package/src/utils/function-packer.ts +0 -97
  205. package/src/utils/index.ts +0 -25
  206. package/src/utils/log.ts +0 -82
  207. package/src/utils/net/cloud-api-request.ts +0 -62
  208. package/src/utils/net/credential.ts +0 -53
  209. package/src/utils/net/http-request.ts +0 -84
  210. package/src/utils/net/index.ts +0 -5
  211. package/src/utils/net/manager-service.ts +0 -36
  212. package/src/utils/net/proxy.ts +0 -6
  213. package/src/utils/notice.ts +0 -28
  214. package/src/utils/output/highlight.ts +0 -5
  215. package/src/utils/output/index.ts +0 -3
  216. package/src/utils/output/link.ts +0 -10
  217. package/src/utils/output/loading.ts +0 -82
  218. package/src/utils/parallel.ts +0 -82
  219. package/src/utils/platform/index.ts +0 -3
  220. package/src/utils/platform/mac.ts +0 -21
  221. package/src/utils/platform/os.ts +0 -64
  222. package/src/utils/platform/port.ts +0 -10
  223. package/src/utils/progress-bar.ts +0 -38
  224. package/src/utils/prompt/index.ts +0 -1
  225. package/src/utils/prompt/select.ts +0 -60
  226. package/src/utils/reporter/agree.ts +0 -20
  227. package/src/utils/reporter/download.ts +0 -26
  228. package/src/utils/reporter/index.ts +0 -3
  229. package/src/utils/reporter/usage.ts +0 -20
  230. package/src/utils/store/auth.ts +0 -49
  231. package/src/utils/store/common.ts +0 -8
  232. package/src/utils/store/db.ts +0 -68
  233. package/src/utils/store/index.ts +0 -5
  234. package/src/utils/store/usage.ts +0 -12
  235. package/src/utils/tcbrApi/callTcbrApi.ts +0 -28
  236. package/src/utils/tcbrApi/index.ts +0 -1
  237. package/src/utils/template.ts +0 -170
  238. package/src/utils/tools/encoding.ts +0 -8
  239. package/src/utils/tools/index.ts +0 -4
  240. package/src/utils/tools/object.ts +0 -33
  241. package/src/utils/tools/time.ts +0 -38
  242. package/src/utils/tools/uid.ts +0 -19
  243. package/src/utils/validator.ts +0 -65
  244. package/yarn-error.log +0 -12841
@@ -1,325 +0,0 @@
1
- import _ from 'lodash'
2
- import path from 'path'
3
- import { Command, ICommand } from '../common'
4
- import { InjectParams, Log, Logger, ArgsParams, ArgsOptions, CmdContext } from '../../decorators'
5
- import { CloudApiService, execWithLoading, fetchStream } from '../../utils'
6
- import { CloudBaseError } from '../../error'
7
- import chalk from 'chalk'
8
- import {
9
- build as buildComps,
10
- debug as debugComps,
11
- publishComps,
12
- graceBuildComps,
13
- graceDebugComps,
14
- gracePublishComps,
15
- IPublishCompsInfo,
16
- publishVersion,
17
- bootstrap,
18
- } from '@cloudbase/lowcode-cli'
19
- import { prompt } from 'enquirer'
20
- import fse from 'fs-extra'
21
- import * as semver from 'semver'
22
-
23
- const cloudService = CloudApiService.getInstance('lowcode')
24
- const DEFAULE_TEMPLATE_PATH = 'https://comp-public-1303824488.cos.ap-shanghai.myqcloud.com/lcc/template.zip'
25
-
26
- @ICommand()
27
- export class LowCodeCreateComps extends Command {
28
- get options() {
29
- return {
30
- cmd: 'lowcode',
31
- childCmd: 'create [name]',
32
- options: [
33
- {
34
- flags: '--verbose',
35
- desc: '是否打印详细日志'
36
- }
37
- ],
38
- desc: '创建组件库',
39
- requiredEnvId: false
40
- }
41
- }
42
-
43
- @InjectParams()
44
- async execute(@ArgsParams() params, @Log() log?: Logger) {
45
- if (process.env.CLOUDBASE_LOWCODE_CLOUDAPI_URL === undefined) {
46
- // 没设置的时候才才设置,方便覆盖
47
- process.env.CLOUDBASE_LOWCODE_CLOUDAPI_URL = 'https://lcap.cloud.tencent.com/api/v1/cliapi';
48
- }
49
- const res = await cloudService.request('ListUserCompositeGroups')
50
- const comps = res?.data
51
- if (!comps?.count) {
52
- throw new CloudBaseError('没有可关联的云端组件库,请到低码控制台新建组件库!')
53
- }
54
-
55
- let compsName = params?.[0]
56
- if (!compsName) {
57
- const { selectCompsName } = await prompt<any>({
58
- type: 'select',
59
- name: 'selectCompsName',
60
- message: '关联云端组件库:',
61
- choices: comps.rows.map((row) => row.groupName)
62
- })
63
- compsName = selectCompsName
64
- } else {
65
- // 自己输入的组件库名称,校验是否在云端也有
66
- const comp = comps.rows.find((row) => row.groupName === compsName)
67
- if (!comp) {
68
- throw new CloudBaseError(`云端不存在组件库 ${compsName},请到低码控制台新建该组件库!`)
69
- }
70
- }
71
-
72
- await bootstrap(compsName, log);
73
-
74
- }
75
- }
76
-
77
- @ICommand()
78
- export class LowCodeBuildComps extends Command {
79
- get options() {
80
- return {
81
- cmd: 'lowcode',
82
- childCmd: 'build',
83
- options: [
84
- {
85
- flags: '--verbose',
86
- desc: '是否打印详细日志'
87
- }
88
- ],
89
- desc: '构建组件库',
90
- requiredEnvId: false
91
- }
92
- }
93
-
94
- @InjectParams()
95
- async execute(@CmdContext() ctx, @Log() log) {
96
- // 有RC配置, 使用新接口
97
- const config = ctx.config.lowcodeCustomComponents
98
- if (config) {
99
- await graceBuildComps({
100
- ...config,
101
- context: config.context || process.cwd(),
102
- logger: log
103
- })
104
- return
105
- }
106
- // 没有RC配置, 使用旧接口
107
- const compsPath = path.resolve(process.cwd())
108
- await _build(compsPath)
109
- }
110
- }
111
-
112
- @ICommand()
113
- export class LowCodeDebugComps extends Command {
114
- get options() {
115
- return {
116
- cmd: 'lowcode',
117
- childCmd: 'debug',
118
- options: [
119
- {
120
- flags: '--verbose',
121
- desc: '是否打印详细日志'
122
- },
123
- {
124
- flags: '--debug-port <debugPort>',
125
- desc: '调试端口,默认是8388'
126
- },
127
- {
128
- flags: '--wx-devtool-path <wxDevtoolPath>',
129
- desc: '微信开发者工具的安装路径'
130
- }
131
- ],
132
- desc: '调试组件库',
133
- requiredEnvId: false
134
- }
135
- }
136
-
137
- @InjectParams()
138
- async execute(@CmdContext() ctx, @ArgsOptions() options, @Log() log) {
139
- // 有RC配置, 使用新接口
140
- const config = ctx.config.lowcodeCustomComponents
141
- if (config) {
142
- await graceDebugComps({
143
- ...config,
144
- context: config.context || process.cwd(),
145
- debugPort: options?.debugPort || 8388,
146
- logger: log,
147
- wxDevtoolPath: options?.wxDevtoolPath
148
- })
149
- return
150
- }
151
- // 没有RC配置, 使用旧接口
152
- const compsPath = path.resolve(process.cwd())
153
- await debugComps(compsPath, options?.debugPort || 8388)
154
- }
155
- }
156
-
157
- @ICommand()
158
- export class LowCodePublishComps extends Command {
159
- get options() {
160
- return {
161
- cmd: 'lowcode',
162
- childCmd: 'publish',
163
- options: [
164
- {
165
- flags: '--verbose',
166
- desc: '是否打印详细日志'
167
- },
168
- {
169
- flags: '--admin',
170
- desc: '是否使用admin接口',
171
- hideHelp: true
172
- }
173
- ],
174
- desc: '发布组件库',
175
- requiredEnvId: false
176
- }
177
- }
178
-
179
- @InjectParams()
180
- async execute(@CmdContext() ctx, @Log() log: Logger, @ArgsOptions() options: any) {
181
- // 有RC配置, 使用新接口
182
-
183
- const config = ctx.config.lowcodeCustomComponents
184
- if (config) {
185
- await gracePublishComps({
186
- ...config,
187
- context: config.context || process.cwd(),
188
- logger: log,
189
- isAdmin: Boolean(options.admin)
190
- })
191
- log.success('组件库 - 已同步到云端,请到低码控制台发布该组件库!')
192
- return
193
- }
194
- // 没有RC配置, 使用旧接口
195
- // 读取本地组件库信息
196
- const compsPath = path.resolve(process.cwd())
197
- const compsName = fse.readJSONSync(path.resolve(compsPath, 'package.json')).name
198
- // 读取云端组件库列表
199
- const res = await cloudService.request('ListUserCompositeGroups')
200
- const comps = res?.data
201
- if (!comps?.count) {
202
- throw new CloudBaseError(`云端不存在组件库 ${compsName},请到低码控制台新建该组件库!`)
203
- }
204
- // 校验组件库信息
205
- const comp = comps.rows.find((row) => row.groupName === compsName)
206
- if (!comp) {
207
- throw new CloudBaseError(`云端不存在组件库 ${compsName},请到低码控制台新建该组件库!`)
208
- }
209
- // 上传组件库
210
- await _build(compsPath)
211
- await _publish({
212
- id: comp.id,
213
- name: compsName,
214
- path: compsPath,
215
- log,
216
- })
217
-
218
- log.info('\n👉 组件库已经同步到云端,请到低码控制台发布该组件库!')
219
- }
220
- }
221
-
222
- @ICommand()
223
- export class LowCodePublishVersionComps extends Command {
224
- get options() {
225
- return {
226
- cmd: 'lowcode',
227
- childCmd: 'publishVersion',
228
- options: [
229
- {
230
- flags: '--verbose',
231
- desc: '是否打印详细日志'
232
- },
233
- {
234
- flags: '--comment <comment>',
235
- desc: '版本备注',
236
- },
237
- {
238
- flags: '--tag <version>',
239
- desc: '版本号'
240
- },
241
- {
242
- flags: '--admin',
243
- desc: '是否使用admin接口',
244
- hideHelp: true
245
- }
246
- ],
247
- desc: '发布组件库版本',
248
- requiredEnvId: false
249
- }
250
- }
251
-
252
- @InjectParams()
253
- async execute(@CmdContext() ctx, @ArgsOptions() options, @Log() log?: Logger) {
254
- // 有RC配置, 使用新接口
255
- const {tag, comment, admin} = options
256
- if(!comment) {
257
- log.error('请使用 --comment 填写版本注释')
258
- return
259
- }
260
- if(!tag) {
261
- log.error('请使用 --tag 填写符合semver的版本号')
262
- return
263
- }
264
- if(!semver.valid(tag)) {
265
- log.error('组件库版本不符合semver标准')
266
- return
267
- }
268
- const config = ctx.config.lowcodeCustomComponents
269
-
270
- if(!config) {
271
- log.error('组件库 - 请添加组件库配置到cloudbaserc.json 以使用该命令')
272
- }
273
-
274
- const res = await publishVersion({
275
- ...config,
276
- context: config.context || process.cwd(),
277
- logger: log,
278
- isAdmin: options.admin
279
- }, comment, tag)
280
- if(res.data.code === 200) {
281
- log.success('组件库 - 已发布新版本!')
282
- return
283
- }
284
- if (res.data.code === 100) {
285
- log.error('组件库 - 无待发布版本')
286
- return
287
- }
288
- if (res.data.code === 201) {
289
- log.error('组件库 - comment 重复, 请使用有意义的comment')
290
- return
291
- } else {
292
- if(res.data.msg) {
293
- log.error(`组件库 - ${res.data.msg} RequestId: ${res.requestId}`)
294
- } else {
295
- log.error('组件库 - 未知错误')
296
- }
297
- return
298
- }
299
- }
300
- }
301
-
302
-
303
- async function _build(compsPath) {
304
- await execWithLoading(
305
- async () => {
306
- await buildComps(compsPath)
307
- },
308
- {
309
- startTip: '组件库 - 构建中',
310
- successTip: '组件库 - 构建成功'
311
- }
312
- )
313
- }
314
-
315
- async function _publish(info: IPublishCompsInfo) {
316
- await execWithLoading(
317
- async () => {
318
- await publishComps(info)
319
- },
320
- {
321
- startTip: '组件库 - 发布中',
322
- successTip: '组件库 - 发布成功'
323
- }
324
- )
325
- }
@@ -1,2 +0,0 @@
1
- export * from './app'
2
- export * from './comps'
@@ -1,25 +0,0 @@
1
- import { CloudBaseError } from '@cloudbase/toolbox'
2
- import { ChildProcess } from 'child_process'
3
-
4
- export function promisifyProcess(p: ChildProcess, pipe = false) {
5
- return new Promise((resolve, reject) => {
6
- let stdout = ''
7
- let stderr = ''
8
-
9
- p.stdout.on('data', (data => {
10
- stdout +=String(data)
11
- }))
12
- p.stderr.on('data', (data => {
13
- stderr += String(data)
14
- }))
15
- p.on('error', reject)
16
- p.on('exit', exitCode => {
17
- exitCode === 0 ? resolve(stdout) : reject(new CloudBaseError(stderr || String(exitCode)))
18
- })
19
-
20
- if (pipe) {
21
- p.stdout.pipe(process.stdout)
22
- p.stderr.pipe(process.stderr)
23
- }
24
- })
25
- }
@@ -1,153 +0,0 @@
1
- import { prompt } from 'enquirer'
2
- import { Command, ICommand } from '../common'
3
- import { CloudBaseError } from '../../error'
4
- import { getImageRepo, createRun } from '../../run'
5
- import { getVpcs, getSubnets } from '../../function'
6
- import { checkTcbrEnv, loadingFactory, logEnvCheck } from '../../utils'
7
- import { InjectParams, EnvId, ArgsOptions } from '../../decorators'
8
- import { validateIp } from '../../utils/validator'
9
- import { EnumEnvCheck } from '../../constant'
10
-
11
- const ZoneMap = {
12
- shanghai: '上海',
13
- guangzhou: '广州'
14
- }
15
-
16
- @ICommand()
17
- export class CreateRun extends Command {
18
- get options() {
19
- return {
20
- cmd: 'run:deprecated',
21
- childCmd: 'create',
22
- options: [
23
- {
24
- flags: '-e, --envId <envId>',
25
- desc: '环境 Id'
26
- },
27
- {
28
- flags: '-n, --name <name>',
29
- desc: '服务名称,必填'
30
- },
31
- {
32
- flags: '-c, --vpc <vpc>',
33
- desc: '云托管网络设置,默认系统创建,选择已有私有网络则填入格式为私有网络Id|子网Id1,...,子网Idn'
34
- },
35
- {
36
- flags: '-p, --repo <repo>',
37
- desc: '镜像仓库名,默认系统创建'
38
- },
39
- // {
40
- // flags: '-l, --log <log>',
41
- // desc: '日志管理设置,默认为系统默认cls,自定义ES则填入格式为Ip=xx&Port=xx&Index=xx&Account=xx&Password=xx'
42
- // },
43
- {
44
- flags: '-m, --remark <remark>',
45
- desc: '备注,默认为空'
46
- },
47
- {
48
- flags: '-a, --publicAccess <publicAccess>',
49
- desc: '是否允许公网访问(Y/N),默认为允许'
50
- }
51
- ],
52
- desc: '创建云托管服务'
53
- }
54
- }
55
-
56
- @InjectParams()
57
- /* eslint complexity: ["error", 40] */
58
- async execute(@EnvId() envId, @ArgsOptions() options) {
59
- let envCheckType = await checkTcbrEnv(options.envId, false)
60
- if(envCheckType !== EnumEnvCheck.EnvFit) {
61
- logEnvCheck(envId, envCheckType)
62
- return
63
- }
64
-
65
- let {
66
- name: _name = '',
67
- vpc: _vpc = '',
68
- repo: _repo = '',
69
- log: _log = '',
70
- remark: _remark = '',
71
- publicAccess: _publicAccess = ''
72
- } = options
73
- let name: string
74
- let remark: string
75
- let vpcInfo: { VpcId: string; SubnetIds: string[]; CreateType: number }
76
- let imageRepo: string
77
- let logType: string
78
- let esInfo: { Ip: string; Port: number; Index: string; Account: string; Password: string }
79
- let publicAccess: number
80
-
81
- const loading = loadingFactory()
82
-
83
- // 服务名称
84
- if (!_name) {
85
- throw new CloudBaseError('请填入服务名')
86
- } else {
87
- name = _name
88
- }
89
-
90
- // 备注
91
- remark = _remark
92
-
93
- // 云托管网络配置
94
- if (!_vpc) {
95
- vpcInfo = {
96
- VpcId: '',
97
- SubnetIds: [],
98
- CreateType: 1
99
- }
100
- } else {
101
- vpcInfo = {
102
- VpcId: _vpc.split('|')[0],
103
- SubnetIds: _vpc.split('|')[1].split(','),
104
- CreateType: 2
105
- }
106
- }
107
-
108
- // 镜像仓库设置
109
- if (!_repo) {
110
- imageRepo = undefined
111
- } else {
112
- imageRepo = _repo
113
- }
114
-
115
- // 日志配置
116
- if (!_log) {
117
- logType = 'cls'
118
- } else {
119
- logType = 'es'
120
-
121
- esInfo = _log.split('&').reduce((pre, item) => {
122
- pre[item.split('=')[0]] = item.split('=')[0] === 'Port' ? Number(item.split('=')[1]) : item.split('=')[1]
123
- return pre
124
- }, {})
125
- }
126
-
127
- // 公网访问服务
128
- if (!_publicAccess) {
129
- publicAccess = 1
130
- } else if (/[^nNyY]/.test(_publicAccess) || _publicAccess.length !== 1) {
131
- throw new CloudBaseError('请输入符合规范的公网访问服务设置')
132
- } else if (_publicAccess === 'N' || _publicAccess === 'n') {
133
- publicAccess = 2
134
- } else {
135
- publicAccess = 1
136
- }
137
-
138
- const res = await createRun({
139
- envId,
140
- name,
141
- remark,
142
- vpcInfo,
143
- imageRepo,
144
- logType,
145
- esInfo,
146
- publicAccess,
147
- isPublic: true
148
- })
149
-
150
- if (res === 'succ') loading.succeed(`云托管服务 ${name} 创建成功!`)
151
- else throw new CloudBaseError('创建失败,请查看是否已经有同名服务')
152
- }
153
- }
@@ -1,77 +0,0 @@
1
- import { prompt } from 'enquirer'
2
- import { Command, ICommand } from '../common'
3
- import { CloudBaseError } from '../../error'
4
- import { describeImageRepo, listVersion, deleteImageRepo, deleteRun } from '../../run'
5
- import { InjectParams, EnvId, ArgsOptions } from '../../decorators'
6
- import { checkTcbrEnv, loadingFactory, logEnvCheck, pagingSelectPromp } from '../../utils'
7
- import { EnumEnvCheck } from '../../constant'
8
-
9
- @ICommand()
10
- export class DeleteRun extends Command {
11
- get options() {
12
- return {
13
- cmd: 'run:deprecated',
14
- childCmd: 'delete',
15
- options: [
16
- {
17
- flags: '-e, --envId <envId>',
18
- desc: '环境 Id'
19
- },
20
- {
21
- flags: '-s, --serviceName <serviceName>',
22
- desc: '云托管服务 name'
23
- },
24
- ],
25
- desc: '删除云托管服务'
26
- }
27
- }
28
-
29
- @InjectParams()
30
- async execute(@EnvId() envId, @ArgsOptions() options) {
31
- let envCheckType = await checkTcbrEnv(options.envId, false)
32
- if(envCheckType !== EnumEnvCheck.EnvFit) {
33
- logEnvCheck(envId, envCheckType)
34
- return
35
- }
36
-
37
- let { serviceName = '' } = options
38
-
39
- if (serviceName.length === 0) {
40
- throw new CloudBaseError('必须输入服务名')
41
- }
42
-
43
- const loading = loadingFactory()
44
-
45
- loading.start('数据加载中...')
46
-
47
- const versions = await listVersion({ envId, serverName: serviceName, limit: 1, offset: 0 })
48
-
49
- if (versions.length > 0)
50
- throw new CloudBaseError('服务下还有版本存在,请先清空版本列表')
51
-
52
- const imageRepo = await describeImageRepo({ envId, serverName: serviceName })
53
-
54
- loading.start('正在删除服务')
55
- const res = await deleteRun({ envId, serverName: serviceName })
56
- if (res === 'succ')
57
- loading.succeed('服务删除完成')
58
- else
59
- throw new CloudBaseError('服务删除失败')
60
-
61
- if ((await prompt<any>({
62
- type: 'select',
63
- name: 'flag',
64
- message: `是否删除绑定的镜像仓库${imageRepo}`,
65
- choices: ['是', '否']
66
- })).flag === '是') {
67
- loading.start('正在删除镜像仓库')
68
- const res = await deleteImageRepo({ imageRepo })
69
- if (res === '') {
70
- loading.succeed('仓库删除完成')
71
- }
72
- else {
73
- throw new CloudBaseError('仓库删除失败')
74
- }
75
- }
76
- }
77
- }
@@ -1,8 +0,0 @@
1
- export const imageCommonOptions = (sub: string) => ({
2
- cmd: 'run:deprecated',
3
- childCmd: {
4
- cmd: 'image',
5
- desc: '云托管镜像管理'
6
- },
7
- childSubCmd: sub
8
- })
@@ -1,68 +0,0 @@
1
- import { Command, ICommand } from '../../common'
2
- import { CloudBaseError } from '../../../error'
3
- import { deleteImage, describeImageRepo } from '../../../run'
4
- import { checkTcbrEnv, loadingFactory, logEnvCheck } from '../../../utils'
5
- import { InjectParams, EnvId, ArgsOptions } from '../../../decorators'
6
- import { imageCommonOptions } from './common'
7
- import { EnumEnvCheck } from '../../../constant'
8
-
9
- @ICommand()
10
- export class DeleteImage extends Command {
11
- get options() {
12
- return {
13
- ...imageCommonOptions('delete'),
14
- options: [
15
- {
16
- flags: '-e, --envId <envId>',
17
- desc: '环境 Id'
18
- },
19
- {
20
- flags: '-s, --serviceName <serviceName>',
21
- desc: '托管服务 name'
22
- },
23
- {
24
- flags: '-t, --imageTag <imageTag>',
25
- desc: '镜像 tag'
26
- }
27
- ],
28
- desc: '删除云开发环境下云托管服务的版本'
29
- }
30
- }
31
-
32
- @InjectParams()
33
- async execute(@EnvId() envId, @ArgsOptions() options) {
34
-
35
- let envCheckType = await checkTcbrEnv(options.envId, false)
36
- if(envCheckType !== EnumEnvCheck.EnvFit) {
37
- logEnvCheck(envId, envCheckType)
38
- return
39
- }
40
-
41
- let { serviceName = '', imageTag = '' } = options
42
-
43
- if (serviceName.length === 0 || imageTag.length === 0) {
44
- throw new CloudBaseError('必须输入 serviceName 和 imageTag')
45
- }
46
-
47
- const loading = loadingFactory()
48
-
49
- loading.start('数据加载中...')
50
-
51
- const imageRepo = await describeImageRepo({ envId, serverName: serviceName })
52
-
53
- const imageUrl = `ccr.ccs.tencentyun.com/${imageRepo}:${imageTag}`
54
-
55
- try {
56
- const res = await deleteImage({
57
- envId,
58
- imageUrl: imageUrl as string
59
- })
60
-
61
- if (res === 'success') loading.succeed(`成功删除 ${serviceName} 服务下的 ${imageUrl} 镜像`)
62
- else throw new CloudBaseError('删除失败')
63
- } catch (e) {
64
- throw new CloudBaseError('删除失败')
65
- }
66
-
67
- }
68
- }