surgio 2.25.3 → 3.0.0-alpha.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/LICENSE +1 -1
- package/bin/dev +17 -0
- package/bin/dev.cmd +3 -0
- package/bin/run +8 -0
- package/bin/run.cmd +3 -0
- package/build/base-command.d.ts +19 -0
- package/build/base-command.js +75 -0
- package/build/base-command.js.map +1 -0
- package/build/commands/check.d.ts +10 -0
- package/build/commands/check.js +88 -0
- package/build/commands/check.js.map +1 -0
- package/build/commands/clean-cache.d.ts +6 -0
- package/build/commands/clean-cache.js +29 -0
- package/build/commands/clean-cache.js.map +1 -0
- package/build/commands/doctor.d.ts +6 -0
- package/build/commands/doctor.js +21 -0
- package/build/commands/doctor.js.map +1 -0
- package/build/commands/generate.d.ts +7 -0
- package/build/commands/generate.js +93 -0
- package/build/commands/generate.js.map +1 -0
- package/build/commands/lint.d.ts +6 -0
- package/build/commands/lint.js +36 -0
- package/build/commands/lint.js.map +1 -0
- package/build/commands/new.d.ts +6 -0
- package/build/commands/new.js +36 -0
- package/build/commands/new.js.map +1 -0
- package/build/commands/subscriptions.d.ts +7 -0
- package/build/commands/subscriptions.js +96 -0
- package/build/commands/subscriptions.js.map +1 -0
- package/build/commands/upload.d.ts +6 -0
- package/build/commands/upload.js +89 -0
- package/build/commands/upload.js.map +1 -0
- package/build/config.d.ts +6 -0
- package/build/config.js +151 -0
- package/build/config.js.map +1 -0
- package/build/configurables.d.ts +80 -0
- package/build/configurables.js +52 -0
- package/build/configurables.js.map +1 -0
- package/build/constant/constant.d.ts +16 -16
- package/build/constant/constant.js +3 -13
- package/build/constant/constant.js.map +1 -0
- package/build/constant/env.js +1 -1
- package/build/constant/env.js.map +1 -0
- package/build/constant/error.js +1 -1
- package/build/constant/error.js.map +1 -0
- package/build/constant/index.js +1 -1
- package/build/constant/index.js.map +1 -0
- package/build/generator/artifact.d.ts +302 -67
- package/build/generator/artifact.js +141 -101
- package/build/generator/artifact.js.map +1 -0
- package/build/generator/index.d.ts +2 -0
- package/build/generator/index.js +19 -0
- package/build/generator/index.js.map +1 -0
- package/build/generator/template.js +2 -28
- package/build/generator/template.js.map +1 -0
- package/build/hooks/init.d.ts +3 -0
- package/build/hooks/init.js +33 -0
- package/build/hooks/init.js.map +1 -0
- package/build/index.d.ts +68 -66
- package/build/index.js +11 -51
- package/build/index.js.map +1 -0
- package/build/internal.d.ts +5 -0
- package/build/internal.js +25 -0
- package/build/internal.js.map +1 -0
- package/build/misc/deprecation.d.ts +1 -6
- package/build/misc/deprecation.js +1 -8
- package/build/misc/deprecation.js.map +1 -0
- package/build/misc/flag_cn.d.ts +49 -50
- package/build/misc/flag_cn.js +3 -3
- package/build/misc/flag_cn.js.map +1 -0
- package/build/provider/BlackSSLProvider.d.ts +4 -3
- package/build/provider/BlackSSLProvider.js +28 -16
- package/build/provider/BlackSSLProvider.js.map +1 -0
- package/build/provider/ClashProvider.d.ts +7 -10
- package/build/provider/ClashProvider.js +168 -76
- package/build/provider/ClashProvider.js.map +1 -0
- package/build/provider/CustomProvider.d.ts +4 -3
- package/build/provider/CustomProvider.js +98 -54
- package/build/provider/CustomProvider.js.map +1 -0
- package/build/provider/Provider.d.ts +9 -22
- package/build/provider/Provider.js +34 -69
- package/build/provider/Provider.js.map +1 -0
- package/build/provider/ShadowsocksJsonSubscribeProvider.d.ts +4 -5
- package/build/provider/ShadowsocksJsonSubscribeProvider.js +31 -21
- package/build/provider/ShadowsocksJsonSubscribeProvider.js.map +1 -0
- package/build/provider/ShadowsocksSubscribeProvider.d.ts +5 -8
- package/build/provider/ShadowsocksSubscribeProvider.js +33 -27
- package/build/provider/ShadowsocksSubscribeProvider.js.map +1 -0
- package/build/provider/ShadowsocksrSubscribeProvider.d.ts +5 -8
- package/build/provider/ShadowsocksrSubscribeProvider.js +33 -23
- package/build/provider/ShadowsocksrSubscribeProvider.js.map +1 -0
- package/build/provider/SsdProvider.d.ts +5 -8
- package/build/provider/SsdProvider.js +59 -39
- package/build/provider/SsdProvider.js.map +1 -0
- package/build/provider/TrojanProvider.d.ts +5 -8
- package/build/provider/TrojanProvider.js +40 -30
- package/build/provider/TrojanProvider.js.map +1 -0
- package/build/provider/V2rayNSubscribeProvider.d.ts +4 -5
- package/build/provider/V2rayNSubscribeProvider.js +64 -33
- package/build/provider/V2rayNSubscribeProvider.js.map +1 -0
- package/build/provider/index.d.ts +16 -2
- package/build/provider/index.js +12 -5
- package/build/provider/index.js.map +1 -0
- package/build/provider/types.d.ts +10 -1
- package/build/provider/types.js +1 -1
- package/build/provider/types.js.map +1 -0
- package/build/redis.js +1 -1
- package/build/redis.js.map +1 -0
- package/build/types.d.ts +42 -236
- package/build/types.js +2 -1
- package/build/types.js.map +1 -0
- package/build/utils/cache.js +29 -27
- package/build/utils/cache.js.map +1 -0
- package/build/utils/clash.d.ts +204 -3
- package/build/utils/clash.js +247 -110
- package/build/utils/clash.js.map +1 -0
- package/build/utils/constant.js +1 -1
- package/build/utils/constant.js.map +1 -0
- package/build/utils/dns.js +1 -1
- package/build/utils/dns.js.map +1 -0
- package/build/utils/doctor.d.ts +2 -0
- package/build/utils/doctor.js +38 -0
- package/build/utils/doctor.js.map +1 -0
- package/build/utils/env-flag.js +2 -2
- package/build/utils/env-flag.js.map +1 -0
- package/build/utils/error-helper.d.ts +2 -2
- package/build/utils/error-helper.js +51 -16
- package/build/utils/error-helper.js.map +1 -0
- package/build/utils/errors.d.ts +19 -0
- package/build/utils/errors.js +60 -0
- package/build/utils/errors.js.map +1 -0
- package/build/utils/filter.d.ts +46 -43
- package/build/utils/filter.js +57 -59
- package/build/utils/filter.js.map +1 -0
- package/build/utils/flag.js +6 -6
- package/build/utils/flag.js.map +1 -0
- package/build/utils/http-client.js +38 -5
- package/build/utils/http-client.js.map +1 -0
- package/build/utils/index.d.ts +14 -21
- package/build/utils/index.js +102 -118
- package/build/utils/index.js.map +1 -0
- package/build/utils/linter.js +5 -2
- package/build/utils/linter.js.map +1 -0
- package/build/utils/loon.d.ts +3 -2
- package/build/utils/loon.js +67 -5
- package/build/utils/loon.js.map +1 -0
- package/build/utils/quantumult.d.ts +3 -3
- package/build/utils/quantumult.js +190 -258
- package/build/utils/quantumult.js.map +1 -0
- package/build/utils/relayable-url.js +1 -1
- package/build/utils/relayable-url.js.map +1 -0
- package/build/utils/remote-snippet.js +37 -14
- package/build/utils/remote-snippet.js.map +1 -0
- package/build/utils/ss.js +27 -17
- package/build/utils/ss.js.map +1 -0
- package/build/utils/ssr.js +3 -4
- package/build/utils/ssr.js.map +1 -0
- package/build/utils/subscription.js +10 -9
- package/build/utils/subscription.js.map +1 -0
- package/build/utils/surfboard.d.ts +3 -2
- package/build/utils/surfboard.js +142 -126
- package/build/utils/surfboard.js.map +1 -0
- package/build/utils/surge.d.ts +4 -2
- package/build/utils/surge.js +328 -300
- package/build/utils/surge.js.map +1 -0
- package/build/utils/time.d.ts +1 -0
- package/build/utils/time.js +6 -0
- package/build/utils/time.js.map +1 -0
- package/build/utils/tmp-helper.js +8 -1
- package/build/utils/tmp-helper.js.map +1 -0
- package/build/utils/trojan.js +19 -11
- package/build/utils/trojan.js.map +1 -0
- package/build/validators/artifact.d.ts +35 -0
- package/build/validators/artifact.js +17 -0
- package/build/validators/artifact.js.map +1 -0
- package/build/validators/common.d.ts +121 -0
- package/build/validators/common.js +65 -0
- package/build/validators/common.js.map +1 -0
- package/build/validators/filter.d.ts +10 -0
- package/build/validators/filter.js +15 -0
- package/build/validators/filter.js.map +1 -0
- package/build/validators/hooks.d.ts +9 -0
- package/build/validators/hooks.js +11 -0
- package/build/validators/hooks.js.map +1 -0
- package/build/validators/http.d.ts +137 -0
- package/build/validators/http.js +19 -0
- package/build/validators/http.js.map +1 -0
- package/build/validators/index.d.ts +15 -0
- package/build/validators/index.js +32 -0
- package/build/validators/index.js.map +1 -0
- package/build/validators/provider.d.ts +114 -0
- package/build/validators/provider.js +42 -0
- package/build/validators/provider.js.map +1 -0
- package/build/validators/shadowsocks.d.ts +86 -0
- package/build/validators/shadowsocks.js +29 -0
- package/build/validators/shadowsocks.js.map +1 -0
- package/build/validators/shadowsocksr.d.ts +77 -0
- package/build/validators/shadowsocksr.js +19 -0
- package/build/validators/shadowsocksr.js.map +1 -0
- package/build/validators/snell.d.ts +71 -0
- package/build/validators/snell.js +17 -0
- package/build/validators/snell.js.map +1 -0
- package/build/validators/socks5.d.ts +77 -0
- package/build/validators/socks5.js +19 -0
- package/build/validators/socks5.js.map +1 -0
- package/build/validators/surgio-config.d.ts +307 -0
- package/build/validators/surgio-config.js +95 -0
- package/build/validators/surgio-config.js.map +1 -0
- package/build/validators/trojan.d.ts +86 -0
- package/build/validators/trojan.js +15 -0
- package/build/validators/trojan.js.map +1 -0
- package/build/validators/tuic.d.ts +301 -0
- package/build/validators/tuic.js +21 -0
- package/build/validators/tuic.js.map +1 -0
- package/build/validators/vmess.d.ts +92 -0
- package/build/validators/vmess.js +29 -0
- package/build/validators/vmess.js.map +1 -0
- package/build/validators/wireguard.d.ts +123 -0
- package/build/validators/wireguard.js +26 -0
- package/build/validators/wireguard.js.map +1 -0
- package/config.d.ts +1 -0
- package/config.js +1 -0
- package/constant.d.ts +1 -0
- package/constant.js +1 -0
- package/generator.d.ts +1 -0
- package/generator.js +1 -0
- package/hygen-template/artifact/new/index.js +15 -15
- package/hygen-template/provider/new/index.js +8 -7
- package/hygen-template/template/new/index.js +3 -3
- package/index.d.ts +1 -0
- package/index.js +1 -0
- package/internal.d.ts +1 -0
- package/internal.js +1 -0
- package/package.json +120 -80
- package/provider.d.ts +1 -0
- package/provider.js +1 -0
- package/utils.d.ts +1 -0
- package/utils.js +1 -0
- package/bin/surgio.js +0 -8
- package/build/command/check.d.ts +0 -9
- package/build/command/check.js +0 -79
- package/build/command/clean-cache.d.ts +0 -8
- package/build/command/clean-cache.js +0 -43
- package/build/command/doctor.d.ts +0 -9
- package/build/command/doctor.js +0 -63
- package/build/command/generate.d.ts +0 -8
- package/build/command/generate.js +0 -64
- package/build/command/lint.d.ts +0 -7
- package/build/command/lint.js +0 -42
- package/build/command/new.d.ts +0 -7
- package/build/command/new.js +0 -44
- package/build/command/subscriptions.d.ts +0 -10
- package/build/command/subscriptions.js +0 -87
- package/build/command/upload.d.ts +0 -9
- package/build/command/upload.js +0 -101
- package/build/generate.d.ts +0 -4
- package/build/generate.js +0 -75
- package/build/utils/command.d.ts +0 -2
- package/build/utils/command.js +0 -23
- package/build/utils/config.d.ts +0 -6
- package/build/utils/config.js +0 -245
- package/build/utils/patch-proxy.d.ts +0 -1
- package/build/utils/patch-proxy.js +0 -19
- package/build/utils/v2ray.d.ts +0 -4
- package/build/utils/v2ray.js +0 -41
package/LICENSE
CHANGED
package/bin/dev
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
const oclif = require('@oclif/core');
|
|
4
|
+
const path = require('path');
|
|
5
|
+
|
|
6
|
+
const project = path.join(__dirname, '..', 'tsconfig.json');
|
|
7
|
+
|
|
8
|
+
// In dev mode -> use ts-node and dev plugins
|
|
9
|
+
process.env.NODE_ENV = 'development';
|
|
10
|
+
|
|
11
|
+
require('ts-node').register({ project });
|
|
12
|
+
|
|
13
|
+
// In dev mode, always show stack traces
|
|
14
|
+
oclif.settings.debug = true;
|
|
15
|
+
|
|
16
|
+
// Start the CLI
|
|
17
|
+
oclif.run().then(oclif.flush).catch(oclif.Errors.handle);
|
package/bin/dev.cmd
ADDED
package/bin/run
ADDED
package/bin/run.cmd
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import 'source-map-support/register';
|
|
2
|
+
import { Command, Interfaces, Config } from '@oclif/core';
|
|
3
|
+
import ora from 'ora';
|
|
4
|
+
import { CommandConfig } from './types';
|
|
5
|
+
export type Flags<T extends typeof Command> = Interfaces.InferredFlags<(typeof BaseCommand)['baseFlags'] & T['flags']>;
|
|
6
|
+
export type Args<T extends typeof Command> = Interfaces.InferredArgs<T['args']>;
|
|
7
|
+
declare abstract class BaseCommand<T extends typeof Command> extends Command {
|
|
8
|
+
protected flags: Flags<T>;
|
|
9
|
+
protected args: Args<T>;
|
|
10
|
+
protected surgioConfig: CommandConfig;
|
|
11
|
+
ora: ora.Ora;
|
|
12
|
+
projectDir: string;
|
|
13
|
+
constructor(argv: string[], config: Config);
|
|
14
|
+
init(): Promise<void>;
|
|
15
|
+
protected catch(err: Error & {
|
|
16
|
+
exitCode?: number;
|
|
17
|
+
}): Promise<any>;
|
|
18
|
+
}
|
|
19
|
+
export default BaseCommand;
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
require("source-map-support/register");
|
|
7
|
+
const core_1 = require("@oclif/core");
|
|
8
|
+
const logger_1 = require("@surgio/logger");
|
|
9
|
+
const ora_1 = __importDefault(require("ora"));
|
|
10
|
+
const path_1 = require("path");
|
|
11
|
+
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
12
|
+
const dotenv_1 = __importDefault(require("dotenv"));
|
|
13
|
+
const config_1 = require("./config");
|
|
14
|
+
const error_helper_1 = require("./utils/error-helper");
|
|
15
|
+
class BaseCommand extends core_1.Command {
|
|
16
|
+
flags;
|
|
17
|
+
args;
|
|
18
|
+
surgioConfig;
|
|
19
|
+
ora = (0, ora_1.default)({
|
|
20
|
+
stream: process.stdout,
|
|
21
|
+
});
|
|
22
|
+
projectDir;
|
|
23
|
+
constructor(argv, config) {
|
|
24
|
+
super(argv, config);
|
|
25
|
+
}
|
|
26
|
+
async init() {
|
|
27
|
+
await super.init();
|
|
28
|
+
const { args, flags } = await this.parse({
|
|
29
|
+
flags: this.ctor.flags,
|
|
30
|
+
baseFlags: super.ctor.baseFlags,
|
|
31
|
+
args: this.ctor.args,
|
|
32
|
+
strict: this.ctor.strict,
|
|
33
|
+
});
|
|
34
|
+
this.flags = flags;
|
|
35
|
+
this.args = args;
|
|
36
|
+
// istanbul ignore next
|
|
37
|
+
if (flags.verbose) {
|
|
38
|
+
logger_1.transports.console.level = 'debug';
|
|
39
|
+
}
|
|
40
|
+
if (flags.project.startsWith('.')) {
|
|
41
|
+
flags.project = (0, path_1.resolve)(process.cwd(), flags.project);
|
|
42
|
+
}
|
|
43
|
+
const envPath = (0, path_1.resolve)(flags.project, './.env');
|
|
44
|
+
// istanbul ignore next
|
|
45
|
+
if (fs_extra_1.default.existsSync(envPath)) {
|
|
46
|
+
dotenv_1.default.config({ path: envPath });
|
|
47
|
+
}
|
|
48
|
+
this.projectDir = flags.project;
|
|
49
|
+
this.surgioConfig = await (0, config_1.loadConfig)(this.projectDir);
|
|
50
|
+
}
|
|
51
|
+
async catch(err) {
|
|
52
|
+
if (this.ora.isSpinning) {
|
|
53
|
+
this.ora.fail();
|
|
54
|
+
}
|
|
55
|
+
await error_helper_1.errorHandler.call(this, err);
|
|
56
|
+
this.exit(err.exitCode || 1);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
BaseCommand.enableJsonFlag = true;
|
|
60
|
+
BaseCommand.baseFlags = {
|
|
61
|
+
project: core_1.Flags.string({
|
|
62
|
+
char: 'p',
|
|
63
|
+
description: 'Surgio 配置目录',
|
|
64
|
+
default: './',
|
|
65
|
+
helpGroup: 'GLOBAL',
|
|
66
|
+
}),
|
|
67
|
+
verbose: core_1.Flags.boolean({
|
|
68
|
+
char: 'V',
|
|
69
|
+
description: '打印调试日志',
|
|
70
|
+
default: false,
|
|
71
|
+
helpGroup: 'GLOBAL',
|
|
72
|
+
}),
|
|
73
|
+
};
|
|
74
|
+
exports.default = BaseCommand;
|
|
75
|
+
//# sourceMappingURL=base-command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-command.js","sourceRoot":"","sources":["../src/base-command.ts"],"names":[],"mappings":";;;;;AAAA,uCAAoC;AACpC,sCAAgE;AAChE,2CAA2C;AAC3C,8CAAqB;AACrB,+BAA8B;AAC9B,wDAAyB;AACzB,oDAA2B;AAG3B,qCAAqC;AACrC,uDAAmD;AAOnD,MAAe,WAAsC,SAAQ,cAAO;IACxD,KAAK,CAAW;IAChB,IAAI,CAAU;IACd,YAAY,CAAgB;IAC/B,GAAG,GAAG,IAAA,aAAG,EAAC;QACf,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAA;IACK,UAAU,CAAS;IAE1B,YAAY,IAAc,EAAE,MAAc;QACxC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IACrB,CAAC;IAEM,KAAK,CAAC,IAAI;QACf,MAAM,KAAK,CAAC,IAAI,EAAE,CAAA;QAElB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC;YACvC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK;YACtB,SAAS,EAAG,KAAK,CAAC,IAA2B,CAAC,SAAS;YACvD,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;YACpB,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;SACzB,CAAC,CAAA;QAEF,IAAI,CAAC,KAAK,GAAG,KAAiB,CAAA;QAC9B,IAAI,CAAC,IAAI,GAAG,IAAe,CAAA;QAE3B,uBAAuB;QACvB,IAAI,KAAK,CAAC,OAAO,EAAE;YACjB,mBAAU,CAAC,OAAO,CAAC,KAAK,GAAG,OAAO,CAAA;SACnC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;YACjC,KAAK,CAAC,OAAO,GAAG,IAAA,cAAO,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;SACtD;QAED,MAAM,OAAO,GAAG,IAAA,cAAO,EAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;QAEhD,uBAAuB;QACvB,IAAI,kBAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;YAC1B,gBAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;SACjC;QAED,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,OAAO,CAAA;QAC/B,IAAI,CAAC,YAAY,GAAG,MAAM,IAAA,mBAAU,EAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IACvD,CAAC;IAES,KAAK,CAAC,KAAK,CAAC,GAAkC;QACtD,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE;YACvB,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;SAChB;QACD,MAAM,2BAAY,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QAClC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAA;IAC9B,CAAC;CACF;AAED,WAAW,CAAC,cAAc,GAAG,IAAI,CAAA;AACjC,WAAW,CAAC,SAAS,GAAG;IACtB,OAAO,EAAE,YAAK,CAAC,MAAM,CAAC;QACpB,IAAI,EAAE,GAAG;QACT,WAAW,EAAE,aAAa;QAC1B,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,QAAQ;KACpB,CAAC;IACF,OAAO,EAAE,YAAK,CAAC,OAAO,CAAC;QACrB,IAAI,EAAE,GAAG;QACT,WAAW,EAAE,QAAQ;QACrB,OAAO,EAAE,KAAK;QACd,SAAS,EAAE,QAAQ;KACpB,CAAC;CACH,CAAA;AAED,kBAAe,WAAW,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import BaseCommand from '../base-command';
|
|
2
|
+
declare class CheckCommand extends BaseCommand<typeof CheckCommand> {
|
|
3
|
+
static description: string;
|
|
4
|
+
static args: {
|
|
5
|
+
provider: import("@oclif/core/lib/interfaces/parser").Arg<string, Record<string, unknown>>;
|
|
6
|
+
};
|
|
7
|
+
run(): Promise<void>;
|
|
8
|
+
private getNodeList;
|
|
9
|
+
}
|
|
10
|
+
export default CheckCommand;
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
// istanbul ignore file
|
|
30
|
+
const core_1 = require("@oclif/core");
|
|
31
|
+
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
32
|
+
const path_1 = __importDefault(require("path"));
|
|
33
|
+
const inquirer_1 = __importDefault(require("inquirer"));
|
|
34
|
+
const base_command_1 = __importDefault(require("../base-command"));
|
|
35
|
+
const redis_1 = __importDefault(require("../redis"));
|
|
36
|
+
const config_1 = require("../config");
|
|
37
|
+
const provider_1 = require("../provider");
|
|
38
|
+
class CheckCommand extends base_command_1.default {
|
|
39
|
+
static description = '查询 Provider';
|
|
40
|
+
static args = {
|
|
41
|
+
provider: core_1.Args.string({
|
|
42
|
+
description: '发起检查的 Provider',
|
|
43
|
+
required: true,
|
|
44
|
+
}),
|
|
45
|
+
};
|
|
46
|
+
async run() {
|
|
47
|
+
const nodeList = await this.getNodeList(this.args.provider);
|
|
48
|
+
if (!process.stdin.isTTY) {
|
|
49
|
+
console.log(JSON.stringify(nodeList, null, 2));
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
const answers = await inquirer_1.default.prompt([
|
|
53
|
+
{
|
|
54
|
+
type: 'list',
|
|
55
|
+
name: 'node',
|
|
56
|
+
message: '请选择节点',
|
|
57
|
+
choices: nodeList.map((node) => {
|
|
58
|
+
const name = 'hostname' in node && 'port' in node
|
|
59
|
+
? `${node.nodeName} - ${node.hostname}:${node.port}`
|
|
60
|
+
: node.nodeName;
|
|
61
|
+
return {
|
|
62
|
+
name,
|
|
63
|
+
value: node,
|
|
64
|
+
};
|
|
65
|
+
}),
|
|
66
|
+
},
|
|
67
|
+
]);
|
|
68
|
+
console.log(JSON.stringify(answers.node, null, 2));
|
|
69
|
+
await redis_1.default.destroyRedis();
|
|
70
|
+
}
|
|
71
|
+
async getNodeList(providerName) {
|
|
72
|
+
core_1.ux.action.start('正在获取 Provider 信息');
|
|
73
|
+
const config = (0, config_1.getConfig)();
|
|
74
|
+
const filePath = path_1.default.resolve(config.providerDir, `./${providerName}.js`);
|
|
75
|
+
const file = fs_extra_1.default.existsSync(filePath)
|
|
76
|
+
? await Promise.resolve(`${filePath}`).then(s => __importStar(require(s)))
|
|
77
|
+
: new Error('找不到该 Provider');
|
|
78
|
+
if (file instanceof Error) {
|
|
79
|
+
throw file;
|
|
80
|
+
}
|
|
81
|
+
const provider = await (0, provider_1.getProvider)(providerName, file.default);
|
|
82
|
+
const nodeList = await provider.getNodeList();
|
|
83
|
+
core_1.ux.action.stop();
|
|
84
|
+
return nodeList;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
exports.default = CheckCommand;
|
|
88
|
+
//# sourceMappingURL=check.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uBAAuB;AACvB,sCAAsC;AACtC,wDAAyB;AACzB,gDAAuB;AACvB,wDAA+B;AAE/B,mEAAyC;AACzC,qDAA4B;AAC5B,sCAAqC;AACrC,0CAAyC;AAEzC,MAAM,YAAa,SAAQ,sBAAgC;IACzD,MAAM,CAAC,WAAW,GAAG,aAAa,CAAA;IAElC,MAAM,CAAC,IAAI,GAAG;QACZ,QAAQ,EAAE,WAAI,CAAC,MAAM,CAAC;YACpB,WAAW,EAAE,gBAAgB;YAC7B,QAAQ,EAAE,IAAI;SACf,CAAC;KACH,CAAA;IAEM,KAAK,CAAC,GAAG;QACd,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAE3D,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE;YACxB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;YAC9C,OAAM;SACP;QAED,MAAM,OAAO,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;YACpC;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,OAAO;gBAChB,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;oBAC7B,MAAM,IAAI,GACR,UAAU,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI;wBAClC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,MAAM,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE;wBACpD,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAA;oBAEnB,OAAO;wBACL,IAAI;wBACJ,KAAK,EAAE,IAAI;qBACZ,CAAA;gBACH,CAAC,CAAC;aACH;SACF,CAAC,CAAA;QAEF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;QAElD,MAAM,eAAK,CAAC,YAAY,EAAE,CAAA;IAC5B,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,YAAoB;QAC5C,SAAE,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAA;QAEnC,MAAM,MAAM,GAAG,IAAA,kBAAS,GAAE,CAAA;QAC1B,MAAM,QAAQ,GAAG,cAAI,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,YAAY,KAAK,CAAC,CAAA;QACzE,MAAM,IAAI,GAAgB,kBAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;YAC/C,CAAC,CAAC,yBAAa,QAAQ,uCAAC;YACxB,CAAC,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,CAAA;QAE9B,IAAI,IAAI,YAAY,KAAK,EAAE;YACzB,MAAM,IAAI,CAAA;SACX;QAED,MAAM,QAAQ,GAAG,MAAM,IAAA,sBAAW,EAAC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;QAC9D,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAA;QAE7C,SAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;QAEhB,OAAO,QAAQ,CAAA;IACjB,CAAC;;AAGH,kBAAe,YAAY,CAAA"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
// istanbul ignore file
|
|
7
|
+
const core_1 = require("@oclif/core");
|
|
8
|
+
const os_1 = __importDefault(require("os"));
|
|
9
|
+
const path_1 = __importDefault(require("path"));
|
|
10
|
+
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
11
|
+
const base_command_1 = __importDefault(require("../base-command"));
|
|
12
|
+
const constant_1 = require("../constant");
|
|
13
|
+
const redis_1 = __importDefault(require("../redis"));
|
|
14
|
+
const cache_1 = require("../utils/cache");
|
|
15
|
+
class CleanCacheCommand extends base_command_1.default {
|
|
16
|
+
static description = '清除缓存';
|
|
17
|
+
async run() {
|
|
18
|
+
const tmpDir = path_1.default.join(os_1.default.tmpdir(), constant_1.TMP_FOLDER_NAME);
|
|
19
|
+
core_1.ux.action.start('正在清除缓存');
|
|
20
|
+
if (fs_extra_1.default.existsSync(tmpDir)) {
|
|
21
|
+
await fs_extra_1.default.remove(tmpDir);
|
|
22
|
+
}
|
|
23
|
+
await (0, cache_1.cleanCaches)();
|
|
24
|
+
core_1.ux.action.stop();
|
|
25
|
+
await redis_1.default.destroyRedis();
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
exports.default = CleanCacheCommand;
|
|
29
|
+
//# sourceMappingURL=clean-cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clean-cache.js","sourceRoot":"","sources":["../../src/commands/clean-cache.ts"],"names":[],"mappings":";;;;;AAAA,uBAAuB;AACvB,sCAAgC;AAChC,4CAAmB;AACnB,gDAAuB;AACvB,wDAAyB;AAEzB,mEAAyC;AACzC,0CAA6C;AAC7C,qDAA4B;AAC5B,0CAA4C;AAE5C,MAAM,iBAAkB,SAAQ,sBAAqC;IACnE,MAAM,CAAC,WAAW,GAAG,MAAM,CAAA;IAEpB,KAAK,CAAC,GAAG;QACd,MAAM,MAAM,GAAG,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,MAAM,EAAE,EAAE,0BAAe,CAAC,CAAA;QAEtD,SAAE,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QAEzB,IAAI,kBAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;YACzB,MAAM,kBAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;SACxB;QAED,MAAM,IAAA,mBAAW,GAAE,CAAA;QAEnB,SAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;QAEhB,MAAM,eAAK,CAAC,YAAY,EAAE,CAAA;IAC5B,CAAC;;AAGH,kBAAe,iBAAiB,CAAA"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
// istanbul ignore file
|
|
7
|
+
const base_command_1 = __importDefault(require("../base-command"));
|
|
8
|
+
const redis_1 = __importDefault(require("../redis"));
|
|
9
|
+
const doctor_1 = require("../utils/doctor");
|
|
10
|
+
class DoctorCommand extends base_command_1.default {
|
|
11
|
+
static description = '检查运行环境';
|
|
12
|
+
async run() {
|
|
13
|
+
const doctorInfo = await (0, doctor_1.generateDoctorInfo)(this.projectDir, this.config.pjson);
|
|
14
|
+
doctorInfo.forEach((item) => {
|
|
15
|
+
console.log(item);
|
|
16
|
+
});
|
|
17
|
+
await redis_1.default.destroyRedis();
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.default = DoctorCommand;
|
|
21
|
+
//# sourceMappingURL=doctor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":";;;;;AAAA,uBAAuB;AACvB,mEAAyC;AACzC,qDAA4B;AAC5B,4CAAoD;AAEpD,MAAM,aAAc,SAAQ,sBAAiC;IAC3D,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAA;IAEtB,KAAK,CAAC,GAAG;QACd,MAAM,UAAU,GAAG,MAAM,IAAA,2BAAkB,EACzC,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAClB,CAAA;QAED,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC1B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACnB,CAAC,CAAC,CAAA;QAEF,MAAM,eAAK,CAAC,YAAY,EAAE,CAAA;IAC5B,CAAC;;AAGH,kBAAe,aAAa,CAAA"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const core_1 = require("@oclif/core");
|
|
7
|
+
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const base_command_1 = __importDefault(require("../base-command"));
|
|
10
|
+
const generator_1 = require("../generator");
|
|
11
|
+
const redis_1 = __importDefault(require("../redis"));
|
|
12
|
+
const config_1 = require("../config");
|
|
13
|
+
const linter_1 = require("../utils/linter");
|
|
14
|
+
const utils_1 = require("../utils");
|
|
15
|
+
class GenerateCommand extends base_command_1.default {
|
|
16
|
+
static description = '生成规则';
|
|
17
|
+
async run() {
|
|
18
|
+
if (!this.flags['skip-lint']) {
|
|
19
|
+
const result = await (0, linter_1.checkAndFix)(this.projectDir);
|
|
20
|
+
if (!result) {
|
|
21
|
+
throw new Error('JS 语法检查不通过,请根据提示修改文件(参考 https://url.royli.dev/SeB6m)');
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
if (this.flags.output) {
|
|
25
|
+
(0, config_1.setConfig)('output', this.flags.output);
|
|
26
|
+
}
|
|
27
|
+
await this.generate(this.flags['skip-fail'], this.flags['cache-snippet']);
|
|
28
|
+
await redis_1.default.destroyRedis();
|
|
29
|
+
}
|
|
30
|
+
async generate(skipFail, cacheSnippet) {
|
|
31
|
+
this.ora.info('开始生成规则');
|
|
32
|
+
const config = this.surgioConfig;
|
|
33
|
+
const artifactList = config.artifacts;
|
|
34
|
+
const distPath = config.output;
|
|
35
|
+
const remoteSnippetsConfig = config.remoteSnippets || [];
|
|
36
|
+
const remoteSnippetList = await (0, utils_1.loadRemoteSnippetList)(remoteSnippetsConfig, cacheSnippet);
|
|
37
|
+
const templateEngine = (0, generator_1.getEngine)(config.templateDir);
|
|
38
|
+
await fs_extra_1.default.mkdirp(distPath);
|
|
39
|
+
for (const artifact of artifactList) {
|
|
40
|
+
this.ora.start(`正在生成规则 ${artifact.name}`);
|
|
41
|
+
try {
|
|
42
|
+
const artifactInstance = new generator_1.Artifact(config, artifact, {
|
|
43
|
+
remoteSnippetList,
|
|
44
|
+
});
|
|
45
|
+
artifactInstance.once('initProvider:end', () => {
|
|
46
|
+
this.ora.text = `已处理 Provider ${artifactInstance.initProgress}/${artifactInstance.providerNameList.length}...`;
|
|
47
|
+
});
|
|
48
|
+
await artifactInstance.init();
|
|
49
|
+
const result = artifactInstance.render(templateEngine);
|
|
50
|
+
const destFilePath = path_1.default.join(config.output, artifact.name);
|
|
51
|
+
if (artifact.destDir) {
|
|
52
|
+
fs_extra_1.default.accessSync(artifact.destDir, fs_extra_1.default.constants.W_OK);
|
|
53
|
+
await fs_extra_1.default.writeFile(path_1.default.join(artifact.destDir, artifact.name), result);
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
await fs_extra_1.default.writeFile(destFilePath, result);
|
|
57
|
+
}
|
|
58
|
+
this.ora.succeed(`规则 ${artifact.name} 生成成功`);
|
|
59
|
+
}
|
|
60
|
+
catch (err) {
|
|
61
|
+
this.ora.fail(`规则 ${artifact.name} 生成失败`);
|
|
62
|
+
// istanbul ignore next
|
|
63
|
+
if (skipFail && err instanceof Error) {
|
|
64
|
+
console.error(err.stack || err);
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
throw err;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
this.ora.succeed('规则生成成功');
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
GenerateCommand.flags = {
|
|
75
|
+
output: core_1.Flags.string({
|
|
76
|
+
char: 'o',
|
|
77
|
+
description: '生成规则的目录',
|
|
78
|
+
}),
|
|
79
|
+
'cache-snippet': core_1.Flags.boolean({
|
|
80
|
+
default: false,
|
|
81
|
+
description: '缓存远程片段',
|
|
82
|
+
}),
|
|
83
|
+
'skip-fail': core_1.Flags.boolean({
|
|
84
|
+
default: false,
|
|
85
|
+
description: '跳过生成失败的 Artifact',
|
|
86
|
+
}),
|
|
87
|
+
'skip-lint': core_1.Flags.boolean({
|
|
88
|
+
default: false,
|
|
89
|
+
description: '跳过代码检查',
|
|
90
|
+
}),
|
|
91
|
+
};
|
|
92
|
+
exports.default = GenerateCommand;
|
|
93
|
+
//# sourceMappingURL=generate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
// istanbul ignore file
|
|
7
|
+
const core_1 = require("@oclif/core");
|
|
8
|
+
const base_command_1 = __importDefault(require("../base-command"));
|
|
9
|
+
const linter_1 = require("../utils/linter");
|
|
10
|
+
class LintCommand extends base_command_1.default {
|
|
11
|
+
static description = '运行 JS 语法检查';
|
|
12
|
+
async run() {
|
|
13
|
+
let result;
|
|
14
|
+
if (this.flags.fix) {
|
|
15
|
+
result = await (0, linter_1.checkAndFix)(this.projectDir);
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
result = await (0, linter_1.check)(this.projectDir);
|
|
19
|
+
}
|
|
20
|
+
if (!result) {
|
|
21
|
+
console.warn('⚠️ JS 语法检查不通过,请根据提示修改文件(可添加参数 --fix 自动修复部分错误, 参考 https://url.royli.dev/SeB6m)');
|
|
22
|
+
process.exit(1);
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
console.log('✅ JS 语法检查通过');
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
LintCommand.flags = {
|
|
30
|
+
fix: core_1.Flags.boolean({
|
|
31
|
+
default: false,
|
|
32
|
+
description: '自动修复部分 Lint 错误',
|
|
33
|
+
}),
|
|
34
|
+
};
|
|
35
|
+
exports.default = LintCommand;
|
|
36
|
+
//# sourceMappingURL=lint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lint.js","sourceRoot":"","sources":["../../src/commands/lint.ts"],"names":[],"mappings":";;;;;AAAA,uBAAuB;AACvB,sCAAmC;AAEnC,mEAAyC;AACzC,4CAAoD;AAEpD,MAAM,WAAY,SAAQ,sBAA+B;IACvD,MAAM,CAAC,WAAW,GAAG,YAAY,CAAA;IAE1B,KAAK,CAAC,GAAG;QACd,IAAI,MAAM,CAAA;QAEV,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;YAClB,MAAM,GAAG,MAAM,IAAA,oBAAW,EAAC,IAAI,CAAC,UAAU,CAAC,CAAA;SAC5C;aAAM;YACL,MAAM,GAAG,MAAM,IAAA,cAAK,EAAC,IAAI,CAAC,UAAU,CAAC,CAAA;SACtC;QAED,IAAI,CAAC,MAAM,EAAE;YACX,OAAO,CAAC,IAAI,CACV,gFAAgF,CACjF,CAAA;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;SAChB;aAAM;YACL,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;SAC5B;IACH,CAAC;;AAGH,WAAW,CAAC,KAAK,GAAG;IAClB,GAAG,EAAE,YAAK,CAAC,OAAO,CAAC;QACjB,OAAO,EAAE,KAAK;QACd,WAAW,EAAE,gBAAgB;KAC9B,CAAC;CACH,CAAA;AAED,kBAAe,WAAW,CAAA"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
// istanbul ignore file
|
|
7
|
+
const core_1 = require("@oclif/core");
|
|
8
|
+
const path_1 = require("path");
|
|
9
|
+
const hygen_1 = require("@royli/hygen");
|
|
10
|
+
const base_command_1 = __importDefault(require("../base-command"));
|
|
11
|
+
const defaultTemplates = (0, path_1.join)(__dirname, '../../hygen-template');
|
|
12
|
+
class NewCommand extends base_command_1.default {
|
|
13
|
+
static description = '新建文件助手';
|
|
14
|
+
async run() {
|
|
15
|
+
const args = [...this.argv].concat('new'); // [type] new ...
|
|
16
|
+
await (0, hygen_1.runner)(args, {
|
|
17
|
+
templates: defaultTemplates,
|
|
18
|
+
cwd: this.projectDir,
|
|
19
|
+
logger: new hygen_1.Logger(console.log.bind(console)),
|
|
20
|
+
createPrompter: () => require('inquirer'),
|
|
21
|
+
exec: (action, body) => {
|
|
22
|
+
const opts = body && body.length > 0 ? { input: body } : {};
|
|
23
|
+
return require('execa').shell(action, opts);
|
|
24
|
+
},
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
NewCommand.args = {
|
|
29
|
+
type: core_1.Args.custom({
|
|
30
|
+
description: '文件类型',
|
|
31
|
+
required: true,
|
|
32
|
+
options: ['provider', 'template', 'artifact'],
|
|
33
|
+
})(),
|
|
34
|
+
};
|
|
35
|
+
exports.default = NewCommand;
|
|
36
|
+
//# sourceMappingURL=new.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"new.js","sourceRoot":"","sources":["../../src/commands/new.ts"],"names":[],"mappings":";;;;;AAAA,uBAAuB;AACvB,sCAAkC;AAClC,+BAA2B;AAC3B,wCAA6C;AAE7C,mEAAyC;AACzC,MAAM,gBAAgB,GAAG,IAAA,WAAI,EAAC,SAAS,EAAE,sBAAsB,CAAC,CAAA;AAEhE,MAAM,UAAW,SAAQ,sBAA8B;IACrD,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAA;IAEtB,KAAK,CAAC,GAAG;QACd,MAAM,IAAI,GAAa,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA,CAAC,iBAAiB;QAErE,MAAM,IAAA,cAAM,EAAC,IAAI,EAAE;YACjB,SAAS,EAAE,gBAAgB;YAC3B,GAAG,EAAE,IAAI,CAAC,UAAU;YACpB,MAAM,EAAE,IAAI,cAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC7C,cAAc,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC;YACzC,IAAI,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;gBACrB,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;gBAC3D,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;YAC7C,CAAC;SACF,CAAC,CAAA;IACJ,CAAC;;AAGH,UAAU,CAAC,IAAI,GAAG;IAChB,IAAI,EAAE,WAAI,CAAC,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM;QACnB,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC;KAC9C,CAAC,EAAE;CACL,CAAA;AAED,kBAAe,UAAU,CAAA"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
// istanbul ignore file
|
|
30
|
+
const fs_1 = require("fs");
|
|
31
|
+
const path_1 = require("path");
|
|
32
|
+
const logger_1 = require("@surgio/logger");
|
|
33
|
+
const base_command_1 = __importDefault(require("../base-command"));
|
|
34
|
+
const redis_1 = __importDefault(require("../redis"));
|
|
35
|
+
const provider_1 = require("../provider");
|
|
36
|
+
const utils_1 = require("../utils");
|
|
37
|
+
const logger = (0, logger_1.createLogger)({
|
|
38
|
+
service: 'surgio:SubscriptionsCommand',
|
|
39
|
+
});
|
|
40
|
+
class SubscriptionsCommand extends base_command_1.default {
|
|
41
|
+
static description = '查询订阅信息';
|
|
42
|
+
async run() {
|
|
43
|
+
const providerList = await this.listProviders();
|
|
44
|
+
for (const provider of providerList) {
|
|
45
|
+
if (provider.supportGetSubscriptionUserInfo) {
|
|
46
|
+
const userInfo = await provider.getSubscriptionUserInfo();
|
|
47
|
+
if (userInfo) {
|
|
48
|
+
const format = (0, utils_1.formatSubscriptionUserInfo)(userInfo);
|
|
49
|
+
console.log('🤟 %s 已用流量:%s 剩余流量:%s 有效期至:%s', provider.name, format.used, format.left, format.expire);
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
console.log('⚠️ 无法查询 %s 的流量信息', provider.name);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
console.log('⚠️ 无法查询 %s 的流量信息', provider.name);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
await redis_1.default.destroyRedis();
|
|
60
|
+
}
|
|
61
|
+
async listProviders() {
|
|
62
|
+
const files = await fs_1.promises.readdir(this.surgioConfig.providerDir, {
|
|
63
|
+
encoding: 'utf8',
|
|
64
|
+
});
|
|
65
|
+
const providerList = [];
|
|
66
|
+
async function readProvider(path) {
|
|
67
|
+
let provider;
|
|
68
|
+
try {
|
|
69
|
+
const providerName = (0, path_1.basename)(path, '.js');
|
|
70
|
+
const module = await Promise.resolve(`${path}`).then(s => __importStar(require(s)));
|
|
71
|
+
logger.debug('read %s %s', providerName, path);
|
|
72
|
+
// eslint-disable-next-line prefer-const
|
|
73
|
+
provider = await (0, provider_1.getProvider)(providerName, module.default);
|
|
74
|
+
}
|
|
75
|
+
catch (err) {
|
|
76
|
+
logger.debug(`${path} 不是一个合法的模块`);
|
|
77
|
+
return undefined;
|
|
78
|
+
}
|
|
79
|
+
if (!provider?.type) {
|
|
80
|
+
logger.debug(`${path} 不是一个 Provider`);
|
|
81
|
+
return undefined;
|
|
82
|
+
}
|
|
83
|
+
logger.debug('got provider %j', provider);
|
|
84
|
+
return provider;
|
|
85
|
+
}
|
|
86
|
+
for (const file of files) {
|
|
87
|
+
const result = await readProvider((0, path_1.join)(this.surgioConfig.providerDir, file));
|
|
88
|
+
if (result) {
|
|
89
|
+
providerList.push(result);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return providerList;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
exports.default = SubscriptionsCommand;
|
|
96
|
+
//# sourceMappingURL=subscriptions.js.map
|