surgio 2.25.3 → 3.0.0-alpha.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 (182) hide show
  1. package/bin/dev +17 -0
  2. package/bin/dev.cmd +3 -0
  3. package/bin/run +8 -0
  4. package/bin/run.cmd +3 -0
  5. package/build/base-command.d.ts +18 -0
  6. package/build/base-command.js +74 -0
  7. package/build/commands/check.d.ts +10 -0
  8. package/build/commands/check.js +88 -0
  9. package/build/commands/clean-cache.d.ts +6 -0
  10. package/build/commands/clean-cache.js +29 -0
  11. package/build/commands/doctor.d.ts +6 -0
  12. package/build/commands/doctor.js +21 -0
  13. package/build/commands/generate.d.ts +7 -0
  14. package/build/commands/generate.js +93 -0
  15. package/build/commands/lint.d.ts +6 -0
  16. package/build/commands/lint.js +36 -0
  17. package/build/commands/new.d.ts +6 -0
  18. package/build/commands/new.js +36 -0
  19. package/build/commands/subscriptions.d.ts +7 -0
  20. package/build/commands/subscriptions.js +96 -0
  21. package/build/commands/upload.d.ts +6 -0
  22. package/build/commands/upload.js +87 -0
  23. package/build/config.d.ts +6 -0
  24. package/build/config.js +151 -0
  25. package/build/constant/constant.d.ts +17 -16
  26. package/build/constant/constant.js +3 -2
  27. package/build/constant/env.js +1 -1
  28. package/build/constant/error.js +1 -1
  29. package/build/constant/index.js +1 -1
  30. package/build/generate.d.ts +0 -1
  31. package/build/generate.js +3 -65
  32. package/build/generator/artifact.d.ts +299 -64
  33. package/build/generator/artifact.js +90 -92
  34. package/build/generator/index.d.ts +2 -0
  35. package/build/generator/index.js +19 -0
  36. package/build/generator/template.js +2 -6
  37. package/build/hooks/init.d.ts +3 -0
  38. package/build/hooks/init.js +32 -0
  39. package/build/index.d.ts +55 -53
  40. package/build/index.js +13 -51
  41. package/build/internal.d.ts +4 -0
  42. package/build/internal.js +21 -0
  43. package/build/misc/deprecation.d.ts +1 -6
  44. package/build/misc/deprecation.js +1 -8
  45. package/build/misc/flag_cn.js +1 -1
  46. package/build/provider/BlackSSLProvider.d.ts +4 -3
  47. package/build/provider/BlackSSLProvider.js +24 -16
  48. package/build/provider/ClashProvider.d.ts +7 -10
  49. package/build/provider/ClashProvider.js +165 -76
  50. package/build/provider/CustomProvider.d.ts +4 -3
  51. package/build/provider/CustomProvider.js +81 -50
  52. package/build/provider/Provider.d.ts +9 -22
  53. package/build/provider/Provider.js +31 -69
  54. package/build/provider/ShadowsocksJsonSubscribeProvider.d.ts +4 -5
  55. package/build/provider/ShadowsocksJsonSubscribeProvider.js +27 -21
  56. package/build/provider/ShadowsocksSubscribeProvider.d.ts +5 -8
  57. package/build/provider/ShadowsocksSubscribeProvider.js +30 -27
  58. package/build/provider/ShadowsocksrSubscribeProvider.d.ts +5 -8
  59. package/build/provider/ShadowsocksrSubscribeProvider.js +30 -23
  60. package/build/provider/SsdProvider.d.ts +5 -8
  61. package/build/provider/SsdProvider.js +56 -39
  62. package/build/provider/TrojanProvider.d.ts +5 -8
  63. package/build/provider/TrojanProvider.js +37 -30
  64. package/build/provider/V2rayNSubscribeProvider.d.ts +4 -5
  65. package/build/provider/V2rayNSubscribeProvider.js +61 -33
  66. package/build/provider/index.d.ts +16 -2
  67. package/build/provider/index.js +12 -5
  68. package/build/provider/types.d.ts +10 -1
  69. package/build/provider/types.js +1 -1
  70. package/build/redis.js +1 -1
  71. package/build/types.d.ts +45 -236
  72. package/build/types.js +2 -1
  73. package/build/utils/cache.js +29 -27
  74. package/build/utils/clash.d.ts +204 -3
  75. package/build/utils/clash.js +247 -110
  76. package/build/utils/configurables.d.ts +71 -0
  77. package/build/utils/configurables.js +8 -0
  78. package/build/utils/constant.js +1 -1
  79. package/build/utils/dns.js +1 -1
  80. package/build/utils/doctor.d.ts +2 -0
  81. package/build/utils/doctor.js +38 -0
  82. package/build/utils/env-flag.js +2 -2
  83. package/build/utils/error-helper.d.ts +2 -2
  84. package/build/utils/error-helper.js +30 -16
  85. package/build/utils/filter.d.ts +46 -43
  86. package/build/utils/filter.js +51 -30
  87. package/build/utils/flag.js +1 -1
  88. package/build/utils/http-client.js +38 -5
  89. package/build/utils/index.d.ts +13 -21
  90. package/build/utils/index.js +98 -117
  91. package/build/utils/linter.js +5 -2
  92. package/build/utils/loon.d.ts +3 -2
  93. package/build/utils/loon.js +67 -5
  94. package/build/utils/quantumult.d.ts +3 -3
  95. package/build/utils/quantumult.js +190 -258
  96. package/build/utils/relayable-url.js +1 -1
  97. package/build/utils/remote-snippet.js +3 -4
  98. package/build/utils/ss.js +27 -17
  99. package/build/utils/ssr.js +3 -4
  100. package/build/utils/subscription.js +7 -7
  101. package/build/utils/surfboard.d.ts +3 -2
  102. package/build/utils/surfboard.js +142 -126
  103. package/build/utils/surge.d.ts +4 -2
  104. package/build/utils/surge.js +328 -300
  105. package/build/utils/time.d.ts +1 -0
  106. package/build/utils/time.js +6 -0
  107. package/build/utils/tmp-helper.js +8 -1
  108. package/build/utils/trojan.js +19 -11
  109. package/build/utils/v2ray.js +2 -2
  110. package/build/validators/artifact.d.ts +35 -0
  111. package/build/validators/artifact.js +17 -0
  112. package/build/validators/common.d.ts +121 -0
  113. package/build/validators/common.js +52 -0
  114. package/build/validators/filter.d.ts +10 -0
  115. package/build/validators/filter.js +15 -0
  116. package/build/validators/hooks.d.ts +7 -0
  117. package/build/validators/hooks.js +8 -0
  118. package/build/validators/http.d.ts +137 -0
  119. package/build/validators/http.js +19 -0
  120. package/build/validators/index.d.ts +15 -0
  121. package/build/validators/index.js +32 -0
  122. package/build/validators/provider.d.ts +109 -0
  123. package/build/validators/provider.js +41 -0
  124. package/build/validators/shadowsocks.d.ts +86 -0
  125. package/build/validators/shadowsocks.js +29 -0
  126. package/build/validators/shadowsocksr.d.ts +77 -0
  127. package/build/validators/shadowsocksr.js +19 -0
  128. package/build/validators/snell.d.ts +71 -0
  129. package/build/validators/snell.js +20 -0
  130. package/build/validators/socks5.d.ts +77 -0
  131. package/build/validators/socks5.js +19 -0
  132. package/build/validators/surgio-config.d.ts +307 -0
  133. package/build/validators/surgio-config.js +95 -0
  134. package/build/validators/trojan.d.ts +86 -0
  135. package/build/validators/trojan.js +15 -0
  136. package/build/validators/tuic.d.ts +301 -0
  137. package/build/validators/tuic.js +21 -0
  138. package/build/validators/vmess.d.ts +92 -0
  139. package/build/validators/vmess.js +29 -0
  140. package/build/validators/wireguard.d.ts +123 -0
  141. package/build/validators/wireguard.js +26 -0
  142. package/config.d.ts +1 -0
  143. package/config.js +1 -0
  144. package/constant.d.ts +1 -0
  145. package/constant.js +1 -0
  146. package/generator.d.ts +1 -0
  147. package/generator.js +1 -0
  148. package/hygen-template/artifact/new/index.js +15 -15
  149. package/hygen-template/provider/new/index.js +8 -7
  150. package/hygen-template/template/new/index.js +3 -3
  151. package/index.d.ts +1 -0
  152. package/index.js +1 -0
  153. package/internal.d.ts +1 -0
  154. package/internal.js +1 -0
  155. package/package.json +112 -75
  156. package/provider.d.ts +1 -0
  157. package/provider.js +1 -0
  158. package/utils.d.ts +1 -0
  159. package/utils.js +1 -0
  160. package/bin/surgio.js +0 -8
  161. package/build/command/check.d.ts +0 -9
  162. package/build/command/check.js +0 -79
  163. package/build/command/clean-cache.d.ts +0 -8
  164. package/build/command/clean-cache.js +0 -43
  165. package/build/command/doctor.d.ts +0 -9
  166. package/build/command/doctor.js +0 -63
  167. package/build/command/generate.d.ts +0 -8
  168. package/build/command/generate.js +0 -64
  169. package/build/command/lint.d.ts +0 -7
  170. package/build/command/lint.js +0 -42
  171. package/build/command/new.d.ts +0 -7
  172. package/build/command/new.js +0 -44
  173. package/build/command/subscriptions.d.ts +0 -10
  174. package/build/command/subscriptions.js +0 -87
  175. package/build/command/upload.d.ts +0 -9
  176. package/build/command/upload.js +0 -101
  177. package/build/utils/command.d.ts +0 -2
  178. package/build/utils/command.js +0 -23
  179. package/build/utils/config.d.ts +0 -6
  180. package/build/utils/config.js +0 -245
  181. package/build/utils/patch-proxy.d.ts +0 -1
  182. package/build/utils/patch-proxy.js +0 -19
