@cloudbase/cli 2.0.0 → 2.0.1

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 (206) 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/bin/tcb.js +6 -4
  10. package/changelog.md +6 -6
  11. package/jest.config.js +17 -17
  12. package/lib/commands/account/login.js +18 -18
  13. package/lib/commands/storage/storage.js +1 -1
  14. package/lib/env/login.js +7 -7
  15. package/lib/run/service/deployPackage.js +6 -4
  16. package/lib/utils/net/http-request.js +4 -4
  17. package/lib/utils/tcbrApi/tcbr-cloud-api/request.js +3 -3
  18. package/package.json +16 -16
  19. package/post-install.js +61 -61
  20. package/runtime/nodejs/bootstrap.js +255 -255
  21. package/runtime/nodejs/runtime.js +183 -183
  22. package/src/auth/index.ts +1 -1
  23. package/src/auth/login.ts +91 -91
  24. package/src/auth/logout.ts +7 -7
  25. package/src/commands/account/index.ts +2 -2
  26. package/src/commands/account/login.ts +192 -192
  27. package/src/commands/account/logout.ts +24 -24
  28. package/src/commands/common.ts +246 -246
  29. package/src/commands/env/base.ts +90 -90
  30. package/src/commands/env/create.ts +92 -92
  31. package/src/commands/env/domain.ts +186 -186
  32. package/src/commands/env/index.ts +4 -4
  33. package/src/commands/env/login.ts +235 -235
  34. package/src/commands/framework/index.ts +124 -124
  35. package/src/commands/functions/alias/getRoute.ts +76 -76
  36. package/src/commands/functions/alias/index.ts +2 -2
  37. package/src/commands/functions/alias/setRoute.ts +82 -82
  38. package/src/commands/functions/code-download.ts +100 -100
  39. package/src/commands/functions/code-update.ts +62 -62
  40. package/src/commands/functions/concurrency/delete.ts +45 -45
  41. package/src/commands/functions/concurrency/index.ts +2 -2
  42. package/src/commands/functions/concurrency/list.ts +58 -58
  43. package/src/commands/functions/concurrency/set.ts +47 -47
  44. package/src/commands/functions/config-update.ts +76 -76
  45. package/src/commands/functions/copy.ts +62 -62
  46. package/src/commands/functions/delete.ts +79 -79
  47. package/src/commands/functions/deploy.ts +293 -293
  48. package/src/commands/functions/detail.ts +138 -138
  49. package/src/commands/functions/index.ts +16 -16
  50. package/src/commands/functions/invoke.ts +121 -121
  51. package/src/commands/functions/layer/bind.ts +182 -182
  52. package/src/commands/functions/layer/common.ts +8 -8
  53. package/src/commands/functions/layer/create.ts +49 -49
  54. package/src/commands/functions/layer/delete.ts +73 -73
  55. package/src/commands/functions/layer/download.ts +92 -92
  56. package/src/commands/functions/layer/index.ts +7 -7
  57. package/src/commands/functions/layer/list.ts +94 -94
  58. package/src/commands/functions/layer/sort.ts +76 -76
  59. package/src/commands/functions/list.ts +68 -68
  60. package/src/commands/functions/log.ts +148 -148
  61. package/src/commands/functions/run.ts +249 -249
  62. package/src/commands/functions/trigger-create.ts +79 -79
  63. package/src/commands/functions/trigger-delete.ts +105 -105
  64. package/src/commands/functions/version/index.ts +1 -1
  65. package/src/commands/functions/version/list.ts +73 -73
  66. package/src/commands/functions/version/publish.ts +43 -43
  67. package/src/commands/gateway/create.ts +109 -109
  68. package/src/commands/gateway/delete.ts +81 -81
  69. package/src/commands/gateway/domain.ts +159 -159
  70. package/src/commands/gateway/index.ts +5 -5
  71. package/src/commands/gateway/list.ts +76 -76
  72. package/src/commands/gateway/switch.ts +107 -107
  73. package/src/commands/helpers/index.ts +2 -2
  74. package/src/commands/helpers/init.ts +431 -431
  75. package/src/commands/helpers/new.ts +117 -117
  76. package/src/commands/helpers/open.ts +67 -67
  77. package/src/commands/hosting/hosting.ts +360 -360
  78. package/src/commands/index.ts +13 -13
  79. package/src/commands/lowcode/app.ts +34 -34
  80. package/src/commands/lowcode/comps.ts +322 -322
  81. package/src/commands/lowcode/index.ts +1 -1
  82. package/src/commands/lowcode/utils.ts +24 -24
  83. package/src/commands/run/image/index.ts +4 -4
  84. package/src/commands/run/standalonegateway/common.ts +7 -7
  85. package/src/commands/run/standalonegateway/create.ts +85 -85
  86. package/src/commands/run/standalonegateway/destroy.ts +59 -59
  87. package/src/commands/run/standalonegateway/index.ts +4 -4
  88. package/src/commands/run/standalonegateway/list.ts +53 -53
  89. package/src/commands/run/standalonegateway/package.ts +62 -62
  90. package/src/commands/run/standalonegateway/turn.ts +63 -63
  91. package/src/commands/run/version/index.ts +4 -4
  92. package/src/commands/smart.ts +132 -132
  93. package/src/commands/storage/storage.ts +464 -464
  94. package/src/commands/third/thirdAttach.ts +49 -49
  95. package/src/completion/index.ts +13 -13
  96. package/src/decorators/captureError.ts +25 -25
  97. package/src/decorators/constants.ts +12 -12
  98. package/src/decorators/deprecate.ts +25 -25
  99. package/src/decorators/guard.ts +42 -42
  100. package/src/decorators/index.ts +7 -7
  101. package/src/decorators/injectParams.ts +54 -54
  102. package/src/decorators/params/common.ts +28 -28
  103. package/src/decorators/params/index.ts +35 -35
  104. package/src/env/domain.ts +33 -33
  105. package/src/env/index.ts +63 -63
  106. package/src/env/login.ts +80 -80
  107. package/src/error.ts +36 -36
  108. package/src/function/alias.ts +43 -43
  109. package/src/function/base.ts +253 -253
  110. package/src/function/code.ts +55 -55
  111. package/src/function/concurrency.ts +57 -57
  112. package/src/function/create.ts +78 -78
  113. package/src/function/delete.ts +42 -42
  114. package/src/function/index.ts +10 -10
  115. package/src/function/layer/attach.ts +68 -68
  116. package/src/function/layer/create.ts +63 -63
  117. package/src/function/layer/delete.ts +21 -21
  118. package/src/function/layer/download.ts +54 -54
  119. package/src/function/layer/index.ts +7 -7
  120. package/src/function/layer/list.ts +32 -32
  121. package/src/function/layer/sort.ts +24 -24
  122. package/src/function/trigger.ts +97 -97
  123. package/src/function/update.ts +35 -35
  124. package/src/function/version.ts +38 -38
  125. package/src/function/vpc.ts +22 -22
  126. package/src/gateway/index.ts +137 -137
  127. package/src/hosting.ts +212 -212
  128. package/src/index.ts +13 -13
  129. package/src/logger.ts +17 -17
  130. package/src/run/create.ts +23 -23
  131. package/src/run/delete.ts +15 -15
  132. package/src/run/image/build.ts +36 -36
  133. package/src/run/image/delete.ts +13 -13
  134. package/src/run/image/index.ts +3 -3
  135. package/src/run/image/info.ts +26 -26
  136. package/src/run/list.ts +29 -29
  137. package/src/run/repo.ts +24 -24
  138. package/src/run/service/deployPackage.ts +6 -4
  139. package/src/run/standalonegateway/create.ts +24 -24
  140. package/src/run/standalonegateway/destroy.ts +19 -19
  141. package/src/run/standalonegateway/index.ts +4 -4
  142. package/src/run/standalonegateway/list.ts +74 -74
  143. package/src/run/standalonegateway/package/list.ts +24 -24
  144. package/src/run/standalonegateway/turn/index.ts +1 -1
  145. package/src/run/standalonegateway/turn/off.ts +19 -19
  146. package/src/run/standalonegateway/turn/on.ts +19 -19
  147. package/src/run/version/create.ts +68 -68
  148. package/src/run/version/delete.ts +15 -15
  149. package/src/run/version/index.ts +5 -5
  150. package/src/run/version/list.ts +16 -16
  151. package/src/run/version/modify.ts +16 -16
  152. package/src/run/version/repo.ts +27 -27
  153. package/src/run/version/update.ts +58 -58
  154. package/src/storage.ts +114 -114
  155. package/src/third/index.ts +12 -12
  156. package/src/utils/auth.ts +15 -15
  157. package/src/utils/cli-table.ts +23 -23
  158. package/src/utils/config.ts +39 -39
  159. package/src/utils/env.ts +244 -244
  160. package/src/utils/fs/del.ts +5 -5
  161. package/src/utils/fs/index.ts +71 -71
  162. package/src/utils/function-packer.ts +97 -97
  163. package/src/utils/log.ts +81 -81
  164. package/src/utils/net/cloud-api-request.ts +62 -62
  165. package/src/utils/net/credential.ts +53 -53
  166. package/src/utils/net/http-request.ts +84 -84
  167. package/src/utils/net/index.ts +4 -4
  168. package/src/utils/net/manager-service.ts +36 -36
  169. package/src/utils/net/proxy.ts +6 -6
  170. package/src/utils/notice.ts +28 -28
  171. package/src/utils/output/highlight.ts +5 -5
  172. package/src/utils/output/index.ts +2 -2
  173. package/src/utils/output/link.ts +10 -10
  174. package/src/utils/output/loading.ts +82 -82
  175. package/src/utils/parallel.ts +82 -82
  176. package/src/utils/platform/index.ts +2 -2
  177. package/src/utils/platform/mac.ts +21 -21
  178. package/src/utils/platform/os.ts +64 -64
  179. package/src/utils/platform/port.ts +10 -10
  180. package/src/utils/progress-bar.ts +38 -38
  181. package/src/utils/prompt/select.ts +59 -59
  182. package/src/utils/reporter/agree.ts +20 -20
  183. package/src/utils/reporter/download.ts +26 -26
  184. package/src/utils/reporter/index.ts +3 -3
  185. package/src/utils/reporter/usage.ts +20 -20
  186. package/src/utils/store/auth.ts +49 -49
  187. package/src/utils/store/common.ts +8 -8
  188. package/src/utils/store/db.ts +68 -68
  189. package/src/utils/store/index.ts +4 -4
  190. package/src/utils/store/usage.ts +12 -12
  191. package/src/utils/tcbrApi/tcbr-cloud-api/request.ts +13 -13
  192. package/src/utils/template.ts +170 -170
  193. package/src/utils/tools/encoding.ts +8 -8
  194. package/src/utils/tools/index.ts +4 -4
  195. package/src/utils/tools/object.ts +33 -33
  196. package/src/utils/tools/time.ts +38 -38
  197. package/src/utils/tools/uid.ts +19 -19
  198. package/templates/html/loginFail.html +90 -90
  199. package/templates/html/loginSuccess.html +86 -86
  200. package/templates/server/node/_gitignore +54 -54
  201. package/templates/server/node/cloudbaserc.json +10 -10
  202. package/templates/server/node/index.js +5 -5
  203. package/templates/server/node/package.json +9 -9
  204. package/tsconfig.json +19 -19
  205. package/tsconfig.test.json +13 -13
  206. package/.vscode/settings.json +0 -3
@@ -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
+ }