surgio 3.11.2 → 3.12.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 (260) hide show
  1. package/bin/dev +0 -0
  2. package/package.json +69 -75
  3. package/build/base-command.d.ts +0 -20
  4. package/build/base-command.js +0 -75
  5. package/build/base-command.js.map +0 -1
  6. package/build/commands/check.d.ts +0 -10
  7. package/build/commands/check.js +0 -87
  8. package/build/commands/check.js.map +0 -1
  9. package/build/commands/clean-cache.d.ts +0 -6
  10. package/build/commands/clean-cache.js +0 -28
  11. package/build/commands/clean-cache.js.map +0 -1
  12. package/build/commands/doctor.d.ts +0 -6
  13. package/build/commands/doctor.js +0 -20
  14. package/build/commands/doctor.js.map +0 -1
  15. package/build/commands/generate.d.ts +0 -7
  16. package/build/commands/generate.js +0 -94
  17. package/build/commands/generate.js.map +0 -1
  18. package/build/commands/lint.d.ts +0 -6
  19. package/build/commands/lint.js +0 -37
  20. package/build/commands/lint.js.map +0 -1
  21. package/build/commands/new.d.ts +0 -6
  22. package/build/commands/new.js +0 -37
  23. package/build/commands/new.js.map +0 -1
  24. package/build/commands/subscriptions.d.ts +0 -7
  25. package/build/commands/subscriptions.js +0 -95
  26. package/build/commands/subscriptions.js.map +0 -1
  27. package/build/commands/upload.d.ts +0 -6
  28. package/build/commands/upload.js +0 -91
  29. package/build/commands/upload.js.map +0 -1
  30. package/build/config.d.ts +0 -6
  31. package/build/config.js +0 -156
  32. package/build/config.js.map +0 -1
  33. package/build/configurables.d.ts +0 -88
  34. package/build/configurables.js +0 -52
  35. package/build/configurables.js.map +0 -1
  36. package/build/constant/constant.d.ts +0 -36
  37. package/build/constant/constant.js +0 -160
  38. package/build/constant/constant.js.map +0 -1
  39. package/build/constant/env.d.ts +0 -9
  40. package/build/constant/env.js +0 -13
  41. package/build/constant/env.js.map +0 -1
  42. package/build/constant/error.d.ts +0 -1
  43. package/build/constant/error.js +0 -5
  44. package/build/constant/error.js.map +0 -1
  45. package/build/constant/index.d.ts +0 -3
  46. package/build/constant/index.js +0 -20
  47. package/build/constant/index.js.map +0 -1
  48. package/build/filters/classes.d.ts +0 -13
  49. package/build/filters/classes.js +0 -42
  50. package/build/filters/classes.js.map +0 -1
  51. package/build/filters/filters.d.ts +0 -25
  52. package/build/filters/filters.js +0 -107
  53. package/build/filters/filters.js.map +0 -1
  54. package/build/filters/index.d.ts +0 -2
  55. package/build/filters/index.js +0 -32
  56. package/build/filters/index.js.map +0 -1
  57. package/build/filters/utils.d.ts +0 -16
  58. package/build/filters/utils.js +0 -159
  59. package/build/filters/utils.js.map +0 -1
  60. package/build/generator/artifact.d.ts +0 -142
  61. package/build/generator/artifact.js +0 -370
  62. package/build/generator/artifact.js.map +0 -1
  63. package/build/generator/index.d.ts +0 -3
  64. package/build/generator/index.js +0 -25
  65. package/build/generator/index.js.map +0 -1
  66. package/build/generator/json-template.d.ts +0 -11
  67. package/build/generator/json-template.js +0 -66
  68. package/build/generator/json-template.js.map +0 -1
  69. package/build/generator/template.d.ts +0 -8
  70. package/build/generator/template.js +0 -234
  71. package/build/generator/template.js.map +0 -1
  72. package/build/hooks/init.d.ts +0 -3
  73. package/build/hooks/init.js +0 -33
  74. package/build/hooks/init.js.map +0 -1
  75. package/build/index.d.ts +0 -85
  76. package/build/index.js +0 -64
  77. package/build/index.js.map +0 -1
  78. package/build/internal.d.ts +0 -5
  79. package/build/internal.js +0 -25
  80. package/build/internal.js.map +0 -1
  81. package/build/misc/deprecation.d.ts +0 -0
  82. package/build/misc/deprecation.js +0 -2
  83. package/build/misc/deprecation.js.map +0 -1
  84. package/build/misc/flag_cn.d.ts +0 -56
  85. package/build/misc/flag_cn.js +0 -154
  86. package/build/misc/flag_cn.js.map +0 -1
  87. package/build/provider/BlackSSLProvider.d.ts +0 -11
  88. package/build/provider/BlackSSLProvider.js +0 -93
  89. package/build/provider/BlackSSLProvider.js.map +0 -1
  90. package/build/provider/ClashProvider.d.ts +0 -24
  91. package/build/provider/ClashProvider.js +0 -476
  92. package/build/provider/ClashProvider.js.map +0 -1
  93. package/build/provider/CustomProvider.d.ts +0 -10
  94. package/build/provider/CustomProvider.js +0 -144
  95. package/build/provider/CustomProvider.js.map +0 -1
  96. package/build/provider/Provider.d.ts +0 -17
  97. package/build/provider/Provider.js +0 -111
  98. package/build/provider/Provider.js.map +0 -1
  99. package/build/provider/ShadowsocksJsonSubscribeProvider.d.ts +0 -11
  100. package/build/provider/ShadowsocksJsonSubscribeProvider.js +0 -86
  101. package/build/provider/ShadowsocksJsonSubscribeProvider.js.map +0 -1
  102. package/build/provider/ShadowsocksSubscribeProvider.d.ts +0 -18
  103. package/build/provider/ShadowsocksSubscribeProvider.js +0 -84
  104. package/build/provider/ShadowsocksSubscribeProvider.js.map +0 -1
  105. package/build/provider/ShadowsocksrSubscribeProvider.d.ts +0 -15
  106. package/build/provider/ShadowsocksrSubscribeProvider.js +0 -93
  107. package/build/provider/ShadowsocksrSubscribeProvider.js.map +0 -1
  108. package/build/provider/SsdProvider.d.ts +0 -39
  109. package/build/provider/SsdProvider.js +0 -138
  110. package/build/provider/SsdProvider.js.map +0 -1
  111. package/build/provider/TrojanProvider.d.ts +0 -24
  112. package/build/provider/TrojanProvider.js +0 -98
  113. package/build/provider/TrojanProvider.js.map +0 -1
  114. package/build/provider/V2rayNSubscribeProvider.d.ts +0 -25
  115. package/build/provider/V2rayNSubscribeProvider.js +0 -181
  116. package/build/provider/V2rayNSubscribeProvider.js.map +0 -1
  117. package/build/provider/index.d.ts +0 -17
  118. package/build/provider/index.js +0 -54
  119. package/build/provider/index.js.map +0 -1
  120. package/build/provider/types.d.ts +0 -18
  121. package/build/provider/types.js +0 -3
  122. package/build/provider/types.js.map +0 -1
  123. package/build/redis.d.ts +0 -9
  124. package/build/redis.js +0 -63
  125. package/build/redis.js.map +0 -1
  126. package/build/types.d.ts +0 -138
  127. package/build/types.js +0 -31
  128. package/build/types.js.map +0 -1
  129. package/build/utils/cache.d.ts +0 -23
  130. package/build/utils/cache.js +0 -98
  131. package/build/utils/cache.js.map +0 -1
  132. package/build/utils/clash.d.ts +0 -3
  133. package/build/utils/clash.js +0 -448
  134. package/build/utils/clash.js.map +0 -1
  135. package/build/utils/constant.d.ts +0 -1
  136. package/build/utils/constant.js +0 -19
  137. package/build/utils/constant.js.map +0 -1
  138. package/build/utils/dns.d.ts +0 -4
  139. package/build/utils/dns.js +0 -51
  140. package/build/utils/dns.js.map +0 -1
  141. package/build/utils/doctor.d.ts +0 -2
  142. package/build/utils/doctor.js +0 -38
  143. package/build/utils/doctor.js.map +0 -1
  144. package/build/utils/env-flag.d.ts +0 -9
  145. package/build/utils/env-flag.js +0 -41
  146. package/build/utils/env-flag.js.map +0 -1
  147. package/build/utils/error-helper.d.ts +0 -2
  148. package/build/utils/error-helper.js +0 -62
  149. package/build/utils/error-helper.js.map +0 -1
  150. package/build/utils/errors.d.ts +0 -19
  151. package/build/utils/errors.js +0 -60
  152. package/build/utils/errors.js.map +0 -1
  153. package/build/utils/flag.d.ts +0 -3
  154. package/build/utils/flag.js +0 -79
  155. package/build/utils/flag.js.map +0 -1
  156. package/build/utils/http-client.d.ts +0 -3
  157. package/build/utils/http-client.js +0 -82
  158. package/build/utils/http-client.js.map +0 -1
  159. package/build/utils/index.d.ts +0 -90
  160. package/build/utils/index.js +0 -529
  161. package/build/utils/index.js.map +0 -1
  162. package/build/utils/linter.d.ts +0 -4
  163. package/build/utils/linter.js +0 -49
  164. package/build/utils/linter.js.map +0 -1
  165. package/build/utils/loon.d.ts +0 -3
  166. package/build/utils/loon.js +0 -236
  167. package/build/utils/loon.js.map +0 -1
  168. package/build/utils/quantumult.d.ts +0 -6
  169. package/build/utils/quantumult.js +0 -240
  170. package/build/utils/quantumult.js.map +0 -1
  171. package/build/utils/relayable-url.d.ts +0 -1
  172. package/build/utils/relayable-url.js +0 -18
  173. package/build/utils/relayable-url.js.map +0 -1
  174. package/build/utils/remote-snippet.d.ts +0 -8
  175. package/build/utils/remote-snippet.js +0 -198
  176. package/build/utils/remote-snippet.js.map +0 -1
  177. package/build/utils/singbox.d.ts +0 -3
  178. package/build/utils/singbox.js +0 -377
  179. package/build/utils/singbox.js.map +0 -1
  180. package/build/utils/ss.d.ts +0 -3
  181. package/build/utils/ss.js +0 -97
  182. package/build/utils/ss.js.map +0 -1
  183. package/build/utils/ssr.d.ts +0 -7
  184. package/build/utils/ssr.js +0 -53
  185. package/build/utils/ssr.js.map +0 -1
  186. package/build/utils/subscription.d.ts +0 -11
  187. package/build/utils/subscription.js +0 -68
  188. package/build/utils/subscription.js.map +0 -1
  189. package/build/utils/surfboard.d.ts +0 -7
  190. package/build/utils/surfboard.js +0 -184
  191. package/build/utils/surfboard.js.map +0 -1
  192. package/build/utils/surge.d.ts +0 -8
  193. package/build/utils/surge.js +0 -407
  194. package/build/utils/surge.js.map +0 -1
  195. package/build/utils/time.d.ts +0 -1
  196. package/build/utils/time.js +0 -6
  197. package/build/utils/time.js.map +0 -1
  198. package/build/utils/tmp-helper.d.ts +0 -30
  199. package/build/utils/tmp-helper.js +0 -102
  200. package/build/utils/tmp-helper.js.map +0 -1
  201. package/build/utils/trojan.d.ts +0 -2
  202. package/build/utils/trojan.js +0 -38
  203. package/build/utils/trojan.js.map +0 -1
  204. package/build/utils/useragent.d.ts +0 -18
  205. package/build/utils/useragent.js +0 -210
  206. package/build/utils/useragent.js.map +0 -1
  207. package/build/validators/artifact.d.ts +0 -44
  208. package/build/validators/artifact.js +0 -26
  209. package/build/validators/artifact.js.map +0 -1
  210. package/build/validators/common.d.ts +0 -377
  211. package/build/validators/common.js +0 -106
  212. package/build/validators/common.js.map +0 -1
  213. package/build/validators/filter.d.ts +0 -10
  214. package/build/validators/filter.js +0 -15
  215. package/build/validators/filter.js.map +0 -1
  216. package/build/validators/hooks.d.ts +0 -9
  217. package/build/validators/hooks.js +0 -11
  218. package/build/validators/hooks.js.map +0 -1
  219. package/build/validators/http.d.ts +0 -366
  220. package/build/validators/http.js +0 -23
  221. package/build/validators/http.js.map +0 -1
  222. package/build/validators/hysteria2.d.ts +0 -196
  223. package/build/validators/hysteria2.js +0 -15
  224. package/build/validators/hysteria2.js.map +0 -1
  225. package/build/validators/index.d.ts +0 -17
  226. package/build/validators/index.js +0 -34
  227. package/build/validators/index.js.map +0 -1
  228. package/build/validators/provider.d.ts +0 -120
  229. package/build/validators/provider.js +0 -46
  230. package/build/validators/provider.js.map +0 -1
  231. package/build/validators/shadowsocks.d.ts +0 -252
  232. package/build/validators/shadowsocks.js +0 -31
  233. package/build/validators/shadowsocks.js.map +0 -1
  234. package/build/validators/shadowsocksr.d.ts +0 -184
  235. package/build/validators/shadowsocksr.js +0 -19
  236. package/build/validators/shadowsocksr.js.map +0 -1
  237. package/build/validators/snell.d.ts +0 -178
  238. package/build/validators/snell.js +0 -17
  239. package/build/validators/snell.js.map +0 -1
  240. package/build/validators/socks5.d.ts +0 -196
  241. package/build/validators/socks5.js +0 -15
  242. package/build/validators/socks5.js.map +0 -1
  243. package/build/validators/surgio-config.d.ts +0 -387
  244. package/build/validators/surgio-config.js +0 -101
  245. package/build/validators/surgio-config.js.map +0 -1
  246. package/build/validators/trojan.d.ts +0 -255
  247. package/build/validators/trojan.js +0 -16
  248. package/build/validators/trojan.js.map +0 -1
  249. package/build/validators/tuic.d.ts +0 -741
  250. package/build/validators/tuic.js +0 -21
  251. package/build/validators/tuic.js.map +0 -1
  252. package/build/validators/vless.d.ts +0 -389
  253. package/build/validators/vless.js +0 -31
  254. package/build/validators/vless.js.map +0 -1
  255. package/build/validators/vmess.d.ts +0 -425
  256. package/build/validators/vmess.js +0 -86
  257. package/build/validators/vmess.js.map +0 -1
  258. package/build/validators/wireguard.d.ts +0 -230
  259. package/build/validators/wireguard.js +0 -26
  260. package/build/validators/wireguard.js.map +0 -1
