surgio 3.11.1 → 3.11.3

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 (50) hide show
  1. package/bin/dev +0 -0
  2. package/build/commands/check.js +17 -7
  3. package/build/commands/check.js.map +1 -1
  4. package/build/commands/generate.js +6 -0
  5. package/build/commands/generate.js.map +1 -1
  6. package/build/commands/subscriptions.js +17 -7
  7. package/build/commands/subscriptions.js.map +1 -1
  8. package/build/config.d.ts +1 -1
  9. package/build/configurables.d.ts +3 -2
  10. package/build/filters/index.js +17 -7
  11. package/build/filters/index.js.map +1 -1
  12. package/build/filters/utils.d.ts +1 -1
  13. package/build/generator/artifact.d.ts +43 -83
  14. package/build/generator/template.js +2 -2
  15. package/build/generator/template.js.map +1 -1
  16. package/build/hooks/init.js +17 -7
  17. package/build/hooks/init.js.map +1 -1
  18. package/build/index.d.ts +46 -55
  19. package/build/index.js +17 -7
  20. package/build/index.js.map +1 -1
  21. package/build/provider/ClashProvider.d.ts +3 -3
  22. package/build/provider/Provider.js +17 -7
  23. package/build/provider/Provider.js.map +1 -1
  24. package/build/provider/ShadowsocksSubscribeProvider.d.ts +1 -1
  25. package/build/provider/ShadowsocksrSubscribeProvider.d.ts +1 -1
  26. package/build/provider/SsdProvider.d.ts +1 -1
  27. package/build/provider/TrojanProvider.d.ts +4 -4
  28. package/build/provider/V2rayNSubscribeProvider.d.ts +5 -5
  29. package/build/provider/index.js +2 -2
  30. package/build/provider/index.js.map +1 -1
  31. package/build/utils/clash.js +3 -0
  32. package/build/utils/clash.js.map +1 -1
  33. package/build/utils/dns.d.ts +0 -1
  34. package/build/utils/errors.d.ts +1 -1
  35. package/build/utils/http-client.js +17 -7
  36. package/build/utils/http-client.js.map +1 -1
  37. package/build/utils/index.d.ts +3 -3
  38. package/build/utils/relayable-url.js +1 -1
  39. package/build/utils/relayable-url.js.map +1 -1
  40. package/build/utils/remote-snippet.js +17 -7
  41. package/build/utils/remote-snippet.js.map +1 -1
  42. package/build/utils/ss.js +36 -1
  43. package/build/utils/ss.js.map +1 -1
  44. package/build/utils/tmp-helper.d.ts +1 -1
  45. package/build/validators/artifact.d.ts +5 -2
  46. package/build/validators/artifact.js +1 -0
  47. package/build/validators/artifact.js.map +1 -1
  48. package/build/validators/provider.d.ts +28 -28
  49. package/build/validators/surgio-config.d.ts +13 -8
  50. package/package.json +25 -29
@@ -14,42 +14,42 @@ export declare const ProviderValidator: z.ZodObject<{
14
14
  requestUserAgent: z.ZodOptional<z.ZodString>;
15
15
  renameNode: z.ZodOptional<z.ZodFunction<z.ZodTuple<[z.ZodString], z.ZodUnknown>, z.ZodUnion<[z.ZodString, z.ZodUndefined, z.ZodVoid]>>>;
16
16
  customFilters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodType<(nodeConfig: import("../types").PossibleNodeConfigType) => boolean, z.ZodTypeDef, (nodeConfig: import("../types").PossibleNodeConfigType) => boolean>, z.ZodType<{
17
- readonly filter: <T extends import("../types").PossibleNodeConfigType>(nodeList: readonly T[]) => readonly T[];
17
+ readonly filter: <T extends import("../types").PossibleNodeConfigType>(nodeList: ReadonlyArray<T>) => ReadonlyArray<T>;
18
18
  readonly supportSort: true;
19
19
  }, z.ZodTypeDef, {
20
- readonly filter: <T extends import("../types").PossibleNodeConfigType>(nodeList: readonly T[]) => readonly T[];
20
+ readonly filter: <T extends import("../types").PossibleNodeConfigType>(nodeList: ReadonlyArray<T>) => ReadonlyArray<T>;
21
21
  readonly supportSort: true;
22
22
  }>]>>>;
