fullConfiguration property

Map<String, dynamic> get fullConfiguration

Full generated configuration with a local SOCKS input and proxy, direct and blackhole outputs.

Native VPN adapters add their managed authenticated input during preparation. Raw-JSON importers override this getter to retain the imported configuration.

Implementation

Map<String, dynamic> get fullConfiguration {
  final proxyOutbound = outbound1;
  final document = XrayConfigDocument(
    log: const XrayLog(),
    // Keep the generated caller input in the document. Native VPN
    // preparation adds its own private authenticated packet adapter.
    inbounds: [XrayInbound.localSocksTunnel(userLevel: level)],
    outbounds: [
      XrayOutbound(
        tag: proxyOutbound['tag'] as String? ?? 'proxy',
        protocol: proxyOutbound['protocol'] as String? ?? '',
        settings: (proxyOutbound['settings'] as Map).cast<String, dynamic>(),
        streamSettings: _streamSettingsFromOutbound(proxyOutbound),
        proxySettings:
            (proxyOutbound['proxySettings'] as Map?)?.cast<String, dynamic>(),
        sendThrough: proxyOutbound['sendThrough'] as String?,
        mux: (proxyOutbound['mux'] as Map?)?.cast<String, dynamic>(),
      ),
      XrayOutbound.direct(),
      XrayOutbound.blackhole(),
    ],
    // Keep the generated Core routing strategy deterministic. Native VPN
    // preparation plans transport endpoint bootstrap separately from caller
    // DNS selection and domain-routing rules.
    routing: const XrayRouting(),
  );
  return document.toJson();
}