@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,20 +1,20 @@
1
- import { postFetch } from '../net'
2
- import { getMacAddressMd5, getOSInfo } from '../platform'
3
- import { getUin } from '../store'
4
-
5
- const url = 'https://tcli.service.tcloudbase.com/usage'
6
-
7
- export async function collectUsage(command: string) {
8
- const uin = await getUin()
9
- const macMd5 = await getMacAddressMd5()
10
- const os = await getOSInfo()
11
- const data = {
12
- os,
13
- uin,
14
- macMd5,
15
- command,
16
- version: process.CLI_VERSION
17
- }
18
-
19
- return postFetch(url, data)
20
- }
1
+ import { postFetch } from '../net'
2
+ import { getMacAddressMd5, getOSInfo } from '../platform'
3
+ import { getUin } from '../store'
4
+
5
+ const url = 'https://tcli.service.tcloudbase.com/usage'
6
+
7
+ export async function collectUsage(command: string) {
8
+ const uin = await getUin()
9
+ const macMd5 = await getMacAddressMd5()
10
+ const os = await getOSInfo()
11
+ const data = {
12
+ os,
13
+ uin,
14
+ macMd5,
15
+ command,
16
+ version: process.CLI_VERSION
17
+ }
18
+
19
+ return postFetch(url, data)
20
+ }
@@ -1,49 +1,49 @@
1
- import os from 'os'
2
- import fs from 'fs'
3
- import path from 'path'
4
- import { checkFullAccess } from '../fs'
5
- import { LocalStore } from './db'
6
- import { ConfigItems } from '../../constant'
7
-
8
- class AuthStore extends LocalStore {
9
- constructor(defaults) {
10
- super(defaults, 'auth')
11
- this.defaults = defaults
12
- this.moveOldConfig()
13
- }
14
-
15
- // TODO: 迁移并删除旧的配置文件中的数据(在后续迭代中删除)
16
- async moveOldConfig() {
17
- const db = await this.getDB()
18
- const oldConfigPath = path.resolve(
19
- os.homedir(),
20
- '.config',
21
- 'configstore',
22
- '@cloudbase',
23
- 'cli.json'
24
- )
25
-
26
- if (checkFullAccess(oldConfigPath)) {
27
- try {
28
- const content = JSON.parse(fs.readFileSync(oldConfigPath, 'utf8'))
29
- const { credential, ssh } = content
30
- await db.set(ConfigItems.credential, credential).write()
31
- await db.set(ConfigItems.ssh, ssh).write()
32
- fs.unlinkSync(oldConfigPath)
33
- } catch (e) {
34
- fs.unlinkSync(oldConfigPath)
35
- }
36
- }
37
- }
38
- }
39
-
40
- export const authStore = new AuthStore({
41
- _: '这是您的 CloudBase 身份凭据文件,请不要分享给他人!',
42
- [ConfigItems.credential]: {},
43
- [ConfigItems.ssh]: {}
44
- })
45
-
46
- export async function getUin() {
47
- const credential = await authStore.get(ConfigItems.credential)
48
- return credential?.uin || '无'
49
- }
1
+ import os from 'os'
2
+ import fs from 'fs'
3
+ import path from 'path'
4
+ import { checkFullAccess } from '../fs'
5
+ import { LocalStore } from './db'
6
+ import { ConfigItems } from '../../constant'
7
+
8
+ class AuthStore extends LocalStore {
9
+ constructor(defaults) {
10
+ super(defaults, 'auth')
11
+ this.defaults = defaults
12
+ this.moveOldConfig()
13
+ }
14
+
15
+ // TODO: 迁移并删除旧的配置文件中的数据(在后续迭代中删除)
16
+ async moveOldConfig() {
17
+ const db = await this.getDB()
18
+ const oldConfigPath = path.resolve(
19
+ os.homedir(),
20
+ '.config',
21
+ 'configstore',
22
+ '@cloudbase',
23
+ 'cli.json'
24
+ )
25
+
26
+ if (checkFullAccess(oldConfigPath)) {
27
+ try {
28
+ const content = JSON.parse(fs.readFileSync(oldConfigPath, 'utf8'))
29
+ const { credential, ssh } = content
30
+ await db.set(ConfigItems.credential, credential).write()
31
+ await db.set(ConfigItems.ssh, ssh).write()
32
+ fs.unlinkSync(oldConfigPath)
33
+ } catch (e) {
34
+ fs.unlinkSync(oldConfigPath)
35
+ }
36
+ }
37
+ }
38
+ }
39
+
40
+ export const authStore = new AuthStore({
41
+ _: '这是您的 CloudBase 身份凭据文件,请不要分享给他人!',
42
+ [ConfigItems.credential]: {},
43
+ [ConfigItems.ssh]: {}
44
+ })
45
+
46
+ export async function getUin() {
47
+ const credential = await authStore.get(ConfigItems.credential)
48
+ return credential?.uin || '无'
49
+ }
@@ -1,8 +1,8 @@
1
- import { LocalStore } from './db'
2
-
3
- export const commonStore = new LocalStore({
4
- // 已读最新消息的 uid
5
- lastNotificationUid: 1,
6
- // 上次通知时间
7
- lastNotifyTime: 0
8
- })
1
+ import { LocalStore } from './db'
2
+
3
+ export const commonStore = new LocalStore({
4
+ // 已读最新消息的 uid
5
+ lastNotificationUid: 1,
6
+ // 上次通知时间
7
+ lastNotifyTime: 0
8
+ })
@@ -1,68 +1,68 @@
1
- import os from 'os'
2
- import fse from 'fs-extra'
3
- import low from 'lowdb'
4
- import path from 'path'
5
- import FileAsync from 'lowdb/adapters/FileAsync'
6
- import FileSync from 'lowdb/adapters/FileSync'
7
- import xdgBasedir from 'xdg-basedir'
8
-
9
- // 系统配置目录
10
- const configDir = xdgBasedir.config || path.join(os.tmpdir(), '.config')
11
- // cloudbase 配置目录
12
- export const cloudbaseConfigDir = path.join(configDir, '.cloudbase')
13
-
14
- // 确保目录存在
15
-
16
- fse.ensureDirSync(cloudbaseConfigDir)
17
-
18
- export function getAsyncDB(file: string) {
19
- const dbPath = path.join(cloudbaseConfigDir, `${file}.json`)
20
- const adapter = new FileAsync(dbPath)
21
- const db = low(adapter)
22
- return db
23
- }
24
-
25
- export function getSyncDB(file: string) {
26
- const dbPath = path.join(cloudbaseConfigDir, `${file}.json`)
27
- const adapter = new FileSync(dbPath)
28
- const db = low(adapter)
29
- return db
30
- }
31
-
32
- export class LocalStore {
33
- db: any
34
- dbKey: string
35
- defaults: any
36
-
37
- constructor(defaults: any, dbKey = 'common') {
38
- this.defaults = defaults
39
- this.dbKey = dbKey
40
- }
41
-
42
- async getDB() {
43
- const db = this.db || (await getAsyncDB(this.dbKey))
44
- this.db = db
45
- return db
46
- }
47
-
48
- async get(key: string): Promise<any> {
49
- const defaultValue = this.defaults[key]
50
- const db = await this.getDB()
51
- return db.get(key).value() || defaultValue
52
- }
53
-
54
- async set(key: string, value: any) {
55
- const db = await this.getDB()
56
- await db.set(key, value).write()
57
- }
58
-
59
- async push(key: string, value: any) {
60
- const db = await this.getDB()
61
- await db.get(key).push(value).write()
62
- }
63
-
64
- async delete(key) {
65
- const db = await this.getDB()
66
- await db.unset(key).write()
67
- }
68
- }
1
+ import os from 'os'
2
+ import fse from 'fs-extra'
3
+ import low from 'lowdb'
4
+ import path from 'path'
5
+ import FileAsync from 'lowdb/adapters/FileAsync'
6
+ import FileSync from 'lowdb/adapters/FileSync'
7
+ import xdgBasedir from 'xdg-basedir'
8
+
9
+ // 系统配置目录
10
+ const configDir = xdgBasedir.config || path.join(os.tmpdir(), '.config')
11
+ // cloudbase 配置目录
12
+ export const cloudbaseConfigDir = path.join(configDir, '.cloudbase')
13
+
14
+ // 确保目录存在
15
+
16
+ fse.ensureDirSync(cloudbaseConfigDir)
17
+
18
+ export function getAsyncDB(file: string) {
19
+ const dbPath = path.join(cloudbaseConfigDir, `${file}.json`)
20
+ const adapter = new FileAsync(dbPath)
21
+ const db = low(adapter)
22
+ return db
23
+ }
24
+
25
+ export function getSyncDB(file: string) {
26
+ const dbPath = path.join(cloudbaseConfigDir, `${file}.json`)
27
+ const adapter = new FileSync(dbPath)
28
+ const db = low(adapter)
29
+ return db
30
+ }
31
+
32
+ export class LocalStore {
33
+ db: any
34
+ dbKey: string
35
+ defaults: any
36
+
37
+ constructor(defaults: any, dbKey = 'common') {
38
+ this.defaults = defaults
39
+ this.dbKey = dbKey
40
+ }
41
+
42
+ async getDB() {
43
+ const db = this.db || (await getAsyncDB(this.dbKey))
44
+ this.db = db
45
+ return db
46
+ }
47
+
48
+ async get(key: string): Promise<any> {
49
+ const defaultValue = this.defaults[key]
50
+ const db = await this.getDB()
51
+ return db.get(key).value() || defaultValue
52
+ }
53
+
54
+ async set(key: string, value: any) {
55
+ const db = await this.getDB()
56
+ await db.set(key, value).write()
57
+ }
58
+
59
+ async push(key: string, value: any) {
60
+ const db = await this.getDB()
61
+ await db.get(key).push(value).write()
62
+ }
63
+
64
+ async delete(key) {
65
+ const db = await this.getDB()
66
+ await db.unset(key).write()
67
+ }
68
+ }
@@ -1,5 +1,5 @@
1
- export * from './auth'
2
- export * from './db'
3
- export * from './auth'
4
- export * from './usage'
1
+ export * from './auth'
2
+ export * from './db'
3
+ export * from './auth'
4
+ export * from './usage'
5
5
  export * from './common'
