@cloudbase/cli 1.12.7-alpha.4 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (317) hide show
  1. package/.editorconfig +9 -9
  2. package/.eslintignore +7 -7
  3. package/.eslintrc +35 -35
  4. package/.prettierrc.js +29 -29
  5. package/.vscode/launch.json +16 -16
  6. package/.vscode/settings.json +3 -0
  7. package/LICENSE +5 -5
  8. package/README.md +35 -35
  9. package/bin/cloudbase.js +5 -5
  10. package/bin/tcb.js +0 -0
  11. package/changelog.md +6 -6
  12. package/jest.config.js +17 -17
  13. package/lib/commands/account/login.js +18 -18
  14. package/lib/commands/run/create.js +6 -1
  15. package/lib/commands/run/delete.js +6 -1
  16. package/lib/commands/run/image/common.js +1 -1
  17. package/lib/commands/run/image/delete.js +5 -0
  18. package/lib/commands/run/image/download.js +5 -0
  19. package/lib/commands/run/image/list.js +5 -0
  20. package/lib/commands/run/image/upload.js +5 -0
  21. package/lib/commands/run/index.js +1 -0
  22. package/lib/commands/run/list.js +7 -1
  23. package/lib/commands/run/service/config.js +112 -0
  24. package/lib/commands/run/service/create.js +140 -0
  25. package/lib/commands/run/service/deploy.js +145 -0
  26. package/lib/commands/run/service/index.js +21 -0
  27. package/lib/commands/run/service/list.js +115 -0
  28. package/lib/commands/run/service/update.js +132 -0
  29. package/lib/commands/run/version/common.js +1 -1
  30. package/lib/commands/run/version/create.js +5 -0
  31. package/lib/commands/run/version/delete.js +5 -0
  32. package/lib/commands/run/version/list.js +5 -0
  33. package/lib/commands/run/version/modify.js +5 -0
  34. package/lib/commands/run/version/update.js +5 -0
  35. package/lib/commands/storage/storage.js +1 -1
  36. package/lib/constant.js +20 -1
  37. package/lib/env/login.js +7 -7
  38. package/lib/help.js +40 -38
  39. package/lib/run/index.js +1 -0
  40. package/lib/run/service/common.js +163 -0
  41. package/lib/run/service/config.js +70 -0
  42. package/lib/run/service/create.js +67 -0
  43. package/lib/run/service/deployPackage.js +87 -0
  44. package/lib/run/service/index.js +23 -0
  45. package/lib/run/service/list.js +31 -0
  46. package/lib/run/service/showLogs.js +116 -0
  47. package/lib/run/service/update.js +83 -0
  48. package/lib/utils/checkTcbrEnv.js +74 -0
  49. package/lib/utils/commonParamsCheck.js +48 -0
  50. package/lib/utils/index.js +3 -0
  51. package/lib/utils/tcbrApi/callTcbrApi.js +38 -0
  52. package/lib/utils/tcbrApi/index.js +17 -0
  53. package/lib/utils/tcbrApi/tcbr-cloud-api/cloud-api-service.js +268 -0
  54. package/lib/utils/tcbrApi/tcbr-cloud-api/error.js +17 -0
  55. package/lib/utils/tcbrApi/tcbr-cloud-api/index.js +17 -0
  56. package/lib/utils/tcbrApi/tcbr-cloud-api/request.js +40 -0
  57. package/lib/utils/tcbrApi/tcbr-cloud-api-request.js +61 -0
  58. package/lib/utils/validator.js +32 -1
  59. package/package.json +88 -88
  60. package/post-install.js +61 -61
  61. package/runtime/nodejs/bootstrap.js +255 -255
  62. package/runtime/nodejs/runtime.js +183 -183
  63. package/src/auth/index.ts +1 -1
  64. package/src/auth/login.ts +91 -91
  65. package/src/auth/logout.ts +7 -7
  66. package/src/commands/account/index.ts +2 -2
  67. package/src/commands/account/login.ts +192 -192
  68. package/src/commands/account/logout.ts +24 -24
  69. package/src/commands/common.ts +246 -246
  70. package/src/commands/env/base.ts +90 -90
  71. package/src/commands/env/create.ts +92 -92
  72. package/src/commands/env/domain.ts +186 -186
  73. package/src/commands/env/index.ts +4 -4
  74. package/src/commands/env/login.ts +235 -235
  75. package/src/commands/framework/index.ts +124 -124
  76. package/src/commands/functions/alias/getRoute.ts +76 -76
  77. package/src/commands/functions/alias/index.ts +2 -2
  78. package/src/commands/functions/alias/setRoute.ts +82 -82
  79. package/src/commands/functions/code-download.ts +100 -100
  80. package/src/commands/functions/code-update.ts +62 -62
  81. package/src/commands/functions/concurrency/delete.ts +45 -45
  82. package/src/commands/functions/concurrency/index.ts +2 -2
  83. package/src/commands/functions/concurrency/list.ts +58 -58
  84. package/src/commands/functions/concurrency/set.ts +47 -47
  85. package/src/commands/functions/config-update.ts +76 -76
  86. package/src/commands/functions/copy.ts +62 -62
  87. package/src/commands/functions/delete.ts +79 -79
  88. package/src/commands/functions/deploy.ts +293 -293
  89. package/src/commands/functions/detail.ts +138 -138
  90. package/src/commands/functions/index.ts +16 -16
  91. package/src/commands/functions/invoke.ts +121 -121
  92. package/src/commands/functions/layer/bind.ts +182 -182
  93. package/src/commands/functions/layer/common.ts +8 -8
  94. package/src/commands/functions/layer/create.ts +49 -49
  95. package/src/commands/functions/layer/delete.ts +73 -73
  96. package/src/commands/functions/layer/download.ts +92 -92
  97. package/src/commands/functions/layer/index.ts +7 -7
  98. package/src/commands/functions/layer/list.ts +94 -94
  99. package/src/commands/functions/layer/sort.ts +76 -76
  100. package/src/commands/functions/list.ts +68 -68
  101. package/src/commands/functions/log.ts +148 -148
  102. package/src/commands/functions/run.ts +249 -249
  103. package/src/commands/functions/trigger-create.ts +79 -79
  104. package/src/commands/functions/trigger-delete.ts +105 -105
  105. package/src/commands/functions/version/index.ts +1 -1
  106. package/src/commands/functions/version/list.ts +73 -73
  107. package/src/commands/functions/version/publish.ts +43 -43
  108. package/src/commands/gateway/create.ts +109 -109
  109. package/src/commands/gateway/delete.ts +81 -81
  110. package/src/commands/gateway/domain.ts +159 -159
  111. package/src/commands/gateway/index.ts +5 -5
  112. package/src/commands/gateway/list.ts +76 -76
  113. package/src/commands/gateway/switch.ts +107 -107
  114. package/src/commands/helpers/index.ts +2 -2
  115. package/src/commands/helpers/init.ts +431 -431
  116. package/src/commands/helpers/new.ts +117 -117
  117. package/src/commands/helpers/open.ts +67 -67
  118. package/src/commands/hosting/hosting.ts +360 -360
  119. package/src/commands/index.ts +13 -13
  120. package/src/commands/lowcode/app.ts +34 -34
  121. package/src/commands/lowcode/comps.ts +322 -322
  122. package/src/commands/lowcode/index.ts +1 -1
  123. package/src/commands/lowcode/utils.ts +24 -24
  124. package/src/commands/run/create.ts +9 -2
  125. package/src/commands/run/delete.ts +8 -2
  126. package/src/commands/run/image/common.ts +1 -1
  127. package/src/commands/run/image/delete.ts +8 -1
  128. package/src/commands/run/image/download.ts +7 -1
  129. package/src/commands/run/image/index.ts +4 -4
  130. package/src/commands/run/image/list.ts +7 -2
  131. package/src/commands/run/image/upload.ts +8 -1
  132. package/src/commands/run/index.ts +2 -1
  133. package/src/commands/run/list.ts +11 -3
  134. package/src/commands/run/service/config.ts +81 -0
  135. package/src/commands/run/service/create.ts +118 -0
  136. package/src/commands/run/service/deploy.ts +121 -0
  137. package/src/commands/run/service/index.ts +5 -0
  138. package/src/commands/run/service/list.ts +94 -0
  139. package/src/commands/run/service/update.ts +104 -0
  140. package/src/commands/run/standalonegateway/common.ts +7 -7
  141. package/src/commands/run/standalonegateway/create.ts +85 -85
  142. package/src/commands/run/standalonegateway/destroy.ts +59 -59
  143. package/src/commands/run/standalonegateway/index.ts +4 -4
  144. package/src/commands/run/standalonegateway/list.ts +53 -53
  145. package/src/commands/run/standalonegateway/package.ts +62 -62
  146. package/src/commands/run/standalonegateway/turn.ts +63 -63
  147. package/src/commands/run/version/common.ts +1 -1
  148. package/src/commands/run/version/create.ts +8 -1
  149. package/src/commands/run/version/delete.ts +8 -2
  150. package/src/commands/run/version/index.ts +4 -4
  151. package/src/commands/run/version/list.ts +7 -1
  152. package/src/commands/run/version/modify.ts +8 -1
  153. package/src/commands/run/version/update.ts +8 -1
  154. package/src/commands/smart.ts +132 -132
  155. package/src/commands/storage/storage.ts +464 -464
  156. package/src/commands/third/thirdAttach.ts +49 -49
  157. package/src/completion/index.ts +13 -13
  158. package/src/constant.ts +35 -1
  159. package/src/decorators/captureError.ts +25 -25
  160. package/src/decorators/constants.ts +12 -12
  161. package/src/decorators/deprecate.ts +25 -25
  162. package/src/decorators/guard.ts +42 -42
  163. package/src/decorators/index.ts +7 -7
  164. package/src/decorators/injectParams.ts +54 -54
  165. package/src/decorators/params/common.ts +28 -28
  166. package/src/decorators/params/index.ts +35 -35
  167. package/src/env/domain.ts +33 -33
  168. package/src/env/index.ts +63 -63
  169. package/src/env/login.ts +80 -80
  170. package/src/error.ts +36 -36
  171. package/src/function/alias.ts +43 -43
  172. package/src/function/base.ts +253 -253
  173. package/src/function/code.ts +55 -55
  174. package/src/function/concurrency.ts +57 -57
  175. package/src/function/create.ts +78 -78
  176. package/src/function/delete.ts +42 -42
  177. package/src/function/index.ts +10 -10
  178. package/src/function/layer/attach.ts +68 -68
  179. package/src/function/layer/create.ts +63 -63
  180. package/src/function/layer/delete.ts +21 -21
  181. package/src/function/layer/download.ts +54 -54
  182. package/src/function/layer/index.ts +7 -7
  183. package/src/function/layer/list.ts +32 -32
  184. package/src/function/layer/sort.ts +24 -24
  185. package/src/function/trigger.ts +97 -97
  186. package/src/function/update.ts +35 -35
  187. package/src/function/version.ts +38 -38
  188. package/src/function/vpc.ts +22 -22
  189. package/src/gateway/index.ts +137 -137
  190. package/src/help.ts +50 -48
  191. package/src/hosting.ts +212 -212
  192. package/src/index.ts +13 -13
  193. package/src/logger.ts +17 -17
  194. package/src/run/create.ts +23 -23
  195. package/src/run/delete.ts +15 -15
  196. package/src/run/image/build.ts +36 -36
  197. package/src/run/image/delete.ts +13 -13
  198. package/src/run/image/index.ts +3 -3
  199. package/src/run/image/info.ts +26 -26
  200. package/src/run/index.ts +2 -1
  201. package/src/run/list.ts +29 -29
  202. package/src/run/repo.ts +24 -24
  203. package/src/run/service/common.ts +206 -0
  204. package/src/run/service/config.ts +77 -0
  205. package/src/run/service/create.ts +52 -0
  206. package/src/run/service/deployPackage.ts +63 -0
  207. package/src/run/service/index.ts +7 -0
  208. package/src/run/service/list.ts +29 -0
  209. package/src/run/service/showLogs.ts +98 -0
  210. package/src/run/service/update.ts +81 -0
  211. package/src/run/standalonegateway/create.ts +24 -24
  212. package/src/run/standalonegateway/destroy.ts +19 -19
  213. package/src/run/standalonegateway/index.ts +4 -4
  214. package/src/run/standalonegateway/list.ts +74 -74
  215. package/src/run/standalonegateway/package/list.ts +24 -24
  216. package/src/run/standalonegateway/turn/index.ts +1 -1
  217. package/src/run/standalonegateway/turn/off.ts +19 -19
  218. package/src/run/standalonegateway/turn/on.ts +19 -19
  219. package/src/run/version/create.ts +68 -68
  220. package/src/run/version/delete.ts +15 -15
  221. package/src/run/version/index.ts +5 -5
  222. package/src/run/version/list.ts +16 -16
  223. package/src/run/version/modify.ts +16 -16
  224. package/src/run/version/repo.ts +27 -27
  225. package/src/run/version/update.ts +58 -58
  226. package/src/storage.ts +114 -114
  227. package/src/third/index.ts +12 -12
  228. package/src/types.ts +128 -2
  229. package/src/utils/auth.ts +15 -15
  230. package/src/utils/checkTcbrEnv.ts +67 -0
  231. package/src/utils/cli-table.ts +23 -23
  232. package/src/utils/commonParamsCheck.ts +65 -0
  233. package/src/utils/config.ts +39 -39
  234. package/src/utils/env.ts +244 -244
  235. package/src/utils/fs/del.ts +5 -5
  236. package/src/utils/fs/index.ts +71 -71
  237. package/src/utils/function-packer.ts +97 -97
  238. package/src/utils/index.ts +5 -1
  239. package/src/utils/log.ts +81 -81
  240. package/src/utils/net/cloud-api-request.ts +62 -62
  241. package/src/utils/net/credential.ts +53 -53
  242. package/src/utils/net/http-request.ts +84 -84
  243. package/src/utils/net/index.ts +4 -4
  244. package/src/utils/net/manager-service.ts +36 -36
  245. package/src/utils/net/proxy.ts +6 -6
  246. package/src/utils/notice.ts +28 -28
  247. package/src/utils/output/highlight.ts +5 -5
  248. package/src/utils/output/index.ts +2 -2
  249. package/src/utils/output/link.ts +10 -10
  250. package/src/utils/output/loading.ts +82 -82
  251. package/src/utils/parallel.ts +82 -82
  252. package/src/utils/platform/index.ts +2 -2
  253. package/src/utils/platform/mac.ts +21 -21
  254. package/src/utils/platform/os.ts +64 -64
  255. package/src/utils/platform/port.ts +10 -10
  256. package/src/utils/progress-bar.ts +38 -38
  257. package/src/utils/prompt/select.ts +59 -59
  258. package/src/utils/reporter/agree.ts +20 -20
  259. package/src/utils/reporter/download.ts +26 -26
  260. package/src/utils/reporter/index.ts +3 -3
  261. package/src/utils/reporter/usage.ts +20 -20
  262. package/src/utils/store/auth.ts +49 -49
  263. package/src/utils/store/common.ts +8 -8
  264. package/src/utils/store/db.ts +68 -68
  265. package/src/utils/store/index.ts +4 -4
  266. package/src/utils/store/usage.ts +12 -12
  267. package/src/utils/tcbrApi/callTcbrApi.ts +28 -0
  268. package/src/utils/tcbrApi/index.ts +1 -0
  269. package/src/utils/tcbrApi/tcbr-cloud-api/cloud-api-service.ts +363 -0
  270. package/src/utils/tcbrApi/tcbr-cloud-api/error.ts +30 -0
  271. package/src/utils/tcbrApi/tcbr-cloud-api/index.ts +1 -0
  272. package/src/utils/tcbrApi/tcbr-cloud-api/request.ts +28 -0
  273. package/src/utils/tcbrApi/tcbr-cloud-api-request.ts +66 -0
  274. package/src/utils/template.ts +170 -170
  275. package/src/utils/tools/encoding.ts +8 -8
  276. package/src/utils/tools/index.ts +4 -4
  277. package/src/utils/tools/object.ts +33 -33
  278. package/src/utils/tools/time.ts +38 -38
  279. package/src/utils/tools/uid.ts +19 -19
  280. package/src/utils/validator.ts +64 -32
  281. package/templates/html/loginFail.html +90 -90
  282. package/templates/html/loginSuccess.html +86 -86
  283. package/templates/server/node/_gitignore +54 -54
  284. package/templates/server/node/cloudbaserc.json +10 -10
  285. package/templates/server/node/index.js +5 -5
  286. package/templates/server/node/package.json +9 -9
  287. package/tsconfig.json +19 -19
  288. package/tsconfig.test.json +13 -13
  289. package/types/commands/run/index.d.ts +1 -0
  290. package/types/commands/run/service/config.d.ts +14 -0
  291. package/types/commands/run/service/create.d.ts +13 -0
  292. package/types/commands/run/service/deploy.d.ts +13 -0
  293. package/types/commands/run/service/index.d.ts +5 -0
  294. package/types/commands/run/service/list.d.ts +13 -0
  295. package/types/commands/run/service/update.d.ts +13 -0
  296. package/types/constant.d.ts +18 -0
  297. package/types/run/index.d.ts +1 -0
  298. package/types/run/service/common.d.ts +32 -0
  299. package/types/run/service/config.d.ts +23 -0
  300. package/types/run/service/create.d.ts +7 -0
  301. package/types/run/service/deployPackage.d.ts +11 -0
  302. package/types/run/service/index.d.ts +7 -0
  303. package/types/run/service/list.d.ts +2 -0
  304. package/types/run/service/showLogs.d.ts +2 -0
  305. package/types/run/service/update.d.ts +2 -0
  306. package/types/types.d.ts +116 -2
  307. package/types/utils/checkTcbrEnv.d.ts +3 -0
  308. package/types/utils/commonParamsCheck.d.ts +3 -0
  309. package/types/utils/index.d.ts +3 -0
  310. package/types/utils/tcbrApi/callTcbrApi.d.ts +1 -0
  311. package/types/utils/tcbrApi/index.d.ts +1 -0
  312. package/types/utils/tcbrApi/tcbr-cloud-api/cloud-api-service.d.ts +51 -0
  313. package/types/utils/tcbrApi/tcbr-cloud-api/error.d.ts +20 -0
  314. package/types/utils/tcbrApi/tcbr-cloud-api/index.d.ts +1 -0
  315. package/types/utils/tcbrApi/tcbr-cloud-api/request.d.ts +4 -0
  316. package/types/utils/tcbrApi/tcbr-cloud-api-request.d.ts +9 -0
  317. package/types/utils/validator.d.ts +4 -0
