surgio 2.18.4 → 2.19.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 (51) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/build/command/check.js +7 -11
  3. package/build/command/clean-cache.d.ts +1 -1
  4. package/build/command/clean-cache.js +10 -2
  5. package/build/command/doctor.js +6 -14
  6. package/build/command/generate.js +10 -12
  7. package/build/command/lint.js +1 -1
  8. package/build/command/new.js +4 -12
  9. package/build/command/subscriptions.js +5 -10
  10. package/build/command/upload.js +9 -13
  11. package/build/constant/constant.d.ts +4 -0
  12. package/build/constant/constant.js +6 -2
  13. package/build/generator/template.d.ts +1 -1
  14. package/build/index.d.ts +10 -1
  15. package/build/index.js +12 -13
  16. package/build/provider/ClashProvider.d.ts +1 -1
  17. package/build/provider/Provider.js +47 -24
  18. package/build/provider/ShadowsocksJsonSubscribeProvider.d.ts +1 -1
  19. package/build/provider/ShadowsocksSubscribeProvider.d.ts +1 -1
  20. package/build/provider/ShadowsocksrSubscribeProvider.d.ts +1 -1
  21. package/build/provider/SsdProvider.d.ts +2 -2
  22. package/build/redis.d.ts +9 -0
  23. package/build/redis.js +61 -0
  24. package/build/types.d.ts +8 -1
  25. package/build/utils/cache.d.ts +13 -1
  26. package/build/utils/cache.js +41 -3
  27. package/build/utils/clash.d.ts +2 -2
  28. package/build/utils/command.d.ts +2 -0
  29. package/build/utils/command.js +23 -0
  30. package/build/utils/config.d.ts +3 -1
  31. package/build/utils/config.js +41 -3
  32. package/build/utils/filter.d.ts +7 -4
  33. package/build/utils/filter.js +15 -2
  34. package/build/utils/http-client.d.ts +1 -1
  35. package/build/utils/index.d.ts +8 -5
  36. package/build/utils/index.js +22 -5
  37. package/build/utils/linter.d.ts +1 -1
  38. package/build/utils/loon.d.ts +1 -1
  39. package/build/utils/patch-proxy.js +2 -7
  40. package/build/utils/quantumult.d.ts +2 -2
  41. package/build/utils/remote-snippet.d.ts +1 -1
  42. package/build/utils/remote-snippet.js +8 -5
  43. package/build/utils/ss.js +13 -15
  44. package/build/utils/ssr.js +4 -7
  45. package/build/utils/surge.d.ts +1 -1
  46. package/build/utils/tmp-helper.d.ts +21 -7
  47. package/build/utils/tmp-helper.js +47 -16
  48. package/build/utils/trojan.js +4 -7
  49. package/build/utils/v2ray.d.ts +1 -1
  50. package/build/utils/v2ray.js +6 -8
  51. package/package.json +13 -22
@@ -3,29 +3,34 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.createTmpFactory = exports.TmpFile = void 0;
6
+ exports.createTmpFactory = exports.TmpRedis = exports.TmpFile = void 0;
7
7
  const logger_1 = require("@surgio/logger");
8
8
  const os_1 = __importDefault(require("os"));
9
9
  const path_1 = __importDefault(require("path"));
10
10
  const fs_extra_1 = __importDefault(require("fs-extra"));
11
11
  const constant_1 = require("../constant");
12
+ const redis_1 = __importDefault(require("../redis"));
13
+ const index_1 = require("./index");
12
14
  const logger = (0, logger_1.createLogger)({ service: 'surgio:utils:tmp-helper' });
13
15
  const tmpDir = path_1.default.join(os_1.default.tmpdir(), constant_1.TMP_FOLDER_NAME);
