@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.
Files changed (217) 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/LICENSE +5 -5
  7. package/README.md +35 -35
  8. package/bin/cloudbase.js +5 -5
  9. package/changelog.md +6 -6
  10. package/jest.config.js +17 -17
  11. package/lib/commands/account/login.js +18 -18
  12. package/lib/commands/run/list.js +2 -3
  13. package/lib/commands/storage/storage.js +1 -1
  14. package/lib/env/login.js +7 -7
  15. package/lib/utils/tcbrApi/callTcbrApi.js +2 -2
  16. package/package.json +3 -3
  17. package/post-install.js +61 -61
  18. package/runtime/nodejs/bootstrap.js +255 -255
  19. package/runtime/nodejs/runtime.js +183 -183
  20. package/src/auth/index.ts +1 -1
  21. package/src/auth/login.ts +91 -91
  22. package/src/auth/logout.ts +7 -7
  23. package/src/commands/account/index.ts +2 -2
  24. package/src/commands/account/login.ts +192 -192
  25. package/src/commands/account/logout.ts +24 -24
  26. package/src/commands/env/base.ts +90 -90
  27. package/src/commands/env/create.ts +92 -92
  28. package/src/commands/env/domain.ts +186 -186
  29. package/src/commands/env/index.ts +4 -4
  30. package/src/commands/env/login.ts +235 -235
  31. package/src/commands/framework/index.ts +124 -124
  32. package/src/commands/functions/alias/getRoute.ts +76 -76
  33. package/src/commands/functions/alias/index.ts +2 -2
  34. package/src/commands/functions/alias/setRoute.ts +82 -82
  35. package/src/commands/functions/code-download.ts +100 -100
  36. package/src/commands/functions/code-update.ts +62 -62
  37. package/src/commands/functions/concurrency/delete.ts +45 -45
  38. package/src/commands/functions/concurrency/index.ts +2 -2
  39. package/src/commands/functions/concurrency/list.ts +58 -58
  40. package/src/commands/functions/concurrency/set.ts +47 -47
  41. package/src/commands/functions/config-update.ts +76 -76
  42. package/src/commands/functions/copy.ts +62 -62
  43. package/src/commands/functions/delete.ts +79 -79
  44. package/src/commands/functions/deploy.ts +293 -293
  45. package/src/commands/functions/detail.ts +138 -138
  46. package/src/commands/functions/index.ts +16 -16
  47. package/src/commands/functions/invoke.ts +121 -121
  48. package/src/commands/functions/layer/bind.ts +182 -182
  49. package/src/commands/functions/layer/common.ts +8 -8
  50. package/src/commands/functions/layer/create.ts +49 -49
  51. package/src/commands/functions/layer/delete.ts +73 -73
  52. package/src/commands/functions/layer/download.ts +92 -92
  53. package/src/commands/functions/layer/index.ts +7 -7
  54. package/src/commands/functions/layer/list.ts +94 -94
  55. package/src/commands/functions/layer/sort.ts +76 -76
  56. package/src/commands/functions/list.ts +68 -68
  57. package/src/commands/functions/log.ts +148 -148
  58. package/src/commands/functions/run.ts +249 -249
  59. package/src/commands/functions/trigger-create.ts +79 -79
  60. package/src/commands/functions/trigger-delete.ts +105 -105
  61. package/src/commands/functions/version/index.ts +1 -1
  62. package/src/commands/functions/version/list.ts +73 -73
  63. package/src/commands/functions/version/publish.ts +43 -43
  64. package/src/commands/gateway/create.ts +109 -109
  65. package/src/commands/gateway/delete.ts +81 -81
  66. package/src/commands/gateway/domain.ts +159 -159
  67. package/src/commands/gateway/index.ts +5 -5
  68. package/src/commands/gateway/list.ts +76 -76
  69. package/src/commands/gateway/switch.ts +107 -107
  70. package/src/commands/helpers/index.ts +2 -2
  71. package/src/commands/helpers/init.ts +431 -431
  72. package/src/commands/helpers/new.ts +117 -117
  73. package/src/commands/helpers/open.ts +67 -67
  74. package/src/commands/hosting/hosting.ts +360 -360
  75. package/src/commands/index.ts +13 -13
  76. package/src/commands/lowcode/app.ts +34 -34
  77. package/src/commands/lowcode/comps.ts +322 -322
  78. package/src/commands/lowcode/index.ts +1 -1
  79. package/src/commands/lowcode/utils.ts +24 -24
  80. package/src/commands/run/image/index.ts +4 -4
  81. package/src/commands/run/list.ts +2 -3
  82. package/src/commands/run/standalonegateway/common.ts +7 -7
  83. package/src/commands/run/standalonegateway/create.ts +85 -85
  84. package/src/commands/run/standalonegateway/destroy.ts +59 -59
  85. package/src/commands/run/standalonegateway/index.ts +4 -4
  86. package/src/commands/run/standalonegateway/list.ts +53 -53
  87. package/src/commands/run/standalonegateway/package.ts +62 -62
  88. package/src/commands/run/standalonegateway/turn.ts +63 -63
  89. package/src/commands/run/version/index.ts +4 -4
  90. package/src/commands/smart.ts +132 -132
  91. package/src/commands/storage/storage.ts +464 -464
  92. package/src/commands/third/thirdAttach.ts +49 -49
  93. package/src/completion/index.ts +13 -13
  94. package/src/decorators/captureError.ts +25 -25
  95. package/src/decorators/constants.ts +12 -12
  96. package/src/decorators/deprecate.ts +25 -25
  97. package/src/decorators/guard.ts +42 -42
  98. package/src/decorators/index.ts +7 -7
  99. package/src/decorators/injectParams.ts +54 -54
  100. package/src/decorators/params/common.ts +28 -28
  101. package/src/decorators/params/index.ts +35 -35
  102. package/src/env/domain.ts +33 -33
  103. package/src/env/index.ts +63 -63
  104. package/src/env/login.ts +80 -80
  105. package/src/error.ts +36 -36
  106. package/src/function/alias.ts +43 -43
  107. package/src/function/base.ts +253 -253
  108. package/src/function/code.ts +55 -55
  109. package/src/function/concurrency.ts +57 -57
  110. package/src/function/create.ts +78 -78
  111. package/src/function/delete.ts +42 -42
  112. package/src/function/index.ts +10 -10
  113. package/src/function/layer/attach.ts +68 -68
  114. package/src/function/layer/create.ts +63 -63
  115. package/src/function/layer/delete.ts +21 -21
  116. package/src/function/layer/download.ts +54 -54
  117. package/src/function/layer/index.ts +7 -7
  118. package/src/function/layer/list.ts +32 -32
  119. package/src/function/layer/sort.ts +24 -24
  120. package/src/function/trigger.ts +97 -97
  121. package/src/function/update.ts +35 -35
  122. package/src/function/version.ts +38 -38
  123. package/src/function/vpc.ts +22 -22
  124. package/src/gateway/index.ts +137 -137
  125. package/src/hosting.ts +212 -212
  126. package/src/index.ts +13 -13
  127. package/src/logger.ts +17 -17
  128. package/src/run/create.ts +23 -23
  129. package/src/run/delete.ts +15 -15
  130. package/src/run/image/build.ts +36 -36
  131. package/src/run/image/delete.ts +13 -13
  132. package/src/run/image/index.ts +3 -3
  133. package/src/run/image/info.ts +26 -26
  134. package/src/run/list.ts +29 -29
  135. package/src/run/repo.ts +24 -24
  136. package/src/run/standalonegateway/create.ts +24 -24
  137. package/src/run/standalonegateway/destroy.ts +19 -19
  138. package/src/run/standalonegateway/index.ts +4 -4
  139. package/src/run/standalonegateway/list.ts +74 -74
  140. package/src/run/standalonegateway/package/list.ts +24 -24
  141. package/src/run/standalonegateway/turn/index.ts +1 -1
  142. package/src/run/standalonegateway/turn/off.ts +19 -19
  143. package/src/run/standalonegateway/turn/on.ts +19 -19
  144. package/src/run/version/create.ts +68 -68
  145. package/src/run/version/delete.ts +15 -15
  146. package/src/run/version/index.ts +5 -5
  147. package/src/run/version/list.ts +16 -16
  148. package/src/run/version/modify.ts +16 -16
  149. package/src/run/version/repo.ts +27 -27
  150. package/src/run/version/update.ts +58 -58
  151. package/src/storage.ts +114 -114
  152. package/src/third/index.ts +12 -12
  153. package/src/utils/auth.ts +15 -15
  154. package/src/utils/cli-table.ts +23 -23
  155. package/src/utils/config.ts +39 -39
  156. package/src/utils/env.ts +244 -244
  157. package/src/utils/fs/del.ts +5 -5
  158. package/src/utils/fs/index.ts +71 -71
  159. package/src/utils/function-packer.ts +97 -97
  160. package/src/utils/log.ts +81 -81
  161. package/src/utils/net/cloud-api-request.ts +62 -62
  162. package/src/utils/net/credential.ts +53 -53
  163. package/src/utils/net/index.ts +4 -4
  164. package/src/utils/net/manager-service.ts +36 -36
  165. package/src/utils/net/proxy.ts +6 -6
  166. package/src/utils/notice.ts +28 -28
  167. package/src/utils/output/highlight.ts +5 -5
  168. package/src/utils/output/index.ts +2 -2
  169. package/src/utils/output/link.ts +10 -10
  170. package/src/utils/output/loading.ts +82 -82
  171. package/src/utils/parallel.ts +82 -82
  172. package/src/utils/platform/index.ts +2 -2
  173. package/src/utils/platform/mac.ts +21 -21
  174. package/src/utils/platform/os.ts +64 -64
  175. package/src/utils/platform/port.ts +10 -10
  176. package/src/utils/progress-bar.ts +38 -38
  177. package/src/utils/prompt/select.ts +59 -59
  178. package/src/utils/reporter/agree.ts +20 -20
  179. package/src/utils/reporter/download.ts +26 -26
  180. package/src/utils/reporter/index.ts +3 -3
  181. package/src/utils/reporter/usage.ts +20 -20
  182. package/src/utils/store/auth.ts +49 -49
  183. package/src/utils/store/common.ts +8 -8
  184. package/src/utils/store/db.ts +68 -68
  185. package/src/utils/store/index.ts +4 -4
  186. package/src/utils/store/usage.ts +12 -12
  187. package/src/utils/tcbrApi/callTcbrApi.ts +1 -1
  188. package/src/utils/template.ts +170 -170
  189. package/src/utils/tools/encoding.ts +8 -8
  190. package/src/utils/tools/index.ts +4 -4
  191. package/src/utils/tools/object.ts +33 -33
  192. package/src/utils/tools/time.ts +38 -38
  193. package/src/utils/tools/uid.ts +19 -19
  194. package/templates/html/loginFail.html +90 -90
  195. package/templates/html/loginSuccess.html +86 -86
  196. package/templates/server/node/_gitignore +54 -54
  197. package/templates/server/node/cloudbaserc.json +10 -10
  198. package/templates/server/node/index.js +5 -5
  199. package/templates/server/node/package.json +9 -9
  200. package/tsconfig.json +19 -19
  201. package/tsconfig.test.json +13 -13
  202. package/.vscode/settings.json +0 -3
  203. package/lib/utils/tcbrApi/tcbr-cloud-api/cloud-api-service.js +0 -268
  204. package/lib/utils/tcbrApi/tcbr-cloud-api/error.js +0 -17
  205. package/lib/utils/tcbrApi/tcbr-cloud-api/index.js +0 -17
  206. package/lib/utils/tcbrApi/tcbr-cloud-api/request.js +0 -40
  207. package/lib/utils/tcbrApi/tcbr-cloud-api-request.js +0 -61
  208. package/src/utils/tcbrApi/tcbr-cloud-api/cloud-api-service.ts +0 -363
  209. package/src/utils/tcbrApi/tcbr-cloud-api/error.ts +0 -30
  210. package/src/utils/tcbrApi/tcbr-cloud-api/index.ts +0 -1
  211. package/src/utils/tcbrApi/tcbr-cloud-api/request.ts +0 -28
  212. package/src/utils/tcbrApi/tcbr-cloud-api-request.ts +0 -66
  213. package/types/utils/tcbrApi/tcbr-cloud-api/cloud-api-service.d.ts +0 -51
  214. package/types/utils/tcbrApi/tcbr-cloud-api/error.d.ts +0 -20
  215. package/types/utils/tcbrApi/tcbr-cloud-api/index.d.ts +0 -1
  216. package/types/utils/tcbrApi/tcbr-cloud-api/request.d.ts +0 -4
  217. package/types/utils/tcbrApi/tcbr-cloud-api-request.d.ts +0 -9