@@ -1,12 +1,12 @@
1
- import { LocalStore } from './db'
2
-
3
- const DB_KEY = 'usage'
4
-
5
- export const usageStore = new LocalStore(
6
- {
7
- // 是否同意收集使用数据
8
- agreeCollect: false,
9
- commands: []
10
- },
11
- DB_KEY
12
- )
1
+ import { LocalStore } from './db'
2
+
3
+ const DB_KEY = 'usage'
4
+
5
+ export const usageStore = new LocalStore(
6
+ {
7
+ // 是否同意收集使用数据
8
+ agreeCollect: false,
9
+ commands: []
10
+ },
11
+ DB_KEY
12
+ )
@@ -0,0 +1,28 @@
1
+ import { CloudBaseError } from '@cloudbase/toolbox'
2
+ import { CloudApiService } from './tcbr-cloud-api-request'
3
+
4
+ const tcbrService = CloudApiService.getInstance('tcbr')
5
+
6
+ export async function callTcbrApi(action: string, data: Record<string, any>) {
7
+ try {
8
+ const res = await tcbrService.request(action, data)
9
+ // 返回统一格式的 JSON 结果
10
+ return {
11
+ code: 0,
12
+ errmsg: 'success',
13
+ data: {
14
+ ...res
15
+ }
16
+ }
17
+ } catch (e) {
18
+ // 不直接 throw 因为调用 DescribeCloudRunServerDetail 如果传入了当前不存在的服务名会返回报错
19
+ // 对特殊错误特殊处理
20
+ if (e.code === 'AuthFailure.UnauthorizedOperation') {
21
+ console.log('\n', `requestId: ${e.requestId}`)
22
+ throw new CloudBaseError('您没有权限执行此操作,请检查 CAM 策略\n')
23
+ } else if (e.code === 'LimitExceeded') {
24
+ throw new CloudBaseError(`${e.original.Message}\n`)
25
+ }
26
+ return e
27
+ }
28
+ }
@@ -0,0 +1 @@
1
+ export * from './callTcbrApi'