package/bin/dev CHANGED
File without changes
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.2",
4
+ "version": "3.12.0",
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",
@@ -73,41 +52,41 @@
73
52
  "topics": {}
74
53
  },
75
54
  "dependencies": {
76
- "@babel/parser": "^7.24.0",
77
- "@brillout/import": "^0.2.3",
78
- "@oclif/core": "^2.15.0",
55
+ "@babel/parser": "^7.28.5",
56
+ "@brillout/import": "^0.2.6",
57
+ "@oclif/core": "^2.16.0",
79
58
  "@oclif/plugin-help": "^5.2.20",
80
- "@oclif/plugin-plugins": "^3.9.4",
59
+ "@oclif/plugin-plugins": "^3.10.1",
81
60
  "@royli/hygen": "^6.2.0",
82
- "@surgio/eslint-config-surgio": "^1.0.6",
61
+ "@surgio/eslint-config-surgio": "^2.0.0",
83
62
  "@surgio/logger": "^1.3.0",
84
- "@types/eslint": "^8.56.5",
85
- "agentkeepalive": "^4.5.0",
86
- "ali-oss": "^6.20.0",
63
+ "ali-oss": "^6.23.0",
87
64
  "bluebird": "^3.7.2",
88
65
  "bytes": "^3.1.2",
89
- "cache-manager": "^5.4.0",
66
+ "cache-manager": "^5.7.6",
90
67
  "cache-manager-ioredis-yet": "^1.2.2",
91
68
  "chalk": "^4.1.2",
92
69
  "change-case": "^4.1.2",
93
70
  "check-node-version": "^4.2.1",
94
- "compare-versions": "^6.1.0",
71
+ "compare-versions": "^6.1.1",
95
72
  "date-fns": "^2.30.0",
96
73
  "detect-newline": "^3.1.0",
97
- "dotenv": "^16.4.5",
98
- "emoji-regex": "^10.3.0",
99
- "eslint": "^8.57.0",
74
+ "dotenv": "^16.6.1",
75
+ "emoji-regex": "^10.6.0",
76
+ "eslint": "^9.28.0",
100
77
  "execa": "^4.1.0",
101
- "filesize": "^10.1.0",
102
- "fs-extra": "^11.2.0",
78
+ "filesize": "^10.1.6",
79
+ "fs-extra": "^11.3.3",
103
80
  "got": "^11.8.6",
104
81
  "hpagent": "^1.2.0",
105
- "inquirer": "^8.2.6",
106
- "ioredis": "^5.3.2",
82
+ "inquirer": "^8.2.7",
83
+ "ioredis": "^5.8.2",
84
+ "is-gzip": "^2.0.0",
107
85
  "lodash": "^4.17.21",
108
- "micromatch": "^4.0.5",
86
+ "micromatch": "^4.0.8",
109
87
  "ms": "^2.1.3",
110
88
  "node-dir": "^0.1.17",
89
+ "node-gzip": "^1.1.2",
111
90
  "nunjucks": "^3.2.4",
112
91
  "ora": "^5.4.1",
113
92
  "query-string": "^7.1.3",
@@ -117,36 +96,38 @@
117
96
  "type-fest": "^3.13.1",
118
97
  "update-notifier": "^5.1.0",
119
98
  "urlsafe-base64": "^1.0.0",
120
- "yaml": "^2.4.0",
121
- "zod": "^3.22.4",
99
+ "yaml": "^2.8.2",
100
+ "zod": "^3.25.76",
122
101
  "zod-validation-error": "^1.5.0"
123
102
  },