@@ -1,63 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- // istanbul ignore file
6
- const common_bin_1 = __importDefault(require("common-bin"));
7
- const check_node_version_1 = __importDefault(require("check-node-version"));
8
- const util_1 = require("util");
9
- const path_1 = require("path");
10
- const redis_1 = __importDefault(require("../redis"));
11
- const command_1 = require("../utils/command");
12
- const error_helper_1 = require("../utils/error-helper");
13
- class DoctorCommand extends common_bin_1.default {
14
- constructor(rawArgv) {
15
- super(rawArgv);
16
- this.usage = '使用方法: surgio doctor';
17
- (0, command_1.defineGlobalOptions)(this.yargs);
18
- }
19
- async run(ctx) {
20
- const doctorInfo = await DoctorCommand.generateDoctorInfo(ctx.cwd);
21
- doctorInfo.forEach((item) => {
22
- console.log(item);
23
- });
24
- await redis_1.default.destroyRedis();
25
- }
26
- // istanbul ignore next
27
- get description() {
28
- return '检查运行环境';
29
- }
30
- // istanbul ignore next
31
- errorHandler(err) {
32
- error_helper_1.errorHandler.call(this, err);
33
- }
34
- static async generateDoctorInfo(cwd) {
35
- const doctorInfo = [];
36
- const pkg = require('../../package.json');
37
- const checkInfo = await (0, util_1.promisify)(check_node_version_1.default)();
38
- try {
39
- const gatewayPkg = require((0, path_1.join)(cwd, 'node_modules/@surgio/gateway/package.json'));
40
- doctorInfo.push(`@surgio/gateway: ${gatewayPkg.version}`);
41
- }
42
- catch (_) {
43
- // no catch
44
- }
45
- doctorInfo.push(`surgio: ${pkg.version} (${(0, path_1.join)(__dirname, '../..')})`);
46
- if (checkInfo) {
47
- Object.keys(checkInfo.versions).forEach((key) => {
48
- const version = checkInfo.versions[key].version;
49
- if (version) {
50
- if (key === 'node') {
51
- doctorInfo.push(`${key}: ${version} (${process.execPath})`);
52
- }
53
- else {
54
- doctorInfo.push(`${key}: ${version}`);
55
- }
56
- }
57
- });
58
- }
59
- return doctorInfo;
60
- }
61
- }
62
- module.exports = DoctorCommand;
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL2NvbW1hbmQvZG9jdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSx1QkFBdUI7QUFDdkIsNERBQWlDO0FBQ2pDLDRFQUF1QztBQUN2QywrQkFBaUM7QUFDakMsK0JBQTRCO0FBQzVCLHFEQUE2QjtBQUM3Qiw4Q0FBdUQ7QUFFdkQsd0RBQXFEO0FBS3JELE1BQU0sYUFBYyxTQUFRLG9CQUFPO0lBQ2pDLFlBQVksT0FBa0I7UUFDNUIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLEtBQUssR0FBRyxxQkFBcUIsQ0FBQztRQUVuQyxJQUFBLDZCQUFtQixFQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRU0sS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHO1FBQ2xCLE1BQU0sVUFBVSxHQUFHLE1BQU0sYUFBYSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVuRSxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDMUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQixDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sZUFBSyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCx1QkFBdUI7SUFDdkIsSUFBVyxXQUFXO1FBQ3BCLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFRCx1QkFBdUI7SUFDaEIsWUFBWSxDQUFDLEdBQUc7UUFDckIsMkJBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFTSxNQUFNLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUNwQyxHQUFXO1FBRVgsTUFBTSxVQUFVLEdBQWEsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQzFDLE1BQU0sU0FBUyxHQUFHLE1BQU0sSUFBQSxnQkFBUyxFQUFZLDRCQUFLLENBQUMsRUFBRSxDQUFDO1FBRXRELElBQUk7WUFDRixNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsSUFBQSxXQUFJLEVBQzdCLEdBQUcsRUFDSCwyQ0FBMkMsQ0FDNUMsQ0FBQyxDQUFDO1lBQ0gsVUFBVSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7U0FDM0Q7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLFdBQVc7U0FDWjtRQUVELFVBQVUsQ0FBQyxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsT0FBTyxLQUFLLElBQUEsV0FBSSxFQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFeEUsSUFBSSxTQUFTLEVBQUU7WUFDYixNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDOUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUM7Z0JBQ2hELElBQUksT0FBTyxFQUFFO29CQUNYLElBQUksR0FBRyxLQUFLLE1BQU0sRUFBRTt3QkFDbEIsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsS0FBSyxPQUFPLEtBQUssT0FBTyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7cUJBQzdEO3lCQUFNO3dCQUNMLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLEtBQUssT0FBTyxFQUFFLENBQUMsQ0FBQztxQkFDdkM7aUJBQ0Y7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNKO1FBRUQsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztDQUNGO0FBRUQsaUJBQVMsYUFBYSxDQUFDIn0=
@@ -1,8 +0,0 @@
1
- import Command from 'common-bin';
2
- declare class GenerateCommand extends Command {
3
- constructor(rawArgv?: string[]);
4
- run(ctx: any): Promise<void>;
5
- get description(): string;
6
- errorHandler(err: any): void;
7
- }
8
- export = GenerateCommand;
@@ -1,64 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- const common_bin_1 = __importDefault(require("common-bin"));
6
- const redis_1 = __importDefault(require("../redis"));
7
- const command_1 = require("../utils/command");
8
- const config_1 = require("../utils/config");
9
- const generate_1 = __importDefault(require("../generate"));
10
- const error_helper_1 = require("../utils/error-helper");
11
- const linter_1 = require("../utils/linter");
12
- class GenerateCommand extends common_bin_1.default {
13
- constructor(rawArgv) {
14
- super(rawArgv);
15
- this.usage = '使用方法: surgio generate';
16
- this.options = {
17
- o: {
18
- type: 'string',
19
- alias: 'output',
20
- description: '生成规则的目录',
21
- },
22
- 'cache-snippet': {
23
- type: 'boolean',
24
- default: false,
25
- description: '缓存远程片段',
26
- },
27
- 'skip-fail': {
28
- type: 'boolean',
29
- default: false,
30
- description: '跳过生成失败的 Artifact',
31
- },
32
- 'skip-lint': {
33
- type: 'boolean',
34
- default: false,
35
- description: '跳过代码检查',
36
- },
37
- };
38
- (0, command_1.defineGlobalOptions)(this.yargs);
39
- }
40
- async run(ctx) {
41
- (0, config_1.loadConfig)(ctx.cwd, ctx.argv.config);
42
- if (!ctx.argv.skipLint) {
43
- const result = await (0, linter_1.checkAndFix)(ctx.cwd);
44
- if (!result) {
45
- throw new Error('JS 语法检查不通过,请根据提示修改文件(参考 https://url.royli.dev/SeB6m)');
46
- }
47
- }
48
- if (ctx.argv.output) {
49
- (0, config_1.setConfig)('output', ctx.argv.output);
50
- }
51
- await (0, generate_1.default)((0, config_1.getConfig)(), ctx.argv.skipFail, ctx.argv.cacheSnippet);
52
- await redis_1.default.destroyRedis();
53
- }
54
- // istanbul ignore next
55
- get description() {
56
- return '生成规则';
57
- }
58
- // istanbul ignore next
59
- errorHandler(err) {
60
- error_helper_1.errorHandler.call(this, err);
61
- }
62
- }
63
- module.exports = GenerateCommand;
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvY29tbWFuZC9nZW5lcmF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsNERBQWlDO0FBQ2pDLHFEQUE2QjtBQUM3Qiw4Q0FBdUQ7QUFFdkQsNENBQW1FO0FBQ25FLDJEQUFtQztBQUNuQyx3REFBcUQ7QUFDckQsNENBQThDO0FBRTlDLE1BQU0sZUFBZ0IsU0FBUSxvQkFBTztJQUNuQyxZQUFZLE9BQWtCO1FBQzVCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxLQUFLLEdBQUcsdUJBQXVCLENBQUM7UUFDckMsSUFBSSxDQUFDLE9BQU8sR0FBRztZQUNiLENBQUMsRUFBRTtnQkFDRCxJQUFJLEVBQUUsUUFBUTtnQkFDZCxLQUFLLEVBQUUsUUFBUTtnQkFDZixXQUFXLEVBQUUsU0FBUzthQUN2QjtZQUNELGVBQWUsRUFBRTtnQkFDZixJQUFJLEVBQUUsU0FBUztnQkFDZixPQUFPLEVBQUUsS0FBSztnQkFDZCxXQUFXLEVBQUUsUUFBUTthQUN0QjtZQUNELFdBQVcsRUFBRTtnQkFDWCxJQUFJLEVBQUUsU0FBUztnQkFDZixPQUFPLEVBQUUsS0FBSztnQkFDZCxXQUFXLEVBQUUsa0JBQWtCO2FBQ2hDO1lBQ0QsV0FBVyxFQUFFO2dCQUNYLElBQUksRUFBRSxTQUFTO2dCQUNmLE9BQU8sRUFBRSxLQUFLO2dCQUNkLFdBQVcsRUFBRSxRQUFRO2FBQ3RCO1NBQ0YsQ0FBQztRQUVGLElBQUEsNkJBQW1CLEVBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFTSxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUc7UUFDbEIsSUFBQSxtQkFBVSxFQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVyQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDdEIsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFBLG9CQUFXLEVBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBRTFDLElBQUksQ0FBQyxNQUFNLEVBQUU7Z0JBQ1gsTUFBTSxJQUFJLEtBQUssQ0FDYixzREFBc0QsQ0FDdkQsQ0FBQzthQUNIO1NBQ0Y7UUFFRCxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ25CLElBQUEsa0JBQVMsRUFBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUN0QztRQUVELE1BQU0sSUFBQSxrQkFBUSxFQUFDLElBQUEsa0JBQVMsR0FBRSxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFdEUsTUFBTSxlQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELHVCQUF1QjtJQUN2QixJQUFXLFdBQVc7UUFDcEIsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELHVCQUF1QjtJQUNoQixZQUFZLENBQUMsR0FBRztRQUNyQiwyQkFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDL0IsQ0FBQztDQUNGO0FBRUQsaUJBQVMsZUFBZSxDQUFDIn0=
@@ -1,7 +0,0 @@
1
- import Command from 'common-bin';
2
- declare class LintCommand extends Command {
3
- constructor(rawArgv?: string[]);
4
- get description(): string;
5
- run(ctx: any): Promise<void>;
6
- }
7
- export = LintCommand;
@@ -1,42 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- // istanbul ignore file
6
- const common_bin_1 = __importDefault(require("common-bin"));
7
- const linter_1 = require("../utils/linter");
8
- class LintCommand extends common_bin_1.default {
9
- constructor(rawArgv) {
10
- super(rawArgv);
11
- this.usage = '使用方法: surgio lint [--fix]';
12
- this.options = {
13
- fix: {
14
- default: false,
15
- describe: '自动修复部分 Lint 错误',
16
- type: 'boolean',
17
- },
18
- };
19
- }
20
- // istanbul ignore next
21
- get description() {
22
- return '运行 JS 语法检查';
23
- }
24
- async run(ctx) {
25
- let result;
26
- if (ctx.argv.fix) {
27
- result = await (0, linter_1.checkAndFix)(ctx.cwd);
28
- }
29
- else {
30
- result = await (0, linter_1.check)(ctx.cwd);
31
- }
32
- if (!result) {
33
- console.warn('⚠️ JS 语法检查不通过,请根据提示修改文件(可添加参数 --fix 自动修复部分错误, 参考 https://url.royli.dev/SeB6m)');
34
- process.exit(1);
35
- }
36
- else {
37
- console.log('✅ JS 语法检查通过');
38
- }
39
- }
40
- }
41
- module.exports = LintCommand;
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGludC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9jb21tYW5kL2xpbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLHVCQUF1QjtBQUN2Qiw0REFBaUM7QUFFakMsNENBQXFEO0FBRXJELE1BQU0sV0FBWSxTQUFRLG9CQUFPO0lBQy9CLFlBQVksT0FBa0I7UUFDNUIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLEtBQUssR0FBRywyQkFBMkIsQ0FBQztRQUN6QyxJQUFJLENBQUMsT0FBTyxHQUFHO1lBQ2IsR0FBRyxFQUFFO2dCQUNILE9BQU8sRUFBRSxLQUFLO2dCQUNkLFFBQVEsRUFBRSxnQkFBZ0I7Z0JBQzFCLElBQUksRUFBRSxTQUFTO2FBQ2hCO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCx1QkFBdUI7SUFDdkIsSUFBVyxXQUFXO1FBQ3BCLE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7SUFFTSxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUc7UUFDbEIsSUFBSSxNQUFNLENBQUM7UUFFWCxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ2hCLE1BQU0sR0FBRyxNQUFNLElBQUEsb0JBQVcsRUFBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDckM7YUFBTTtZQUNMLE1BQU0sR0FBRyxNQUFNLElBQUEsY0FBSyxFQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUMvQjtRQUVELElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDWCxPQUFPLENBQUMsSUFBSSxDQUNWLGdGQUFnRixDQUNqRixDQUFDO1lBQ0YsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNqQjthQUFNO1lBQ0wsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztTQUM3QjtJQUNILENBQUM7Q0FDRjtBQUVELGlCQUFTLFdBQVcsQ0FBQyJ9
@@ -1,7 +0,0 @@
1
- import Command, { Context } from 'common-bin';
2
- declare class NewCommand extends Command {
3
- constructor(rawArgv?: string[]);
4
- get description(): string;
5
- run(ctx: Context): Promise<void>;
6
- }
7
- export = NewCommand;
@@ -1,44 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- // istanbul ignore file
6
- const logger_1 = require("@surgio/logger");
7
- const path_1 = require("path");
8
- const hygen_1 = require("@royli/hygen");
9
- const common_bin_1 = __importDefault(require("common-bin"));
10
- const command_1 = require("../utils/command");
11
- const defaultTemplates = (0, path_1.join)(__dirname, '../../hygen-template');
12
- const logger = (0, logger_1.createLogger)({ service: 'surgio:NewCommand' });
13
- class NewCommand extends common_bin_1.default {
14
- constructor(rawArgv) {
15
- super(rawArgv);
16
- this.usage = '使用方法: surgio new [provider|template|artifact]';
17
- (0, command_1.defineGlobalOptions)(this.yargs);
18
- }
19
- // istanbul ignore next
20
- get description() {
21
- return '新建文件助手';
22
- }
23
- async run(ctx) {
24
- if (!ctx.rawArgv.length) {
25
- logger.error('请指定新建类型\n');
26
- this.showHelp();
27
- return;
28
- }
29
- const args = [...ctx.rawArgv].concat('new'); // [type] new ...
30
- (0, hygen_1.runner)(args, {
31
- templates: defaultTemplates,
32
- cwd: process.cwd(),
33
- logger: new hygen_1.Logger(console.log.bind(console)),
34
- createPrompter: () => require('inquirer'),
35
- exec: (action, body) => {
36
- const opts = body && body.length > 0 ? { input: body } : {};
37
- return require('execa').shell(action, opts);
38
- },
39
- debug: !!process.env.DEBUG,
40
- });
41
- }
42
- }
43
- module.exports = NewCommand;
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV3LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL2NvbW1hbmQvbmV3LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSx1QkFBdUI7QUFDdkIsMkNBQThDO0FBQzlDLCtCQUE0QjtBQUM1Qix3Q0FBOEM7QUFDOUMsNERBQThDO0FBRTlDLDhDQUF1RDtBQUV2RCxNQUFNLGdCQUFnQixHQUFHLElBQUEsV0FBSSxFQUFDLFNBQVMsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO0FBQ2pFLE1BQU0sTUFBTSxHQUFHLElBQUEscUJBQVksRUFBQyxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxDQUFDLENBQUM7QUFFOUQsTUFBTSxVQUFXLFNBQVEsb0JBQU87SUFDOUIsWUFBWSxPQUFrQjtRQUM1QixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDZixJQUFJLENBQUMsS0FBSyxHQUFHLCtDQUErQyxDQUFDO1FBRTdELElBQUEsNkJBQW1CLEVBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCx1QkFBdUI7SUFDdkIsSUFBVyxXQUFXO1FBQ3BCLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFTSxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQVk7UUFDM0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFO1lBQ3ZCLE1BQU0sQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDMUIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2hCLE9BQU87U0FDUjtRQUVELE1BQU0sSUFBSSxHQUFhLENBQUMsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsaUJBQWlCO1FBRXhFLElBQUEsY0FBTSxFQUFDLElBQUksRUFBRTtZQUNYLFNBQVMsRUFBRSxnQkFBZ0I7WUFDM0IsR0FBRyxFQUFFLE9BQU8sQ0FBQyxHQUFHLEVBQUU7WUFDbEIsTUFBTSxFQUFFLElBQUksY0FBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzdDLGNBQWMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDO1lBQ3pDLElBQUksRUFBRSxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBRTtnQkFDckIsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUM1RCxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQzlDLENBQUM7WUFDRCxLQUFLLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSztTQUMzQixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFFRCxpQkFBUyxVQUFVLENBQUMifQ==
@@ -1,10 +0,0 @@
1
- import Command from 'common-bin';
2
- declare class SubscriptionsCommand extends Command {
3
- private config;
4
- constructor(rawArgv?: string[]);
5
- run(ctx: any): Promise<void>;
6
- get description(): string;
7
- errorHandler(err: any): void;
8
- private listProviders;
9
- }
10
- export = SubscriptionsCommand;
@@ -1,87 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- // istanbul ignore file
6
- const common_bin_1 = __importDefault(require("common-bin"));
7
- const fs_1 = require("fs");
8
- const path_1 = require("path");
9
- const logger_1 = require("@surgio/logger");
10
- const redis_1 = __importDefault(require("../redis"));
11
- const command_1 = require("../utils/command");
12
- const config_1 = require("../utils/config");
13
- const provider_1 = require("../provider");
14
- const error_helper_1 = require("../utils/error-helper");
15
- const subscription_1 = require("../utils/subscription");
16
- const logger = (0, logger_1.createLogger)({
17
- service: 'surgio:SubscriptionsCommand',
18
- });
19
- class SubscriptionsCommand extends common_bin_1.default {
20
- constructor(rawArgv) {
21
- super(rawArgv);
22
- this.usage = '使用方法: surgio subscriptions';
23
- (0, command_1.defineGlobalOptions)(this.yargs);
24
- }
25
- async run(ctx) {
26
- this.config = (0, config_1.loadConfig)(ctx.cwd, ctx.argv.config);
27
- const providerList = await this.listProviders();
28
- for (const provider of providerList) {
29
- if (provider.supportGetSubscriptionUserInfo) {
30
- const userInfo = await provider.getSubscriptionUserInfo();
31
- if (userInfo) {
32
- const format = (0, subscription_1.formatSubscriptionUserInfo)(userInfo);
33
- console.log('🤟 %s 已用流量:%s 剩余流量:%s 有效期至:%s', provider.name, format.used, format.left, format.expire);
34
- }
35
- else {
36
- console.log('⚠️ 无法查询 %s 的流量信息', provider.name);
37
- }
38
- }
39
- else {
40
- console.log('⚠️ 无法查询 %s 的流量信息', provider.name);
41
- }
42
- }
43
- await redis_1.default.destroyRedis();
44
- }
45
- // istanbul ignore next
46
- get description() {
47
- return '查询订阅流量';
48
- }
49
- // istanbul ignore next
50
- errorHandler(err) {
51
- error_helper_1.errorHandler.call(this, err);
52
- }
53
- async listProviders() {
54
- const files = await fs_1.promises.readdir(this.config.providerDir, {
55
- encoding: 'utf8',
56
- });
57
- const providerList = [];
58
- async function readProvider(path) {
59
- let provider;
60
- try {
61
- const providerName = (0, path_1.basename)(path, '.js');
62
- logger.debug('read %s %s', providerName, path);
63
- // eslint-disable-next-line prefer-const
64
- provider = await (0, provider_1.getProvider)(providerName, require(path));
65
- }
66
- catch (err) {
67
- logger.debug(`${path} 不是一个合法的模块`);
68
- return undefined;
69
- }
70
- if (!(provider === null || provider === void 0 ? void 0 : provider.type)) {
71
- logger.debug(`${path} 不是一个 Provider`);
72
- return undefined;
73
- }
74
- logger.debug('got provider %j', provider);
75
- return provider;
76
- }
77
- for (const file of files) {
78
- const result = await readProvider((0, path_1.join)(this.config.providerDir, file));
79
- if (result) {
80
- providerList.push(result);
81
- }
82
- }
83
- return providerList;
84
- }
85
- }
86
- module.exports = SubscriptionsCommand;
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Vic2NyaXB0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9jb21tYW5kL3N1YnNjcmlwdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLHVCQUF1QjtBQUN2Qiw0REFBaUM7QUFDakMsMkJBQXFDO0FBQ3JDLCtCQUFzQztBQUN0QywyQ0FBOEM7QUFTOUMscURBQTZCO0FBRTdCLDhDQUF1RDtBQUN2RCw0Q0FBNkM7QUFDN0MsMENBQTBDO0FBQzFDLHdEQUFxRDtBQUNyRCx3REFBbUU7QUFFbkUsTUFBTSxNQUFNLEdBQUcsSUFBQSxxQkFBWSxFQUFDO0lBQzFCLE9BQU8sRUFBRSw2QkFBNkI7Q0FDdkMsQ0FBQyxDQUFDO0FBVUgsTUFBTSxvQkFBcUIsU0FBUSxvQkFBTztJQUd4QyxZQUFZLE9BQWtCO1FBQzVCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxLQUFLLEdBQUcsNEJBQTRCLENBQUM7UUFFMUMsSUFBQSw2QkFBbUIsRUFBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVNLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRztRQUNsQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUEsbUJBQVUsRUFBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFbkQsTUFBTSxZQUFZLEdBQUcsTUFBTSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFFaEQsS0FBSyxNQUFNLFFBQVEsSUFBSSxZQUFZLEVBQUU7WUFDbkMsSUFBSSxRQUFRLENBQUMsOEJBQThCLEVBQUU7Z0JBQzNDLE1BQU0sUUFBUSxHQUFHLE1BQU0sUUFBUSxDQUFDLHVCQUF1QixFQUFFLENBQUM7Z0JBRTFELElBQUksUUFBUSxFQUFFO29CQUNaLE1BQU0sTUFBTSxHQUFHLElBQUEseUNBQTBCLEVBQUMsUUFBUSxDQUFDLENBQUM7b0JB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
@@ -1,9 +0,0 @@
1
- import Command from 'common-bin';
2
- declare class GenerateCommand extends Command {
3
- private readonly spinner;
4
- constructor(rawArgv?: string[]);
5
- run(ctx: any): Promise<void>;
6
- get description(): string;
7
- errorHandler(err: any): void;
8
- }
9
- export = GenerateCommand;
@@ -1,101 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- // istanbul ignore file
6
- const ali_oss_1 = __importDefault(require("ali-oss"));
7
- const common_bin_1 = __importDefault(require("common-bin"));
8
- const fs_1 = __importDefault(require("fs"));
9
- const node_dir_1 = __importDefault(require("node-dir"));
10
- const ora_1 = __importDefault(require("ora"));
11
- const path_1 = __importDefault(require("path"));
12
- const redis_1 = __importDefault(require("../redis"));
13
- const command_1 = require("../utils/command");
14
- const config_1 = require("../utils/config");
15
- const error_helper_1 = require("../utils/error-helper");
16
- class GenerateCommand extends common_bin_1.default {
17
- constructor(rawArgv) {
18
- super(rawArgv);
19
- this.usage = '使用方法: surgio upload';
20
- this.spinner = (0, ora_1.default)();
21
- this.options = {
22
- o: {
23
- type: 'string',
24
- alias: 'output',
25
- description: '生成规则的目录',
26
- },
27
- };
28
- (0, command_1.defineGlobalOptions)(this.yargs);
29
- }
30
- async run(ctx) {
31
- var _a, _b, _c, _d, _e, _f;
32
- const config = (0, config_1.loadConfig)(ctx.cwd, ctx.argv.config);
33
- if (ctx.argv.output) {
34
- (0, config_1.setConfig)('output', ctx.argv.output);
35
- }
36
- const ossConfig = {
37
- region: (_a = config === null || config === void 0 ? void 0 : config.upload) === null || _a === void 0 ? void 0 : _a.region,
38
- bucket: (_b = config === null || config === void 0 ? void 0 : config.upload) === null || _b === void 0 ? void 0 : _b.bucket,
39
- endpoint: (_c = config === null || config === void 0 ? void 0 : config.upload) === null || _c === void 0 ? void 0 : _c.endpoint,
40
- accessKeyId: ctx.env.OSS_ACCESS_KEY_ID || ((_d = config === null || config === void 0 ? void 0 : config.upload) === null || _d === void 0 ? void 0 : _d.accessKeyId),
41
- accessKeySecret: ctx.env.OSS_ACCESS_KEY_SECRET || ((_e = config === null || config === void 0 ? void 0 : config.upload) === null || _e === void 0 ? void 0 : _e.accessKeySecret),
42
- };
43
- const client = new ali_oss_1.default(Object.assign({ secure: true }, ossConfig));
44
- const prefix = ((_f = config === null || config === void 0 ? void 0 : config.upload) === null || _f === void 0 ? void 0 : _f.prefix) || '/';
45
- const fileList = await node_dir_1.default.promiseFiles(config.output);
46
- const files = fileList.map((filePath) => ({
47
- fileName: path_1.default.basename(filePath),
48
- filePath,
49
- }));
50
- const fileNameList = files.map((file) => file.fileName);
51
- const upload = () => {
52
- return Promise.all(files.map((file) => {
53
- const { fileName, filePath } = file;
54
- const objectName = `${prefix}${fileName}`;
55
- const readStream = fs_1.default.createReadStream(filePath);
56
- return client.put(objectName, readStream, {
57
- mime: 'text/plain; charset=utf-8',
58
- headers: {
59
- 'Cache-Control': 'private, no-cache, no-store',
60
- },
61
- });
62
- }));
63
- };
64
- const deleteUnwanted = async () => {
65
- const list = await client.list({
66
- prefix,
67
- delimiter: '/',
68
- });
69
- const deleteList = [];
70
- for (const key in list.objects) {
71
- if (list.objects.hasOwnProperty(key)) {
72
- const object = list.objects[key];
73
- const objectName = object.name.replace(prefix, '');
74
- const isExist = fileNameList.indexOf(objectName) > -1;
75
- if (objectName && !isExist) {
76
- deleteList.push(object.name);
77
- }
78
- }
79
- }
80
- if (deleteList.length) {
81
- await client.deleteMulti(deleteList);
82
- }
83
- };
84
- this.spinner.start('开始上传到阿里云 OSS');
85
- await upload();
86
- await deleteUnwanted();
87
- await redis_1.default.destroyRedis();
88
- this.spinner.succeed();
89
- }
90
- // istanbul ignore next
91
- get description() {
92
- return '上传规则到阿里云 OSS';
93
- }
94
- // istanbul ignore next
95
- errorHandler(err) {
96
- this.spinner.fail();
97
- error_helper_1.errorHandler.call(this, err);
98
- }
99
- }
100
- module.exports = GenerateCommand;
101
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL2NvbW1hbmQvdXBsb2FkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSx1QkFBdUI7QUFDdkIsc0RBQTBCO0FBQzFCLDREQUFpQztBQUNqQyw0Q0FBb0I7QUFDcEIsd0RBQTJCO0FBQzNCLDhDQUErQjtBQUMvQixnREFBd0I7QUFDeEIscURBQTZCO0FBQzdCLDhDQUF1RDtBQUV2RCw0Q0FBd0Q7QUFDeEQsd0RBQXFEO0FBRXJELE1BQU0sZUFBZ0IsU0FBUSxvQkFBTztJQUduQyxZQUFZLE9BQWtCO1FBQzVCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxLQUFLLEdBQUcscUJBQXFCLENBQUM7UUFDbkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFBLGFBQUcsR0FBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxPQUFPLEdBQUc7WUFDYixDQUFDLEVBQUU7Z0JBQ0QsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsS0FBSyxFQUFFLFFBQVE7Z0JBQ2YsV0FBVyxFQUFFLFNBQVM7YUFDdkI7U0FDRixDQUFDO1FBRUYsSUFBQSw2QkFBbUIsRUFBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVNLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRzs7UUFDbEIsTUFBTSxNQUFNLEdBQUcsSUFBQSxtQkFBVSxFQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVwRCxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ25CLElBQUEsa0JBQVMsRUFBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUN0QztRQUVELE1BQU0sU0FBUyxHQUFHO1lBQ2hCLE1BQU0sRUFBRSxNQUFBLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0s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
@@ -1,2 +0,0 @@
1
- import CommonBin from 'common-bin';
2
- export declare const defineGlobalOptions: (yargs: CommonBin['yargs']) => void;
@@ -1,23 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.defineGlobalOptions = void 0;
4
- const defineGlobalOptions = (yargs) => {
5
- yargs.options({
6
- c: {
7
- alias: 'config',
8
- default: './surgio.conf.js',
9
- description: '配置文件',
10
- },
11
- V: {
12
- alias: 'verbose',
13
- demandOption: false,
14
- describe: '打印调试日志',
15
- type: 'boolean',
16
- },
17
- });
18
- yargs.group(['help', 'version', 'config', 'verbose'], 'Global Options:');
19
- // 禁用 yargs 内部生成的 help 信息,似乎和 common-bin 的 load 有冲突
20
- yargs.help(false);
21
- };
22
- exports.defineGlobalOptions = defineGlobalOptions;
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi91dGlscy9jb21tYW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVPLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxLQUF5QixFQUFRLEVBQUU7SUFDckUsS0FBSyxDQUFDLE9BQU8sQ0FBQztRQUNaLENBQUMsRUFBRTtZQUNELEtBQUssRUFBRSxRQUFRO1lBQ2YsT0FBTyxFQUFFLGtCQUFrQjtZQUMzQixXQUFXLEVBQUUsTUFBTTtTQUNwQjtRQUNELENBQUMsRUFBRTtZQUNELEtBQUssRUFBRSxTQUFTO1lBQ2hCLFlBQVksRUFBRSxLQUFLO1lBQ25CLFFBQVEsRUFBRSxRQUFRO1lBQ2xCLElBQUksRUFBRSxTQUFTO1NBQ2hCO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFNBQVMsQ0FBQyxFQUFFLGlCQUFpQixDQUFDLENBQUM7SUFFekUsbURBQW1EO0lBQ25ELEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDcEIsQ0FBQyxDQUFDO0FBbkJXLFFBQUEsbUJBQW1CLHVCQW1COUIifQ==
@@ -1,6 +0,0 @@
1
- import { CommandConfig } from '../types';
2
- export declare const loadConfig: (cwd: string, configPath: string, override?: Partial<CommandConfig>) => CommandConfig;
3
- export declare const getConfig: () => CommandConfig;
4
- export declare const setConfig: <T extends keyof CommandConfig>(key: T, value: CommandConfig[T]) => CommandConfig;
5
- export declare const normalizeConfig: (cwd: string, userConfig: Partial<CommandConfig>) => CommandConfig;
6
- export declare const validateConfig: (userConfig: Partial<CommandConfig>) => void;