@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,97 +1,97 @@
1
- import fs from 'fs'
2
- import del from 'del'
3
- import path from 'path'
4
- import makeDir from 'make-dir'
5
- import { random } from './tools'
6
- import { CloudBaseError, zipDir, checkFullAccess } from '@cloudbase/toolbox'
7
-
8
- export enum CodeType {
9
- File,
10
- JavaFile
11
- }
12
-
13
- /**
14
- * 将函数代码转换成 Base64 编码
15
- * 普通文件:Node,PHP
16
- * Java 文件:Jar,ZIP
17
- */
18
- export class FunctionPacker {
19
- // 项目根目录
20
- root: string
21
- // 函数名
22
- name: string
23
- // 代码文件类型
24
- type: CodeType
25
- funcPath: string
26
- funcDistPath: string
27
- // 临时目录
28
- tmpPath: string
29
- // 忽略文件模式
30
- ignore: string | string[]
31
-
32
- constructor(root: string, name: string, ignore: string | string[]) {
33
- this.name = name
34
- this.root = root
35
- this.ignore = ignore
36
- this.funcPath = path.join(root, name)
37
- }
38
-
39
- async getFileCode() {
40
- checkFullAccess(this.funcPath, true)
41
- // 构建临时文件夹存放函数打包结果
42
- this.tmpPath = path.join(this.root, `.cloudbase_tmp_${random()}`)
43
- this.funcDistPath = path.join(this.tmpPath, this.name)
44
- // 生成存放 zip 文件的文件夹
45
- await makeDir(this.funcDistPath)
46
- const zipPath = path.resolve(this.funcDistPath, 'dist.zip')
47
- // 生成 zip 文件
48
-
49
- await zipDir(this.funcPath, zipPath, this.ignore)
50
- // 将 zip 文件转换成 base64
51
- const base64 = fs.readFileSync(zipPath).toString('base64')
52
- // 清除打包文件
53
- this.clean()
54
- return base64
55
- }
56
-
57
- // 获取 Java 代码
58
- getJavaFileCode() {
59
- const { funcPath } = this
60
- // Java 代码为 jar 或 zip 包
61
- const jarExist = checkFullAccess(`${funcPath}.jar`)
62
- const zipExist = checkFullAccess(`${funcPath}.zip`)
63
- if (!jarExist && !zipExist) {
64
- return null
65
- }
66
- const packagePath = jarExist ? `${funcPath}.jar` : `${funcPath}.zip`
67
- return fs.readFileSync(packagePath).toString('base64')
68
- }
69
-
70
- async build(type: CodeType) {
71
- if (type === CodeType.JavaFile) {
72
- try {
73
- const code = await this.getJavaFileCode()
74
- return code
75
- } catch (error) {
76
- this.clean()
77
- throw new CloudBaseError(`函数代码打包失败:\n ${error.message}`)
78
- }
79
- }
80
-
81
- if (type === CodeType.File) {
82
- try {
83
- const code = await this.getFileCode()
84
- return code
85
- } catch (error) {
86
- this.clean()
87
- throw new CloudBaseError(`函数代码打包失败:\n ${error.message}`)
88
- }
89
- }
90
- }
91
-
92
- clean() {
93
- // allow deleting the current working directory and outside
94
- this.funcDistPath && del.sync([this.funcDistPath], { force: true })
95
- this.tmpPath && del.sync([this.tmpPath], { force: true })
96
- }
97
- }
1
+ import fs from 'fs'
2
+ import del from 'del'
3
+ import path from 'path'
4
+ import makeDir from 'make-dir'
5
+ import { random } from './tools'
6
+ import { CloudBaseError, zipDir, checkFullAccess } from '@cloudbase/toolbox'
7
+
8
+ export enum CodeType {
9
+ File,
10
+ JavaFile
11
+ }
12
+
13
+ /**
14
+ * 将函数代码转换成 Base64 编码
15
+ * 普通文件:Node,PHP
16
+ * Java 文件:Jar,ZIP
17
+ */
18
+ export class FunctionPacker {
19
+ // 项目根目录
20
+ root: string
21
+ // 函数名
22
+ name: string
23
+ // 代码文件类型
24
+ type: CodeType
25
+ funcPath: string
26
+ funcDistPath: string
27
+ // 临时目录
28
+ tmpPath: string
29
+ // 忽略文件模式
30
+ ignore: string | string[]
31
+
32
+ constructor(root: string, name: string, ignore: string | string[]) {
33
+ this.name = name
34
+ this.root = root
35
+ this.ignore = ignore
36
+ this.funcPath = path.join(root, name)
37
+ }
38
+
39
+ async getFileCode() {
40
+ checkFullAccess(this.funcPath, true)
41
+ // 构建临时文件夹存放函数打包结果
42
+ this.tmpPath = path.join(this.root, `.cloudbase_tmp_${random()}`)
43
+ this.funcDistPath = path.join(this.tmpPath, this.name)
44
+ // 生成存放 zip 文件的文件夹
45
+ await makeDir(this.funcDistPath)
46
+ const zipPath = path.resolve(this.funcDistPath, 'dist.zip')
47
+ // 生成 zip 文件
48
+
49
+ await zipDir(this.funcPath, zipPath, this.ignore)
50
+ // 将 zip 文件转换成 base64
51
+ const base64 = fs.readFileSync(zipPath).toString('base64')
52
+ // 清除打包文件
53
+ this.clean()
54
+ return base64
55
+ }
56
+
57
+ // 获取 Java 代码
58
+ getJavaFileCode() {
59
+ const { funcPath } = this
60
+ // Java 代码为 jar 或 zip 包
61
+ const jarExist = checkFullAccess(`${funcPath}.jar`)
62
+ const zipExist = checkFullAccess(`${funcPath}.zip`)
63
+ if (!jarExist && !zipExist) {
64
+ return null
65
+ }
66
+ const packagePath = jarExist ? `${funcPath}.jar` : `${funcPath}.zip`
67
+ return fs.readFileSync(packagePath).toString('base64')
68
+ }
69
+
70
+ async build(type: CodeType) {
71
+ if (type === CodeType.JavaFile) {
72
+ try {
73
+ const code = await this.getJavaFileCode()
74
+ return code
75
+ } catch (error) {
76
+ this.clean()
77
+ throw new CloudBaseError(`函数代码打包失败:\n ${error.message}`)
78
+ }
79
+ }
80
+
81
+ if (type === CodeType.File) {
82
+ try {
83
+ const code = await this.getFileCode()
84
+ return code
85
+ } catch (error) {
86
+ this.clean()
87
+ throw new CloudBaseError(`函数代码打包失败:\n ${error.message}`)
88
+ }
89
+ }
90
+ }
91
+
92
+ clean() {
93
+ // allow deleting the current working directory and outside
94
+ this.funcDistPath && del.sync([this.funcDistPath], { force: true })
95
+ this.tmpPath && del.sync([this.tmpPath], { force: true })
96
+ }
97
+ }
@@ -18,4 +18,8 @@ export * from './config'
18
18
  export * from './auth'