124
103
  "devDependencies": {
125
- "@algolia/client-search": "^4.22.1",
104
+ "@algolia/client-search": "^4.25.3",
126
105
  "@commitlint/cli": "^17.8.1",
127
106
  "@commitlint/config-angular": "^17.8.1",
128
107
  "@istanbuljs/nyc-config-typescript": "^1.0.2",
129
108
  "@oclif/test": "^2.5.6",
130
- "@types/ali-oss": "^6.16.11",
109
+ "@types/ali-oss": "^6.16.13",
131
110
  "@types/bluebird": "^3.5.42",
132
- "@types/bytes": "^3.1.4",
133
- "@types/chai": "^4.3.12",
111
+ "@types/bytes": "^3.1.5",
112
+ "@types/chai": "^4.3.20",
134
113
  "@types/debug": "^4.1.12",
135
114
  "@types/fs-extra": "^11.0.4",
136
115
  "@types/ini": "^1.3.34",
137
- "@types/inquirer": "^8.2.10",
138
- "@types/ioredis-mock": "^8.2.5",
139
- "@types/lodash": "^4.14.202",
140
- "@types/micromatch": "^4.0.6",
141
- "@types/mocha": "^10.0.6",
116
+ "@types/inquirer": "^8.2.12",
117
+ "@types/ioredis-mock": "^8.2.6",
118
+ "@types/is-gzip": "^2.0.2",
119
+ "@types/lodash": "^4.17.21",
120
+ "@types/micromatch": "^4.0.10",
121
+ "@types/mocha": "^10.0.10",
142
122
  "@types/ms": "^0.7.34",
143
- "@types/node": "^18.19.21",
123
+ "@types/node": "^18.19.130",
144
124
  "@types/node-dir": "^0.0.35",
125
+ "@types/node-gzip": "^1.1.3",
145
126
  "@types/nunjucks": "^3.2.6",
146
127
  "@types/sinon": "^10.0.20",
147
128
  "@types/urlsafe-base64": "^1.0.31",
148
- "@typescript-eslint/eslint-plugin": "^7",
149
- "@typescript-eslint/parser": "^7",
129
+ "@eslint/js": "^9.28.0",
130
+ "typescript-eslint": "^8.33.1",
150
131
  "@vuepress/bundler-vite": "2.0.0-rc.19",
151
132
  "@vuepress/client": "2.0.0-rc.19",
152
133
  "@vuepress/core": "2.0.0-rc.19",
@@ -161,31 +142,32 @@
161
142
  "@vuepress/utils": "2.0.0-rc.19",
162
143
  "ava": "^5.3.1",
163
144
  "benchmark": "^2.1.4",
164
- "bumpp": "^9.4.0",
165
- "chai": "^4.4.1",
145
+ "bumpp": "^9.11.1",
146
+ "chai": "^4.5.0",
166
147
  "chai-jest-snapshot": "^2.0.0",
167
148
  "conventional-changelog-cli": "^2.2.2",
168
- "eslint-config-prettier": "^8.10.0",
169
- "eslint-import-resolver-typescript": "^3.6.1",
170
- "eslint-plugin-import": "^2.29.1",
171
- "eslint-plugin-prettier": "^4.2.1",
149
+ "eslint-config-prettier": "^10.1.5",
150
+ "eslint-import-resolver-typescript": "^4.4.3",
151
+ "eslint-plugin-import-x": "^4.16.1",
152
+ "eslint-plugin-prettier": "^5.4.1",
153
+ "globals": "^16.2.0",
172
154
  "husky": "^8.0.3",
173
155
  "ini": "^3.0.1",
174
- "ioredis-mock": "^8.9.0",
156
+ "ioredis-mock": "^8.13.1",
175
157
  "lint-staged": "^13.3.0",
176
- "mocha": "^10.3.0",
177
- "nock": "^13.5.4",
158
+ "mocha": "^10.8.2",
159
+ "nock": "^13.5.6",
178
160
  "np": "^6.5.0",
179
161
  "npm-debug-log-cleaner": "^1.0.3",
180
162
  "npm-run-all": "^4.1.5",
181
163
  "nyc": "^15.1.0",
182
164
  "prettier": "^2.8.8",
183
- "sass": "^1.71.1",
184
- "search-insights": ">=1.0.0 <3.0.0-0",
165
+ "sass": "^1.97.1",
166
+ "search-insights": "^2.17.3",
185
167
  "sinon": "^15.2.0",
186
168
  "ts-node": "^10.9.2",
187
- "typescript": "^5.3.3",
188
- "vue": "^3.5.0",
169
+ "typescript": "^5.9.3",
170
+ "vue": "^3.5.26",
189
171
  "vuepress": "2.0.0-rc.19",
190
172
  "vuepress-plugin-umami-analytics": "1.8.1"
191
173
  },