16
+ class TmpHelper {
17
+ constructor(cacheKey, maxAge) {
18
+ this.cacheKey = cacheKey;
19
+ this.maxAge = maxAge;
20
+ }
21
+ }
14
22
  class TmpFile {
15
- constructor(filePath, maxAge) {
16
- this.filePath = filePath;
23
+ constructor(cacheKey, maxAge) {
24
+ this.cacheKey = cacheKey;
17
25
  this.maxAge = maxAge;
18
- this.filename = path_1.default.basename(filePath);
19
- this.extname = path_1.default.extname(filePath);
20
- fs_extra_1.default.accessSync(path_1.default.dirname(this.filePath), fs_extra_1.default.constants.W_OK);
26
+ fs_extra_1.default.accessSync(path_1.default.dirname(this.cacheKey), fs_extra_1.default.constants.W_OK);
21
27
  }
22
28
  async setContent(content) {
23
- await fs_extra_1.default.writeJson(this.filePath, {
29
+ await fs_extra_1.default.writeJson(this.cacheKey, {
24
30
  content,
25
31
  maxAge: this.maxAge,
26
32
  lastEditTime: new Date().getTime(),
27
33
  });
28
- return this;
29
34
  }
30
35
  async getContent() {
31
36
  const tmpContent = await this.validateContent();
@@ -35,10 +40,10 @@ class TmpFile {
35
40
  return undefined;
36
41
  }
37
42
  async validateContent() {
38
- if (!fs_extra_1.default.existsSync(this.filePath)) {
43
+ if (!fs_extra_1.default.existsSync(this.cacheKey)) {
39
44
  return undefined;
40
45
  }
41
- const tmpContent = await fs_extra_1.default.readJson(this.filePath);
46
+ const tmpContent = await fs_extra_1.default.readJson(this.cacheKey);
42
47
  const now = Date.now();
43
48
  if (!tmpContent.maxAge) {
44
49
  return tmpContent;
@@ -53,13 +58,39 @@ class TmpFile {
53
58
  }
54
59
  }
55
60
  exports.TmpFile = TmpFile;
56
- const createTmpFactory = (baseDir) => {
57
- baseDir = path_1.default.join(tmpDir, baseDir);
61
+ class TmpRedis {
62
+ constructor(cacheKey, maxAge) {
63
+ this.cacheKey = cacheKey;
64
+ this.maxAge = maxAge;
65
+ this.redisClient = redis_1.default.getRedis();
66
+ }
67
+ async getContent() {
68
+ const value = await this.redisClient.get(this.cacheKey);
69
+ return value ? value : undefined;
70
+ }
71
+ async setContent(content) {
72
+ if (this.maxAge) {
73
+ await this.redisClient.set(this.cacheKey, content, 'EX', (0, index_1.msToSeconds)(this.maxAge));
74
+ }
75
+ else {
76
+ await this.redisClient.set(this.cacheKey, content);
77
+ }
78
+ }
79
+ }
80
+ exports.TmpRedis = TmpRedis;
81
+ const createTmpFactory = (baseDir, cacheType = 'default') => {
58
82
  logger.debug('tmpDir: %s', baseDir);
59
- if (!fs_extra_1.default.existsSync(baseDir)) {
60
- fs_extra_1.default.mkdirpSync(baseDir);
83
+ logger.debug('tmpDir cache type: %s', cacheType);
84
+ if (cacheType === 'default') {
85
+ const fullTmpDir = path_1.default.join(tmpDir, baseDir);
86
+ if (!fs_extra_1.default.existsSync(fullTmpDir)) {
87
+ fs_extra_1.default.mkdirpSync(fullTmpDir);
88
+ }
89
+ return (fileCacheKey, maxAge) => new TmpFile(path_1.default.join(fullTmpDir, fileCacheKey), maxAge);
90
+ }
91
+ else {
92
+ return (fileCacheKey, maxAge) => new TmpRedis(`${baseDir}:${fileCacheKey}`, maxAge);
61
93
  }
62
- return (filePath, maxAge) => new TmpFile(path_1.default.join(baseDir, filePath), maxAge);
63
94
  };
64
95
  exports.createTmpFactory = createTmpFactory;
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG1wLWhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi91dGlscy90bXAtaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDJDQUE4QztBQUM5Qyw0Q0FBb0I7QUFDcEIsZ0RBQXdCO0FBQ3hCLHdEQUEwQjtBQUUxQiwwQ0FBOEM7QUFFOUMsTUFBTSxNQUFNLEdBQUcsSUFBQSxxQkFBWSxFQUFDLEVBQUUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLENBQUMsQ0FBQztBQUNwRSxNQUFNLE1BQU0sR0FBRyxjQUFJLENBQUMsSUFBSSxDQUFDLFlBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSwwQkFBZSxDQUFDLENBQUM7QUFFdkQsTUFBYSxPQUFPO0lBSWxCLFlBQW1CLFFBQWdCLEVBQVMsTUFBZTtRQUF4QyxhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQVMsV0FBTSxHQUFOLE1BQU0sQ0FBUztRQUN6RCxJQUFJLENBQUMsUUFBUSxHQUFHLGNBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxjQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXRDLGtCQUFFLENBQUMsVUFBVSxDQUFDLGNBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLGtCQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFTSxLQUFLLENBQUMsVUFBVSxDQUFDLE9BQWU7UUFDckMsTUFBTSxrQkFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2hDLE9BQU87WUFDUCxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDbkIsWUFBWSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFO1NBQ25DLENBQUMsQ0FBQztRQUVILE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVNLEtBQUssQ0FBQyxVQUFVO1FBQ3JCLE1BQU0sVUFBVSxHQUFHLE1BQU0sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ2hELElBQUksVUFBVSxFQUFFO1lBQ2QsT0FBTyxVQUFVLENBQUMsT0FBTyxDQUFDO1NBQzNCO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVPLEtBQUssQ0FBQyxlQUFlO1FBQzNCLElBQUksQ0FBQyxrQkFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDakMsT0FBTyxTQUFTLENBQUM7U0FDbEI7UUFFRCxNQUFNLFVBQVUsR0FBZSxNQUFNLGtCQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoRSxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFFdkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUU7WUFDdEIsT0FBTyxVQUFVLENBQUM7U0FDbkI7YUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksR0FBRyxHQUFHLFVBQVUsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNyRSxPQUFPLFVBQVUsQ0FBQztTQUNuQjthQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLFVBQVUsQ0FBQyxNQUFNLEVBQUU7WUFDNUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO1NBQ2pDO1FBRUQsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztDQUNGO0FBL0NELDBCQStDQztBQVFNLE1BQU0sZ0JBQWdCLEdBQUcsQ0FDOUIsT0FBZSxFQUNtQyxFQUFFO0lBQ3BELE9BQU8sR0FBRyxjQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUVyQyxNQUFNLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSxPQUFPLENBQUMsQ0FBQztJQUVwQyxJQUFJLENBQUMsa0JBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDM0Isa0JBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7S0FDeEI7SUFFRCxPQUFPLENBQUMsUUFBZ0IsRUFBRSxNQUFlLEVBQUUsRUFBRSxDQUMzQyxJQUFJLE9BQU8sQ0FBQyxjQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUN0RCxDQUFDLENBQUM7QUFiVyxRQUFBLGdCQUFnQixvQkFhM0IifQ==
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG1wLWhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi91dGlscy90bXAtaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDJDQUE4QztBQUM5Qyw0Q0FBb0I7QUFDcEIsZ0RBQXdCO0FBQ3hCLHdEQUEwQjtBQUcxQiwwQ0FBOEM7QUFDOUMscURBQTZCO0FBQzdCLG1DQUFzQztBQUV0QyxNQUFNLE1BQU0sR0FBRyxJQUFBLHFCQUFZLEVBQUMsRUFBRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsQ0FBQyxDQUFDO0FBQ3BFLE1BQU0sTUFBTSxHQUFHLGNBQUksQ0FBQyxJQUFJLENBQUMsWUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFLDBCQUFlLENBQUMsQ0FBQztBQUV2RCxNQUFlLFNBQVM7SUFDdEIsWUFBNkIsUUFBZ0IsRUFBUyxNQUFlO1FBQXhDLGFBQVEsR0FBUixRQUFRLENBQVE7UUFBUyxXQUFNLEdBQU4sTUFBTSxDQUFTO0lBQUcsQ0FBQztDQUsxRTtBQUVELE1BQWEsT0FBTztJQUNsQixZQUFtQixRQUFnQixFQUFTLE1BQWU7UUFBeEMsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUFTLFdBQU0sR0FBTixNQUFNLENBQVM7UUFDekQsa0JBQUUsQ0FBQyxVQUFVLENBQUMsY0FBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsa0JBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVNLEtBQUssQ0FBQyxVQUFVLENBQUMsT0FBZTtRQUNyQyxNQUFNLGtCQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDaEMsT0FBTztZQUNQLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixZQUFZLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUU7U0FDbkMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLEtBQUss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
@@ -1,15 +1,12 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.parseTrojanUri = void 0;
7
- const debug_1 = __importDefault(require("debug"));
4
+ const logger_1 = require("@surgio/logger");
8
5
  const url_1 = require("url");
9
6
  const types_1 = require("../types");
10
- const debug = (0, debug_1.default)('surgio:utils:trojan');
7
+ const logger = (0, logger_1.createLogger)({ service: 'surgio:utils:trojan' });
11
8
  const parseTrojanUri = (str) => {
12
- debug('Trojan URI', str);
9
+ logger.debug('Trojan URI', str);
13
10
  const scheme = new url_1.URL(str);
14
11
  if (scheme.protocol !== 'trojan:') {
15
12
  throw new Error('Invalid Trojan URI.');
@@ -30,4 +27,4 @@ const parseTrojanUri = (str) => {
30
27
  : null));
31
28
  };
32
29
  exports.parseTrojanUri = parseTrojanUri;
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJvamFuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL3V0aWxzL3Ryb2phbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxrREFBMEI7QUFDMUIsNkJBQTBCO0FBRTFCLG9DQUEwRDtBQUUxRCxNQUFNLEtBQUssR0FBRyxJQUFBLGVBQUssRUFBQyxxQkFBcUIsQ0FBQyxDQUFDO0FBRXBDLE1BQU0sY0FBYyxHQUFHLENBQUMsR0FBVyxFQUFvQixFQUFFO0lBQzlELEtBQUssQ0FBQyxZQUFZLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFFekIsTUFBTSxNQUFNLEdBQUcsSUFBSSxTQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFNUIsSUFBSSxNQUFNLENBQUMsUUFBUSxLQUFLLFNBQVMsRUFBRTtRQUNqQyxNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUM7S0FDeEM7SUFFRCxNQUFNLGFBQWEsR0FDakIsTUFBTSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLEtBQUssR0FBRztRQUNoRCxNQUFNLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsS0FBSyxNQUFNLENBQUM7SUFDdEQsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFOUUscUNBQ0UsSUFBSSxFQUFFLG9CQUFZLENBQUMsTUFBTSxFQUN6QixRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFDekIsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQ2pCLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUSxFQUN6QixRQUFRLEVBQUUsTUFBTSxDQUFDLElBQUk7WUFDbkIsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxRQUFRLElBQUksTUFBTSxDQUFDLElBQUksRUFBRSxJQUNwQyxDQUFDLGFBQWE7UUFDZixDQUFDLENBQUM7WUFDRSxjQUFjLEVBQUUsSUFBSTtTQUNyQjtRQUNILENBQUMsQ0FBQyxJQUFJLENBQUMsR0FDTixDQUFDLEdBQUc7UUFDTCxDQUFDLENBQUM7WUFDRSxHQUFHO1NBQ0o7UUFDSCxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQ1Q7QUFDSixDQUFDLENBQUM7QUFqQ1csUUFBQSxjQUFjLGtCQWlDekIifQ==
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJvamFuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL3V0aWxzL3Ryb2phbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQ0FBOEM7QUFDOUMsNkJBQTBCO0FBRTFCLG9DQUEwRDtBQUUxRCxNQUFNLE1BQU0sR0FBRyxJQUFBLHFCQUFZLEVBQUMsRUFBRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsQ0FBQyxDQUFDO0FBRXpELE1BQU0sY0FBYyxHQUFHLENBQUMsR0FBVyxFQUFvQixFQUFFO0lBQzlELE1BQU0sQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBRWhDLE1BQU0sTUFBTSxHQUFHLElBQUksU0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRTVCLElBQUksTUFBTSxDQUFDLFFBQVEsS0FBSyxTQUFTLEVBQUU7UUFDakMsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0tBQ3hDO0lBRUQsTUFBTSxhQUFhLEdBQ2pCLE1BQU0sQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxLQUFLLEdBQUc7UUFDaEQsTUFBTSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLEtBQUssTUFBTSxDQUFDO0lBQ3RELE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRTlFLHFDQUNFLElBQUksRUFBRSxvQkFBWSxDQUFDLE1BQU0sRUFDekIsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQ3pCLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxFQUNqQixRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFDekIsUUFBUSxFQUFFLE1BQU0sQ0FBQyxJQUFJO1lBQ25CLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMxQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsUUFBUSxJQUFJLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFDcEMsQ0FBQyxhQUFhO1FBQ2YsQ0FBQyxDQUFDO1lBQ0UsY0FBYyxFQUFFLElBQUk7U0FDckI7UUFDSCxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQ04sQ0FBQyxHQUFHO1FBQ0wsQ0FBQyxDQUFDO1lBQ0UsR0FBRztTQUNKO1FBQ0gsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUNUO0FBQ0osQ0FBQyxDQUFDO0FBakNXLFFBQUEsY0FBYyxrQkFpQ3pCIn0=
@@ -1,4 +1,4 @@
1
1
  import { VmessNodeConfig } from '../types';
2
2
  export declare const formatVmessUri: (nodeConfig: VmessNodeConfig, options?: {
3
3
  readonly isMellow: boolean;
4
- } | undefined) => string;
4
+ }) => string;
@@ -1,10 +1,7 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.formatVmessUri = void 0;
7
- const query_string_1 = __importDefault(require("query-string"));
4
+ const url_1 = require("url");
8
5
  // https://github.com/v2ray/v2ray-core/issues/1569
9
6
  const formatVmessUri = (nodeConfig, options) => {
10
7
  const uri = [
@@ -15,10 +12,10 @@ const formatVmessUri = (nodeConfig, options) => {
15
12
  ];
16
13
  const queries = {
17
14
  network: nodeConfig.network,
18
- tls: nodeConfig.tls,
15
+ tls: nodeConfig.tls ? 'true' : 'false',
19
16
  };
20
17
  if (nodeConfig.skipCertVerify) {
21
- queries['tls.allowInsecure'] = true;
18
+ queries['tls.allowInsecure'] = 'true';
22
19
  }
23
20
  if (nodeConfig.network === 'ws') {
24
21
  if (typeof nodeConfig.wsHeaders !== 'undefined') {
@@ -37,7 +34,8 @@ const formatVmessUri = (nodeConfig, options) => {
37
34
  }
38
35
  }
39
36
  }
40
- return `vmess://${uri.join('')}?${query_string_1.default.stringify(queries)}`;
37
+ const queryObject = new url_1.URLSearchParams(queries);
38
+ return `vmess://${uri.join('')}?${queryObject.toString()}`;
41
39
  };
42
40
  exports.formatVmessUri = formatVmessUri;
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidjJyYXkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvdXRpbHMvdjJyYXkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsZ0VBQXVDO0FBRXZDLGtEQUFrRDtBQUMzQyxNQUFNLGNBQWMsR0FBRyxDQUM1QixVQUEyQixFQUMzQixPQUF3QyxFQUNoQyxFQUFFO0lBQ1YsTUFBTSxHQUFHLEdBQWE7UUFDcEIsVUFBVSxDQUFDLElBQUk7UUFDZixHQUFHO1FBQ0gsR0FBRyxVQUFVLENBQUMsUUFBUSxJQUFJLFVBQVUsQ0FBQyxJQUFJLEVBQUU7UUFDM0MsVUFBVSxDQUFDLElBQUksSUFBSSxHQUFHO0tBQ3ZCLENBQUM7SUFDRixNQUFNLE9BQU8sR0FBUTtRQUNuQixPQUFPLEVBQUUsVUFBVSxDQUFDLE9BQU87UUFDM0IsR0FBRyxFQUFFLFVBQVUsQ0FBQyxHQUFHO0tBQ3BCLENBQUM7SUFFRixJQUFJLFVBQVUsQ0FBQyxjQUFjLEVBQUU7UUFDN0IsT0FBTyxDQUFDLG1CQUFtQixDQUFDLEdBQUcsSUFBSSxDQUFDO0tBQ3JDO0lBRUQsSUFBSSxVQUFVLENBQUMsT0FBTyxLQUFLLElBQUksRUFBRTtRQUMvQixJQUFJLE9BQU8sVUFBVSxDQUFDLFNBQVMsS0FBSyxXQUFXLEVBQUU7WUFDL0MsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ2hELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO29CQUN0QixPQUFPLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxTQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7aUJBQzNEO1lBQ0gsQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUNELElBQUksVUFBVSxDQUFDLElBQUksRUFBRTtZQUNuQixJQUFJLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxRQUFRLEVBQUU7Z0JBQ3JCLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDO2FBQ3RDO2lCQUFNO2dCQUNMLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUM7YUFDOUM7U0FDRjtLQUNGO0lBRUQsT0FBTyxXQUFXLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksc0JBQVcsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztBQUNyRSxDQUFDLENBQUM7QUFyQ1csUUFBQSxjQUFjLGtCQXFDekIifQ==
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidjJyYXkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvdXRpbHMvdjJyYXkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQXNDO0FBR3RDLGtEQUFrRDtBQUMzQyxNQUFNLGNBQWMsR0FBRyxDQUM1QixVQUEyQixFQUMzQixPQUF3QyxFQUNoQyxFQUFFO0lBQ1YsTUFBTSxHQUFHLEdBQWE7UUFDcEIsVUFBVSxDQUFDLElBQUk7UUFDZixHQUFHO1FBQ0gsR0FBRyxVQUFVLENBQUMsUUFBUSxJQUFJLFVBQVUsQ0FBQyxJQUFJLEVBQUU7UUFDM0MsVUFBVSxDQUFDLElBQUksSUFBSSxHQUFHO0tBQ3ZCLENBQUM7SUFDRixNQUFNLE9BQU8sR0FBMkI7UUFDdEMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxPQUFPO1FBQzNCLEdBQUcsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU87S0FDdkMsQ0FBQztJQUVGLElBQUksVUFBVSxDQUFDLGNBQWMsRUFBRTtRQUM3QixPQUFPLENBQUMsbUJBQW1CLENBQUMsR0FBRyxNQUFNLENBQUM7S0FDdkM7SUFFRCxJQUFJLFVBQVUsQ0FBQyxPQUFPLEtBQUssSUFBSSxFQUFFO1FBQy9CLElBQUksT0FBTyxVQUFVLENBQUMsU0FBUyxLQUFLLFdBQVcsRUFBRTtZQUMvQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDaEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7b0JBQ3RCLE9BQU8sQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDLEdBQUcsVUFBVSxDQUFDLFNBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztpQkFDM0Q7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNKO1FBQ0QsSUFBSSxVQUFVLENBQUMsSUFBSSxFQUFFO1lBQ25CLElBQUksT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLFFBQVEsRUFBRTtnQkFDckIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUM7YUFDdEM7aUJBQU07Z0JBQ0wsT0FBTyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQzthQUM5QztTQUNGO0tBQ0Y7SUFFRCxNQUFNLFdBQVcsR0FBRyxJQUFJLHFCQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFakQsT0FBTyxXQUFXLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksV0FBVyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7QUFDN0QsQ0FBQyxDQUFDO0FBdkNXLFFBQUEsY0FBYyxrQkF1Q3pCIn0=
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "surgio",
3
3
  "description": "Generating rules for Surge, Clash, Quantumult like a PRO",
4
- "version": "2.18.4",
4
+ "version": "2.19.0",
5
5
  "main": "build/index.js",
6
6
  "typings": "build/index.d.ts",
7
7
  "bin": {
@@ -27,7 +27,6 @@
27
27
  "coverage": "cross-env TS_NODE_FILES=true nyc ava",
28
28
  "clean": "rimraf build",
29
29
  "build": "run-s clean && tsc -p tsconfig.json",
30
- "build:binary": "pkg --target node12-macos,node12-win,node12-linux,node12-alpine --out-path ./binary-build .",
31
30
  "prepublish": "run-s build",
32
31
  "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s -r 0",
33
32
  "pub": "np",
@@ -36,7 +35,7 @@
36
35
  "docs:build": "vuepress build docs"
37
36
  },
38
37
  "dependencies": {
39
- "@royli/hygen": "^5.0.4",
38
+ "@royli/hygen": "^6.2.0",
40
39
  "@surgio/eslint-config-surgio": "^1.0.3",
41
40
  "@surgio/logger": "^1.1.0",
42
41
  "@types/eslint": "^7.2.0",
@@ -49,35 +48,33 @@
49
48
  "common-bin": "^2.8.3",
50
49
  "cross-env": "^7.0.2",
51
50
  "date-fns": "^2.16.1",
52
- "debug": "^4.1.1",
53
51
  "detect-newline": "^3.1.0",
54
- "emoji-regex": "^9.0.0",
52
+ "emoji-regex": "^10.1.0",
55
53
  "env2": "^2.2.2",
56
54
  "eslint": "^7.8.1",
57
55
  "espree": "^7.3.0",
58
56
  "execa": "^4.0.3",
59
- "filesize": "^6.1.0",
57
+ "filesize": "^9.0.0",
60
58
  "fs-extra": "^9.0.0",
61
59
  "get-port": "^5.1.0",
62
- "global-agent": "^2.1.7",
60
+ "global-agent": "^3.0.0",
63
61
  "got": "^11.6.1",
64
62
  "inquirer": "^7.1.0",
63
+ "ioredis": "^5.0.5",
65
64
  "joi": "^17.1.1",
66
65
  "listr": "^0.14.3",
67
66
  "lodash": "^4.17.19",
68
- "merge-stream": "^2.0.0",
67
+ "micromatch": "^4.0.5",
69
68
  "ms": "^2.1.3",
70
69
  "node-cache": "^5.1.2",
71
70
  "node-dir": "^0.1.17",
72
71
  "nunjucks": "^3.2.1",
73
72
  "ora": "^5.1.0",
74
- "query-string": "^6.12.1",
73
+ "query-string": "^7.1.1",
75
74
  "rimraf": "^3.0.0",
76
- "shelljs": "^0.8.5",
77
75
  "source-map-support": "^0.5.19",
78
76
  "update-notifier": "^5.0.0",
79
77
  "urlsafe-base64": "^1.0.0",
80
- "winston": "^3.2.1",
81
78
  "yaml": "^1.9.2"
82
79
  },
83
80
  "devDependencies": {
@@ -112,21 +109,20 @@
112
109
  "eslint-plugin-prettier": "^4.0.0",
113
110
  "husky": "^4.3.0",
114
111
  "ini": "^1.3.5",
115
- "jsdom": "^16.2.2",
112
+ "ioredis-mock": "^8.2.2",
116
113
  "lint-staged": "^12.1.7",
117
114
  "nock": "^13.0.0-beta.3",
118
115
  "np": "^6.3.1",
119
116
  "npm-debug-log-cleaner": "^1.0.3",
120
117
  "npm-run-all": "^4.1.5",
121
118
  "nyc": "^15.0.1",
122
- "pkg": "^4.4.8",
123
119
  "prettier": "^2.4.1",
124
120
  "sinon": "^12.0.1",
125
- "sitemap": "^3.0.0",
126
121
  "ts-node": "^10.4.0",
127
122
  "type-fest": "^2.3.4",
128
123
  "typescript": "^4.4.3",
129
- "vuepress": "^2.0.0-beta.26"
124
+ "vuepress": "^2.0.0-beta.26",
125
+ "vuepress-plugin-sitemap2": "^2.0.0-beta.82"
130
126
  },
131
127
  "ava": {
132
128
  "failFast": false,
@@ -165,16 +161,11 @@
165
161
  "pre-commit": "npm-debug-log-cleaner && lint-staged"
166
162
  }
167
163
  },
168
- "pkg": {
169
- "scripts": "build/**/*.js",
170
- "assets": [
171
- "hygen-template/**/*"
172
- ]
173
- },
174
164
  "keywords": [
175
165
  "surgio",
176
166
  "surge",
177
167
  "quantumult",
178
- "clash"
168
+ "clash",
169
+ "shadowrocket"
179
170
  ]
180
171
  }