@@ -1,92 +1,92 @@
1
- import inquirer from 'inquirer'
2
- import { createEnv, getEnvLimit } from '../../env'
3
- import { loadingFactory, genClickableLink } from '../../utils'
4
- import { CloudBaseError } from '../../error'
5
- import { Command, ICommand } from '../common'
6
- import { InjectParams, ArgsParams } from '../../decorators'
7
-
8
- @ICommand()
9
- export class CreateCommand extends Command {
10
- get options() {
11
- return {
12
- cmd: 'env',
13
- childCmd: 'create <alias>',
14
- deprecateCmd: 'env:create <alias>',
15
- options: [],
16
- desc: '创建云开发免费环境',
17
- requiredEnvId: false
18
- }
19
- }
20
-
21
- @InjectParams()
22
- async execute(@ArgsParams() params) {
23
- const alias = params?.[0]
24
- if (!alias) {
25
- throw new CloudBaseError('环境名称不能为空!')
26
- }
27
-
28
- const loading = loadingFactory()
29
-
30
- // 检查环境限制数量
31
- loading.start('检查中...')
32
- const { CurrentFreeEnvNum, MaxFreeEnvNum, CurrentEnvNum, MaxEnvNum } = await getEnvLimit()
33
- loading.stop()
34
-
35
- if (+CurrentFreeEnvNum >= +MaxFreeEnvNum) {
36
- const link = genClickableLink('https://console.cloud.tencent.com/tcb')
37
- throw new CloudBaseError(
38
- `免费环境数量已达上限,无法创建免费的环境,请到云开发-控制台中创建付费环境\n👉 ${link}`
39
- )
40
- }
41
-
42
- if (+CurrentEnvNum >= +MaxEnvNum) {
43
- throw new CloudBaseError('环境数量已达上限,无法创建新的环境!')
44
- }
45
-
46
- const { payment } = await inquirer.prompt({
47
- type: 'list',
48
- name: 'payment',
49
- choices: [
50
- {
51
- name: '按量计费(免费配额)',
52
- value: 'postpay'
53
- },
54
- {
55
- name: '包年包月(免费版本)',
56
- value: 'prepay'
57
- }
58
- ],
59
- message: '请选择环境计费模式:',
60
- default: 'postpay'
61
- })
62
-
63
- // 通过控制台授权登录的用户无订单支付权限
64
- const { confirm } = await inquirer.prompt({
65
- type: 'confirm',
66
- name: 'confirm',
67
- message:
68
- '因支付权限问题,仅支持通过 API 秘钥登录的主账户使用 CLI 创建包年包月免费环境,其他用户需要登录控制台支付相关订单才能完成环境创建,是否继续?',
69
- default: false
70
- })
71
-
72
- if (!confirm) {
73
- throw new CloudBaseError('创建环境流程终止')
74
- }
75
-
76
- loading.start('环境创建中...')
77
- try {
78
- const res = await createEnv({
79
- alias,
80
- paymentMode: payment
81
- })
82
- } catch (e) {
83
- if (e.code === 'ResourceInsufficient') {
84
- throw new CloudBaseError('环境数量已达上限,无法创建新的环境!')
85
- }
86
- throw e
87
- }
88
-
89
- loading.succeed('创建环境成功,初始化预计需要花费 3 分钟')
90
- console.log('你可以使用 cloudbase init 创建云开发项目')
91
- }
92
- }
1
+ import inquirer from 'inquirer'
2
+ import { createEnv, getEnvLimit } from '../../env'
3
+ import { loadingFactory, genClickableLink } from '../../utils'
4
+ import { CloudBaseError } from '../../error'
5
+ import { Command, ICommand } from '../common'
6
+ import { InjectParams, ArgsParams } from '../../decorators'
7
+
8
+ @ICommand()
9
+ export class CreateCommand extends Command {
10
+ get options() {
11
+ return {
12
+ cmd: 'env',
13
+ childCmd: 'create <alias>',
14
+ deprecateCmd: 'env:create <alias>',
15
+ options: [],
16
+ desc: '创建云开发免费环境',
17
+ requiredEnvId: false
18
+ }
19
+ }
20
+
21
+ @InjectParams()
22
+ async execute(@ArgsParams() params) {
23
+ const alias = params?.[0]
24
+ if (!alias) {
25
+ throw new CloudBaseError('环境名称不能为空!')
26
+ }
27
+
28
+ const loading = loadingFactory()
29
+
30
+ // 检查环境限制数量
31
+ loading.start('检查中...')
32
+ const { CurrentFreeEnvNum, MaxFreeEnvNum, CurrentEnvNum, MaxEnvNum } = await getEnvLimit()
33
+ loading.stop()
34
+
35
+ if (+CurrentFreeEnvNum >= +MaxFreeEnvNum) {
36
+ const link = genClickableLink('https://console.cloud.tencent.com/tcb')
37
+ throw new CloudBaseError(
38
+ `免费环境数量已达上限,无法创建免费的环境,请到云开发-控制台中创建付费环境\n👉 ${link}`
39
+ )
40
+ }
41
+
42
+ if (+CurrentEnvNum >= +MaxEnvNum) {
43
+ throw new CloudBaseError('环境数量已达上限,无法创建新的环境!')
44
+ }
45
+
46
+ const { payment } = await inquirer.prompt({
47
+ type: 'list',
48
+ name: 'payment',
49
+ choices: [
50
+ {
51
+ name: '按量计费(免费配额)',
52
+ value: 'postpay'
53
+ },
54
+ {
55
+ name: '包年包月(免费版本)',
56
+ value: 'prepay'
57
+ }
58
+ ],
59
+ message: '请选择环境计费模式:',
60
+ default: 'postpay'
61
+ })
62
+
63
+ // 通过控制台授权登录的用户无订单支付权限
64
+ const { confirm } = await inquirer.prompt({
65
+ type: 'confirm',
66
+ name: 'confirm',
67
+ message:
68
+ '因支付权限问题,仅支持通过 API 秘钥登录的主账户使用 CLI 创建包年包月免费环境,其他用户需要登录控制台支付相关订单才能完成环境创建,是否继续?',
69
+ default: false
70
+ })
71
+
72
+ if (!confirm) {
73
+ throw new CloudBaseError('创建环境流程终止')
74
+ }
75
+
76
+ loading.start('环境创建中...')
77
+ try {
78
+ const res = await createEnv({
79
+ alias,
80
+ paymentMode: payment
81
+ })
82
+ } catch (e) {
83
+ if (e.code === 'ResourceInsufficient') {
84
+ throw new CloudBaseError('环境数量已达上限,无法创建新的环境!')
85
+ }
86
+ throw e
87
+ }
88
+
89
+ loading.succeed('创建环境成功,初始化预计需要花费 3 分钟')
90
+ console.log('你可以使用 cloudbase init 创建云开发项目')
91
+ }
92
+ }
@@ -1,186 +1,186 @@
1
- import inquirer from 'inquirer'
2
- import { CloudBaseError } from '../../error'
3
- import { Command, ICommand } from '../common'
4
- import { printHorizontalTable, loadingFactory } from '../../utils'
5
- import { InjectParams, EnvId, ArgsParams, Log, Logger } from '../../decorators'
6
- import { getEnvAuthDomains, createEnvDomain, deleteEnvDomain } from '../../env'
7
-
8
- @ICommand()
9
- export class ListAuthDoaminCommand extends Command {
10
- get options() {
11
- return {
12
- cmd: 'env',
13
- childCmd: {
14
- cmd: 'domain',
15
- desc: '域名管理'
16
- },
17
- childSubCmd: 'list',
18
- deprecateCmd: 'env:domain:list',
19
- options: [
20
- {
21
- flags: '-e, --envId <envId>',
22
- desc: '环境 Id'
23
- }
24
- ],
25
- desc: '列出环境的安全域名列表'
26
- }
27
- }
28
-
29
- @InjectParams()
30
- async execute(@EnvId() envId) {
31
- const domains = await getEnvAuthDomains({
32
- envId: envId
33
- })
34
-
35
- if (domains.length === 0) {
36
- console.log('安全域名为空!')
37
- return
38
- }
39
-
40
- const head = ['域名 Id', '域名', '创建时间', '状态']
41
- const tableData = domains.map((item) => [
42
- item.Id,
43
- item.Domain,
44
- item.CreateTime,
45
- item.Status === 'ENABLE' ? '启用中' : '禁用中'
46
- ])
47
-
48
- printHorizontalTable(head, tableData)
49
- }
50
- }
51
-
52
- @ICommand()
53
- export class CreateAuthDomainCommand extends Command {
54
- get options() {
55
- return {
56
- cmd: 'env',
57
- childCmd: {
58
- cmd: 'domain',
59
- desc: '域名管理'
60
- },
61
- childSubCmd: 'create <domain>',
62
- deprecateCmd: 'env:domain:create <domain>',
63
- options: [
64
- {
65
- flags: '-e, --envId <envId>',
66
- desc: '环境 Id'
67
- }
68
- ],
69
- desc: '添加环境安全域名,多个以斜杠 / 分隔'
70
- }
71
- }
72
-
73
- @InjectParams()
74
- async execute(@ArgsParams() params, @EnvId() envId, @Log() log: Logger) {
75
- log.verbose(params)
76
-
77
- const domain = params?.[0]
78
- const domains = domain.split('/')
79
-
80
- const { confirm } = await inquirer.prompt({
81
- type: 'confirm',
82
- name: 'confirm',
83
- message: `确认添加以下安全域名: ${domains} ?`,
84
- default: true
85
- })
86
-
87
- if (!confirm) {
88
- throw new CloudBaseError('操作终止!')
89
- }
90
-
91
- // 检查域名是否已经添加,重复添加会报错
92
- let envDomains = await getEnvAuthDomains({
93
- envId
94
- })
95
- envDomains = envDomains.map((item) => item.Domain)
96
- const exitDomains = []
97
-
98
- domains.forEach((item) => {
99
- if (envDomains.includes(item)) {
100
- exitDomains.push(item)
101
- }
102
- })
103
-
104
- if (exitDomains.length) {
105
- throw new CloudBaseError(`域名 [${exitDomains.join(', ')}] 已存在!`)
106
- }
107
-
108
- await createEnvDomain({
109
- envId,
110
- domains: domains
111
- })
112
- log.success('添加安全域名成功!')
113
- }
114
- }
115
-
116
- @ICommand()
117
- export class DeleteAuthDomainCommand extends Command {
118
- get options() {
119
- return {
120
- cmd: 'env',
121
- childCmd: {
122
- cmd: 'domain',
123
- desc: '域名管理'
124
- },
125
- childSubCmd: 'delete',
126
- deprecateCmd: 'env:domain:delete',
127
- options: [
128
- {
129
- flags: '-e, --envId <envId>',
130
- desc: '环境 Id'
131
- }
132
- ],
133
- desc: '删除环境的安全域名'
134
- }
135
- }
136
-
137
- @InjectParams()
138
- async execute(@EnvId() envId, @Log() log: Logger) {
139
- const loading = loadingFactory()
140
-
141
- loading.start('拉取环境安全域名中')
142
-
143
- const domains = await getEnvAuthDomains({
144
- envId
145
- })
146
-
147
- if (domains.length === 0) {
148
- loading.fail('域名安全为空,不能执行删除操作!')
149
- return
150
- }
151
-
152
- loading.succeed('拉取环境安全域名成功!')
153
-
154
- const domainList = domains.map((item) => item.Domain)
155
-
156
- const { selectDomains } = await inquirer.prompt({
157
- type: 'checkbox',
158
- name: 'selectDomains',
159
- message: '请选择需要删除的域名(可多选)>',
160
- choices: domainList,
161
- default: true
162
- })
163
-
164
- const { confirm } = await inquirer.prompt({
165
- type: 'confirm',
166
- name: 'confirm',
167
- message: `确认删除以下安全域名: ${selectDomains} ?`,
168
- default: true
169
- })
170
-
171
- if (!confirm) {
172
- throw new CloudBaseError('操作终止!')
173
- }
174
-
175
- const domainIds = domains
176
- .filter((item) => selectDomains.includes(item.Domain))
177
- .map((item) => item.Id)
178
-
179
- const deleted = await deleteEnvDomain({
180
- domainIds,
181
- envId
182
- })
183
-
184
- log.success(`成功删除了 ${deleted} 个域名!`)
185
- }
186
- }
1
+ import inquirer from 'inquirer'
2
+ import { CloudBaseError } from '../../error'
3
+ import { Command, ICommand } from '../common'
4
+ import { printHorizontalTable, loadingFactory } from '../../utils'
5
+ import { InjectParams, EnvId, ArgsParams, Log, Logger } from '../../decorators'
6
+ import { getEnvAuthDomains, createEnvDomain, deleteEnvDomain } from '../../env'
7
+
8
+ @ICommand()
9
+ export class ListAuthDoaminCommand extends Command {
10
+ get options() {
11
+ return {
12
+ cmd: 'env',
13
+ childCmd: {
14
+ cmd: 'domain',
15
+ desc: '域名管理'
16
+ },
17
+ childSubCmd: 'list',
18
+ deprecateCmd: 'env:domain:list',
19
+ options: [
20
+ {
21
+ flags: '-e, --envId <envId>',
22
+ desc: '环境 Id'
23
+ }
24
+ ],
25
+ desc: '列出环境的安全域名列表'
26
+ }
27
+ }
28
+
29
+ @InjectParams()
30
+ async execute(@EnvId() envId) {
31
+ const domains = await getEnvAuthDomains({
32
+ envId: envId
33
+ })
34
+
35
+ if (domains.length === 0) {
36
+ console.log('安全域名为空!')
37
+ return
38
+ }
39
+
40
+ const head = ['域名 Id', '域名', '创建时间', '状态']
41
+ const tableData = domains.map((item) => [
42
+ item.Id,
43
+ item.Domain,
44
+ item.CreateTime,
45
+ item.Status === 'ENABLE' ? '启用中' : '禁用中'
46
+ ])
47
+
48
+ printHorizontalTable(head, tableData)
49
+ }
50
+ }
51
+
52
+ @ICommand()
53
+ export class CreateAuthDomainCommand extends Command {
54
+ get options() {
55
+ return {
56
+ cmd: 'env',
57
+ childCmd: {
58
+ cmd: 'domain',
59
+ desc: '域名管理'
60
+ },
61
+ childSubCmd: 'create <domain>',
62
+ deprecateCmd: 'env:domain:create <domain>',
63
+ options: [
64
+ {
65
+ flags: '-e, --envId <envId>',
66
+ desc: '环境 Id'
67
+ }
68
+ ],
69
+ desc: '添加环境安全域名,多个以斜杠 / 分隔'
70
+ }
71
+ }
72
+
73
+ @InjectParams()
74
+ async execute(@ArgsParams() params, @EnvId() envId, @Log() log: Logger) {
75
+ log.verbose(params)
76
+
77
+ const domain = params?.[0]
78
+ const domains = domain.split('/')
79
+
80
+ const { confirm } = await inquirer.prompt({
81
+ type: 'confirm',
82
+ name: 'confirm',
83
+ message: `确认添加以下安全域名: ${domains} ?`,
84
+ default: true
85
+ })
86
+
87
+ if (!confirm) {
88
+ throw new CloudBaseError('操作终止!')
89
+ }
90
+
91
+ // 检查域名是否已经添加,重复添加会报错
92
+ let envDomains = await getEnvAuthDomains({
93
+ envId
94
+ })
95
+ envDomains = envDomains.map((item) => item.Domain)
96
+ const exitDomains = []
97
+
98
+ domains.forEach((item) => {
99
+ if (envDomains.includes(item)) {
100
+ exitDomains.push(item)
101
+ }
102
+ })
103
+
104
+ if (exitDomains.length) {
105
+ throw new CloudBaseError(`域名 [${exitDomains.join(', ')}] 已存在!`)
106
+ }
107
+
108
+ await createEnvDomain({
109
+ envId,
110
+ domains: domains
111
+ })
112
+ log.success('添加安全域名成功!')
113
+ }
114
+ }
115
+
116
+ @ICommand()
117
+ export class DeleteAuthDomainCommand extends Command {
118
+ get options() {
119
+ return {
120
+ cmd: 'env',
121
+ childCmd: {
122
+ cmd: 'domain',
123
+ desc: '域名管理'
124
+ },
125
+ childSubCmd: 'delete',
126
+ deprecateCmd: 'env:domain:delete',
127
+ options: [
128
+ {
129
+ flags: '-e, --envId <envId>',
130
+ desc: '环境 Id'
131
+ }
132
+ ],
133
+ desc: '删除环境的安全域名'
134
+ }
135
+ }
136
+
137
+ @InjectParams()
138
+ async execute(@EnvId() envId, @Log() log: Logger) {
139
+ const loading = loadingFactory()
140
+
141
+ loading.start('拉取环境安全域名中')
142
+
143
+ const domains = await getEnvAuthDomains({
144
+ envId
145
+ })
146
+
147
+ if (domains.length === 0) {
148
+ loading.fail('域名安全为空,不能执行删除操作!')
149
+ return
150
+ }
151
+
152
+ loading.succeed('拉取环境安全域名成功!')
153
+
154
+ const domainList = domains.map((item) => item.Domain)
155
+
156
+ const { selectDomains } = await inquirer.prompt({
157
+ type: 'checkbox',
158
+ name: 'selectDomains',
159
+ message: '请选择需要删除的域名(可多选)>',
160
+ choices: domainList,
161
+ default: true
162
+ })
163
+
164
+ const { confirm } = await inquirer.prompt({
165
+ type: 'confirm',
166
+ name: 'confirm',
167
+ message: `确认删除以下安全域名: ${selectDomains} ?`,
168
+ default: true
169
+ })
170
+
171
+ if (!confirm) {
172
+ throw new CloudBaseError('操作终止!')
173
+ }
174
+
175
+ const domainIds = domains
176
+ .filter((item) => selectDomains.includes(item.Domain))
177
+ .map((item) => item.Id)
178
+
179
+ const deleted = await deleteEnvDomain({
180
+ domainIds,
181
+ envId
182
+ })
183
+
184
+ log.success(`成功删除了 ${deleted} 个域名!`)
185
+ }
186
+ }
@@ -1,4 +1,4 @@
1
- export * from './base'
2
- export * from './create'
3
- export * from './domain'
4
- export * from './login'
1
+ export * from './base'
2
+ export * from './create'
3
+ export * from './domain'
4
+ export * from './login'