23
23
  nodeFilter: z.ZodOptional<z.ZodUnion<[z.ZodType<(nodeConfig: import("../types").PossibleNodeConfigType) => boolean, z.ZodTypeDef, (nodeConfig: import("../types").PossibleNodeConfigType) => boolean>, z.ZodType<{
24
- readonly filter: <T extends import("../types").PossibleNodeConfigType>(nodeList: readonly T[]) => readonly T[];
24
+ readonly filter: <T extends import("../types").PossibleNodeConfigType>(nodeList: ReadonlyArray<T>) => ReadonlyArray<T>;
25
25
  readonly supportSort: true;
26
26
  }, z.ZodTypeDef, {
27
- readonly filter: <T extends import("../types").PossibleNodeConfigType>(nodeList: readonly T[]) => readonly T[];
27
+ readonly filter: <T extends import("../types").PossibleNodeConfigType>(nodeList: ReadonlyArray<T>) => ReadonlyArray<T>;
28
28
  readonly supportSort: true;
29
29
  }>]>>;
30
30
  netflixFilter: z.ZodOptional<z.ZodUnion<[z.ZodType<(nodeConfig: import("../types").PossibleNodeConfigType) => boolean, z.ZodTypeDef, (nodeConfig: import("../types").PossibleNodeConfigType) => boolean>, z.ZodType<{
31
- readonly filter: <T extends import("../types").PossibleNodeConfigType>(nodeList: readonly T[]) => readonly T[];
31
+ readonly filter: <T extends import("../types").PossibleNodeConfigType>(nodeList: ReadonlyArray<T>) => ReadonlyArray<T>;
32
32
  readonly supportSort: true;
33
33
  }, z.ZodTypeDef, {
34
- readonly filter: <T extends import("../types").PossibleNodeConfigType>(nodeList: readonly T[]) => readonly T[];
34
+ readonly filter: <T extends import("../types").PossibleNodeConfigType>(nodeList: ReadonlyArray<T>) => ReadonlyArray<T>;
35
35
  readonly supportSort: true;
36
36
  }>]>>;
37
37
  youtubePremiumFilter: z.ZodOptional<z.ZodUnion<[z.ZodType<(nodeConfig: import("../types").PossibleNodeConfigType) => boolean, z.ZodTypeDef, (nodeConfig: import("../types").PossibleNodeConfigType) => boolean>, z.ZodType<{
38
- readonly filter: <T extends import("../types").PossibleNodeConfigType>(nodeList: readonly T[]) => readonly T[];
38
+ readonly filter: <T extends import("../types").PossibleNodeConfigType>(nodeList: ReadonlyArray<T>) => ReadonlyArray<T>;
39
39
  readonly supportSort: true;
40
40
  }, z.ZodTypeDef, {
41
- readonly filter: <T extends import("../types").PossibleNodeConfigType>(nodeList: readonly T[]) => readonly T[];
41
+ readonly filter: <T extends import("../types").PossibleNodeConfigType>(nodeList: ReadonlyArray<T>) => ReadonlyArray<T>;
42
42
  readonly supportSort: true;
43
43
  }>]>>;
