diff options
| author | Andrej Mihajlov <and@mullvad.net> | 2018-11-02 12:49:44 +0100 |
|---|---|---|
| committer | Andrej Mihajlov <and@mullvad.net> | 2018-11-02 12:54:39 +0100 |
| commit | 357f8bb2bf910a9bb8371c9bf25ed3e681d73b1a (patch) | |
| tree | dbe60c8b262f1f2d66a01099ee933c756b2ebdd7 /gui | |
| parent | 96fc79fea56372a42553b31b6d423083e3fc8d75 (diff) | |
| download | mullvadvpn-357f8bb2bf910a9bb8371c9bf25ed3e681d73b1a.tar.xz mullvadvpn-357f8bb2bf910a9bb8371c9bf25ed3e681d73b1a.zip | |
Relax RPC schema
Diffstat (limited to 'gui')
| -rw-r--r-- | gui/packages/desktop/src/renderer/lib/daemon-rpc.js | 48 |
1 files changed, 26 insertions, 22 deletions
diff --git a/gui/packages/desktop/src/renderer/lib/daemon-rpc.js b/gui/packages/desktop/src/renderer/lib/daemon-rpc.js index 8022aedfac..1b2bb0523e 100644 --- a/gui/packages/desktop/src/renderer/lib/daemon-rpc.js +++ b/gui/packages/desktop/src/renderer/lib/daemon-rpc.js @@ -9,6 +9,7 @@ import { CommunicationError, InvalidAccountError, NoDaemonError } from '../error import { object, + partialObject, maybe, string, number, @@ -33,7 +34,7 @@ export type Location = { mullvad_exit_ip: boolean, hostname: ?string, }; -const LocationSchema = object({ +const LocationSchema = partialObject({ ip: maybe(string), country: string, city: maybe(string), @@ -138,8 +139,8 @@ const constraint = <T>(constraintValue: SchemaNode<T>) => { ); }; -const TunnelEndpointDataSchema = object({ - openvpn: object({ +const TunnelEndpointDataSchema = partialObject({ + openvpn: partialObject({ port: number, protocol: enumeration('udp', 'tcp'), }), @@ -147,7 +148,7 @@ const TunnelEndpointDataSchema = object({ const RelaySettingsSchema = oneOf( object({ - normal: object({ + normal: partialObject({ location: constraint( oneOf( object({ @@ -162,8 +163,8 @@ const RelaySettingsSchema = oneOf( ), ), tunnel: constraint( - object({ - openvpn: object({ + partialObject({ + openvpn: partialObject({ port: constraint(number), protocol: constraint(enumeration('udp', 'tcp')), }), @@ -172,7 +173,7 @@ const RelaySettingsSchema = oneOf( }), }), object({ - custom_tunnel_endpoint: object({ + custom_tunnel_endpoint: partialObject({ host: string, tunnel: TunnelEndpointDataSchema, }), @@ -204,19 +205,19 @@ export type RelayListHostname = { weight: number, }; -const RelayListSchema = object({ +const RelayListSchema = partialObject({ countries: arrayOf( - object({ + partialObject({ name: string, code: string, cities: arrayOf( - object({ + partialObject({ name: string, code: string, latitude: number, longitude: number, relays: arrayOf( - object({ + partialObject({ hostname: string, ipv4_addr_in: string, include_in_country: boolean, @@ -257,16 +258,16 @@ export type RemoteProxyAuth = { const OpenVpnProxySchema = maybe( oneOf( object({ - local: object({ + local: partialObject({ port: number, peer: string, }), }), object({ - remote: object({ + remote: partialObject({ address: string, auth: maybe( - object({ + partialObject({ username: string, password: string, }), @@ -276,15 +277,15 @@ const OpenVpnProxySchema = maybe( ), ); -const TunnelOptionsSchema = object({ +const TunnelOptionsSchema = partialObject({ enable_ipv6: boolean, - openvpn: object({ + openvpn: partialObject({ mssfix: maybe(number), proxy: OpenVpnProxySchema, }), }); -const AccountDataSchema = object({ +const AccountDataSchema = partialObject({ expiry: string, }); @@ -295,7 +296,7 @@ const TunnelStateTransitionSchema = oneOf( }), object({ state: enumeration('connecting', 'connected'), - details: object({ + details: partialObject({ address: string, tunnel: TunnelEndpointDataSchema, }), @@ -311,7 +312,10 @@ const TunnelStateTransitionSchema = oneOf( 'no_matching_relay', ), }), - object({ reason: enumeration('auth_failed'), details: maybe(string) }), + object({ + reason: enumeration('auth_failed'), + details: maybe(string), + }), ), }), object({ @@ -327,9 +331,9 @@ export type AppVersionInfo = { }, }; -const AppVersionInfoSchema = object({ +const AppVersionInfoSchema = partialObject({ current_is_supported: boolean, - latest: object({ + latest: partialObject({ latest_stable: string, latest: string, }), @@ -379,7 +383,7 @@ export type Settings = { tunnelOptions: TunnelOptions, }; -const SettingsSchema = object({ +const SettingsSchema = partialObject({ account_token: maybe(string), allow_lan: boolean, auto_connect: boolean, |
