mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2026-06-05 20:54:14 +00:00
The legacy outbound modal could import a vmess://, vless://, trojan://, ss://, or hysteria2:// share link via a Convert button on the JSON tab. Restore that UX with a focused pure-function parser. lib/xray/outbound-link-parser.ts: - parseVmessLink: base64 JSON, maps net/tls + per-network params onto the discriminated stream branch. - parseVlessLink: standard URL with type/security/sni/pbk/sid/fp/flow query params, dispatches transport via buildStream + applies security params via applySecurityParams. - parseTrojanLink: same URL pattern, defaults security to tls. - parseShadowsocksLink: both modern (base64 userinfo@host:port) and legacy (base64 of whole thing) ss:// formats. - parseHysteria2Link: accepts both hysteria2:// and hy2:// schemes, uses the hysteria stream branch with version=2 + TLS h3. - parseOutboundLink dispatcher returns the first non-null parser result, or null when no scheme matches. test/outbound-link-parser.test.ts: - 13 cases covering happy paths for each protocol family plus malformed input, ss:// dual-format handling, hy2:// alias. OutboundFormModal.tsx: - Import button on the JSON tab Input.Search; on success, parsed payload flows through rawOutboundToFormValues, the form is reset, and we switch back to the Basic tab. - Tag is preserved when the parsed link does not carry one. Out of scope: advanced fields the legacy parser handled (xmux, padding obfs, reality short IDs, finalmask from fm= param). Power users can finish the import in the form after the basics land. |
||
|---|---|---|
| .. | ||
| BalancerFormModal.tsx | ||
| BalancersTab.tsx | ||
| BasicsTab.css | ||
| BasicsTab.tsx | ||
| DnsPresetsModal.css | ||
| DnsPresetsModal.tsx | ||
| DnsServerModal.tsx | ||
| DnsTab.css | ||
| DnsTab.tsx | ||
| NordModal.css | ||
| NordModal.tsx | ||
| OutboundFormModal.css | ||
| OutboundFormModal.tsx | ||
| OutboundsTab.css | ||
| OutboundsTab.tsx | ||
| RoutingTab.css | ||
| RoutingTab.tsx | ||
| RuleFormModal.tsx | ||
| WarpModal.css | ||
| WarpModal.tsx | ||
| XrayPage.css | ||
| XrayPage.tsx | ||