diff --git a/crates/data-model/src/compat/session.rs b/crates/data-model/src/compat/session.rs index 3d254e17..7430c48b 100644 --- a/crates/data-model/src/compat/session.rs +++ b/crates/data-model/src/compat/session.rs @@ -12,6 +12,8 @@ // See the License for the specific language governing permissions and // limitations under the License. +use std::net::IpAddr; + use chrono::{DateTime, Utc}; use serde::Serialize; use ulid::Ulid; @@ -80,6 +82,8 @@ pub struct CompatSession { pub device: Device, pub created_at: DateTime, pub is_synapse_admin: bool, + pub last_active_at: Option>, + pub last_active_ip: Option, } impl std::ops::Deref for CompatSession { diff --git a/crates/data-model/src/oauth2/session.rs b/crates/data-model/src/oauth2/session.rs index 68cbd79f..5d14a927 100644 --- a/crates/data-model/src/oauth2/session.rs +++ b/crates/data-model/src/oauth2/session.rs @@ -12,6 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. +use std::net::IpAddr; use chrono::{DateTime, Utc}; use oauth2_types::scope::Scope; use serde::Serialize; @@ -73,6 +74,8 @@ pub struct Session { pub user_session_id: Option, pub client_id: Ulid, pub scope: Scope, + pub last_active_at: Option>, + pub last_active_ip: Option, } impl std::ops::Deref for Session { diff --git a/crates/data-model/src/users.rs b/crates/data-model/src/users.rs index b6187785..40d507dc 100644 --- a/crates/data-model/src/users.rs +++ b/crates/data-model/src/users.rs @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -use std::ops::Deref; +use std::{net::IpAddr, ops::Deref}; use chrono::{DateTime, Duration, Utc}; use rand::{Rng, SeedableRng}; @@ -81,6 +81,8 @@ pub struct BrowserSession { pub created_at: DateTime, pub finished_at: Option>, pub user_agent: Option, + pub last_active_at: Option>, + pub last_active_ip: Option, } impl BrowserSession { @@ -101,6 +103,8 @@ impl BrowserSession { created_at: now, finished_at: None, user_agent: Some("Mozilla/5.0".to_owned()), + last_active_at: Some(now), + last_active_ip: None, }) .collect() } diff --git a/crates/graphql/src/model/browser_sessions.rs b/crates/graphql/src/model/browser_sessions.rs index ad1e6db0..08c1d410 100644 --- a/crates/graphql/src/model/browser_sessions.rs +++ b/crates/graphql/src/model/browser_sessions.rs @@ -92,6 +92,16 @@ impl BrowserSession { pub async fn user_agent(&self) -> Option<&str> { self.0.user_agent.as_deref() } + + /// The last IP address used by the session. + pub async fn last_active_ip(&self) -> Option { + self.0.last_active_ip.map(|ip| ip.to_string()) + } + + /// The last time the session was active. + pub async fn last_active_at(&self) -> Option> { + self.0.last_active_at + } } /// An authentication records when a user enter their credential in a browser diff --git a/crates/graphql/src/model/compat_sessions.rs b/crates/graphql/src/model/compat_sessions.rs index 25e147ef..d3794ebd 100644 --- a/crates/graphql/src/model/compat_sessions.rs +++ b/crates/graphql/src/model/compat_sessions.rs @@ -142,6 +142,16 @@ impl CompatSession { mas_data_model::CompatSessionState::Finished { .. } => CompatSessionState::Finished, } } + + /// The last IP address used by the session. + pub async fn last_active_ip(&self) -> Option { + self.session.last_active_ip.map(|ip| ip.to_string()) + } + + /// The last time the session was active. + pub async fn last_active_at(&self) -> Option> { + self.session.last_active_at + } } /// A compat SSO login represents a login done through the legacy Matrix login diff --git a/crates/graphql/src/model/oauth.rs b/crates/graphql/src/model/oauth.rs index 87c506c7..5b367ba3 100644 --- a/crates/graphql/src/model/oauth.rs +++ b/crates/graphql/src/model/oauth.rs @@ -128,6 +128,16 @@ impl OAuth2Session { Ok(Some(User(user))) } + + /// The last IP address used by the session. + pub async fn last_active_ip(&self) -> Option { + self.0.last_active_ip.map(|ip| ip.to_string()) + } + + /// The last time the session was active. + pub async fn last_active_at(&self) -> Option> { + self.0.last_active_at + } } /// The application type advertised by the client. diff --git a/crates/storage-pg/.sqlx/query-0469c1d3ad11fd96febacad33302709c870ead848d6920cdfdb18912d543488e.json b/crates/storage-pg/.sqlx/query-23c03635d6433099a4353ba0c80b88737724edb16315832891550e29088d02bf.json similarity index 63% rename from crates/storage-pg/.sqlx/query-0469c1d3ad11fd96febacad33302709c870ead848d6920cdfdb18912d543488e.json rename to crates/storage-pg/.sqlx/query-23c03635d6433099a4353ba0c80b88737724edb16315832891550e29088d02bf.json index 0762db05..e987708c 100644 --- a/crates/storage-pg/.sqlx/query-0469c1d3ad11fd96febacad33302709c870ead848d6920cdfdb18912d543488e.json +++ b/crates/storage-pg/.sqlx/query-23c03635d6433099a4353ba0c80b88737724edb16315832891550e29088d02bf.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "\n SELECT compat_session_id\n , device_id\n , user_id\n , created_at\n , finished_at\n , is_synapse_admin\n FROM compat_sessions\n WHERE compat_session_id = $1\n ", + "query": "\n SELECT compat_session_id\n , device_id\n , user_id\n , created_at\n , finished_at\n , is_synapse_admin\n , last_active_at\n , last_active_ip as \"last_active_ip: IpAddr\"\n FROM compat_sessions\n WHERE compat_session_id = $1\n ", "describe": { "columns": [ { @@ -32,6 +32,16 @@ "ordinal": 5, "name": "is_synapse_admin", "type_info": "Bool" + }, + { + "ordinal": 6, + "name": "last_active_at", + "type_info": "Timestamptz" + }, + { + "ordinal": 7, + "name": "last_active_ip: IpAddr", + "type_info": "Inet" } ], "parameters": { @@ -45,8 +55,10 @@ false, false, true, - false + false, + true, + true ] }, - "hash": "0469c1d3ad11fd96febacad33302709c870ead848d6920cdfdb18912d543488e" + "hash": "23c03635d6433099a4353ba0c80b88737724edb16315832891550e29088d02bf" } diff --git a/crates/storage-pg/.sqlx/query-b98052065469a71643bb332cbeb07e0e43c620ffa1a592eb45ab326e0064efa8.json b/crates/storage-pg/.sqlx/query-2b0d54c284dc4d946faae4190568bf597c04b40f010132dd7bf68462c47f9eac.json similarity index 58% rename from crates/storage-pg/.sqlx/query-b98052065469a71643bb332cbeb07e0e43c620ffa1a592eb45ab326e0064efa8.json rename to crates/storage-pg/.sqlx/query-2b0d54c284dc4d946faae4190568bf597c04b40f010132dd7bf68462c47f9eac.json index e1cce155..9e251fa0 100644 --- a/crates/storage-pg/.sqlx/query-b98052065469a71643bb332cbeb07e0e43c620ffa1a592eb45ab326e0064efa8.json +++ b/crates/storage-pg/.sqlx/query-2b0d54c284dc4d946faae4190568bf597c04b40f010132dd7bf68462c47f9eac.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "\n SELECT s.user_session_id\n , s.created_at AS \"user_session_created_at\"\n , s.finished_at AS \"user_session_finished_at\"\n , s.user_agent AS \"user_session_user_agent\"\n , u.user_id\n , u.username AS \"user_username\"\n , u.primary_user_email_id AS \"user_primary_user_email_id\"\n , u.created_at AS \"user_created_at\"\n , u.locked_at AS \"user_locked_at\"\n FROM user_sessions s\n INNER JOIN users u\n USING (user_id)\n WHERE s.user_session_id = $1\n ", + "query": "\n SELECT s.user_session_id\n , s.created_at AS \"user_session_created_at\"\n , s.finished_at AS \"user_session_finished_at\"\n , s.user_agent AS \"user_session_user_agent\"\n , s.last_active_at AS \"user_session_last_active_at\"\n , s.last_active_ip AS \"user_session_last_active_ip: IpAddr\"\n , u.user_id\n , u.username AS \"user_username\"\n , u.primary_user_email_id AS \"user_primary_user_email_id\"\n , u.created_at AS \"user_created_at\"\n , u.locked_at AS \"user_locked_at\"\n FROM user_sessions s\n INNER JOIN users u\n USING (user_id)\n WHERE s.user_session_id = $1\n ", "describe": { "columns": [ { @@ -25,26 +25,36 @@ }, { "ordinal": 4, + "name": "user_session_last_active_at", + "type_info": "Timestamptz" + }, + { + "ordinal": 5, + "name": "user_session_last_active_ip: IpAddr", + "type_info": "Inet" + }, + { + "ordinal": 6, "name": "user_id", "type_info": "Uuid" }, { - "ordinal": 5, + "ordinal": 7, "name": "user_username", "type_info": "Text" }, { - "ordinal": 6, + "ordinal": 8, "name": "user_primary_user_email_id", "type_info": "Uuid" }, { - "ordinal": 7, + "ordinal": 9, "name": "user_created_at", "type_info": "Timestamptz" }, { - "ordinal": 8, + "ordinal": 10, "name": "user_locked_at", "type_info": "Timestamptz" } @@ -59,6 +69,8 @@ false, true, true, + true, + true, false, false, true, @@ -66,5 +78,5 @@ true ] }, - "hash": "b98052065469a71643bb332cbeb07e0e43c620ffa1a592eb45ab326e0064efa8" + "hash": "2b0d54c284dc4d946faae4190568bf597c04b40f010132dd7bf68462c47f9eac" } diff --git a/crates/storage-pg/.sqlx/query-31b7910705963c1a0fa1d55614299aea1a2fa782d40ec53e93c03fe0d73ab0f4.json b/crates/storage-pg/.sqlx/query-31aace373b20b5dbf65fa51d8663da7571d85b6a7d2d544d69e7d04260cdffc9.json similarity index 69% rename from crates/storage-pg/.sqlx/query-31b7910705963c1a0fa1d55614299aea1a2fa782d40ec53e93c03fe0d73ab0f4.json rename to crates/storage-pg/.sqlx/query-31aace373b20b5dbf65fa51d8663da7571d85b6a7d2d544d69e7d04260cdffc9.json index ebbaa71d..ea477bcb 100644 --- a/crates/storage-pg/.sqlx/query-31b7910705963c1a0fa1d55614299aea1a2fa782d40ec53e93c03fe0d73ab0f4.json +++ b/crates/storage-pg/.sqlx/query-31aace373b20b5dbf65fa51d8663da7571d85b6a7d2d544d69e7d04260cdffc9.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "\n SELECT oauth2_session_id\n , user_id\n , user_session_id\n , oauth2_client_id\n , scope_list\n , created_at\n , finished_at\n FROM oauth2_sessions\n\n WHERE oauth2_session_id = $1\n ", + "query": "\n SELECT oauth2_session_id\n , user_id\n , user_session_id\n , oauth2_client_id\n , scope_list\n , created_at\n , finished_at\n , last_active_at\n , last_active_ip as \"last_active_ip: IpAddr\"\n FROM oauth2_sessions\n\n WHERE oauth2_session_id = $1\n ", "describe": { "columns": [ { @@ -37,6 +37,16 @@ "ordinal": 6, "name": "finished_at", "type_info": "Timestamptz" + }, + { + "ordinal": 7, + "name": "last_active_at", + "type_info": "Timestamptz" + }, + { + "ordinal": 8, + "name": "last_active_ip: IpAddr", + "type_info": "Inet" } ], "parameters": { @@ -51,8 +61,10 @@ false, false, false, + true, + true, true ] }, - "hash": "31b7910705963c1a0fa1d55614299aea1a2fa782d40ec53e93c03fe0d73ab0f4" + "hash": "31aace373b20b5dbf65fa51d8663da7571d85b6a7d2d544d69e7d04260cdffc9" } diff --git a/crates/storage-pg/.sqlx/query-89e8bb889b8e604d1b4669e904d3233e70b44277e7fe2ce4317c9d821512d86b.json b/crates/storage-pg/.sqlx/query-662ff8972c0cbccb9ba45b1d724c7b6e87656beabe702603cfd4b5a92263b5ab.json similarity index 63% rename from crates/storage-pg/.sqlx/query-89e8bb889b8e604d1b4669e904d3233e70b44277e7fe2ce4317c9d821512d86b.json rename to crates/storage-pg/.sqlx/query-662ff8972c0cbccb9ba45b1d724c7b6e87656beabe702603cfd4b5a92263b5ab.json index 2aff21fa..e43a8937 100644 --- a/crates/storage-pg/.sqlx/query-89e8bb889b8e604d1b4669e904d3233e70b44277e7fe2ce4317c9d821512d86b.json +++ b/crates/storage-pg/.sqlx/query-662ff8972c0cbccb9ba45b1d724c7b6e87656beabe702603cfd4b5a92263b5ab.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "\n SELECT compat_session_id\n , device_id\n , user_id\n , created_at\n , finished_at\n , is_synapse_admin\n FROM compat_sessions\n WHERE user_id = $1\n AND device_id = $2\n ", + "query": "\n SELECT compat_session_id\n , device_id\n , user_id\n , created_at\n , finished_at\n , is_synapse_admin\n , last_active_at\n , last_active_ip as \"last_active_ip: IpAddr\"\n FROM compat_sessions\n WHERE user_id = $1\n AND device_id = $2\n ", "describe": { "columns": [ { @@ -32,6 +32,16 @@ "ordinal": 5, "name": "is_synapse_admin", "type_info": "Bool" + }, + { + "ordinal": 6, + "name": "last_active_at", + "type_info": "Timestamptz" + }, + { + "ordinal": 7, + "name": "last_active_ip: IpAddr", + "type_info": "Inet" } ], "parameters": { @@ -46,8 +56,10 @@ false, false, true, - false + false, + true, + true ] }, - "hash": "89e8bb889b8e604d1b4669e904d3233e70b44277e7fe2ce4317c9d821512d86b" + "hash": "662ff8972c0cbccb9ba45b1d724c7b6e87656beabe702603cfd4b5a92263b5ab" } diff --git a/crates/storage-pg/src/compat/session.rs b/crates/storage-pg/src/compat/session.rs index 3695d617..1e8ebef8 100644 --- a/crates/storage-pg/src/compat/session.rs +++ b/crates/storage-pg/src/compat/session.rs @@ -58,6 +58,8 @@ struct CompatSessionLookup { created_at: DateTime, finished_at: Option>, is_synapse_admin: bool, + last_active_at: Option>, + last_active_ip: Option, } impl TryFrom for CompatSession { @@ -84,6 +86,8 @@ impl TryFrom for CompatSession { device, created_at: value.created_at, is_synapse_admin: value.is_synapse_admin, + last_active_at: value.last_active_at, + last_active_ip: value.last_active_ip, }; Ok(session) @@ -99,6 +103,8 @@ struct CompatSessionAndSsoLoginLookup { created_at: DateTime, finished_at: Option>, is_synapse_admin: bool, + last_active_at: Option>, + last_active_ip: Option, compat_sso_login_id: Option, compat_sso_login_token: Option, compat_sso_login_redirect_uri: Option, @@ -131,6 +137,8 @@ impl TryFrom for (CompatSession, Option CompatSessionRepository for PgCompatSessionRepository<'c> { , created_at , finished_at , is_synapse_admin + , last_active_at + , last_active_ip as "last_active_ip: IpAddr" FROM compat_sessions WHERE compat_session_id = $1 "#, @@ -247,6 +257,8 @@ impl<'c> CompatSessionRepository for PgCompatSessionRepository<'c> { , created_at , finished_at , is_synapse_admin + , last_active_at + , last_active_ip as "last_active_ip: IpAddr" FROM compat_sessions WHERE user_id = $1 AND device_id = $2 @@ -309,6 +321,8 @@ impl<'c> CompatSessionRepository for PgCompatSessionRepository<'c> { device, created_at, is_synapse_admin, + last_active_at: None, + last_active_ip: None, }) } @@ -390,6 +404,14 @@ impl<'c> CompatSessionRepository for PgCompatSessionRepository<'c> { Expr::col((CompatSessions::Table, CompatSessions::IsSynapseAdmin)), CompatSessionAndSsoLoginLookupIden::IsSynapseAdmin, ) + .expr_as( + Expr::col((CompatSessions::Table, CompatSessions::LastActiveAt)), + CompatSessionAndSsoLoginLookupIden::LastActiveAt, + ) + .expr_as( + Expr::col((CompatSessions::Table, CompatSessions::LastActiveIp)), + CompatSessionAndSsoLoginLookupIden::LastActiveIp, + ) .expr_as( Expr::col((CompatSsoLogins::Table, CompatSsoLogins::CompatSsoLoginId)), CompatSessionAndSsoLoginLookupIden::CompatSsoLoginId, diff --git a/crates/storage-pg/src/iden.rs b/crates/storage-pg/src/iden.rs index 9f9d8599..7fee50e2 100644 --- a/crates/storage-pg/src/iden.rs +++ b/crates/storage-pg/src/iden.rs @@ -22,6 +22,8 @@ pub enum UserSessions { CreatedAt, FinishedAt, UserAgent, + LastActiveAt, + LastActiveIp, } #[derive(sea_query::Iden)] @@ -53,6 +55,8 @@ pub enum CompatSessions { CreatedAt, FinishedAt, IsSynapseAdmin, + LastActiveAt, + LastActiveIp, } #[derive(sea_query::Iden)] @@ -80,6 +84,8 @@ pub enum OAuth2Sessions { ScopeList, CreatedAt, FinishedAt, + LastActiveAt, + LastActiveIp, } #[derive(sea_query::Iden)] diff --git a/crates/storage-pg/src/oauth2/session.rs b/crates/storage-pg/src/oauth2/session.rs index 83b44b17..8adfb4b8 100644 --- a/crates/storage-pg/src/oauth2/session.rs +++ b/crates/storage-pg/src/oauth2/session.rs @@ -59,6 +59,8 @@ struct OAuthSessionLookup { scope_list: Vec, created_at: DateTime, finished_at: Option>, + last_active_at: Option>, + last_active_ip: Option, } impl TryFrom for Session { @@ -91,6 +93,8 @@ impl TryFrom for Session { user_id: value.user_id.map(Ulid::from), user_session_id: value.user_session_id.map(Ulid::from), scope, + last_active_at: value.last_active_at, + last_active_ip: value.last_active_ip, }) } } @@ -119,6 +123,8 @@ impl<'c> OAuth2SessionRepository for PgOAuth2SessionRepository<'c> { , scope_list , created_at , finished_at + , last_active_at + , last_active_ip as "last_active_ip: IpAddr" FROM oauth2_sessions WHERE oauth2_session_id = $1 @@ -191,6 +197,8 @@ impl<'c> OAuth2SessionRepository for PgOAuth2SessionRepository<'c> { user_session_id: user_session.map(|s| s.id), client_id: client.id, scope, + last_active_at: None, + last_active_ip: None, }) } @@ -273,6 +281,14 @@ impl<'c> OAuth2SessionRepository for PgOAuth2SessionRepository<'c> { Expr::col((OAuth2Sessions::Table, OAuth2Sessions::FinishedAt)), OAuthSessionLookupIden::FinishedAt, ) + .expr_as( + Expr::col((OAuth2Sessions::Table, OAuth2Sessions::LastActiveAt)), + OAuthSessionLookupIden::LastActiveAt, + ) + .expr_as( + Expr::col((OAuth2Sessions::Table, OAuth2Sessions::LastActiveIp)), + OAuthSessionLookupIden::LastActiveIp, + ) .from(OAuth2Sessions::Table) .and_where_option(filter.user().map(|user| { Expr::col((OAuth2Sessions::Table, OAuth2Sessions::UserId)).eq(Uuid::from(user.id)) diff --git a/crates/storage-pg/src/user/session.rs b/crates/storage-pg/src/user/session.rs index 4fa7d603..631785d2 100644 --- a/crates/storage-pg/src/user/session.rs +++ b/crates/storage-pg/src/user/session.rs @@ -56,6 +56,8 @@ struct SessionLookup { user_session_created_at: DateTime, user_session_finished_at: Option>, user_session_user_agent: Option, + user_session_last_active_at: Option>, + user_session_last_active_ip: Option, user_id: Uuid, user_username: String, user_primary_user_email_id: Option, @@ -83,6 +85,8 @@ impl TryFrom for BrowserSession { created_at: value.user_session_created_at, finished_at: value.user_session_finished_at, user_agent: value.user_session_user_agent, + last_active_at: value.user_session_last_active_at, + last_active_ip: value.user_session_last_active_ip, }) } } @@ -144,6 +148,8 @@ impl<'c> BrowserSessionRepository for PgBrowserSessionRepository<'c> { , s.created_at AS "user_session_created_at" , s.finished_at AS "user_session_finished_at" , s.user_agent AS "user_session_user_agent" + , s.last_active_at AS "user_session_last_active_at" + , s.last_active_ip AS "user_session_last_active_ip: IpAddr" , u.user_id , u.username AS "user_username" , u.primary_user_email_id AS "user_primary_user_email_id" @@ -207,6 +213,8 @@ impl<'c> BrowserSessionRepository for PgBrowserSessionRepository<'c> { created_at, finished_at: None, user_agent, + last_active_at: None, + last_active_ip: None, }; Ok(session) @@ -277,6 +285,14 @@ impl<'c> BrowserSessionRepository for PgBrowserSessionRepository<'c> { Expr::col((UserSessions::Table, UserSessions::UserAgent)), SessionLookupIden::UserSessionUserAgent, ) + .expr_as( + Expr::col((UserSessions::Table, UserSessions::LastActiveAt)), + SessionLookupIden::UserSessionLastActiveAt, + ) + .expr_as( + Expr::col((UserSessions::Table, UserSessions::LastActiveIp)), + SessionLookupIden::UserSessionLastActiveIp, + ) .expr_as( Expr::col((Users::Table, Users::UserId)), SessionLookupIden::UserId, diff --git a/frontend/schema.graphql b/frontend/schema.graphql index e00b9e25..ced4de93 100644 --- a/frontend/schema.graphql +++ b/frontend/schema.graphql @@ -157,6 +157,14 @@ type BrowserSession implements Node & CreationEvent { The user-agent string with which the session was created. """ userAgent: String + """ + The last IP address used by the session. + """ + lastActiveIp: String + """ + The last time the session was active. + """ + lastActiveAt: DateTime } type BrowserSessionConnection { @@ -239,6 +247,14 @@ type CompatSession implements Node & CreationEvent { The state of the session. """ state: CompatSessionState! + """ + The last IP address used by the session. + """ + lastActiveIp: String + """ + The last time the session was active. + """ + lastActiveAt: DateTime } type CompatSessionConnection { @@ -740,6 +756,14 @@ type Oauth2Session implements Node & CreationEvent { User authorized for this session. """ user: User + """ + The last IP address used by the session. + """ + lastActiveIp: String + """ + The last time the session was active. + """ + lastActiveAt: DateTime } type Oauth2SessionConnection { diff --git a/frontend/src/gql/graphql.ts b/frontend/src/gql/graphql.ts index 81233892..d0df2c3f 100644 --- a/frontend/src/gql/graphql.ts +++ b/frontend/src/gql/graphql.ts @@ -127,6 +127,10 @@ export type BrowserSession = CreationEvent & finishedAt?: Maybe; /** ID of the object. */ id: Scalars["ID"]["output"]; + /** The last time the session was active. */ + lastActiveAt?: Maybe; + /** The last IP address used by the session. */ + lastActiveIp?: Maybe; /** The most recent authentication of this session. */ lastAuthentication?: Maybe; /** The state of the session. */ @@ -181,6 +185,10 @@ export type CompatSession = CreationEvent & finishedAt?: Maybe; /** ID of the object. */ id: Scalars["ID"]["output"]; + /** The last time the session was active. */ + lastActiveAt?: Maybe; + /** The last IP address used by the session. */ + lastActiveIp?: Maybe; /** The associated SSO login, if any. */ ssoLogin?: Maybe; /** The state of the session. */ @@ -544,6 +552,10 @@ export type Oauth2Session = CreationEvent & finishedAt?: Maybe; /** ID of the object. */ id: Scalars["ID"]["output"]; + /** The last time the session was active. */ + lastActiveAt?: Maybe; + /** The last IP address used by the session. */ + lastActiveIp?: Maybe; /** Scope granted for this session. */ scope: Scalars["String"]["output"]; /** The state of the session. */ diff --git a/frontend/src/gql/schema.ts b/frontend/src/gql/schema.ts index ffa66c81..a688c2f8 100644 --- a/frontend/src/gql/schema.ts +++ b/frontend/src/gql/schema.ts @@ -1,2951 +1,2999 @@ -import { IntrospectionQuery } from 'graphql'; +import { IntrospectionQuery } from "graphql"; export default { - "__schema": { - "queryType": { - "name": "Query" + __schema: { + queryType: { + name: "Query", }, - "mutationType": { - "name": "Mutation" + mutationType: { + name: "Mutation", }, - "subscriptionType": null, - "types": [ + subscriptionType: null, + types: [ { - "kind": "OBJECT", - "name": "AddEmailPayload", - "fields": [ + kind: "OBJECT", + name: "AddEmailPayload", + fields: [ { - "name": "email", - "type": { - "kind": "OBJECT", - "name": "UserEmail", - "ofType": null + name: "email", + type: { + kind: "OBJECT", + name: "UserEmail", + ofType: null, }, - "args": [] + args: [], }, { - "name": "status", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } + name: "status", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, }, - "args": [] + args: [], }, { - "name": "user", - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null + name: "user", + type: { + kind: "OBJECT", + name: "User", + ofType: null, }, - "args": [] + args: [], }, { - "name": "violations", - "type": { - "kind": "LIST", - "ofType": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } - } + name: "violations", + type: { + kind: "LIST", + ofType: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, + }, }, - "args": [] - } + args: [], + }, ], - "interfaces": [] + interfaces: [], }, { - "kind": "OBJECT", - "name": "AddUserPayload", - "fields": [ + kind: "OBJECT", + name: "AddUserPayload", + fields: [ { - "name": "status", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } + name: "status", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, }, - "args": [] + args: [], }, { - "name": "user", - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null + name: "user", + type: { + kind: "OBJECT", + name: "User", + ofType: null, }, - "args": [] - } + args: [], + }, ], - "interfaces": [] + interfaces: [], }, { - "kind": "OBJECT", - "name": "Anonymous", - "fields": [ + kind: "OBJECT", + name: "Anonymous", + fields: [ { - "name": "id", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } + name: "id", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, }, - "args": [] - } + args: [], + }, ], - "interfaces": [ + interfaces: [ { - "kind": "INTERFACE", - "name": "Node" - } - ] + kind: "INTERFACE", + name: "Node", + }, + ], }, { - "kind": "OBJECT", - "name": "Authentication", - "fields": [ + kind: "OBJECT", + name: "Authentication", + fields: [ { - "name": "createdAt", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } + name: "createdAt", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, }, - "args": [] + args: [], }, { - "name": "id", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } + name: "id", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, }, - "args": [] - } + args: [], + }, ], - "interfaces": [ + interfaces: [ { - "kind": "INTERFACE", - "name": "CreationEvent" + kind: "INTERFACE", + name: "CreationEvent", }, { - "kind": "INTERFACE", - "name": "Node" - } - ] + kind: "INTERFACE", + name: "Node", + }, + ], }, { - "kind": "OBJECT", - "name": "BrowserSession", - "fields": [ + kind: "OBJECT", + name: "BrowserSession", + fields: [ { - "name": "createdAt", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } + name: "createdAt", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, }, - "args": [] + args: [], }, { - "name": "finishedAt", - "type": { - "kind": "SCALAR", - "name": "Any" + name: "finishedAt", + type: { + kind: "SCALAR", + name: "Any", }, - "args": [] + args: [], }, { - "name": "id", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } + name: "id", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, }, - "args": [] + args: [], }, { - "name": "lastAuthentication", - "type": { - "kind": "OBJECT", - "name": "Authentication", - "ofType": null + name: "lastActiveAt", + type: { + kind: "SCALAR", + name: "Any", }, - "args": [] + args: [], }, { - "name": "state", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } + name: "lastActiveIp", + type: { + kind: "SCALAR", + name: "Any", }, - "args": [] + args: [], }, { - "name": "user", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "OBJECT", - "name": "User", - "ofType": null - } + name: "lastAuthentication", + type: { + kind: "OBJECT", + name: "Authentication", + ofType: null, }, - "args": [] + args: [], }, { - "name": "userAgent", - "type": { - "kind": "SCALAR", - "name": "Any" + name: "state", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, }, - "args": [] - } + args: [], + }, + { + name: "user", + type: { + kind: "NON_NULL", + ofType: { + kind: "OBJECT", + name: "User", + ofType: null, + }, + }, + args: [], + }, + { + name: "userAgent", + type: { + kind: "SCALAR", + name: "Any", + }, + args: [], + }, ], - "interfaces": [ + interfaces: [ { - "kind": "INTERFACE", - "name": "CreationEvent" + kind: "INTERFACE", + name: "CreationEvent", }, { - "kind": "INTERFACE", - "name": "Node" - } - ] + kind: "INTERFACE", + name: "Node", + }, + ], }, { - "kind": "OBJECT", - "name": "BrowserSessionConnection", - "fields": [ + kind: "OBJECT", + name: "BrowserSessionConnection", + fields: [ { - "name": "edges", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "LIST", - "ofType": { - "kind": "NON_NULL", - "ofType": { - "kind": "OBJECT", - "name": "BrowserSessionEdge", - "ofType": null - } - } - } + name: "edges", + type: { + kind: "NON_NULL", + ofType: { + kind: "LIST", + ofType: { + kind: "NON_NULL", + ofType: { + kind: "OBJECT", + name: "BrowserSessionEdge", + ofType: null, + }, + }, + }, }, - "args": [] + args: [], }, { - "name": "nodes", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "LIST", - "ofType": { - "kind": "NON_NULL", - "ofType": { - "kind": "OBJECT", - "name": "BrowserSession", - "ofType": null - } - } - } + name: "nodes", + type: { + kind: "NON_NULL", + ofType: { + kind: "LIST", + ofType: { + kind: "NON_NULL", + ofType: { + kind: "OBJECT", + name: "BrowserSession", + ofType: null, + }, + }, + }, }, - "args": [] + args: [], }, { - "name": "pageInfo", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } + name: "pageInfo", + type: { + kind: "NON_NULL", + ofType: { + kind: "OBJECT", + name: "PageInfo", + ofType: null, + }, }, - "args": [] + args: [], }, { - "name": "totalCount", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } + name: "totalCount", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, }, - "args": [] - } + args: [], + }, ], - "interfaces": [] + interfaces: [], }, { - "kind": "OBJECT", - "name": "BrowserSessionEdge", - "fields": [ + kind: "OBJECT", + name: "BrowserSessionEdge", + fields: [ { - "name": "cursor", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } + name: "cursor", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, }, - "args": [] + args: [], }, { - "name": "node", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "OBJECT", - "name": "BrowserSession", - "ofType": null - } + name: "node", + type: { + kind: "NON_NULL", + ofType: { + kind: "OBJECT", + name: "BrowserSession", + ofType: null, + }, }, - "args": [] - } + args: [], + }, ], - "interfaces": [] + interfaces: [], }, { - "kind": "OBJECT", - "name": "CompatSession", - "fields": [ + kind: "OBJECT", + name: "CompatSession", + fields: [ { - "name": "createdAt", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } + name: "createdAt", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, }, - "args": [] + args: [], }, { - "name": "deviceId", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } + name: "deviceId", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, }, - "args": [] + args: [], }, { - "name": "finishedAt", - "type": { - "kind": "SCALAR", - "name": "Any" + name: "finishedAt", + type: { + kind: "SCALAR", + name: "Any", }, - "args": [] + args: [], }, { - "name": "id", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } + name: "id", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, }, - "args": [] + args: [], }, { - "name": "ssoLogin", - "type": { - "kind": "OBJECT", - "name": "CompatSsoLogin", - "ofType": null + name: "lastActiveAt", + type: { + kind: "SCALAR", + name: "Any", }, - "args": [] + args: [], }, { - "name": "state", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } + name: "lastActiveIp", + type: { + kind: "SCALAR", + name: "Any", }, - "args": [] + args: [], }, { - "name": "user", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "OBJECT", - "name": "User", - "ofType": null - } + name: "ssoLogin", + type: { + kind: "OBJECT", + name: "CompatSsoLogin", + ofType: null, }, - "args": [] - } + args: [], + }, + { + name: "state", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, + }, + args: [], + }, + { + name: "user", + type: { + kind: "NON_NULL", + ofType: { + kind: "OBJECT", + name: "User", + ofType: null, + }, + }, + args: [], + }, ], - "interfaces": [ + interfaces: [ { - "kind": "INTERFACE", - "name": "CreationEvent" + kind: "INTERFACE", + name: "CreationEvent", }, { - "kind": "INTERFACE", - "name": "Node" - } - ] + kind: "INTERFACE", + name: "Node", + }, + ], }, { - "kind": "OBJECT", - "name": "CompatSessionConnection", - "fields": [ + kind: "OBJECT", + name: "CompatSessionConnection", + fields: [ { - "name": "edges", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "LIST", - "ofType": { - "kind": "NON_NULL", - "ofType": { - "kind": "OBJECT", - "name": "CompatSessionEdge", - "ofType": null - } - } - } + name: "edges", + type: { + kind: "NON_NULL", + ofType: { + kind: "LIST", + ofType: { + kind: "NON_NULL", + ofType: { + kind: "OBJECT", + name: "CompatSessionEdge", + ofType: null, + }, + }, + }, }, - "args": [] + args: [], }, { - "name": "nodes", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "LIST", - "ofType": { - "kind": "NON_NULL", - "ofType": { - "kind": "OBJECT", - "name": "CompatSession", - "ofType": null - } - } - } + name: "nodes", + type: { + kind: "NON_NULL", + ofType: { + kind: "LIST", + ofType: { + kind: "NON_NULL", + ofType: { + kind: "OBJECT", + name: "CompatSession", + ofType: null, + }, + }, + }, }, - "args": [] + args: [], }, { - "name": "pageInfo", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } + name: "pageInfo", + type: { + kind: "NON_NULL", + ofType: { + kind: "OBJECT", + name: "PageInfo", + ofType: null, + }, }, - "args": [] + args: [], }, { - "name": "totalCount", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } + name: "totalCount", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, }, - "args": [] - } + args: [], + }, ], - "interfaces": [] + interfaces: [], }, { - "kind": "OBJECT", - "name": "CompatSessionEdge", - "fields": [ + kind: "OBJECT", + name: "CompatSessionEdge", + fields: [ { - "name": "cursor", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } + name: "cursor", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, }, - "args": [] + args: [], }, { - "name": "node", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "OBJECT", - "name": "CompatSession", - "ofType": null - } + name: "node", + type: { + kind: "NON_NULL", + ofType: { + kind: "OBJECT", + name: "CompatSession", + ofType: null, + }, }, - "args": [] - } + args: [], + }, ], - "interfaces": [] + interfaces: [], }, { - "kind": "OBJECT", - "name": "CompatSsoLogin", - "fields": [ + kind: "OBJECT", + name: "CompatSsoLogin", + fields: [ { - "name": "createdAt", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } + name: "createdAt", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, }, - "args": [] + args: [], }, { - "name": "exchangedAt", - "type": { - "kind": "SCALAR", - "name": "Any" + name: "exchangedAt", + type: { + kind: "SCALAR", + name: "Any", }, - "args": [] + args: [], }, { - "name": "fulfilledAt", - "type": { - "kind": "SCALAR", - "name": "Any" + name: "fulfilledAt", + type: { + kind: "SCALAR", + name: "Any", }, - "args": [] + args: [], }, { - "name": "id", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } + name: "id", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, }, - "args": [] + args: [], }, { - "name": "redirectUri", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } + name: "redirectUri", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, }, - "args": [] + args: [], }, { - "name": "session", - "type": { - "kind": "OBJECT", - "name": "CompatSession", - "ofType": null + name: "session", + type: { + kind: "OBJECT", + name: "CompatSession", + ofType: null, }, - "args": [] - } + args: [], + }, ], - "interfaces": [ + interfaces: [ { - "kind": "INTERFACE", - "name": "Node" - } - ] + kind: "INTERFACE", + name: "Node", + }, + ], }, { - "kind": "OBJECT", - "name": "CompatSsoLoginConnection", - "fields": [ + kind: "OBJECT", + name: "CompatSsoLoginConnection", + fields: [ { - "name": "edges", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "LIST", - "ofType": { - "kind": "NON_NULL", - "ofType": { - "kind": "OBJECT", - "name": "CompatSsoLoginEdge", - "ofType": null - } - } - } + name: "edges", + type: { + kind: "NON_NULL", + ofType: { + kind: "LIST", + ofType: { + kind: "NON_NULL", + ofType: { + kind: "OBJECT", + name: "CompatSsoLoginEdge", + ofType: null, + }, + }, + }, }, - "args": [] + args: [], }, { - "name": "nodes", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "LIST", - "ofType": { - "kind": "NON_NULL", - "ofType": { - "kind": "OBJECT", - "name": "CompatSsoLogin", - "ofType": null - } - } - } + name: "nodes", + type: { + kind: "NON_NULL", + ofType: { + kind: "LIST", + ofType: { + kind: "NON_NULL", + ofType: { + kind: "OBJECT", + name: "CompatSsoLogin", + ofType: null, + }, + }, + }, }, - "args": [] + args: [], }, { - "name": "pageInfo", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } + name: "pageInfo", + type: { + kind: "NON_NULL", + ofType: { + kind: "OBJECT", + name: "PageInfo", + ofType: null, + }, }, - "args": [] + args: [], }, { - "name": "totalCount", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } + name: "totalCount", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, }, - "args": [] - } + args: [], + }, ], - "interfaces": [] + interfaces: [], }, { - "kind": "OBJECT", - "name": "CompatSsoLoginEdge", - "fields": [ + kind: "OBJECT", + name: "CompatSsoLoginEdge", + fields: [ { - "name": "cursor", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } + name: "cursor", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, }, - "args": [] + args: [], }, { - "name": "node", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "OBJECT", - "name": "CompatSsoLogin", - "ofType": null - } + name: "node", + type: { + kind: "NON_NULL", + ofType: { + kind: "OBJECT", + name: "CompatSsoLogin", + ofType: null, + }, }, - "args": [] - } + args: [], + }, ], - "interfaces": [] + interfaces: [], }, { - "kind": "OBJECT", - "name": "CreateOAuth2SessionPayload", - "fields": [ + kind: "OBJECT", + name: "CreateOAuth2SessionPayload", + fields: [ { - "name": "accessToken", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } + name: "accessToken", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, }, - "args": [] + args: [], }, { - "name": "oauth2Session", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "OBJECT", - "name": "Oauth2Session", - "ofType": null - } + name: "oauth2Session", + type: { + kind: "NON_NULL", + ofType: { + kind: "OBJECT", + name: "Oauth2Session", + ofType: null, + }, }, - "args": [] + args: [], }, { - "name": "refreshToken", - "type": { - "kind": "SCALAR", - "name": "Any" + name: "refreshToken", + type: { + kind: "SCALAR", + name: "Any", }, - "args": [] - } + args: [], + }, ], - "interfaces": [] + interfaces: [], }, { - "kind": "INTERFACE", - "name": "CreationEvent", - "fields": [ + kind: "INTERFACE", + name: "CreationEvent", + fields: [ { - "name": "createdAt", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } + name: "createdAt", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, }, - "args": [] - } + args: [], + }, ], - "interfaces": [], - "possibleTypes": [ + interfaces: [], + possibleTypes: [ { - "kind": "OBJECT", - "name": "Authentication" + kind: "OBJECT", + name: "Authentication", }, { - "kind": "OBJECT", - "name": "BrowserSession" + kind: "OBJECT", + name: "BrowserSession", }, { - "kind": "OBJECT", - "name": "CompatSession" + kind: "OBJECT", + name: "CompatSession", }, { - "kind": "OBJECT", - "name": "Oauth2Session" + kind: "OBJECT", + name: "Oauth2Session", }, { - "kind": "OBJECT", - "name": "UpstreamOAuth2Link" + kind: "OBJECT", + name: "UpstreamOAuth2Link", }, { - "kind": "OBJECT", - "name": "UpstreamOAuth2Provider" + kind: "OBJECT", + name: "UpstreamOAuth2Provider", }, { - "kind": "OBJECT", - "name": "UserEmail" - } - ] + kind: "OBJECT", + name: "UserEmail", + }, + ], }, { - "kind": "OBJECT", - "name": "EndBrowserSessionPayload", - "fields": [ + kind: "OBJECT", + name: "EndBrowserSessionPayload", + fields: [ { - "name": "browserSession", - "type": { - "kind": "OBJECT", - "name": "BrowserSession", - "ofType": null + name: "browserSession", + type: { + kind: "OBJECT", + name: "BrowserSession", + ofType: null, }, - "args": [] + args: [], }, { - "name": "status", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } + name: "status", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, }, - "args": [] - } + args: [], + }, ], - "interfaces": [] + interfaces: [], }, { - "kind": "OBJECT", - "name": "EndCompatSessionPayload", - "fields": [ + kind: "OBJECT", + name: "EndCompatSessionPayload", + fields: [ { - "name": "compatSession", - "type": { - "kind": "OBJECT", - "name": "CompatSession", - "ofType": null + name: "compatSession", + type: { + kind: "OBJECT", + name: "CompatSession", + ofType: null, }, - "args": [] + args: [], }, { - "name": "status", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } + name: "status", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, }, - "args": [] - } + args: [], + }, ], - "interfaces": [] + interfaces: [], }, { - "kind": "OBJECT", - "name": "EndOAuth2SessionPayload", - "fields": [ + kind: "OBJECT", + name: "EndOAuth2SessionPayload", + fields: [ { - "name": "oauth2Session", - "type": { - "kind": "OBJECT", - "name": "Oauth2Session", - "ofType": null + name: "oauth2Session", + type: { + kind: "OBJECT", + name: "Oauth2Session", + ofType: null, }, - "args": [] + args: [], }, { - "name": "status", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } + name: "status", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, }, - "args": [] - } + args: [], + }, ], - "interfaces": [] + interfaces: [], }, { - "kind": "OBJECT", - "name": "LockUserPayload", - "fields": [ + kind: "OBJECT", + name: "LockUserPayload", + fields: [ { - "name": "status", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } + name: "status", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, }, - "args": [] + args: [], }, { - "name": "user", - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null + name: "user", + type: { + kind: "OBJECT", + name: "User", + ofType: null, }, - "args": [] - } + args: [], + }, ], - "interfaces": [] + interfaces: [], }, { - "kind": "OBJECT", - "name": "MatrixUser", - "fields": [ + kind: "OBJECT", + name: "MatrixUser", + fields: [ { - "name": "avatarUrl", - "type": { - "kind": "SCALAR", - "name": "Any" + name: "avatarUrl", + type: { + kind: "SCALAR", + name: "Any", }, - "args": [] + args: [], }, { - "name": "displayName", - "type": { - "kind": "SCALAR", - "name": "Any" + name: "displayName", + type: { + kind: "SCALAR", + name: "Any", }, - "args": [] + args: [], }, { - "name": "mxid", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } + name: "mxid", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, }, - "args": [] - } + args: [], + }, ], - "interfaces": [] + interfaces: [], }, { - "kind": "OBJECT", - "name": "Mutation", - "fields": [ + kind: "OBJECT", + name: "Mutation", + fields: [ { - "name": "addEmail", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "OBJECT", - "name": "AddEmailPayload", - "ofType": null - } + name: "addEmail", + type: { + kind: "NON_NULL", + ofType: { + kind: "OBJECT", + name: "AddEmailPayload", + ofType: null, + }, }, - "args": [ + args: [ { - "name": "input", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } - } - } - ] + name: "input", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, + }, + }, + ], }, { - "name": "addUser", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "OBJECT", - "name": "AddUserPayload", - "ofType": null - } + name: "addUser", + type: { + kind: "NON_NULL", + ofType: { + kind: "OBJECT", + name: "AddUserPayload", + ofType: null, + }, }, - "args": [ + args: [ { - "name": "input", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } - } - } - ] + name: "input", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, + }, + }, + ], }, { - "name": "createOauth2Session", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "OBJECT", - "name": "CreateOAuth2SessionPayload", - "ofType": null - } + name: "createOauth2Session", + type: { + kind: "NON_NULL", + ofType: { + kind: "OBJECT", + name: "CreateOAuth2SessionPayload", + ofType: null, + }, }, - "args": [ + args: [ { - "name": "input", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } - } - } - ] + name: "input", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, + }, + }, + ], }, { - "name": "endBrowserSession", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "OBJECT", - "name": "EndBrowserSessionPayload", - "ofType": null - } + name: "endBrowserSession", + type: { + kind: "NON_NULL", + ofType: { + kind: "OBJECT", + name: "EndBrowserSessionPayload", + ofType: null, + }, }, - "args": [ + args: [ { - "name": "input", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } - } - } - ] + name: "input", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, + }, + }, + ], }, { - "name": "endCompatSession", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "OBJECT", - "name": "EndCompatSessionPayload", - "ofType": null - } + name: "endCompatSession", + type: { + kind: "NON_NULL", + ofType: { + kind: "OBJECT", + name: "EndCompatSessionPayload", + ofType: null, + }, }, - "args": [ + args: [ { - "name": "input", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } - } - } - ] + name: "input", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, + }, + }, + ], }, { - "name": "endOauth2Session", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "OBJECT", - "name": "EndOAuth2SessionPayload", - "ofType": null - } + name: "endOauth2Session", + type: { + kind: "NON_NULL", + ofType: { + kind: "OBJECT", + name: "EndOAuth2SessionPayload", + ofType: null, + }, }, - "args": [ + args: [ { - "name": "input", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } - } - } - ] + name: "input", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, + }, + }, + ], }, { - "name": "lockUser", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "OBJECT", - "name": "LockUserPayload", - "ofType": null - } + name: "lockUser", + type: { + kind: "NON_NULL", + ofType: { + kind: "OBJECT", + name: "LockUserPayload", + ofType: null, + }, }, - "args": [ + args: [ { - "name": "input", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } - } - } - ] + name: "input", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, + }, + }, + ], }, { - "name": "removeEmail", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "OBJECT", - "name": "RemoveEmailPayload", - "ofType": null - } + name: "removeEmail", + type: { + kind: "NON_NULL", + ofType: { + kind: "OBJECT", + name: "RemoveEmailPayload", + ofType: null, + }, }, - "args": [ + args: [ { - "name": "input", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } - } - } - ] + name: "input", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, + }, + }, + ], }, { - "name": "sendVerificationEmail", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "OBJECT", - "name": "SendVerificationEmailPayload", - "ofType": null - } + name: "sendVerificationEmail", + type: { + kind: "NON_NULL", + ofType: { + kind: "OBJECT", + name: "SendVerificationEmailPayload", + ofType: null, + }, }, - "args": [ + args: [ { - "name": "input", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } - } - } - ] + name: "input", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, + }, + }, + ], }, { - "name": "setDisplayName", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "OBJECT", - "name": "SetDisplayNamePayload", - "ofType": null - } + name: "setDisplayName", + type: { + kind: "NON_NULL", + ofType: { + kind: "OBJECT", + name: "SetDisplayNamePayload", + ofType: null, + }, }, - "args": [ + args: [ { - "name": "input", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } - } - } - ] + name: "input", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, + }, + }, + ], }, { - "name": "setPrimaryEmail", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "OBJECT", - "name": "SetPrimaryEmailPayload", - "ofType": null - } + name: "setPrimaryEmail", + type: { + kind: "NON_NULL", + ofType: { + kind: "OBJECT", + name: "SetPrimaryEmailPayload", + ofType: null, + }, }, - "args": [ + args: [ { - "name": "input", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } - } - } - ] + name: "input", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, + }, + }, + ], }, { - "name": "verifyEmail", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "OBJECT", - "name": "VerifyEmailPayload", - "ofType": null - } + name: "verifyEmail", + type: { + kind: "NON_NULL", + ofType: { + kind: "OBJECT", + name: "VerifyEmailPayload", + ofType: null, + }, }, - "args": [ + args: [ { - "name": "input", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } - } - } - ] - } + name: "input", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, + }, + }, + ], + }, ], - "interfaces": [] + interfaces: [], }, { - "kind": "INTERFACE", - "name": "Node", - "fields": [ + kind: "INTERFACE", + name: "Node", + fields: [ { - "name": "id", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } + name: "id", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, }, - "args": [] - } + args: [], + }, ], - "interfaces": [], - "possibleTypes": [ + interfaces: [], + possibleTypes: [ { - "kind": "OBJECT", - "name": "Anonymous" + kind: "OBJECT", + name: "Anonymous", }, { - "kind": "OBJECT", - "name": "Authentication" + kind: "OBJECT", + name: "Authentication", }, { - "kind": "OBJECT", - "name": "BrowserSession" + kind: "OBJECT", + name: "BrowserSession", }, { - "kind": "OBJECT", - "name": "CompatSession" + kind: "OBJECT", + name: "CompatSession", }, { - "kind": "OBJECT", - "name": "CompatSsoLogin" + kind: "OBJECT", + name: "CompatSsoLogin", }, { - "kind": "OBJECT", - "name": "Oauth2Client" + kind: "OBJECT", + name: "Oauth2Client", }, { - "kind": "OBJECT", - "name": "Oauth2Session" + kind: "OBJECT", + name: "Oauth2Session", }, { - "kind": "OBJECT", - "name": "UpstreamOAuth2Link" + kind: "OBJECT", + name: "UpstreamOAuth2Link", }, { - "kind": "OBJECT", - "name": "UpstreamOAuth2Provider" + kind: "OBJECT", + name: "UpstreamOAuth2Provider", }, { - "kind": "OBJECT", - "name": "User" + kind: "OBJECT", + name: "User", }, { - "kind": "OBJECT", - "name": "UserEmail" - } - ] + kind: "OBJECT", + name: "UserEmail", + }, + ], }, { - "kind": "OBJECT", - "name": "Oauth2Client", - "fields": [ + kind: "OBJECT", + name: "Oauth2Client", + fields: [ { - "name": "applicationType", - "type": { - "kind": "SCALAR", - "name": "Any" + name: "applicationType", + type: { + kind: "SCALAR", + name: "Any", }, - "args": [] + args: [], }, { - "name": "clientId", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } + name: "clientId", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, }, - "args": [] + args: [], }, { - "name": "clientName", - "type": { - "kind": "SCALAR", - "name": "Any" + name: "clientName", + type: { + kind: "SCALAR", + name: "Any", }, - "args": [] + args: [], }, { - "name": "clientUri", - "type": { - "kind": "SCALAR", - "name": "Any" + name: "clientUri", + type: { + kind: "SCALAR", + name: "Any", }, - "args": [] + args: [], }, { - "name": "contacts", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "LIST", - "ofType": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } - } - } + name: "contacts", + type: { + kind: "NON_NULL", + ofType: { + kind: "LIST", + ofType: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, + }, + }, }, - "args": [] + args: [], }, { - "name": "id", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } + name: "id", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, }, - "args": [] + args: [], }, { - "name": "logoUri", - "type": { - "kind": "SCALAR", - "name": "Any" + name: "logoUri", + type: { + kind: "SCALAR", + name: "Any", }, - "args": [] + args: [], }, { - "name": "policyUri", - "type": { - "kind": "SCALAR", - "name": "Any" + name: "policyUri", + type: { + kind: "SCALAR", + name: "Any", }, - "args": [] + args: [], }, { - "name": "redirectUris", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "LIST", - "ofType": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } - } - } + name: "redirectUris", + type: { + kind: "NON_NULL", + ofType: { + kind: "LIST", + ofType: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, + }, + }, }, - "args": [] + args: [], }, { - "name": "tosUri", - "type": { - "kind": "SCALAR", - "name": "Any" + name: "tosUri", + type: { + kind: "SCALAR", + name: "Any", }, - "args": [] - } + args: [], + }, ], - "interfaces": [ + interfaces: [ { - "kind": "INTERFACE", - "name": "Node" - } - ] + kind: "INTERFACE", + name: "Node", + }, + ], }, { - "kind": "OBJECT", - "name": "Oauth2Session", - "fields": [ + kind: "OBJECT", + name: "Oauth2Session", + fields: [ { - "name": "browserSession", - "type": { - "kind": "OBJECT", - "name": "BrowserSession", - "ofType": null + name: "browserSession", + type: { + kind: "OBJECT", + name: "BrowserSession", + ofType: null, }, - "args": [] + args: [], }, { - "name": "client", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "OBJECT", - "name": "Oauth2Client", - "ofType": null - } + name: "client", + type: { + kind: "NON_NULL", + ofType: { + kind: "OBJECT", + name: "Oauth2Client", + ofType: null, + }, }, - "args": [] + args: [], }, { - "name": "createdAt", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } + name: "createdAt", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, }, - "args": [] + args: [], }, { - "name": "finishedAt", - "type": { - "kind": "SCALAR", - "name": "Any" + name: "finishedAt", + type: { + kind: "SCALAR", + name: "Any", }, - "args": [] + args: [], }, { - "name": "id", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } + name: "id", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, }, - "args": [] + args: [], }, { - "name": "scope", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } + name: "lastActiveAt", + type: { + kind: "SCALAR", + name: "Any", }, - "args": [] + args: [], }, { - "name": "state", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } + name: "lastActiveIp", + type: { + kind: "SCALAR", + name: "Any", }, - "args": [] + args: [], }, { - "name": "user", - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null + name: "scope", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, }, - "args": [] - } + args: [], + }, + { + name: "state", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, + }, + args: [], + }, + { + name: "user", + type: { + kind: "OBJECT", + name: "User", + ofType: null, + }, + args: [], + }, ], - "interfaces": [ + interfaces: [ { - "kind": "INTERFACE", - "name": "CreationEvent" + kind: "INTERFACE", + name: "CreationEvent", }, { - "kind": "INTERFACE", - "name": "Node" - } - ] + kind: "INTERFACE", + name: "Node", + }, + ], }, { - "kind": "OBJECT", - "name": "Oauth2SessionConnection", - "fields": [ + kind: "OBJECT", + name: "Oauth2SessionConnection", + fields: [ { - "name": "edges", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "LIST", - "ofType": { - "kind": "NON_NULL", - "ofType": { - "kind": "OBJECT", - "name": "Oauth2SessionEdge", - "ofType": null - } - } - } + name: "edges", + type: { + kind: "NON_NULL", + ofType: { + kind: "LIST", + ofType: { + kind: "NON_NULL", + ofType: { + kind: "OBJECT", + name: "Oauth2SessionEdge", + ofType: null, + }, + }, + }, }, - "args": [] + args: [], }, { - "name": "nodes", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "LIST", - "ofType": { - "kind": "NON_NULL", - "ofType": { - "kind": "OBJECT", - "name": "Oauth2Session", - "ofType": null - } - } - } + name: "nodes", + type: { + kind: "NON_NULL", + ofType: { + kind: "LIST", + ofType: { + kind: "NON_NULL", + ofType: { + kind: "OBJECT", + name: "Oauth2Session", + ofType: null, + }, + }, + }, }, - "args": [] + args: [], }, { - "name": "pageInfo", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } + name: "pageInfo", + type: { + kind: "NON_NULL", + ofType: { + kind: "OBJECT", + name: "PageInfo", + ofType: null, + }, }, - "args": [] + args: [], }, { - "name": "totalCount", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } + name: "totalCount", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, }, - "args": [] - } + args: [], + }, ], - "interfaces": [] + interfaces: [], }, { - "kind": "OBJECT", - "name": "Oauth2SessionEdge", - "fields": [ + kind: "OBJECT", + name: "Oauth2SessionEdge", + fields: [ { - "name": "cursor", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } + name: "cursor", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, }, - "args": [] + args: [], }, { - "name": "node", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "OBJECT", - "name": "Oauth2Session", - "ofType": null - } + name: "node", + type: { + kind: "NON_NULL", + ofType: { + kind: "OBJECT", + name: "Oauth2Session", + ofType: null, + }, }, - "args": [] - } + args: [], + }, ], - "interfaces": [] + interfaces: [], }, { - "kind": "OBJECT", - "name": "PageInfo", - "fields": [ + kind: "OBJECT", + name: "PageInfo", + fields: [ { - "name": "endCursor", - "type": { - "kind": "SCALAR", - "name": "Any" + name: "endCursor", + type: { + kind: "SCALAR", + name: "Any", }, - "args": [] + args: [], }, { - "name": "hasNextPage", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } + name: "hasNextPage", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, }, - "args": [] + args: [], }, { - "name": "hasPreviousPage", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } + name: "hasPreviousPage", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, }, - "args": [] + args: [], }, { - "name": "startCursor", - "type": { - "kind": "SCALAR", - "name": "Any" + name: "startCursor", + type: { + kind: "SCALAR", + name: "Any", }, - "args": [] - } + args: [], + }, ], - "interfaces": [] + interfaces: [], }, { - "kind": "OBJECT", - "name": "Query", - "fields": [ + kind: "OBJECT", + name: "Query", + fields: [ { - "name": "browserSession", - "type": { - "kind": "OBJECT", - "name": "BrowserSession", - "ofType": null + name: "browserSession", + type: { + kind: "OBJECT", + name: "BrowserSession", + ofType: null, }, - "args": [ + args: [ { - "name": "id", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } - } - } - ] + name: "id", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, + }, + }, + ], }, { - "name": "currentBrowserSession", - "type": { - "kind": "OBJECT", - "name": "BrowserSession", - "ofType": null + name: "currentBrowserSession", + type: { + kind: "OBJECT", + name: "BrowserSession", + ofType: null, }, - "args": [] + args: [], }, { - "name": "currentUser", - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null + name: "currentUser", + type: { + kind: "OBJECT", + name: "User", + ofType: null, }, - "args": [] + args: [], }, { - "name": "node", - "type": { - "kind": "INTERFACE", - "name": "Node", - "ofType": null + name: "node", + type: { + kind: "INTERFACE", + name: "Node", + ofType: null, }, - "args": [ + args: [ { - "name": "id", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } - } - } - ] + name: "id", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, + }, + }, + ], }, { - "name": "oauth2Client", - "type": { - "kind": "OBJECT", - "name": "Oauth2Client", - "ofType": null + name: "oauth2Client", + type: { + kind: "OBJECT", + name: "Oauth2Client", + ofType: null, }, - "args": [ + args: [ { - "name": "id", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } - } - } - ] + name: "id", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, + }, + }, + ], }, { - "name": "session", - "type": { - "kind": "UNION", - "name": "Session", - "ofType": null + name: "session", + type: { + kind: "UNION", + name: "Session", + ofType: null, }, - "args": [ + args: [ { - "name": "deviceId", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } - } + name: "deviceId", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, + }, }, { - "name": "userId", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } - } - } - ] + name: "userId", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, + }, + }, + ], }, { - "name": "upstreamOauth2Link", - "type": { - "kind": "OBJECT", - "name": "UpstreamOAuth2Link", - "ofType": null + name: "upstreamOauth2Link", + type: { + kind: "OBJECT", + name: "UpstreamOAuth2Link", + ofType: null, }, - "args": [ + args: [ { - "name": "id", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } - } - } - ] + name: "id", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, + }, + }, + ], }, { - "name": "upstreamOauth2Provider", - "type": { - "kind": "OBJECT", - "name": "UpstreamOAuth2Provider", - "ofType": null + name: "upstreamOauth2Provider", + type: { + kind: "OBJECT", + name: "UpstreamOAuth2Provider", + ofType: null, }, - "args": [ + args: [ { - "name": "id", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } - } - } - ] + name: "id", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, + }, + }, + ], }, { - "name": "upstreamOauth2Providers", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "OBJECT", - "name": "UpstreamOAuth2ProviderConnection", - "ofType": null - } + name: "upstreamOauth2Providers", + type: { + kind: "NON_NULL", + ofType: { + kind: "OBJECT", + name: "UpstreamOAuth2ProviderConnection", + ofType: null, + }, }, - "args": [ + args: [ { - "name": "after", - "type": { - "kind": "SCALAR", - "name": "Any" - } + name: "after", + type: { + kind: "SCALAR", + name: "Any", + }, }, { - "name": "before", - "type": { - "kind": "SCALAR", - "name": "Any" - } + name: "before", + type: { + kind: "SCALAR", + name: "Any", + }, }, { - "name": "first", - "type": { - "kind": "SCALAR", - "name": "Any" - } + name: "first", + type: { + kind: "SCALAR", + name: "Any", + }, }, { - "name": "last", - "type": { - "kind": "SCALAR", - "name": "Any" - } - } - ] + name: "last", + type: { + kind: "SCALAR", + name: "Any", + }, + }, + ], }, { - "name": "user", - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null + name: "user", + type: { + kind: "OBJECT", + name: "User", + ofType: null, }, - "args": [ + args: [ { - "name": "id", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } - } - } - ] + name: "id", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, + }, + }, + ], }, { - "name": "userByUsername", - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null + name: "userByUsername", + type: { + kind: "OBJECT", + name: "User", + ofType: null, }, - "args": [ + args: [ { - "name": "username", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } - } - } - ] + name: "username", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, + }, + }, + ], }, { - "name": "userEmail", - "type": { - "kind": "OBJECT", - "name": "UserEmail", - "ofType": null + name: "userEmail", + type: { + kind: "OBJECT", + name: "UserEmail", + ofType: null, }, - "args": [ + args: [ { - "name": "id", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } - } - } - ] + name: "id", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, + }, + }, + ], }, { - "name": "viewer", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "UNION", - "name": "Viewer", - "ofType": null - } + name: "viewer", + type: { + kind: "NON_NULL", + ofType: { + kind: "UNION", + name: "Viewer", + ofType: null, + }, }, - "args": [] + args: [], }, { - "name": "viewerSession", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "UNION", - "name": "ViewerSession", - "ofType": null - } + name: "viewerSession", + type: { + kind: "NON_NULL", + ofType: { + kind: "UNION", + name: "ViewerSession", + ofType: null, + }, }, - "args": [] - } + args: [], + }, ], - "interfaces": [] + interfaces: [], }, { - "kind": "OBJECT", - "name": "RemoveEmailPayload", - "fields": [ + kind: "OBJECT", + name: "RemoveEmailPayload", + fields: [ { - "name": "email", - "type": { - "kind": "OBJECT", - "name": "UserEmail", - "ofType": null + name: "email", + type: { + kind: "OBJECT", + name: "UserEmail", + ofType: null, }, - "args": [] + args: [], }, { - "name": "status", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } + name: "status", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, }, - "args": [] + args: [], }, { - "name": "user", - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null + name: "user", + type: { + kind: "OBJECT", + name: "User", + ofType: null, }, - "args": [] - } + args: [], + }, ], - "interfaces": [] + interfaces: [], }, { - "kind": "OBJECT", - "name": "SendVerificationEmailPayload", - "fields": [ + kind: "OBJECT", + name: "SendVerificationEmailPayload", + fields: [ { - "name": "email", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "OBJECT", - "name": "UserEmail", - "ofType": null - } + name: "email", + type: { + kind: "NON_NULL", + ofType: { + kind: "OBJECT", + name: "UserEmail", + ofType: null, + }, }, - "args": [] + args: [], }, { - "name": "status", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } + name: "status", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, }, - "args": [] + args: [], }, { - "name": "user", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "OBJECT", - "name": "User", - "ofType": null - } + name: "user", + type: { + kind: "NON_NULL", + ofType: { + kind: "OBJECT", + name: "User", + ofType: null, + }, }, - "args": [] - } + args: [], + }, ], - "interfaces": [] + interfaces: [], }, { - "kind": "UNION", - "name": "Session", - "possibleTypes": [ + kind: "UNION", + name: "Session", + possibleTypes: [ { - "kind": "OBJECT", - "name": "CompatSession" + kind: "OBJECT", + name: "CompatSession", }, { - "kind": "OBJECT", - "name": "Oauth2Session" - } - ] - }, - { - "kind": "OBJECT", - "name": "SetDisplayNamePayload", - "fields": [ - { - "name": "status", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } - }, - "args": [] + kind: "OBJECT", + name: "Oauth2Session", }, - { - "name": "user", - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null - }, - "args": [] - } ], - "interfaces": [] }, { - "kind": "OBJECT", - "name": "SetPrimaryEmailPayload", - "fields": [ + kind: "OBJECT", + name: "SetDisplayNamePayload", + fields: [ { - "name": "status", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } + name: "status", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, }, - "args": [] + args: [], }, { - "name": "user", - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null + name: "user", + type: { + kind: "OBJECT", + name: "User", + ofType: null, }, - "args": [] - } + args: [], + }, ], - "interfaces": [] + interfaces: [], }, { - "kind": "OBJECT", - "name": "UpstreamOAuth2Link", - "fields": [ + kind: "OBJECT", + name: "SetPrimaryEmailPayload", + fields: [ { - "name": "createdAt", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } + name: "status", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, }, - "args": [] + args: [], }, { - "name": "id", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } + name: "user", + type: { + kind: "OBJECT", + name: "User", + ofType: null, }, - "args": [] + args: [], }, - { - "name": "provider", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "OBJECT", - "name": "UpstreamOAuth2Provider", - "ofType": null - } - }, - "args": [] - }, - { - "name": "subject", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } - }, - "args": [] - }, - { - "name": "user", - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null - }, - "args": [] - } ], - "interfaces": [ - { - "kind": "INTERFACE", - "name": "CreationEvent" - }, - { - "kind": "INTERFACE", - "name": "Node" - } - ] + interfaces: [], }, { - "kind": "OBJECT", - "name": "UpstreamOAuth2LinkConnection", - "fields": [ + kind: "OBJECT", + name: "UpstreamOAuth2Link", + fields: [ { - "name": "edges", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "LIST", - "ofType": { - "kind": "NON_NULL", - "ofType": { - "kind": "OBJECT", - "name": "UpstreamOAuth2LinkEdge", - "ofType": null - } - } - } + name: "createdAt", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, }, - "args": [] + args: [], }, { - "name": "nodes", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "LIST", - "ofType": { - "kind": "NON_NULL", - "ofType": { - "kind": "OBJECT", - "name": "UpstreamOAuth2Link", - "ofType": null - } - } - } + name: "id", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, }, - "args": [] + args: [], }, { - "name": "pageInfo", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } + name: "provider", + type: { + kind: "NON_NULL", + ofType: { + kind: "OBJECT", + name: "UpstreamOAuth2Provider", + ofType: null, + }, }, - "args": [] + args: [], }, { - "name": "totalCount", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } + name: "subject", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, }, - "args": [] - } + args: [], + }, + { + name: "user", + type: { + kind: "OBJECT", + name: "User", + ofType: null, + }, + args: [], + }, ], - "interfaces": [] - }, - { - "kind": "OBJECT", - "name": "UpstreamOAuth2LinkEdge", - "fields": [ + interfaces: [ { - "name": "cursor", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } - }, - "args": [] + kind: "INTERFACE", + name: "CreationEvent", }, { - "name": "node", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "OBJECT", - "name": "UpstreamOAuth2Link", - "ofType": null - } - }, - "args": [] - } + kind: "INTERFACE", + name: "Node", + }, ], - "interfaces": [] }, { - "kind": "OBJECT", - "name": "UpstreamOAuth2Provider", - "fields": [ + kind: "OBJECT", + name: "UpstreamOAuth2LinkConnection", + fields: [ { - "name": "clientId", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } + name: "edges", + type: { + kind: "NON_NULL", + ofType: { + kind: "LIST", + ofType: { + kind: "NON_NULL", + ofType: { + kind: "OBJECT", + name: "UpstreamOAuth2LinkEdge", + ofType: null, + }, + }, + }, }, - "args": [] + args: [], }, { - "name": "createdAt", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } + name: "nodes", + type: { + kind: "NON_NULL", + ofType: { + kind: "LIST", + ofType: { + kind: "NON_NULL", + ofType: { + kind: "OBJECT", + name: "UpstreamOAuth2Link", + ofType: null, + }, + }, + }, }, - "args": [] + args: [], }, { - "name": "id", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } + name: "pageInfo", + type: { + kind: "NON_NULL", + ofType: { + kind: "OBJECT", + name: "PageInfo", + ofType: null, + }, }, - "args": [] + args: [], }, { - "name": "issuer", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } + name: "totalCount", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, }, - "args": [] - } + args: [], + }, ], - "interfaces": [ - { - "kind": "INTERFACE", - "name": "CreationEvent" - }, - { - "kind": "INTERFACE", - "name": "Node" - } - ] + interfaces: [], }, { - "kind": "OBJECT", - "name": "UpstreamOAuth2ProviderConnection", - "fields": [ + kind: "OBJECT", + name: "UpstreamOAuth2LinkEdge", + fields: [ { - "name": "edges", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "LIST", - "ofType": { - "kind": "NON_NULL", - "ofType": { - "kind": "OBJECT", - "name": "UpstreamOAuth2ProviderEdge", - "ofType": null - } - } - } + name: "cursor", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, }, - "args": [] + args: [], }, { - "name": "nodes", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "LIST", - "ofType": { - "kind": "NON_NULL", - "ofType": { - "kind": "OBJECT", - "name": "UpstreamOAuth2Provider", - "ofType": null - } - } - } + name: "node", + type: { + kind: "NON_NULL", + ofType: { + kind: "OBJECT", + name: "UpstreamOAuth2Link", + ofType: null, + }, }, - "args": [] + args: [], }, - { - "name": "pageInfo", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "args": [] - }, - { - "name": "totalCount", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } - }, - "args": [] - } ], - "interfaces": [] + interfaces: [], }, { - "kind": "OBJECT", - "name": "UpstreamOAuth2ProviderEdge", - "fields": [ + kind: "OBJECT", + name: "UpstreamOAuth2Provider", + fields: [ { - "name": "cursor", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } + name: "clientId", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, }, - "args": [] + args: [], }, { - "name": "node", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "OBJECT", - "name": "UpstreamOAuth2Provider", - "ofType": null - } + name: "createdAt", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, }, - "args": [] - } + args: [], + }, + { + name: "id", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, + }, + args: [], + }, + { + name: "issuer", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, + }, + args: [], + }, ], - "interfaces": [] - }, - { - "kind": "OBJECT", - "name": "User", - "fields": [ + interfaces: [ { - "name": "browserSessions", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "OBJECT", - "name": "BrowserSessionConnection", - "ofType": null - } - }, - "args": [ - { - "name": "after", - "type": { - "kind": "SCALAR", - "name": "Any" - } - }, - { - "name": "before", - "type": { - "kind": "SCALAR", - "name": "Any" - } - }, - { - "name": "first", - "type": { - "kind": "SCALAR", - "name": "Any" - } - }, - { - "name": "last", - "type": { - "kind": "SCALAR", - "name": "Any" - } - }, - { - "name": "state", - "type": { - "kind": "SCALAR", - "name": "Any" - } - } - ] + kind: "INTERFACE", + name: "CreationEvent", }, { - "name": "compatSessions", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "OBJECT", - "name": "CompatSessionConnection", - "ofType": null - } - }, - "args": [ - { - "name": "after", - "type": { - "kind": "SCALAR", - "name": "Any" - } - }, - { - "name": "before", - "type": { - "kind": "SCALAR", - "name": "Any" - } - }, - { - "name": "first", - "type": { - "kind": "SCALAR", - "name": "Any" - } - }, - { - "name": "last", - "type": { - "kind": "SCALAR", - "name": "Any" - } - }, - { - "name": "state", - "type": { - "kind": "SCALAR", - "name": "Any" - } - }, - { - "name": "type", - "type": { - "kind": "SCALAR", - "name": "Any" - } - } - ] + kind: "INTERFACE", + name: "Node", }, - { - "name": "compatSsoLogins", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "OBJECT", - "name": "CompatSsoLoginConnection", - "ofType": null - } - }, - "args": [ - { - "name": "after", - "type": { - "kind": "SCALAR", - "name": "Any" - } - }, - { - "name": "before", - "type": { - "kind": "SCALAR", - "name": "Any" - } - }, - { - "name": "first", - "type": { - "kind": "SCALAR", - "name": "Any" - } - }, - { - "name": "last", - "type": { - "kind": "SCALAR", - "name": "Any" - } - } - ] - }, - { - "name": "createdAt", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } - }, - "args": [] - }, - { - "name": "emails", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "OBJECT", - "name": "UserEmailConnection", - "ofType": null - } - }, - "args": [ - { - "name": "after", - "type": { - "kind": "SCALAR", - "name": "Any" - } - }, - { - "name": "before", - "type": { - "kind": "SCALAR", - "name": "Any" - } - }, - { - "name": "first", - "type": { - "kind": "SCALAR", - "name": "Any" - } - }, - { - "name": "last", - "type": { - "kind": "SCALAR", - "name": "Any" - } - }, - { - "name": "state", - "type": { - "kind": "SCALAR", - "name": "Any" - } - } - ] - }, - { - "name": "id", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } - }, - "args": [] - }, - { - "name": "lockedAt", - "type": { - "kind": "SCALAR", - "name": "Any" - }, - "args": [] - }, - { - "name": "matrix", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "OBJECT", - "name": "MatrixUser", - "ofType": null - } - }, - "args": [] - }, - { - "name": "oauth2Sessions", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "OBJECT", - "name": "Oauth2SessionConnection", - "ofType": null - } - }, - "args": [ - { - "name": "after", - "type": { - "kind": "SCALAR", - "name": "Any" - } - }, - { - "name": "before", - "type": { - "kind": "SCALAR", - "name": "Any" - } - }, - { - "name": "client", - "type": { - "kind": "SCALAR", - "name": "Any" - } - }, - { - "name": "first", - "type": { - "kind": "SCALAR", - "name": "Any" - } - }, - { - "name": "last", - "type": { - "kind": "SCALAR", - "name": "Any" - } - }, - { - "name": "state", - "type": { - "kind": "SCALAR", - "name": "Any" - } - } - ] - }, - { - "name": "primaryEmail", - "type": { - "kind": "OBJECT", - "name": "UserEmail", - "ofType": null - }, - "args": [] - }, - { - "name": "upstreamOauth2Links", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "OBJECT", - "name": "UpstreamOAuth2LinkConnection", - "ofType": null - } - }, - "args": [ - { - "name": "after", - "type": { - "kind": "SCALAR", - "name": "Any" - } - }, - { - "name": "before", - "type": { - "kind": "SCALAR", - "name": "Any" - } - }, - { - "name": "first", - "type": { - "kind": "SCALAR", - "name": "Any" - } - }, - { - "name": "last", - "type": { - "kind": "SCALAR", - "name": "Any" - } - } - ] - }, - { - "name": "username", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } - }, - "args": [] - } ], - "interfaces": [ - { - "kind": "INTERFACE", - "name": "Node" - } - ] }, { - "kind": "OBJECT", - "name": "UserEmail", - "fields": [ + kind: "OBJECT", + name: "UpstreamOAuth2ProviderConnection", + fields: [ { - "name": "confirmedAt", - "type": { - "kind": "SCALAR", - "name": "Any" + name: "edges", + type: { + kind: "NON_NULL", + ofType: { + kind: "LIST", + ofType: { + kind: "NON_NULL", + ofType: { + kind: "OBJECT", + name: "UpstreamOAuth2ProviderEdge", + ofType: null, + }, + }, + }, }, - "args": [] + args: [], }, { - "name": "createdAt", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } + name: "nodes", + type: { + kind: "NON_NULL", + ofType: { + kind: "LIST", + ofType: { + kind: "NON_NULL", + ofType: { + kind: "OBJECT", + name: "UpstreamOAuth2Provider", + ofType: null, + }, + }, + }, }, - "args": [] + args: [], }, { - "name": "email", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } + name: "pageInfo", + type: { + kind: "NON_NULL", + ofType: { + kind: "OBJECT", + name: "PageInfo", + ofType: null, + }, }, - "args": [] + args: [], }, { - "name": "id", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } + name: "totalCount", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, }, - "args": [] - } + args: [], + }, ], - "interfaces": [ - { - "kind": "INTERFACE", - "name": "CreationEvent" - }, - { - "kind": "INTERFACE", - "name": "Node" - } - ] + interfaces: [], }, { - "kind": "OBJECT", - "name": "UserEmailConnection", - "fields": [ + kind: "OBJECT", + name: "UpstreamOAuth2ProviderEdge", + fields: [ { - "name": "edges", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "LIST", - "ofType": { - "kind": "NON_NULL", - "ofType": { - "kind": "OBJECT", - "name": "UserEmailEdge", - "ofType": null - } - } - } + name: "cursor", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, }, - "args": [] + args: [], }, { - "name": "nodes", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "LIST", - "ofType": { - "kind": "NON_NULL", - "ofType": { - "kind": "OBJECT", - "name": "UserEmail", - "ofType": null - } - } - } + name: "node", + type: { + kind: "NON_NULL", + ofType: { + kind: "OBJECT", + name: "UpstreamOAuth2Provider", + ofType: null, + }, }, - "args": [] + args: [], }, - { - "name": "pageInfo", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "args": [] - }, - { - "name": "totalCount", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } - }, - "args": [] - } ], - "interfaces": [] + interfaces: [], }, { - "kind": "OBJECT", - "name": "UserEmailEdge", - "fields": [ + kind: "OBJECT", + name: "User", + fields: [ { - "name": "cursor", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } + name: "browserSessions", + type: { + kind: "NON_NULL", + ofType: { + kind: "OBJECT", + name: "BrowserSessionConnection", + ofType: null, + }, }, - "args": [] + args: [ + { + name: "after", + type: { + kind: "SCALAR", + name: "Any", + }, + }, + { + name: "before", + type: { + kind: "SCALAR", + name: "Any", + }, + }, + { + name: "first", + type: { + kind: "SCALAR", + name: "Any", + }, + }, + { + name: "last", + type: { + kind: "SCALAR", + name: "Any", + }, + }, + { + name: "state", + type: { + kind: "SCALAR", + name: "Any", + }, + }, + ], }, { - "name": "node", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "OBJECT", - "name": "UserEmail", - "ofType": null - } + name: "compatSessions", + type: { + kind: "NON_NULL", + ofType: { + kind: "OBJECT", + name: "CompatSessionConnection", + ofType: null, + }, }, - "args": [] - } + args: [ + { + name: "after", + type: { + kind: "SCALAR", + name: "Any", + }, + }, + { + name: "before", + type: { + kind: "SCALAR", + name: "Any", + }, + }, + { + name: "first", + type: { + kind: "SCALAR", + name: "Any", + }, + }, + { + name: "last", + type: { + kind: "SCALAR", + name: "Any", + }, + }, + { + name: "state", + type: { + kind: "SCALAR", + name: "Any", + }, + }, + { + name: "type", + type: { + kind: "SCALAR", + name: "Any", + }, + }, + ], + }, + { + name: "compatSsoLogins", + type: { + kind: "NON_NULL", + ofType: { + kind: "OBJECT", + name: "CompatSsoLoginConnection", + ofType: null, + }, + }, + args: [ + { + name: "after", + type: { + kind: "SCALAR", + name: "Any", + }, + }, + { + name: "before", + type: { + kind: "SCALAR", + name: "Any", + }, + }, + { + name: "first", + type: { + kind: "SCALAR", + name: "Any", + }, + }, + { + name: "last", + type: { + kind: "SCALAR", + name: "Any", + }, + }, + ], + }, + { + name: "createdAt", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, + }, + args: [], + }, + { + name: "emails", + type: { + kind: "NON_NULL", + ofType: { + kind: "OBJECT", + name: "UserEmailConnection", + ofType: null, + }, + }, + args: [ + { + name: "after", + type: { + kind: "SCALAR", + name: "Any", + }, + }, + { + name: "before", + type: { + kind: "SCALAR", + name: "Any", + }, + }, + { + name: "first", + type: { + kind: "SCALAR", + name: "Any", + }, + }, + { + name: "last", + type: { + kind: "SCALAR", + name: "Any", + }, + }, + { + name: "state", + type: { + kind: "SCALAR", + name: "Any", + }, + }, + ], + }, + { + name: "id", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, + }, + args: [], + }, + { + name: "lockedAt", + type: { + kind: "SCALAR", + name: "Any", + }, + args: [], + }, + { + name: "matrix", + type: { + kind: "NON_NULL", + ofType: { + kind: "OBJECT", + name: "MatrixUser", + ofType: null, + }, + }, + args: [], + }, + { + name: "oauth2Sessions", + type: { + kind: "NON_NULL", + ofType: { + kind: "OBJECT", + name: "Oauth2SessionConnection", + ofType: null, + }, + }, + args: [ + { + name: "after", + type: { + kind: "SCALAR", + name: "Any", + }, + }, + { + name: "before", + type: { + kind: "SCALAR", + name: "Any", + }, + }, + { + name: "client", + type: { + kind: "SCALAR", + name: "Any", + }, + }, + { + name: "first", + type: { + kind: "SCALAR", + name: "Any", + }, + }, + { + name: "last", + type: { + kind: "SCALAR", + name: "Any", + }, + }, + { + name: "state", + type: { + kind: "SCALAR", + name: "Any", + }, + }, + ], + }, + { + name: "primaryEmail", + type: { + kind: "OBJECT", + name: "UserEmail", + ofType: null, + }, + args: [], + }, + { + name: "upstreamOauth2Links", + type: { + kind: "NON_NULL", + ofType: { + kind: "OBJECT", + name: "UpstreamOAuth2LinkConnection", + ofType: null, + }, + }, + args: [ + { + name: "after", + type: { + kind: "SCALAR", + name: "Any", + }, + }, + { + name: "before", + type: { + kind: "SCALAR", + name: "Any", + }, + }, + { + name: "first", + type: { + kind: "SCALAR", + name: "Any", + }, + }, + { + name: "last", + type: { + kind: "SCALAR", + name: "Any", + }, + }, + ], + }, + { + name: "username", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, + }, + args: [], + }, ], - "interfaces": [] - }, - { - "kind": "OBJECT", - "name": "VerifyEmailPayload", - "fields": [ + interfaces: [ { - "name": "email", - "type": { - "kind": "OBJECT", - "name": "UserEmail", - "ofType": null - }, - "args": [] + kind: "INTERFACE", + name: "Node", }, - { - "name": "status", - "type": { - "kind": "NON_NULL", - "ofType": { - "kind": "SCALAR", - "name": "Any" - } - }, - "args": [] - }, - { - "name": "user", - "type": { - "kind": "OBJECT", - "name": "User", - "ofType": null - }, - "args": [] - } ], - "interfaces": [] }, { - "kind": "UNION", - "name": "Viewer", - "possibleTypes": [ + kind: "OBJECT", + name: "UserEmail", + fields: [ { - "kind": "OBJECT", - "name": "Anonymous" + name: "confirmedAt", + type: { + kind: "SCALAR", + name: "Any", + }, + args: [], }, { - "kind": "OBJECT", - "name": "User" - } - ] + name: "createdAt", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, + }, + args: [], + }, + { + name: "email", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, + }, + args: [], + }, + { + name: "id", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, + }, + args: [], + }, + ], + interfaces: [ + { + kind: "INTERFACE", + name: "CreationEvent", + }, + { + kind: "INTERFACE", + name: "Node", + }, + ], }, { - "kind": "UNION", - "name": "ViewerSession", - "possibleTypes": [ + kind: "OBJECT", + name: "UserEmailConnection", + fields: [ { - "kind": "OBJECT", - "name": "Anonymous" + name: "edges", + type: { + kind: "NON_NULL", + ofType: { + kind: "LIST", + ofType: { + kind: "NON_NULL", + ofType: { + kind: "OBJECT", + name: "UserEmailEdge", + ofType: null, + }, + }, + }, + }, + args: [], }, { - "kind": "OBJECT", - "name": "BrowserSession" + name: "nodes", + type: { + kind: "NON_NULL", + ofType: { + kind: "LIST", + ofType: { + kind: "NON_NULL", + ofType: { + kind: "OBJECT", + name: "UserEmail", + ofType: null, + }, + }, + }, + }, + args: [], }, { - "kind": "OBJECT", - "name": "Oauth2Session" - } - ] + name: "pageInfo", + type: { + kind: "NON_NULL", + ofType: { + kind: "OBJECT", + name: "PageInfo", + ofType: null, + }, + }, + args: [], + }, + { + name: "totalCount", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, + }, + args: [], + }, + ], + interfaces: [], }, { - "kind": "SCALAR", - "name": "Any" - } + kind: "OBJECT", + name: "UserEmailEdge", + fields: [ + { + name: "cursor", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, + }, + args: [], + }, + { + name: "node", + type: { + kind: "NON_NULL", + ofType: { + kind: "OBJECT", + name: "UserEmail", + ofType: null, + }, + }, + args: [], + }, + ], + interfaces: [], + }, + { + kind: "OBJECT", + name: "VerifyEmailPayload", + fields: [ + { + name: "email", + type: { + kind: "OBJECT", + name: "UserEmail", + ofType: null, + }, + args: [], + }, + { + name: "status", + type: { + kind: "NON_NULL", + ofType: { + kind: "SCALAR", + name: "Any", + }, + }, + args: [], + }, + { + name: "user", + type: { + kind: "OBJECT", + name: "User", + ofType: null, + }, + args: [], + }, + ], + interfaces: [], + }, + { + kind: "UNION", + name: "Viewer", + possibleTypes: [ + { + kind: "OBJECT", + name: "Anonymous", + }, + { + kind: "OBJECT", + name: "User", + }, + ], + }, + { + kind: "UNION", + name: "ViewerSession", + possibleTypes: [ + { + kind: "OBJECT", + name: "Anonymous", + }, + { + kind: "OBJECT", + name: "BrowserSession", + }, + { + kind: "OBJECT", + name: "Oauth2Session", + }, + ], + }, + { + kind: "SCALAR", + name: "Any", + }, ], - "directives": [] - } -} as unknown as IntrospectionQuery; \ No newline at end of file + directives: [], + }, +} as unknown as IntrospectionQuery;