44
44
  hooks: z.ZodOptional<z.ZodObject<{
45
- afterNodeListResponse: z.ZodOptional<z.ZodType<(<T_1 extends import("../types").PossibleNodeConfigType>(nodeList: T_1[], customParams: import("../provider").GetNodeListParams) => import("type-fest").Promisable<void | T_1[] | undefined>), z.ZodTypeDef, <T_1 extends import("../types").PossibleNodeConfigType>(nodeList: T_1[], customParams: import("../provider").GetNodeListParams) => import("type-fest").Promisable<void | T_1[] | undefined>>>;
46
- onError: z.ZodOptional<z.ZodType<(error: Error) => unknown, z.ZodTypeDef, (error: Error) => unknown>>;
45
+ afterNodeListResponse: z.ZodOptional<z.ZodType<(<T extends import("../types").PossibleNodeConfigType>(nodeList: T[], customParams: import("../provider").GetNodeListParams) => import("type-fest").Promisable<T[] | undefined | void>), z.ZodTypeDef, <T extends import("../types").PossibleNodeConfigType>(nodeList: T[], customParams: import("../provider").GetNodeListParams) => import("type-fest").Promisable<T[] | undefined | void>>>;
46
+ onError: z.ZodOptional<z.ZodType<(error: Error) => import("type-fest").Promisable<unknown>, z.ZodTypeDef, (error: Error) => import("type-fest").Promisable<unknown>>>;
47
47
  }, "strip", z.ZodTypeAny, {
48
- afterNodeListResponse?: (<T_1 extends import("../types").PossibleNodeConfigType>(nodeList: T_1[], customParams: import("../provider").GetNodeListParams) => import("type-fest").Promisable<void | T_1[] | undefined>) | undefined;
49
- onError?: ((error: Error) => unknown) | undefined;
48
+ afterNodeListResponse?: (<T extends import("../types").PossibleNodeConfigType>(nodeList: T[], customParams: import("../provider").GetNodeListParams) => import("type-fest").Promisable<T[] | undefined | void>) | undefined;
49
+ onError?: ((error: Error) => import("type-fest").Promisable<unknown>) | undefined;
50
50
  }, {
51
- afterNodeListResponse?: (<T_1 extends import("../types").PossibleNodeConfigType>(nodeList: T_1[], customParams: import("../provider").GetNodeListParams) => import("type-fest").Promisable<void | T_1[] | undefined>) | undefined;
52
- onError?: ((error: Error) => unknown) | undefined;
51
+ afterNodeListResponse?: (<T extends import("../types").PossibleNodeConfigType>(nodeList: T[], customParams: import("../provider").GetNodeListParams) => import("type-fest").Promisable<T[] | undefined | void>) | undefined;
52
+ onError?: ((error: Error) => import("type-fest").Promisable<unknown>) | undefined;
53
53
  }>>;
