VlessURL constructor
VlessURL({
- required String url,
Creates a VlessURL by parsing the provided vless share link string.
Throws ArgumentError if the url does not start with vless://
or
cannot be decoded into a valid URI.
Implementation
VlessURL({required super.url}) {
if (!url.startsWith('vless://')) {
throw ArgumentError('url is invalid');
}
final temp = Uri.tryParse(url);
if (temp == null) {
throw ArgumentError('url is invalid');
}
uri = temp;
final sni = super.populateTransportSettings(
transport: uri.queryParameters['type'] ?? 'tcp',
headerType: uri.queryParameters['headerType'],
host: uri.queryParameters['host'],
path: uri.queryParameters['path'],
seed: uri.queryParameters['seed'],
quicSecurity: uri.queryParameters['quicSecurity'],
key: uri.queryParameters['key'],
mode: uri.queryParameters['mode'],
serviceName: uri.queryParameters['serviceName'],
);
super.populateTlsSettings(
streamSecurity: uri.queryParameters['security'] ?? '',
allowInsecure: allowInsecure,
sni: uri.queryParameters['sni'] ?? sni,
fingerprint: uri.queryParameters['fp'] ??
streamSetting['tlsSettings']?['fingerprint'],
alpns: uri.queryParameters['alpn'],
publicKey: uri.queryParameters['pbk'] ?? '',
shortId: uri.queryParameters['sid'] ?? '',
spiderX: uri.queryParameters['spx'] ?? '',
);
}