Skip to content

Commit 10a80e3

Browse files
committed
feat: 规范化若干密码字段, 更易读的 YAML 输出中的 short-id 也包裹引号
1 parent 3f83d21 commit 10a80e3

7 files changed

Lines changed: 31 additions & 28 deletions

File tree

backend/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "sub-store",
3-
"version": "2.23.22",
3+
"version": "2.23.23",
44
"description": "Advanced Subscription Manager for QX, Loon, Surge, Stash and Shadowrocket.",
55
"main": "src/main.js",
66
"packageManager": "pnpm@11.0.9",

backend/src/core/proxy-utils/parsers/peggy/loon.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ vmess_alterId = comma "alterId" equals alterId:$[0-9]+ { proxy.alterId = parseIn
176176
udp_port = comma "udp-port" equals match:$[0-9]+ { proxy["udp-port"] = parseInt(match.trim()); }
177177
shadow_tls_version = comma "shadow-tls-version" equals match:$[0-9]+ { proxy["shadow-tls-version"] = parseInt(match.trim()); }
178178
shadow_tls_sni = comma "shadow-tls-sni" equals match:[^,]+ { proxy["shadow-tls-sni"] = match.join(""); }
179-
shadow_tls_password = comma "shadow-tls-password" equals match:[^,]+ { proxy["shadow-tls-password"] = match.join(""); }
179+
shadow_tls_password = comma "shadow-tls-password" equals match:[^,]+ { proxy["shadow-tls-password"] = match.join("").replace(/^"(.*?)"$/, '$1').replace(/^'(.*?)'$/, '$1'); }
180180
181181
over_tls = comma "over-tls" equals flag:bool { proxy.tls = flag; }
182182
tls_name = comma sni:("tls-name") equals match:[^,]+ { proxy.sni = match.join("").replace(/^"(.*)"$/, '$1'); }

backend/src/core/proxy-utils/parsers/peggy/surge.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -482,7 +482,7 @@ tls_verification = comma "skip-cert-verify" equals flag:bool { proxy["skip-cert-
482482
tls_fingerprint = comma "server-cert-fingerprint-sha256" equals tls_fingerprint:$[^,]+ { proxy["tls-fingerprint"] = tls_fingerprint.trim(); }
483483
client_cert = comma "client-cert" equals match:[^,]+ { proxy["keystore-client-cert"] = stripQuotes(match.join("")); }
484484
485-
snell_psk = comma "psk" equals match:[^,]+ { proxy.psk = match.join(""); }
485+
snell_psk = comma "psk" equals match:[^,]+ { proxy.psk = match.join("").replace(/^"(.*?)"$/, '$1').replace(/^'(.*?)'$/, '$1'); }
486486
snell_version = comma "version" equals match:$[0-9]+ { proxy.version = parseInt(match.trim()); }
487487
488488
usernamek = comma "username" equals match:[^,]+ { proxy.username = match.join("").replace(/^"(.*?)"$/, '$1').replace(/^'(.*?)'$/, '$1'); }

backend/src/core/proxy-utils/producers/loon.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ function shadowsocks(proxy) {
123123

124124
// shadow-tls
125125
if (isPresent(proxy, 'shadow-tls-password')) {
126-
result.append(`,shadow-tls-password=${proxy['shadow-tls-password']}`);
126+
result.append(`,shadow-tls-password="${proxy['shadow-tls-password']}"`);
127127

128128
result.appendIfPresent(
129129
`,shadow-tls-version=${proxy['shadow-tls-version']}`,
@@ -140,7 +140,7 @@ function shadowsocks(proxy) {
140140
const host = proxy['plugin-opts'].host;
141141
const version = proxy['plugin-opts'].version;
142142
if (password) {
143-
result.append(`,shadow-tls-password=${password}`);
143+
result.append(`,shadow-tls-password="${password}"`);
144144
if (host) {
145145
result.append(`,shadow-tls-sni=${host}`);
146146
}
@@ -217,7 +217,7 @@ function shadowsocksr(proxy) {
217217

218218
// shadow-tls
219219
if (isPresent(proxy, 'shadow-tls-password')) {
220-
result.append(`,shadow-tls-password=${proxy['shadow-tls-password']}`);
220+
result.append(`,shadow-tls-password="${proxy['shadow-tls-password']}"`);
221221

222222
result.appendIfPresent(
223223
`,shadow-tls-version=${proxy['shadow-tls-version']}`,
@@ -234,7 +234,7 @@ function shadowsocksr(proxy) {
234234
const host = proxy['plugin-opts'].host;
235235
const version = proxy['plugin-opts'].version;
236236
if (password) {
237-
result.append(`,shadow-tls-password=${password}`);
237+
result.append(`,shadow-tls-password="${password}"`);
238238
if (host) {
239239
result.append(`,shadow-tls-sni=${host}`);
240240
}

backend/src/core/proxy-utils/producers/surfboard.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ function snell(proxy) {
126126
const result = new Result(proxy);
127127
result.append(`${proxy.name}=${proxy.type},${proxy.server},${proxy.port}`);
128128
result.appendIfPresent(`,version=${proxy.version}`, 'version');
129-
result.appendIfPresent(`,psk=${proxy.psk}`, 'psk');
129+
result.appendIfPresent(`,psk="${proxy.psk}"`, 'psk');
130130

131131
// obfs
132132
result.appendIfPresent(

backend/src/core/proxy-utils/producers/surge.js

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,7 @@ function shadowsocks(proxy) {
244244

245245
// shadow-tls
246246
if (isPresent(proxy, 'shadow-tls-password')) {
247-
result.append(`,shadow-tls-password=${proxy['shadow-tls-password']}`);
247+
result.append(`,shadow-tls-password="${proxy['shadow-tls-password']}"`);
248248

249249
result.appendIfPresent(
250250
`,shadow-tls-version=${proxy['shadow-tls-version']}`,
@@ -261,7 +261,7 @@ function shadowsocks(proxy) {
261261
const host = proxy['plugin-opts'].host;
262262
const version = proxy['plugin-opts'].version;
263263
if (password) {
264-
result.append(`,shadow-tls-password=${password}`);
264+
result.append(`,shadow-tls-password="${password}"`);
265265
if (host) {
266266
result.append(`,shadow-tls-sni=${host}`);
267267
}
@@ -353,7 +353,7 @@ function trojan(proxy) {
353353

354354
// shadow-tls
355355
if (isPresent(proxy, 'shadow-tls-password')) {
356-
result.append(`,shadow-tls-password=${proxy['shadow-tls-password']}`);
356+
result.append(`,shadow-tls-password="${proxy['shadow-tls-password']}"`);
357357

358358
result.appendIfPresent(
359359
`,shadow-tls-version=${proxy['shadow-tls-version']}`,
@@ -571,7 +571,7 @@ function h2Connect(proxy) {
571571
result.appendIfPresent(`,interface=${proxy['interface']}`, 'interface');
572572

573573
if (isPresent(proxy, 'shadow-tls-password')) {
574-
result.append(`,shadow-tls-password=${proxy['shadow-tls-password']}`);
574+
result.append(`,shadow-tls-password="${proxy['shadow-tls-password']}"`);
575575

576576
result.appendIfPresent(
577577
`,shadow-tls-version=${proxy['shadow-tls-version']}`,
@@ -659,7 +659,7 @@ function vmess(proxy, includeUnsupportedProxy) {
659659

660660
// shadow-tls
661661
if (isPresent(proxy, 'shadow-tls-password')) {
662-
result.append(`,shadow-tls-password=${proxy['shadow-tls-password']}`);
662+
result.append(`,shadow-tls-password="${proxy['shadow-tls-password']}"`);
663663

664664
result.appendIfPresent(
665665
`,shadow-tls-version=${proxy['shadow-tls-version']}`,
@@ -803,7 +803,7 @@ function http(proxy) {
803803

804804
// shadow-tls
805805
if (isPresent(proxy, 'shadow-tls-password')) {
806-
result.append(`,shadow-tls-password=${proxy['shadow-tls-password']}`);
806+
result.append(`,shadow-tls-password="${proxy['shadow-tls-password']}"`);
807807

808808
result.appendIfPresent(
809809
`,shadow-tls-version=${proxy['shadow-tls-version']}`,
@@ -934,7 +934,7 @@ function socks5(proxy) {
934934

935935
// shadow-tls
936936
if (isPresent(proxy, 'shadow-tls-password')) {
937-
result.append(`,shadow-tls-password=${proxy['shadow-tls-password']}`);
937+
result.append(`,shadow-tls-password="${proxy['shadow-tls-password']}"`);
938938

939939
result.appendIfPresent(
940940
`,shadow-tls-version=${proxy['shadow-tls-version']}`,
@@ -984,7 +984,7 @@ function snell(proxy) {
984984
const result = new Result(proxy);
985985
result.append(`${proxy.name}=${proxy.type},${proxy.server},${proxy.port}`);
986986
result.appendIfPresent(`,version=${proxy.version}`, 'version');
987-
result.appendIfPresent(`,psk=${proxy.psk}`, 'psk');
987+
result.appendIfPresent(`,psk="${proxy.psk}"`, 'psk');
988988

989989
const ip_version = ipVersions[proxy['ip-version']] || proxy['ip-version'];
990990
result.appendIfPresent(`,ip-version=${ip_version}`, 'ip-version');
@@ -1035,7 +1035,7 @@ function snell(proxy) {
10351035

10361036
// shadow-tls
10371037
if (isPresent(proxy, 'shadow-tls-password')) {
1038-
result.append(`,shadow-tls-password=${proxy['shadow-tls-password']}`);
1038+
result.append(`,shadow-tls-password="${proxy['shadow-tls-password']}"`);
10391039

10401040
result.appendIfPresent(
10411041
`,shadow-tls-version=${proxy['shadow-tls-version']}`,
@@ -1140,7 +1140,7 @@ function tuic(proxy) {
11401140

11411141
// shadow-tls
11421142
if (isPresent(proxy, 'shadow-tls-password')) {
1143-
result.append(`,shadow-tls-password=${proxy['shadow-tls-password']}`);
1143+
result.append(`,shadow-tls-password="${proxy['shadow-tls-password']}"`);
11441144

11451145
result.appendIfPresent(
11461146
`,shadow-tls-version=${proxy['shadow-tls-version']}`,
@@ -1218,7 +1218,7 @@ function wireguard(proxy) {
12181218

12191219
// shadow-tls
12201220
if (isPresent(proxy, 'shadow-tls-password')) {
1221-
result.append(`,shadow-tls-password=${proxy['shadow-tls-password']}`);
1221+
result.append(`,shadow-tls-password="${proxy['shadow-tls-password']}"`);
12221222

12231223
result.appendIfPresent(
12241224
`,shadow-tls-version=${proxy['shadow-tls-version']}`,
@@ -1319,7 +1319,7 @@ function wireguard_surge(proxy) {
13191319

13201320
// shadow-tls
13211321
if (isPresent(proxy, 'shadow-tls-password')) {
1322-
result.append(`,shadow-tls-password=${proxy['shadow-tls-password']}`);
1322+
result.append(`,shadow-tls-password="${proxy['shadow-tls-password']}"`);
13231323

13241324
result.appendIfPresent(
13251325
`,shadow-tls-version=${proxy['shadow-tls-version']}`,
@@ -1415,7 +1415,7 @@ function hysteria2(proxy) {
14151415

14161416
// shadow-tls
14171417
if (isPresent(proxy, 'shadow-tls-password')) {
1418-
result.append(`,shadow-tls-password=${proxy['shadow-tls-password']}`);
1418+
result.append(`,shadow-tls-password="${proxy['shadow-tls-password']}"`);
14191419

14201420
result.appendIfPresent(
14211421
`,shadow-tls-version=${proxy['shadow-tls-version']}`,

backend/src/core/proxy-utils/producers/utils.js

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import _ from 'lodash';
22
import YAML from '@/utils/yaml';
33
import { isIPv4, isIPv6 } from '@/utils';
4+
import { normalizeClashYaml } from '@/core/proxy-utils/preprocessors';
45

56
export class Result {
67
constructor(proxy) {
@@ -151,13 +152,15 @@ export function produceProxyListOutput(list, type, opts = {}) {
151152
if (type === 'internal') return list;
152153

153154
if (opts.prettyYaml || opts['pretty-yaml']) {
154-
return YAML.safeDump(
155-
{
156-
proxies: list,
157-
},
158-
{
159-
lineWidth: -1,
160-
},
155+
return normalizeClashYaml(
156+
YAML.safeDump(
157+
{
158+
proxies: list,
159+
},
160+
{
161+
lineWidth: -1,
162+
},
163+
),
161164
);
162165
}
163166

0 commit comments

Comments
 (0)