19
19
  export * from './store'
20
20
  export * from './notice'
21
- export * from './parallel'
21
+ export * from './parallel'
22
+
23
+ export * from './tcbrApi'
24
+ export * from './checkTcbrEnv'
25
+ export * from './commonParamsCheck'
package/src/utils/log.ts CHANGED
@@ -1,82 +1,82 @@
1
- import chalk from 'chalk'
2
- import logSymbols from 'log-symbols'
3
- import { format } from 'util'
4
- import { Console } from 'console'
5
- import terminalLink from 'terminal-link'
6
-
7
- export class Logger {
8
- c = {
9
- _times: new Map(),
10
- log(a: string, ...args: string[]) {
11
- this.debug(format(a, ...args))
12
- }
13
- }
14
-
15
- verboseEnabled: boolean
16
-
17
- constructor(options: { verbose?: boolean } = {}) {
18
- const { verbose } = options
19
- this.verboseEnabled = verbose
20
- }
21
-
22
- breakLine() {
23
- console.log()
24
- }
25
-
26
- log(...args) {
27
- console.log(...args)
28
- }
29
-
30
- info(msg: string) {
31
- console.log(`${logSymbols.info} ${msg}`)
32
- }
33
-
34
- success(msg: string) {
35
- console.log(`${logSymbols.success} ${msg}`)
36
- }
37
-
38
- warn(msg: string) {
39
- console.log(`${logSymbols.warning} ${msg}`)
40
- }
41
-
42
- error(msg: string) {
43
- console.log(`${logSymbols.error} ${msg}`)
44
- }
45
-
46
- verbose(...args: any) {
47
- if (this.verboseEnabled) {
48
- const msg = args.join(' ▶️ ')
49
- console.log(
50
- `${chalk.bold('[debug]')} ${chalk.gray(`[${new Date().toISOString()}]`)} ${msg}`
51
- )
52
- }
53
- }
54
-
55
- genClickableLink(link: string) {
56
- if (terminalLink.isSupported) {
57
- const clickablelink = terminalLink(link, link)
58
- return chalk.bold.cyan(clickablelink)
59
- }
60
- return chalk.bold.underline.cyan(link)
61
- }
62
-
63
- printClickableLink(link: string) {
64
- const clickLink = this.genClickableLink(link)
65
- this.info(clickLink)
66
- }
67
-
68
- async time(label: string, fn: Promise<any> | (() => Promise<any>)) {
69
- const promise = typeof fn === 'function' ? fn() : fn
70
- if (this.verboseEnabled) {
71
- this.c.log(label)
72
- Console.prototype.time.call(this.c, label)
73
- const r = await promise
74
- Console.prototype.timeEnd.call(this.c, label)
75
- return r
76
- }
77
-
78
- return promise
79
- }
80
- }
81
-
1
+ import chalk from 'chalk'
2
+ import logSymbols from 'log-symbols'
3
+ import { format } from 'util'
4
+ import { Console } from 'console'
5
+ import terminalLink from 'terminal-link'
6
+
7
+ export class Logger {
8
+ c = {
9
+ _times: new Map(),
10
+ log(a: string, ...args: string[]) {
11
+ this.debug(format(a, ...args))
12
+ }
13
+ }
14
+
15
+ verboseEnabled: boolean
16
+
17
+ constructor(options: { verbose?: boolean } = {}) {
18
+ const { verbose } = options
19
+ this.verboseEnabled = verbose
20
+ }
21
+
22
+ breakLine() {
23
+ console.log()
24
+ }
25
+
26
+ log(...args) {
27
+ console.log(...args)
28
+ }
29
+
30
+ info(msg: string) {
31
+ console.log(`${logSymbols.info} ${msg}`)
32
+ }
33
+
34
+ success(msg: string) {
35
+ console.log(`${logSymbols.success} ${msg}`)
36
+ }
37
+
38
+ warn(msg: string) {
39
+ console.log(`${logSymbols.warning} ${msg}`)
40
+ }
41
+
42
+ error(msg: string) {
43
+ console.log(`${logSymbols.error} ${msg}`)
44
+ }
45
+
46
+ verbose(...args: any) {
47
+ if (this.verboseEnabled) {
48
+ const msg = args.join(' ▶️ ')
49
+ console.log(
50
+ `${chalk.bold('[debug]')} ${chalk.gray(`[${new Date().toISOString()}]`)} ${msg}`
51
+ )
52
+ }
53
+ }
54
+
55
+ genClickableLink(link: string) {
56
+ if (terminalLink.isSupported) {
57
+ const clickablelink = terminalLink(link, link)
58
+ return chalk.bold.cyan(clickablelink)
59
+ }
60
+ return chalk.bold.underline.cyan(link)
61
+ }
62
+
63
+ printClickableLink(link: string) {
64
+ const clickLink = this.genClickableLink(link)
65
+ this.info(clickLink)
66
+ }
67
+
68
+ async time(label: string, fn: Promise<any> | (() => Promise<any>)) {
69
+ const promise = typeof fn === 'function' ? fn() : fn
70
+ if (this.verboseEnabled) {
71
+ this.c.log(label)
72
+ Console.prototype.time.call(this.c, label)
73
+ const r = await promise
74
+ Console.prototype.timeEnd.call(this.c, label)
75
+ return r
76
+ }
77
+
78
+ return promise
79
+ }
80
+ }
81
+
82
82
  export const logger = new Logger()