@@ -223,10 +205,8 @@
223
205
  "engines": {
224
206
  "node": ">=18.0.0"
225
207
  },
226
- "packageManager": "pnpm@9.15.9+sha256.cf86a7ad764406395d4286a6d09d730711720acc6d93e9dce9ac7ac4dc4a28a7",
227
208
  "lint-staged": {
228
- "*.js": "eslint",
229
- "*.ts": "eslint --ext .ts"
209
+ "*.{js,ts}": "eslint --fix"
230
210
  },
231
211
  "husky": {
232
212
  "hooks": {
@@ -243,9 +223,23 @@
243
223
  "singbox",
244
224
  "shadowrocket"
245
225
  ],
246
- "pnpm": {
247
- "patchedDependencies": {
248
- "vuepress-plugin-umami-analytics@1.8.1": "patches/vuepress-plugin-umami-analytics@1.8.1.patch"
249
- }
226
+ "scripts": {
227
+ "dev": "npm run build -- --watch",
228
+ "test": "run-s build test:lint test:unit test:cli",
229
+ "test:types": "tsc --noEmit",
230
+ "test:lint": "eslint .",
231
+ "test:unit": "ava",
232
+ "test:cli": "mocha",
233
+ "test:cli:update": "CHAI_JEST_SNAPSHOT_UPDATE_ALL=true pnpm test:cli",
234
+ "run-example": "node ./scripts/run-example.js",
235
+ "coverage": "TS_NODE_FILES=true nyc ava",
236
+ "clean": "rimraf build",
237
+ "build": "tsc --build tsconfig.build.json",
238
+ "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s -r 0",
239
+ "docs:dev": "NODE_ENV=development vuepress dev docs",
240
+ "docs:build": "NODE_ENV=production vuepress build docs",
241
+ "release": "bumpp && npm publish",
242
+ "release:beta": "bumpp --preid beta --no-push && npm publish --tag beta",
243
+ "check-vuepress-version": "ncu -f \"*vuepress*\" --interactive --target @next -p pnpm"
250
244
  }
251
- }
245
+ }
@@ -1,20 +0,0 @@
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
- protected cleanup(): Promise<void>;
19
- }
20
- export default BaseCommand;
@@ -1,75 +0,0 @@
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 path_1 = require("path");
8
- const core_1 = require("@oclif/core");
9
- const logger_1 = require("@surgio/logger");
10
- const ora_1 = __importDefault(require("ora"));
11
- const redis_1 = __importDefault(require("./redis"));
12
- const config_1 = require("./config");
13
- const error_helper_1 = require("./utils/error-helper");
14
- class BaseCommand extends core_1.Command {
15
- flags;
16
- args;
17
- surgioConfig;
18
- ora = (0, ora_1.default)({
19
- stream: process.stdout,
20
- });
21
- projectDir;
22
- constructor(argv, config) {
23
- super(argv, config);
24
- }
25
- async init() {
26
- await super.init();
27
- const { args, flags } = await this.parse({
28
- flags: this.ctor.flags,
29
- baseFlags: super.ctor.baseFlags,
30
- args: this.ctor.args,
31
- strict: this.ctor.strict,
32
- });
33
- this.flags = flags;
34
- this.args = args;
35
- // istanbul ignore next
36
- if (flags.verbose) {
37
- logger_1.transports.console.level = 'debug';
38
- }
39
- if (flags.project.startsWith('.')) {
40
- flags.project = (0, path_1.resolve)(process.cwd(), flags.project);
41
- }
42
- this.projectDir = flags.project;
43
- this.surgioConfig = (0, config_1.loadConfig)(this.projectDir);
44
- }
45
- async catch(err) {
46
- if (this.ora.isSpinning) {
47
- this.ora.fail();
48
- }
49
- await error_helper_1.errorHandler.call(this, err);
50
- this.exit(err.exitCode || 1);
51
- }
52
- async cleanup() {
53
- await redis_1.default.destroyRedis();
54
- if (this.ora.isSpinning) {
55
- this.ora.succeed();
56
- }
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"base-command.js","sourceRoot":"","sources":["../src/base-command.ts"],"names":[],"mappings":";;;;;AAAA,uCAAoC;AACpC,+BAA8B;AAC9B,sCAAgE;AAChE,2CAA2C;AAC3C,8CAAqB;AAErB,oDAA2B;AAE3B,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,CAAC;YAClB,mBAAU,CAAC,OAAO,CAAC,KAAK,GAAG,OAAO,CAAA;QACpC,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAClC,KAAK,CAAC,OAAO,GAAG,IAAA,cAAO,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;QACvD,CAAC;QAED,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,OAAO,CAAA;QAC/B,IAAI,CAAC,YAAY,GAAG,IAAA,mBAAU,EAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IACjD,CAAC;IAES,KAAK,CAAC,KAAK,CAAC,GAAkC;QACtD,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;YACxB,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;QACjB,CAAC;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;IAES,KAAK,CAAC,OAAO;QACrB,MAAM,eAAK,CAAC,YAAY,EAAE,CAAA;QAC1B,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;YACxB,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAA;QACpB,CAAC;IACH,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"}
@@ -1,10 +0,0 @@
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;
@@ -1,87 +0,0 @@
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 path_1 = __importDefault(require("path"));
31
- const core_1 = require("@oclif/core");
32
- const fs_extra_1 = __importDefault(require("fs-extra"));
33
- const inquirer_1 = __importDefault(require("inquirer"));
34
- const base_command_1 = __importDefault(require("../base-command"));
35
- const config_1 = require("../config");
36
- const provider_1 = require("../provider");
37
- class CheckCommand extends base_command_1.default {
38
- static description = '查询 Provider';
39
- static args = {
40
- provider: core_1.Args.string({
41
- description: '发起检查的 Provider',
42
- required: true,
43
- }),
44
- };
45
- async run() {
46
- const nodeList = await this.getNodeList(this.args.provider);
47
- if (!process.stdin.isTTY) {
48
- console.log(JSON.stringify(nodeList, null, 2));
49
- return;
50
- }
51
- const answers = await inquirer_1.default.prompt([
52
- {
53
- type: 'list',
54
- name: 'node',
55
- message: '请选择节点',
56
- choices: nodeList.map((node) => {
57
- const name = 'hostname' in node && 'port' in node
58
- ? `${node.nodeName} - ${node.hostname}:${node.port}`
59
- : node.nodeName;
60
- return {
61
- name,
62
- value: node,
63
- };
64
- }),
65
- },
66
- ]);
67
- console.log(JSON.stringify(answers.node, null, 2));
68
- await this.cleanup();
69
- }
70
- async getNodeList(providerName) {
71
- core_1.ux.action.start('正在获取 Provider 信息');
72
- const config = (0, config_1.getConfig)();
73
- const filePath = path_1.default.resolve(config.providerDir, `./${providerName}.js`);
74
- const file = fs_extra_1.default.existsSync(filePath)
75
- ? await Promise.resolve(`${filePath}`).then(s => __importStar(require(s)))
76
- : new Error('找不到该 Provider');
77
- if (file instanceof Error) {
78
- throw file;
79
- }
80
- const provider = await (0, provider_1.getProvider)(providerName, file.default);
81
- const nodeList = await provider.getNodeList();
82
- core_1.ux.action.stop();
83
- return nodeList;
84
- }
85
- }
86
- exports.default = CheckCommand;
87
- //# sourceMappingURL=check.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uBAAuB;AACvB,gDAAuB;AACvB,sCAAsC;AACtC,wDAAyB;AACzB,wDAA+B;AAE/B,mEAAyC;AACzC,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,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;YAC9C,OAAM;QACR,CAAC;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,IAAI,CAAC,OAAO,EAAE,CAAA;IACtB,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,CAAC;YAC1B,MAAM,IAAI,CAAA;QACZ,CAAC;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"}
@@ -1,6 +0,0 @@
1
- import BaseCommand from '../base-command';
2
- declare class CleanCacheCommand extends BaseCommand<typeof CleanCacheCommand> {
3
- static description: string;
4
- run(): Promise<void>;
5
- }
6
- export default CleanCacheCommand;
@@ -1,28 +0,0 @@
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 os_1 = __importDefault(require("os"));
8
- const path_1 = __importDefault(require("path"));
9
- const core_1 = require("@oclif/core");
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 cache_1 = require("../utils/cache");
14
- class CleanCacheCommand extends base_command_1.default {
15
- static description = '清除缓存';
16
- async run() {
17
- const tmpDir = path_1.default.join(os_1.default.tmpdir(), constant_1.TMP_FOLDER_NAME);
18
- core_1.ux.action.start('正在清除缓存');
19
- if (fs_extra_1.default.existsSync(tmpDir)) {
20
- await fs_extra_1.default.remove(tmpDir);
21
- }
22
- await (0, cache_1.cleanCaches)();
23
- core_1.ux.action.stop();
24
- await this.cleanup();
25
- }
26
- }
27
- exports.default = CleanCacheCommand;
28
- //# sourceMappingURL=clean-cache.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"clean-cache.js","sourceRoot":"","sources":["../../src/commands/clean-cache.ts"],"names":[],"mappings":";;;;;AAAA,uBAAuB;AACvB,4CAAmB;AACnB,gDAAuB;AACvB,sCAAgC;AAChC,wDAAyB;AAEzB,mEAAyC;AACzC,0CAA6C;AAC7C,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,CAAC;YAC1B,MAAM,kBAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QACzB,CAAC;QAED,MAAM,IAAA,mBAAW,GAAE,CAAA;QAEnB,SAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;QAEhB,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;IACtB,CAAC;;AAGH,kBAAe,iBAAiB,CAAA"}
@@ -1,6 +0,0 @@
1
- import BaseCommand from '../base-command';
2
- declare class DoctorCommand extends BaseCommand<typeof DoctorCommand> {
3
- static description: string;
4
- run(): Promise<void>;
5
- }
6
- export default DoctorCommand;
@@ -1,20 +0,0 @@
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 doctor_1 = require("../utils/doctor");
9
- class DoctorCommand extends base_command_1.default {
10
- static description = '检查运行环境';
11
- async run() {
12
- const doctorInfo = await (0, doctor_1.generateDoctorInfo)(this.projectDir, this.config.pjson);
13
- doctorInfo.forEach((item) => {
14
- console.log(item);
15
- });
16
- await this.cleanup();
17
- }
18
- }
19
- exports.default = DoctorCommand;
20
- //# sourceMappingURL=doctor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":";;;;;AAAA,uBAAuB;AACvB,mEAAyC;AACzC,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,IAAI,CAAC,OAAO,EAAE,CAAA;IACtB,CAAC;;AAGH,kBAAe,aAAa,CAAA"}
@@ -1,7 +0,0 @@
1
- import BaseCommand from '../base-command';
2
- declare class GenerateCommand extends BaseCommand<typeof GenerateCommand> {
3
- static description: string;
4
- run(): Promise<void>;
5
- private generate;
6
- }
7
- export default GenerateCommand;
@@ -1,94 +0,0 @@
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 path_1 = __importDefault(require("path"));
7
- const core_1 = require("@oclif/core");
8
- const fs_extra_1 = __importDefault(require("fs-extra"));
9
- const base_command_1 = __importDefault(require("../base-command"));
10
- const generator_1 = require("../generator");
11
- const config_1 = require("../config");
12
- const linter_1 = require("../utils/linter");
13
- const utils_1 = require("../utils");
14
- class GenerateCommand extends base_command_1.default {
15
- static description = '生成规则';
16
- async run() {
17
- if (!this.flags['skip-lint']) {
18
- const result = await (0, linter_1.checkAndFix)(this.projectDir);
19
- if (!result) {
20
- throw new Error('JS 语法检查不通过,请根据提示修改文件(参考 https://url.royli.dev/SeB6m)');
21
- }
22
- }
23
- if (this.flags.output) {
24
- (0, config_1.setConfig)('output', this.flags.output);
25
- }
26
- await this.generate(this.flags['skip-fail'], this.flags['cache-snippet']);
27
- await this.cleanup();
28
- }
29
- async generate(skipFail, cacheSnippet) {
30
- this.ora.info('开始生成规则');
31
- const config = this.surgioConfig;
32
- const artifactList = config.artifacts;
33
- const distPath = config.output;
34
- const remoteSnippetsConfig = config.remoteSnippets || [];
35
- const remoteSnippetList = await (0, utils_1.loadRemoteSnippetList)(remoteSnippetsConfig, cacheSnippet);
36
- const templateEngine = (0, generator_1.getEngine)(config.templateDir, {
37
- clashCore: config.clashConfig?.clashCore,
38
- });
39
- await fs_extra_1.default.mkdirp(distPath);
40
- for (const artifact of artifactList) {
41
- this.ora.start(`正在生成规则 ${artifact.name}`);
42
- try {
43
- const artifactInstance = new generator_1.Artifact(config, artifact, {
44
- remoteSnippetList,
45
- });
46
- artifactInstance.once('initProvider:end', () => {
47
- this.ora.text = `已处理 Provider ${artifactInstance.initProgress}/${artifactInstance.providerNameList.length}...`;
48
- });
49
- await artifactInstance.init();
50
- const result = artifactInstance.render(templateEngine);
51
- const destFilePath = path_1.default.join(config.output, artifact.name);
52
- if (artifact.destDir) {
53
- fs_extra_1.default.accessSync(artifact.destDir, fs_extra_1.default.constants.W_OK);
54
- await fs_extra_1.default.writeFile(path_1.default.join(artifact.destDir, artifact.name), result);
55
- }
56
- else {
57
- await fs_extra_1.default.writeFile(destFilePath, result);
58
- }
59
- this.ora.succeed(`规则 ${artifact.name} 生成成功`);
60
- }
61
- catch (err) {
62
- this.ora.fail(`规则 ${artifact.name} 生成失败`);
63
- // istanbul ignore next
64
- if (skipFail && err instanceof Error) {
65
- console.error(err.stack || err);
66
- }
67
- else {
68
- throw err;
69
- }
70
- }
71
- }
72
- this.ora.succeed('规则生成成功');
73
- }
74
- }
75
- GenerateCommand.flags = {
76
- output: core_1.Flags.string({
77
- char: 'o',
78
- description: '生成规则的目录',
79
- }),
80
- 'cache-snippet': core_1.Flags.boolean({
81
- default: false,
82
- description: '缓存远程片段',
83
- }),
84
- 'skip-fail': core_1.Flags.boolean({
85
- default: false,
86
- description: '跳过生成失败的 Artifact',
87
- }),
88
- 'skip-lint': core_1.Flags.boolean({
89
- default: false,
90
- description: '跳过代码检查',
91
- }),
92
- };
93
- exports.default = GenerateCommand;
94
- //# sourceMappingURL=generate.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- import BaseCommand from '../base-command';
2
- declare class LintCommand extends BaseCommand<typeof LintCommand> {
3
- static description: string;
4
- run(): Promise<void>;
5
- }
6
- export default LintCommand;