@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.
- package/.editorconfig +9 -9
- package/.eslintignore +7 -7
- package/.eslintrc +35 -35
- package/.prettierrc.js +29 -29
- package/.vscode/launch.json +16 -16
- package/LICENSE +5 -5
- package/README.md +35 -35
- package/bin/cloudbase.js +5 -5
- package/bin/tcb.js +6 -4
- package/changelog.md +6 -6
- package/jest.config.js +17 -17
- package/lib/commands/account/login.js +18 -18
- package/lib/commands/storage/storage.js +1 -1
- package/lib/env/login.js +7 -7
- package/lib/run/service/deployPackage.js +6 -4
- package/lib/utils/net/http-request.js +4 -4
- package/lib/utils/tcbrApi/tcbr-cloud-api/request.js +3 -3
- package/package.json +16 -16
- package/post-install.js +61 -61
- package/runtime/nodejs/bootstrap.js +255 -255
- package/runtime/nodejs/runtime.js +183 -183
- package/src/auth/index.ts +1 -1
- package/src/auth/login.ts +91 -91
- package/src/auth/logout.ts +7 -7
- package/src/commands/account/index.ts +2 -2
- package/src/commands/account/login.ts +192 -192
- package/src/commands/account/logout.ts +24 -24
- package/src/commands/common.ts +246 -246
- package/src/commands/env/base.ts +90 -90
- package/src/commands/env/create.ts +92 -92
- package/src/commands/env/domain.ts +186 -186
- package/src/commands/env/index.ts +4 -4
- package/src/commands/env/login.ts +235 -235
- package/src/commands/framework/index.ts +124 -124
- package/src/commands/functions/alias/getRoute.ts +76 -76
- package/src/commands/functions/alias/index.ts +2 -2
- package/src/commands/functions/alias/setRoute.ts +82 -82
- package/src/commands/functions/code-download.ts +100 -100
- package/src/commands/functions/code-update.ts +62 -62
- package/src/commands/functions/concurrency/delete.ts +45 -45
- package/src/commands/functions/concurrency/index.ts +2 -2
- package/src/commands/functions/concurrency/list.ts +58 -58
- package/src/commands/functions/concurrency/set.ts +47 -47
- package/src/commands/functions/config-update.ts +76 -76
- package/src/commands/functions/copy.ts +62 -62
- package/src/commands/functions/delete.ts +79 -79
- package/src/commands/functions/deploy.ts +293 -293
- package/src/commands/functions/detail.ts +138 -138
- package/src/commands/functions/index.ts +16 -16
- package/src/commands/functions/invoke.ts +121 -121
- package/src/commands/functions/layer/bind.ts +182 -182
- package/src/commands/functions/layer/common.ts +8 -8
- package/src/commands/functions/layer/create.ts +49 -49
- package/src/commands/functions/layer/delete.ts +73 -73
- package/src/commands/functions/layer/download.ts +92 -92
- package/src/commands/functions/layer/index.ts +7 -7
- package/src/commands/functions/layer/list.ts +94 -94
- package/src/commands/functions/layer/sort.ts +76 -76
- package/src/commands/functions/list.ts +68 -68
- package/src/commands/functions/log.ts +148 -148
- package/src/commands/functions/run.ts +249 -249
- package/src/commands/functions/trigger-create.ts +79 -79
- package/src/commands/functions/trigger-delete.ts +105 -105
- package/src/commands/functions/version/index.ts +1 -1
- package/src/commands/functions/version/list.ts +73 -73
- package/src/commands/functions/version/publish.ts +43 -43
- package/src/commands/gateway/create.ts +109 -109
- package/src/commands/gateway/delete.ts +81 -81
- package/src/commands/gateway/domain.ts +159 -159
- package/src/commands/gateway/index.ts +5 -5
- package/src/commands/gateway/list.ts +76 -76
- package/src/commands/gateway/switch.ts +107 -107
- package/src/commands/helpers/index.ts +2 -2
- package/src/commands/helpers/init.ts +431 -431
- package/src/commands/helpers/new.ts +117 -117
- package/src/commands/helpers/open.ts +67 -67
- package/src/commands/hosting/hosting.ts +360 -360
- package/src/commands/index.ts +13 -13
- package/src/commands/lowcode/app.ts +34 -34
- package/src/commands/lowcode/comps.ts +322 -322
- package/src/commands/lowcode/index.ts +1 -1
- package/src/commands/lowcode/utils.ts +24 -24
- package/src/commands/run/image/index.ts +4 -4
- package/src/commands/run/standalonegateway/common.ts +7 -7
- package/src/commands/run/standalonegateway/create.ts +85 -85
- package/src/commands/run/standalonegateway/destroy.ts +59 -59
- package/src/commands/run/standalonegateway/index.ts +4 -4
- package/src/commands/run/standalonegateway/list.ts +53 -53
- package/src/commands/run/standalonegateway/package.ts +62 -62
- package/src/commands/run/standalonegateway/turn.ts +63 -63
- package/src/commands/run/version/index.ts +4 -4
- package/src/commands/smart.ts +132 -132
- package/src/commands/storage/storage.ts +464 -464
- package/src/commands/third/thirdAttach.ts +49 -49
- package/src/completion/index.ts +13 -13
- package/src/decorators/captureError.ts +25 -25
- package/src/decorators/constants.ts +12 -12
- package/src/decorators/deprecate.ts +25 -25
- package/src/decorators/guard.ts +42 -42
- package/src/decorators/index.ts +7 -7
- package/src/decorators/injectParams.ts +54 -54
- package/src/decorators/params/common.ts +28 -28
- package/src/decorators/params/index.ts +35 -35
- package/src/env/domain.ts +33 -33
- package/src/env/index.ts +63 -63
- package/src/env/login.ts +80 -80
- package/src/error.ts +36 -36
- package/src/function/alias.ts +43 -43
- package/src/function/base.ts +253 -253
- package/src/function/code.ts +55 -55
- package/src/function/concurrency.ts +57 -57
- package/src/function/create.ts +78 -78
- package/src/function/delete.ts +42 -42
- package/src/function/index.ts +10 -10
- package/src/function/layer/attach.ts +68 -68
- package/src/function/layer/create.ts +63 -63
- package/src/function/layer/delete.ts +21 -21
- package/src/function/layer/download.ts +54 -54
- package/src/function/layer/index.ts +7 -7
- package/src/function/layer/list.ts +32 -32
- package/src/function/layer/sort.ts +24 -24
- package/src/function/trigger.ts +97 -97
- package/src/function/update.ts +35 -35
- package/src/function/version.ts +38 -38
- package/src/function/vpc.ts +22 -22
- package/src/gateway/index.ts +137 -137
- package/src/hosting.ts +212 -212
- package/src/index.ts +13 -13
- package/src/logger.ts +17 -17
- package/src/run/create.ts +23 -23
- package/src/run/delete.ts +15 -15
- package/src/run/image/build.ts +36 -36
- package/src/run/image/delete.ts +13 -13
- package/src/run/image/index.ts +3 -3
- package/src/run/image/info.ts +26 -26
- package/src/run/list.ts +29 -29
- package/src/run/repo.ts +24 -24
- package/src/run/service/deployPackage.ts +6 -4
- package/src/run/standalonegateway/create.ts +24 -24
- package/src/run/standalonegateway/destroy.ts +19 -19
- package/src/run/standalonegateway/index.ts +4 -4
- package/src/run/standalonegateway/list.ts +74 -74
- package/src/run/standalonegateway/package/list.ts +24 -24
- package/src/run/standalonegateway/turn/index.ts +1 -1
- package/src/run/standalonegateway/turn/off.ts +19 -19
- package/src/run/standalonegateway/turn/on.ts +19 -19
- package/src/run/version/create.ts +68 -68
- package/src/run/version/delete.ts +15 -15
- package/src/run/version/index.ts +5 -5
- package/src/run/version/list.ts +16 -16
- package/src/run/version/modify.ts +16 -16
- package/src/run/version/repo.ts +27 -27
- package/src/run/version/update.ts +58 -58
- package/src/storage.ts +114 -114
- package/src/third/index.ts +12 -12
- package/src/utils/auth.ts +15 -15
- package/src/utils/cli-table.ts +23 -23
- package/src/utils/config.ts +39 -39
- package/src/utils/env.ts +244 -244
- package/src/utils/fs/del.ts +5 -5
- package/src/utils/fs/index.ts +71 -71
- package/src/utils/function-packer.ts +97 -97
- package/src/utils/log.ts +81 -81
- package/src/utils/net/cloud-api-request.ts +62 -62
- package/src/utils/net/credential.ts +53 -53
- package/src/utils/net/http-request.ts +84 -84
- package/src/utils/net/index.ts +4 -4
- package/src/utils/net/manager-service.ts +36 -36
- package/src/utils/net/proxy.ts +6 -6
- package/src/utils/notice.ts +28 -28
- package/src/utils/output/highlight.ts +5 -5
- package/src/utils/output/index.ts +2 -2
- package/src/utils/output/link.ts +10 -10
- package/src/utils/output/loading.ts +82 -82
- package/src/utils/parallel.ts +82 -82
- package/src/utils/platform/index.ts +2 -2
- package/src/utils/platform/mac.ts +21 -21
- package/src/utils/platform/os.ts +64 -64
- package/src/utils/platform/port.ts +10 -10
- package/src/utils/progress-bar.ts +38 -38
- package/src/utils/prompt/select.ts +59 -59
- package/src/utils/reporter/agree.ts +20 -20
- package/src/utils/reporter/download.ts +26 -26
- package/src/utils/reporter/index.ts +3 -3
- package/src/utils/reporter/usage.ts +20 -20
- package/src/utils/store/auth.ts +49 -49
- package/src/utils/store/common.ts +8 -8
- package/src/utils/store/db.ts +68 -68
- package/src/utils/store/index.ts +4 -4
- package/src/utils/store/usage.ts +12 -12
- package/src/utils/tcbrApi/tcbr-cloud-api/request.ts +13 -13
- package/src/utils/template.ts +170 -170
- package/src/utils/tools/encoding.ts +8 -8
- package/src/utils/tools/index.ts +4 -4
- package/src/utils/tools/object.ts +33 -33
- package/src/utils/tools/time.ts +38 -38
- package/src/utils/tools/uid.ts +19 -19
- package/templates/html/loginFail.html +90 -90
- package/templates/html/loginSuccess.html +86 -86
- package/templates/server/node/_gitignore +54 -54
- package/templates/server/node/cloudbaserc.json +10 -10
- package/templates/server/node/index.js +5 -5
- package/templates/server/node/package.json +9 -9
- package/tsconfig.json +19 -19
- package/tsconfig.test.json +13 -13
- package/.vscode/settings.json +0 -3
|
@@ -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
|
+
}
|
package/src/utils/store/auth.ts
CHANGED
|
@@ -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
|
+
})
|
package/src/utils/store/db.ts
CHANGED
|
@@ -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
|
+
}
|
package/src/utils/store/index.ts
CHANGED
|
@@ -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'
|
package/src/utils/store/usage.ts
CHANGED
|
@@ -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
|
+
)
|
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
import { URL } from 'url'
|
|
2
2
|
import _fetch, { RequestInit } from 'node-fetch'
|
|
3
|
-
import HttpsProxyAgent from 'https-proxy-agent'
|
|
3
|
+
import { HttpsProxyAgent } from 'https-proxy-agent'
|
|
4
4
|
|
|
5
5
|
export const nodeFetch = _fetch
|
|
6
6
|
|
|
7
7
|
// 使用 fetch + 代理
|
|
8
8
|
export async function fetch(url: string, config: RequestInit = {}, proxy = '') {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
if (proxy) {
|
|
10
|
+
config.agent = new HttpsProxyAgent(proxy)
|
|
11
|
+
}
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
// 解决中文编码问题
|
|
14
|
+
const escapeUrl = new URL(url).toString()
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
const res = await _fetch(escapeUrl, config)
|
|
17
|
+
return res.json()
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
export async function fetchStream(url: string, config: RequestInit = {}, proxy = '') {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
if (proxy) {
|
|
22
|
+
config.agent = new HttpsProxyAgent(proxy)
|
|
23
|
+
}
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
const escapeUrl = new URL(url).toString()
|
|
26
26
|
|
|
27
|
-
|
|
27
|
+
return _fetch(escapeUrl, config)
|
|
28
28
|
}
|