54
54
  }, "strip", z.ZodTypeAny, {
55
55
  type: SupportProviderEnum;
@@ -63,26 +63,26 @@ export declare const ProviderValidator: z.ZodObject<{
63
63
  startPort?: number | undefined;
64
64
  relayUrl?: string | undefined;
65
65
  requestUserAgent?: string | undefined;
66
- renameNode?: ((args_0: string, ...args_1: unknown[]) => string | void | undefined) | undefined;
66
+ renameNode?: ((args_0: string, ...args: unknown[]) => string | void | undefined) | undefined;
67
67
  customFilters?: Record<string, ((nodeConfig: import("../types").PossibleNodeConfigType) => boolean) | {
68
- readonly filter: <T extends import("../types").PossibleNodeConfigType>(nodeList: readonly T[]) => readonly T[];
68
+ readonly filter: <T extends import("../types").PossibleNodeConfigType>(nodeList: ReadonlyArray<T>) => ReadonlyArray<T>;
69
69
  readonly supportSort: true;
70
70
  }> | undefined;
71
71
  nodeFilter?: ((nodeConfig: import("../types").PossibleNodeConfigType) => boolean) | {
72
- readonly filter: <T extends import("../types").PossibleNodeConfigType>(nodeList: readonly T[]) => readonly T[];
72
+ readonly filter: <T extends import("../types").PossibleNodeConfigType>(nodeList: ReadonlyArray<T>) => ReadonlyArray<T>;
73
73
  readonly supportSort: true;
74
74
  } | undefined;
75
75
  netflixFilter?: ((nodeConfig: import("../types").PossibleNodeConfigType) => boolean) | {
76
- readonly filter: <T extends import("../types").PossibleNodeConfigType>(nodeList: readonly T[]) => readonly T[];
76
+ readonly filter: <T extends import("../types").PossibleNodeConfigType>(nodeList: ReadonlyArray<T>) => ReadonlyArray<T>;
77
77
  readonly supportSort: true;
78
78
  } | undefined;
79
79
  youtubePremiumFilter?: ((nodeConfig: import("../types").PossibleNodeConfigType) => boolean) | {
80
- readonly filter: <T extends import("../types").PossibleNodeConfigType>(nodeList: readonly T[]) => readonly T[];
80
+ readonly filter: <T extends import("../types").PossibleNodeConfigType>(nodeList: ReadonlyArray<T>) => ReadonlyArray<T>;
81
81
  readonly supportSort: true;
82
82
  } | undefined;
83
83
  hooks?: {
84
- afterNodeListResponse?: (<T_1 extends import("../types").PossibleNodeConfigType>(nodeList: T_1[], customParams: import("../provider").GetNodeListParams) => import("type-fest").Promisable<void | T_1[] | undefined>) | undefined;
85
- onError?: ((error: Error) => unknown) | undefined;
84
+ afterNodeListResponse?: (<T extends import("../types").PossibleNodeConfigType>(nodeList: T[], customParams: import("../provider").GetNodeListParams) => import("type-fest").Promisable<T[] | undefined | void>) | undefined;
85
+ onError?: ((error: Error) => import("type-fest").Promisable<unknown>) | undefined;
86
86
  } | undefined;
87
87
  }, {
88
88
  type: SupportProviderEnum;
@@ -96,25 +96,25 @@ export declare const ProviderValidator: z.ZodObject<{
96
96
  startPort?: number | undefined;
97
97
  relayUrl?: string | undefined;
98
98
  requestUserAgent?: string | undefined;
99
- renameNode?: ((args_0: string, ...args_1: unknown[]) => string | void | undefined) | undefined;
99
+ renameNode?: ((args_0: string, ...args: unknown[]) => string | void | undefined) | undefined;
100
100
  customFilters?: Record<string, ((nodeConfig: import("../types").PossibleNodeConfigType) => boolean) | {
101
- readonly filter: <T extends import("../types").PossibleNodeConfigType>(nodeList: readonly T[]) => readonly T[];
101
+ readonly filter: <T extends import("../types").PossibleNodeConfigType>(nodeList: ReadonlyArray<T>) => ReadonlyArray<T>;
102
102
  readonly supportSort: true;
103
103
  }> | undefined;
104
104
  nodeFilter?: ((nodeConfig: import("../types").PossibleNodeConfigType) => boolean) | {
105
- readonly filter: <T extends import("../types").PossibleNodeConfigType>(nodeList: readonly T[]) => readonly T[];
105
+ readonly filter: <T extends import("../types").PossibleNodeConfigType>(nodeList: ReadonlyArray<T>) => ReadonlyArray<T>;
106
106
  readonly supportSort: true;
107
107
  } | undefined;
108
108
  netflixFilter?: ((nodeConfig: import("../types").PossibleNodeConfigType) => boolean) | {
109
- readonly filter: <T extends import("../types").PossibleNodeConfigType>(nodeList: readonly T[]) => readonly T[];
109
+ readonly filter: <T extends import("../types").PossibleNodeConfigType>(nodeList: ReadonlyArray<T>) => ReadonlyArray<T>;
110
110
  readonly supportSort: true;
111
111
  } | undefined;
112
112
  youtubePremiumFilter?: ((nodeConfig: import("../types").PossibleNodeConfigType) => boolean) | {
113
- readonly filter: <T extends import("../types").PossibleNodeConfigType>(nodeList: readonly T[]) => readonly T[];
113
+ readonly filter: <T extends import("../types").PossibleNodeConfigType>(nodeList: ReadonlyArray<T>) => ReadonlyArray<T>;
114
114
  readonly supportSort: true;
115
115
  } | undefined;
116
116
  hooks?: {
117
- afterNodeListResponse?: (<T_1 extends import("../types").PossibleNodeConfigType>(nodeList: T_1[], customParams: import("../provider").GetNodeListParams) => import("type-fest").Promisable<void | T_1[] | undefined>) | undefined;
118
- onError?: ((error: Error) => unknown) | undefined;
117
+ afterNodeListResponse?: (<T extends import("../types").PossibleNodeConfigType>(nodeList: T[], customParams: import("../provider").GetNodeListParams) => import("type-fest").Promisable<T[] | undefined | void>) | undefined;
118
+ onError?: ((error: Error) => import("type-fest").Promisable<unknown>) | undefined;
119
119
  } | undefined;
120
120
  }>;
@@ -68,6 +68,7 @@ export declare const SurgioConfigValidator: z.ZodObject<{
68
68
  customParams: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
69
69
  customFilters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>>>;
70
70
  destDir: z.ZodOptional<z.ZodString>;
71
+ destDirs: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
71
72
  downloadUrl: z.ZodOptional<z.ZodString>;
72
73
  templateString: z.ZodOptional<z.ZodString>;
73
74
  subscriptionUserInfoProvider: z.ZodOptional<z.ZodString>;
@@ -76,12 +77,13 @@ export declare const SurgioConfigValidator: z.ZodObject<{
76
77
  template: string;
77
78
  templateType: "default" | "json";
78
79
  provider: string;
79
- extendTemplate?: ((args_0: unknown, ...args_1: unknown[]) => unknown) | undefined;
80
+ extendTemplate?: ((args_0: unknown, ...args: unknown[]) => unknown) | undefined;
80
81
  categories?: string[] | undefined;
81
82
  combineProviders?: string[] | undefined;
82
83
  customParams?: Record<string, any> | undefined;
83
84
  customFilters?: Record<string, (...args: unknown[]) => unknown> | undefined;
84
85
  destDir?: string | undefined;
86
+ destDirs?: string[] | undefined;
85
87
  downloadUrl?: string | undefined;
86
88
  templateString?: string | undefined;
87
89
  subscriptionUserInfoProvider?: string | undefined;
@@ -90,12 +92,13 @@ export declare const SurgioConfigValidator: z.ZodObject<{
90
92
  template: string;
91
93
  provider: string;
92
94
  templateType?: "default" | "json" | undefined;
93
- extendTemplate?: ((args_0: unknown, ...args_1: unknown[]) => unknown) | undefined;
95
+ extendTemplate?: ((args_0: unknown, ...args: unknown[]) => unknown) | undefined;
94
96
  categories?: string[] | undefined;
95
97
  combineProviders?: string[] | undefined;
96
98
  customParams?: Record<string, any> | undefined;
97
99
  customFilters?: Record<string, (...args: unknown[]) => unknown> | undefined;
98
100
  destDir?: string | undefined;
101
+ destDirs?: string[] | undefined;
99
102
  downloadUrl?: string | undefined;
100
103
  templateString?: string | undefined;
101
104
  subscriptionUserInfoProvider?: string | undefined;
@@ -216,10 +219,10 @@ export declare const SurgioConfigValidator: z.ZodObject<{
216
219
  internetTestUrl: z.ZodOptional<z.ZodString>;
217
220
  internetTestInterval: z.ZodOptional<z.ZodNumber>;
218
221
  customFilters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodType<(nodeConfig: import("../types").PossibleNodeConfigType) => boolean, z.ZodTypeDef, (nodeConfig: import("../types").PossibleNodeConfigType) => boolean>, z.ZodType<{
219
- readonly filter: <T extends import("../types").PossibleNodeConfigType>(nodeList: readonly T[]) => readonly T[];
222
+ readonly filter: <T extends import("../types").PossibleNodeConfigType>(nodeList: ReadonlyArray<T>) => ReadonlyArray<T>;
220
223
  readonly supportSort: true;
221
224
  }, z.ZodTypeDef, {
222
- readonly filter: <T extends import("../types").PossibleNodeConfigType>(nodeList: readonly T[]) => readonly T[];
225
+ readonly filter: <T extends import("../types").PossibleNodeConfigType>(nodeList: ReadonlyArray<T>) => ReadonlyArray<T>;
223
226
  readonly supportSort: true;
224
227
  }>]>>>;
225
228
  customParams: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
@@ -240,12 +243,13 @@ export declare const SurgioConfigValidator: z.ZodObject<{
240
243
  template: string;
241
244
  templateType: "default" | "json";
242
245
  provider: string;
243
- extendTemplate?: ((args_0: unknown, ...args_1: unknown[]) => unknown) | undefined;
246
+ extendTemplate?: ((args_0: unknown, ...args: unknown[]) => unknown) | undefined;
244
247
  categories?: string[] | undefined;
245
248
  combineProviders?: string[] | undefined;
246
249
  customParams?: Record<string, any> | undefined;
247
250
  customFilters?: Record<string, (...args: unknown[]) => unknown> | undefined;
248
251
  destDir?: string | undefined;
252
+ destDirs?: string[] | undefined;
249
253
  downloadUrl?: string | undefined;
250
254
  templateString?: string | undefined;
251
255
  subscriptionUserInfoProvider?: string | undefined;
@@ -300,7 +304,7 @@ export declare const SurgioConfigValidator: z.ZodObject<{
300
304
  internetTestUrl?: string | undefined;
301
305
  internetTestInterval?: number | undefined;
302
306
  customFilters?: Record<string, ((nodeConfig: import("../types").PossibleNodeConfigType) => boolean) | {
303
- readonly filter: <T extends import("../types").PossibleNodeConfigType>(nodeList: readonly T[]) => readonly T[];
307
+ readonly filter: <T extends import("../types").PossibleNodeConfigType>(nodeList: ReadonlyArray<T>) => ReadonlyArray<T>;
304
308
  readonly supportSort: true;
305
309
  }> | undefined;
306
310
  customParams?: Record<string, any> | undefined;
@@ -315,12 +319,13 @@ export declare const SurgioConfigValidator: z.ZodObject<{
315
319
  template: string;
316
320
  provider: string;
317
321
  templateType?: "default" | "json" | undefined;
318
- extendTemplate?: ((args_0: unknown, ...args_1: unknown[]) => unknown) | undefined;
322
+ extendTemplate?: ((args_0: unknown, ...args: unknown[]) => unknown) | undefined;
319
323
  categories?: string[] | undefined;
320
324
  combineProviders?: string[] | undefined;
321
325
  customParams?: Record<string, any> | undefined;
322
326
  customFilters?: Record<string, (...args: unknown[]) => unknown> | undefined;
323
327
  destDir?: string | undefined;
328
+ destDirs?: string[] | undefined;
324
329
  downloadUrl?: string | undefined;
325
330
  templateString?: string | undefined;
326
331
  subscriptionUserInfoProvider?: string | undefined;
@@ -375,7 +380,7 @@ export declare const SurgioConfigValidator: z.ZodObject<{
375
380
  internetTestUrl?: string | undefined;
376
381
  internetTestInterval?: number | undefined;
377
382
  customFilters?: Record<string, ((nodeConfig: import("../types").PossibleNodeConfigType) => boolean) | {
378
- readonly filter: <T extends import("../types").PossibleNodeConfigType>(nodeList: readonly T[]) => readonly T[];
383
+ readonly filter: <T extends import("../types").PossibleNodeConfigType>(nodeList: ReadonlyArray<T>) => ReadonlyArray<T>;
379
384
  readonly supportSort: true;
380
385
  }> | undefined;
381
386
  customParams?: Record<string, any> | undefined;
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": "3.11.1",
4
+ "version": "3.11.3",
5
5
  "main": "./build/index.js",
6
6
  "types": "./build/index.d.ts",
7
7
  "bin": {
@@ -33,27 +33,6 @@
33
33
  "url": "https://github.com/geekdada/surgio/issues"
34
34
  },
35
35
  "homepage": "https://surgio.js.org",
36
- "scripts": {
37
- "dev": "npm run build -- --watch",
38
- "test": "run-s build test:lint test:unit test:cli",
39
- "test:types": "tsc --noEmit",
40
- "test:lint": "eslint -c .eslintrc.js --ext .js,.ts .",
41
- "test:unit": "ava",
42
- "test:cli": "mocha",
43
- "test:cli:update": "CHAI_JEST_SNAPSHOT_UPDATE_ALL=true pnpm test:cli",
44
- "run-example": "node ./scripts/run-example.js",
45
- "coverage": "TS_NODE_FILES=true nyc ava",
46
- "clean": "rimraf build",
47
- "build": "tsc -p tsconfig.build.json",
48
- "prepublishOnly": "npm run clean && npm run build",
49
- "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s -r 0",
50
- "prepare": "husky install",
51
- "docs:dev": "NODE_ENV=development vuepress dev docs",
52
- "docs:build": "NODE_ENV=production vuepress build docs",
53
- "release": "bumpp && npm publish",
54
- "release:beta": "bumpp --preid beta --no-push && npm publish --tag beta",
55
- "check-vuepress-version": "ncu -f \"*vuepress*\" --interactive --target @next -p pnpm"
56
- },
57
36
  "oclif": {
58
37
  "bin": "surgio",
59
38
  "dirname": "surgio",
@@ -104,10 +83,12 @@
104
83
  "hpagent": "^1.2.0",
105
84
  "inquirer": "^8.2.6",
106
85
  "ioredis": "^5.3.2",
86
+ "is-gzip": "^2.0.0",
107
87
  "lodash": "^4.17.21",
108
88
  "micromatch": "^4.0.5",
109
89
  "ms": "^2.1.3",
110
90
  "node-dir": "^0.1.17",
91
+ "node-gzip": "^1.1.2",
111
92
  "nunjucks": "^3.2.4",
112
93
  "ora": "^5.4.1",
113
94
  "query-string": "^7.1.3",
@@ -136,12 +117,14 @@
136
117
  "@types/ini": "^1.3.34",
137
118
  "@types/inquirer": "^8.2.10",
138
119
  "@types/ioredis-mock": "^8.2.5",
120
+ "@types/is-gzip": "^2.0.2",
139
121
  "@types/lodash": "^4.14.202",
140
122
  "@types/micromatch": "^4.0.6",
141
123
  "@types/mocha": "^10.0.6",
142
124
  "@types/ms": "^0.7.34",
143
125
  "@types/node": "^18.19.21",
144
126
  "@types/node-dir": "^0.0.35",
127
+ "@types/node-gzip": "^1.1.3",
145
128
  "@types/nunjucks": "^3.2.6",
146
129
  "@types/sinon": "^10.0.20",
147
130
  "@types/urlsafe-base64": "^1.0.31",
@@ -184,7 +167,7 @@
184
167
  "search-insights": ">=1.0.0 <3.0.0-0",
185
168
  "sinon": "^15.2.0",
186
169
  "ts-node": "^10.9.2",
187
- "typescript": "^5.3.3",
170
+ "typescript": "^5.9.2",
188
171
  "vue": "^3.5.0",
189
172
  "vuepress": "2.0.0-rc.19",
190
173
  "vuepress-plugin-umami-analytics": "1.8.1"
@@ -223,7 +206,6 @@
223
206
  "engines": {
224
207
  "node": ">=18.0.0"
225
208
  },
226
- "packageManager": "pnpm@9.15.9+sha256.cf86a7ad764406395d4286a6d09d730711720acc6d93e9dce9ac7ac4dc4a28a7",
227
209
  "lint-staged": {
228
210
  "*.js": "eslint",
229
211
  "*.ts": "eslint --ext .ts"
@@ -243,9 +225,23 @@
243
225
  "singbox",
244
226
  "shadowrocket"
245
227
  ],
246
- "pnpm": {
247
- "patchedDependencies": {
248
- "vuepress-plugin-umami-analytics@1.8.1": "patches/vuepress-plugin-umami-analytics@1.8.1.patch"
249
- }
228
+ "scripts": {
229
+ "dev": "npm run build -- --watch",
230
+ "test": "run-s build test:lint test:unit test:cli",
231
+ "test:types": "tsc --noEmit",
232
+ "test:lint": "eslint -c .eslintrc.js --ext .js,.ts .",
233
+ "test:unit": "ava",
234
+ "test:cli": "mocha",
235
+ "test:cli:update": "CHAI_JEST_SNAPSHOT_UPDATE_ALL=true pnpm test:cli",
236
+ "run-example": "node ./scripts/run-example.js",
237
+ "coverage": "TS_NODE_FILES=true nyc ava",
238
+ "clean": "rimraf build",
239
+ "build": "tsc -p tsconfig.build.json",
240
+ "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s -r 0",
241
+ "docs:dev": "NODE_ENV=development vuepress dev docs",
242
+ "docs:build": "NODE_ENV=production vuepress build docs",
243
+ "release": "bumpp && npm publish",
244
+ "release:beta": "bumpp --preid beta --no-push && npm publish --tag beta",
245
+ "check-vuepress-version": "ncu -f \"*vuepress*\" --interactive --target @next -p pnpm"
250
246
  }
251
- }
247
+ }