@@ -1,62 +1,62 @@
1
- import { getCredentialWithoutCheck, getRegion, Credential, getProxy } from '@cloudbase/toolbox'
2
- import { CloudApiService as _CloudApiService } from '@cloudbase/cloud-api'
3
- import { CloudBaseError } from '../../error'
4
- import { REQUEST_TIMEOUT } from '../../constant'
5
-
6
- let commonCredential: Credential
7
-
8
- // token 将在 n 分钟内过期
9
- const isTokenExpired = (credential: Credential, gap = 120) =>
10
- credential.accessTokenExpired && Number(credential.accessTokenExpired) < Date.now() + gap * 1000
11
-
12
- export class CloudApiService {
13
- // 缓存请求实例
14
- static serviceCacheMap: Record<string, CloudApiService> = {}
15
-
16
- // 单例模式
17
- static getInstance(service: string) {
18
- if (CloudApiService.serviceCacheMap?.[service]) {
19
- return CloudApiService.serviceCacheMap[service]
20
- }
21
- const apiService = new CloudApiService(service)
22
- CloudApiService.serviceCacheMap[service] = apiService
23
- return apiService
24
- }
25
-
26
- region: string
27
- apiService: _CloudApiService
28
-
29
- constructor(service: string, baseParams?: Record<string, any>, version = '') {
30
- // 初始化 API 实例
31
- this.apiService = new _CloudApiService({
32
- service,
33
- version: service === 'tcr' ? version : '2019-09-24',
34
- baseParams,
35
- proxy: getProxy(),
36
- timeout: REQUEST_TIMEOUT,
37
- getCredential: async () => {
38
- // 存在未过期的 token
39
- if (commonCredential?.secretId && !isTokenExpired(commonCredential)) {
40
- return commonCredential
41
- }
42
-
43
- const credential = await getCredentialWithoutCheck()
44
- if (!credential) {
45
- throw new CloudBaseError('无有效身份信息,请使用 cloudbase login 登录')
46
- }
47
-
48
- commonCredential = credential
49
-
50
- return {
51
- ...credential,
52
- tokenExpired: Number(credential.accessTokenExpired)
53
- }
54
- }
55
- })
56
- }
57
-
58
- async request(action: string, data: Record<string, any> = {}, method: 'POST' | 'GET' = 'POST') {
59
- const region = this.region || (await getRegion())
60
- return this.apiService.request({ action, data, method, region })
61
- }
62
- }
1
+ import { getCredentialWithoutCheck, getRegion, Credential, getProxy } from '@cloudbase/toolbox'
2
+ import { CloudApiService as _CloudApiService } from '@cloudbase/cloud-api'
3
+ import { CloudBaseError } from '../../error'
4
+ import { REQUEST_TIMEOUT } from '../../constant'
5
+
6
+ let commonCredential: Credential
7
+
8
+ // token 将在 n 分钟内过期
9
+ const isTokenExpired = (credential: Credential, gap = 120) =>
10
+ credential.accessTokenExpired && Number(credential.accessTokenExpired) < Date.now() + gap * 1000
11
+
12
+ export class CloudApiService {
13
+ // 缓存请求实例
14
+ static serviceCacheMap: Record<string, CloudApiService> = {}
15
+
16
+ // 单例模式
17
+ static getInstance(service: string) {
18
+ if (CloudApiService.serviceCacheMap?.[service]) {
19
+ return CloudApiService.serviceCacheMap[service]
20
+ }
21
+ const apiService = new CloudApiService(service)
22
+ CloudApiService.serviceCacheMap[service] = apiService
23
+ return apiService
24
+ }
25
+
26
+ region: string
27
+ apiService: _CloudApiService
28
+
29
+ constructor(service: string, baseParams?: Record<string, any>, version = '') {
30
+ // 初始化 API 实例
31
+ this.apiService = new _CloudApiService({
32
+ service,
33
+ version: service === 'tcr' ? version : '2019-09-24',
34
+ baseParams,
35
+ proxy: getProxy(),
36
+ timeout: REQUEST_TIMEOUT,
37
+ getCredential: async () => {
38
+ // 存在未过期的 token
39
+ if (commonCredential?.secretId && !isTokenExpired(commonCredential)) {
40
+ return commonCredential
41
+ }
42
+
43
+ const credential = await getCredentialWithoutCheck()
44
+ if (!credential) {
45
+ throw new CloudBaseError('无有效身份信息,请使用 cloudbase login 登录')
46
+ }
47
+
48
+ commonCredential = credential
49
+
50
+ return {
51
+ ...credential,
52
+ tokenExpired: Number(credential.accessTokenExpired)
53
+ }
54
+ }
55
+ })
56
+ }
57
+
58
+ async request(action: string, data: Record<string, any> = {}, method: 'POST' | 'GET' = 'POST') {
59
+ const region = this.region || (await getRegion())
60
+ return this.apiService.request({ action, data, method, region })
61
+ }
62
+ }
@@ -1,53 +1,53 @@
1
- import _ from 'lodash'
2
- import { checkAndGetCredential as _getCredentail } from '@cloudbase/toolbox'
3
- import { CloudBaseError } from '../../error'
4
- import { REQUEST_TIMEOUT } from '../../constant'
5
- import { Credential, AuthSecret } from '../../types'
6
-
7
- import { md5 } from '../tools'
8
- import { getMacAddress } from '../platform'
9
- import { getProxy } from './proxy'
10
- import { fetch } from './http-request'
11
-
12
-
13
- const refreshTokenUrl = 'https://iaas.cloud.tencent.com/tcb_refresh'
14
-
15
- // 临时密钥过期后,进行续期
16
- export async function refreshTmpToken(
17
- metaData: Credential & { isLogout?: boolean }
18
- ): Promise<Credential> {
19
- const mac = await getMacAddress()
20
- const hash = md5(mac)
21
- metaData.hash = hash
22
-
23
- const res = await fetch(refreshTokenUrl, {
24
- method: 'POST',
25
- body: JSON.stringify(metaData),
26
- headers: { 'Content-Type': 'application/json' }
27
- })
28
-
29
- if (res.code !== 0) {
30
- throw new CloudBaseError(res.message, {
31
- code: res.code
32
- })
33
- }
34
-
35
- const { data: credential } = res
36
- return credential
37
- }
38
-
39
- export async function checkAndGetCredential(throwError = false): Promise<AuthSecret> {
40
- const credential = await _getCredentail({
41
- proxy: getProxy(),
42
- timeout: REQUEST_TIMEOUT
43
- })
44
-
45
- if (!credential || _.isEmpty(credential)) {
46
- if (throwError) {
47
- throw new CloudBaseError('无有效身份信息,请使用 cloudbase login 登录')
48
- }
49
- return null
50
- }
51
-
52
- return credential
53
- }
1
+ import _ from 'lodash'
2
+ import { checkAndGetCredential as _getCredentail } from '@cloudbase/toolbox'
3
+ import { CloudBaseError } from '../../error'
4
+ import { REQUEST_TIMEOUT } from '../../constant'
5
+ import { Credential, AuthSecret } from '../../types'
6
+
7
+ import { md5 } from '../tools'
8
+ import { getMacAddress } from '../platform'
9
+ import { getProxy } from './proxy'
10
+ import { fetch } from './http-request'
11
+
12
+
13
+ const refreshTokenUrl = 'https://iaas.cloud.tencent.com/tcb_refresh'
14
+
15
+ // 临时密钥过期后,进行续期
16
+ export async function refreshTmpToken(
17
+ metaData: Credential & { isLogout?: boolean }
18
+ ): Promise<Credential> {
19
+ const mac = await getMacAddress()
20
+ const hash = md5(mac)
21
+ metaData.hash = hash
22
+
23
+ const res = await fetch(refreshTokenUrl, {
24
+ method: 'POST',
25
+ body: JSON.stringify(metaData),
26
+ headers: { 'Content-Type': 'application/json' }
27
+ })
28
+
29
+ if (res.code !== 0) {
30
+ throw new CloudBaseError(res.message, {
31
+ code: res.code
32
+ })
33
+ }
34
+
35
+ const { data: credential } = res
36
+ return credential
37
+ }
38
+
39
+ export async function checkAndGetCredential(throwError = false): Promise<AuthSecret> {
40
+ const credential = await _getCredentail({
41
+ proxy: getProxy(),
42
+ timeout: REQUEST_TIMEOUT
43
+ })
44
+
45
+ if (!credential || _.isEmpty(credential)) {
46
+ if (throwError) {
47
+ throw new CloudBaseError('无有效身份信息,请使用 cloudbase login 登录')
48
+ }
49
+ return null
50
+ }
51
+
52
+ return credential
53
+ }