@@ -1,81 +1,81 @@
1
- import { prompt } from 'enquirer'
2
- import { Command, ICommand } from '../common'
3
- import { loadingFactory } from '../../utils'
4
- import { InjectParams, EnvId, ArgsOptions } from '../../decorators'
5
- import { deleteGateway, queryGateway } from '../../gateway'
6
-
7
- @ICommand()
8
- export class DeleteServiceCommand extends Command {
9
- get options() {
10
- return {
11
- cmd: 'service',
12
- childCmd: 'delete',
13
- deprecateCmd: 'service:delete',
14
- options: [
15
- {
16
- flags: '-e, --envId <envId>',
17
- desc: '环境 Id'
18
- },
19
- {
20
- flags: '-p, --service-path <servicePath>',
21
- desc: 'HTTP 访问服务路径,删除此路径对应的 HTTP 访问服务'
22
- },
23
- {
24
- flags: '-i, --service-id <serviceId>',
25
- desc: 'HTTP 访问服务 Id,删除此 Id 对应的 HTTP 访问服务'
26
- },
27
- {
28
- flags: '-n, --name <name>',
29
- desc: '云函数函数名称,删除此函数绑定的所有 HTTP 访问服务'
30
- }
31
- ],
32
- desc: '删除 HTTP 访问服务'
33
- }
34
- }
35
-
36
- @InjectParams()
37
- async execute(@EnvId() envId, @ArgsOptions() options) {
38
- let { servicePath, serviceId, name } = options
39
-
40
- // 当没有指定要删除的服务时,获取所有服务列表,并提示
41
- if (!servicePath && !serviceId && (!name || typeof name !== 'string')) {
42
- const { APISet: allServices } = await queryGateway({
43
- envId
44
- })
45
-
46
- const { selected } = await prompt<any>({
47
- type: 'select',
48
- name: 'selected',
49
- message: '请选择需要删除的 Service',
50
- choices: allServices.map((item) => ({
51
- name: `函数名:${item.Name}/路径:${item.Path}`,
52
- value: item.APIId
53
- })),
54
- result(choices) {
55
- return Object.values(this.map(choices)) as any
56
- }
57
- })
58
- serviceId = selected?.[0]
59
- }
60
-
61
- if (servicePath) {
62
- servicePath = servicePath[0] === '/' ? servicePath : `/${servicePath}`
63
- }
64
-
65
- const loading = loadingFactory()
66
- loading.start('HTTP 访问服务删除中...')
67
-
68
- try {
69
- await deleteGateway({
70
- envId,
71
- name,
72
- path: servicePath,
73
- gatewayId: serviceId
74
- })
75
- loading.succeed('HTTP 访问服务删除成功!')
76
- } catch (e) {
77
- loading.stop()
78
- throw e
79
- }
80
- }
81
- }
1
+ import { prompt } from 'enquirer'
2
+ import { Command, ICommand } from '../common'
3
+ import { loadingFactory } from '../../utils'
4
+ import { InjectParams, EnvId, ArgsOptions } from '../../decorators'
5
+ import { deleteGateway, queryGateway } from '../../gateway'
6
+
7
+ @ICommand()
8
+ export class DeleteServiceCommand extends Command {
9
+ get options() {
10
+ return {
11
+ cmd: 'service',
12
+ childCmd: 'delete',
13
+ deprecateCmd: 'service:delete',
14
+ options: [
15
+ {
16
+ flags: '-e, --envId <envId>',
17
+ desc: '环境 Id'
18
+ },
19
+ {
20
+ flags: '-p, --service-path <servicePath>',
21
+ desc: 'HTTP 访问服务路径,删除此路径对应的 HTTP 访问服务'
22
+ },
23
+ {
24
+ flags: '-i, --service-id <serviceId>',
25
+ desc: 'HTTP 访问服务 Id,删除此 Id 对应的 HTTP 访问服务'
26
+ },
27
+ {
28
+ flags: '-n, --name <name>',
29
+ desc: '云函数函数名称,删除此函数绑定的所有 HTTP 访问服务'
30
+ }
31
+ ],
32
+ desc: '删除 HTTP 访问服务'
33
+ }
34
+ }
35
+
36
+ @InjectParams()
37
+ async execute(@EnvId() envId, @ArgsOptions() options) {
38
+ let { servicePath, serviceId, name } = options
39
+
40
+ // 当没有指定要删除的服务时,获取所有服务列表,并提示
41
+ if (!servicePath && !serviceId && (!name || typeof name !== 'string')) {
42
+ const { APISet: allServices } = await queryGateway({
43
+ envId
44
+ })
45
+
46
+ const { selected } = await prompt<any>({
47
+ type: 'select',
48
+ name: 'selected',
49
+ message: '请选择需要删除的 Service',
50
+ choices: allServices.map((item) => ({
51
+ name: `函数名:${item.Name}/路径:${item.Path}`,
52
+ value: item.APIId
53
+ })),
54
+ result(choices) {
55
+ return Object.values(this.map(choices)) as any
56
+ }
57
+ })
58
+ serviceId = selected?.[0]
59
+ }
60
+
61
+ if (servicePath) {
62
+ servicePath = servicePath[0] === '/' ? servicePath : `/${servicePath}`
63
+ }
64
+
65
+ const loading = loadingFactory()
66
+ loading.start('HTTP 访问服务删除中...')
67
+
68
+ try {
69
+ await deleteGateway({
70
+ envId,
71
+ name,
72
+ path: servicePath,
73
+ gatewayId: serviceId
74
+ })
75
+ loading.succeed('HTTP 访问服务删除成功!')
76
+ } catch (e) {
77
+ loading.stop()
78
+ throw e
79
+ }
80
+ }
81
+ }
@@ -1,159 +1,159 @@
1
- import { Command, ICommand } from '../common'
2
- import { CloudBaseError } from '../../error'
3
- import { loadingFactory, printHorizontalTable, formatDate } from '../../utils'
4
- import { InjectParams, EnvId, ArgsParams, ArgsOptions, Log, Logger } from '../../decorators'
5
- import { bindGatewayDomain, queryGatewayDomain, unbindGatewayDomain } from '../../gateway'
6
-
7
- const SERVICE_STATUS_MAP = {
8
- 1: '部署中',
9
- 2: '部署失败',
10
- 3: '部署成功',
11
- 4: '删除中',
12
- 5: '删除失败'
13
- }
14
-
15
- // 暂时无法支持
16
- export class BindCustomDomainCommand extends Command {
17
- get options() {
18
- return {
19
- cmd: 'service',
20
- childCmd: { cmd: 'domain', desc: 'HTTP 访问服务域名管理' },
21
- childSubCmd: 'bind <domain>',
22
- deprecateCmd: 'service:domain:bind <domain>',
23
- options: [
24
- {
25
- flags: '-e, --envId <envId>',
26
- desc: '环境 Id'
27
- }
28
- ],
29
- desc: '绑定自定义HTTP 访问服务域名'
30
- }
31
- }
32
-
33
- @InjectParams()
34
- async execute(@EnvId() envId, @ArgsParams() params) {
35
- const domain = params?.[0]
36
-
37
- console.log(domain)
38
-
39
- if (!domain) {
40
- throw new CloudBaseError('请指定需要绑定的HTTP 访问服务域名!')
41
- }
42
-
43
- const loading = loadingFactory()
44
- loading.start(`HTTP 访问服务域名 [${domain}] 绑定中...`)
45
-
46
- try {
47
- await bindGatewayDomain({
48
- envId,
49
- domain
50
- })
51
- loading.succeed(`HTTP 访问服务域名[${domain}] 绑定成功!`)
52
- } catch (e) {
53
- loading.stop()
54
- throw e
55
- }
56
- }
57
- }
58
-
59
- @ICommand()
60
- export class GetCustomDomainsCommand extends Command {
61
- get options() {
62
- return {
63
- cmd: 'service',
64
- childCmd: 'domain',
65
- childSubCmd: 'list',
66
- deprecateCmd: 'service:domain:list',
67
- options: [
68
- {
69
- flags: '-e, --envId <envId>',
70
- desc: '环境 Id'
71
- },
72
- {
73
- flags: '-d, --domain <domain>',
74
- desc: '域名'
75
- }
76
- ],
77
- desc: '查询 HTTP 访问服务自定义域名'
78
- }
79
- }
80
-
81
- @InjectParams()
82
- async execute(@EnvId() envId, @ArgsOptions() options, @Log() log: Logger) {
83
- const { domain: domainName } = options
84
-
85
- if (!envId && !domainName) {
86
- throw new CloudBaseError('请指定需要查询的环境 ID 或HTTP 访问服务域名!')
87
- }
88
-
89
- const loading = loadingFactory()
90
- loading.start('查询HTTP 访问服务域名中...')
91
-
92
- try {
93
- const res = await queryGatewayDomain({
94
- envId,
95
- domain: domainName
96
- })
97
-
98
- loading.succeed('查询HTTP 访问服务域名成功!')
99
-
100
- if (!res?.ServiceSet?.length) {
101
- log.info('HTTP 访问服务域名为空!')
102
- return
103
- }
104
-
105
- const head = ['域名', '状态', '创建时间']
106
- const tableData = res.ServiceSet.map((item) => [
107
- item.Domain,
108
- SERVICE_STATUS_MAP[item.Status],
109
- formatDate(item.OpenTime * 1000, 'yyyy-MM-dd hh:mm:ss')
110
- ])
111
- printHorizontalTable(head, tableData)
112
- } catch (e) {
113
- loading.stop()
114
- throw e
115
- }
116
- }
117
- }
118
-
119
- @ICommand()
120
- export class UnbindCustomDomainCommand extends Command {
121
- get options() {
122
- return {
123
- cmd: 'service',
124
- childCmd: 'domain',
125
- childSubCmd: 'unbind <domain>',
126
- deprecateCmd: 'service:domain:unbind <domain>',
127
- options: [
128
- {
129
- flags: '-e, --envId <envId>',
130
- desc: '环境 Id'
131
- }
132
- ],
133
- desc: '解绑自定义HTTP 访问服务域名'
134
- }
135
- }
136
-
137
- @InjectParams()
138
- async execute(@EnvId() envId, @ArgsParams() params) {
139
- const domain = params?.[0]
140
-
141
- if (!domain) {
142
- throw new CloudBaseError('请指定需要解绑的HTTP 访问服务域名!')
143
- }
144
-
145
- const loading = loadingFactory()
146
- loading.start(`HTTP Service域名 [${domain}] 解绑中...`)
147
-
148
- try {
149
- await unbindGatewayDomain({
150
- envId,
151
- domain
152
- })
153
- loading.succeed(`HTTP Service域名 [${domain}] 解绑成功!`)
154
- } catch (e) {
155
- loading.stop()
156
- throw e
157
- }
158
- }
159
- }
1
+ import { Command, ICommand } from '../common'
2
+ import { CloudBaseError } from '../../error'
3
+ import { loadingFactory, printHorizontalTable, formatDate } from '../../utils'
4
+ import { InjectParams, EnvId, ArgsParams, ArgsOptions, Log, Logger } from '../../decorators'
5
+ import { bindGatewayDomain, queryGatewayDomain, unbindGatewayDomain } from '../../gateway'
6
+
7
+ const SERVICE_STATUS_MAP = {
8
+ 1: '部署中',
9
+ 2: '部署失败',
10
+ 3: '部署成功',
11
+ 4: '删除中',
12
+ 5: '删除失败'
13
+ }
14
+
15
+ // 暂时无法支持
16
+ export class BindCustomDomainCommand extends Command {
17
+ get options() {
18
+ return {
19
+ cmd: 'service',
20
+ childCmd: { cmd: 'domain', desc: 'HTTP 访问服务域名管理' },
21
+ childSubCmd: 'bind <domain>',
22
+ deprecateCmd: 'service:domain:bind <domain>',
23
+ options: [
24
+ {
25
+ flags: '-e, --envId <envId>',
26
+ desc: '环境 Id'
27
+ }
28
+ ],
29
+ desc: '绑定自定义HTTP 访问服务域名'
30
+ }
31
+ }
32
+
33
+ @InjectParams()
34
+ async execute(@EnvId() envId, @ArgsParams() params) {
35
+ const domain = params?.[0]
36
+
37
+ console.log(domain)
38
+
39
+ if (!domain) {
40
+ throw new CloudBaseError('请指定需要绑定的HTTP 访问服务域名!')
41
+ }
42
+
43
+ const loading = loadingFactory()
44
+ loading.start(`HTTP 访问服务域名 [${domain}] 绑定中...`)
45
+
46
+ try {
47
+ await bindGatewayDomain({
48
+ envId,
49
+ domain
50
+ })
51
+ loading.succeed(`HTTP 访问服务域名[${domain}] 绑定成功!`)
52
+ } catch (e) {
53
+ loading.stop()
54
+ throw e
55
+ }
56
+ }
57
+ }
58
+
59
+ @ICommand()
60
+ export class GetCustomDomainsCommand extends Command {
61
+ get options() {
62
+ return {
63
+ cmd: 'service',
64
+ childCmd: 'domain',
65
+ childSubCmd: 'list',
66
+ deprecateCmd: 'service:domain:list',
67
+ options: [
68
+ {
69
+ flags: '-e, --envId <envId>',
70
+ desc: '环境 Id'
71
+ },
72
+ {
73
+ flags: '-d, --domain <domain>',
74
+ desc: '域名'
75
+ }
76
+ ],
77
+ desc: '查询 HTTP 访问服务自定义域名'
78
+ }
79
+ }
80
+
81
+ @InjectParams()
82
+ async execute(@EnvId() envId, @ArgsOptions() options, @Log() log: Logger) {
83
+ const { domain: domainName } = options
84
+
85
+ if (!envId && !domainName) {
86
+ throw new CloudBaseError('请指定需要查询的环境 ID 或HTTP 访问服务域名!')
87
+ }
88
+
89
+ const loading = loadingFactory()
90
+ loading.start('查询HTTP 访问服务域名中...')
91
+
92
+ try {
93
+ const res = await queryGatewayDomain({
94
+ envId,
95
+ domain: domainName
96
+ })
97
+
98
+ loading.succeed('查询HTTP 访问服务域名成功!')
99
+
100
+ if (!res?.ServiceSet?.length) {
101
+ log.info('HTTP 访问服务域名为空!')
102
+ return
103
+ }
104
+
105
+ const head = ['域名', '状态', '创建时间']
106
+ const tableData = res.ServiceSet.map((item) => [
107
+ item.Domain,
108
+ SERVICE_STATUS_MAP[item.Status],
109
+ formatDate(item.OpenTime * 1000, 'yyyy-MM-dd hh:mm:ss')
110
+ ])
111
+ printHorizontalTable(head, tableData)
112
+ } catch (e) {
113
+ loading.stop()
114
+ throw e
115
+ }
116
+ }
117
+ }
118
+
119
+ @ICommand()
120
+ export class UnbindCustomDomainCommand extends Command {
121
+ get options() {
122
+ return {
123
+ cmd: 'service',
124
+ childCmd: 'domain',
125
+ childSubCmd: 'unbind <domain>',
126
+ deprecateCmd: 'service:domain:unbind <domain>',
127
+ options: [
128
+ {
129
+ flags: '-e, --envId <envId>',
130
+ desc: '环境 Id'
131
+ }
132
+ ],
133
+ desc: '解绑自定义HTTP 访问服务域名'
134
+ }
135
+ }
136
+
137
+ @InjectParams()
138
+ async execute(@EnvId() envId, @ArgsParams() params) {
139
+ const domain = params?.[0]
140
+
141
+ if (!domain) {
142
+ throw new CloudBaseError('请指定需要解绑的HTTP 访问服务域名!')
143
+ }
144
+
145
+ const loading = loadingFactory()
146
+ loading.start(`HTTP Service域名 [${domain}] 解绑中...`)
147
+
148
+ try {
149
+ await unbindGatewayDomain({
150
+ envId,
151
+ domain
152
+ })
153
+ loading.succeed(`HTTP Service域名 [${domain}] 解绑成功!`)
154
+ } catch (e) {
155
+ loading.stop()
156
+ throw e
157
+ }
158
+ }
159
+ }
@@ -1,5 +1,5 @@
1
- export * from './create'
2
- export * from './delete'
3
- export * from './domain'
4
- export * from './list'
5
- export * from './switch'
1
+ export * from './create'
2
+ export * from './delete'
3
+ export * from './domain'
4
+ export * from './list'
5
+ export * from './switch'
@@ -1,76 +1,76 @@
1
- import { Command, ICommand } from '../common'
2
- import { CloudBaseError } from '../../error'
3
- import { queryGateway } from '../../gateway'
4
-
5
- import { InjectParams, EnvId, ArgsOptions, Log, Logger } from '../../decorators'
6
- import { printHorizontalTable, loadingFactory, formatDate } from '../../utils'
7
-
8
- @ICommand()
9
- export class ListServiceCommand extends Command {
10
- get options() {
11
- return {
12
- cmd: 'service',
13
- childCmd: 'list',
14
- deprecateCmd: 'service:list',
15
- options: [
16
- {
17
- flags: '-e, --envId <envId>',
18
- desc: '环境 Id'
19
- },
20
- {
21
- flags: '-d, --domain <domain>',
22
- desc: '自定义域名'
23
- },
24
- {
25
- flags: '-p, --service-path <servicePath>',
26
- desc: 'Service Path'
27
- },
28
- {
29
- flags: '-id, --service-id <serviceId>',
30
- desc: 'Service Id'
31
- }
32
- ],
33
- desc: '获取 HTTP 访问服务列表'
34
- }
35
- }
36
-
37
- @InjectParams()
38
- async execute(@EnvId() envId, @ArgsOptions() options, @Log() log: Logger) {
39
- const { domain: domainName, servicePath, serviceId } = options
40
-
41
- if (!envId && !domainName) {
42
- throw new CloudBaseError('请指定需要查询的环境 ID 或HTTP 访问服务自定义域名!')
43
- }
44
-
45
- const loading = loadingFactory()
46
- loading.start('查询HTTP 访问服务中...')
47
-
48
- try {
49
- const res = await queryGateway({
50
- envId,
51
- domain: domainName,
52
- path: servicePath,
53
- gatewayId: serviceId
54
- })
55
-
56
- loading.stop()
57
-
58
- if (res?.APISet?.length === 0) {
59
- log.info('HTTP 访问服务为空')
60
- return
61
- }
62
-
63
- const head = ['触发路径', '关联资源', '触发类型', '创建时间']
64
- const tableData = res.APISet.map((item) => [
65
- item.Path,
66
- item.Name,
67
- item.Type === 1 ? '云函数' : '云托管',
68
- formatDate(item.CreateTime * 1000, 'yyyy-MM-dd hh:mm:ss')
69
- ])
70
- printHorizontalTable(head, tableData)
71
- } catch (e) {
72
- loading.stop()
73
- throw e
74
- }
75
- }
76
- }
1
+ import { Command, ICommand } from '../common'
2
+ import { CloudBaseError } from '../../error'
3
+ import { queryGateway } from '../../gateway'
4
+
5
+ import { InjectParams, EnvId, ArgsOptions, Log, Logger } from '../../decorators'
6
+ import { printHorizontalTable, loadingFactory, formatDate } from '../../utils'
7
+
8
+ @ICommand()
9
+ export class ListServiceCommand extends Command {
10
+ get options() {
11
+ return {
12
+ cmd: 'service',
13
+ childCmd: 'list',
14
+ deprecateCmd: 'service:list',
15
+ options: [
16
+ {
17
+ flags: '-e, --envId <envId>',
18
+ desc: '环境 Id'
19
+ },
20
+ {
21
+ flags: '-d, --domain <domain>',
22
+ desc: '自定义域名'
23
+ },
24
+ {
25
+ flags: '-p, --service-path <servicePath>',
26
+ desc: 'Service Path'
27
+ },
28
+ {
29
+ flags: '-id, --service-id <serviceId>',
30
+ desc: 'Service Id'
31
+ }
32
+ ],
33
+ desc: '获取 HTTP 访问服务列表'
34
+ }
35
+ }
36
+
37
+ @InjectParams()
38
+ async execute(@EnvId() envId, @ArgsOptions() options, @Log() log: Logger) {
39
+ const { domain: domainName, servicePath, serviceId } = options
40
+
41
+ if (!envId && !domainName) {
42
+ throw new CloudBaseError('请指定需要查询的环境 ID 或HTTP 访问服务自定义域名!')
43
+ }
44
+
45
+ const loading = loadingFactory()
46
+ loading.start('查询HTTP 访问服务中...')
47
+
48
+ try {
49
+ const res = await queryGateway({
50
+ envId,
51
+ domain: domainName,
52
+ path: servicePath,
53
+ gatewayId: serviceId
54
+ })
55
+
56
+ loading.stop()
57
+
58
+ if (res?.APISet?.length === 0) {
59
+ log.info('HTTP 访问服务为空')
60
+ return
61
+ }
62
+
63
+ const head = ['触发路径', '关联资源', '触发类型', '创建时间']
64
+ const tableData = res.APISet.map((item) => [
65
+ item.Path,
66
+ item.Name,
67
+ item.Type === 1 ? '云函数' : '云托管',
68
+ formatDate(item.CreateTime * 1000, 'yyyy-MM-dd hh:mm:ss')
69
+ ])
70
+ printHorizontalTable(head, tableData)
71
+ } catch (e) {
72
+ loading.stop()
73
+ throw e
74
+ }
75
+ }
76
+ }